ristretto

Releases

v0.9.0

v0.9.0 Oct 15 2024 at 16:26 UTC

💥 Breaking changes

  • update vm to be async (#56)
  • rename VM.class() to VM.load_class() and VM.load() to VM.class() (#68)

✨ Enhancements

  • add stack size to frame debug logging (#65)
  • enable wasm32 builds (#61)
  • update vm to be async (#56)
  • implement Reflection.getCallerClass() (#55)
  • implement native method CDS.getRandomSeedForDumping()J (#48)
  • add support for invoking interface method ref (#47)

🐞 Bug fixes

  • stub implementation of java.lang.ref.Reflection.refersTo0() (#69)
  • correct invokeinterface instruction class resolution (#67)
  • increase windows stack size to 8MB (#66)
  • implement Class.getSuperclass() and Class.isAssignableFrom() (#64)
  • correct invokespecial instructions to only use methods from the class hierarchy (#63)
  • implement java.lang.Throwable.fillInStackTrace() (#62)
  • implement java.lang.System.mapLibraryName() (#60)
  • implement java.lang.System.identityHashCode() (#59)
  • implement java.io.UnixFileSystem.initIDs() (#58)
  • implement Class.is_array (#57)
  • corrected bug where lushr instruction was using incorrect mask (#50)
  • correct class interface loading and association (#49)

🛠️ Other improvements

  • rename VM.class() to VM.load_class() and VM.load() to VM.class() (#68)
  • update frame to have interior mutability (#54)
  • update Frame to reference CallStack (#53)
  • update CallStack to store reference to VM (#52)
  • update call stack to have interior mutability of frames (#51)

v0.8.1

v0.8.1 Oct 11 2024 at 19:16 UTC

🐞 Bug fixes

  • correct constant pool formatted string values (#45)
  • correct bipush to support negative values; return void from CDS.initializeFromArchive() (#44)

🛠️ Other improvements

  • remove unnecessary instanceof option check (#46)

v0.8.0

v0.8.0 Oct 10 2024 at 23:28 UTC

💥 Breaking changes

  • initial vm (#43)
  • removed cycle between ClassLoader and Class (#34)
  • improve class loader interface (#33)

✨ Enhancements

  • initial vm (#43)
  • update lookupswitch instruction to use an IndexMap (#35)
  • improve class loader interface (#33)
  • add reserved impdep1 and impdep2 instructions (#32)

🐞 Bug fixes

  • removed cycle between ClassLoader and Class (#34)

v0.7.0

v0.7.0 Aug 22 2024 at 03:42 UTC

💥 Breaking changes

  • correct definition of goto_w and jsr_w definitions (#31)
  • optimize jar class loader by deferring class file loading (#28)

✨ Enhancements

  • add jar manifest (#30)

🐞 Bug fixes

  • correct definition of goto_w and jsr_w definitions (#31)

📦 Build system

  • enable dashmap inline feature (#29)

🛠️ Other improvements

  • optimize jar class loader by deferring class file loading (#28)
  • add class loader benchmarks (#27)

v0.6.0

v0.6.0 Aug 15 2024 at 19:14 UTC

💥 Breaking changes

  • remove Default trait from class loader (#23)
  • change class loader function names (#22)

✨ Enhancements

  • initial Java runtime library support (#24)

🐞 Bug fixes

  • correct panics with invalid instructions (#25)

📖 Documentation

  • add runtime class loader example (#26)

🛠️ Other improvements

  • remove Default trait from class loader (#23)
  • change class loader function names (#22)

v0.5.0

v0.5.0 Aug 9 2024 at 05:03 UTC

💥 Breaking changes

  • remove ClassFile.source_file() (#16)

✨ Enhancements

  • initial classloader crate (#20)
  • add java 24 version (#17)

📦 Build system

  • fix code coverage reporting (#21)
  • add wasm32 builds (#18)

🛠️ Other improvements

  • remove ClassFile.source_file() (#16)
  • add deserialization fuzz testing (#15)

v0.4.0

v0.4.0 Jul 27 2024 at 02:15 UTC

💥 Breaking changes

  • remove unknown version support (#14)
  • correct mutf8 encoding panics discovered with fuzz tests (#12)

✨ Enhancements

  • add ConstantPool try_get_ functions (#13)

🐞 Bug fixes

  • correct mutf8 encoding panics discovered with fuzz tests (#12)

🛠️ Other improvements

  • remove unknown version support (#14)

v0.3.0

v0.3.0 Jul 24 2024 at 03:07 UTC

💥 Breaking changes

  • use instruction enum instead of bytes for code (#10)

✨ Enhancements

  • use instruction enum instead of bytes for code (#10)
  • improve class string format (#11)
  • add read class example (#7)

🐞 Bug fixes

  • correct tableswitch and lookupswitch serialization (#9)

v0.2.2

v0.2.2 Jul 18 2024 at 03:58 UTC

✨ Enhancements

  • optimize constant pool access by utilizing a placeholder at index 0 (#6)

🐞 Bug fixes

  • add future unknown Java version support (#5)

v0.2.1

v0.2.1 Jul 14 2024 at 21:02 UTC

✨ Enhancements

  • add methods to the constant pool to simplify adding constants (#4)
  • add as_code() function to class, method and field access flags (#2)
  • improve Display output to include constant pool, code and line table (#1)

📖 Documentation

  • add helloworld example (#3)

v0.2.0

v0.2.0 Jul 10 2024 at 18:11 UTC

✨ Enhancements

  • added Display trait implementations (81a0489)

🐞 Bug fixes

  • added nested class access flags (6dc1742)

v0.1.0

v0.1.0 Jul 9 2024 at 05:48 UTC

✨ Enhancements

  • initial release