source: trunk/abcl/abcl.properties.in

Last change on this file was 15407, checked in by Mark Evenson, 12 months ago

build: make building and running a local ABCL easier

(From a suggestion by Slyrus)

Replace use of abcl.javac.{source,target} with the "magic"
ant.build.javac,{source,target} properties.

Explicitly configure 'abcl.release' target to use openjdk8 compilation.

The Java compilation options are perhaps underspecified in terms of
the target JVM in order to support a developer who simply wants to
compile and run locally with least hassles.

When preparing ABCL binaries for wider distribution, the values of the
abcl.build.target.javac and abcl.build.source.java become more
important.

The 'abcl.properties.autoconfigure.*' targets use the
ci/create-build-properties.bash script to set these options for
various openjdk platforms.

  • * *

build: build the wrapper with the release

N.b. the wrapper is a local artifact, not supposed to be shipped with
the release.

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id
File size: 3.4 KB
Line 
1## Ant based build process and runtime settings
2
3## A file named 'abcl.properties' controls settings for the ABCL
4## build.  This is the prototype for its contents.
5
6# Attempt to perform incremental compilation?
7abcl.build.incremental=true
8
9## javac compiler options for ABCL build
10# generate class files for this target JVM
11#ant.build.javac.target=1.8
12# specify Java source compatiblity level
13#ant.build.javac.source=1.6
14
15## Additional site specific startup code to be merged in 'system.lisp' at build time
16#abcl.startup.file=${basedir}/startup.lisp
17
18## java.options sets the invoking JVM options in the abcl wrapper script
19
20# Base JVM settings that work on all supported platforms
21# <> java.options
22java.options=-XshowSettings:vm -Dfile.encoding=UTF-8
23
24## N.b. Ant properties can only be set once, so lines like
25##    java.options=${java.options} further options
26## will NOT work.  Instead one has to "manually" create lines
27
28#<>
29# <java/runtime> ( openjdk11, openjdk13, openjdk14 ) ;
30#
31#java.options=-XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xmx<size> -Xlog:gc
32
33#<>
34#  <java/runtime> openjdk11 ;
35#  rdfs:seeAlso <https://blog.gceasy.io/2020/03/18/7-jvm-arguments-of-highly-effective-applications/> ;
36#java.options=-XX:CompileThreshold=10
37
38#<>
39#  <java/runtime> openjdk8 ;
40#java.options=-XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10
41
42#<>
43#  rdfs:comment "openjdk7 with 64bit optimizations" ;
44#  <java/runtime> openjdk7 ;
45#java.options=-d64 -XX:+UseG1GC
46
47#<>
48#  rdfs:comment "openjdk6 is the minimum supported runtime"
49#  <java/runtime> openjdk6 ;
50#java.options=-d64 -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=1g -XX:+UseConcMarkSweepGC
51
52# Comprehensive documentation for JVM options does not really exist:
53# per the usual entropy of long projects, the only true source of
54# truth is the source of the specific openjdk.
55#
56# As of 2020, decent online compendiums are
57# <https://chriswhocodes.com/> and <http://jvm-options.tech.xebia.fr/#>
58#
59# ORCL's documentation <http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html>
60
61## Various historical option settings
62
63# Java7 on 64bit optimizations
64#java.options=-d64 -Xmx16g -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=2g
65
66# Set the JVM to use a maximum of 1GB of RAM (only works for 64bit JVMs)
67#java.options=-d64 -Xmx1g
68
69# Use the G1 garbage collector stablized with jdk1.7.0_04, printing GC details
70#java.options=-d64 -Xmx4g -XX:+UseG1GC
71
72# Use a separate concurrent GC thread (java-1.6_14 or later)
73#java.options=-d64 -Xmx8g -XX:+UseConcMarkSweepGC
74
75# Verbose garbage collection
76#java.options=-verbos:gc -XX:+PrintGCDetails
77
78# Java 5 era (???) flag to GC class definitions
79#java.options=-XX:+CMSPermGenSweepingEnabled
80
81# The unloading of class definitions is a per jvm policy.  For
82# implementations which run out of permgen space, the following should
83# help things out.
84#java.options=-d64 -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=1g
85
86# Enable assertions specified via the JVM contract
87# TODO move all use of org.armedbear.lisp.Debug assertions to this interface.
88#java.options=-ea
89
90## ABCL Development
91
92# skips the compilation of Lisp sources in Netbeans
93# (for debugging compiler-pass1.lisp and subsequent passes)
94#abcl.compile.lisp.skip=true
95
96# JVM option to execute when debugging the Lisp compilation via 'abcl.compile.lisp.debug'
97# Debug the compilation by connecting a JVM debugger to localhost:6789 via JDWP.
98#abcl.compile.lisp.debug.jvmarg=-agentlib:jdwp=transport=dt_socket,server=y,address=6789,suspend=y
99
100
101
Note: See TracBrowser for help on using the repository browser.