ristretto

v0.21.0

v0.21.0 Jun 20 2025 at 22:15 UTC

Added

  • add java.io.ObjectInputStream and java.io.ObjectOutputStream intrinsics
  • add intrinsic support for basic file io
  • add java/lang/ref/PhantomReference intrinsics
  • add OS specific file intrinsics
  • implemented java.io.ObjectStreamClass.hasStaticInitializer(Ljava/lang/Class;)Z

Fixed

  • correct mutf-8 class file string encoding/decoding as well as add utf-16 Java 9+ string support
  • add invokedynamic bootstrap method descriptor verification

Other

  • [breaking] change VM parameter types from Vec to &[T] for zero-allocation and improved ergonomics
  • optimize Reference enum memory
  • [breaking] update ConstantPool try_get_utf8, try_get_class, try_get_string, try_get_module, and try_get_package to return &str instead of &String. Updated Class to use the same class name reference from constant pool instead of copying the string into the struct.
  • create compile time intrinsic method registry
  • add classfile attributes documentation
  • update rust doc formatting
  • add constants for java versions
  • optimize file reads by removing iterative type conversion from u8->i8. Optimized Reference Vec signed<->unsigned type conversions.
  • add java.lang.invoke.DirectMethodHandle$Holder trampoline methods on class definition
  • remove unnecessary version file parsing on startup when the full java version is specified
  • remove unnecessary call to obtain current directory on initialization
  • update to phf=0.12.1
  • remove lint warning on windows
  • remove unnecessary java version from intrinsics registry
  • correct clippy lints