Skip to content

Commit ed1054b

Browse files
committed
Advent of Changelog: Day 21
1 parent a214752 commit ed1054b

File tree

13 files changed

+45
-31
lines changed

13 files changed

+45
-31
lines changed

2.4.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ description: Ruby 2.4 full and annotated changelog
1616
-->
1717

1818
* **Released at:** Dec 25, 2016 (<a class="github" href="https://github.com/ruby/ruby/blob/trunk/doc/NEWS-2.4.0">NEWS</a> file)
19-
* **Status (as of Feb 04, 2023):** EOL, latest is 2.4.10
19+
* **Status (as of Dec 21, 2023):** EOL, latest is 2.4.10
2020
* **This document first published:** Oct 14, 2019
21-
* **Last change to this document:** Feb 04, 2023
21+
* **Last change to this document:** Dec 21, 2023
2222

2323
## Highlights[](#highlights)
2424

@@ -189,6 +189,7 @@ New single-method module was introduced, meant to be overridden in order to cont
189189
```
190190
* In Ruby 2.7, new methods [were added](2.7.html#warning-and-) to `Warning` module allowing control over per-category warning suppression;
191191
* In Ruby 3.0, category support [was improved](3.0.html#warningwarn-category-keyword-argument).
192+
* [3.3](3.3.html#new-warning-category-performance): added new warning category: `:performance`.
192193

193194
### `Object#clone(freeze: false)`[](#objectclonefreeze-false)
194195

2.7.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ description: Ruby 2.7 full and annotated changelog
88
# Ruby 2.7
99

1010
* **Released at:** Dec 25, 2019 (<a class="github" href="https://github.com/ruby/ruby/blob/ruby_2_7/NEWS">NEWS</a> file)
11-
* **Status (as of Sep 20, 2023):** 2.7.8 is EOL
11+
* **Status (as of Dec 21, 2023):** 2.7.8 is EOL
1212
* **This document first published:** Dec 27, 2019
13-
* **Last change to this document:** Sep 20, 2023
13+
* **Last change to this document:** Dec 21, 2023
1414

1515
<!-- TODO: all links to docs should be replaced with /2.7.0/ suffix instead of /master/ when 2.7.0 would be published -->
1616

@@ -121,7 +121,9 @@ In block without explicitly specified parameters, variables `_1` through `_9` ca
121121
# %w[test me].each { _1.each_char { p _1 } }
122122
# ^~
123123
```
124-
* **Follow-up:** Warning on attempt to assign to numbered parameter [became errors in 3.0](3.0.html#other-changes).
124+
* **Follow-ups:**
125+
* [3.0](3.0.html#other-changes): Warning on attempt to assign to numbered parameter became errors.
126+
* [3.3](3.3.html#standalone-it-in-blocks-will-become-anonymous-argument-in-ruby-34): a warning introduced indicating that in Ruby 3.4, `it` would become an alternative anonymous block parameter (only one, same as `_1`). There is no plan to deprecate numbered parameters.
125127

126128
### Beginless range[](#beginless-range)
127129

@@ -799,6 +801,7 @@ Like `Array#union` and `#difference`, [added](2.6.html#arrayunion-and-arraydiffe
799801
map[1]
800802
# => nil -- value successfully collected, even if key was not GC-able
801803
```
804+
* **Follow-ups:** [3.3](3.3.html#objectspaceweakkeymap): A new class `ObjectSpace::WeakKeyMap` introduced, more suitable for common use-cases of a "weak mapping." It only has garbage-collectable keys.
802805

803806
### `Fiber#raise`[](#fiberraise)
804807

