Java Ahead Of Time (AOT) compiler based on RoboVM (http://www.robovm.com)
#FAQ/Usage/Docs https://github.com/ashleyj/aura/wiki
Java Ahead Of Time (AOT) compiler based on RoboVM (http://www.robovm.com)
#FAQ/Usage/Docs https://github.com/ashleyj/aura/wiki
Building with gradlew build
fails with the following error:
:llvm:test
aura.llvm.TargetMachineTest > testEmitToFile FAILED
java.lang.UnsatisfiedLinkError at TargetMachineTest.java:33
aura.llvm.TargetMachineTest > testAssemble FAILED
java.lang.NoClassDefFoundError at TargetMachineTest.java:46
aura.llvm.ObjectFileTest > testReadSections FAILED
java.lang.NoClassDefFoundError at ObjectFileTest.java:62
aura.llvm.ObjectFileTest > testLineNumberInfo FAILED
java.lang.NoClassDefFoundError at ObjectFileTest.java:123
aura.llvm.ObjectFileTest > testLoadFromFile FAILED
java.lang.NoClassDefFoundError at ObjectFileTest.java:42
aura.llvm.ModuleTest > testParseIRString FAILED
java.lang.NoClassDefFoundError at ModuleTest.java:36
aura.llvm.TargetTest > testGetTargets FAILED
java.lang.NoClassDefFoundError at TargetTest.java:34
aura.llvm.TargetTest > testLookupTarget FAILED
java.lang.NoClassDefFoundError at TargetTest.java:60
aura.llvm.TargetTest > testGetTarget FAILED
java.lang.NoClassDefFoundError at TargetTest.java:47
aura.llvm.TargetTest > testGetTargetsMap FAILED
java.lang.NoClassDefFoundError at TargetTest.java:40
13 tests completed, 10 failed, 3 skipped
:llvm:test FAILED
I was able to work around it by disabling the gradle task -x llvm:test
but ideally that should not be used.
Add a feature to output a library, rather than executable
-D properties should be honoured by final binary (init.c?)
Trying to compile an existing java jar with aura fails with error (I used the instructions in the wiki):
Exception in thread "main" java.lang.UnsatisfiedLinkError: Native library for linux-x86_64 not found
at aura.llvm.NativeLibrary.load(NativeLibrary.java:72)
at aura.llvm.binding.LLVMJNI.(LLVMJNI.java:804)
at aura.llvm.binding.LLVM.getLlvmHostTriple(LLVM.java:3103)
at aura.llvm.Target.(Target.java:36)
at aura.compiler.config.OS.getDefaultOS(OS.java:55)
at aura.compiler.target.ConsoleTarget.init(ConsoleTarget.java:93)
at aura.compiler.config.Config.build(Config.java:811)
at aura.compiler.config.ConfigBuilder.build(ConfigBuilder.java:402)
at aura.compiler.AppCompiler.main(AppCompiler.java:410)
Exceptions should show line numbers:
aura:
java.lang.Exception: test
at com.example.HelloWorld.main(HelloWorld.java)
java:
Exception in thread "main" java.lang.Exception: test
at com.example.HelloWorld.main(HelloWorld.java:8)
Currently robovm/aura compiles binaries as a single static executable. It would be beneficial to have a separate (one or more) shared library with all runtime dependencies included. This would make the size of binaries smaller and fixes any licensing issues should aura ever work with openjdk.
Currently there's no way to add resources via CLI -- there should be an argument for this
--resource (-r) or similar
bin/aura shell script still references robovm dirs and jars -- this needs to be fixed.
Also the env vars need to be renamed
Is Mac OS X a supporting platform?
I am not able to compile it, I get the following error instead:
CMake Error at CMakeLists.txt:89 (message):
Failed to locate MacOSX SDK 10.11
Need a wrapper to compile directly from java src files
compiler args follow a very java-like feel. Since the target here is command line usage, they should follow a more unix-feel
eg:
Instead of
java -jar aura/aura-dist/lib/aura-compiler.jar -cp classes -debug -verbose com.example.HelloWorld
maybe use
aura -c classes -g -v com.example.HelloWorld
Perhaps it might be of some gain to fix the wrapper script than to change the java code
Create docker image to build aura
Currently robovm/aura uses the android/apache harmony jdk.
As aura targets desktop usage specifically, an openjdk port would be beneficial. initially this port could be targeted for the jdk8 compact profile 1 and gradually expanded to other profiles.
Perhaps it's interesting to investigate if openjdk mobile http://openjdk.java.net/projects/mobile/ could be of use?
bash: ./configure: No such file or directory
It seems cmake is configured to run a ./configure command, yet nowhere is it configured to generate a configure file.
There are multiple compile errors on OS X
I followed from RoboVM's forks here, is this a kind of fork you are actively working on? if so I would love to help you with it, probably first things like docs and co.
test javafx support and document
Hi, this project looks promising. I would like to try it out but I don't really know where to start. Is it possible to expand the readme with:
Stop usage statement being printed when compilation error occurs -- makes it difficult to see the error and is unnecessary.
Ccache may help compilation speed. Not sure if it's possible, but worth investigating
Build on 64d946d and add two new features:
Hi ashley!
I'm currently working on a debugger for MobiDevelop's RoboVM fork, since this is really badly missing.
Some basics are working, but a lot is not. I thought it maybe interesting for your fork too and maybe you could join the development ;-)
Take a look at:
https://github.com/MobiDevelop/robovm/wiki/Implementing-a-Debugger and
https://github.com/MobiDevelop/robovm/tree/console_debugger
Aura has git submodule dependencies on robovm repositories, which are in turn clones of other repositories.
The problem here is twofold:
A dependency on a dead project can potentially disappear. Rendering aura unbuildable.
Second, the robovm dependencies are clones of projects that haven't been updated in 2 years. Ideally aura should depend directly on the latest/more recent upstream projects and apply patches where needed during build.
Write some doco:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.