Releases: Anyolite/anyolite
Releases · Anyolite/anyolite
Anyolite version 0.13.0
Version 0.13.0
Features
- Full MRI Ruby as alternative implementation
- AnyolitePointer helper class for accessing pointers
- Infrastructure to convert script files into bytecode at runtime and compiletime
- Support for setting and getting instance, class and global variables from Crystal
Breaking changes
- Changed
RClass*
toRClassPtr
to allow compatibility with MRI - Reorganized some macros
- Changed directory structure
- Several code changes for compatibility with MRI
- Block variables for functions definitions have now an underscore in front of them
Usability
- Option for defaulting to usage of RbValue as data container for regular arguments
- Alternate build paths are now passed to Anyolite via the environment variable
ANYOLITE_BUILD_PATH
Security
- Error messages for problems when loading scripts or bytecode files
Bugfixes
- Alternate build paths are not recognized properly in implementation files
- Fixed typo in name of
rb_str_to_cstr
- Fixed inconsistent usage of
rb
in many functions
Anyolite version 0.12.0
Version 0.12.0
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 - 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
- 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
- Default arguments for numeric regular arguments were not processed correctly
- Fixed error when using unions in the style of
Bool?
at some points
Anyolite version 0.11.1
Version 0.11.1
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
- Boolean operator methods with default arguments could not be wrapped correctly
- Some wrappers had undocumented options
Anyolite version 0.11.0
Version 0.11.0
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
Anyolite version 0.10.0
Version 0.10.0
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
Anyolite version 0.9.1
Version 0.9.1
Usability
- Allow for a wrapped function to return nil by default
Bugfixes
- Fixed broken documentation
Anyolite version 0.9.0
Version 0.9.0
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
Anyolite version 0.8.1
Version 0.8.1
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
Anyolite version 0.8.0
Version 0.8.0
Features
- 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
Anyolite version 0.7.0
Version 0.7.0
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
- Default arguments with colons were wrongly assumed to be keywords
- Enabled support for regular string argument with default values
- Fixed incomplete resolution of paths