Skip to content

Releases: oracle/truffleruby

TruffleRuby - GraalVM Community Edition 19.3.3

04 Aug 21:31
Compare
Choose a tag to compare

TruffleRuby is a high-performance implementation of the Ruby programming language.
TruffleRuby aims to be fully compatible with the standard implementation of Ruby, MRI, version 2.6.5.

The Ruby language component can be added to GraalVM using the gu utility.

More information is available on the GraalVM website: http://www.graalvm.org/docs/reference-manual/languages/ruby/

TruffleRuby - GraalVM Community Edition 19.3.2

12 May 19:36
Compare
Choose a tag to compare

TruffleRuby is a high-performance implementation of the Ruby programming language 2.6.5.

More information is available on the GraalVM website: http://www.graalvm.org/docs/reference-manual/languages/ruby/

TruffleRuby - GraalVM Community Edition 19.3.1

14 Jan 17:24
Compare
Choose a tag to compare

TruffleRuby is a high-performance implementation of the Ruby programming language 2.6.5. More information is available on the GraalVM website. Changes in 19.3.1:

New features:

Compatibility:

  • Implemented rb_gc_register_mark_object and rb_enc_str_asciionly_p (#1856, @chrisseaton).
  • Support for the Darkfish theme for RDoc generation has been added back.

TruffleRuby - GraalVM Community Edition 19.3.0.2

24 Dec 18:38
Compare
Choose a tag to compare

Ruby is an experimental language in the GraalVM 19.3.0.2 release. More information is available on the GraalVM website.

TruffleRuby - GraalVM Community Edition 19.3.0

20 Nov 16:22
Compare
Choose a tag to compare

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

New features:

  • Compilation of C extensions is now done with an internal LLVM toolchain producing both native code and bitcode. This means more C extensions should compile out of the box and this should resolve most linker-related issues.
  • It is no longer necessary to install LLVM for installing C extensions on TruffleRuby.
  • It is no longer necessary to install libc++ and libc++abi for installing C++ extensions on TruffleRuby.
  • On macOS, it is no longer necessary to install the system headers package (#1417).
  • License updated to EPL 2.0/GPL 2.0/LGPL 2.1 like recent JRuby.

Bug fixes:

  • rb_undef_method now works for private methods (#1731, @cky).
  • Fixed several issues when requiring C extensions concurrently (#1565, @eregon).
  • self.method ||= value with a private method now works correctly (#1673, @pitr-ch).
  • Fixed RegexpError: invalid multibyte escape for binary regexps with a non-binary String (#1433, @aardvark179).
  • Arrays now report their methods to other languages for interopability (#1768).
  • Installing sassc now works due to using the LLVM toolchain (#1753).
  • Renamed Truffle::Interop.respond_to? to avoid conflict with Ruby's respond_to? (#1491).
  • Warn only if $VERBOSE is true when a magic comment is ignored (#1757, @nirvdrum).
  • Make C extensions use the same libssl as the one used for the openssl C extension (#1770).

Compatibility:

  • GC.stat can now take an optional argument (#1716, @kirs).
  • Kernel#load with wrap has been implemented (#1739, @chrisseaton).
  • Implemented Kernel#spawn with :chdir (#1492).
  • Implemented rb_str_drop_bytes, notably used by OpenSSL (#1740, @cky).
  • Include executables of default gems, needed for rails new in Rails 6.
  • Use compilation flags similar to MRI for C extension compilation.
  • Warn for gem update --system as it is not fully supported yet and is often not needed.
  • Pass -undefined dynamic_lookup to the linker on macOS like MRI.

Performance:

  • Core methods are no longer always cloned, which reduces memory footprint and should improve warmup.
  • Inline cache calls to rb_intern() with a constant name in C extensions.
  • Improve allocation speed of native handles for C extensions.
  • Improve the performance of NIL_P and INT2FIX in C extensions.
  • Various fixes to improve Rack performance.
  • Optimize String#gsub(String) by not creating a Regexp and using String#index instead.
  • Fixed "FrameWithoutBoxing should not be materialized" compilation issue in TryNode.

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

TruffleRuby - GraalVM Community Edition 19.2.1

15 Oct 18:57
Compare
Choose a tag to compare

Ruby is an experimental language in the GraalVM 19.2.1 release. More information is available on the GraalVM website. Changes in 19.2.1:

  • Updated to use GraalVM 19.2.1 release.

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

TruffleRuby - GraalVM Community Edition 19.2.0.1

13 Sep 17:55
Compare
Choose a tag to compare

Ruby is an experimental language in the GraalVM 19.2.0.1 release. More information is available on the GraalVM website. Changes in 19.2.0.1:

  • Updated to use GraalVM 19.2.0.1 release.

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

TruffleRuby - GraalVM Community Edition 19.2.0

20 Aug 18:10
Compare
Choose a tag to compare

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.

TruffleRuby - GraalVM Community Edition 19.2.0-dev-b01

12 Aug 10:30
Compare
Choose a tag to compare

This is a preview release for 19.2 and we recommend testing it for all users.

TruffleRuby - GraalVM Community Edition 19.1.1

17 Jul 13:02
Compare
Choose a tag to compare

Ruby is an experimental language in the GraalVM 19.1.1 release. More information is available on the GraalVM website. Changes in 19.1.1:

  • Updated to use GraalVM 19.1.1 release.