All Versions
21
Latest Version
Avg Release Cycle
-
Latest Release
-
Changelog History
Page 1
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
toconnect_to_superclass
for clarity - ๐ฏ Excluded wrapping of
dup
andclone
methods
Usability
- ๐ Better handling for abstract classes
- Correct handling of
inspect
,to_s
andhash
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
toconvert_regular_arg
- Rename
convert_keyword_arg
toconvert_from_ruby_to_crystal
- Rename
convert_resolved_arg
toresolve_regular_arg
- Rename
convert_resolved_keyword_arg
toresolve_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
toAnyolite
- ๐ Renamed
MrbMacro
toAnyolite::Macro
- ๐ Renamed
mrb
andmruby
in the code torb
andruby
- ๐ง 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