The Z Garbage Collector is a concurrent, scalable, low latency garbage
collector designed to meet extremely-low-pause-time requirements for
small-to-multi-TB heap sizes.
ZGC can be enabled with the magical incantation:
$ java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC ...
Currently, ZGC is only available for x86_64-linux (though a port for
aarch64-linux may become available at a future time.) There are also a
number of other features that currently aren't present, such as JVMCI
integration (meaning compiler tools like Graal which require JVMCI will
not work with ZGC enabled.)
Signed-off-by: Austin Seipp <aseipp@pobox.com>
* the jre is no longer an official part of the jdk (jmod is
recommended as a replacement when needing to create smaller runtime
images)
* darwin continues to use zulu from azul
* apps that used 10 now use 11 (eclipse, bazel, josm)
38eea804e6 dropped the C and C++ compiler prefixes. Probably more work is needed to make cross work, but this at least helps preserve/establish the pattern.
This OpenJDK packaging has a headless build configuration controlled by
the `minimal` flag, which is regularly build-tested by Hydra, and a
non-headless configuration based on pure Xlib libraries without Gnome
features, which is not normally tested.
Sometime before OpenJDK 8, the !enableGnome2 case broke, because it
needs to link against libXrandr but that wasn't included in the
buildInputs.
If this patch is backported to NixOS 18.03 or earlier, the same fix
needs to be applied to OpenJDK 9.
I have tested OpenJDK versions 8, 9, and 10, but not any other versions.
storePropName will be jsseDefaultStore if the property isn't present, and
jsseDefaultStore is never null, so the branch to use the environment variable
would never be taken.
The env var is supposed to be preferred to jssecacerts, so we can use it as
the default in the call to System.getProperty, and use the null check to fall
back on jsseDefaultStore instead.
http://openjdk.java.net/jeps/283 "Enable GTK 3 on Linux" was included
in OpenJDK 9.
nothing else currently in nixpkgs is using 10, so this just lets us
establish a good baseline as things are ported onto it. if needed,
the build could be parameterized so that any packages that turn out to
need gtk2 could still use it.
JDK 7 was technically EOL'd a while ago, although RedHat etc are still
doing updates I believe. However, JDK 8 is the default in the tree and
really used everywhere, and JDK 7 isn't seeing many updates by current maintainers, so dropping it seems appropriate.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
./bin/java now apparently requires zlib.so, otherwise the whole
thing is busted. This is even required in the minimal configuration.
Unfortunately this impiles a rebuild of *all* OpenJDK packages and
their downstream dependencies.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
* with only one source bundle (per JEP-296), we can use src instead of
srcs, and avoid the need to cd in prePatch
* fetch sources from jdk10u instead of jdk10, to make it easier to
grab updates when they start coming.
* removed commented-out code that became irrelevant in the 8 -> 9
transition (*.pf files, infinality font rendering)
* create jdk10, jre10, and jre10_headless attributes in
all-packages.nix
This continues #23374, which always kept around both attributes, by
always including both propagated files: `propgated-native-build-inputs`
and `propagated-build-inputs`. `nativePkgs` and `crossPkgs` are still
defined as before, however, so this change should only barely
observable.
This is an incremental step to fully keeping the dependencies separate
in all cases.