All Versions
21
Latest Version
Avg Release Cycle
-
Latest Release
-

Changelog History
Page 1

  • v0.12.0 Changes

    🔋 Features

    • Automatic wrapping of inherited methods from all non-trivial ancestors
    • 💎 Direct methods for Ruby error messages
    • Usage of self as argument type is now allowed
    • 0️⃣ Option to default to regular args for an entire class

    💥 Breaking changes

    • Renamed wrap_superclass to connect_to_superclass for clarity
    • 👯 Excluded wrapping of dup and clone methods

    Usability

    • 👍 Better handling for abstract classes
    • Correct handling of inspect, to_s and hash methods
    • 📜 Enum class method parse? is now wrapped automatically
    • 👍 Better error messages for invalid data pointers
    • 0️⃣ Default exclusion of unwrappable <= class methods for inherited classes
    • More consistent debug information
    • Error message when trying to wrap slices (for now)
    • ➕ Added default equality method for structs and enums

    🛠 Bugfixes

    • Argument specialization was not possible for operator methods
    • 🛠 Fixed class method exclusions not being recognized
    • 🛠 Fixed config file parsing
    • 🛠 Fixed generic argument parsing for regular arguments
    • 🛠 Fixed error when converting some generics with default arguments
    • 0️⃣ Default arguments for numeric regular arguments were not processed correctly
    • 🛠 Fixed error when using unions in the style of Bool? at some points
  • v0.11.1 Changes

    Usability

    • RbRef values can now be used as argument type
    • Class inheritance wrapping can be disabled
    • Operator methods take arguments using the ForceKeywordArg annotations

    🛠 Bugfixes

    • 0️⃣ Boolean operator methods with default arguments could not be wrapped correctly
    • Some wrappers had undocumented options
  • v0.11.0 Changes

    🔋 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
  • v0.10.0 Changes

    🔋 Features

    • 👌 Support for block arguments
    • 👌 Support for array arguments
    • 👌 Support for hash arguments
    • 👌 Support for symbols, arrays and hashes as returned values
    • 👌 Support for chars
    • Experimental (unsafe) casting of pointers to integers and back

    💥 Breaking changes

    • Rename convert_arg to convert_regular_arg
    • Rename convert_keyword_arg to convert_from_ruby_to_crystal
    • Rename convert_resolved_arg to resolve_regular_arg
    • Rename convert_resolved_keyword_arg to resolve_from_ruby_to_crystal

    Usability

    • 👍 Better error messages when casting incompatible values
    • ➕ Added dummy argument parsing to convert type calls into actual types
    • More intelligent conversions (Char <-> String, Int -> Float, Symbol -> String)

    🛠 Bugfixes

    • 🛠 Fixed reference table throwing an error when increasing counter
    • Call rb_finalize only if reference counter is going to be 0
    • 🛠 Fixed union type parsing
    • ✂ Removed possible error when casting unions
  • v0.9.1 Changes

    Usability

    • 👍 Allow for a wrapped function to return nil by default

    🛠 Bugfixes

    • 🛠 Fixed broken documentation
  • v0.9.0 Changes

    🔋 Features

    • ➕ Additional compatibility layer between Anyolite and mruby
    • 🔧 More configuration options

    💥 Breaking changes

    • 📇 Renamed MrbWrap to Anyolite
    • 📇 Renamed MrbMacro to Anyolite::Macro
    • 💎 Renamed mrb and mruby in the code to rb and ruby
    • 🔧 Reworked configurations for the Rakefile into a class
    • ⬇️ Dropped support for mruby 2

    Safety

    • ⚠ Warning message when a reference table with values is reset
    • ➕ Added pedantic setting for reference table (default)
    • More reliable internal checks for union arguments

    Usability

    • Split macro source file into smaller parts
    • 📚 Update documentation to new code

    🛠 Bugfixes

    • Enums are now correctly tracked in the reference table
  • v0.8.1 Changes

    Usability

    • Explicitly exclude pointers
    • Explicitly exclude procs
    • ➕ Added recompilation options for the Rakefile

    🛠 Bugfixes

    • 🛠 Fixed exception for class methods with empty regular argument list
    • 👍 Allow operator methods for class and module methods
    • 🛠 Fixed path resolution for types starting with ::
    • Resolve generics as arguments for generics properly
    • 🛠 Fix broken floats in mruby
  • v0.8.0 Changes

    🔋 Features

    • 0️⃣ Uses mruby 3.0.0 by default

    💥 Breaking changes

    • 💎 Compatibility with mruby 2.1.2 requires additional flag

    Usability

    • 💎 Casting methods are more compatible between mruby versions
  • v0.7.0 Changes

    🔋 Features

    • 👌 Support for wrapping generics using annotations
    • Non-keyword arguments allow for union and generic type arguments
    • Annotation for non-keyword arguments accepts number as optional argument

    💥 Breaking changes

    • Non-keyword arguments need to be specialized explicitly
    • More consistent wrapping of operator methods

    Usability

    • More helpful error messages when path resolution fails

    🛠 Bugfixes

    • Specialization to new arguments did not allow non-keyword annotations
    • Correct wrapping of most aliased types
    • Methods with non-letter-symbols could not be wrapped
    • 0️⃣ Default arguments with colons were wrongly assumed to be keywords
    • 0️⃣ Enabled support for regular string argument with default values
    • 🛠 Fixed incomplete resolution of paths
  • v0.6.1 Changes

    🛠 Bugfixes

    • Non-public constructor methods could not be wrapped