Skip to content

Latest commit

 

History

History
52 lines (42 loc) · 1.97 KB

README.md

File metadata and controls

52 lines (42 loc) · 1.97 KB

edina/edinaj

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.

Optimizations

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.

Usage

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'

Used libraries

Library License
ASM 3-Clause BSD
JCommander Apache License 2.0
Jansi Apache License 2.0