Releases: Anyolite/anyolite
Releases Β· Anyolite/anyolite
Anyolite version 1.1.0
Version 1.1.0
NOTE: This version requires recompilation of mruby and the C files.
NOTE: This version will only work with mruby 3.2.0 and above.
Features
- Added direct bindings to
Regex
from Crystal (Regexp
in Ruby) - Added option to use a separate Ruby interpreter
- Added safeguard to catch non-fatal Crystal exceptions and raise them as Ruby errors
- Added option to transform procs into bytecode
- Added function to disable external program execution
- Added interpreter depth counter
- Updated to mruby 3.2.0
- Updated to MRI 3.0.5
- Added backtrace function for mruby
- Added option to fully protect Crystal values from the Ruby GC
- Added standalone wrappers for class properties
Usability
- Updated mruby config file to use
libucrt
instead ofmsvcrt
- Discarded old and problematic Regex mruby gem
- Made arguments for
Anyolite.call_rb_method_of_object
optional - Added automatic conversion from Ruby class names to class objects in method callers
- Improved testing script
- Added check for
RbValue
andRbRef
to some macro methods - Added ability to pass Ruby blocks via Crystal to Ruby function calls
- Added some internal methods to mruby to handle fibers
- Added some exception checking methods
- Added methods to check reference table size
- Removed now optional
Dir
gem from default build config - Removed need for
use_general_object_format_chars
flag for MRI - Added global option to use keyword args for optional arguments only
Bugfixes
- Fixed error when running
shards install
on Windows - Fixed compilation warning messages for Windows
- Fixed problems with Regexes due to PCRE conflicts
- Fixed problems with Anyolite on Crystal 1.5.1
- Unspecified arguments now always correctly throw warnings instead of confusing errors
- Fixed compiletime error when casting to
Char
- Fixed errors when passing certain name arguments to Macros for calling Ruby functions
- Fixed
Anyolite.call_rb_method_of_object
argumentargs
not being optional - Fixed linker error due to typo in mruby bindings for block functions
- Fixed crash when casting Ruby numbers into objects in some cases
- Fixed script lines not printing exceptions
- Fixed memory leak when calling Ruby scripts and script lines
- Updated tests to account for reworked
inspect
method for enums - Fixed errors when building Anyolite in a path with spaces
- Fixed problems on Linux when
LD
is set, butgcc
should compile - Fixed Crystal functions for accessing global variables in mruby
- Fixed Anyolite to allow enums with types different than
Int32
Anyolite version 1.0.0
Version 1.0.0
This release marks the first full release of Anyolite, mostly
focussed on code quality, specs and bugfixes.
Features
Anyolite.eval
can be used to get return values from script lines- Added check methods for Ruby references
Breaking changes
- Compacted most macro function options into hashes
- Adds default
inspect
andto_s
methods to wrapped enums automatically - Updated mruby to 3.1.0 and MRI to 3.0.4
- Config files now require
rb_minor
argument for MRI specifically
Security
- Closing an interpreter will now correctly clean class and type caches
- Fixed segmentation fault when overwriting Crystal content of a class
- Changed block cache to a stack to avoid overwriting it
Usability
- Completed all wiki entries
- Unit tests in test script
- Converted macro body variables to fresh variables wherever possible
- More compatibility between methods accepting
RbRef
andRbValue
Bugfixes
- Fixed error when passing blocks to certain method types
- Methods
inspect
,to_s
andhash
will now correctly respond to annotations - Fixed UTF-8 problems in MRI tests
- Fixed crash on returning a
RbRef
Anyolite version 0.17.0
Version 0.17.0
Features
- Added annotation to ignore class ancestors
Breaking changes
- Renamed
master
branch tomain
- Changed internal representation of wrapped pointers
- Methods named
==
with no type specification will now returnfalse
instead of an error if types are incompatible
Usability
- Private ancestors will now be ignored automatically
Anyolite version 0.16.1
Version 0.16.1
Bugfixes
- Fixed typo in keyword module function wrappers
Anyolite version 0.16.0
Version 0.16.0
Features
- Added annotation
DefaultOptionalArgsToKeywordArgs
- Added option to include bytecode as an array at compiletime
- Added environment variable for changing the mruby config path
Usability
- Added more debug information
Bugfixes
- Fixed argument error for block methods without arguments
- Fixed build error on Windows while running Github Actions
Anyolite version 0.15.0
Version 0.15.0
Features
- Methods for undefining Ruby methods
Breaking changes
- Excluding copy methods manually will undefine them from Ruby
- Checks for overflow when casting numbers
Usability
- Anyolite now respects exclusions of
dup
andclone
- Instance method exclude annotations on classes or modules will exclude them from all inheriting classes
- Include annotations can reverse global exclusions
Bugfixes
- Ruby exceptions instead of Crystal exceptions for casting overflows
- Casting to
Number
in mruby produced wrong values
Anyolite version 0.14.0
Version 0.14.0
Features
- Support for copying wrapped objects
- Ruby classes and modules can be obtained by name
Breaking changes
- All classes and structs automatically wrap the Crystal
dup
function as a copy constructor - Updates in C glue functions
Anyolite version 0.13.2
Version 0.13.2
Features
- Windows support for the default mruby implementation
Usability
- CI for MRI (on Linux)
Bugfixes
- Fixed macro error for MRI
Anyolite version 0.13.1
Version 0.13.1
Bugfixes
- Fixed documentation
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