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