TruffleRuby - GraalVM Community Edition 19.2.0
·
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
returningMatchData
(#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
$~
forEnumerable
andEnumerator::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 forFFI::Library#attach_function
.- Implemented
Proc#>>
and#<<
(#1688). Thread.report_on_exception
is nowtrue
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 theProc
.
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.