[#105882] [Ruby master Bug#18280] Segmentation Fault in rb_utf8_str_new_cstr(NULL) — "ukolovda (Dmitry Ukolov)" <noreply@...>

Issue #18280 has been reported by ukolovda (Dmitry Ukolov).

13 messages 2021/11/01

[#105897] [Ruby master Bug#18282] Rails CI raises Segmentation fault with ruby 3.1.0dev supporting `Class#descendants` — "yahonda (Yasuo Honda)" <noreply@...>

Issue #18282 has been reported by yahonda (Yasuo Honda).

12 messages 2021/11/02

[#105909] [Ruby master Misc#18285] NoMethodError#message uses a lot of CPU/is really expensive to call — "ivoanjo (Ivo Anjo)" <noreply@...>

Issue #18285 has been reported by ivoanjo (Ivo Anjo).

37 messages 2021/11/02

[#105920] [Ruby master Bug#18286] Universal arm64/x86_84 binary built on an x86_64 machine segfaults/is killed on arm64 — "ccaviness (Clay Caviness)" <noreply@...>

Issue #18286 has been reported by ccaviness (Clay Caviness).

16 messages 2021/11/03

[#105928] [Ruby master Feature#18287] Support nil value for sort in Dir.glob — "Strech (Sergey Fedorov)" <noreply@...>

Issue #18287 has been reported by Strech (Sergey Fedorov).

16 messages 2021/11/04

[#105944] [Ruby master Bug#18289] Enumerable#to_a should delegate keyword arguments to #each — "Ethan (Ethan -)" <noreply@...>

Issue #18289 has been reported by Ethan (Ethan -).

8 messages 2021/11/05

[#105967] [Ruby master Bug#18293] Time.at in master branch was 25% slower then Ruby 3.0 — "watson1978 (Shizuo Fujita)" <noreply@...>

Issue #18293 has been reported by watson1978 (Shizuo Fujita).

17 messages 2021/11/08

[#106008] [Ruby master Bug#18296] Custom exception formatting should override `Exception#full_message`. — "ioquatix (Samuel Williams)" <noreply@...>

Issue #18296 has been reported by ioquatix (Samuel Williams).

14 messages 2021/11/10

[#106033] [Ruby master Bug#18330] Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation — "xtkoba (Tee KOBAYASHI)" <noreply@...>

Issue #18330 has been reported by xtkoba (Tee KOBAYASHI).

10 messages 2021/11/11

[#106053] [Ruby master Misc#18335] openindiana ruby 3.1 preview needs --disable-dtrace — "stes (David Stes)" <noreply@...>

Issue #18335 has been reported by stes (David Stes).

14 messages 2021/11/14

[#106069] [Ruby master Feature#18339] GVL instrumentation API — "byroot (Jean Boussier)" <noreply@...>

Issue #18339 has been reported by byroot (Jean Boussier).

13 messages 2021/11/15

[#106145] [Ruby master Misc#18346] DevelopersMeeting20211209Japan — "mame (Yusuke Endoh)" <noreply@...>

Issue #18346 has been reported by mame (Yusuke Endoh).

11 messages 2021/11/18

[#106173] [Ruby master Feature#18349] Let --jit enable YJIT — "k0kubun (Takashi Kokubun)" <noreply@...>

Issue #18349 has been reported by k0kubun (Takashi Kokubun).

8 messages 2021/11/19

[#106175] [Ruby master Feature#18351] Support anonymous rest and keyword rest argument forwarding — "jeremyevans0 (Jeremy Evans)" <noreply@...>

Issue #18351 has been reported by jeremyevans0 (Jeremy Evans).

10 messages 2021/11/19

[#106279] [Ruby master Feature#18364] Add GC.stat_size_pool for Variable Width Allocation — "peterzhu2118 (Peter Zhu)" <noreply@...>

Issue #18364 has been reported by peterzhu2118 (Peter Zhu).

14 messages 2021/11/25

[#106308] [Ruby master Feature#18367] Stop the interpreter from escaping error messages — "mame (Yusuke Endoh)" <noreply@...>

Issue #18367 has been reported by mame (Yusuke Endoh).

13 messages 2021/11/29

[#106314] [Ruby master Feature#18368] Range#step semantics for non-Numeric ranges — "zverok (Victor Shepelev)" <noreply@...>

Issue #18368 has been reported by zverok (Victor Shepelev).

39 messages 2021/11/29

[#106341] [Ruby master Bug#18369] users.detect(:name, "Dorian") as shorthand for users.detect { |user| user.name == "Dorian" } — dorianmariefr <noreply@...>

Issue #18369 has been reported by dorianmariefr (Dorian Mari辿).

14 messages 2021/11/30

[#106347] [Ruby master Feature#18370] Call Exception#full_message to print exceptions reaching the top-level — "Eregon (Benoit Daloze)" <noreply@...>

Issue #18370 has been reported by Eregon (Benoit Daloze).

10 messages 2021/11/30

[ruby-core:105982] Ruby 3.1.0 Preview 1 Released

From: "NARUSE, Yui" <naruse@...>
Date: 2021-11-09 10:15:26 UTC
List: ruby-core #105982
We are pleased to announce the release of Ruby 3.1.0-preview1.



## YJIT: New experimental in-process JIT compiler


Ruby 3.1 merges YJIT, a new in-process JIT compiler developed by Shopify.

Since [Ruby 2.6 introduced MJIT in
2018](https://www.ruby-lang.org/en/news/2018/12/25/ruby-2-6-0-released/),
its performance greatly improved, and finaly [we achieved Ruby3x3 last
year](https://www.ruby-lang.org/en/news/2020/12/25/ruby-3-0-0-released/).
But even though Optcarrot has shown impressive speedups, the JIT
hasn't benefited real world business applications.

Recently Shopify contributed many Ruby improvements to speed up their
Rails application. YJIT is an important contribution, and aims to
improve the performance of Rails applications.

Though MJIT is a method-based JIT compiler and uses an external C
compiler, YJIT uses Basic Block Versioning and includes JIT compiler
inside it. With Lazy Basic Block Versioning (LBBV) it first compiles
the beggining of a method, and incrementaly compiles the rest when the
type of arguments and variables are dynamically determined. See [YJIT:
a basic block versioning JIT compiler for
CRuby](https://dl.acm.org/doi/10.1145/3486606.3486781) for a detailed
introduction.

With this technology, YJIT achieves both fast warmup time and
performance improvements on most real-world software, up to 22% on
railsbench, 39% on liquid-render.

<!-- 試す人向けのお知らせ -->

YJIT is still an experimental feature, and as such, it is disabled by
default. If you want to use this, specify the `--yjit` command-line
option to enable YJIT. It is also limited to macOS & Linux on x86-64
platforms for now.

* https://bugs.ruby-lang.org/issues/18229
* https://shopify.engineering/yjit-just-in-time-compiler-cruby
* https://www.youtube.com/watch?v=PBVLf3yfMs8

## debug gem: A new debugger

A new debugger [debug.gem](https://github.com/ruby/debug) is bundled.
debug.gem is fast debugger implementation and it provides many
features like remote debugging, colorful REPL, IDE (VSCode)
integration and more. It replaces `lib/debug.rb` standard library.

## error_highlight: Fine-grained error location in backtrace

A built-in gem, error_highlight, has been introduced. It includes
fine-grained error location in backtrace:

```
$ ruby test.rb
test.rb:1:in `<main>': undefined method `time' for 1:Integer (NoMethodError)

1.time {}
 ^^^^^
Did you mean?  times
```

This gem is enabled by default. You can disable it by using a
command-line option `--disable-error_highlight`. See [the
repository](https://github.com/ruby/error_highlight) in detail.

## Irb improvement

To be described in next preview.

## Other Notable New Features

### Language

* Values in Hash literals and keyword arguments can be omitted. [Feature #14579]
  * `{x:, y:}` is a syntax sugar of `{x: x, y: y}`.
  * `foo(x:, y:)` is a syntax sugar of `foo(x: x, y: y)`.

* Pin operator in pattern matching now takes an expression. [Feature #17411]

```ruby
Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a
#=> [[3, 5], [5, 7], [11, 13]]
```


### RBS

RBS is a language to describe the structure of Ruby programs. See [the
repository](https://github.com/ruby/rbs) for detail.

Updates since Ruby 3.0.0:

* `rbs collection` has been introduced to manage gems' RBSs.
[doc](https://github.com/ruby/rbs/blob/master/docs/collection.md)
* Many signatures for built-in and standard libraries have been added/updated.
* It includes many bug fixes and performance improvements too.

See [the CHANGELOG.md](https://github.com/ruby/rbs/blob/master/CHANGELOG.md)
for more information.

### TypeProf

TypeProf is a static type analyzer for Ruby. It generates a prototype
of RBS from non-type-annotated Ruby code. See [the
document](https://github.com/ruby/typeprof/blob/master/doc/doc.md) for
detail.

Updates since Ruby 3.0.0:

* [Experimental IDE
support](https://github.com/ruby/typeprof/blob/master/doc/ide.md) has
been implemented.
* Many bug fixes and performance improvements.

## Performance improvements

* MJIT
  * For workloads like Rails, the default `--jit-max-cache` is changed
from 100 to 10000.
    The JIT compiler no longer skips compilation of methods longer
than 1000 instructions.
  * To support Zeitwerk of Rails, JIT-ed code is no longer cancelled
    when a TracePoint for class events is enabled.

## Other notable changes since 3.0

* One-line pattern matching, e.g., `ary => [x, y, z]`, is no longer
experimental.
* Multiple assignment evaluation order has been changed slightly. [Bug #4443]]
  * `foo[0], bar[0] = baz, qux` was evaluated in order `baz`, `qux`,
`foo`, and then `bar` in Ruby 3.0. In Ruby 3.1, it is evaluated in
order `foo`, `bar`, `baz`, and then `qux`.
* Variable Width Allocation: Strings (experimental) [[Bug
#18239]](https://bugs.ruby-lang.org/issues/18239)

### Standard libraries updates

* Some standard libraries are updated.
  * RubyGems
  * Bundler
  * RDoc 6.4.0
  * ReLine
  * JSON 2.6.0
  * Psych 4.0.2
  * FileUtils 1.6.0
  * Fiddle
  * StringIO 3.0.1
  * IO::Console 0.5.9
  * IO::Wait 0.2.0
  * CSV
  * Etc 1.3.0
  * Date 3.2.0
  * Zlib 2.1.1
  * StringScanner
  * IpAddr
  * Logger 1.4.4
  * OStruct 0.5.0
  * Irb
  * Racc 1.6.0
  * Delegate 0.2.0
  * Benchmark 0.2.0
  * CGI 0.3.0
  * Readline(C-ext) 0.1.3
  * Timeout 0.2.0
  * YAML 0.2.0
  * URI 0.11.0
  * OpenSSL
  * DidYouMean
  * Weakref 0.1.1
  * Tempfile 0.1.2
  * TmpDir 0.1.2
  * English 0.7.1
  * Net::Protocol 0.1.2
  * Net::Http 0.2.0
  * BigDecimal
  * OptionParser 0.2.0
  * Set
  * Find 0.1.1
  * Rinda 0.1.1
  * Erb
  * NKF 0.1.1
  * Base64 0.1.1
  * OpenUri 0.2.0
  * SecureRandom 0.1.1
  * Resolv 0.2.1
  * Resolv::Replace 0.1.0
  * Time 0.2.0
  * PP 0.2.1
  * Prettyprint 0.1.1
  * Drb 2.1.0
  * Pathname 0.2.0
  * Digest 3.1.0.pre2
  * Un 0.2.0
* The following bundled gems are updated.
  * minitest 5.14.4
  * power_assert 2.0.1
  * rake 13.0.6
  * test-unit 3.5.0
  * rbs 1.6.2
  * typeprof 0.20.0
* The following default gems are now bundled gems.
  * net-ftp
  * net-imap
  * net-pop
  * net-smtp
  * matrix
  * prime

See [NEWS](https://github.com/ruby/ruby/blob/ruby_3_1_0_preview1/NEWS.md)
or [commit logs](https://github.com/ruby/ruby/compare/v3_0_0...ruby_3_1_0_preview1)
for more details.

With those changes, [2963 files changed, 529321 insertions(+), 92305
deletions(-)](https://github.com/ruby/ruby/compare/v3_0_0...ruby_3_1_0_preview1#file_bucket)
since Ruby 3.0.0!

## Download

* <https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0-preview1.tar.gz>

      SIZE: 20821221
      SHA1: 40dfd3db076a49fab9a0eee51e89d9b3d16a4e23
      SHA256: 540f49f4c3aceb1a5d7fb0b8522a04dd96bc4a22f9660a6b59629886c8e010d4
      SHA512: 63f528f20905827d03649ed9804e4a4e5c15078f9c6c8efcfb306baa7baafa17a406eb09a2c08b42e151e14af33b1aadbd9fb1cc84f9353d070b54bbf1ff950d

* <https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0-preview1.tar.xz>

      SIZE: 15742844
      SHA1: 22aa861b17031cd1b163b7443f5f2f5897c5895e
      SHA256: 86a836ad42f6a7a469fce71ffec48fd3184af55bf79e488b568a4f64adee551d
      SHA512: bdbd7c624197ca478658280d84123a8c12ae72425bc566dcc75989c5b5ef114dd57e64efc09e2413ed615d9b47621a70ace0f3612e8ca7ba853822ad9e88c0b0

* <https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0-preview1.zip>

      SIZE: 25019629
      SHA1: ef5fa22890e55935db4b96b3089a8aea1335bd85
      SHA256: 4e8d118b2365164873148ac545a8fa36c098b846a9b19ebb9037f8ee9adb4414
      SHA512: 917803aac0848e00871614a09740b5c9cca26f200d68580dde61666633f1b7fee506e25ea4ed0c38eb20149417bf9f1ed449a4d2aec5b726de670e7177e5c07a

## What is Ruby

Ruby was first developed by Matz (Yukihiro Matsumoto) in 1993,
and is now developed as Open Source. It runs on multiple platforms
and is used all over the world especially for web development.

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next