Skip to content

Commit a13be8c

Browse files
committed
[GR-59182] Begin feature freeze for the 24.2 release.
PullRequest: truffleruby/4459
2 parents afce327 + bcbff07 commit a13be8c

File tree

1,536 files changed

+5764
-3526
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,536 files changed

+5764
-3526
lines changed

.gitattributes

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
# Merge options
2-
3-
/CHANGELOG.md merge=union
4-
51
# Rules for GitHub's Linguist language-classification system. We're abusing the
62
# 'vendored' attribute to exclude files as a lot of this isn't really vendored,
73
# and a whole lot of actually vendored code isn't listed! What we want to do is

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ Bug fixes:
88

99
* Fix `Module#name` called inside the `Module#const_added` callback when the module is defined in the top-level scope (#3683, @andrykonchin).
1010
* Fix duplicated calls of a `Module#const_added` callback when a module with nested modules is assigned to a constant (@andrykonchin).
11+
* Support OpenSSL 1.1-3.4 and prefer in order OpenSSL 3.0.x, 3.x and 1.1 (EOL). There was a compilation issue with OpenSSL 3.4 (#3724, @eregon).
12+
* Fix `Time{.at,.new,.now,#getlocal,#localtime}` methods and validation of seconds in utc offset in String format (@andrykonchin).
13+
* Fix `ObjectSpace.undefine_finalizer` and raise `FrozenError` when called for a frozen object (@andrykonchin).
14+
* Fix `Integer#/` when called with a bignum argument (@andrykonchin).
1115

1216
Compatibility:
1317

@@ -36,6 +40,26 @@ Compatibility:
3640
* `Thread::SizedQueue#freeze` now raises `TypeError` when called (#3681, @Th3-M4jor).
3741
* Add `Range#reverse_each` (#3681, @andrykonchin).
3842
* Emit a warning when `it` call without arguments is used in a block without parameters (#3681, @andrykonchin).
43+
* Add `rb_syserr_fail_str()` (#3732, @andrykonchin).
44+
* Add `Dir.for_fd` (#3681, @andrykonchin).
45+
* Add `Dir.fchdir` (#3681, @andrykonchin).
46+
* Add `Dir#chdir` (#3681, @andrykonchin).
47+
* Declare `File::SHARE_DELETE` constant (#3745, @andrykonchin).
48+
* Support `symbolize_names` argument to `MatchData#named_captures` (#3681, @rwstauner).
49+
* Support `Proc#initialize_{dup,copy}` for subclasses (#3681, @rwstauner).
50+
* Remove deprecated `Encoding#replicate` method (#3681, @rwstauner).
51+
* Add `ObjectSpace::WeakMap#delete` (#3681, @andrykonchin).
52+
* `Kernel#lambda` with now raises `ArgumentError` when given a non-lambda, non-literal block (#3681, @Th3-M4jor).
53+
* Add `rb_data_define()` to define Data (#3681, @andrykonchin).
54+
* Add `Refinement#target` (#3681, @andrykonchin).
55+
* Add `Range#overlap?` (#3681, @andrykonchin).
56+
* Update `NoMethodError#message` to not use `#inspect` on receiver (#3681, @rwstauner).
57+
* Socket `#recv*` methods (`{BasicSocket,IPSocket,TCPSocket,UDPSocket,Socket}#{recv,recv_nonblock,recvmsg,recvmsg_nonblock,recvfrom,recvfrom_nonblock}`) return `nil` instead of an empty String on closed connections (#3681, @andrykonchyn).
58+
* Fix `Marshal.dump` when a Float value is dumped repeatedly (#3747, @andrykochin).
59+
* Emit warning when `Kernel#format` called with excessive arguments (@andrykonchin).
60+
* Fix `Integer#ceil` when self is 0 (@andrykonchin).
61+
* Fix `Module#remove_const` and emit warning when constant is deprecated (@andrykonchin).
62+
* Add `Module#set_temporary_name` (#3681, @andrykonchin).
3963

4064
Performance:
4165

LICENCE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# TruffleRuby Licence
22

3-
TruffleRuby is copyright (c) 2013-2024 Oracle and/or its affiliates, and is made
3+
TruffleRuby is copyright (c) 2013-2025 Oracle and/or its affiliates, and is made
44
available to you under the terms of any one of the following three licenses:
55

66
* Eclipse Public License version 2.0, or

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ For known vulnerabilities in Ruby, please refer to the [known-cves](doc/user/kno
182182

183183
## Licence
184184

185-
TruffleRuby is copyright (c) 2013-2024 Oracle and/or its affiliates, and is made
185+
TruffleRuby is copyright (c) 2013-2025 Oracle and/or its affiliates, and is made
186186
available to you under the terms of any one of the following three licenses:
187187

188188
* Eclipse Public License version 2.0, or

ci.jsonnet

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -534,10 +534,10 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, "
534534
"ruby-test-fast-linux-aarch64": $.platform.linux_aarch64 + $.jdk.latest + $.env.jvm + gate + $.run.test_fast + native_config + { timelimit: "45:00" },
535535
"ruby-test-fast-linux-amd64": $.platform.linux + $.jdk.latest + $.env.jvm + gate + $.run.test_fast + { timelimit: "45:00" }, # To catch missing slow tags
536536
"ruby-test-mri-asserts": $.platform.linux + $.jdk.latest + $.env.jvm + gate + $.run.test_mri_fast + { timelimit: "01:15:00" },
537-
"ruby-test-mri-linux-amd64": $.platform.linux + $.jdk.latest + $.env.native + gate + $.run.test_mri + { timelimit: "01:20:00" },
538-
# "ruby-test-mri-linux-aarch64": $.platform.linux_aarch64 + $.jdk.latest + $.env.native + gate + $.run.test_mri + { timelimit: "01:30:00" }, # GR-51361
539-
"ruby-test-mri-darwin-amd64": $.platform.darwin_amd64 + $.jdk.latest + $.env.native + gate + $.run.test_mri + { timelimit: "01:30:00" },
540-
"ruby-test-mri-darwin-aarch64": $.platform.darwin_aarch64 + $.jdk.latest + $.env.native + gate + $.run.test_mri + { timelimit: "01:30:00" },
537+
"ruby-test-mri-linux-amd64": $.platform.linux + $.jdk.latest + $.env.native_ee + gate + $.run.test_mri + { timelimit: "01:20:00" },
538+
# "ruby-test-mri-linux-aarch64": $.platform.linux_aarch64 + $.jdk.latest + $.env.native_ee + gate + $.run.test_mri + { timelimit: "01:30:00" }, # GR-51361
539+
"ruby-test-mri-darwin-amd64": $.platform.darwin_amd64 + $.jdk.latest + $.env.native_ee + gate + $.run.test_mri + { timelimit: "01:30:00" },
540+
"ruby-test-mri-darwin-aarch64": $.platform.darwin_aarch64 + $.jdk.latest + $.env.native_ee + gate + $.run.test_mri + { timelimit: "01:30:00" },
541541
"ruby-test-integration-linux-amd64": $.platform.linux + $.jdk.latest + $.env.jvm + gate + $.run.test_integration,
542542
"ruby-test-cexts-linux-amd64": $.platform.linux + $.jdk.latest + $.env.jvm + gate + $.use.gem_test_pack + $.use.sqlite331 + $.run.test_cexts,
543543
"ruby-test-cexts-linux-aarch64": $.platform.linux_aarch64 + $.jdk.latest + $.env.jvm + gate + $.use.gem_test_pack + $.use.sqlite331 + $.run.test_cexts,

ci/common.jsonnet

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,12 @@ local common_json = import "../common.json";
203203
},
204204
},
205205

206+
gradle:: {
207+
downloads+: {
208+
GRADLE_JAVA_HOME: jdks_data["oraclejdk21"],
209+
}
210+
},
211+
206212
local code_tools = {
207213
downloads+: if 'jdk_version' in self && self.jdk_version > 21 then {
208214
TOOLS_JAVA_HOME: jdks_data['oraclejdk21'],
@@ -251,7 +257,7 @@ local common_json = import "../common.json";
251257
} else {},
252258
},
253259

254-
graalpy:: {
260+
graalpy:: self.gradle + {
255261
packages+: if (self.os == "linux") then {
256262
libffi: '>=3.2.1',
257263
bzip2: '>=1.0.6',

common.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
"Jsonnet files should not include this file directly but use ci/common.jsonnet instead."
55
],
66

7-
"mx_version": "7.34.1",
7+
"mx_version": "7.35.2",
88

99
"COMMENT.jdks": "When adding or removing JDKs keep in sync with JDKs in ci/common.jsonnet",
1010
"jdks": {
11-
"galahad-jdk": {"name": "jpg-jdk", "version": "24", "build_id": "jdk-24+25-3126", "platformspecific": true, "extrabundles": ["static-libs"]},
11+
"galahad-jdk": {"name": "jpg-jdk", "version": "24", "build_id": "jdk-24+26-3309", "platformspecific": true, "extrabundles": ["static-libs"]},
1212

1313
"oraclejdk17": {"name": "jpg-jdk", "version": "17.0.7", "build_id": "jdk-17.0.7+8", "platformspecific": true, "extrabundles": ["static-libs"]},
1414
"labsjdk-ce-17": {"name": "labsjdk", "version": "ce-17.0.7+4-jvmci-23.1-b02", "platformspecific": true },
@@ -45,13 +45,13 @@
4545

4646
"oraclejdk23": {"name": "jpg-jdk", "version": "23", "build_id": "jdk-23+37", "platformspecific": true, "extrabundles": ["static-libs"]},
4747

48-
"oraclejdk-latest": {"name": "jpg-jdk", "version": "24", "build_id": "jdk-24+25", "platformspecific": true, "extrabundles": ["static-libs"]},
49-
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-24+25-jvmci-b01", "platformspecific": true },
50-
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-24+25-jvmci-b01-debug", "platformspecific": true },
51-
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-24+25-jvmci-b01-sulong", "platformspecific": true },
52-
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-24+25-jvmci-b01", "platformspecific": true },
53-
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-24+25-jvmci-b01-debug", "platformspecific": true },
54-
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-24+25-jvmci-b01-sulong", "platformspecific": true }
48+
"oraclejdk-latest": {"name": "jpg-jdk", "version": "24", "build_id": "jdk-24+32", "platformspecific": true, "extrabundles": ["static-libs"]},
49+
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-24+32-jvmci-b01", "platformspecific": true },
50+
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-24+32-jvmci-b01-debug", "platformspecific": true },
51+
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-24+32-jvmci-b01-sulong", "platformspecific": true },
52+
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-24+32-jvmci-b01", "platformspecific": true },
53+
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-24+32-jvmci-b01-debug", "platformspecific": true },
54+
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-24+32-jvmci-b01-sulong", "platformspecific": true }
5555
},
5656

5757
"eclipse": {

doc/legal/legal.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ which are the only supported ways to use TruffleRuby.
55

66
## TruffleRuby
77

8-
TruffleRuby is copyright (c) 2013-2024 Oracle and/or its
8+
TruffleRuby is copyright (c) 2013-2025 Oracle and/or its
99
affiliates, and is made available to you under the terms of any one of the
1010
following three licenses:
1111

doc/user/known-cves.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Cross-reference with the details on [the MRI website](https://www.ruby-lang.org/
1919

2020
Number | Description | Their Mitigation | Test | Our Mitigation
2121
--- | --- | --- | --- | ---
22+
CVE-2024-49761 | ReDoS vulnerability in REXML | [Fix](https://github.com/ruby/rexml/commit/ce59f2eb1aeb371fe1643414f06618dbe031979f) | [Test](https://github.com/ruby/rexml/commit/ce59f2eb1aeb371fe1643414f06618dbe031979f) | Not applicable thanks to TRegex
2223
CVE-2024-39908 | DoS in REXML | [Fix](https://github.com/ruby/rexml/compare/v3.3.1...v3.3.2) | [Test](https://github.com/ruby/rexml/compare/v3.3.1...v3.3.2) | [same mitigation as CRuby](https://www.ruby-lang.org/en/news/2024/07/16/dos-rexml-cve-2024-39908/), users must update rexml to 3.3.2+ if they use it
2324
CVE-2024-35176 | DoS in REXML | [Fix](https://github.com/ruby/rexml/pull/126/commits/ba70cfefadf7e79885fe08228d1df4c0549ad0f8) | [Test](https://github.com/ruby/rexml/pull/126/commits/ba70cfefadf7e79885fe08228d1df4c0549ad0f8) | [same mitigation as CRuby](https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/), users must update rexml to 3.2.7+ if they use it
2425
CVE-2024-27282 | Arbitrary memory address read vulnerability with Regex search | [Fix](https://github.com/ruby/ruby/commit/989a2355808a63fc45367785c82ffd46d18c900a) | | Not applicable thanks to Java semantics

lib/cext/ABI_check.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4
1+
9

lib/cext/include/ruby/internal/intern/struct.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,10 @@ RBIMPL_ATTR_NONNULL((2))
240240
*/
241241
VALUE rb_struct_define_without_accessor_under(VALUE outer, const char *class_name, VALUE super, rb_alloc_func_t alloc, ...);
242242

243+
#ifdef TRUFFLERUBY
244+
VALUE rb_tr_data_define_va_list(VALUE super, va_list args);
245+
#endif
246+
243247
/**
244248
* Defines an anonymous data class.
245249
*
@@ -252,7 +256,17 @@ VALUE rb_struct_define_without_accessor_under(VALUE outer, const char *class_nam
252256
* @exception rb_eArgError Duplicated field name.
253257
* @return The defined class.
254258
*/
259+
#ifdef TRUFFLERUBY
260+
static inline VALUE rb_data_define(VALUE super, ...) {
261+
va_list args;
262+
va_start(args, super);
263+
VALUE result = rb_tr_data_define_va_list(super == 0 ? Qnil : super, args);
264+
va_end(args);
265+
return result;
266+
}
267+
#else
255268
VALUE rb_data_define(VALUE super, ...);
269+
#endif
256270

257271
RBIMPL_SYMBOL_EXPORT_END()
258272

lib/cext/include/truffleruby/truffleruby-abi-version.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved. This
2+
* Copyright (c) 2024, 2025 Oracle and/or its affiliates. All rights reserved. This
33
* code is released under a tri EPL/GPL/LGPL license. You can use it,
44
* redistribute it and/or modify it under the terms of the:
55
*
@@ -20,6 +20,6 @@
2020
// $RUBY_VERSION must be the same as TruffleRuby.LANGUAGE_VERSION.
2121
// $ABI_NUMBER starts at 1 and is incremented for every ABI-incompatible change.
2222

23-
#define TRUFFLERUBY_ABI_VERSION "3.3.5.6"
23+
#define TRUFFLERUBY_ABI_VERSION "3.3.5.24.2.0.1"
2424

2525
#endif

lib/cext/include/truffleruby/truffleruby-pre.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2016, 2024 Oracle and/or its affiliates. All rights reserved. This
2+
* Copyright (c) 2016, 2025 Oracle and/or its affiliates. All rights reserved. This
33
* code is released under a tri EPL/GPL/LGPL license. You can use it,
44
* redistribute it and/or modify it under the terms of the:
55
*

lib/cext/include/truffleruby/truffleruby.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2016, 2024 Oracle and/or its affiliates. All rights reserved. This
2+
* Copyright (c) 2016, 2025 Oracle and/or its affiliates. All rights reserved. This
33
* code is released under a tri EPL/GPL/LGPL license. You can use it,
44
* redistribute it and/or modify it under the terms of the:
55
*

lib/cext/preprocess.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# frozen_string_literal: true
22

3-
# Copyright (c) 2017, 2024 Oracle and/or its affiliates. All rights reserved. This
3+
# Copyright (c) 2017, 2025 Oracle and/or its affiliates. All rights reserved. This
44
# code is released under a tri EPL/GPL/LGPL license. You can use it,
55
# redistribute it and/or modify it under the terms of the:
66
#

lib/gems/gems/rbs-3.4.0/Gemfile.lock

Lines changed: 0 additions & 117 deletions
This file was deleted.

lib/truffle/cgi/escape.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# frozen_string_literal: true
22

3-
# Copyright (c) 2019, 2024 Oracle and/or its affiliates. All rights reserved. This
3+
# Copyright (c) 2019, 2025 Oracle and/or its affiliates. All rights reserved. This
44
# code is released under a tri EPL/GPL/LGPL license. You can use it,
55
# redistribute it and/or modify it under the terms of the:
66
#

lib/truffle/continuation.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22
# truffleruby_primitives: true
33

4-
# Copyright (c) 2017, 2024 Oracle and/or its affiliates. All rights reserved. This
4+
# Copyright (c) 2017, 2025 Oracle and/or its affiliates. All rights reserved. This
55
# code is released under a tri EPL/GPL/LGPL license. You can use it,
66
# redistribute it and/or modify it under the terms of the:
77
#

lib/truffle/coverage.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22
# truffleruby_primitives: true
33

4-
# Copyright (c) 2015, 2024 Oracle and/or its affiliates. All rights reserved. This
4+
# Copyright (c) 2015, 2025 Oracle and/or its affiliates. All rights reserved. This
55
# code is released under a tri EPL/GPL/LGPL license. You can use it,
66
# redistribute it and/or modify it under the terms of the:
77
#

lib/truffle/digest.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22
# truffleruby_primitives: true
33

4-
# Copyright (c) 2015, 2024 Oracle and/or its affiliates. All rights reserved. This
4+
# Copyright (c) 2015, 2025 Oracle and/or its affiliates. All rights reserved. This
55
# code is released under a tri EPL/GPL/LGPL license. You can use it,
66
# redistribute it and/or modify it under the terms of the:
77
#

lib/truffle/digest/bubblebabble.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22
# truffleruby_primitives: true
33

4-
# Copyright (c) 2015, 2024 Oracle and/or its affiliates. All rights reserved. This
4+
# Copyright (c) 2015, 2025 Oracle and/or its affiliates. All rights reserved. This
55
# code is released under a tri EPL/GPL/LGPL license. You can use it,
66
# redistribute it and/or modify it under the terms of the:
77
#

lib/truffle/digest/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# frozen_string_literal: true
22

3-
# Copyright (c) 2022, 2024 Oracle and/or its affiliates. All rights reserved. This
3+
# Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved. This
44
# code is released under a tri EPL/GPL/LGPL license. You can use it,
55
# redistribute it and/or modify it under the terms of the:
66
#

lib/truffle/fcntl.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22
# truffleruby_primitives: true
33

4-
# Copyright (c) 2015, 2024 Oracle and/or its affiliates. All rights reserved. This
4+
# Copyright (c) 2015, 2025 Oracle and/or its affiliates. All rights reserved. This
55
# code is released under a tri EPL/GPL/LGPL license. You can use it,
66
# redistribute it and/or modify it under the terms of the:
77
#

0 commit comments

Comments
 (0)