Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce Array object allocation during parsing #2304

Merged
merged 2 commits into from
Mar 6, 2025
Merged

Conversation

ksss
Copy link
Collaborator

@ksss ksss commented Mar 5, 2025

The most basic function for parsing a type, parse_type, always generates two Array objects each time it is executed.
However, for simple types, this Array object is not always needed, and the object allocation becomes unnecessary.

In this PR, I will make modifications to minimize unnecessary object allocations in parse_type as much as possible.

Profile script

require 'rbs'
require 'rbs/cli'
require 'memory_profiler'

loader = RBS::EnvironmentLoader.new
Dir["stdlib/*"].each do |path|
  lib = File.basename(path).to_s
  loader.add(library: lib, version: nil)
end

MemoryProfiler.report do
  RBS::Environment.from_loader(loader)
end.pretty_print

Before

Total allocated: 49914684 bytes (453299 objects)
allocated memory by class: 3219256  Array
allocated objects by class: 70648  Array

After

Total allocated: 48873724 bytes (427275 objects)
allocated memory by class: 2178296  Array
allocated objects by class: 44624  Array

while (state->next_token.type == pAMP) {
if (intersection_types == EMPTY_ARRAY) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can early return before allocating intersection_types, and I think it's better code organization.

...

VALUE type = parse_optional(state);

if (state->next_token.type != pAMP) {
  return type;
}

VALUE intersection_types = rb_ary_new();
rb_ary_push(intersection_types, type);

...

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool! Let's try it.

@soutaro soutaro added this to the RBS 3.9 milestone Mar 5, 2025
Copy link
Member

@soutaro soutaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@soutaro soutaro added this pull request to the merge queue Mar 6, 2025
Merged via the queue into ruby:master with commit 8015499 Mar 6, 2025
19 checks passed
@ksss ksss deleted the parse-object branch March 6, 2025 04:33
@soutaro soutaro added the Released PRs already included in the released version label Mar 11, 2025
st0012 added a commit to Shopify/rbs that referenced this pull request Mar 17, 2025
commit 811821f
Merge: 62cbd93 0bdbde9
Author: Soutaro Matsumoto <[email protected]>
Date:   Mon Mar 17 06:48:18 2025 +0000

    Merge pull request ruby#2330 from ruby/dependabot/bundler/nokogiri-1.18.4

    Bump nokogiri from 1.18.3 to 1.18.4

commit 0bdbde9
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Mar 17 06:44:48 2025 +0000

    Bump nokogiri from 1.18.3 to 1.18.4

    Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.18.3 to 1.18.4.
    - [Release notes](https://github.com/sparklemotion/nokogiri/releases)
    - [Changelog](https://github.com/sparklemotion/nokogiri/blob/v1.18.4/CHANGELOG.md)
    - [Commits](sparklemotion/nokogiri@v1.18.3...v1.18.4)

    ---
    updated-dependencies:
    - dependency-name: nokogiri
      dependency-type: indirect
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 62cbd93
Merge: 113ea90 678e733
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Mar 14 06:56:40 2025 +0000

    Merge pull request ruby#2327 from ruby/dependabot/bundler/rubocop-1.74.0

    Bump rubocop from 1.73.2 to 1.74.0

commit 678e733
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Mar 14 06:53:03 2025 +0000

    Bump rubocop from 1.73.2 to 1.74.0

    Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.73.2 to 1.74.0.
    - [Release notes](https://github.com/rubocop/rubocop/releases)
    - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
    - [Commits](rubocop/rubocop@v1.73.2...v1.74.0)

    ---
    updated-dependencies:
    - dependency-name: rubocop
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 113ea90
Merge: a61588f 2dd9eeb
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Mar 14 04:27:19 2025 +0000

    Merge pull request ruby#2326 from ruby/version-3.9.0.pre.2

    Version 3.9.0.pre.2

commit 2dd9eeb
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Mar 14 13:23:34 2025 +0900

    Version 3.9.0.pre.2

commit a61588f
Merge: 74db910 ebd0849
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Mar 14 04:13:42 2025 +0000

    Merge pull request ruby#2325 from ruby/define_method_parsing

    Fix `define_method` method block self type

commit 74db910
Merge: 8102abe 82cc54e
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Mar 14 04:12:04 2025 +0000

    Merge pull request ruby#2324 from ruby/define_method

    Fix block self types of `define_singleton_method`

commit ebd0849
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Mar 14 13:07:40 2025 +0900

    Fix parser

commit e95e621
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Mar 14 12:48:16 2025 +0900

    Fix `define_method` block self type

commit 82cc54e
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Mar 14 12:48:29 2025 +0900

    Add block self type to `define_singleton_method`

commit 8102abe
Merge: 1048dee 9c4422e
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Mar 14 03:51:04 2025 +0000

    Merge pull request ruby#2323 from ruby/hash

    Fix `Hash.new` type

commit 9c4422e
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Mar 14 12:47:12 2025 +0900

    Fix `Hash.new` type

commit 1048dee
Merge: 5d8e959 b5a428b
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Mar 13 07:01:01 2025 +0000

    Merge pull request ruby#2322 from ruby/dependabot/bundler/steep/minitest-5.25.5

    Bump minitest from 5.25.4 to 5.25.5 in /steep

commit b5a428b
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Mar 13 06:57:37 2025 +0000

    Bump minitest from 5.25.4 to 5.25.5 in /steep

    Bumps [minitest](https://github.com/minitest/minitest) from 5.25.4 to 5.25.5.
    - [Changelog](https://github.com/minitest/minitest/blob/master/History.rdoc)
    - [Commits](minitest/minitest@v5.25.4...v5.25.5)

    ---
    updated-dependencies:
    - dependency-name: minitest
      dependency-type: indirect
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 5d8e959
Merge: 8344dcf 0f5f9b2
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Mar 13 06:34:21 2025 +0000

    Merge pull request ruby#2321 from ruby/dependabot/bundler/minitest-5.25.5

    Bump minitest from 5.25.4 to 5.25.5

commit 0f5f9b2
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Mar 13 06:30:56 2025 +0000

    Bump minitest from 5.25.4 to 5.25.5

    Bumps [minitest](https://github.com/minitest/minitest) from 5.25.4 to 5.25.5.
    - [Changelog](https://github.com/minitest/minitest/blob/master/History.rdoc)
    - [Commits](minitest/minitest@v5.25.4...v5.25.5)

    ---
    updated-dependencies:
    - dependency-name: minitest
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 8344dcf
Merge: bac1bb5 c47062d
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 12 15:52:36 2025 +0000

    Merge pull request ruby#2320 from ruby/dependabot/bundler/json-2.10.2

    Bump json from 2.10.1 to 2.10.2

commit bac1bb5
Merge: 5dd20b1 29d2c19
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 12 15:52:00 2025 +0000

    Merge pull request ruby#2319 from ruby/dependabot/bundler/steep/json-2.10.2

    Bump json from 2.10.1 to 2.10.2 in /steep

commit c47062d
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Mar 12 15:48:53 2025 +0000

    Bump json from 2.10.1 to 2.10.2

    Bumps [json](https://github.com/ruby/json) from 2.10.1 to 2.10.2.
    - [Release notes](https://github.com/ruby/json/releases)
    - [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
    - [Commits](ruby/json@v2.10.1...v2.10.2)

    ---
    updated-dependencies:
    - dependency-name: json
      dependency-type: direct:production
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 29d2c19
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Mar 12 15:48:28 2025 +0000

    Bump json from 2.10.1 to 2.10.2 in /steep

    Bumps [json](https://github.com/ruby/json) from 2.10.1 to 2.10.2.
    - [Release notes](https://github.com/ruby/json/releases)
    - [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
    - [Commits](ruby/json@v2.10.1...v2.10.2)

    ---
    updated-dependencies:
    - dependency-name: json
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 5dd20b1
Merge: be1894d e0555f1
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 12 06:44:26 2025 +0000

    Merge pull request ruby#2317 from ruby/dependabot/bundler/pstore-0.2.0

    Bump pstore from 0.1.4 to 0.2.0

commit e0555f1
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Mar 12 06:41:06 2025 +0000

    Bump pstore from 0.1.4 to 0.2.0

    Bumps [pstore](https://github.com/ruby/pstore) from 0.1.4 to 0.2.0.
    - [Release notes](https://github.com/ruby/pstore/releases)
    - [Commits](ruby/pstore@v0.1.4...v0.2.0)

    ---
    updated-dependencies:
    - dependency-name: pstore
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit be1894d
Merge: 97ed5d9 de89359
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 12 06:37:50 2025 +0000

    Merge pull request ruby#2316 from ruby/dependabot/bundler/steep/activesupport-8.0.2

    Bump activesupport from 8.0.1 to 8.0.2 in /steep

commit de89359
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Mar 12 06:34:18 2025 +0000

    Bump activesupport from 8.0.1 to 8.0.2 in /steep

    Bumps [activesupport](https://github.com/rails/rails) from 8.0.1 to 8.0.2.
    - [Release notes](https://github.com/rails/rails/releases)
    - [Changelog](https://github.com/rails/rails/blob/v8.0.2/activesupport/CHANGELOG.md)
    - [Commits](rails/rails@v8.0.1...v8.0.2)

    ---
    updated-dependencies:
    - dependency-name: activesupport
      dependency-type: indirect
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 97ed5d9
Merge: c026957 366c1db
Author: Soutaro Matsumoto <[email protected]>
Date:   Tue Mar 11 07:36:36 2025 +0000

    Merge pull request ruby#2314 from ruby/version.3.9.0.pre.1

    Version 3.9.0.pre.1

commit 366c1db
Author: Soutaro Matsumoto <[email protected]>
Date:   Tue Mar 11 16:32:30 2025 +0900

    Version 3.9.0.pre.1

commit c026957
Merge: 1283450 584ab18
Author: Soutaro Matsumoto <[email protected]>
Date:   Tue Mar 11 07:20:54 2025 +0000

    Merge pull request ruby#2311 from rossta/feat/ipaddr-netmask

    Add missing signature for IPAddr#netmask

commit 1283450
Merge: d936d4e b62cfbb
Author: Soutaro Matsumoto <[email protected]>
Date:   Tue Mar 11 07:20:17 2025 +0000

    Merge pull request ruby#2307 from Shopify/remove-unused-variable

    Remove unused root variable

commit d936d4e
Merge: c9db27a 9a71cb1
Author: Soutaro Matsumoto <[email protected]>
Date:   Tue Mar 11 07:19:52 2025 +0000

    Merge pull request ruby#2309 from Shopify/run-valgrind-on-ci

    Run Valgrind on CI and fix memory leaks

commit 584ab18
Author: Ross Kaffenberger <[email protected]>
Date:   Sun Mar 9 23:11:23 2025 -0400

    Add missing signature for IPAddr#netmask

commit c9db27a
Merge: f816617 d06d049
Author: Yuki Kurihara <[email protected]>
Date:   Mon Mar 10 08:55:53 2025 +0000

    Merge pull request ruby#2310 from ksss/variable-message

    Add information for VariableDuplicationError

commit f816617
Merge: 5665557 6801cfd
Author: Soutaro Matsumoto <[email protected]>
Date:   Mon Mar 10 06:55:14 2025 +0000

    Merge pull request ruby#2313 from ruby/dependabot/bundler/rubocop-rubycw-0.2.2

    Bump rubocop-rubycw from 0.2.1 to 0.2.2

commit 5665557
Merge: 7c0c2e7 983dee1
Author: Soutaro Matsumoto <[email protected]>
Date:   Mon Mar 10 06:54:56 2025 +0000

    Merge pull request ruby#2312 from ruby/dependabot/bundler/rubocop-1.73.2

    Bump rubocop from 1.72.2 to 1.73.2

commit 6801cfd
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Mar 10 06:51:48 2025 +0000

    Bump rubocop-rubycw from 0.2.1 to 0.2.2

    Bumps [rubocop-rubycw](https://github.com/rubocop/rubocop-rubycw) from 0.2.1 to 0.2.2.
    - [Commits](rubocop/rubocop-rubycw@v0.2.1...v0.2.2)

    ---
    updated-dependencies:
    - dependency-name: rubocop-rubycw
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 983dee1
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Mar 10 06:51:31 2025 +0000

    Bump rubocop from 1.72.2 to 1.73.2

    Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.72.2 to 1.73.2.
    - [Release notes](https://github.com/rubocop/rubocop/releases)
    - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
    - [Commits](rubocop/rubocop@v1.72.2...v1.73.2)

    ---
    updated-dependencies:
    - dependency-name: rubocop
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 7c0c2e7
Merge: 1209f49 a64d1c2
Author: Masataka Pocke Kuwabara <[email protected]>
Date:   Mon Mar 10 06:37:35 2025 +0000

    Merge pull request ruby#2308 from pocke/dedup-hash-on-parse

    Dedup hash object on parsing

commit d06d049
Author: ksss <[email protected]>
Date:   Sat Mar 8 17:34:16 2025 +0900

    Fix type

commit faea4c3
Author: ksss <[email protected]>
Date:   Sat Mar 8 16:54:07 2025 +0900

    Add information for VariableDuplicationError

commit 9a71cb1
Author: Stan Lo <[email protected]>
Date:   Fri Mar 7 18:19:43 2025 +0000

    Improve Rakefile setup

commit 686e0cc
Author: Stan Lo <[email protected]>
Date:   Fri Mar 7 15:02:22 2025 +0000

    Free the parser if alloc_parser raises

commit 9cf3d98
Author: Stan Lo <[email protected]>
Date:   Thu Mar 6 23:30:06 2025 +0000

    Free typevar tables when freeing parser

commit ee323ed
Author: Peter Zhu <[email protected]>
Date:   Wed Mar 5 16:24:52 2025 -0500

    Skip tests that would incorrectly fail valgrind

commit 40b6616
Author: Stan Lo <[email protected]>
Date:   Tue Mar 4 18:19:13 2025 +0000

    Run valgrind on CI to check memory leaks

    Many gems with C-extensions have been using valgrind to check memory leaks,
    such as `prism`, `lrama`, and `json`.

    The simplest way to run valgrind on CI is through `ruby_memcheck` gem,
    which is used by both `prism` and `json`. So I followed its readme
    to add a new job `valgrind` to `ruby.yml`.

commit a64d1c2
Author: Masataka Pocke Kuwabara <[email protected]>
Date:   Fri Mar 7 15:55:33 2025 +0900

    Dedup hash object on parsing

commit b62cfbb
Author: Stan Lo <[email protected]>
Date:   Thu Mar 6 11:32:26 2025 +0000

    Remove unused root variable

commit 1209f49
Merge: 8015499 f507c64
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Mar 6 04:03:20 2025 +0000

    Merge pull request ruby#2306 from ruby/version-3.9.0.dev.1

    Version 3.9.0.dev.1

commit f507c64
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Mar 6 12:59:56 2025 +0900

    Version 3.9.0.dev.1

commit 8015499
Merge: 17e4b55 6322c7d
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Mar 6 01:28:59 2025 +0000

    Merge pull request ruby#2304 from ksss/parse-object

    Reduce Array object allocation during parsing

commit 6322c7d
Author: ksss <[email protected]>
Date:   Wed Mar 5 23:53:01 2025 +0900

    Refactoring

commit 17e4b55
Merge: c62edeb 59f2c4e
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 5 07:57:56 2025 +0000

    Merge pull request ruby#2305 from ruby/no-class-variable-duplication-validation

    No class variable duplication validation

commit 59f2c4e
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 5 16:35:32 2025 +0900

    Skip class variable duplication validation

commit 2239b9f
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 5 16:35:20 2025 +0900

    Delete unused method declaration

commit f318054
Author: ksss <[email protected]>
Date:   Wed Mar 5 14:53:13 2025 +0900

    Reduce Array object allocation during parsing

commit c62edeb
Merge: 6f2dd07 e80f0e6
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 5 04:17:08 2025 +0000

    Merge pull request ruby#2303 from ruby/resolution

    Keep annotations during type name resolution

commit e80f0e6
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 5 13:13:42 2025 +0900

    Keep annotations during type name resolution

commit 6f2dd07
Merge: d2da22d 075d27c
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 5 03:28:23 2025 +0000

    Merge pull request ruby#2302 from ruby/parse-annotations

    Let class/module alias decls, global decls, and constant decls be annotated

commit 075d27c
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 5 12:23:34 2025 +0900

    Let constant decls be annotated

commit 1bc9bb4
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 5 12:20:59 2025 +0900

    Let global decls be annotated

commit 6f8d0f3
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 5 12:08:41 2025 +0900

    Let class/module alias declarations be annotated

commit d2da22d
Merge: 7122e32 00306bd
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 5 03:02:09 2025 +0000

    Merge pull request ruby#2301 from ruby/annotations

    Fix method annotations

commit 00306bd
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 5 11:07:18 2025 +0900

    Fix test

commit fdfbc6d
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Mar 5 09:52:57 2025 +0900

    Fix method annotations

commit 7122e32
Merge: 6ef2455 8578699
Author: Soutaro Matsumoto <[email protected]>
Date:   Tue Mar 4 02:02:08 2025 +0000

    Merge pull request ruby#2300 from ruby/mixin-class-var

    Fix class variable

commit 8578699
Author: Soutaro Matsumoto <[email protected]>
Date:   Tue Mar 4 10:35:47 2025 +0900

    Fix class variable

commit 6ef2455
Merge: 5ddd3f7 d407fea
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Feb 28 06:54:10 2025 +0000

    Merge pull request ruby#2299 from ruby/cgi-escape

    Add `CGI.escape/unescape_uri_component` and `URI.encode/decode_uri_component`

commit d407fea
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Feb 28 15:08:44 2025 +0900

    Add `URI.encode_uri_component` and `URI.decode_uri_component`

commit 9cabe4e
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Feb 28 15:02:23 2025 +0900

    Add `CGI.escape_uri_component` and `unescape_uri_component`

commit 5ddd3f7
Merge: d1b2bf3 797fdeb
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Feb 28 01:25:16 2025 +0000

    Merge pull request ruby#2220 from ParadoxV5/enumerator-chain

    Add type for `Enumerator::Chain`

commit 797fdeb
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Feb 28 10:21:57 2025 +0900

    Fix test

commit 65e5eb6
Author: Soutaro Matsumoto <[email protected]>
Date:   Fri Feb 28 09:44:09 2025 +0900

    Fix type definition

commit 26a27d4
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Feb 27 17:40:59 2025 +0900

    Fix type definition

commit f689f96
Author: ParadoxV5 <[email protected]>
Date:   Wed Jan 8 00:05:39 2025 -0700

    Add type for `Enumerator::Chain`

commit d1b2bf3
Merge: 3a74376 5f398df
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Feb 27 08:28:30 2025 +0000

    Merge pull request ruby#2212 from ParadoxV5/chomp

    `#gets`s, `#readline`s and `#readlines`s *also* accept `chomp: true`

commit 5f398df
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Feb 27 17:25:15 2025 +0900

    Run CGI_test in dedicated ruby process

commit b4b6365
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Feb 27 17:08:03 2025 +0900

    Add test for `Kernel#readlines`

commit 122d484
Merge: 74c7a7b a7178b1
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Feb 27 16:57:29 2025 +0900

    Merge remote-tracking branch 'origin/master' into chomp

commit 3a74376
Merge: b9f044f 0ff8dc1
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Feb 27 07:51:17 2025 +0000

    Merge pull request ruby#2288 from ksss/alumni-bundled-gems

    Add bundled gems to alumnus

commit b9f044f
Merge: 0117cf3 014faa5
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Feb 27 07:50:08 2025 +0000

    Merge pull request ruby#2292 from ksss/rbs-style-instance-with-instance

    Apply rubocop style to RBS

commit 0117cf3
Merge: f3ab73d 1a24827
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Feb 27 07:47:41 2025 +0000

    Merge pull request ruby#2294 from ksss/fix-variable-bug

    Exclude `attr_*` methods from duplicate checks.

commit f3ab73d
Merge: 307153c 946b17f
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Feb 27 06:55:12 2025 +0000

    Merge pull request ruby#2298 from ruby/dependabot/bundler/steep/uri-1.0.3

    Bump uri from 1.0.2 to 1.0.3 in /steep

commit 946b17f
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Feb 27 06:52:07 2025 +0000

    Bump uri from 1.0.2 to 1.0.3 in /steep

    Bumps [uri](https://github.com/ruby/uri) from 1.0.2 to 1.0.3.
    - [Release notes](https://github.com/ruby/uri/releases)
    - [Commits](ruby/uri@v1.0.2...v1.0.3)

    ---
    updated-dependencies:
    - dependency-name: uri
      dependency-type: indirect
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 307153c
Merge: 46deb4b 4a3456c
Author: Soutaro Matsumoto <[email protected]>
Date:   Thu Feb 27 06:45:55 2025 +0000

    Merge pull request ruby#2297 from ruby/dependabot/bundler/uri-1.0.3

    Bump uri from 1.0.2 to 1.0.3

commit 4a3456c
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Feb 27 06:42:44 2025 +0000

    Bump uri from 1.0.2 to 1.0.3

    Bumps [uri](https://github.com/ruby/uri) from 1.0.2 to 1.0.3.
    - [Release notes](https://github.com/ruby/uri/releases)
    - [Commits](ruby/uri@v1.0.2...v1.0.3)

    ---
    updated-dependencies:
    - dependency-name: uri
      dependency-type: indirect
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 46deb4b
Merge: 7270b73 14b11ab
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Feb 26 06:16:59 2025 +0000

    Merge pull request ruby#2296 from ruby/dependabot/bundler/rubocop-ast-1.38.1

    Bump rubocop-ast from 1.38.0 to 1.38.1

commit 14b11ab
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Feb 26 06:13:36 2025 +0000

    Bump rubocop-ast from 1.38.0 to 1.38.1

    Bumps [rubocop-ast](https://github.com/rubocop/rubocop-ast) from 1.38.0 to 1.38.1.
    - [Release notes](https://github.com/rubocop/rubocop-ast/releases)
    - [Changelog](https://github.com/rubocop/rubocop-ast/blob/master/CHANGELOG.md)
    - [Commits](rubocop/rubocop-ast@v1.38.0...v1.38.1)

    ---
    updated-dependencies:
    - dependency-name: rubocop-ast
      dependency-type: indirect
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 1a24827
Author: ksss <[email protected]>
Date:   Wed Feb 26 13:29:26 2025 +0900

    Add case for cvar with singleton attr_accessor

commit 7270b73
Merge: e389107 7cdcfe1
Author: Soutaro Matsumoto <[email protected]>
Date:   Wed Feb 26 02:35:55 2025 +0000

    Merge pull request ruby#2295 from rhiroe/update-module-name

    Remove `nil` from the return type of `Module#name` and instead add the `%a{implicitly-returns-nil}` annotation

commit 7cdcfe1
Author: rhiroe <[email protected]>
Date:   Wed Feb 26 02:09:57 2025 +0000

    Remove `nil` from the return type of `Module#name` and instead add the `%a{implicitly-returns-nil}` annotation

    Calling `Module#name` on an anonymous module or class is not a common use case, and I don’t see much benefit in always considering `nil`. Therefore, I believe using the `%a{implicitly-returns-nil}` annotation is appropriate.

commit 6992ea0
Author: ksss <[email protected]>
Date:   Wed Feb 26 00:08:37 2025 +0900

    Exclude `attr_*` methods from duplicate checks.

commit 014faa5
Author: ksss <[email protected]>
Date:   Mon Feb 24 23:38:18 2025 +0900

    Enable RBS/Style/ClassWithSingleton

commit 66cdaff
Author: ksss <[email protected]>
Date:   Mon Feb 24 20:27:49 2025 +0900

    Enable RBS/Style/InstanceWithInstance

commit 0ff8dc1
Author: ksss <[email protected]>
Date:   Fri Feb 21 17:34:18 2025 +0900

    Add bundled gems to alumnus

    See also ruby/gem_rbs_collection#782

commit cbf08cf
Author: ksss <[email protected]>
Date:   Fri Feb 21 17:24:49 2025 +0900

    `bigdecimal-math` is never released as a gem

commit 74c7a7b
Author: ParadoxV5 <[email protected]>
Date:   Thu Jan 23 20:09:37 2025 -0700

    `#readline`s and `#readlines`s *also* accept `chomp: true`

    (wow how many `chomp: true`s are there)
    * Kernel
    * ARGF
    * StringIO
    * OpenSSL::Buffering

commit c958f48
Author: ParadoxV5 <[email protected]>
Date:   Sat Dec 28 14:09:02 2024 -0700

    `Kernel#gets` and `ARGF#gets` *also* accept `chomp: true`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Released PRs already included in the released version
Development

Successfully merging this pull request may close these issues.

2 participants