Repository navigation
Releases: ekmett/jam
Release list
Candidate SDK and HotSpot preview — macOS arm64
Experimental Candidate SDK and HotSpot provider for macOS arm64, macOS 15.5 or newer. The optimized (release) provider implements jam.vm.Candidate.arm/poll/disarm/complete/epoch.
Source: da99632c3d6f, now included in main by #37. This publishes the Candidate-only build; later private allocation-pressure and scanner changes are not included.
Download jam-jdk-vm-2026.10.09-da99632-candidate-release-macos-arm64.tar.gz, manifest.json, and SHA256SUMS. Verify the archive before extraction:
shasum -a 256 jam-jdk-vm-2026.10.09-da99632-candidate-release-macos-arm64.tar.gz
tar -xzf jam-jdk-vm-2026.10.09-da99632-candidate-release-macos-arm64.tar.gz
export JAVA_HOME="$PWD/jdk"
"$JAVA_HOME/bin/javac" -cp "$JAVA_HOME/lib/jam/jam-vm.jar" Application.java
"$JAVA_HOME/bin/java" -Xshare:off -Xms256m -Xmx256m \
-XX:+UnlockExperimentalVMOptions -XX:+UseJamGC -XX:-UseJVMCICompiler \
--enable-native-access=ALL-UNNAMED \
-Djava.library.path="$JAVA_HOME/lib/jam" \
-cp ".:$JAVA_HOME/lib/jam/jam-vm.jar" ApplicationArchive SHA-256: 25ffd06cd2468b9c69d7ccaf001c00a94a1199fa9bc0d6c504d5b7523c3834bf.
The standalone jam-vm.jar and sources are also attached for build dependencies; runtime use requires the matching provider and JNI bridge. A copied API class does not retrofit Candidate into an older runtime. Missing hooks raise UnsatisfiedLinkError; unsupported collectors raise UnsupportedOperationException. Neither path registers an owner.
Qualification: fresh extraction on actual macOS 15.5; Candidate and Weak probes in interpreter and C2 modes with JNI and GC verification; Epsilon rejection; all native libraries resolved inside the package. All 150 Mach-O files/archives pass the 15.5 deployment audit. See qualification.json and attached probe sources. Earlier provider tests also covered retaining/promoting minor collections and major selection; those earlier tests were not rerun for this publication.
The image reuses the previous macOS producer's JDK resources, with rebuilt HotSpot, Jam adapter and JNI/Java API. This is a plain HotSpot preview: embedded Graal compiler/libgraal modules were not refreshed, Native Image is not qualified, and -Xshare:off is required because the inherited CDS archive is stale. The manifest records actual provenance rather than claiming a new full-image build or all-platform CI result.
Full release-flavor Windows/Linux/macOS runtime builds are running separately at 12518bc. Their results are not claimed for this archive. This preview completes the bounded package in #36.
Jam Native Image static runtime — Linux glibc 2.35
Jam now links its collector and matching C++ runtime into Native Image executables on Linux. Generated programs no longer need Jam runtime sidecars. Ordinary system libraries remain dynamic; this is not a fully static libc build. Keep the generated legal notices in your distribution.
This release-flavor preview includes LabsJDK, Graal, Native Image, the Java API and matching SDK jars from 9392bca. It includes the current exact-slot barriers and optional heap-enumeration support, plus the libgraal snippet-registration repair. The JVM continues to use its packaged shared bridge.
Built and qualified on Ubuntu 22.04.3 with glibc 2.35: 21 native tests, the shared-JVM suite with required Graal compilation, ten Native Image smoke modes, compiled Truffle and relocation all pass. The existing THC WeakThreads Native Image application matches its six-line native-GHC oracle after relocation with only its executable. The qualification file records the scope and timings; this is not a claim about all applications or platforms.
Verify SHA256SUMS, extract into an empty directory, and set JAVA_HOME to graalvm/. Use -XX:+UnlockExperimentalVMOptions -XX:+UseJamGC for Java and --gc=jam for Native Image. The package declares native_image_linkage=static and provides lib/jam/native-image-libraries.txt plus its archive closure. Use its matching SDK jars and build on the oldest system you intend to support.
Only Linux x86_64 is distributed here. macOS static linking has local overlay evidence, not a new canonical release. Windows native static linking passes CI, but Windows Native Image weak-smoke relocation passes in an isolated overlay, not a canonical supplier release; its Microsoft /MD CRT deployment remains unchanged. Actual heap-exhaustion recovery and broader guest coverage remain outside this release's qualification.
Jam Candidate runtimes: C2 clone fix
This fixes the C2 instance-clone crash in #38 and provides the complete Candidate runtime: matching JDK, Graal compiler, Native Image, and guest API.
Release-flavor preview for macOS arm64 (15.5 or newer), Linux x86_64 (glibc 2.35 or newer), and Windows x86_64. Source: 0e36293fa543. The runtime fix is #39; #40 corrects an initialization-barrier test expectation without changing runtime behavior.
Download jam-graalvm-vm-2026.10.09-0e36293-release-macos-arm64.tar.gz, verify SHA256SUMS, extract it, and set JAVA_HOME to graalvm/. The archive includes the matching Truffle/SDK jars. manifest.json records source pins, installation identity, and artifact hashes. Use the bundled lib/jam/jam-vm.jar with this provider.
The original 22 Graal compiler tests pass. So do the packaged libgraal regressions, Native Image suite (including compiled Truffle and relocation), HotSpot/bridge tests, and Candidate ownership probes in both Graal and Native Image. The package and both Candidate executions also pass on actual macOS 15.5. See qualification.json for the precise scope.
All 15 platform CI jobs passed. The published macOS and Linux archives retain their separate local qualification and compatibility-floor evidence. THC's application-level qualification is separate. No private allocation-pressure or scanner changes are included.
Linux x86_64
The matching Linux provider is now available as jam-graalvm-vm-2026.10.09-0e36293-release-linux-x86_64.tar.gz. Use manifest-linux.json and SHA256SUMS-linux; the original macOS manifest.json and its assets are unchanged.
This package was built and tested on glibc 2.35. All 22 native tests, all 22 Graal compiler tests, packaged libgraal, HotSpot/bridge, Native Image, compiled Truffle and relocation checks passed. Candidate ownership probes passed in both Graal and Native Image. The compatibility audit covers 81 ELF files and 61 static libraries containing 920 members; none requires newer than glibc 2.35. See qualification-linux.json and glibc-audit-linux.json for scope and evidence.
Windows x86_64
Use jam-graalvm-vm-2026.10.09-0e36293-release-windows-x86_64.tar.gz, manifest-windows.json, and SHA256SUMS-windows. The package is the exact Windows CI artifact, with matching JDK, Graal compiler, Native Image, guest API, and nine SDK jars.
All five Windows CI jobs passed, including all 22 original compiler tests and the packaged-runtime and Native Image suites. The same archive also passed Candidate ownership probes in both Graal and Native Image on Windows 11. All 697 installed files and nine SDK jars were checked against the published inventory. See qualification-windows.json and ci-windows.json. Native Image requires the platform C/C++ toolchain.
The original macOS and Linux manifests and assets remain unchanged. Each platform manifest can be pinned independently.
Jam VM preview: glibc 2.35
Jam’s Linux x86_64 runtime now supports glibc 2.35, including Ubuntu 22.04.
This release-flavor preview is built from 50b088815374, based on the established queue-only 3cb04509 supplier. It contains LabsJDK, the patched Graal compiler, Native Image/SubstrateVM, Jam’s Java API and the matching SDK jars. It does not include the newer Candidate or card-removal development.
The package was built and tested on Ubuntu 22.04.3 with glibc 2.35. The audit covered 81 ELF files and 53 static archives (783 members). Native tests, all nine JVM/JNI cases, required Graal compilation, Native Image smoke tests, compiled Truffle and relocated execution passed. One existing THC WeakThreads application, bytecode/default, matched all six lines of its recorded native-GHC oracle. The qualification record describes these local results; this is not a GitHub Actions qualification or a claim about every guest application.
Verify SHA256SUMS, extract into an empty directory, and set JAVA_HOME to graalvm/. Use -XX:+UnlockExperimentalVMOptions -XX:+UseJamGC for Java and --gc=jam for Native Image. Use the matching SDK jars shipped alongside the runtime. Native Image requires a C/C++ toolchain; build on the oldest system you intend to support, and ship generated applications with their required companion Jam libraries.
Only the Linux x86_64 GraalVM package is included. The macOS 15.5 package is available in the macOS compatibility release. Existing Windows packages remain in the queue-only release.
Jam GraalVM: Linux release build (8042f8bf)
Jam-backed GraalVM for Linux x86-64, built in release mode from 8042f8bf36b6c09b4cf555787420db43dd7524a7.
These are the existing binaries from the qualified runtime CI run, published without rebuilding or repacking. This release contains the Linux GraalVM package only. The standalone JDK, macOS, and Windows packages are not included.
Check SHA256SUMS, extract the archive, and set JAVA_HOME to its graalvm directory. Enable Jam with -XX:+UnlockExperimentalVMOptions -XX:+UseJamGC; build Native Images with --gc=jam and a platform C/C++ toolchain. Keep the companion Jam libraries with the resulting executable.
Linux requires glibc 2.38 or newer. manifest.json records the source pins, archive digest, installation inventory, and CI qualification. Application-specific Native Image and lifted-weak behavior still needs qualification by its consumer.
Jam VM macOS 15.5 preview (release build)
Jam's queue-only runtime now runs on macOS 15.5, arm64.
This is a release-flavor preview from 50b088815374, based on the queue-only 3cb04509 release. The archive contains LabsJDK, the patched Graal compiler, Native Image/SubstrateVM, Jam's Java API and the matching SDK jars.
The exact archive passed local qualification on macOS 15.5: native tests, packaged library loading, JVM/JNI and compiled Graal checks, Native Image smoke tests, and a relocated compiled Truffle consumer. THC also passed 36 selected JVM checks across both handoff modes. qualification.json records the scope. These are local qualification results, not a GitHub Actions run; the THC checks do not include a THC Native Image build.
Verify SHA256SUMS, extract into an empty directory, and set JAVA_HOME to graalvm/. Use -XX:+UnlockExperimentalVMOptions -XX:+UseJamGC for Java and --gc=jam for Native Image. Native Image needs a C/C++ toolchain; generated applications may need their companion Jam libraries. When building on a newer Mac for macOS 15.5, pass -EMACOSX_DEPLOYMENT_TARGET=15.5 to Native Image.
Only the macOS arm64 GraalVM package is included. Existing Linux and Windows packages remain in the queue-only release. This release preserves the qualified archive byte-for-byte.
Jam runtimes vm-2026.10.08-3cb04509
Prebuilt Jam runtimes from 3cb04509bd91.
These are release preview builds, promoted byte-for-byte from the successful runtime CI run. Download the archive for your platform, verify SHA256SUMS, extract it, and set JAVA_HOME to its graalvm/ or jdk/ directory. See manifest.json for exact source pins, platform requirements, matching SDK JARs and full installation identities. Windows includes tar; use tar -xf to preserve the published layout.
GraalVM includes the matching LabsJDK, patched Graal compiler and Native Image/SubstrateVM. Use -XX:+UnlockExperimentalVMOptions -XX:+UseJamGC for Java and --gc=jam for Native Image. Native Image still needs the platform C/C++ toolchain. Its outputs may require companion Jam libraries; see the deployment documentation.
Qualification covers the producer's runtime regressions. General Haskell System.Mem.Weak integration and arbitrary application Native Image deployment are not claimed. No source runtime rebuild was performed for publication.
Jam runtimes vm-2026.10.07-a7ebfc52
Prebuilt Jam runtimes from a7ebfc52af18.
These are fastdebug preview builds, promoted byte-for-byte from the successful runtime CI run. Download the archive for your platform, verify SHA256SUMS, extract it, and set JAVA_HOME to its graalvm/ or jdk/ directory. See manifest.json for exact source pins, platform requirements, matching SDK JARs and full installation identities. Windows includes tar; use tar -xf to preserve the published layout.
GraalVM includes the matching LabsJDK, patched Graal compiler and Native Image/SubstrateVM. Use -XX:+UnlockExperimentalVMOptions -XX:+UseJamGC for Java and --gc=jam for Native Image. Native Image still needs the platform C/C++ toolchain. Its outputs may require companion Jam libraries; see the deployment documentation.
Qualification covers the producer's runtime regressions. General Haskell System.Mem.Weak integration and arbitrary application Native Image deployment are not claimed. Only products listed in the manifest are available; older runs did not retain plain-JDK artifacts. No source runtime rebuild was performed for publication.