Skip to content

Releases: Anyolite/anyolite

Anyolite version 1.1.0

05 Jun 13:28
Compare
Choose a tag to compare

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 of msvcrt
  • 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 and RbRef 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 argument args 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, but gcc 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

18 May 19:08
Compare
Choose a tag to compare

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 and to_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 and RbValue

Bugfixes

  • Fixed error when passing blocks to certain method types
  • Methods inspect, to_s and hash will now correctly respond to annotations
  • Fixed UTF-8 problems in MRI tests
  • Fixed crash on returning a RbRef

Anyolite version 0.17.0

04 May 21:06
Compare
Choose a tag to compare

Version 0.17.0

Features

  • Added annotation to ignore class ancestors

Breaking changes

  • Renamed master branch to main
  • Changed internal representation of wrapped pointers
  • Methods named == with no type specification will now return false instead of an error if types are incompatible

Usability

  • Private ancestors will now be ignored automatically

Anyolite version 0.16.1

02 Jan 17:00
Compare
Choose a tag to compare

Version 0.16.1

Bugfixes

  • Fixed typo in keyword module function wrappers

Anyolite version 0.16.0

30 Dec 13:53
Compare
Choose a tag to compare

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

09 Nov 14:22
Compare
Choose a tag to compare

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 and clone
  • 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

27 Sep 21:03
Compare
Choose a tag to compare

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

13 Sep 20:23
Compare
Choose a tag to compare

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

12 Sep 20:33
Compare
Choose a tag to compare

Version 0.13.1

Bugfixes

  • Fixed documentation

Anyolite version 0.13.0

07 Sep 11:50
Compare
Choose a tag to compare

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* to RClassPtr 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