## Ant based build process and runtime settings ## A file named 'abcl.properties' controls settings for the ABCL ## build. This is the prototype for its contents. # Attempt to perform incremental compilation? abcl.build.incremental=true ## javac compiler options for ABCL build # generate class files for this target JVM #ant.build.javac.target=1.8 # specify Java source compatiblity level #ant.build.javac.source=1.6 ## Additional site specific startup code to be merged in 'system.lisp' at build time #abcl.startup.file=${basedir}/startup.lisp ## java.options sets the invoking JVM options in the abcl wrapper script # Base JVM settings that work on all supported platforms # <> java.options java.options=-XshowSettings:vm -Dfile.encoding=UTF-8 ## N.b. Ant properties can only be set once, so lines like ## java.options=${java.options} further options ## will NOT work. Instead one has to "manually" create lines #<> # ( openjdk11, openjdk13, openjdk14 ) ; # #java.options=-XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xmx -Xlog:gc #<> # openjdk11 ; # rdfs:seeAlso ; #java.options=-XX:CompileThreshold=10 #<> # openjdk8 ; #java.options=-XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 #<> # rdfs:comment "openjdk7 with 64bit optimizations" ; # openjdk7 ; #java.options=-d64 -XX:+UseG1GC #<> # rdfs:comment "openjdk6 is the minimum supported runtime" # openjdk6 ; #java.options=-d64 -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=1g -XX:+UseConcMarkSweepGC # Comprehensive documentation for JVM options does not really exist: # per the usual entropy of long projects, the only true source of # truth is the source of the specific openjdk. # # As of 2020, decent online compendiums are # and # # ORCL's documentation ## Various historical option settings # Java7 on 64bit optimizations #java.options=-d64 -Xmx16g -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=2g # Set the JVM to use a maximum of 1GB of RAM (only works for 64bit JVMs) #java.options=-d64 -Xmx1g # Use the G1 garbage collector stablized with jdk1.7.0_04, printing GC details #java.options=-d64 -Xmx4g -XX:+UseG1GC # Use a separate concurrent GC thread (java-1.6_14 or later) #java.options=-d64 -Xmx8g -XX:+UseConcMarkSweepGC # Verbose garbage collection #java.options=-verbos:gc -XX:+PrintGCDetails # Java 5 era (???) flag to GC class definitions #java.options=-XX:+CMSPermGenSweepingEnabled # The unloading of class definitions is a per jvm policy. For # implementations which run out of permgen space, the following should # help things out. #java.options=-d64 -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=1g # Enable assertions specified via the JVM contract # TODO move all use of org.armedbear.lisp.Debug assertions to this interface. #java.options=-ea ## ABCL Development # skips the compilation of Lisp sources in Netbeans # (for debugging compiler-pass1.lisp and subsequent passes) #abcl.compile.lisp.skip=true # JVM option to execute when debugging the Lisp compilation via 'abcl.compile.lisp.debug' # Debug the compilation by connecting a JVM debugger to localhost:6789 via JDWP. #abcl.compile.lisp.debug.jvmarg=-agentlib:jdwp=transport=dt_socket,server=y,address=6789,suspend=y