EdinaJ is a JVM compiler for Edina. The compiler has a few basic built-int optimizations that can be enabled. I'm planning on adding more.
ROUTINE_INLINE
Will inline very small routines (5 or fewer commands, no branches, no loops, no import calls, no native calls).
SMART_BRANCHES
Will not compile branches that 100% will never be called.
java -jar edinaj.jar [options]
Options:
* --sourcefile, -F
The source file that should be compiled
* --outputfile, -O
The name of the final Jar
--package, -P
The package name that should be used
Default: dev.cerus.edinalang.compiledscript
--include, -I
Directories that will be used for imports
Default: []
--debug, -D
Enables debug printing in the final Jar
Default: false
--quiet, -Q
Suppresses all stdout output if enabled
Default: false
--run, -R
Runs the Jar after compilation
Default: false
--optimize
Specify optimizations that should be applied
Default: []
Allowed values: [ROUTINE_INLINE, SMART_BRANCHES]
Example: 'java -jar edinaj/target/edinaj.jar -P dev.cerus.script -F script.edina -O script.jar -D'
Library | License |
---|---|
ASM | 3-Clause BSD |
JCommander | Apache License 2.0 |
Jansi | Apache License 2.0 |