anyolite v0.11.0 Release Notes

  • ๐Ÿ”‹ Features

    • ๐Ÿ’Ž Superclass hierarchies will be transferred to Ruby
    • Wrapping will skip classes if their superclass was not yet wrapped
    • Anyolite.wrap will run multiple tries to ensure superclasses being wrapped first
    • Classes will only be wrapped twice with overwrite: true option
    • ๐Ÿ’Ž Objects may check whether they are created in mruby
    • ๐Ÿ’Ž Ability to call mruby methods for mruby objects from Crystal by their name
    • ๐Ÿ’Ž Ability to call mruby class and module methods from Crystal
    • ๐Ÿ’Ž Macros to get the Ruby equivalents of modules and classes
    • ๐Ÿ’Ž Checks for Ruby method availability from within Crystal
    • Caching of RbValues in the reference table to avoid duplicate objects
    • ๐Ÿ’Ž Storing of pure Ruby objects in GC-safe containers
    • ๐Ÿ’Ž Annotations to enable obtaining Ruby block arguments
    • ๐Ÿ’Ž A method to call contained Ruby procs from their containers in Crystal

    ๐Ÿ’ฅ Breaking changes

    • Reference table now has a reference to the interpreter
    • Interpreter and reference table operate together now
    • Reference table system was reworked completely

    Usability

    • ๐Ÿ“š Updated documentation to new features from 0.10.0 and 0.11.0
    • If nil is expected, cast everything to it without exceptions
    • Simplified internal object casting