NEWS for Ruby 3.1.0

This document is a list of user visible feature changes since the 3.0.0 release, except for bug fixes.

Note that each entry is kept to a minimum, see links for details.

Language changes

For example,

* `{x:, y:}` is a syntax sugar of `{x: x, y: y}`.
* `foo(x:, y:)` is a syntax sugar of `foo(x: x, y: y)`.

Constant names, local variable names, and method names are allowed as key names. Note that a reserved word is considered as a local variable or method name even if it's a pseudo variable name such as self.

Command line options

Core classes updates

Outstanding ones only.

Stdlib updates

Outstanding ones only.

Compatibility issues

Excluding feature bug fixes.

Stdlib compatibility issues

C API updates

Implementation improvements


Static analysis



Miscellaneous changes