@@ -1028,7 +1031,7 @@ Allows to emit/suppress separate categories of warnings.
10281031
```
10291032
* **Notes:**
10301033
* The only existing categories currently are `:deprecated` (covers all deprecations) and `:experimental` (as of 2.7, covers only pattern matching)
1031-
* Note that turning of `:deprecated` warning will also mute the warning of features which was deprecated explicitly in your code, for example with <a class="ruby-doc" href="https://ruby-doc.org/core-2.7.0/Module.html#method-i-deprecate_constant"><code>Module#deprecate_constant</code></a>
1034+
* Note that turning off `:deprecated` warning will also mute the warning of features which was deprecated explicitly in your code, for example with <a class="ruby-doc" href="https://ruby-doc.org/core-2.7.0/Module.html#method-i-deprecate_constant"><code>Module#deprecate_constant</code></a>
10321035
```ruby
10331036
class HTTP
10341037
NOT_FOUND = Exception.new
@@ -1041,7 +1044,9 @@ Allows to emit/suppress separate categories of warnings.
10411044
# ...no warning issued...
10421045
```
10431046
* Another way to turn on and off separate categories of warnings is passing `-W:(no-)<category>` flag to ruby interpreter, e.g. `-W:no-experimental` means "no warnings when using experimental features".
1044-
* **Follow-up:** In Ruby 3.0, it was [allowed for user code](3.0.html#warningwarn-category-keyword-argument) to specify warning category, and intercept it.
1047+
* **Follow-ups:**
1048+
* [3.0](3.0.html#warningwarn-category-keyword-argument): user code is allowed to specify warning category, and intercept it;
1049+
* [3.3](3.3.html#new-warning-category-performance): added new warning category: `:performance`.
10451050

10461051
## Standard library[](#standard-library)
10471052

3.0.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ description: Ruby 3.0 full and annotated changelog
88
# Ruby 3.0
99

1010
* **Released at:** Dec 25, 2020 (<a class="github" href="https://github.com/ruby/ruby/blob/ruby_3_0/NEWS.md">NEWS.md</a> file)
11-
* **Status (as of Sep 20, 2023):** 3.0.6 is security maintenance (will EOL soon!)
11+
* **Status (as of Dec 21, 2023):** 3.0.6 is security maintenance (will EOL soon!)
1212
* **This document first published:** Dec 25, 2020
13-
* **Last change to this document:** Sep 20, 2023
13+
* **Last change to this document:** Dec 21, 2023
1414

1515
## Highlights[](#highlights)
1616

@@ -960,6 +960,7 @@ Just fixes an inconsistency introduced by optimization many versions ago.
960960
processed.lambda? # => false
961961
processed.call # => "nil", it is really still not a lambda
962962
```
963+
* **Follow-ups:** [3.3](3.3.html#kernellambda-raises-when-passed-proc-instance): The warning was turned into an exception.
963964

964965
#### `Proc#==` and `#eql?`[](#proc-and-eql)
965966

3.2.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ description: Ruby 3.2 full and annotated changelog
88
# Ruby 3.2
99

1010
* **Released at:** Dec 25, 2022 (<a class="github" href="https://github.com/ruby/ruby/blob/ruby_3_2/NEWS.md">NEWS.md</a> file)
11-
* **Status (as of Dec 20, 2023):** 3.2.2 is current _stable_
11+
* **Status (as of Dec 21, 2023):** 3.2.2 is current _stable_
1212
* **This document first published:** Feb 4, 2022
13-
* **Last change to this document:** Dec 20, 2023
13+
* **Last change to this document:** Dec 21, 2023
1414

1515
<!--
1616
* **Reason:**
@@ -249,12 +249,12 @@ A few edge cases after [big keyword argument separation](3.0.html#keyword-argume
249249
### Removals[](#removals)
250250

251251
* Constants:
252-
* `Fixnum` and `Bignum` (deprecated since unification into `Integer` in [2.4](/2.4.html#fixnum-and-bignum-are-unified-into-integer))
253-
* `Random::DEFAULT` (deprecated in favor of per-Ractor random generator since [3.0](/3.0.html#randomdefault-behavior-change))
252+
* `Fixnum` and `Bignum` (deprecated since unification into `Integer` in [2.4](2.4.html#fixnum-and-bignum-are-unified-into-integer))
253+
* `Random::DEFAULT` (deprecated in favor of per-Ractor random generator since [3.0](3.0.html#randomdefault-behavior-change))
254254
* Methods:
255255
* `Dir.exists?`, `File.exists?` (deprecated since 2.1 as a general rule of having "bare verb" as a method name)
256-
* `Object#=~` (deprecated since [2.6](/2.6.html#minor-changes))
257-
* `Object#taint`, `#untaint`, `#tainted?`, `#trust`, `#untrust`, `#untrusted?` (deprecated together with a general concept of "safety" since [2.7](/2.7.html#safe-and-taint-concepts-are-deprecated-in-general))
256+
* `Object#=~` (deprecated since [2.6](2.6.html#minor-changes))
257+
* `Object#taint`, `#untaint`, `#tainted?`, `#trust`, `#untrust`, `#untrusted?` (deprecated together with a general concept of "safety" since [2.7](2.7.html#safe-and-taint-concepts-are-deprecated-in-general))
258258

259259

260260
## Core classes and modules[](#core-classes-and-modules)

3.3.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ description: Ruby 3.3 full and annotated changelog
88
# Ruby 3.3
99

1010
* **Released at:** Dec 25, 2023 ([NEWS.md](TODO) file)
11-
* **Status (as of Dec 20, 2023):** TODO
11+
* **Status (as of Dec 21, 2023):** TODO
1212
* **This document first published:** Dec 25, 2023
13-
* **Last change to this document:** Dec 20, 2023
13+
* **Last change to this document:** Dec 21, 2023
1414

1515
<!--
1616
* **Reason:**
@@ -22,7 +22,7 @@ description: Ruby 3.3 full and annotated changelog
2222

2323
## Highlights[](#highlights)
2424

25-
> 3.3 has many important _internal_ changes related to performance optimizations, parser, and JIT (which are mostly of scope of what I am able and willing to cover), but somewhat lighter on the "small quality of life improvement" side.
25+
> 3.3 has many important _internal_ changes related to performance optimizations, parser, and JIT (which are mostly of scope of what I am able and willing to cover), but somewhat lighter on the "small quality of life improvement" side. See also big [FastRuby's post](https://www.fastruby.io/blog/ruby-3-3.html) mostly focused on the change we do not cover here.
2626
2727
* [`it` will become anonymous block argument in 3.4](#standalone-it-in-blocks-will-become-anonymous-argument-in-ruby-34)
2828
* [`Module#set_temporary_name`](#moduleset_temporary_name)
@@ -221,7 +221,7 @@ Allows to assign a string to be rendered as class/module's `#name`, without assi
221221

222222
### `Refinement#refined_class` is renamed to `Refinement#target`[](#refinementrefined_class-is-renamed-to-refinementtarget)
223223

224-
Just a renaming of the unfortunately named new method that [emerged in Ruby 3.2](/rubychanges/3.2.html#refinementrefined_class).
224+
Just a renaming of the unfortunately named new method that [emerged in Ruby 3.2](3.2.html#refinementrefined_class).
225225

226226
* **Discussion:** [Feature #19714]
227227
* **Documentation:** <a class="ruby-doc" href="https://docs.ruby-lang.org/en/master/Refinement.html#method-i-target"><code>Refinement#target</code></a>

_data/book.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ chapters:
102102
<p><strong>Highlights:</strong></p>
103103
104104
<blockquote>
105-
<p>3.3 has many important <em>internal</em> changes related to performance optimizations, parser, and JIT (which are mostly of scope of what I am able and willing to cover), but somewhat lighter on the “small quality of life improvement” side.</p>
105+
<p>3.3 has many important <em>internal</em> changes related to performance optimizations, parser, and JIT (which are mostly of scope of what I am able and willing to cover), but somewhat lighter on the “small quality of life improvement” side. See also big FastRuby’s post mostly focused on the change we do not cover here.</p>
106106
</blockquote>
107107
108108
<ul>

_src/2.4.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ New single-method module was introduced, meant to be overridden in order to cont
189189
```
190190
* In Ruby 2.7, new methods [were added](2.7.html#warning-and-) to `Warning` module allowing control over per-category warning suppression;
191191
* In Ruby 3.0, category support [was improved](3.0.html#warningwarn-category-keyword-argument).
192+
* [3.3](3.3.html#new-warning-category-performance): added new warning category: `:performance`.
192193

193194
### `Object#clone(freeze: false)`
194195

_src/2.7.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,9 @@ In block without explicitly specified parameters, variables `_1` through `_9` ca
121121
# %w[test me].each { _1.each_char { p _1 } }
122122
# ^~
123123
```
124-
* **Follow-up:** Warning on attempt to assign to numbered parameter [became errors in 3.0](3.0.html#other-changes).
124+
* **Follow-ups:**
125+
* [3.0](3.0.html#other-changes): Warning on attempt to assign to numbered parameter became errors.
126+
* [3.3](3.3.html#standalone-it-in-blocks-will-become-anonymous-argument-in-ruby-34): a warning introduced indicating that in Ruby 3.4, `it` would become an alternative anonymous block parameter (only one, same as `_1`). There is no plan to deprecate numbered parameters.
125127

126128
### Beginless range
127129

@@ -799,6 +801,7 @@ Like `Array#union` and `#difference`, [added](2.6.html#arrayunion-and-arraydiffe
799801
map[1]
800802
# => nil -- value successfully collected, even if key was not GC-able
801803
```
804+
* **Follow-ups:** [3.3](3.3.html#objectspaceweakkeymap): A new class `ObjectSpace::WeakKeyMap` introduced, more suitable for common use-cases of a "weak mapping." It only has garbage-collectable keys.
802805

803806
### `Fiber#raise`
804807

@@ -1028,7 +1031,7 @@ Allows to emit/suppress separate categories of warnings.
10281031
```
10291032
* **Notes:**
10301033
* The only existing categories currently are `:deprecated` (covers all deprecations) and `:experimental` (as of 2.7, covers only pattern matching)
1031-
* Note that turning of `:deprecated` warning will also mute the warning of features which was deprecated explicitly in your code, for example with [Module#deprecate_constant](https://ruby-doc.org/core-2.7.0/Module.html#method-i-deprecate_constant)
1034+
* Note that turning off `:deprecated` warning will also mute the warning of features which was deprecated explicitly in your code, for example with [Module#deprecate_constant](https://ruby-doc.org/core-2.7.0/Module.html#method-i-deprecate_constant)
10321035
```ruby
10331036
class HTTP
10341037
NOT_FOUND = Exception.new
@@ -1041,7 +1044,9 @@ Allows to emit/suppress separate categories of warnings.
10411044
# ...no warning issued...
10421045
```
10431046
* Another way to turn on and off separate categories of warnings is passing `-W:(no-)<category>` flag to ruby interpreter, e.g. `-W:no-experimental` means "no warnings when using experimental features".
1044-
* **Follow-up:** In Ruby 3.0, it was [allowed for user code](3.0.html#warningwarn-category-keyword-argument) to specify warning category, and intercept it.
1047+
* **Follow-ups:**
1048+
* [3.0](3.0.html#warningwarn-category-keyword-argument): user code is allowed to specify warning category, and intercept it;
1049+
* [3.3](3.3.html#new-warning-category-performance): added new warning category: `:performance`.
10451050

10461051
## Standard library
10471052

_src/3.0.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -960,6 +960,7 @@ Just fixes an inconsistency introduced by optimization many versions ago.
960960
processed.lambda? # => false
961961
processed.call # => "nil", it is really still not a lambda
962962
```
963+
* **Follow-ups:** [3.3](3.3.html#kernellambda-raises-when-passed-proc-instance): The warning was turned into an exception.
963964

964965
#### `Proc#==` and `#eql?`
965966

_src/3.2.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,12 +249,12 @@ A few edge cases after [big keyword argument separation](3.0.html#keyword-argume
249249
### Removals
250250

251251
* Constants:
252-
* `Fixnum` and `Bignum` (deprecated since unification into `Integer` in [2.4](/2.4.html#fixnum-and-bignum-are-unified-into-integer))
253-
* `Random::DEFAULT` (deprecated in favor of per-Ractor random generator since [3.0](/3.0.html#randomdefault-behavior-change))
252+
* `Fixnum` and `Bignum` (deprecated since unification into `Integer` in [2.4](2.4.html#fixnum-and-bignum-are-unified-into-integer))
253+
* `Random::DEFAULT` (deprecated in favor of per-Ractor random generator since [3.0](3.0.html#randomdefault-behavior-change))
254254
* Methods:
255255
* `Dir.exists?`, `File.exists?` (deprecated since 2.1 as a general rule of having "bare verb" as a method name)
256-
* `Object#=~` (deprecated since [2.6](/2.6.html#minor-changes))
257-
* `Object#taint`, `#untaint`, `#tainted?`, `#trust`, `#untrust`, `#untrusted?` (deprecated together with a general concept of "safety" since [2.7](/2.7.html#safe-and-taint-concepts-are-deprecated-in-general))
256+
* `Object#=~` (deprecated since [2.6](2.6.html#minor-changes))
257+
* `Object#taint`, `#untaint`, `#tainted?`, `#trust`, `#untrust`, `#untrusted?` (deprecated together with a general concept of "safety" since [2.7](2.7.html#safe-and-taint-concepts-are-deprecated-in-general))
258258

259259

260260
## Core classes and modules

0 commit comments

Comments
 (0)