Skip to content

Releases: Anyolite/anyolite

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

Anyolite version 0.12.0

13 Jun 15:28
Compare
Choose a tag to compare

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

09 May 21:52
Compare
Choose a tag to compare

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

07 May 15:33
Compare
Choose a tag to compare

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

04 May 21:24
Compare
Choose a tag to compare

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 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

Anyolite version 0.9.1

26 Apr 13:33
Compare
Choose a tag to compare

Version 0.9.1

Usability

  • Allow for a wrapped function to return nil by default

Bugfixes

  • Fixed broken documentation

Anyolite version 0.9.0

13 Apr 22:21
Compare
Choose a tag to compare

Version 0.9.0

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

Anyolite version 0.8.1

02 Apr 21:31
Compare
Choose a tag to compare

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

27 Mar 16:06
Compare
Choose a tag to compare

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

25 Mar 22:30
Compare
Choose a tag to compare

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