ristretto
v0.24.0
v0.24.0
Jul 22 2025 at 17:33 UTC
Added
- add background jit compiler
- improve class loader reflection; initial class loader and module support
- implement java/lang/reflect/Array
- implement java/lang/String.intern()Ljava/lang/String;
- add initial string pool
Fixed
- update cli to allow -cp argument for classpath
- do not deep clone java.lang.Class objects
- unbox primitives for constructor reflection
- correct class loading hierarchy logic
- correct java/lang/Class.getRawAnnotations()[B and java/lang/Class.getRawTypeAnnotations()[B to return zero length in byte array when there are no annotations
- correct private method invocation
- reduce gc memory utilization
- add Unsafe support for getting/setting Class static fields
- update java/lang/invoke/MethodHandleNatives.staticFieldOffset(Ljava/lang/invoke/MemberName;)J to get the correct class name
- update java/lang/Class.forName0 to throw ClassNotFoundException for primitive types
- correct multinewarray instruction
- correct jdk.internal.misc.Unsafe put methods
- correct inherited static method invocation
- correct java/lang/System.arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
Other
- introduce -X cli arguments and move --int to -Xint
- stub java/lang/invoke/DelegatingMethodHandle$Holder.reinvoke_L([Ljava/lang/Object;)Ljava/lang/Object;
- stub java/lang/invoke/DelegatingMethodHandle$Holder.delegate([Ljava/lang/Object;)Ljava/lang/Object;
- stub java/lang/invoke/Invokers$Holder.invoker([Ljava/lang/Object;)Ljava/lang/Object;
- stub java/lang/invoke/DirectMethodHandle$Holder.getReference([Ljava/lang/Object;)Ljava/lang/Object;
- consolidate array class creation
- upgrade default java version to 21.0.8.9.1
- move primitive and array class creation into class loader
- remove use of custom garbage collector box
- update jit and main readme
- add timing to compatibility tests
- add method and string integration tests