Skip to content

TruffleRuby - GraalVM Community Edition 19.2.0

Compare
Choose a tag to compare
@ezzarghili ezzarghili released this 20 Aug 18:10
· 14752 commits to master since this release

Ruby is an experimental language in the GraalVM 19.2.0 release. More information is available on the GraalVM website. Changes in 19.2.0 (from the project changelog):

New features:

  • Fiddle has been implemented.

Bug fixes:

  • Set RbConfig::CONFIG['ruby_version'] to the same value as the TruffleRuby version. This fixes reusing C extensions between different versions of TruffleRuby with Bundler (#1715).
  • Fixed Symbol#match returning MatchData (#1706).
  • Allow Time#strftime to be called with binary format strings.
  • Do not modify the argument passed to IO#write when the encoding does not match (#1714).
  • Use the class where the method was defined to check if an UnboundMethod can be used for #define_method (#1710).
  • Fixed setting $~ for Enumerable and Enumerator::Lazy's #grep and #grep_v.
  • Improved errors when interacting with single-threaded languages (#1709).

Compatibility:

  • Added Kernel#then (#1703).
  • FFI::Struct#[]= is now supported for inline character arrays.
  • blocking: true is now supported for FFI::Library#attach_function.
  • Implemented Proc#>> and #<< (#1688).
  • Thread.report_on_exception is now true by default like MRI 2.5+.
  • BigDecimal compatibility has been generally improved in several ways.

Changes:

  • An interop read message sent to a Proc will no longer call the Proc.

Performance:

  • Several String methods have been made faster by the usage of vector instructions
    when searching for a single-byte character in a String.
  • Methods needing the caller frame are now better optimized.

The general GraalVM 19.2.0 release notes are available on the graalvm.org website.