[前][次][番号順一覧][スレッド一覧]

ruby-changes:70595

From: Kazuhiro <ko1@a...>
Date: Sat, 25 Dec 2021 23:12:28 +0900 (JST)
Subject: [ruby-changes:70595] 53b3c044fc (master): Copy NEWS.md to doc/NEWS-3.1.0.md and update for 3.2.0

https://git.ruby-lang.org/ruby.git/commit/?id=53b3c044fc

From 53b3c044fc6de4e2224f8601dec583ef93d3a20a Mon Sep 17 00:00:00 2001
From: Kazuhiro NISHIYAMA <zn@m...>
Date: Sat, 25 Dec 2021 23:11:13 +0900
Subject: Copy NEWS.md to doc/NEWS-3.1.0.md and update for 3.2.0

---
 NEWS.md           | 542 +-------------------------------------------
 doc/NEWS-3.1.0.md | 657 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 659 insertions(+), 540 deletions(-)
 create mode 100644 doc/NEWS-3.1.0.md

diff --git a/NEWS.md b/NEWS.md
index d5a14175e3c..02fda3cbf99 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,326 +1,18 @@ https://github.com/ruby/ruby/blob/trunk/NEWS.md#L1
-# NEWS for Ruby 3.1.0
+# NEWS for Ruby 3.2.0
 
 This document is a list of user-visible feature changes
-since the **3.0.0** release, except for bug fixes.
+since the **3.1.0** release, except for bug fixes.
 
 Note that each entry is kept to a minimum, see links for details.
 
 ## Language changes
 
