@@ -7,6 +7,142 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
88## [ Unreleased]
99
10+ ## ` ristretto_cli ` - [ 0.22.0] ( https://github.com/theseus-rs/ristretto/compare/v0.21.0...v0.22.0 ) - 2025-07-07
11+
12+ ### Added
13+ - add Eq trait to class file attributes
14+ - implement java/lang/invoke/MethodHandle.invoke([ Ljava/lang/Object;)Ljava/lang/Object;, java/lang/invoke/MethodHandle.invokeBasic([ Ljava/lang/Object;)Ljava/lang/Object;, java/lang/invoke/MethodHandle.invokeExact([ Ljava/lang/Object;)Ljava/lang/Object;
15+ - implement jdk/internal/misc/Unsafe.park(ZJ)V and jdk/internal/misc/Unsafe.unpark(Ljava/lang/Object;)V
16+ - implement java/lang/ref/Reference.getAndClearReferencePendingList()Ljava/lang/ref/Reference;
17+ - implement java/lang/ref/Reference.hasReferencePendingList()Z and java/lang/ref/Reference.waitForReferencePendingList()V
18+ - implement java/lang/Thread.start0()V
19+ - implement jdk/internal/vm/ContinuationSupport.isSupported0()Z
20+ - implement java/lang/Thread.setPriority0(I)V
21+ - implement java.lang.Thread resume, suspend and stop methods to return UnsupportedOperationException
22+ - implement java/lang/Thread.clearInterruptEvent()V, java/lang/Thread.interrupt0()V, java/lang/Thread.isInterrupted(Z)Z
23+ - implement java/lang/Thread.getThreads()[ Ljava/lang/Thread;
24+ - implement java/lang/Thread.ensureMaterializedForStackWalk(Ljava/lang/Object;)V
25+ - implement jdk/internal/reflect/Reflection.areNestMates(Ljava/lang/Class;Ljava/lang/Class;)Z
26+ - implement jdk/internal/misc/Unsafe.staticFieldBase0(Ljava/lang/reflect/Field;)Ljava/lang/Object;, jdk/internal/misc/Unsafe.staticFieldOffset0(Ljava/lang/reflect/Field;)J, sun/misc/Unsafe.staticFieldBase(Ljava/lang/reflect/Field;)Ljava/lang/Object;, sun/misc/Unsafe.staticFieldOffset(Ljava/lang/reflect/Field;)J
27+ - implement jdk/internal/misc/Unsafe.pageSize()I and sun/misc/Unsafe.pageSize()I
28+
29+ ### Fixed
30+ - correct java/lang/Object.hashCode()I
31+ - correct if_icmpeq and if_icmpne instructions
32+ - correct field shadowing logic
33+ - correct and optimize class polymorphic method lookups
34+ - correct java/lang/invoke/MethodHandleNatives resolve access check logic
35+ - correct field resolution logic in java/lang/invoke/MethodHandleNatives.resolve()
36+ - correct integer/long div/rem instructions when dividing by zero
37+ - correct double/float div/rem instructions when dividing by zero
38+ - correct jdk/internal/misc/Unsafe.get<type >(...) methods to handle partial byte buffers
39+ - correct array index out of bounds behavior
40+ - add class, method type and method handle support to invokedynamic static bootstrap argument resolution
41+ - correct class retrieval for java/lang/invoke/MethodHandleNatives.objectFieldOffset(Ljava/lang/invoke/MemberName;)J
42+ - define empty configuration for jdk/internal/module/ModuleBootstrap.boot()Ljava/lang/ModuleLayer;
43+ - use thread execute for internal vm calls
44+ - lookup classes using existing thread context instead of vm
45+
46+ ### Other
47+ - update Cargo.toml dependencies
48+ - [ ** breaking** ] optimize Instruction enum by introducing TableSwitch and LookupSwitch structs
49+ - reduced direct usages of Reference
50+ - remove fields from object instances
51+ - [ ** breaking** ] refactor class and object fields
52+ - add eq trait to value and reference
53+ - [ ** breaking** ] refactor VM invoke interfaces to combine method name and method descriptor argument into a single method signature argument
54+ - update compatibility tests to run in parallel
55+ - update to Rust 1.88.0
56+ - update JavaObject.to_object(&VM) -> JavaObject.to_object(&Thread)
57+ - refactored file handle management and created thread handles
58+
59+ ## ` ristretto_vm ` - [ 0.22.0] ( https://github.com/theseus-rs/ristretto/compare/ristretto_vm-v0.21.0...ristretto_vm-v0.22.0 ) - 2025-07-07
60+
61+ ### Added
62+ - implement java/lang/invoke/MethodHandle.invoke([ Ljava/lang/Object;)Ljava/lang/Object;, java/lang/invoke/MethodHandle.invokeBasic([ Ljava/lang/Object;)Ljava/lang/Object;, java/lang/invoke/MethodHandle.invokeExact([ Ljava/lang/Object;)Ljava/lang/Object;
63+ - implement jdk/internal/misc/Unsafe.park(ZJ)V and jdk/internal/misc/Unsafe.unpark(Ljava/lang/Object;)V
64+ - implement java/lang/ref/Reference.getAndClearReferencePendingList()Ljava/lang/ref/Reference;
65+ - implement java/lang/ref/Reference.hasReferencePendingList()Z and java/lang/ref/Reference.waitForReferencePendingList()V
66+ - implement java/lang/Thread.start0()V
67+ - implement jdk/internal/vm/ContinuationSupport.isSupported0()Z
68+ - implement java/lang/Thread.setPriority0(I)V
69+ - implement java.lang.Thread resume, suspend and stop methods to return UnsupportedOperationException
70+ - implement java/lang/Thread.clearInterruptEvent()V, java/lang/Thread.interrupt0()V, java/lang/Thread.isInterrupted(Z)Z
71+ - implement java/lang/Thread.getThreads()[ Ljava/lang/Thread;
72+ - implement java/lang/Thread.ensureMaterializedForStackWalk(Ljava/lang/Object;)V
73+ - implement jdk/internal/reflect/Reflection.areNestMates(Ljava/lang/Class;Ljava/lang/Class;)Z
74+ - implement jdk/internal/misc/Unsafe.staticFieldBase0(Ljava/lang/reflect/Field;)Ljava/lang/Object;, jdk/internal/misc/Unsafe.staticFieldOffset0(Ljava/lang/reflect/Field;)J, sun/misc/Unsafe.staticFieldBase(Ljava/lang/reflect/Field;)Ljava/lang/Object;, sun/misc/Unsafe.staticFieldOffset(Ljava/lang/reflect/Field;)J
75+ - implement jdk/internal/misc/Unsafe.pageSize()I and sun/misc/Unsafe.pageSize()I
76+
77+ ### Fixed
78+ - correct java/lang/Object.hashCode()I
79+ - correct if_icmpeq and if_icmpne instructions
80+ - correct integer/long div/rem instructions when dividing by zero
81+ - correct double/float div/rem instructions when dividing by zero
82+ - correct jdk/internal/misc/Unsafe.get<type >(...) methods to handle partial byte buffers
83+ - correct field shadowing logic
84+ - correct array index out of bounds behavior
85+ - add class, method type and method handle support to invokedynamic static bootstrap argument resolution
86+ - correct and optimize class polymorphic method lookups
87+ - correct class retrieval for java/lang/invoke/MethodHandleNatives.objectFieldOffset(Ljava/lang/invoke/MemberName;)J
88+ - correct java/lang/invoke/MethodHandleNatives resolve access check logic
89+ - define empty configuration for jdk/internal/module/ModuleBootstrap.boot()Ljava/lang/ModuleLayer;
90+ - use thread execute for internal vm calls
91+ - lookup classes using existing thread context instead of vm
92+ - correct field resolution logic in java/lang/invoke/MethodHandleNatives.resolve()
93+
94+ ### Other
95+ - reduced direct usages of Reference
96+ - update compatibility tests to run in parallel
97+ - [ ** breaking** ] refactor class and object fields
98+ - update to Rust 1.88.0
99+ - update JavaObject.to_object(&VM) -> JavaObject.to_object(&Thread)
100+ - [ ** breaking** ] refactor VM invoke interfaces to combine method name and method descriptor argument into a single method signature argument
101+ - refactored file handle management and created thread handles
102+ - [ ** breaking** ] optimize Instruction enum by introducing TableSwitch and LookupSwitch structs
103+
104+ ## ` ristretto_macros ` - [ 0.22.0] ( https://github.com/theseus-rs/ristretto/compare/ristretto_macros-v0.21.0...ristretto_macros-v0.22.0 ) - 2025-07-07
105+
106+ ### Other
107+ - update Cargo.toml dependencies
108+
109+ ## ` ristretto_jit ` - [ 0.22.0] ( https://github.com/theseus-rs/ristretto/compare/ristretto_jit-v0.21.0...ristretto_jit-v0.22.0 ) - 2025-07-07
110+
111+ ### Fixed
112+ - correct and optimize class polymorphic method lookups
113+
114+ ### Other
115+ - [ ** breaking** ] optimize Instruction enum by introducing TableSwitch and LookupSwitch structs
116+
117+ ## ` ristretto_classloader ` - [ 0.22.0] ( https://github.com/theseus-rs/ristretto/compare/ristretto_classloader-v0.21.0...ristretto_classloader-v0.22.0 ) - 2025-07-07
118+
119+ ### Added
120+ - implement java/lang/invoke/MethodHandle.invoke([ Ljava/lang/Object;)Ljava/lang/Object;, java/lang/invoke/MethodHandle.invokeBasic([ Ljava/lang/Object;)Ljava/lang/Object;, java/lang/invoke/MethodHandle.invokeExact([ Ljava/lang/Object;)Ljava/lang/Object;
121+
122+ ### Fixed
123+ - correct java/lang/Object.hashCode()I
124+ - correct if_icmpeq and if_icmpne instructions
125+ - correct field shadowing logic
126+ - correct and optimize class polymorphic method lookups
127+ - correct java/lang/invoke/MethodHandleNatives resolve access check logic
128+ - correct field resolution logic in java/lang/invoke/MethodHandleNatives.resolve()
129+
130+ ### Other
131+ - reduced direct usages of Reference
132+ - remove fields from object instances
133+ - [ ** breaking** ] refactor class and object fields
134+ - add eq trait to value and reference
135+ - [ ** breaking** ] refactor VM invoke interfaces to combine method name and method descriptor argument into a single method signature argument
136+
137+ ## ` ristretto_classfile ` - [ 0.22.0] ( https://github.com/theseus-rs/ristretto/compare/ristretto_classfile-v0.21.0...ristretto_classfile-v0.22.0 ) - 2025-07-07
138+
139+ ### Added
140+ - add Eq trait to class file attributes
141+ - implement java/lang/invoke/MethodHandle.invoke([ Ljava/lang/Object;)Ljava/lang/Object;, java/lang/invoke/MethodHandle.invokeBasic([ Ljava/lang/Object;)Ljava/lang/Object;, java/lang/invoke/MethodHandle.invokeExact([ Ljava/lang/Object;)Ljava/lang/Object;
142+
143+ ### Other
144+ - [ ** breaking** ] optimize Instruction enum by introducing TableSwitch and LookupSwitch structs
145+
10146## ` ristretto_cli ` - [ 0.21.0] ( https://github.com/theseus-rs/ristretto/compare/v0.20.0...v0.21.0 ) - 2025-06-20
11147
12148### Added
0 commit comments