ristretto

v0.28.0

v0.28.0 Jan 26 2026 at 05:26 UTC

Added

  • implement async threading
  • initial jpms support
  • implement comprehensive bytecode and attribute verification
  • implement invokedynamic instruction
  • implement hidden classes
  • enhance interface method resolution and string constant initialization
  • implement reflection
  • implement lambda support
  • configure class object module
  • add monitorenter and monitorexit instructions
  • initial threading implementation
  • implement java/lang/NullPointerException.getExtendedNPEMessage()Ljava/lang/String;
  • implement jdk/internal/loader/BootLoader.setBootLoaderUnnamedModule0(Ljava/lang/Module;)V
  • implement java/lang/Class.getRecordComponents0()[Ljava/lang/reflect/RecordComponent;

Fixed

  • isolate GC to VM instance
  • improve performance
  • improve cli exception cause reporting
  • optimize mutf8
  • correct tableswitch and lookupswitch negative offsets
  • update class loading to comply with JVMS 5.5
  • handle backward jumps to method entry and enable ignored tests
  • stub java/lang/NullPointerException.getExtendedNPEMessage()Ljava/lang/String; to return null
  • register dynamically created classes

Other

  • improve lint configuration
  • rename mutf8 benchmark
  • Fix lookupswitch type cast error
  • Add test for lookupswitch bug
  • update to reqwest=0.13.0
  • update rustdoc references section
  • update java versions
  • add field initialization tests and docs
  • correct cyclic crate dependencies with ristretto_jimage
  • correct clippy lints
  • Implement invokedynamic support and MethodHandleNatives updates for JDK 17+ compatibility