-*   The block argument can now be anonymous if the block will
-    only be passed to another method. [[Feature #11256]]
-
-    ```ruby
-    def foo(&)
-      bar(&)
-    end
-    ```
-
-*   Pin operator 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]]
-    ```
-
-*   Pin operator now supports instance, class, and global variables.
-    [[Feature #17724]]
-
-    ```ruby
-    @n = 5
-    Prime.each_cons(2).lazy.find{_1 in [n, ^@n]}
-    #=> [3, 5]
-    ```
-
-*   One-line pattern matching is no longer experimental.
-
-*   Parentheses can be omitted in one-line pattern matching.
-    [[Feature #16182]]
-
-    ```ruby
-    [0, 1] => _, x
-    {y: 2} => y:
-    x #=> 1
-    y #=> 2
-    ```
-
-*   Multiple assignment evaluation order has been made consistent with
-    single assignment evaluation order.  With single assignment, Ruby
-    uses a left-to-right evaluation order.  With this code:
-
-    ```ruby
-    foo[0] = bar
-    ```
-
-    The following evaluation order is used:
-
-    1. `foo`
-    2. `bar`
-    3. `[]=` called on the result of `foo`
-
-    In Ruby before 3.1.0, multiple assignment did not follow this
-    evaluation order.  With this code:
-
-    ```ruby
-    foo[0], bar.baz = a, b
-    ```
-
-    Versions of Ruby before 3.1.0 would evaluate in the following
-    order
-
-    1. `a`
-    2. `b`
-    3. `foo`
-    4. `[]=` called on the result of `foo`
-    5. `bar`
-    6. `baz=` called on the result of `bar`
-
-    Starting in Ruby 3.1.0, the evaluation order is now consistent with
-    single assignment, with the left-hand side being evaluated before
-    the right-hand side:
-
-    1. `foo`
-    2. `bar`
-    3. `a`
-    4. `b`
-    5. `[]=` called on the result of `foo`
-    6. `baz=` called on the result of `bar`
-
-    [[Bug #4443]]
-
-*   Values in Hash literals and keyword arguments can be omitted.
-    [[Feature #14579]]
-
-    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`.
-
-*   Non main-Ractors can get instance variables (ivars) of classes/modules
-    if ivars refer to shareable objects.
-    [[Feature #17592]]
-
-*   A command syntax is allowed in endless method definitions, i.e.,
-    you can now write `def foo = puts "Hello"`.
-    Note that `private def foo = puts "Hello"` does not parse.
-    [[Feature #17398]]
-
 ## Command line options
 
-* `--disable-gems` is now explicitly declared as "just for debugging".
-  Never use it in any real-world codebase.
-  [[Feature #17684]]
-
 ## Core classes updates
 
 Note: We're only listing outstanding class updates.
 
-* Array
-
-    * Array#intersect? is added. [[Feature #15198]]
-
-* Class
-
-    *   Class#subclasses, which returns an array of classes
-        directly inheriting from the receiver, not
-        including singleton classes.
-        [[Feature #18273]]
-
-        ```ruby
-        class A; end
-        class B < A; end
-        class C < B; end
-        class D < A; end
-        A.subclasses    #=> [D, B]
-        B.subclasses    #=> [C]
-        C.subclasses    #=> []
-        ```
-
-* Enumerable
-
-    *   Enumerable#compact is added. [[Feature #17312]]
-
-    *   Enumerable#tally now accepts an optional hash to count. [[Feature #17744]]
-
-    *   Enumerable#each_cons and each_slice to return a receiver. [[GH-1509]]
-
-        ```ruby
-        [1, 2, 3].each_cons(2){}
-        # 3.0 => nil
-        # 3.1 => [1, 2, 3]
-
-        [1, 2, 3].each_slice(2){}
-        # 3.0 => nil
-        # 3.1 => [1, 2, 3]
-        ```
-
-* Enumerator::Lazy
-
-    *   Enumerator::Lazy#compact is added. [[Feature #17312]]
-
-* File
-
-    *   File.dirname now accepts an optional argument for the level to
-        strip path components. [[Feature #12194]]
-
-* GC
-
-    *   "GC.measure_total_time = true" enables the measurement of GC.
-        Measurement can introduce overhead. It is enabled by default.
-        GC.measure_total_time returns the current setting.
-        GC.stat[:time] or GC.stat(:time) returns measured time
-        in milli-seconds. [[[Feature #10917]]]
-
-    *   GC.total_time returns measured time in nano-seconds. [[[Feature #10917]]]
-
-* Integer
-
-    *   Integer.try_convert is added. [[Feature #15211]]
-
-* Kernel
-
-
-    *   Kernel#load now accepts a module as the second argument,
-        and will load the file using the given module as the
-        top-level module. [[Feature #6210]]
-
-* Marshal
-
-    *   Marshal.load now accepts a `freeze: true` option.
-        All returned objects are frozen except for `Class` and
-        `Module` instances. Strings are deduplicated. [[Feature #18148]]
-
-* MatchData
-
-    *   MatchData#match is added [[Feature #18172]]
-
-    *   MatchData#match_length is added [[Feature #18172]]
-
-* Method / UnboundMethod
-
-    *   Method#public?, Method#private?, Method#protected?,
-        UnboundMethod#public?, UnboundMethod#private?,
-        UnboundMethod#protected? have been added. [[Feature #11689]]
-
-* Module
-
-    *   Module#prepend now modifies the ancestor chain if the receiver
-        already includes the argument. Module#prepend still does not
-        modify the ancestor chain if the receiver has already prepended
-        the argument. [[Bug #17423]]
-
-    *   Module#private, #public, #protected, and #module_function will
-        now return their arguments.  If a single argument is given, it
-        is returned. If no arguments are given, nil is returned.  If
-        multiple arguments are given, they are returned as an array.
-        [[Feature #12495]]
-
-* Process
-
-    *   Process.\_fork is added. This is a core method for fork(2).
-        Do not call this method directly; it is called by existing
-        fork methods: Kernel.#fork, Process.fork, and IO.popen("-").
-        Application monitoring libraries can overwrite this method to
-        hook fork events. [[Feature #17795]]
-
-* Struct
-
-    *   Passing only keyword arguments to Struct#initialize is warned.
-        You need to use a Hash literal to set a Hash to a first member.
-        [[Feature #16806]]
-
-    *   StructClass#keyword_init? is added [[Feature #18008]]
-
-* String
-
-    *   Update Unicode version to 13.0.0 [[Feature #17750]]
-        and Emoji version to 13.0 [[Feature #18029]]
-
-    *   String#unpack and String#unpack1 now accept an `offset:` keyword
-        argument to start the unpacking after an arbitrary number of bytes
-        have been skipped. If `offset` is outside of the string bounds
-        `ArgumentError` is raised. [[Feature #18254]]
-
-* Thread
-
-    *   Thread#native_thread_id is added. [[Feature #17853]]
-
-* Thread::Backtrace
-
-    *   Thread::Backtrace.limit, which returns the value to limit backtrace
-        length set by `--backtrace-limit` command line option, is added.
-        [[Feature #17479]]
-
-* Thread::Queue
-
-    *   Thread::Queue.new now accepts an Enumerable of initial values.
-        [[Feature #17327]]
-
-* Time
-
-    *   Time.new now accepts optional `in:` keyword argument for the
-        timezone, as well as `Time.at` and `Time.now`, so that is now
-        you can omit minor arguments to `Time.new`. [[Feature #17485]]
-
-        ```ruby
-        Time.new(2021, 12, 25, in: "+07:00")
-        #=> 2021-12-25 00:00:00 +0700
-        ```
-
-        At the same time, time component strings are converted to
-        integers more strictly now.
-
-        ```ruby
-        Time.new(2021, 12, 25, "+07:30")
-        #=> invalid value for Integer(): "+07:30" (ArgumentError)
-        ```
-
-        Ruby 3.0 or earlier returned probably unexpected result
-        `2021-12-25 07:00:00`, not `2021-12-25 07:30:00` nor
-        `2021-12-25 00:00:00 +07:30`.
-
-    *   Time#strftime supports RFC 3339 UTC for unknown offset local
-        time, `-0000`, as `%-z`. [[Feature #17544]]
-
-* TracePoint
-
-    *   TracePoint.allow_reentry is added to allow reenter while TracePoint
-        callback.
-        [[Feature #15912]]
-
-* $LOAD_PATH
-
-    *   $LOAD_PATH.resolve_feature_path does not raise. [[Feature #16043]]
-
-* Fiber Scheduler
-
-    *   Add support for `Addrinfo.getaddrinfo` using `address_resolve` hook.
-        [[Feature #17370]]
-
-    *   Introduce non-blocking `Timeout.timeout` using `timeout_after` hook.
-        [[Feature #17470]]
-
-    *   Introduce new scheduler hooks `io_read` and `io_write` along with a
-        low level `IO::Buffer` for zero-copy read/write. [[Feature #18020]]
-
-    *   IO hooks `io_wait`, `io_read`, `io_write`, receive the original IO object
-        where possible. [[Bug #18003]]
-
-    *   Make `Monitor` fiber-safe. [[Bug #17827]]
-
-    *   Replace copy coroutine with (... truncated)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]