8.10 (Release 1)

NEW FEATURES

  • Jamaica now supports linking of JNI code in static libraries according to JEP 178.

  • Jamaica now supports JNI version 1.8.

  • Jamaica now supports the Invocation API, making it possible to start the VM from C/C++ code.

  • The JAR Accelerator can now statically optimize Java lambda expressions.

NOW SUPPORTED (OR CHANGED)

  • Jamaica now supports QNX 8.0 x86_64 and aarch64 as target platforms.

  • Jamaica now supports VxWorks 24.03 x86_64 as a target platform.

  • The VM now reserves enough memory for Java stacks of the maximum number of threads. For targets that support demand paging, the additional memory is requested on demand.

  • The jamaicavmdb (debug) and jamaicavmdi (JVMTI) VM variants have been renamed to jamaicavmd and jamaicavmt respectively.

  • Jamaica is now shipped with OpenJDK’s root CA certificates based on jdk8u432.

  • Jamaica is now based on standard classes of OpenJDK version jdk8u432.

  • The fdlibm library used by Jamaica was updated to OpenJDK version jdk8u432.

  • The libffi bundled with Jamaica was updated to version 3.4.7.

  • The FreeType bundled with Jamaica was updated to version 2.13.3.

  • The multicore performance has been improved.

BUG FIXES

  • Fixed JAM-10059: ProcessingConstraint ensures that all suppressed threads have their priority restored at the end of each period.

  • Fixed JAM-9651: The parallel VM no longer terminates with an internal error when the garbage collector is stressed.

  • Fixed JAM-9886: The parallel VM no longer segfaults when the garbage collector is stressed.

  • Fixed JAM-10003: The VM no longer terminates with a segfault when retrieving stack traces for other threads in the parallel VM.

  • Fixed JAM-9736: Disconnecting a DatagramChannel using IPv4 on QNX no longer throws an incorrect exception (java.net.SocketException: Invalid argument).

  • The fix for JAM-9748 (Expanding Java heap in the parallel VM properly) was reverted since it introduced a regression.

  • Fixed JAM-10027: The VM no longer terminates with a segmentation fault when executing a bytecode where an invokevirtual is used for invoking a private method (which is invalid for Java 1.8).

  • Fixed JAM-8554: Operations on file descriptors no longer fail with erroneous "bad file descriptor" messages on QNX when using the parallel VM.

  • Fixed JAM-10080: Heap allocations no longer lead to segfaults in the parallel VM on QNX 7.1.

  • Fixed JAM-9672: The VM does not throw NullPointerException when a JAR file without manifest is accelerated.

  • Fixed JAM-9859: The VM no longer executes incorrect code caused by an incorrect lambda optimization performed by the compiler.

  • Fixed JAM-9977: The end of the immortal memory area is now calculated correctly for 32 bits architectures.

  • Fixed JAM-10098: The VM does not execute incorrect code any more due to a faulty data flow analysis.

  • Fixed JAM-10008: The VM no longer terminates from an internal error caused by broken pthread implementations.

  • Fixed JAM-9902: The Jamaica Ant plugin no longer ignores filesets in the jamaicald task.

  • Fixed JAM-10038: Threads constrained by a ProcessingConstraint are now guaranteed to never run once their CPU budget is exhausted.

  • Fixed JAM-9917: RTSJ constraints from a ThreadGroup are now guaranteed to apply to started threads.

  • Fixed JAM-9916: When using RTSJ, the Linux VM will no longer report false positives about the IDLE scheduler not working.

  • Fixed JAM-6576: The VM is now more strict with class names.

  • Fixed JAM-9847: The JVMTI VM no longer segfaults when using native methods.

  • Fixed JAM-9184: The -destination option no longer accepts empty strings.

  • Fixed JAM-10019: The Builder now accepts static libraries that use 64-bit integers in symbolic lookup tables on Unix systems.