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.