-*- coding: utf-8 -*- commit 63aeb018eb1cc0f7b00f955980711fd1bd94af7f Author: nagachika AuthorDate: 2024-10-30 18:47:11 +0900 Commit: nagachika CommitDate: 2024-10-30 18:47:11 +0900 bump teeny commit d09b47ddf569aeb443e3fb07b380062e825d47fc Author: nagachika AuthorDate: 2024-10-28 13:31:57 +0900 Commit: nagachika CommitDate: 2024-10-28 13:31:57 +0900 merge revision(s) 70d20ce473952e3a2e5b0aa4a6884886517ee3cc: Update bundled gems list commit e55b1af2573eb21db57a06e5509f9868f288b583 Author: nagachika AuthorDate: 2024-10-20 14:21:15 +0900 Commit: nagachika CommitDate: 2024-10-20 14:21:15 +0900 merge revision(s) ce20367a0e2f1fcfabebf3b6bea732fc71fa79f7: [Backport #20500] Define `incflags` also on mswin commit 2fbae07c42f40ea43b4822e278cc92fb2415cb61 Author: nagachika AuthorDate: 2024-10-20 14:19:52 +0900 Commit: nagachika CommitDate: 2024-10-20 14:19:52 +0900 merge revision(s) bcb3247072e6973d0f6b50ca5fed238d5824bd28: [Backport #20500] [Bug #19778] Pass additional include options to INCFLAGS in common.mk commit f70e3254e067663e72e6d410370d231e4245e4f4 Author: nagachika AuthorDate: 2024-10-20 13:56:22 +0900 Commit: nagachika CommitDate: 2024-10-20 13:56:22 +0900 merge revision(s) 5fa6ba9568e87e43e08a4daeba1572254c589fb1: [Backport #20500] [Bug #20500] Search non-default directories for jemalloc Co-Authored-by: lish82 (Hiroki Katagiri) commit cb75fcef6feb126a67874109ce1503976a6f90cc Author: nagachika AuthorDate: 2024-10-18 13:10:46 +0900 Commit: nagachika CommitDate: 2024-10-18 13:57:08 +0900 merge revision(s) 6118e8a47394409b53164b60e79fadf348b97db3, dc64448202299633a235f310b8bf2192263f274f: [Backport #20716] Fix method caching bug when including/prepend module A that prepends module B Fix by always adding the generated iclass to the subclasses list, otherwise the method cache for the iclass is not cleared when the method in the module is overwritten. Fixes [Bug #20716] Remove an unused variable commit 087e4ed6cc9da9cfca1a107058905446ff474bd1 Author: nagachika AuthorDate: 2024-10-18 13:03:48 +0900 Commit: nagachika CommitDate: 2024-10-18 13:57:08 +0900 merge revision(s) 35e124832e29b65c84d4e0e4e434616859f9bdf5: [Backport #20755] [Bug #20755] Frozen string should not be writable via IO::Buffer commit d85516eab59f932d65283572d0b9090005f60c20 Author: Hiroshi SHIBATA AuthorDate: 2024-10-01 11:39:25 +0900 Commit: nagachika CommitDate: 2024-10-18 12:59:30 +0900 Disabled annocheck same as f5b6b3dba7b32dcd1f15c150dd78dce6c0d92b1e commit 4873bbd6cc25311fb477bb8fe823d2ea16299717 Author: Jun Aruga AuthorDate: 2024-08-31 15:39:57 +0900 Commit: nagachika CommitDate: 2024-10-18 12:59:30 +0900 .travis.yml: Drop all the pipelines due to jobs not starting. Remove `.travis.yml` as a temporary workaround. commit dcad0ad9097583f71eac2ece22ad527305dc7bee Author: Hiroshi SHIBATA AuthorDate: 2024-09-30 12:03:02 +0900 Commit: nagachika CommitDate: 2024-10-18 12:59:30 +0900 -l option of 7z is unknown switch with the `ubuntu-latest`. https://github.com/ruby/actions/actions/runs/11095032727/job/30823174026#step:3:349 commit 5777fe5ab57d6479326bdb21ef9a6b88ea1516dc Author: nagachika AuthorDate: 2024-10-18 11:30:05 +0900 Commit: nagachika CommitDate: 2024-10-18 11:30:05 +0900 merge revision(s) 637067440f74043c6d79fc649ab8acf1afea25a5: [Backport #20752] [Bug #20752] Slice of readonly `IO::Buffer` also should be readonly commit 18074c508105244552678cf6afd4b23304cb4c8f Author: nagachika AuthorDate: 2024-10-18 11:25:12 +0900 Commit: nagachika CommitDate: 2024-10-18 11:25:12 +0900 merge revision(s) c1862cbb89a6bf42dcd07d92fe4f4bfeebca5775: [Backport #20719] [Bug #20719] `Float` argument must be ASCII compatible commit 48af30b068729058c2f45375e67fa76f6240a228 Author: nagachika AuthorDate: 2024-10-18 11:22:30 +0900 Commit: nagachika CommitDate: 2024-10-18 11:22:30 +0900 merge revision(s) d33e3d47b84a73b38644f2a3d41881ce9be6ef18: [Backport #20704] [Bug #20704] Win32: Fix chdir to non-ASCII path On Windows, `chdir` in compilers' runtime libraries uses the active code page, but command line arguments in ruby are always UTF-8, since commit:33ea2646b98adb49ae2e1781753bf22d33729ac0. commit 3d4d5c8d8cca0c290a234fb3c47c035822b18add Author: Samuel Williams AuthorDate: 2024-10-03 20:11:36 +0900 Commit: nagachika CommitDate: 2024-10-04 10:09:39 +0900 Add `IO::Buffer` tests for read and write with length & offset. commit bc482e632c99f30db2e12aa51cc3b10b3b0f7886 Author: Samuel Williams AuthorDate: 2024-10-03 19:58:36 +0900 Commit: nagachika CommitDate: 2024-10-04 10:09:39 +0900 Fix size calcuation when offset is given + updated documentation. commit 2d62c5d3d9a565fe50a3582124e6d4a58d130084 Author: nagachika AuthorDate: 2024-09-26 13:00:19 +0900 Commit: nagachika CommitDate: 2024-09-26 13:00:19 +0900 merge revision(s) 0d16c36d0ab2afa2ec79b72b229e69c141ebdaba: [Backport #13831] [win32/registry] Fallback to UTF-8 for unknown codepages There are some codepages like cp708 for which no ruby encoding exists: $ ruby -e "Encoding.find('cp708')" Traceback (most recent call last): 1: from -e:1:in `
' -e:1:in `find': unknown encoding name - cp708 (ArgumentError) win32/registry uses ENCODING to transcode error messages and expand environment variables from UTF-16LE, so using UTF-8 seems like the best choice and is better than a hard failure. This should resolve [Bug #13831] commit b6f7d544851ee8e1f6e4d151cc915b40f8b8e4f6 Author: nagachika AuthorDate: 2024-08-25 12:12:51 +0900 Commit: nagachika CommitDate: 2024-08-31 19:10:29 +0900 merge revision(s) 29500e3034681a30045dea462d6bb653e8600738: [Backport #20698] Update bundled gems list as of 2024-08-22 commit 04fab1dfd956a536fa3683682f3e8f2707f6f8ce Author: nagachika AuthorDate: 2024-08-31 19:09:13 +0900 Commit: nagachika CommitDate: 2024-08-31 19:09:13 +0900 merge revision(s) bb849ffdb18305f01457de4e9848c830eb83a2d7: Added explicitly begin-end block for Ruby 2.4. strscan, ipaddr and some default gems still support Ruby 2.4. After this, I extract this CoreAssertions to their repositories. commit f095a085a43b609be6282fcc27ab7fe859259dfc Author: nagachika AuthorDate: 2024-08-31 18:51:41 +0900 Commit: nagachika CommitDate: 2024-08-31 18:51:41 +0900 merge revision(s) 8a7e6f6852740e989ef8f679db5631306466a4ed: Improve base time of assert_linear_performance (#11369) Remove `.ceil` from base time calculation that makes 10x gap. This will make the assertion more strict and also less flaky. commit f4847607ee52040fc62531f37001ea1a22acd856 Author: nagachika AuthorDate: 2024-08-31 18:49:58 +0900 Commit: nagachika CommitDate: 2024-08-31 18:49:58 +0900 merge revision(s) f1c78b23313e63eb31a213cc7277b1eb206a581b: Suppress warning for shadowing outer local variable commit b5bb0ee64b24251f103311e56168b96f5334cc6f Author: nagachika AuthorDate: 2024-08-31 18:49:27 +0900 Commit: nagachika CommitDate: 2024-08-31 18:49:27 +0900 merge revision(s) d23964360335ad561f252cb6fe8e90df7ebee90e: core_assertions.rb: Support old rubies Some symbol argument might not be accepted by Process.clock_gettime. commit bec6da392d26677194160cb4875f1bc491db27f5 Author: nagachika AuthorDate: 2024-08-31 18:49:12 +0900 Commit: nagachika CommitDate: 2024-08-31 18:49:12 +0900 merge revision(s) 533423ebe46ebfe3005198c12aa0d2c899c695ea: core_assertions.rb: Prefer CPU time clocks To prevent influence from other processes. commit 7c2cdca7f250d0b270df585f69f275f72c415348 Author: nagachika AuthorDate: 2024-08-31 18:48:57 +0900 Commit: nagachika CommitDate: 2024-08-31 18:48:57 +0900 merge revision(s) f9eb2515a3221cced611b4de971b72a78a7a566f: core_assertions.rb: Extract common code block commit 07d7ffeb9c2c6537883a1ea7b180eb04ecbe47e6 Author: nagachika AuthorDate: 2024-08-31 18:48:17 +0900 Commit: nagachika CommitDate: 2024-08-31 18:48:17 +0900 merge revision(s) 3fe134759cc4904c74306e0832c22fa518a5bea2: Skip assert_linear_performance for RJIT commit 00fada3890fe7bebbd660af3682eee6a8857b222 Author: nagachika AuthorDate: 2024-08-31 18:45:29 +0900 Commit: nagachika CommitDate: 2024-08-31 18:45:29 +0900 merge revision(s) f07c756494b0e473ff8e4ece6f04c7ababe93b01: core_assertions.rb: Tweak timeout limit Increase the timeout limit when variance at rehearsal is small. commit c96ba1fec4b4b80b60a08514bd9030258ba7f628 Author: Hiroshi SHIBATA AuthorDate: 2024-08-27 14:25:16 +0900 Commit: nagachika CommitDate: 2024-08-27 19:12:13 +0900 Merge URI-0.12.3 commit 529b618235deb287be7c691064e11f942162f595 Author: nagachika AuthorDate: 2024-08-27 17:22:49 +0900 Commit: nagachika CommitDate: 2024-08-27 17:22:49 +0900 Revert "merge revision(s) 29500e3034681a30045dea462d6bb653e8600738: [Backport #20698]" This reverts commit 3a3784a197383046537e66a9c567b96a52f0f86f. commit 3a3784a197383046537e66a9c567b96a52f0f86f Author: nagachika AuthorDate: 2024-08-25 12:12:51 +0900 Commit: nagachika CommitDate: 2024-08-25 12:13:34 +0900 merge revision(s) 29500e3034681a30045dea462d6bb653e8600738: [Backport #20698] Update bundled gems list as of 2024-08-22 commit 21c708ee802e1a59901eccc6448e40e8f72189b8 Author: nagachika AuthorDate: 2024-08-18 18:07:14 +0900 Commit: nagachika CommitDate: 2024-08-18 18:07:14 +0900 merge revision(s) 992596fb7af18a7f472589a607d0eb3fbb03b49a: [Backport #20344] Fix next inside block argument stack underflow [Bug #20344] Fix compile_next adding removable adjust label commit 65fed1c3e439bc47bcf6ec884431a86cb9ebd1dc Author: Stan Hu AuthorDate: 2024-05-17 17:05:48 +0900 Commit: nagachika CommitDate: 2024-08-18 18:02:09 +0900 Allow waitpid(-1, Process::WNOHANG) to be woken if a waitpid(pid) is ...pending If two threads are running, with one calling waitpid(-1, Process::WNOHANG), and another calling waitpid($some_pid), and then $some_other_pid exits, we would expect the waitpid(-1, Process::WNOHANG) call to retrieve that exit status. However, it cannot actually do so until $some_pid _also_ exits. This patch fixes the issue by calling do_waitpid unconditionally in waitpid_wait; this will ensure that a waitpid -1 actually reaps something (after first checking that no PID-directed call wants the process). [Bug #20490] commit 50399eebd96c76ce808ea4d84fe39693f585a531 Author: nagachika AuthorDate: 2024-08-18 11:18:49 +0900 Commit: nagachika CommitDate: 2024-08-18 11:19:09 +0900 merge revision(s) 1870505f478cc75993b296b7144a45137ace6937: [Backport #20651] [Backport #20571] Fix wrong unreachable chunk remove when jump destination label is unremovable commit a8a25291447e3630d455e82851ca58fc8ac372ec Author: nagachika AuthorDate: 2024-08-18 10:52:06 +0900 Commit: nagachika CommitDate: 2024-08-18 10:52:06 +0900 merge revision(s) 97449338d6cb42d9dd7c9ca61550616e7e6b6ef6: [Backport #20649] [Bug #20649] Allow `nil` as 2nd argument of `assign_error` Fallback to the last token element in that case, for the backward compatibilities. commit 0f2f6b31aa6433fd800f0621b5bedbaf0da12a6f Author: nagachika AuthorDate: 2024-08-17 21:41:24 +0900 Commit: nagachika CommitDate: 2024-08-17 21:41:24 +0900 merge revision(s) 2a7da0b6e76929c684cd948630a897c1d5b16c26: [Backport #20667] Update bundled gems list as of 2024-08-12 commit 6fd660e6179117a86304ef29ba0da71e5722be1a Author: nagachika AuthorDate: 2024-08-10 16:27:40 +0900 Commit: nagachika CommitDate: 2024-08-10 16:27:40 +0900 merge revision(s) 657f4b99f61a15e21584b87f7b206933d116589b: Update bundled gems list as of 2024-08-02 commit c307c2b6a13bf11aef0c9ab8dea6e0ff77047c91 Author: nagachika AuthorDate: 2024-08-10 16:24:51 +0900 Commit: nagachika CommitDate: 2024-08-10 16:24:51 +0900 merge revision(s) 54d26221b4c4cfc46048f30892c626db69ce9244: .travis.yml: Allow failures for ppc64le and s390x. Because Travis ppc64le/s390x are unstable. ppc64le: * https://app.travis-ci.com/github/ruby/ruby/builds/269211469 * https://app.travis-ci.com/github/ruby/ruby/builds/269204073 s390x: * https://app.travis-ci.com/github/ruby/ruby/builds/269201221 commit 634db38b22f0e6c3397a3780863e6e0650a68c9b Author: Hiroshi SHIBATA AuthorDate: 2024-08-08 16:44:02 +0900 Commit: Hiroshi SHIBATA CommitDate: 2024-08-08 18:00:44 +0900 Added bootstrap job for release workflow commit bbef31b7b4c715589392b215d4a40320221c9d2c Author: Hiroshi SHIBATA AuthorDate: 2024-08-07 10:47:38 +0900 Commit: Hiroshi SHIBATA CommitDate: 2024-08-07 12:07:01 +0900 Fix installation failure of rss commit 116d95b476aed8c7dd525d521bf35f5f324096c0 Author: Hiroshi SHIBATA AuthorDate: 2024-08-01 13:31:55 +0900 Commit: nagachika CommitDate: 2024-08-06 18:59:52 +0900 Revert "skip bundled gem rss test for a while." This reverts commit 0cc98ae353fd231bcd0e704c251198abc4406247. commit 16f795b5e9321088c1ba765e0dfe4a8300fc18ad Author: Hiroshi SHIBATA AuthorDate: 2024-08-01 13:31:23 +0900 Commit: nagachika CommitDate: 2024-08-06 18:59:52 +0900 Reapply "merge revision(s) 9f708d48f6df37ee9600db9d51b57a156609a13b,0301473fb523c71d8cdc4966971f31f502001185,7f0e26b7f99bf76408569892ce20318501f74729: [Backport #20516]" This reverts commit 367ad5055c3d5210c884d4611e08ffa32ec608ee. commit 06cfabd49a1be9c00f2cb7d477cde6d47c3b8d32 Author: Hiroshi SHIBATA AuthorDate: 2024-02-16 17:57:38 +0900 Commit: nagachika CommitDate: 2024-08-06 18:59:52 +0900 Adjust indent commit 84f2da297f325b1fcde887bc307a4719cd5d9dab Author: Hiroshi SHIBATA AuthorDate: 2024-02-16 16:33:25 +0900 Commit: nagachika CommitDate: 2024-08-06 18:59:52 +0900 Try to find gemspec from `.bundle/specifications commit 6517f15f9f07d1a516532fb08c264c1a113e9993 Author: Hiroshi SHIBATA AuthorDate: 2024-02-16 15:39:36 +0900 Commit: nagachika CommitDate: 2024-08-06 18:59:52 +0900 Try to load original gemspec from `.bundle/gems/foo-x.y.z/foo.gemspec`. `.bundle/specification/foo-x.y.z.gemspec` may be changed our toolchain commit 2e7949f006e4ab092b3749b89130e6888b6fdf48 Author: Hiroshi SHIBATA AuthorDate: 2023-02-16 17:23:19 +0900 Commit: nagachika CommitDate: 2024-08-06 18:59:52 +0900 Use gemspec that keeps original dependencies commit b62e1df3a1527c811f7fe857423023a479bc807f Author: Hiroshi SHIBATA AuthorDate: 2024-08-01 13:19:17 +0900 Commit: nagachika CommitDate: 2024-08-06 18:59:52 +0900 Revert "Backport [Bug #19158] for Ruby 3.2 (#7356)" This reverts commit 65ab2c1ef23bd4a02120a27c371dce12ea9024d4. commit 7fc6448ec7f7505ca5772af0a60ee780c321492c Author: Peter Zhu AuthorDate: 2024-07-27 00:10:53 +0900 Commit: nagachika CommitDate: 2024-08-02 18:26:26 +0900 Fix ceil when ndigits is large [Bug #20654] This commit fixes Integer#ceil and Float#ceil when the number is negative and ndigits is large such that 10**ndigits is a bignum. Previously, it would return 0 in such cases. However, this would cause unexpected behaviour such as: puts 1.ceil(-5) # => 100000 puts 1.ceil(-10) # => 10000000000 puts 1.ceil(-20) # => 0 This commit changes the last result so that it will return 100000000000000000000. commit 7048fbdf59509e4f52eff56d7c044ed28eb67727 Author: Peter Zhu AuthorDate: 2024-07-27 00:10:39 +0900 Commit: nagachika CommitDate: 2024-08-02 18:26:26 +0900 Fix floor when ndigits is large [Bug #20654] This commit fixes Integer#floor and Float#floor when the number is negative and ndigits is large such that 10**ndigits is a bignum. Previously, it would return 0 in such cases. However, this would cause unexpected behaviour such as: puts -1.floor(-5) # => -100000 puts -1.floor(-10) # => -10000000000 puts -1.floor(-20) # => 0 This commit changes the last result so that it will return -100000000000000000000. commit 0cc98ae353fd231bcd0e704c251198abc4406247 Author: nagachika AuthorDate: 2024-07-26 22:37:30 +0900 Commit: nagachika CommitDate: 2024-07-26 22:37:30 +0900 skip bundled gem rss test for a while. commit 31d0f1a2e7dbfb60731d1f05b868e1d578cda493 Author: nagachika AuthorDate: 2024-07-26 20:54:27 +0900 Commit: nagachika CommitDate: 2024-07-26 20:54:27 +0900 bump patchlevel. commit 367ad5055c3d5210c884d4611e08ffa32ec608ee Author: nagachika AuthorDate: 2024-07-26 20:53:32 +0900 Commit: nagachika CommitDate: 2024-07-26 20:53:32 +0900 Revert "merge revision(s) 9f708d48f6df37ee9600db9d51b57a156609a13b,0301473fb523c71d8cdc4966971f31f502001185,7f0e26b7f99bf76408569892ce20318501f74729: [Backport #20516]" This reverts commit 56c311aa0b20dee13ab43309ae3386f57f8cb797. commit ae9a43512c6a6c8d4c60a0987137bc0a00a97d85 Author: nagachika AuthorDate: 2024-07-26 18:41:18 +0900 Commit: nagachika CommitDate: 2024-07-26 18:41:18 +0900 bump teeny commit 1dba48bb3a92bccc350508935ed0b59a249b674b Author: nagachika AuthorDate: 2024-07-22 11:36:03 +0900 Commit: nagachika CommitDate: 2024-07-22 12:21:12 +0900 bump rexml version to 3.3.2. commit 483ad38c6968feb1990f36d48d14fd55988d2150 Author: nagachika AuthorDate: 2024-07-21 12:25:04 +0900 Commit: nagachika CommitDate: 2024-07-21 12:25:04 +0900 merge revision(s) b15e88e0fcccb03b9cc5e4c1478ec9b10e26c961: [Backport #19619] [Bug #19619] Preserve numbered parameters context Preserve numbered parameters context across method definitions commit 2ac8e2049bad37da38576b1ed263713c66eba2c9 Author: nagachika AuthorDate: 2024-07-20 15:12:36 +0900 Commit: nagachika CommitDate: 2024-07-20 15:12:36 +0900 merge revision(s) e1104017e3080fd432c0b5fdc3ae6e004ffd0834: [Backport #19781] YJIT: Fix cfp inconsistency on tailcall (#8107) [Bug #19781] commit 4f1e047f86b159528055d37ee0da2ad6e5a38c23 Author: nagachika AuthorDate: 2024-07-20 13:11:29 +0900 Commit: nagachika CommitDate: 2024-07-20 13:11:29 +0900 merge revision(s) a3eb5e5c70eaee12964cdd807b8f19950003141f: [Backport #20573] Don't call `Warning.warn` unless the category is enabled (#10981) Don't call `Warning.warn` unless the category is enabled The warning category should be enabled if we want to call `Warning.warn`. This commit speeds up the following benchmark: ```ruby eval "def test; " + 1000.times.map { "' '.chomp!" }.join(";") + "; end" def run_benchmark count i = 0 while i < count start = Process.clock_gettime(Process::CLOCK_MONOTONIC) yield ms = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start puts "itr ##{i}: #{(ms * 1000).to_i}ms" i += 1 end end run_benchmark(25) do 250.times do test end end ``` On `master` this runs at about 92ms per iteration. With this patch, it is 7ms per iteration. [Bug #20573] commit 3fe51aa26867159af574fac8eba7ae86a0b30971 Author: nagachika AuthorDate: 2024-07-20 13:00:32 +0900 Commit: nagachika CommitDate: 2024-07-20 13:05:33 +0900 merge revision(s) fba8aff7af450e476e97b62385427dfa51850955, d8c6e91748871ab2287d7703347847fe18a292d2: [Backport #20592] [Bug #20592] Fix segfault when sending NULL to freeaddrinfo On alpine freeaddrinfo does not accept NULL pointer Fix dangling `else` commit c10c73fd16f1b7c9b658afee2b1b53ecfaed4fa4 Author: nagachika AuthorDate: 2024-07-20 12:53:25 +0900 Commit: nagachika CommitDate: 2024-07-20 12:53:25 +0900 merge revision(s) 2dd46bb82ffc4dff01d7ea70922f0e407acafb4e: [Backport #20468] [Bug #20468] Fix safe navigation in `for` variable commit db5201ffd531d07747de03c55c4cb1c0e9e5c5bf Author: nagachika AuthorDate: 2024-07-15 22:09:30 +0900 Commit: nagachika CommitDate: 2024-07-15 22:09:30 +0900 Revert "merge revision(s) 5fa6ba9568e87e43e08a4daeba1572254c589fb1: [Backport #20500]" This reverts commit fc5b9ffad1b0710bd999521d0bf9631af6b762c2. commit 96a82418b2efe98a92f239a9a1cbf30dd396d335 Author: nagachika AuthorDate: 2024-07-15 22:01:57 +0900 Commit: nagachika CommitDate: 2024-07-15 22:01:57 +0900 merge revision(s) 05553cf22d43dd78b8f30cc4591230b5c000c538: [Backport #20517] [Bug #20517] Make a multibyte character one token at meta escape commit a804d5514c7c0608b9fb52426ec3ec738420ad29 Author: nagachika AuthorDate: 2024-07-15 21:51:03 +0900 Commit: nagachika CommitDate: 2024-07-15 21:51:03 +0900 merge revision(s) d503e1b95a40e45d7767e0175de60092de4ba54e: [Backport #20030] [Bug #20030] dispatch invalid escaped character without ignoring it commit fc5b9ffad1b0710bd999521d0bf9631af6b762c2 Author: nagachika AuthorDate: 2024-07-15 21:31:23 +0900 Commit: nagachika CommitDate: 2024-07-15 21:31:23 +0900 merge revision(s) 5fa6ba9568e87e43e08a4daeba1572254c589fb1: [Backport #20500] [Bug #20500] Search non-default directories for jemalloc Co-Authored-by: lish82 (Hiroki Katagiri) commit 958adb5b65f1edd0d4a204d299baf05f0b490c2c Author: kimuraw (Wataru Kimura) AuthorDate: 2024-07-14 10:36:35 +0900 Commit: nagachika CommitDate: 2024-07-15 20:44:07 +0900 [Bug #20633] Fix the condition for `atomic_signal_fence` `AC_CHECK_DECLS` defines `HAVE_DECL_SYMBOL` to 1 if declared, 0 otherwise, not undefined. commit c22398f96c29c2357bee50b291c358cc34837013 Author: nagachika AuthorDate: 2024-07-15 18:03:08 +0900 Commit: nagachika CommitDate: 2024-07-15 18:03:08 +0900 merge partially d292a9b98ce03c76dbe13138d20b9fbf613cc02d. Just add the test to ensure the issue doesn't exit in ruby_3_2 branch. commit b72deb7ca1198f8c799cd5e7e44635cf50abd7ec Author: nagachika AuthorDate: 2024-07-15 17:56:01 +0900 Commit: nagachika CommitDate: 2024-07-15 17:56:01 +0900 merge revision(s) 58918788abd63901588e4aa1e39b5c057321c10a: [Backport #20342] [Bug #20342] Consider wrapped load in `main` methods commit bfdb6d5a9dca32b41a2b22c108b46f9fc01fee35 Author: nagachika AuthorDate: 2024-07-15 16:47:41 +0900 Commit: nagachika CommitDate: 2024-07-15 16:47:41 +0900 update GitHub Action spec_guards workflow. commit 8200325e932e40e1ae7a959e588dae655bea9660 Author: nagachika AuthorDate: 2024-07-15 14:03:11 +0900 Commit: nagachika CommitDate: 2024-07-15 14:03:11 +0900 follow-up for a6b7aad954680e23e7db81d69a7e8e44583bf8b4. suppress compiler warning. commit a6b7aad954680e23e7db81d69a7e8e44583bf8b4 Author: nagachika AuthorDate: 2024-07-15 13:40:01 +0900 Commit: nagachika CommitDate: 2024-07-15 13:40:01 +0900 merge revision(s) 7e4b1f8e1935a10df3c41ee60ca0987d73281126: [Backport #20322] [Bug #20322] Fix rb_enc_interned_str_cstr null encoding The documentation for `rb_enc_interned_str_cstr` notes that `enc` can be a null pointer, but this currently causes a segmentation fault when trying to autoload the encoding. This commit fixes the issue by checking for NULL before calling `rb_enc_autoload`. commit 519d164b6682a8b9fde2b1d5ab7d74f54c4f0224 Author: nagachika AuthorDate: 2024-07-15 13:24:57 +0900 Commit: nagachika CommitDate: 2024-07-15 13:24:57 +0900 merge revision(s) c7ce2f537f96ab2cf2f5fc2982d6147866ff5340: [Backport #20304] Fix memory leak in setting encodings There is a memory leak in Encoding.default_external= and Encoding.default_internal= because the duplicated name is not freed when overwriting. 10.times do 1_000_000.times do Encoding.default_internal = nil end puts `ps -o rss= -p #{$$}` end Before: 25664 41504 57360 73232 89168 105056 120944 136816 152720 168576 After: 9648 9648 9648 9680 9680 9680 9680 9680 9680 9680 commit db45554fef4c8e1b0ba494965449db13068e6051 Author: nagachika AuthorDate: 2024-07-15 12:00:14 +0900 Commit: nagachika CommitDate: 2024-07-15 12:00:14 +0900 merge revision(s) 1faeb44dfcf777ace28321e80d0ebf942161a0a7, 7f87ad9fc4bc45faf8cd33602a025f27c094b2fd: [Backport #20431] Check if macros are defined before using Assume macros with the same prefix would be defined together. Refer autoconfigured endian macro (#10572) Remove the case `RB_IO_BUFFER_HOST_ENDIAN` is not defined. commit 0cb1e753cadb4cd1706ecf334e007bb246438577 Author: nagachika AuthorDate: 2024-07-15 11:55:41 +0900 Commit: nagachika CommitDate: 2024-07-15 11:55:41 +0900 Revert "merge revision(s) 5e0c17145131e073814c7e5b15227d0b4e73cabe: [Backport #20169]" This reverts commit 6b73406833dd22e489114fa77c1c80c4b7af2ed0. commit b5e554d03a0bd34f260e783e84f4d8a16de39a61 Author: nagachika AuthorDate: 2024-07-15 11:08:50 +0900 Commit: nagachika CommitDate: 2024-07-15 11:08:50 +0900 Revert "merge revision(s) e04146129ec6898dd6a9739dad2983c6e9b68056, d5080f6e8b77364483ff6727b1065e45e180f05d: [Backport #20292]" This reverts commit a54c717c7a74b91a3cdf20742c355e3ea42052d1. commit 8051a6d3854687c008d69d3d198a16d0d1c5dac1 Author: nagachika AuthorDate: 2024-07-15 11:07:31 +0900 Commit: nagachika CommitDate: 2024-07-15 11:07:31 +0900 Revert "follow-up for a54c717c7a74b91a3cdf20742c355e3ea42052d1." This reverts commit 715633ba6e982dc5404abeafc5246c31af92ac10. commit 715633ba6e982dc5404abeafc5246c31af92ac10 Author: nagachika AuthorDate: 2024-07-15 10:41:21 +0900 Commit: nagachika CommitDate: 2024-07-15 10:41:21 +0900 follow-up for a54c717c7a74b91a3cdf20742c355e3ea42052d1. commit 90f4c5dc73af3fff76500dd4223792a6d9f58636 Author: nagachika AuthorDate: 2024-07-15 09:50:14 +0900 Commit: nagachika CommitDate: 2024-07-15 09:50:14 +0900 merge revision(s) dc146babf47a84bbd1f176d766637d4a40327019, f23d5028059078a346efc977287b669d494a5a3f, a0f7de814ae5c299d6ce99bed5fb308a05d50ba0: [Backport #20296] [Bug #20296] Clear errinfo when `exception: false` [Bug #20296] Refine the test [Bug #20296] Fix the default assertion message commit a54c717c7a74b91a3cdf20742c355e3ea42052d1 Author: nagachika AuthorDate: 2024-07-15 09:26:25 +0900 Commit: nagachika CommitDate: 2024-07-15 09:26:25 +0900 merge revision(s) e04146129ec6898dd6a9739dad2983c6e9b68056, d5080f6e8b77364483ff6727b1065e45e180f05d: [Backport #20292] [Bug #20292] Truncate embedded string to new capacity Fix -Wsign-compare on String#initialize MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ../string.c:1886:57: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘long int’ [-Wsign-compare] 1886 | if (STR_EMBED_P(str)) RUBY_ASSERT(osize <= str_embed_capa(str)); | ^~ commit 6b73406833dd22e489114fa77c1c80c4b7af2ed0 Author: nagachika AuthorDate: 2024-07-15 08:46:16 +0900 Commit: nagachika CommitDate: 2024-07-15 08:50:38 +0900 merge revision(s) 5e0c17145131e073814c7e5b15227d0b4e73cabe: [Backport #20169] Make io_fwrite safe for compaction [Bug #20169] Embedded strings are not safe for system calls without the GVL because compaction can cause pages to be locked causing the operation to fail with EFAULT. This commit changes io_fwrite to use rb_str_tmp_frozen_no_embed_acquire, which guarantees that the return string is not embedded. commit 9f1e18a138e5196c04c5231c6a799dc637f2e9af Author: nagachika AuthorDate: 2024-07-13 18:48:18 +0900 Commit: nagachika CommitDate: 2024-07-13 18:48:18 +0900 follow-up for 3faef1d40dc1d6eea8ffcd624528f431ccaf0a5b. commit 90a44bcd39c569d851f73d167955c83f3ff2384f Author: nagachika AuthorDate: 2024-07-13 15:43:23 +0900 Commit: nagachika CommitDate: 2024-07-13 15:43:23 +0900 merge revision(s) f36a71e26995b69ff72bc132bbcf40ad89571414: [Backport #20307] [Bug #20307] Fix `Hash#update` to make frozen copy of string keys commit d802b6122b5e501cc0172376acb185160710454a Author: Nobuyoshi Nakada AuthorDate: 2024-02-27 01:22:01 +0900 Commit: nagachika CommitDate: 2024-07-13 15:42:41 +0900 Extract `RHASH_STRING_KEY_P` commit 3faef1d40dc1d6eea8ffcd624528f431ccaf0a5b Author: Nobuyoshi Nakada AuthorDate: 2024-02-26 23:47:45 +0900 Commit: nagachika CommitDate: 2024-07-13 15:40:01 +0900 Extract `RHASH_IDENTHASH_P` commit 584a02aaafda74c21d24dc4c5e223a2482c7fde3 Author: nagachika AuthorDate: 2024-07-13 15:17:51 +0900 Commit: nagachika CommitDate: 2024-07-13 15:17:51 +0900 merge revision(s) d19d683a354530a27b4cbb049223f8dc70c75849: [Backport #20250] rb_obj_setup: do not copy RUBY_FL_SEEN_OBJ_ID [Bug #20250] We're seting up a new instance, so it never had an associated object_id. commit c97a632363a170879b9755c5a123e92533908039 Author: nagachika AuthorDate: 2024-07-07 14:42:08 +0900 Commit: nagachika CommitDate: 2024-07-07 16:46:02 +0900 merge revision(s) 82b57d7bfeefd717c10f7a5a3484aca6b3e708a3: [Backport #20162] Fix memory leak when duplicating too complex object [Bug #20162] Creating a ST table then calling st_replace leaks memory because the st_replace overwrites the ST table without freeing any of the existing memory. This commit changes it to use st_copy instead. For example: RubyVM::Shape.exhaust_shapes o = Object.new o.instance_variable_set(:@a, 0) 10.times do 100_000.times { o.dup } puts `ps -o rss= -p #{$$}` end Before: 23264 33600 42672 52160 61600 71728 81056 90528 100560 109840 After: 14752 14816 15584 15584 15664 15664 15664 15664 15664 15664 commit bd5df1693c89d389471d145fc19b487c708912b1 Author: nagachika AuthorDate: 2024-07-07 14:47:04 +0900 Commit: nagachika CommitDate: 2024-07-07 16:44:06 +0900 merge revision(s) e626da82eae3d437b84d4f9ead0164d436b08e1a, f3af5ae7e6c1c096bbfe46d69de825a02b1696cf: [Backport #20311] Don't pin named structs defined in Ruby [Bug #20311] `rb_define_class_under` assumes it's called from C and that the reference might be held in a C global variable, so it adds the class to the VM root. In the case of `Struct.new('Name')` it's wasteful and make the struct immortal. Make Struct memory leak test faster [Bug #20311] It times out on some platform, so we can reduce iterations. On my machine it completes in 250ms and RSS grows 8X. commit 2a4469ea590e6719eb30e8b7aea7e147e3b82f75 Author: Ivo Anjo AuthorDate: 2024-06-21 19:48:37 +0900 Commit: nagachika CommitDate: 2024-07-06 16:20:45 +0900 [Backport #11036 to 3.2] Add explicit compiler fence when pushing frames to ensure safe profiling **What does this PR do?** This PR tweaks the `vm_push_frame` function to add an explicit compiler fence (`atomic_signal_fence`) to ensure profilers that use signals to interrupt applications (stackprof, vernier, pf2, Datadog profiler) can safely sample from the signal handler. This is a backport of #11036 to Ruby 3.2 . **Motivation:** The `vm_push_frame` was specifically tweaked in https://github.com/ruby/ruby/pull/3296 to initialize the a frame before updating the `cfp` pointer. But since there's nothing stopping the compiler from reordering the initialization of a frame (`*cfp =`) with the update of the cfp pointer (`ec->cfp = cfp`) we've been hesitant to rely on this on the Datadog profiler. In practice, after some experimentation + talking to folks, this reordering does not seem to happen. But since modern compilers have a way for us to exactly tell them not to do the reordering (`atomic_signal_fence`), this seems even better. I've actually extracted `vm_push_frame` into the "Compiler Explorer" website, which you can use to see the assembly output of this function across many compilers and architectures: https://godbolt.org/z/3oxd1446K On that link you can observe two things across many compilers: 1. The compilers are not reordering the writes 2. The barrier does not change the generated assembly output (== has no cost in practice) **Additional Notes:** The checks added in `configure.ac` define two new macros: * `HAVE_STDATOMIC_H` * `HAVE_DECL_ATOMIC_SIGNAL_FENCE` Since Ruby generates an arch-specific `config.h` header with these macros upon installation, this can be used by profilers and other libraries to test if Ruby was compiled with the fence enabled. **How to test the change?** As I mentioned above, you can check https://godbolt.org/z/3oxd1446K to confirm the compiled output of `vm_push_frame` does not change in most compilers (at least all that I've checked on that site). commit 2b35d80834f14011f7d313f8fac7855dc9949f70 Author: nagachika AuthorDate: 2024-07-06 15:55:04 +0900 Commit: nagachika CommitDate: 2024-07-06 15:55:04 +0900 merge revision(s) 75aaeb35b82da26359b9418d2963384d0c55839c: [Backport #20239] [Bug #20239] Fix overflow at down-casting commit a67b43d99e24dc7c2a9e134a65f28f968fe124c1 Author: nagachika AuthorDate: 2024-07-06 15:54:03 +0900 Commit: nagachika CommitDate: 2024-07-06 15:54:03 +0900 merge revision(s) 3a04ea2d0379dd8c6623c2d5563e6b4e23986fae: [Backport #20305] [Bug #20305] Fix matching against an incomplete character When matching against an incomplete character, some `enclen` calls are expected not to exceed the limit, and some are expected to return the required length and then the results are checked if it exceeds. commit 89de66dbb0d8454c9d69faa331d6e35f8b315cce Author: nagachika AuthorDate: 2024-07-06 13:33:24 +0900 Commit: nagachika CommitDate: 2024-07-06 13:35:22 +0900 merge revision(s) 78d9fe69479d32214a52ad7291c3973f1b6b7f6f, 04729fe68dceddab045be7324e26c2bb15aa62c7: [Backport #20286] [Backport #20286] Ensure that exiting thread invokes end-of-life behaviour. (#10039) Fix exception handling in `rb_fiber_scheduler_set`. (#10042) commit 5577e5d396cc8f062833b67d6280db6cc8501e7a Author: nagachika AuthorDate: 2024-07-06 13:26:26 +0900 Commit: nagachika CommitDate: 2024-07-06 13:26:26 +0900 merge revision(s) a7ff264477105b5dc0ade6facad4176a1b73df0b: [Backport #20393] Don't clear pending interrupts in the parent process. (#10365) commit 2f8f17e842666abb05ca522d6072c957fab0e12e Author: nagachika AuthorDate: 2024-07-06 11:16:44 +0900 Commit: nagachika CommitDate: 2024-07-06 11:16:44 +0900 merge revision(s) 5d1702e01a36e11b183fe29ce10780a9b1a41cf0: [Backport #20414] Enumerator should use a non-blocking fiber, change `rb_fiber_new` to be non-blocking by default. (#10481) commit 5141d72fde2528721663ddbc0554ac81ddc0656f Author: nagachika AuthorDate: 2024-07-06 11:01:02 +0900 Commit: nagachika CommitDate: 2024-07-06 11:01:02 +0900 merge revision(s) 1e08a9f0e9058186db18f29efc6458c00f10a856: [Backport #20499] [Bug #20499] Use Xcode owned tools for Xcode clang Xcode has its own version tools that may be incompatible with genuine LLVM tools, use the tools in the same directory. commit 2dfaa00e09ceb7f1dcee87acd56c47701fc8ca19 Author: Hiroshi SHIBATA AuthorDate: 2024-07-05 17:47:40 +0900 Commit: nagachika CommitDate: 2024-07-05 18:37:44 +0900 Added macos-13 and removed macos-11 commit eca044a3870d4767d10c0ca8a51f1de4e5e2fdb0 Author: nagachika AuthorDate: 2024-06-19 06:13:54 +0900 Commit: nagachika CommitDate: 2024-06-19 06:13:54 +0900 bump patchlevel. commit 8e68752a5e48c5baf07114952d256efa360e3f4b Author: nagachika AuthorDate: 2024-06-19 00:27:18 +0900 Commit: nagachika CommitDate: 2024-06-19 00:27:18 +0900 bump rexml version to 3.2.9. commit fa042a0f10f70347c1717c068d96e43e19f2171b Author: Hiroshi SHIBATA AuthorDate: 2024-01-22 10:36:06 +0900 Commit: nagachika CommitDate: 2024-06-18 22:53:59 +0900 added redirect wrapper for envutil commit 963bb96e29204f351fa58a205a6eec075c0194ff Author: Hiroshi SHIBATA AuthorDate: 2024-01-17 12:31:35 +0900 Commit: nagachika CommitDate: 2024-06-18 22:53:58 +0900 Load Rake::TaskLib when missing it commit 5a70a323904368987b79c59140bd2aca009da7a0 Author: Nobuyoshi Nakada AuthorDate: 2023-06-14 01:33:44 +0900 Commit: nagachika CommitDate: 2024-06-18 22:53:58 +0900 Show prerequisites for compile task commit 9542ef2798c6f555df5115da6881a5d50ed7034b Author: Nobuyoshi Nakada AuthorDate: 2023-06-14 01:21:27 +0900 Commit: nagachika CommitDate: 2024-06-18 22:53:58 +0900 Allow test-unit-ruby-core files to be loaded from bundled gems Separate the directly from the customized test-unit, since it may not work with bundled gems. commit 56c311aa0b20dee13ab43309ae3386f57f8cb797 Author: nagachika AuthorDate: 2024-06-02 07:13:25 +0900 Commit: nagachika CommitDate: 2024-06-18 22:50:39 +0900 merge revision(s) 9f708d48f6df37ee9600db9d51b57a156609a13b,0301473fb523c71d8cdc4966971f31f502001185,7f0e26b7f99bf76408569892ce20318501f74729: [Backport #20516] Clear runtime dependencies if default gems is specified. The current build system uses runtime dependencies from only `.bundle` directory. We shouldn't install runtime dependencies from rubygems.org when `make test-bundled-gems` is invoked. Fixed dependencies list format Re-use strscan with ruby repo commit 8e7d5adb4a481e9b4050505ea88cdf64278cacb7 Author: nagachika AuthorDate: 2024-06-01 16:11:08 +0900 Commit: nagachika CommitDate: 2024-06-18 22:50:16 +0900 partially merge revision(s) 70ad58cb62b195ba86a5ef07a565b22b02a040ea: [Backport #20516] Update bundled_gems commit e308f47888cfb5c85344d030098932340b57147d Author: nagachika AuthorDate: 2024-06-18 22:47:12 +0900 Commit: nagachika CommitDate: 2024-06-18 22:47:12 +0900 Revert "merge revision(s) 18eaf0be905e3e251423b42d6f4e56b7cae1bc3b: [Backport #20494]" This reverts commit ec30266267b2a063089b8ce7967203bcbadbdf4e. commit 478b21f63127f30fd1a9ee051a6c5593f41937ed Author: nagachika AuthorDate: 2024-06-18 22:46:48 +0900 Commit: nagachika CommitDate: 2024-06-18 22:46:48 +0900 Revert "merge revision(s) 22e4eeda6561693367fc7a00b92b90f46b09cabd, 1ab7c412d2e3880a7ad233c32e93961888f8145c, fd549b229b0822198ddc847703194263a2186ed1: [Backport #20515]" This reverts commit dc4ca25e0a01e072ba3cf1fc47612aff72c980af. commit dc4ca25e0a01e072ba3cf1fc47612aff72c980af Author: nagachika AuthorDate: 2024-06-15 13:13:19 +0900 Commit: nagachika CommitDate: 2024-06-15 13:13:19 +0900 merge revision(s) 22e4eeda6561693367fc7a00b92b90f46b09cabd, 1ab7c412d2e3880a7ad233c32e93961888f8145c, fd549b229b0822198ddc847703194263a2186ed1: [Backport #20515] ci: Test whether GMP is working in compilers.yml (#10875) Avoid reoccurence of [Bug #20515] Requires https://github.com/ruby/ruby/pull/10876 since 18eaf0be905e3e251423b42d6f4e56b7cae1bc3b bug: https://bugs.ruby-lang.org/issues/20515 RUBY_CHECK_HEADER didn't define HAVE_{header-file} (#10876) --with-gmp is not working at all because HAVE_GMP_H was missing since 18eaf0be90. [Bug #20515] bug: https://bugs.ruby-lang.org/issues/20515 follow-up: https://bugs.ruby-lang.org/issues/20494 follow-up: 18eaf0be905e3e251423b42d6f4e56b7cae1bc3b follow-up: https://github.com/ruby/ruby/pull/10805 test_bignum: defined? returns String (#10880) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit didn't verify the test is working properly due to mistaken auto-merge… [Bug #20515] bug: https://bugs.ruby-lang.org/issues/20515 follow-up: 22e4eeda6561693367fc7a00b92b90f46b09cabd follow-up: https://github.com/ruby/ruby/pull/10875 commit ec30266267b2a063089b8ce7967203bcbadbdf4e Author: nagachika AuthorDate: 2024-06-15 13:09:47 +0900 Commit: nagachika CommitDate: 2024-06-15 13:09:47 +0900 merge revision(s) 18eaf0be905e3e251423b42d6f4e56b7cae1bc3b: [Backport #20494] [Bug #20494] Search non-default directories for GMP Co-Authored-by: lish82 (Hiroki Katagiri) commit 2f010f31f1887ad0f429709a2906fc5a4dae8e87 Author: KJ Tsanaktsidis AuthorDate: 2024-05-18 18:37:49 +0900 Commit: nagachika CommitDate: 2024-06-15 13:05:25 +0900 Inline RB_VM_SAVE_MACHINE_CONTEXT into BLOCKING_REGION There's an exhaustive explanation of this in the linked redmine bug, but the short version is as follows: blocking_region_begin can spill callee-saved registers to the stack for its own use. That means they're not saved to ec->machine by the call to setjmp, since by that point they're already on the stack and new, different values are in the real registers. ec->machine's end-of-stack pointer is also bumped to accomodate this, BUT, after blocking_region_begin returns, that points past the end of the stack! As far as C is concerned, that's fine; the callee-saved registers are restored when blocking_region_begin returns. But, if another thread triggers GC, it is relying on finding references to Ruby objects by walking the stack region pointed to by ec->machine. If the C code in exec; subsequently does things that use that stack memory, then the value will be overwritten and the GC might prematurely collect something it shouldn't. [Bug #20493] commit b494ecfbc1b2a934d27233b7171c40adaa81e3c5 Author: Peter Zhu AuthorDate: 2024-06-11 08:05:58 +0900 Commit: nagachika CommitDate: 2024-06-15 13:02:26 +0900 Fix inconsistent evaluation of keyword splat (#10959) [Bug #20180] Backports #9624. commit e0e1a0f502fe57e7e7e8cf643b8f141b4582d62d Author: Jean Boussier AuthorDate: 2024-06-10 22:12:54 +0900 Commit: nagachika CommitDate: 2024-06-15 12:58:19 +0900 compile.c: use putspecialobject for RubyVM::FrozenCore [Bug #20569] `putobject RubyVM::FrozenCore`, is not serializable, we have to use `putspecialobject VM_SPECIAL_OBJECT_VMCORE`. commit ab7dfa7ff270feb155d4715fb7ffcee3668ef38f Author: nagachika AuthorDate: 2024-06-03 20:59:51 +0900 Commit: nagachika CommitDate: 2024-06-03 20:59:51 +0900 merge revision(s) 631449ac6b9336dfce577a786aff7eca0b8abcf1: README.ja.md: Remove Cirrus CI badge image. folloup for 15ee9c7c1b693f29b6b2dbe7b47488bf154e481c. commit f9a9035b98526b8b50587ab7959cc1d2292f5b7f Author: nagachika AuthorDate: 2024-06-03 19:57:28 +0900 Commit: nagachika CommitDate: 2024-06-03 19:57:28 +0900 merge revision(s) 15ee9c7c1b693f29b6b2dbe7b47488bf154e481c: [DOC] README.md: Remove Cirrus CI badge image. (#8785) We removed the `.cirrus.yml` at the commit <01b5d1d2ff6ca91b2909dfa67295f59b53e6f065>. Let's remove the badge image too. commit 5afdfbdd0924c2cede5626e9d762caa90ce656d9 Author: nagachika AuthorDate: 2024-06-03 19:57:19 +0900 Commit: nagachika CommitDate: 2024-06-03 19:57:19 +0900 merge revision(s) 01b5d1d2ff6ca91b2909dfa67295f59b53e6f065: YJIT: Add a cargo job for Arm64 and remove .cirrus.yml (#8679) * YJIT: Add a cargo job for Arm64 * YJIT: Use command names as job names They look more consistent with jobs that use the command name as a job name, such as `make (check)`, `make (test-bundled-gems)`, etc. * Remove .cirrus.yml commit 3c04fd11a0a387d99d0e439b0e4147128beaa88d Author: nagachika AuthorDate: 2024-06-03 12:22:51 +0900 Commit: nagachika CommitDate: 2024-06-03 12:22:51 +0900 Revert "partially merge revision(s) 70ad58cb62b195ba86a5ef07a565b22b02a040ea: [Backport #20516]" This reverts commit 519ac9c5fd7bfa75655231188ac1da9589563618. commit c48b2312acf40371590ac2a9618f4cb39472ef0f Author: nagachika AuthorDate: 2024-06-03 12:22:25 +0900 Commit: nagachika CommitDate: 2024-06-03 12:22:25 +0900 Revert "merge revision(s) 9f708d48f6df37ee9600db9d51b57a156609a13b,0301473fb523c71d8cdc4966971f31f502001185,7f0e26b7f99bf76408569892ce20318501f74729: [Backport #20516]" This reverts commit 0de1ff12973ffc04bc9a8b0799e963922986d1eb. commit 0de1ff12973ffc04bc9a8b0799e963922986d1eb Author: nagachika AuthorDate: 2024-06-02 07:13:25 +0900 Commit: nagachika CommitDate: 2024-06-02 07:13:25 +0900 merge revision(s) 9f708d48f6df37ee9600db9d51b57a156609a13b,0301473fb523c71d8cdc4966971f31f502001185,7f0e26b7f99bf76408569892ce20318501f74729: [Backport #20516] Clear runtime dependencies if default gems is specified. The current build system uses runtime dependencies from only `.bundle` directory. We shouldn't install runtime dependencies from rubygems.org when `make test-bundled-gems` is invoked. Fixed dependencies list format Re-use strscan with ruby repo commit 519ac9c5fd7bfa75655231188ac1da9589563618 Author: nagachika AuthorDate: 2024-06-01 16:11:08 +0900 Commit: nagachika CommitDate: 2024-06-01 16:11:08 +0900 partially merge revision(s) 70ad58cb62b195ba86a5ef07a565b22b02a040ea: [Backport #20516] Update bundled_gems commit dd77934ca6e2e8b2b894f2460017323b33b619b6 Author: matoro AuthorDate: 2024-05-24 05:10:32 +0900 Commit: Hiroshi SHIBATA CommitDate: 2024-05-28 09:26:37 +0900 [ruby/readline-ext] Skip test_interrupt_in_other_thread on arm32-linux This is a combination of main Ruby commit https://github.com/ruby/ruby/commit/aefc98891c42024039f19ef45bdfe93fbc590b7c and my PR correcting the regex https://github.com/ruby/ruby/pull/10819. Upstream Ruby requests that changes to this test go to readline-ext repo before being backported to 3.2 branch. https://github.com/ruby/readline-ext/commit/868f873a78 commit 0e664ebcd36879591223d1ecbb181aa05d82a4d9 Author: Samuel Williams AuthorDate: 2023-09-14 17:37:43 +0900 Commit: nagachika CommitDate: 2024-05-18 20:09:56 +0900 Fix `io_buffer_get_string` default length computation. (#8427) * Fix `io_buffer_get_string` default length computation. When an offset bigger than the size is given, the resulting length will be computed incorrectly. Raise an argument error in this case. * Validate all arguments. commit 67d499a7646a4f2f5294b6c83ac9503fcd873270 Author: Samuel Williams AuthorDate: 2023-05-24 10:17:35 +0900 Commit: nagachika CommitDate: 2024-05-18 20:09:56 +0900 Improvements to `IO::Buffer` `read`/`write`/`pread`/`pwrite`. (#7826) - Fix IO::Buffer `read`/`write` to use a minimum length. commit 359e40e3c9986b8a5d77359995f0e926d1c6eb72 Author: Samuel Williams AuthorDate: 2023-05-22 12:27:20 +0900 Commit: nagachika CommitDate: 2024-05-18 20:09:56 +0900 Rename `data` -> `buffer` for better readability. (#7836) commit 2d686e1019414f6bbb7ccbfa897b7b665250743d Author: nagachika AuthorDate: 2024-05-16 11:36:47 +0900 Commit: nagachika CommitDate: 2024-05-16 11:36:47 +0900 merge revision(s) ae8990aef098410ecc2b5f48fea9d7d171a3c5f6: [Backport #20183] Alias init functions The extension library has each initialization function named "Init_" + basename. If multiple extensions have the same base name (such as cgi/escape and erb/escape), the same function will be registered for both names. To fix this conflict, rename the initialization functions under sub directories using using parent names, when statically linking. commit 449899b38314d0ecbe61e42d34398bdf2561b8e9 Author: Jean Boussier AuthorDate: 2024-05-09 18:56:51 +0900 Commit: Benoit Daloze CommitDate: 2024-05-14 16:29:21 +0900 Fix `String#index` to clear MatchData when a regexp is passed [Bug #20421] The bug was fixed in Ruby 3.3 via 9dcdffb8bf8a3654fd78bf1a58b30c8e13888a7a commit a10a0d0c77826b97ec246274adcc80952049688b Author: Alan Wu AuthorDate: 2023-01-17 05:30:18 +0900 Commit: Hiroshi SHIBATA CommitDate: 2024-05-08 20:12:13 +0900 CI: Pass -O2 for annocheck Because `optflags` is pasted into the invocation line after `CC`, we were building with -O1 unintentionally. You can see this in the configuration summary: https://github.com/ruby/ruby/actions/runs/3933391169/jobs/6727044423#step:9:753 The check actually fails with -O2. To make it pass, upstream suggest that we use the annocheck GCC plugin. Since it requires building from source as the debian package for it isn't ready yet, punt on it for now and use `--skip-gaps`. Co-authored-by: Jun Aruga commit 8029ee41768cdc6b86cad90390f281185ab995e2 Author: Jun Aruga AuthorDate: 2024-03-12 22:39:05 +0900 Commit: Hiroshi SHIBATA CommitDate: 2024-05-08 20:12:13 +0900 [ruby/openssl] test_asn1.rb: Remove the assertions of the time string format without second. This commit fixes the following errors in the tests. Because the OpenSSL project changed the code to make the time string format without second invalid. So, we drop the assertions. ``` 1) Error: test_generalizedtime(OpenSSL::TestASN1): OpenSSL::ASN1::ASN1Error: generalizedtime is too short /home/runner/work/ruby-openssl/ruby-openssl/test/openssl/test_asn1.rb:698:in `decode' /home/runner/work/ruby-openssl/ruby-openssl/test/openssl/test_asn1.rb:698:in `decode_test' /home/runner/work/ruby-openssl/ruby-openssl/test/openssl/test_asn1.rb:433:in `test_generalizedtime' 430: OpenSSL::ASN1::GeneralizedTime.new(Time.utc(9999, 9, 8, 23, 43, 39)) 431: # LibreSSL 3.6.0 requires the seconds element 432: return if libressl? => 433: decode_test B(%w{ 18 0D }) + "201612081934Z".b, 434: OpenSSL::ASN1::GeneralizedTime.new(Time.utc(2016, 12, 8, 19, 34, 0)) 435: # not implemented 436: # decode_test B(%w{ 18 13 }) + "https://github.com/ruby/openssl/commit/201612081934+0930".b, 2) Error: test_utctime(OpenSSL::TestASN1): OpenSSL::ASN1::ASN1Error: utctime is too short /home/runner/work/ruby-openssl/ruby-openssl/test/openssl/test_asn1.rb:698:in `decode' /home/runner/work/ruby-openssl/ruby-openssl/test/openssl/test_asn1.rb:698:in `decode_test' /home/runner/work/ruby-openssl/ruby-openssl/test/openssl/test_asn1.rb:411:in `test_utctime' 408: end 409: # Seconds is omitted. LibreSSL 3.6.0 requires it 410: return if libressl? => 411: decode_test B(%w{ 17 0B }) + "1609082343Z".b, 412: OpenSSL::ASN1::UTCTime.new(Time.utc(2016, 9, 8, 23, 43, 0)) 413: # not implemented 414: # decode_test B(%w{ 17 11 }) + "https://github.com/ruby/openssl/commit/500908234339+0930".b, ``` https://github.com/ruby/openssl/commit/2e826d5715 commit 0ca642cd300ee2d7a8f5dbef512344467285b2ea Author: Xi Ruoyao AuthorDate: 2024-04-24 14:42:09 +0900 Commit: Hiroshi SHIBATA CommitDate: 2024-05-08 20:12:13 +0900 [ruby/net-http] Skip test_session_reuse_but_expire with OpenSSL 3.3 OpenSSL 3.3.0 9 Apr 2024 is also broken. Signed-off-by: Xi Ruoyao https://github.com/ruby/net-http/commit/ab525c956d commit af471c0e0127eea0cafa6f308c0425bbfab0acf5 Author: nagachika AuthorDate: 2024-04-23 19:20:09 +0900 Commit: nagachika CommitDate: 2024-04-23 19:20:09 +0900 bump teeny commit 90b194b5e3fe793c1ed895a4522675845181e6fd Author: nagachika AuthorDate: 2024-04-23 19:18:14 +0900 Commit: nagachika CommitDate: 2024-04-23 19:18:14 +0900 merge revision(s) 989a2355808a63fc45367785c82ffd46d18c900a: Fix Use-After-Free issue for Regexp Co-authored-by: Isaac Peka <7493006+isaac-peka@users.noreply.github.com> --- regexec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 404f1e215a1707b31edba36f9f07a82367960618 Author: nagachika AuthorDate: 2024-04-23 19:17:53 +0900 Commit: nagachika CommitDate: 2024-04-23 19:17:53 +0900 merge revision(s) 33e5b47c16f1fd3382186e6ffe73cfc6e00946f7: Fix handling of reg->dmin in Regex matching --- regexec.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 06049fe98ef6eced6ccf6028621f3e10edeedccb Author: KJ Tsanaktsidis AuthorDate: 2024-03-28 13:57:10 +0900 Commit: nagachika CommitDate: 2024-04-08 18:40:47 +0900 Backport https://github.com/ruby/ruby/pull/9240 to Ruby 3.2 Merged into master in 7ba2506232d3fa6c4e82e3708c0ff746a1a8de5c [Bug #20050] commit e6bf38a6e7fbae0097fdf51e3c752820a2c58ae4 Author: nagachika AuthorDate: 2024-04-07 14:53:48 +0900 Commit: nagachika CommitDate: 2024-04-07 14:53:48 +0900 merge revision(s) d3279a0c11ca45ca85027e7eb74dc4aac52c478b: [Backport #20327] [Bug #20327] Do not count subsecond to calculate UTC offset Assume that there will never be any time zones with UTC offsets that are subseconds. Historically, UTC offset has only been used down to the second. --- test/ruby/test_time_tz.rb | 8 ++++++++ time.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) commit baa5bc16c17e3b4dac7b590ed5d6b7e705535e15 Author: nagachika AuthorDate: 2024-04-07 14:41:29 +0900 Commit: nagachika CommitDate: 2024-04-07 14:41:29 +0900 merge revision(s) adaff1fc496b6f01fb1c4c812b9b4082618e2f79: [Backport #19592] [Bug #19592] Fix ext/Setup support After [1], using ext/Setup to link some, but not all extensions failed during linking. I did not know about this option, and had assumed that only `--with-static-linked-ext` builds can include statically linked extensions. Include the support code for statically linked extensions in all configurations like before [1]. Initialize the table lazily to minimize footprint on builds that have no statically linked extensions. [1]: 790cf4b6d0475614afb127b416e87cfa39044d67 "Fix autoload status of statically linked extensions" --- load.c | 28 +++++++++++++++++----------- vm.c | 3 --- vm_core.h | 6 ------ 3 files changed, 17 insertions(+), 20 deletions(-) commit 27606daf8efeb0ae6d0590a2c9bb1c5aae07f140 Author: nagachika AuthorDate: 2024-03-31 17:37:01 +0900 Commit: nagachika CommitDate: 2024-03-31 17:37:01 +0900 merge revision(s) ac0163949a6ee678dfccec9f6e56422b91e5f0a9,01fd262e62076277a41af72ea13f20deb1b462a2: [Backport #20245] Compile code without Symbol GC always --- symbol.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) Fix crash when checking symbol encoding [Bug #20245] We sometimes pass in a fake string to sym_check_asciionly. This can crash if sym_check_asciionly raises because it creates a CFP with the fake string as the receiver which will crash if GC tries to mark the CFP. For example, the following script crashes: GC.stress = true Object.const_defined?("\xC3") --- symbol.c | 17 ++++++++++------- test/ruby/test_module.rb | 8 ++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) commit 4f3ed07d5bfd581b630e4afc8b9bb170ce781e7f Author: nagachika AuthorDate: 2024-03-31 17:18:55 +0900 Commit: nagachika CommitDate: 2024-03-31 17:18:55 +0900 merge revision(s) ade56737e2273847426214035c0ff2340b43799a: [Backport #20190] Fix coderange of invalid_encoding_string.<<(ord) Appending valid encoding character can change coderange from invalid to valid. Example: "\x95".force_encoding('sjis')<<0x5C will be a valid string "\x{955C}" --- string.c | 6 +++++- test/ruby/test_string.rb | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) commit 1b5c74a2408d248f35cb811327dd51f49ee37c9e Author: nagachika AuthorDate: 2024-03-31 17:17:34 +0900 Commit: nagachika CommitDate: 2024-03-31 17:17:34 +0900 merge revision(s) b14674b236445fb70f484603e678722760f678f4: [Backport #20194] Memory leak with TracePoint on bmethod [Bug #20194] When disabling the TracePoint on bmethod, the hooks list is not freed. For example: obj = Object.new obj.define_singleton_method(:foo) {} bmethod = obj.method(:foo) tp = TracePoint.new(:return) {} 10.times do 100_000.times do tp.enable(target: bmethod) {} end puts `ps -o rss= -p #{$$}` end Before: 18208 22832 26528 29728 34000 37776 40864 44400 47680 51504 After: 16688 17168 17168 17248 17696 17760 17824 17824 17856 17920 --- test/ruby/test_settracefunc.rb | 13 +++++++++++++ vm_trace.c | 1 + 2 files changed, 14 insertions(+) commit bf6e9299ef4f10dbd23f32331c355ac875bfb5e3 Author: nagachika AuthorDate: 2024-03-31 17:16:26 +0900 Commit: nagachika CommitDate: 2024-03-31 17:16:26 +0900 merge revision(s) 2554c5d3b8738a248cedb2fea96dfab9fbe19417: [Backport #20231] Don't wait in `io_binwrite_string` if not necessary. (#9792) --- io.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit d5dbada8a2127d9b6b670dd891eabbb63c48268f Author: Hiroshi SHIBATA AuthorDate: 2024-03-21 15:39:09 +0900 Commit: nagachika CommitDate: 2024-03-21 21:21:00 +0900 Merge RDoc-6.5.1.1 commit 0a2238d509c158fb5539c0d7dd42d8e3faec6ead Author: nagachika AuthorDate: 2024-03-21 21:15:02 +0900 Commit: nagachika CommitDate: 2024-03-21 21:15:02 +0900 merge revision(s) 64b6a018a38f200c957fdbbe7d0cbe0e64781c9f: Fix test session reuse but expire (#9824) * OpenSSL 3.2.1 30 Jan 2024 is also broken Import 45064610725ddd81a5ea3775da35aa46985bc789 from ruby_3_3 branch tentatively. --- test/net/http/test_https.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b12343c3b6c557b7e5668dcd8a9eab12fc9ee2c0 Author: nagachika AuthorDate: 2024-03-10 19:12:31 +0900 Commit: nagachika CommitDate: 2024-03-10 19:12:31 +0900 merge revision(s) d2cd903c85f38f42c6aefc6d97a1558f74d8d9db: [ruby/openssl] pkey/ec: constify https://github.com/ruby/openssl/commit/6fb3499a7b --- ext/openssl/ossl_pkey_ec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 80112a9847b705b53e17e48540a6d00daa7e59a4 Author: Andrea Culot AuthorDate: 2024-02-28 22:28:30 +0900 Commit: nagachika CommitDate: 2024-02-29 10:17:34 +0900 Make sure RUBY_YJIT_ENABLE only enables YJIT for truthy values commit 5e4606423da96c2e26b00981c22bddfce0d970bf Author: nagachika AuthorDate: 2024-02-25 18:29:16 +0900 Commit: nagachika CommitDate: 2024-02-25 18:29:16 +0900 merge revision(s) f15123c34ce80f3928612befe2a9aaf4c9d27fda: [Backport #18743] Fix stack trace for rescued StopIteration --- enumerator.c | 15 +++++++++++++-- test/ruby/test_enumerator.rb | 20 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) commit 1b9ff146e38c348519434754e0466352b8b25c50 Author: nagachika AuthorDate: 2024-02-25 14:03:05 +0900 Commit: nagachika CommitDate: 2024-02-25 14:03:05 +0900 Revert "merge revision(s) c8d162c889008028b148437d02f36f4edaa749fd: [Backport #19973]" This reverts commit 24dd529750c08b5603fb418a4f34998b9bf6c8f9. commit 24dd529750c08b5603fb418a4f34998b9bf6c8f9 Author: nagachika AuthorDate: 2024-02-25 11:52:05 +0900 Commit: nagachika CommitDate: 2024-02-25 11:52:05 +0900 merge revision(s) c8d162c889008028b148437d02f36f4edaa749fd: [Backport #19973] [Bug #19973] Warn duplicated keyword arguments after keyword splat --- parse.y | 11 +++++++---- test/ruby/test_syntax.rb | 6 ++++++ 2 files changed, 13 insertions(+), 4 deletions(-) commit 3960d894d98d20540e646a0d6c2186a2d676b96c Author: nagachika AuthorDate: 2024-02-25 00:23:21 +0900 Commit: nagachika CommitDate: 2024-02-25 00:23:21 +0900 merge revision(s) 665b4c5b2a31078d7db0173ad60daad0b463c1fd,642875e474b4e6a13770b1dbbc33d466ba5e0718,54b9b80b84760717aadb8bf67f638785ed895a58,361bce8d2c4c90a01eb3b7365a87dec0d93bb2b6: [Backport #19967] [Bug #19967] Reset `LIBPATHENV` env after started Not to affect other tools invoked as child processes. --- common.mk | 3 ++- template/Makefile.in | 3 +++ template/fake.rb.in | 3 +++ tool/fake.rb | 8 ++++++++ 4 files changed, 16 insertions(+), 1 deletion(-) [Bug #19967] Revert "configure.ac: LIBPATHENV on macOS" This reverts commit 1961c786aab243b3eb60e7238224e87975d88056. These environment variables should no longer propagate to child processes. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) [Bug #19967] Delete real path --- tool/fake.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) [Bug #19967] Ignore library before build --- tool/fake.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aefc98891c42024039f19ef45bdfe93fbc590b7c Author: Jun Aruga AuthorDate: 2024-01-04 01:34:39 +0900 Commit: nagachika CommitDate: 2024-01-31 19:43:45 +0900 readline: Skip the test_interrupt_in_other_thread on arm32. Skip the test_interrupt_in_other_thread test failing on Travis arm32. The failing test is not a new issue. It had already been skipped in .travis.yml before updating .travis.yml. https://github.com/ruby/ruby/blob/7b05cb8dbbd637910757f402e64da3908b4bb809/.travis.yml#L99-L101 Note that RUBY_PLATFORM is "armv8l-linux-eabihf" on Travis arm32 pipeline. And the readline was deleted in both master and ruby_3_3 branches. https://github.com/ruby/ruby/commit/59fd67fc3d405e529e038172e769ff20a8fb5535 So, we only need this commit on ruby_3_2 and older Ruby version branches. commit fc25e1662e88621178c15dbbb1a8b9cbc1cc4b13 Author: Jun Aruga AuthorDate: 2024-01-04 00:55:25 +0900 Commit: nagachika CommitDate: 2024-01-31 19:43:45 +0900 Backport .travis.yml from ruby_3_3 branch. Update the .travis.yml file copied from the latest ruby_3_3 branch <5124f9ac7513eb590c37717337c430cb93caa151>. commit 52bb2ac0a6971d0391efa2275f7a66bff319087c Author: nagachika AuthorDate: 2024-01-18 15:26:39 +0900 Commit: nagachika CommitDate: 2024-01-18 15:26:39 +0900 bump teeny commit 99c9aeef4b4417120e30b145cf98e1bc68a2a0de Author: nagachika AuthorDate: 2024-01-18 12:57:01 +0900 Commit: nagachika CommitDate: 2024-01-18 12:57:01 +0900 merge revision(s) b8a3f1bd456f92866c4a7bd83235f78c574784a8: Fix crash in tracing object allocations ObjectSpace.trace_object_allocations_start could crash since it adds a TracePoint for when objects are freed. However, TracePoint could crash since it modifies st tables while inside the GC that is trying to free the object. This could cause a memory allocation to happen which would crash if it triggers another GC. See a crash log: http://ci.rvm.jp/results/trunk@ruby-sp1/4373707 --- ext/objspace/depend | 1 + ext/objspace/object_tracing.c | 7 +++++++ gc.h | 4 ++-- 3 files changed, 10 insertions(+), 2 deletions(-) commit 3302e251dccec1e981945ab19d316d0856c68bf6 Author: nagachika AuthorDate: 2024-01-18 11:56:43 +0900 Commit: nagachika CommitDate: 2024-01-18 11:56:43 +0900 merge revision(s) e07e9f8491d9ab8b22d2bdf6a8aeba834dac7eef: [Backport #20174] RJIT: Do nothing on jit_cont_free if cont is NULL. --- cont.c | 2 ++ 1 file changed, 2 insertions(+) commit 5dae6eb55e9785c8329708e55a49a280a344cdc1 Author: nagachika AuthorDate: 2024-01-18 11:53:29 +0900 Commit: nagachika CommitDate: 2024-01-18 11:53:29 +0900 merge revision(s) 051a874325c177e040301878069c2b28f5d06ce6: [Backport #20096] Fix memory overread in registry.rb The terminator is not actually getting filled in; we're simply passing (two) bytes of empty memory as the NUL terminator. This can lead to garbage characters getting written to registry values. Fix this by explicitly putting a WCHAR_NUL character into the string to be sent to the registry API, like we do in the MULTI_SZ case. [Bug #20096] --- ext/win32/lib/win32/registry.rb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit a26b41bf7a2db69b0889ed599f568a4ba2529eba Author: nagachika AuthorDate: 2024-01-18 11:51:58 +0900 Commit: nagachika CommitDate: 2024-01-18 11:51:58 +0900 merge revision(s) 37ed86fd3c798e298fad9db6e7df1f3f45e1e03b: [Backport #20161] Fix memory leak in regexp grapheme clusters [Bug #20161] The cc->mbuf gets overwritten, so we need to free it to not leak memory. For example: str = "hello world".encode(Encoding::UTF_32LE) 10.times do 1_000.times do str.grapheme_clusters end puts `ps -o rss= -p #{$$}` end Before: 15536 15760 15920 16144 16304 16480 16640 16784 17008 17280 After: 15584 15584 15760 15824 15888 15888 15888 15888 16048 16112 --- regparse.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b4f8623441a8be53b643fed826ba44e933cafd7e Author: nagachika AuthorDate: 2024-01-18 11:50:31 +0900 Commit: nagachika CommitDate: 2024-01-18 11:50:31 +0900 merge revision(s) b3d612804946e841e47d14e09b6839224a79c1a4: [Backport #20150] Fix memory leak in grapheme clusters [Bug #20150] String#grapheme_cluters and String#each_grapheme_cluster leaks memory because if the string is not UTF-8, then the created regex will not be freed. For example: str = "hello world".encode(Encoding::UTF_32LE) 10.times do 1_000.times do str.grapheme_clusters end puts `ps -o rss= -p #{$$}` end Before: 26000 42256 59008 75792 92528 109232 125936 142672 159392 176160 After: 9264 9504 9808 10000 10128 10224 10352 10544 10704 10896 --- string.c | 98 +++++++++++++++++++++++++++++++----------------- test/ruby/test_string.rb | 11 ++++++ 2 files changed, 75 insertions(+), 34 deletions(-) commit 0cc0e43745ffc13a596441adccee295274d99a0b Author: nagachika AuthorDate: 2024-01-18 11:48:46 +0900 Commit: nagachika CommitDate: 2024-01-18 11:48:46 +0900 merge revision(s) f9a48548cf3ef54fc0a385ccd78c708737055ecc: [Backport #20042] restore the stack pointer on finalizer When error on finalizer, the exception will be ignored. To restart the code, we need to restore the stack pointer. fix [Bug #20042] --- gc.c | 4 ++++ test/ruby/test_gc.rb | 9 +++++++++ 2 files changed, 13 insertions(+) commit 3bd9adadbe0b500cf7e910c99db97aaddfba3369 Author: Hiroshi SHIBATA AuthorDate: 2024-01-05 17:34:25 +0900 Commit: Hiroshi SHIBATA CommitDate: 2024-01-05 18:21:44 +0900 Bump up net-http to 0.4.1 commit 671fd2a6323ab1b11fe2ba672ad22b7d3e87945e Author: Sorah Fukumori AuthorDate: 2024-01-01 20:45:54 +0900 Commit: Hiroshi SHIBATA CommitDate: 2024-01-05 18:21:44 +0900 [ruby/net-http] Renew test certificates The private key is replaced with a public known test key published at [RFC 9500]. Also lifetime has been extended to 10 years from 4 years. [RFC 9500]: https://www.rfc-editor.org/rfc/rfc9500.html https://github.com/ruby/net-http/commit/4ab6c4a500 commit 041448de7d326c6f88f8f4d20f6a546646c1cbf7 Author: Hiroshi SHIBATA AuthorDate: 2024-01-05 17:09:21 +0900 Commit: Hiroshi SHIBATA CommitDate: 2024-01-05 18:21:44 +0900 Bump up net-imap to 0.3.4.1 commit 152eadd37ce7697b6b1596733fb37e3d69b33253 Author: Hiroshi SHIBATA AuthorDate: 2024-01-05 16:51:13 +0900 Commit: Hiroshi SHIBATA CommitDate: 2024-01-05 18:21:44 +0900 Bump up net-smtp to 0.3.4 commit 01d63a459027bf62548359f30d55321edd3f49c8 Author: Hiroshi SHIBATA AuthorDate: 2024-01-05 14:40:07 +0900 Commit: Hiroshi SHIBATA CommitDate: 2024-01-05 18:21:44 +0900 Bump up net-ftp to 0.2.1 commit 7b05cb8dbbd637910757f402e64da3908b4bb809 Author: nagachika AuthorDate: 2023-12-16 10:51:16 +0900 Commit: nagachika CommitDate: 2023-12-16 10:51:16 +0900 NEWS.md: bump default gem net-http to 0.4.0 commit e7ad9a786dc4d4574f69629e9efa3d1d95413dca Author: nagachika AuthorDate: 2023-12-16 10:45:01 +0900 Commit: nagachika CommitDate: 2023-12-16 10:48:39 +0900 merge revision(s) e3a19b8a4306ae3103e6a27cdac7482585aac453: [ruby/net-http] Bump up 0.4.0 https://github.com/ruby/net-http/commit/4be99c204c --- lib/net/http.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c5cea385a5e42e464b436844f0ae185b17a93eb9 Author: nagachika AuthorDate: 2023-12-16 10:42:34 +0900 Commit: nagachika CommitDate: 2023-12-16 10:48:39 +0900 merge revision(s) 66d266244c00c1f9ffcfbd2970386e0adcc2512a: [ruby/net-http] Removed obsolated Revision constant https://github.com/ruby/net-http/commit/c1c5638014 --- lib/net/http.rb | 1 - 1 file changed, 1 deletion(-) commit 4cbad13e9cd1c4cf63ad4adc096cc4b6294a838f Author: nagachika AuthorDate: 2023-12-16 10:42:13 +0900 Commit: nagachika CommitDate: 2023-12-16 10:48:39 +0900 merge revision(s) f109269a0392940df2b314e16502c4509b94a290,14fa5e39d72c84d3e12e10dc5d77a6e6200c10f5: [ruby/net-http] fix a false-negative test * no_proxy is meant to operate on the destination address, not on the name of the proxy * if both end with `'.example'`, the test does not nail down the behaviour https://github.com/ruby/net-http/commit/bb9a5cfa3d --- test/net/http/test_http.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) [ruby/net-http] fix no_proxy behaviour https://github.com/ruby/net-http/commit/f4951dc42a --- lib/net/http.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b3639871b2566c25c6c3b547f57348dc101ed3a4 Author: nagachika AuthorDate: 2023-12-16 10:41:49 +0900 Commit: nagachika CommitDate: 2023-12-16 10:48:39 +0900 merge revision(s) 3dec5dc3462286cdbdb53e496e6175a82bdc39b7: [ruby/net-http] Force TLS version to 1.2 when using LibreSSL This comment previously specified TLS 1.2, but actually set the version to TLS 1.0. LibreSSL 3.8.1 (included in OpenBSD 7.4) dropped support for TLS 1.0/1.1 for security reasons, which broke this test. Switch the test to use TLS 1.2 as documented so it will continue to work on OpenBSD 7.4+. https://github.com/ruby/net-http/commit/97be4de53a --- test/net/http/test_https.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 06051311d828bead3922ac5766822000c011e5db Author: nagachika AuthorDate: 2023-12-16 10:40:29 +0900 Commit: nagachika CommitDate: 2023-12-16 10:48:39 +0900 merge revision(s) 9d58f9382893a71d8badad605879c0120915fbee: [ruby/net-http] Net::HTTPResponse nil checking Fix nil handling in read_body and stream_check. Fixes: #70 https://github.com/ruby/net-http/commit/36f916ac18 --- lib/net/http/response.rb | 3 ++- test/net/http/test_httpresponse.rb | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) commit 359653658e604c075e3eca73e20b02d0d46bd0ef Author: nagachika AuthorDate: 2023-12-16 10:39:42 +0900 Commit: nagachika CommitDate: 2023-12-16 10:48:39 +0900 merge revision(s) 8d04260acd8b6fba98867acc1a7e786495813fa0,2fbd8dca18a102cb3ffc5e7e6235c09fd0d04ba3,4165ec91d87ff1fcb41e312d896bea8a678c9bab,4d21134f3f1645ae2042d836e750ad267ee1551f,70da92cdf7ac75e071353c4551419ad02c284497,ea321a654d4b4fd6d56a1cdd6e117c62075898ee,ae68a8df586e9f3b3211e9c174b7001e57ee6aee,af67ced3b0945e8ea67434f8e66ef1e602656438,e77c766b7ab17e801c5cfa881754c392f8c13f0b: [ruby/net-http] turn on frozen strings for net/http/header https://github.com/ruby/net-http/commit/a5203c9f92 --- lib/net/http/header.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) [ruby/net-http] turn on frozen strings for net/http/generic_request https://github.com/ruby/net-http/commit/b92ade088d --- lib/net/http/generic_request.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) [ruby/net-http] update net/http/response to be frozen string literal https://github.com/ruby/net-http/commit/dc3b4a75ca --- lib/net/http/response.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) [ruby/net-http] freeze rest of lib https://github.com/ruby/net-http/commit/455a74734a --- lib/net/http.rb | 2 +- lib/net/http/backward.rb | 2 +- lib/net/http/exceptions.rb | 2 +- lib/net/http/proxy_delta.rb | 2 +- lib/net/http/request.rb | 2 +- lib/net/http/requests.rb | 2 +- lib/net/https.rb | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) [ruby/net-http] Fix on 2.7 https://github.com/ruby/net-http/commit/5194fd541e --- lib/net/http.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) [ruby/net-http] use +'' everywhere https://github.com/ruby/net-http/commit/1077427152 --- lib/net/http/generic_request.rb | 4 ++-- lib/net/http/response.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) [ruby/net-http] Update lib/net/http/response.rb @natematykiewicz's suggestion to avoid a string allocation https://github.com/ruby/net-http/commit/925630f227 Co-authored-by: Nate Matykiewicz --- lib/net/http/response.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) [ruby/net-http] Update lib/net/http.rb @natematykiewicz's suggestion to avoid another string allocation https://github.com/ruby/net-http/commit/4a22c42338 Co-authored-by: Nate Matykiewicz --- lib/net/http.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) [ruby/net-http] No longer neccessary to call `String#freeze` on string literals. See #144 https://github.com/ruby/net-http/commit/5a986c13d3 --- lib/net/http.rb | 2 +- lib/net/http/generic_request.rb | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) commit affd2c02962a83b353acd846d99500f3b7994009 Author: nagachika AuthorDate: 2023-12-16 10:36:58 +0900 Commit: nagachika CommitDate: 2023-12-16 10:48:39 +0900 merge revision(s) 0300ea5a6c8a7a49feed73318fc8a991aa89fcfc: [ruby/net-http] Improve performance of HTTPHeader#content_type In the existing implementation, `main_type` and `sub_type` would end up being called multiple times potentially. Instead of doing that, save the result so it can be re-used. https://github.com/ruby/net-http/commit/179976f7ea --- lib/net/http/header.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit ca83700944623d5934a6979ed209733045ac541c Author: nagachika AuthorDate: 2023-12-16 10:36:05 +0900 Commit: nagachika CommitDate: 2023-12-16 10:48:39 +0900 partially merge revision cfa6a892d05c5dcbd8fcd7c78cdbac49a8ff6100: Redirect to for the portability commit e337b858343f12a2765505dc958ab22c7e134cc9 Author: nagachika AuthorDate: 2023-12-16 10:32:50 +0900 Commit: nagachika CommitDate: 2023-12-16 10:48:39 +0900 merge revision(s) 1b4c1492c1704407f86af2882efebc047b9c2d26,62e2b61607c04ff0d2543f0515b2171a24e66b4e,fd0a5659cadb49f1640b20896cd750decdbbd701,c8c3431b0a5995d58f97c511ffa0a39e0f19c75e,755c379d877c66916d20840f07738d6050da3ca2,030f39822ac9d6d7dcdb639e099b320d3517c19c,2f19c5b7e080f75c3373c5b1671b4d4cfab6d334: [ruby/net-http] [DOC] What's Here for Net:HTTP (https://github.com/ruby/net-http/pull/128) https://github.com/ruby/net-http/commit/39e70f0f9b --- lib/net/http.rb | 269 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 267 insertions(+), 2 deletions(-) Replaced non-ascii charactor. It fails version detection at `net-http.gemspec`. ># Returns the X509 certificate chain for the session<80><99>s socket peer. --- lib/net/http.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) [ruby/net-http] Test building packages Also revert commit https://github.com/ruby/net-http/commit/d22ca54904de "Replaced non-ascii charactor. It fails version detection at `net-http.gemspec`." https://github.com/ruby/net-http/commit/fbeb247d93 --- lib/net/http.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) [ruby/net-http] Read in binary mode to get rid of invalid byte sequence https://github.com/ruby/net-http/commit/38de3d17a7 --- lib/net/http/net-http.gemspec | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) [ruby/net-http] Exclude git related files https://github.com/ruby/net-http/commit/2767df580d --- lib/net/http/net-http.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) [ruby/net-http] Re-apply https://github.com/ruby/net-http/commit/d22ca54904de after testing https://github.com/ruby/net-http/commit/7ac7401a9c --- lib/net/http.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) [ruby/net-http] Enhanced RDoc for Net::HTTP (https://github.com/ruby/net-http/pull/130) https://github.com/ruby/net-http/commit/698e18cfc1 --- lib/net/http/response.rb | 53 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 17 deletions(-) commit 0869dc58d601022f31065aa064b1cda02f53a7de Author: nagachika AuthorDate: 2023-12-16 10:27:52 +0900 Commit: nagachika CommitDate: 2023-12-16 10:48:39 +0900 merge revision(s) 9cc0ac22f7c9f37aa7fadfe5606ce2feed260d2d: Update lib/net/http/status.rb --- lib/net/http/status.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit f48a9bbb16fb369d614208a60a4b81ea024a67d1 Author: nagachika AuthorDate: 2023-12-16 10:27:07 +0900 Commit: nagachika CommitDate: 2023-12-16 10:48:39 +0900 partially merge revision db0a4c8923e0e084c7d757d132a83fc9c8431633: Prefer to use File.foreach instead of IO.foreach commit 74444d539dbb0c5c460f42cdaf0a23a59c10972f Author: nagachika AuthorDate: 2023-12-16 10:07:51 +0900 Commit: nagachika CommitDate: 2023-12-16 10:48:39 +0900 merge revision(s) cd6c7613f31a371326d86de55af15918d6aa01f1: Apply the accidental commits again before Ruby 3.2. Reverts the following commits: eb8d4d7b5145849325985c00b810b8d75661d86e edb83dc3a2c374e880e8eb488152872152790e92 d40064d1846b5835dff81e3f168c0c3a6c85e814 --- ext/openssl/ossl_pkey_ec.c | 2 +- lib/erb.gemspec | 2 +- lib/net/http/responses.rb | 137 +++++++++++++++++++++++++++++++++++++++------ 3 files changed, 121 insertions(+), 20 deletions(-) commit a77833b02d1cc33b26fc1ce5fa8be5eccef49dde Author: Takashi Kokubun AuthorDate: 2023-12-15 10:21:52 +0900 Commit: GitHub CommitDate: 2023-12-15 10:21:52 +0900 Backport YJIT docs for Ruby 3.2 (#9245) * Backport YJIT docs for Ruby 3.2 * Revert a change since ext/readline still exists in 3.2 commit f1097813a30ced07b324daa9699f07dba3b202fa Author: nagachika AuthorDate: 2023-12-09 16:50:08 +0900 Commit: nagachika CommitDate: 2023-12-09 16:50:08 +0900 merge revision(s) d8b8294c28a09278de357c26b291abf1b9f3cc5d,eedcd696a57521a18963d58487db8057a374a67a,bc0a7a641b6d0d3ff979cfa11e25683f8fa59ebd: [ruby/net-http] Limit header length https://github.com/ruby/net-http/commit/c245f7f9c8 --- lib/net/http/header.rb | 8 ++++++++ 1 file changed, 8 insertions(+) [ruby/net-http] Fix previous commit https://github.com/ruby/net-http/commit/1b276e2654 --- lib/net/http/header.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) [ruby/net-http] typofix https://github.com/ruby/net-http/commit/4d31bde125 --- lib/net/http/header.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4797127258f26ebac18d23c5715dde36b8a1b1ef Author: MSP-Greg AuthorDate: 2023-12-02 23:52:44 +0900 Commit: nagachika CommitDate: 2023-12-03 13:58:16 +0900 [CI] windows.yml - use MSYS2 bison instead of Chocolatey commit 82d39cb846748cd7de618b34b818f34d2c077e7e Author: nagachika AuthorDate: 2023-12-02 17:58:03 +0900 Commit: nagachika CommitDate: 2023-12-02 17:58:03 +0900 merge revision(s) 6ebcf25de2859b5b6402b7e8b181066c32d0e0bf: [Backport #20036] GC guard catch_table_ary in iseq_set_exception_table The function iseq_set_exception_table allocates memory which can cause a GC compaction to run. Since catch_table_ary is not on the stack, it can be moved, which would make tptr incorrect. --- compile.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 1fe09feb065972a6b76ec2dfe0e3aa6bbdf37eb7 Author: nagachika AuthorDate: 2023-11-21 22:06:00 +0900 Commit: nagachika CommitDate: 2023-11-21 22:06:00 +0900 bump patchlevel. [Backport #20010] commit 6ad47f356b8d6cafe2da6306aab801af406ee94e Author: Bo Anderson AuthorDate: 2023-11-21 22:04:00 +0900 Commit: GitHub CommitDate: 2023-11-21 22:04:00 +0900 [3.2 backport] Fix compile error on older systems without clock_get* (#8948) Fix compile error on older systems without clock_get* commit ba0de58de3bc891507f2d1dfffbe4ad632fdcd5c Author: nagachika AuthorDate: 2023-11-21 22:01:54 +0900 Commit: nagachika CommitDate: 2023-11-21 22:01:54 +0900 merge revision(s) 8d1109c03bacc952b6218af2e4ae9b74c9855273: Added assertion values for Amazon Linux 2023 --- spec/ruby/core/file/utime_spec.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit d9f4f321c60ecd8f569c383a3a63f952fd764f48 Author: nagachika AuthorDate: 2023-11-19 22:02:55 +0900 Commit: nagachika CommitDate: 2023-11-19 22:02:55 +0900 merge revision(s) 674db715f5a141891a66e67004ca138696d3b0ad,1f1b9b0942ec12dde1af8000f8cb84692904fccc: [ruby/rdoc] test/rdoc/test_rdoc_generator_json_index.rb: Use assert_equal instead of assert. It's better because assert_equal prints the values when it fails. https://github.com/ruby/rdoc/commit/91d40ce8f8 --- test/rdoc/test_rdoc_generator_json_index.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) [ruby/rdoc] test/rdoc/test_rdoc_generator_json_index.rb: pend in test_generate in ppc64le. We observed that this test randomly fails in the ruby/ruby Travis ppc64le case. This commit is to pend the test_generate if the assertion for the generated file's modified time fails in a ppc64le environment. Note that I didn't use the word "Travis CI" or Travis CI specific environment variables such as `TRAVIS` and `TRAVIS_CPU_ARCH`[1] in the code. Because I wanted to prioritize the rdoc's independence from the ruby/ruby. [1] https://docs.travis-ci.com/user/environment-variables/#default-environment-variables https://github.com/ruby/rdoc/commit/42cdad1cf2 --- test/rdoc/test_rdoc_generator_json_index.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 5e9948336e95ea8e5ff7f0554ae57be8d498af70 Author: nagachika AuthorDate: 2023-11-19 22:01:21 +0900 Commit: nagachika CommitDate: 2023-11-19 22:01:21 +0900 merge revision(s) 3eaae72855b23158e2148566bb8a7667bfb395cb: test/fiber/test_queue.rb: Make the stuck test fail. (#8791) test/fiber/test_queue.rb: Make the stuck tests fail. We observed the 2 tests in the `test/fiber/test_queue.rb` getting stuck in some GCC compilers in Ubuntu ppc64le focal/jammy, even when the timeout `queue.pop(timeout: 0.0001)` is set in the code. This commit is to make the tests fail rather than getting stuck. --- test/fiber/test_queue.rb | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit 1cc38d5a2f84733e1c2e42548639e2891fe61e69 Author: nagachika AuthorDate: 2023-11-19 22:00:38 +0900 Commit: nagachika CommitDate: 2023-11-19 22:00:38 +0900 merge revision(s) 9eac9d71786a8dbec520d0541a91149f01adf8ea: [Backport #19969] [Bug #19969] Compact st_table after deleted if possible --- hash.c | 19 +++++++++++++++++++ st.c | 40 +++++++++++++++++++++++++++++----------- test/ruby/test_hash.rb | 9 +++++++++ 3 files changed, 57 insertions(+), 11 deletions(-) commit 5baf94f9131fb45d50c8c408e007a138ced46606 Author: nagachika AuthorDate: 2023-11-18 11:28:03 +0900 Commit: nagachika CommitDate: 2023-11-18 12:06:27 +0900 merge revision(s) 1f115f141dd17f75049a5e17107906c5bcc372e1: Speed up rebuilding the loaded feature index Rebuilding the loaded feature index slowed down with the bug fix for #17885 in 79a4484a072e9769b603e7b4fbdb15b1d7eccb15. The slowdown was extreme if realpath emulation was used, but even when not emulated, it could be about 10x slower. This adds loaded_features_realpath_map to rb_vm_struct. This is a hidden hash mapping loaded feature paths to realpaths. When rebuilding the loaded feature index, look at this hash to get cached realpath values, and skip calling rb_check_realpath if a cached value is found. Fixes [Bug #19246] --- load.c | 27 +++++++++++++++++++++++---- vm.c | 2 ++ vm_core.h | 1 + 3 files changed, 26 insertions(+), 4 deletions(-) commit d1ba26a54d9301ea12fbc1b7d0e8223ce507de3b Author: nagachika AuthorDate: 2023-11-18 12:04:57 +0900 Commit: nagachika CommitDate: 2023-11-18 12:04:57 +0900 Revert "merge revision(s) 9682275b5493439334fb3933ce2da3b95271eb1c: [Backport #19999]" This reverts commit 4b16259d1d6f408a88ac2c8d04ed78e87bdeda9f. commit 4b16259d1d6f408a88ac2c8d04ed78e87bdeda9f Author: nagachika AuthorDate: 2023-11-18 11:41:58 +0900 Commit: nagachika CommitDate: 2023-11-18 11:41:58 +0900 merge revision(s) 9682275b5493439334fb3933ce2da3b95271eb1c: [Backport #19999] [Travis] make `.bundle` directory writable To create gem files from sources under `gems/src` for tests. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 482e1f573ee45ef562cc6d218ba26d44660f8e0a Author: nagachika AuthorDate: 2023-11-10 11:41:57 +0900 Commit: nagachika CommitDate: 2023-11-10 11:41:57 +0900 merge revision(s) 17b0643392749f45b7aacb64fc1c1bd704d42b4c: [Backport #19924] [Bug #19924] Source code should be unsigned char stream Use `peekc` or `nextc` to fetch the next character, instead of reading from `lex.pcur` directly, for compilers that plain char is signed. --- parse.y | 10 +++++----- test/ruby/test_parse.rb | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) commit 2aaa9af75989bb0993a44e9690ed2ca890b2ff91 Author: nagachika AuthorDate: 2023-11-09 17:36:42 +0900 Commit: nagachika CommitDate: 2023-11-09 17:36:42 +0900 merge revision(s) 4329554f171fdb483cafa672df5f2a08741940c5,b5c74d548872388921402ff2db36be15e924a89b: [Backport #19985] [Bug #19985] Raise LoadError with the converted feature name `Kernel#require` converts feature name objects that have the `to_path` method such as `Pathname`, but had used the original object on error and had resulted in an unexpected `TypeError`. --- load.c | 14 +++++++++++--- test/ruby/test_require.rb | 26 +++++++++++++++++++++----- 2 files changed, 32 insertions(+), 8 deletions(-) Ease the `Encoding::CompatibilityError` test failure At the time this test first started using `assert_raise_with_message`, it did not touch `Encoding.default_internal`. --- test/ruby/test_require.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8bbf909bb561732057b533cee1618b14886e07ba Author: nagachika AuthorDate: 2023-10-28 11:39:43 +0900 Commit: nagachika CommitDate: 2023-10-28 11:57:52 +0900 merge revision(s) 19346c2336053b351673da030b00c704138252d8: [Backport #19754] [Bug #19754] Make `IO::Buffer#get_string` check `offset` range (#8016) --- io_buffer.c | 3 +++ test/ruby/test_io_buffer.rb | 8 ++++++++ 2 files changed, 11 insertions(+) commit ddbab4f837460f070942e8127de9a9f1b9868fff Author: nagachika AuthorDate: 2023-09-30 13:51:18 +0900 Commit: nagachika CommitDate: 2023-09-30 13:51:18 +0900 merge revision(s) 6b66b5fdedb2c9a9ee48e290d57ca7f8d55e01a2: [Backport #19902] [Bug #19902] Update the coderange regarding the changed region --- ext/-test-/string/set_len.c | 10 ++++++++++ string.c | 27 +++++++++++++++++++++++++++ test/-ext-/string/test_set_len.rb | 29 +++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+) commit 128d8728d39c2da21e5433c7af169f73e18fd133 Author: nagachika AuthorDate: 2023-09-30 13:48:45 +0900 Commit: nagachika CommitDate: 2023-09-30 13:48:45 +0900 merge revision(s) ef59175a68c448fe334125824b477a9e1d5629bc: [Backport #19903] fix iseq kwargs table and original_iseq leaks [bug #19903] Co-authored-by: Peter Zhu --- iseq.c | 4 ++++ 1 file changed, 4 insertions(+) commit a191cf561786bde3d0b7d298aab1fbeb1051645c Author: nagachika AuthorDate: 2023-09-30 13:47:33 +0900 Commit: nagachika CommitDate: 2023-09-30 13:47:33 +0900 merge revision(s) c42261059dfebabbf0391327a5e077545a9bc438: [Backport #19901] [Bug #19901] fix leak in module clone Co-authored-by: Peter Zhu --- class.c | 1 + test/ruby/test_module.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+) commit 97b7070ebd5493de8d3a6a9b0ecc91bef5068d3f Author: nagachika AuthorDate: 2023-09-30 13:46:29 +0900 Commit: nagachika CommitDate: 2023-09-30 13:46:29 +0900 merge revision(s) 8b236e0c66da8f92e9fc33de66cfbc8e4b0c0763: [Backport #19896] [Bug #19896] fix memory leak in vm_method This introduces a unified reference_count to clarify who is referencing a method. This also allows us to treat the refinement method as the def owner since it counts itself as a reference Co-authored-by: Peter Zhu --- gc.c | 4 +- method.h | 6 +-- rjit_c.rb | 6 +-- test/ruby/test_module.rb | 4 +- vm_insnhelper.c | 2 +- vm_method.c | 105 +++++++++++++++++++---------------------------- 6 files changed, 54 insertions(+), 73 deletions(-) commit 5640baa2f82f528a092d92ceaabeb76c43c098ee Author: nagachika AuthorDate: 2023-09-30 13:37:37 +0900 Commit: nagachika CommitDate: 2023-09-30 13:37:37 +0900 merge revision(s) fe0225ff4d5af8b1f54009727b39d0d9b821eea3: [Backport #19778] [Bug #19778] Add `-I` options for opt-dir to `$INCFLAGS` These options have been separated from `$CFLAGS` already in the other places. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e7ab923b880ac75862cf9c287ac8ecbcd8ed1a31 Author: nagachika AuthorDate: 2023-09-30 13:30:08 +0900 Commit: nagachika CommitDate: 2023-09-30 13:30:08 +0900 merge revision(s) d4c720a91bc7bb9ff31810e1720acffb939f7a2f: [Backport #19845] Fix support for dynamic keys. (#8273) * Skip RBS test. --- cont.c | 8 +++----- spec/ruby/core/fiber/storage_spec.rb | 14 ++++++++++++++ tool/rbs_skip_tests | 2 ++ 3 files changed, 19 insertions(+), 5 deletions(-) commit d30781db4de82a891712f359d7659c9fc98cb215 Author: nagachika AuthorDate: 2023-09-30 13:07:35 +0900 Commit: nagachika CommitDate: 2023-09-30 13:07:35 +0900 merge revision(s) 2214bcb70d9f9120f1f3790ca340236c8f080991: [Backport #19792] Fix premature string collection during append Previously, the following crashed due to use-after-free with AArch64 Alpine Linux 3.18.3 (aarch64-linux-musl): ```ruby str = 'a' * (32*1024*1024) p({z: str}) ``` 32 MiB is the default for `GC_MALLOC_LIMIT_MAX`, and the crash could be dodged by setting `RUBY_GC_MALLOC_LIMIT_MAX` to large values. Under a debugger, one can see the `str2` of rb_str_buf_append() getting prematurely collected while str_buf_cat4() allocates capacity. Add GC guards so the buffer of `str2` lives across the GC run initiated in str_buf_cat4(). [Bug #19792] --- string.c | 2 ++ 1 file changed, 2 insertions(+) commit 9ee58b2054c1bbe722ae5a2a4ec6a750ee583220 Author: nagachika AuthorDate: 2023-09-24 15:13:32 +0900 Commit: nagachika CommitDate: 2023-09-24 15:13:32 +0900 merge revision(s) 96c5a4be7b0d72502001734770af0f4a735c544c: [Backport #19894] Fix memory leak in complemented method entries [Bug #19894] When a copy of a complemented method entry is created, there are two issues: 1. IMEMO_FL_USER3 is not copied, so the complemented status is not copied over. 2. In rb_method_entry_clone we increment both alias_count and complemented_count. However, when we free the method entry in rb_method_definition_release, we only decrement one of the two counters, resulting in the rb_method_definition_t being leaked. Co-authored-by: Adam Hess --- method.h | 5 +++-- test/ruby/test_module.rb | 29 +++++++++++++++++++++++++++++ vm_method.c | 8 +++++--- 3 files changed, 37 insertions(+), 5 deletions(-) commit 9cd28caa7cc3b0d987db7c1231fe101fb3b27399 Author: nagachika AuthorDate: 2023-09-24 14:16:10 +0900 Commit: nagachika CommitDate: 2023-09-24 14:16:10 +0900 merge revision(s) 901b6d9c5025a30b3d7a5ed0a2c00baf9cfb061d: [Backport #19853] Validate the typed data before dereferencing the internal struct. (#8315) --- process.c | 5 +++-- test/fiber/test_process.rb | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) commit 217ef2bf89b3861e83c2e2a3a633c019f0731de6 Author: nagachika AuthorDate: 2023-09-24 13:48:08 +0900 Commit: nagachika CommitDate: 2023-09-24 13:48:08 +0900 merge revision(s) 25711683e86271385e8abe09a9c03782000e48db: [Backport #19864] Fix regression when testing inclusion in unbounded ranges Caused by 04a92a6764bf678919cf4b68a27496a39d6b886a. This treats unbounded ranges of arbitrary objects the same as how unbounded string ranges are treated: (..x) === y # (y <=> x) <= 0 (...x) === y # (y <=> x) < 0 (x..) === y # (x <=> y) <= 0 Fixes [Bug #19864] --- range.c | 9 +++++++++ test/ruby/test_range.rb | 23 +++++++++++++++++++++++ 2 files changed, 32 insertions(+) commit a7335e11e354d1ee2e15233f32f087230069ad5c Author: Peter Zhu AuthorDate: 2023-09-16 14:17:20 +0900 Commit: GitHub CommitDate: 2023-09-16 14:17:20 +0900 [Backport 3.2] Fix missing write barrier in iseq instruction list (#8431) Fix missing write barrier in iseq instruction list [Bug #19880] There's a missing write barrier for operands in the iseq instruction list, which can cause crashes. It can be reproduced when Ruby is compiled with `-DRUBY_DEBUG_ENV=1`. Using the following command: ``` RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=0 RUBY_DEBUG=gc_stress ruby -w --disable=gems -Itool/lib -W0 test.rb ``` The following script crashes: ``` require "test/unit" ``` commit e159971e03102090e29f3555975498f75cf02f2c Author: Alan Wu AuthorDate: 2023-09-16 13:06:39 +0900 Commit: GitHub CommitDate: 2023-09-16 13:06:39 +0900 [For ruby_3_2] Fix unused_mut Rust warnings (#8435) Fix unused_mut Rust warnings Rust version 1.71.0 and up issue these warnings. On GitHub CI, the warnings were previously seen in -DYJIT_FORCE_ENABLE runs. commit bb877e5b4fe81965af60a0d86daeb8ed477e8e87 Author: nagachika AuthorDate: 2023-09-09 19:33:29 +0900 Commit: nagachika CommitDate: 2023-09-09 19:33:29 +0900 merge revision(s) 382678d4112f4afc6272244c22924d2b004274b1: [Backport #19788] [Bug #19788] Use the result of `tCOLON2` event --- parse.y | 16 ++++++++-------- test/ripper/test_parser_events.rb | 17 +++++++++++++++++ test/ripper/test_scanner_events.rb | 5 +++++ 3 files changed, 30 insertions(+), 8 deletions(-) commit 0b7a4fbaa9c56d2c67d00d86c69f9e5c71803267 Author: KJ Tsanaktsidis AuthorDate: 2023-08-18 22:19:21 +0900 Commit: nagachika CommitDate: 2023-09-09 18:51:25 +0900 Allow waitpid(-1) to be woken if a waitpid(pid) call is pending If two threads are running, with one calling waitpid(-1), and another calling waitpid($some_pid), and then $some_other_pid exits, we would expect the waitpid(-1) call to retrieve that exit status; however, it cannot actually do so until $some_pid _also_ exits. This patch fixes the issue by unconditionally checking for pending process group waits on SIGCHLD, and then allowing pending pid-only waits to "steal" the notification. [Fixes #19387] commit bbdffef63c55a594e604bd1ec5e90bffc6ea4c12 Author: Hiroshi SHIBATA AuthorDate: 2023-08-23 13:05:09 +0900 Commit: nagachika CommitDate: 2023-08-29 23:25:18 +0900 Bump up bundler-2.4.19 commit ab1eacc8bc32a5604219878911ab1b3a92c320f6 Author: Hiroshi SHIBATA AuthorDate: 2023-08-18 12:10:47 +0900 Commit: nagachika CommitDate: 2023-08-29 23:25:18 +0900 Merge RubyGems-3.4.19 and Bundler-2.4.19 commit 1434059ab5006e32ad872a62e7f0ecca190194fb Author: Hiroshi SHIBATA AuthorDate: 2023-08-18 12:10:30 +0900 Commit: nagachika CommitDate: 2023-08-29 23:25:18 +0900 Merge RubyGems-3.4.18 and Bundler-2.4.18 commit d6c3a1778c74431e68766db8a65eef77c8659661 Author: Hiroshi SHIBATA AuthorDate: 2023-07-19 14:15:15 +0900 Commit: nagachika CommitDate: 2023-08-29 23:25:18 +0900 Merge RubyGems-3.4.17 and Bundler-2.4.17 commit 829048df2ff7f810b01bcf524086f891ee1ac5af Author: Hiroshi SHIBATA AuthorDate: 2023-07-19 14:14:48 +0900 Commit: nagachika CommitDate: 2023-08-29 23:25:18 +0900 Merge RubyGems-3.4.16 and Bundler-2.4.16 commit e44e42c3039d26c016554f3db1c0d6817abbad87 Author: Hiroshi SHIBATA AuthorDate: 2023-07-19 14:14:12 +0900 Commit: nagachika CommitDate: 2023-08-29 23:25:18 +0900 Merge RubyGems-3.4.15 and Bundler-2.4.15 commit a36c8364331d39dd7da6308c6ae99f5a810ac510 Author: Hiroshi SHIBATA AuthorDate: 2023-07-19 14:13:32 +0900 Commit: nagachika CommitDate: 2023-08-29 23:25:18 +0900 Merge RubyGems-3.4.14 and Bundler-2.4.14 commit 1b1a5b29843aba07e5a45f30ac1f23b1cb1e8173 Author: Hiroshi SHIBATA AuthorDate: 2023-07-19 14:13:05 +0900 Commit: nagachika CommitDate: 2023-08-29 23:25:18 +0900 Merge RubyGems-3.4.13 and Bundler-2.4.13 commit c71a89f7854bd68bc631747681b4ea6c91d845d5 Author: Hiroshi SHIBATA AuthorDate: 2023-07-19 14:12:38 +0900 Commit: nagachika CommitDate: 2023-08-29 23:25:18 +0900 Merge RubyGems-3.4.12 and Bundler-2.4.12 commit dd91a17560946db1cb33c0ae1ecf3abe555ed1d0 Author: Hiroshi SHIBATA AuthorDate: 2023-07-19 14:12:03 +0900 Commit: nagachika CommitDate: 2023-08-29 23:25:18 +0900 Merge RubyGems-3.4.11 and Bundler-2.4.11 commit 5d568e18980b2fdec4701b52f2d89833fa20c0a8 Author: nagachika AuthorDate: 2023-08-29 21:06:04 +0900 Commit: nagachika CommitDate: 2023-08-29 21:06:04 +0900 merge revision(s) a28c5151f567cada0d2f5c0c3ec4df7f97b80784: [Backport #19855] Fix Array#bsearch when block returns a non-integer numeric value --- array.c | 4 ++-- test/ruby/test_array.rb | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) commit e777064e4b064fd77aca65c123f1919433f6732d Author: nagachika AuthorDate: 2023-08-24 14:56:50 +0900 Commit: nagachika CommitDate: 2023-08-24 16:06:32 +0900 Revert "Re-apply "Ruby 3.2 - Speed up rebuilding the loaded feature index and realpath cache (#8023)" (#8252)" This reverts commit 788b03d5ba82fd8b35ce1fe2618ce6bacc648333. commit 788b03d5ba82fd8b35ce1fe2618ce6bacc648333 Author: MSP-Greg AuthorDate: 2023-08-22 08:33:47 +0900 Commit: GitHub CommitDate: 2023-08-22 08:33:47 +0900 Re-apply "Ruby 3.2 - Speed up rebuilding the loaded feature index and realpath cache (#8023)" (#8252) * Re-apply "Ruby 3.2 - Speed up rebuilding the loaded feature index and realpath cache (#8023)" * [CI] mingw.yml - remove IBM437 encoding for test-all, use cmd shell for test & test-all * Skip failing test on mingw with readline.so Co-authored-by: nagachika --------- Co-authored-by: nagachika commit e517ba2e5b6434e7d2370de7703f481dcb8eecba Author: Hiroshi SHIBATA AuthorDate: 2023-06-01 17:05:35 +0900 Commit: nagachika CommitDate: 2023-08-20 13:26:54 +0900 Bump up syntax_suggest-1.1.0 commit 0c908fa681271f13750aa64420203f1a58fa03fe Author: nagachika AuthorDate: 2023-08-13 13:35:25 +0900 Commit: nagachika CommitDate: 2023-08-13 13:35:25 +0900 merge revision(s) 0b8f15575a440f85ac686f5b0eae8f8b7c2b72e7: [Backport #19836] Fix memory leak for incomplete lambdas [Bug #19836] The parser does not free the chain of `struct vtable`, which causes memory leaks. The following script reproduces this issue: ``` 10.times do 100_000.times do Ripper.parse("-> {") end puts `ps -o rss= -p #{$$}` end ``` --- parse.y | 24 ++++++++++++++---------- test/ripper/test_ripper.rb | 7 +++++++ 2 files changed, 21 insertions(+), 10 deletions(-) commit 6898389a0f640c4155a7073579f43d1e16893698 Author: nagachika AuthorDate: 2023-08-13 13:21:30 +0900 Commit: nagachika CommitDate: 2023-08-13 13:21:30 +0900 merge revision(s) 5bc8fceca8d47ed1ef9c603c6531a408de36b60c: [Backport #19835] Fix memory leak in parser for incomplete tokens [Bug #19835] The parser does not free the `tbl` of the `struct vtable` when there are leftover `lvtbl` in the parser. This causes a memory leak. The following script reproduces this issue: ``` 10.times do 100_000.times do Ripper.parse("class Foo") end puts `ps -o rss= -p #{$$}` end ``` --- parse.y | 42 ++++++++++++++++++++++++++++-------------- test/ripper/test_ripper.rb | 7 +++++++ 2 files changed, 35 insertions(+), 14 deletions(-) commit ead1a83b2f5951cd09667ed2722ab14b9bcf0834 Author: nagachika AuthorDate: 2023-08-12 13:54:17 +0900 Commit: nagachika CommitDate: 2023-08-12 13:54:17 +0900 merge revision(s) 1b0da1e6236ad9a380abfe4ca8b51f06c34bb6f9: Skip running brew upgrade (#8189) This has been unstable: https://github.com/ruby/ruby/actions/runs/5797755676/job/15713988590 and I'm not sure if we need that in the first place, assuming the OS image itself is maintained by GitHub. --- .github/actions/setup/macos/action.yml | 1 - 1 file changed, 1 deletion(-) commit b11f238a811513b31c4f65c822370ac470f438dc Author: nagachika AuthorDate: 2023-08-12 13:51:03 +0900 Commit: nagachika CommitDate: 2023-08-12 13:51:03 +0900 merge revision(s) 72d1a790cfe0e4a457db98c587f1acaa5e39f001: [Backport #19833] [Bug #19833] Fix index underflow at superclasses of `BasicObject` --- object.c | 4 ++++ test/ruby/test_class.rb | 7 +++++++ 2 files changed, 11 insertions(+) commit 3c9cb7031154b8666d600b0055ba868e18805dc8 Author: nagachika AuthorDate: 2023-08-12 13:48:14 +0900 Commit: nagachika CommitDate: 2023-08-12 13:48:14 +0900 merge revision(s) 1d096c1e53581ed9fe94694c9760babd1e12e580: [Backport #19793] Fix crash in NoMethodError for dummy frames MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [Bug #19793] Dummy frames are created at the top level when requiring another file. While requiring a file, it will try to convert using encodings. Some of these encodings will not respond to to_str. If method_missing is redefined on Object, then it will call method_missing and attempt raise an error. However, the iseq is invalid as it's a dummy frame so it will write an invalid iseq to the created NoMethodError. The following script crashes: ``` GC.stress = true class Object public :method_missing end File.write("/tmp/empty.rb", "") require "/tmp/empty.rb" ``` With the following backtrace: ``` frame #0: 0x00000001000fa8b8 miniruby`RVALUE_MARKED(obj=4308637824) at gc.c:1638:12 frame #1: 0x00000001000fb440 miniruby`RVALUE_BLACK_P(obj=4308637824) at gc.c:1763:12 frame #2: 0x00000001000facdc miniruby`gc_writebarrier_incremental(a=4308637824, b=4308332208, objspace=0x000000010180b000) at gc.c:8822:9 frame #3: 0x00000001000faad8 miniruby`rb_gc_writebarrier(a=4308637824, b=4308332208) at gc.c:8864:17 frame #4: 0x000000010016aff0 miniruby`rb_obj_written(a=4308637824, oldv=36, b=4308332208, filename="../iseq.c", line=1279) at gc.h:804:9 frame #5: 0x0000000100162a60 miniruby`rb_obj_write(a=4308637824, slot=0x0000000100d09888, b=4308332208, filename="../iseq.c", line=1279) at gc.h:837:5 frame #6: 0x0000000100165b0c miniruby`iseqw_new(iseq=0x0000000100d09880) at iseq.c:1279:9 frame #7: 0x0000000100165a64 miniruby`rb_iseqw_new(iseq=0x0000000100d09880) at iseq.c:1289:12 frame #8: 0x00000001000d8324 miniruby`name_err_init_attr(exc=4309777920, recv=4304780496, method=827660) at error.c:1830:35 frame #9: 0x00000001000d1b80 miniruby`name_err_init(exc=4309777920, mesg=4308332496, recv=4304780496, method=827660) at error.c:1869:12 frame #10: 0x00000001000d1bd4 miniruby`rb_nomethod_err_new(mesg=4308332496, recv=4304780496, method=827660, args=4308332448, priv=0) at error.c:1957:5 frame #11: 0x000000010039049c miniruby`rb_make_no_method_exception(exc=4304914512, format=4308332496, obj=4304780496, argc=1, argv=0x000000016fdfab00, priv=0) at vm_eval.c:959:16 frame #12: 0x00000001003b3274 miniruby`raise_method_missing(ec=0x0000000100b06f40, argc=1, argv=0x000000016fdfab00, obj=4304780496, last_call_status=MISSING_NOENTRY) at vm_eval.c:999:15 frame #13: 0x00000001003945d4 miniruby`rb_method_missing(argc=1, argv=0x000000016fdfab00, obj=4304780496) at vm_eval.c:944:5 ... frame #23: 0x000000010038f5e4 miniruby`rb_vm_call_kw(ec=0x0000000100b06f40, recv=4304780496, id=2865, argc=1, argv=0x000000016fdfab00, me=0x0000000100cbfcf0, kw_splat=0) at vm_eval.c:326:12 frame #24: 0x00000001003c18e4 miniruby`call_method_entry(ec=0x0000000100b06f40, defined_class=4304927952, obj=4304780496, id=2865, cme=0x0000000100cbfcf0, argc=1, argv=0x000000016fdfab00, kw_splat=0) at vm_method.c:2720:20 frame #25: 0x00000001003c440c miniruby`check_funcall_exec(v=6171896792) at vm_eval.c:589:12 frame #26: 0x00000001000dec00 miniruby`rb_vrescue2(b_proc=(miniruby`check_funcall_exec at vm_eval.c:587), data1=6171896792, r_proc=(miniruby`check_funcall_failed at vm_eval.c:596), data2=6171896792, args="Pȗ") at eval.c:919:18 frame #27: 0x00000001000deab0 miniruby`rb_rescue2(b_proc=(miniruby`check_funcall_exec at vm_eval.c:587), data1=6171896792, r_proc=(miniruby`check_funcall_failed at vm_eval.c:596), data2=6171896792) at eval.c:900:17 frame #28: 0x000000010039008c miniruby`check_funcall_missing(ec=0x0000000100b06f40, klass=4304923536, recv=4304780496, mid=3233, argc=0, argv=0x0000000000000000, respond=-1, def=36, kw_splat=0) at vm_eval.c:666:15 frame #29: 0x000000010038fa60 miniruby`rb_check_funcall_default_kw(recv=4304780496, mid=3233, argc=0, argv=0x0000000000000000, def=36, kw_splat=0) at vm_eval.c:703:21 frame #30: 0x000000010038fb04 miniruby`rb_check_funcall(recv=4304780496, mid=3233, argc=0, argv=0x0000000000000000) at vm_eval.c:685:12 frame #31: 0x00000001001c469c miniruby`convert_type_with_id(val=4304780496, tname="String", method=3233, raise=0, index=-1) at object.c:3061:15 frame #32: 0x00000001001c4a4c miniruby`rb_check_convert_type_with_id(val=4304780496, type=5, tname="String", method=3233) at object.c:3153:9 frame #33: 0x00000001002d59f8 miniruby`rb_check_string_type(str=4304780496) at string.c:2571:11 frame #34: 0x000000010014b7b0 miniruby`io_encoding_set(fptr=0x0000000100d09ca0, v1=4304780496, v2=4, opt=4) at io.c:11655:19 frame #35: 0x0000000100139a58 miniruby`rb_io_set_encoding(argc=1, argv=0x000000016fdfb450, io=4308334032) at io.c:13497:5 frame #36: 0x00000001003c0004 miniruby`ractor_safe_call_cfunc_m1(recv=4308334032, argc=1, argv=0x000000016fdfb450, func=(miniruby`rb_io_set_encoding at io.c:13487)) at vm_insnhelper.c:3271:12 ... frame #43: 0x0000000100390b08 miniruby`rb_funcall(recv=4308334032, mid=16593, n=1) at vm_eval.c:1137:12 frame #44: 0x00000001002a43d8 miniruby`load_file_internal(argp_v=6171899936) at ruby.c:2500:5 ... ``` --- error.c | 4 +++- test/ruby/test_require.rb | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) commit 19823032abc2d1827a2aaf41bf3a3948afad8feb Author: nagachika AuthorDate: 2023-08-12 13:46:25 +0900 Commit: nagachika CommitDate: 2023-08-12 13:46:25 +0900 merge revision(s) 954b7ac81ef503df3c1efc5566df985b08951d52: [Backport #19789] addr2line.c: fix `DW_FORM_ref_addr` parsing for DWARF 2 (#8146) addr2line.c: fix DW_FORM_ref_addr parsing for DWARF 2 This fixes a crash when retrieving backtrace info with YJIT enabled on macOS with Rust 1.71.0. Since Rust 1.71.0, the DWARF info generated by the Rust compiler uses DW_FORM_ref_addr instead of DW_FORM_ref4 for pointers to other DIEs. DW_FORM_ref_addr representation in DWARF 2 is different from DWARF 3+, so we need to handle it separately. This patch fixes the parsing of DW_FORM_ref_addr for DWARF 2, which is the default DWARF version Rustc uses on macOS. See the DWARF 2.0.0 spec, section 7.5.4 Attribute Encodings https://dwarfstd.org/doc/dwarf-2.0.0.pdf https://bugs.ruby-lang.org/issues/19789 --- addr2line.c | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) commit 1c7624469880bcb964be09a49e4907873f45b026 Author: nagachika AuthorDate: 2023-07-29 17:58:42 +0900 Commit: nagachika CommitDate: 2023-07-29 17:58:42 +0900 Revert "Ruby 3.2 - Speed up rebuilding the loaded feature index and realpath cache (#8023)" This reverts commit 8346d1630b8193eef1ec9dd537b16de74afdc2e8. It seems break CI on MinGW. https://github.com/ruby/ruby/actions/runs/5698775895/job/15447455988 commit 8346d1630b8193eef1ec9dd537b16de74afdc2e8 Author: Kerem Kat AuthorDate: 2023-07-29 14:27:11 +0900 Commit: GitHub CommitDate: 2023-07-29 14:27:11 +0900 Ruby 3.2 - Speed up rebuilding the loaded feature index and realpath cache (#8023) * Speed up rebuilding the loaded feature index Rebuilding the loaded feature index slowed down with the bug fix for #17885 in 79a4484a072e9769b603e7b4fbdb15b1d7eccb15. The slowdown was extreme if realpath emulation was used, but even when not emulated, it could be about 10x slower. This adds loaded_features_realpath_map to rb_vm_struct. This is a hidden hash mapping loaded feature paths to realpaths. When rebuilding the loaded feature index, look at this hash to get cached realpath values, and skip calling rb_check_realpath if a cached value is found. Fixes [Bug #19246] * Add a realpath cache to reduce number of syscalls. Number of lstat and stat syscalls for each 'require'd file is doubled, because rb_realpath_internal is called from two places with the same arguments in require_internal; once for checking the realpaths cache, and once in load_iseq_eval when iseq is not found. Introduce rb_realpath_internal_cached function to reuse the realpath_map cache which memoizes rb_realpath_internal function, leading to less syscalls and increased startup performance depending on the cost of the syscalls in a particular environment. --------- Co-authored-by: Jeremy Evans commit 19a3466a1460924058ca16a259601bb753293d43 Author: nagachika AuthorDate: 2023-07-29 14:04:01 +0900 Commit: nagachika CommitDate: 2023-07-29 14:04:01 +0900 merge revision(s) cada537040743cbe49aac6740816d648ca0d3fb: [Backport #19786] [DOC] Fix call-seq for Data.define --- struct.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 9f5c32ce85db830459768c588b82a6d07f5d22dc Author: nagachika AuthorDate: 2023-07-29 13:54:10 +0900 Commit: nagachika CommitDate: 2023-07-29 13:54:10 +0900 merge revision(s) 99162dee7aa478d8a65f028b098bdaa69e1ecad5: [Backport #19751] [Bug #19751] Remove linemarkers in middle --- template/fake.rb.in | 1 + 1 file changed, 1 insertion(+) commit 0b3ed6043c9d091d499ca1caed604a983c7e285b Author: nagachika AuthorDate: 2023-07-23 12:20:12 +0900 Commit: nagachika CommitDate: 2023-07-23 12:20:12 +0900 merge revision(s) 5d4fff845602872eef072e7611558b5f8762efe0: [Backport #19293] Tighten Time.new(string) parsing Disallow: * Only year-month * Only year-month-day * Preceding whitespace * Trailing whitespace Fixes [Bug #19293] --- test/ruby/test_time.rb | 13 +++++++++++++ time.c | 13 ++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) commit 3354aacb73c65420a10cb41c0696e62dd1ba279b Author: nagachika AuthorDate: 2023-07-23 12:01:21 +0900 Commit: nagachika CommitDate: 2023-07-23 12:01:21 +0900 merge revision(s) 3874381c4483ba7794ac2abf157e265546f9bfa7: [Backport #19759] Fix autosplat conditions to handle ruby2_keywords case Autosplat should not occur if there are two arguments but second argument is an array containing a ruby2_keywords splat. Only autosplat if a single argument to be yielded to the block, and there is no splatted flagged keyword hash passed. Fixes [Bug #19759] --- test/ruby/test_proc.rb | 26 ++++++++++++++++++++++++++ vm_args.c | 3 ++- 2 files changed, 28 insertions(+), 1 deletion(-) commit b97a744a3778abe52fffb051e1460a0a6f7c4a6d Author: nagachika AuthorDate: 2023-07-22 14:01:55 +0900 Commit: nagachika CommitDate: 2023-07-22 14:01:55 +0900 merge revision(s) 9c94db7cfc584e982a6449b72e58a1cf25024177,fe4d906f5fbacbe6e9267af3bd3503339bad63a9: [Backport #19774] Add tests for `return` in `BEGIN` and `END` blocks --- spec/ruby/language/return_spec.rb | 15 +++++++++++++++ test/ruby/test_syntax.rb | 1 + 2 files changed, 16 insertions(+) [Bug #19774] Fix segfault at `return` in `END` --- eval_error.c | 7 ++++++- test/ruby/test_syntax.rb | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) commit 65d294ad019c8ac5bba12e2c9098360bacafc9e3 Author: nagachika AuthorDate: 2023-07-22 13:39:44 +0900 Commit: nagachika CommitDate: 2023-07-22 13:39:44 +0900 merge revision(s) bc3ac1872e4523334e3ed04c2bb70a55c4c43f98: [Backport #19748] [Bug #19748] Fix out-of-bound access in `String#byteindex` --- string.c | 17 +++++++---------- test/ruby/test_string.rb | 3 +++ 2 files changed, 10 insertions(+), 10 deletions(-) commit 35cf3a5f8d01aad07762eb824c3107bee9ae7fdd Author: nagachika AuthorDate: 2023-07-22 13:32:30 +0900 Commit: nagachika CommitDate: 2023-07-22 13:32:30 +0900 merge revision(s) 038f9ade3c4d965415e4956561975454cf9eeb21: [Backport #19585] Use tools appropriate with CC To get rid of mysterious errors such as: ``` /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libruby.3.3-static.a(/): The end of the file was unexpectedly encountered ``` and ``` ld: warning: ignoring file ../../libruby.3.3-static.a, building for macOS-x86_64 but attempting to link with file built for macOS-x86_64 Undefined symbols for architecture x86_64: "_rb_rational_num", referenced from: ``` --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) commit 4e0653db3315e9e7859e38e0995e2b9900471370 Author: nagachika AuthorDate: 2023-07-22 13:31:34 +0900 Commit: nagachika CommitDate: 2023-07-22 13:31:34 +0900 merge revision(s) 2c8f2871a8aeff592369a993b1d69557160cfa61: [Backport #19532] Fix handling of 6-byte codepoints in left_adjust_char_head in CESU-8 encoding --- enc/cesu_8.c | 23 +++++++++++++++++++---- test/ruby/enc/test_cesu8.rb | 4 ++++ 2 files changed, 23 insertions(+), 4 deletions(-) commit fa72ba72f8c64fd0fa87c8f68cbc31f2e7b94b00 Author: nagachika AuthorDate: 2023-07-22 13:24:55 +0900 Commit: nagachika CommitDate: 2023-07-22 13:24:55 +0900 merge revision(s) 54dbd8bea8a79bfcdefa471c1717c6cd28022f33: [Backport #19535] Use an st table for "too complex" objects st tables will maintain insertion order so we can marshal dump / load objects with instance variables in the same order they were set on that particular instance [ruby-core:112926] [Bug #19535] Co-Authored-By: Jemma Issroff --- gc.c | 10 ++++------ include/ruby/st.h | 2 ++ object.c | 2 +- ractor.c | 43 ++++++++++++++++++++++--------------------- shape.h | 6 +++--- st.c | 6 ++++++ test/ruby/test_shapes.rb | 21 +++++++++++++++++++++ variable.c | 28 ++++++++++++++-------------- vm_insnhelper.c | 2 +- 9 files changed, 74 insertions(+), 46 deletions(-) commit a3911b965f094f07080cf7adb22ee5e2e8555d86 Author: nagachika AuthorDate: 2023-07-22 13:08:16 +0900 Commit: nagachika CommitDate: 2023-07-22 13:08:16 +0900 merge revision(s) 0402193723647b8c4f57b1453fe2192ad2788d12: [Backport #19709] Fix `Thread#join(timeout)` when running inside the fiber scheduler. (#7903) --- test/fiber/test_thread.rb | 22 ++++++++++++++++++++++ thread.c | 5 +++++ 2 files changed, 27 insertions(+) commit ea89527a76a84741463c304246db2dd3a5df845b Author: nagachika AuthorDate: 2023-07-22 13:03:22 +0900 Commit: nagachika CommitDate: 2023-07-22 13:03:22 +0900 merge revision(s) 0b2613f44309bddae45562c9f3a14ed43e56959b: [Backport #19640] `rb_io_puts` should not write zero length strings. (#7806) --- io.c | 40 ++++++++++++++++++++++++---------------- test/fiber/test_io.rb | 28 ++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 16 deletions(-) commit 465eb7418d7ed91f5f0c75da77765c7f5ef8354f Author: nagachika AuthorDate: 2023-07-22 11:55:49 +0900 Commit: nagachika CommitDate: 2023-07-22 11:55:49 +0900 merge revision(s) 91c004885fc75a93cadf0094fa86ec3bd0ec25f5: [Backport #19025] [Bug #19025] Numbered parameter names are always local variables --- parse.y | 2 +- test/ruby/test_syntax.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit e65e0b99267c495186d7abb78c2725418761d756 Author: nagachika AuthorDate: 2023-07-22 11:48:47 +0900 Commit: nagachika CommitDate: 2023-07-22 11:48:47 +0900 merge revision(s) fac814c2dc31afef272b45392a7389ef0bfa3a4f: [Backport #19602] Fix `PLATFORM_GET_INC` On platforms where unaligned word access is not allowed, and if `sizeof(val)` and `sizeof(type)` differ: - `val` > `type`, `val` will be a garbage. - `val` < `type`, outside `val` will be clobbered. --- regexec.c | 2 +- regint.h | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) commit 46b62f44ce30bf234a76114c8249081e47ce3da4 Author: nagachika AuthorDate: 2023-07-22 11:44:54 +0900 Commit: nagachika CommitDate: 2023-07-22 11:44:54 +0900 merge revision(s) 3592b24cdc07ed89eecb39161f21fe721a89a5de: [Backport #19531] ObjectSpace::WeakMap: clean inverse reference when an entry is re-assigned [Bug #19531] ```ruby wmap[1] = "A" wmap[1] = "B" ``` In the example above, we need to remove the `"A" => 1` inverse reference so that when `"A"` is GCed the `1` key isn't deleted. --- test/ruby/test_weakmap.rb | 17 +++++++++ weakmap.c | 91 ++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 91 insertions(+), 17 deletions(-) commit 3f6187a94797d3c4a7db00563a885e4e613b51cf Author: nagachika AuthorDate: 2023-07-17 18:04:41 +0900 Commit: nagachika CommitDate: 2023-07-17 18:04:41 +0900 merge revision(s) 1bc8838d60ef3fc6812d3b64ed87caaf0ae943d9: [Backport #19750] Handle unterminated unicode escapes in regexps This fixes an infinite loop possible after ec3542229b29ec93062e9d90e877ea29d3c19472. For \u{} escapes in regexps, skip validation in the parser, and rely on the regexp code to handle validation. This is necessary so that invalid unicode escapes in comments in extended regexps are allowed. Fixes [Bug #19750] Co-authored-by: Nobuyoshi Nakada --- parse.y | 97 ++++++++++++++++++++++++++++++++----------------- test/ruby/test_parse.rb | 16 ++++++++ 2 files changed, 79 insertions(+), 34 deletions(-) commit aef53162249ce090568e24a70e6d26b85bf399d6 Author: nagachika AuthorDate: 2023-07-17 17:30:42 +0900 Commit: nagachika CommitDate: 2023-07-17 17:30:42 +0900 Fixup be09d77b966c7bcc77957927f16cefe66b365495. commit be09d77b966c7bcc77957927f16cefe66b365495 Author: nagachika AuthorDate: 2023-07-17 17:23:31 +0900 Commit: nagachika CommitDate: 2023-07-17 17:23:31 +0900 merge revision(s) a8ba1ddd78544b4bda749051d44f7b2a8a0ec5ff: [Backport #19455] Use UTF-8 encoding for literal extended regexps with UTF-8 characters in comments Fixes [Bug #19455] --- re.c | 9 ++++++++- test/ruby/test_regexp.rb | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) commit 5fbd72764e020c6b165604e9cdcc932a1c5d2a93 Author: nagachika AuthorDate: 2023-07-17 17:21:51 +0900 Commit: nagachika CommitDate: 2023-07-17 17:21:51 +0900 merge revision(s) 31e67a476f2262e01a0829e8ab5e6d8a97e0724e,0b95cbcbde8875effdbcbb676cb0a7f751a1d4c1: [Backport #19601] YJIT: Fix false object collection when setting ivar Previously, setinstancevariable could generate code that calls `rb_ensure_iv_list_size()` without first updating `cfp->sp`. This means in the event that a GC start from within said routine the top few objects would not be marked, causing them to be falsly collected. Call `jit_prepare_routine_call()` first. [Bug #19601] --- bootstraptest/test_yjit.rb | 20 ++++++++++++++++++++ yjit/src/codegen.rs | 5 +++++ 2 files changed, 25 insertions(+) YJIT: Remove duplicate `asm.spill_temps()` `jit_prepare_routine_call()` calls it, and there is another call above on line 2302. Co-authored-by: Takashi Kokubun --- yjit/src/codegen.rs | 1 - 1 file changed, 1 deletion(-) commit 5fc9825ccf651664c547b1822c7f753464e27f06 Author: nagachika AuthorDate: 2023-07-17 16:09:00 +0900 Commit: nagachika CommitDate: 2023-07-17 16:09:00 +0900 merge revision(s) 02a7e12b80823919fb614ad3ea6241d5115d14fe: [Backport #19593] Ensure throw data is not set as cause [Bug #19593] rb_ec_setup_exception did not check if errinfo is a throw_data. This can cause crashes in code since it is assumed that id_cause is an object. We saw a crash in show_cause due to id_cause of errinfo being a throw_data. It crashes on rb_obj_is_kind_of since it cannot be called on T_IMEMO objects. Unfortunately, we couldn't find a reproduction script, however we debugged the core dump and rb_ec_setup_exception is the only place where id_cause is assigned from errinfo without checking if it is a throw_data. ``` 0x0000556c5708e6dd in sigsegv (sig=11, info=0x7f301befa3f0, ctx=0x7f301befa2c0) at signal.c:964 0x00007f301d046420 in () at /lib/x86_64-linux-gnu/libpthread.so.0 class_search_class_ancestor (c=139844586301760, cl=) at object.c:810 rb_obj_is_kind_of (obj=obj@entry=139839221734880, c=139844586301760) at object.c:861 0x0000556c56f2f00f in show_cause (errinfo=errinfo@entry=139838840645160, str=str@entry=139839221730520, opt=139839221730480, highlight=0, reverse=reverse@entry=0, backtrace_limit=backtrace_limit@entry=-1, shown_causes=0x7ffe9d1a2d68) at ./include/ruby/internal/special_consts.h:175 ``` Co-Authored-By: Jean Boussier --- eval.c | 4 ++++ 1 file changed, 4 insertions(+) commit 5328c58c7d00540f4f56749aaeefb68761bd7eba Author: nagachika AuthorDate: 2023-07-17 16:07:39 +0900 Commit: nagachika CommitDate: 2023-07-17 16:07:39 +0900 merge revision(s) 1a149aab776aa6741628eb35482eff1ded197fd2,fb17c833f542222afdf482924877d43aa577782d,60f22ebf86248388b41b4ec751d16700f2b4b621: [Backport #19533] Extract range type check functions --- range.c | 55 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 19 deletions(-) [Bug #19533] Fix infinite range inclusion with numeric value --- range.c | 10 +++++++--- test/ruby/test_range.rb | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) [Bug #19533] Add spec of infinite range inclusion --- spec/ruby/core/range/case_compare_spec.rb | 6 ++++++ 1 file changed, 6 insertions(+) commit 8165db0f4666f90fe0df5cdd466f73c6de1f6cea Author: nagachika AuthorDate: 2023-07-17 14:21:39 +0900 Commit: nagachika CommitDate: 2023-07-17 14:21:39 +0900 merge revision(s) 8c360ce713f57d4177de833297364f6f6d950420: [Backport #19589] hash.c: Fix hash_iter_lev_dec corrupting shape [Bug #19589] When decrementing `iter_lev` from `65` to `64` the flags would be corrupted, causing the shape_id to be invalid. --- hash.c | 12 +++++++++--- test/ruby/test_hash.rb | 11 +++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) commit a7b0d3c9db9afeccf6e0962bb1cdcbea5bf04cae Author: nagachika AuthorDate: 2023-07-17 14:20:00 +0900 Commit: nagachika CommitDate: 2023-07-17 14:20:00 +0900 merge revision(s) 0ac3f2c20e50c22d298238f602f25f84248ac7a5: [Backport #19587] [Bug #19587] Fix `reset_match_cache` arguments --- regexec.c | 2 +- test/ruby/test_regexp.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) commit 0c5d539421e50351ed26fbf9cac852d58425776a Author: nagachika AuthorDate: 2023-07-17 14:09:11 +0900 Commit: nagachika CommitDate: 2023-07-17 14:09:11 +0900 Fixup the latest commits. commit 8852b4b2deea20f488208dc4730ef149f67d7594 Author: nagachika AuthorDate: 2023-07-17 13:59:25 +0900 Commit: nagachika CommitDate: 2023-07-17 13:59:25 +0900 merge revision(s) 0ce2bdc76dd17aa3d42a352a6244c87a51e7606d: [Backport #19595] YJIT: Fix missing argc check in known cfuncs Previously we were missing a compile-time check that the known cfuncs receive the correct number of arguments. We noticied this because in particular when using ARGS_SPLAT, which also wasn't checked, YJIT would crash on code which was otherwise correct (didn't raise exceptions in the VM). This still supports vararg (argc == -1) cfuncs. I added an additional assertion that when we use the specialized codegen for one of these known functions that the argc are popped off the stack correctly, which should help ensure they're implemented correctly (previously the crash was usually observed on a future `leave` insn). [Bug #19595] --- bootstraptest/test_yjit.rb | 32 ++++++++++++++++++++++++++++++++ yjit/src/codegen.rs | 4 +++- 2 files changed, 35 insertions(+), 1 deletion(-) commit 9d8d0585ec35070099e4fdeef5ee18f6fbf339b6 Author: nagachika AuthorDate: 2023-07-17 09:54:51 +0900 Commit: nagachika CommitDate: 2023-07-17 09:54:51 +0900 merge revision(s) f6adc5be94a9f70a5b9897b81dabdeb49b573393,bccdc041665032b819fab1c04ed4dbdfeeeb366b: [Backport #19582] Check if Bundler is defined --- tool/lib/leakchecker.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Check if `Bundler::EnvironmentPreserver` is defined Only `Bundler` might be defined. `EnvironmentPreserver` and its `BUNDLER_PREFIX` would be defined together in the same file. --- tool/lib/leakchecker.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 62763658d53a66ad624e1c730742cb3811d18329 Author: nagachika AuthorDate: 2023-07-17 09:51:53 +0900 Commit: nagachika CommitDate: 2023-07-17 09:51:53 +0900 merge revision(s) 52e571fa72debcd764765775bd1b76ee87e36d2d: [Backport #19580] Ensure ruby_xfree won't segfault if called after vm_destruct [Bug #19580] The real-world scenario motivating this change is libxml2's pthread code which uses `pthread_key_create` to set up a destructor that is called at thread exit to free thread-local storage. There is a small window of time -- after ruby_vm_destruct but before the process exits -- in which a pthread may exit and the destructor is called, leading to a segfault. Please note that this window of time may be relatively large if `atexit` is being used. --- gc.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 98b4ac7287928c202c90e9de1ae02c0707ec68b8 Author: nagachika AuthorDate: 2023-07-17 09:50:10 +0900 Commit: nagachika CommitDate: 2023-07-17 09:50:10 +0900 merge revision(s) 537183cd2ac0163851277b46a2f21ea5914c11c0: [Backport #19577] Fix write barrier order for `klass` to `cme` edge Previously, the following crashes with `CFLAGS=-DRGENGC_CHECK_MODE=2 -DRUBY_DEBUG=1 -fno-inline`: $ ./miniruby -e 'GC.stress = true; Marshal.dump({})' It crashes with a write barrier (WB) miss assertion on an edge from the `Hash` class object to a newly allocated negative method entry. This is due to usages of vm_ccs_create() running the WB too early, before the method entry is inserted into the cc table, so before the reference edge is established. The insertion can trigger GC and promote the class object, so running the WB after the insertion is necessary. Move the insertion into vm_ccs_create() and run the WB after the insertion. Discovered on CI: http://ci.rvm.jp/results/trunk-asserts@ruby-sp2-docker/4391770 --- vm_eval.c | 3 +-- vm_insnhelper.c | 10 ++++++---- vm_method.c | 3 +-- 3 files changed, 8 insertions(+), 8 deletions(-) commit cb8d656100659eaee44042ca680886c30892df04 Author: nagachika AuthorDate: 2023-07-17 09:45:57 +0900 Commit: nagachika CommitDate: 2023-07-17 09:45:57 +0900 merge revision(s) a84c99468f26a9f79fec57926d561ed906505eac: [Backport #19575] Fix crash in Time on 32-bit systems [Bug #19575] struct vtm is packed causing it to have a size that is not aligned on 32-bit systems. When allocating it on the stack, it will have unaligned addresses which means that the fields won't be marked by the GC when scanning the stack (since the GC only marks aligned addresses). This can cause crashes when the fields are heap allocated objects like Bignums. This commit moves the flags in struct time_object into struct vtm for space efficiency and removes the need for packing. This is an example of a crash: ruby(rb_print_backtrace+0xd) [0x56848945] ../src/vm_dump.c:785 ruby(rb_vm_bugreport) ../src/vm_dump.c:1101 ruby(rb_assert_failure+0x7a) [0x56671857] ../src/error.c:878 ruby(vm_search_cc+0x0) [0x56666e47] ../src/vm_method.c:1366 ruby(rb_vm_search_method_slowpath) ../src/vm_insnhelper.c:2090 ruby(callable_method_entry+0x5) [0x568232d3] ../src/vm_method.c:1406 ruby(rb_callable_method_entry) ../src/vm_method.c:1413 ruby(gccct_method_search_slowpath) ../src/vm_eval.c:427 ruby(gccct_method_search+0x20f) [0x568237ef] ../src/vm_eval.c:476 ruby(opt_equality_by_mid_slowpath+0x2c) [0x5682388c] ../src/vm_insnhelper.c:2338 ruby(rb_equal+0x37) [0x566fe577] ../src/object.c:133 ruby(rb_big_eq+0x34) [0x56876ee4] ../src/bignum.c:5554 ruby(rb_int_equal+0x14) [0x566f3ed4] ../src/numeric.c:4640 ruby(rb_int_equal) ../src/numeric.c:4634 ruby(vm_call0_cfunc_with_frame+0x6d) [0x568303c2] ../src/vm_eval.c:148 ruby(vm_call0_cfunc) ../src/vm_eval.c:162 ruby(vm_call0_body) ../src/vm_eval.c:208 ruby(rb_funcallv_scope+0xd1) [0x56833971] ../src/vm_eval.c:85 ruby(RB_TEST+0x0) [0x567e8488] ../src/time.c:78 ruby(eq) ../src/time.c:78 ruby(small_vtm_sub) ../src/time.c:1523 ruby(timelocalw+0x23b) [0x567f3e9b] ../src/time.c:1593 ruby(time_s_alloc+0x0) [0x567f536b] ../src/time.c:3698 ruby(time_new_timew) ../src/time.c:2694 ruby(time_s_mktime) ../src/time.c:3698 --- test/ruby/test_time.rb | 7 ++----- time.c | 57 ++++++++++++++++++++++++-------------------------- timev.h | 7 +++++-- 3 files changed, 34 insertions(+), 37 deletions(-) commit 9fb94407b97bb85ea344e67606f8ae9ba0bdbd48 Author: nagachika AuthorDate: 2023-07-17 09:29:04 +0900 Commit: nagachika CommitDate: 2023-07-17 09:29:04 +0900 merge revision(s) 417b1a36447cb2c650de55b433ba623541fb8bb3: [Backport #19550] Fix memory leak for iclass [Bug #19550] If !RCLASS_EXT_EMBEDDED (e.g. 32 bit systems) then the rb_classext_t is allocated throug malloc so it must be freed. The issue can be seen in the following script: ``` 20.times do 100_000.times do mod = Module.new Class.new do include mod end end # Output the Resident Set Size (memory usage, in KB) of the current Ruby process puts `ps -o rss= -p #{$$}` end ``` Before this fix, the max RSS is 280MB, while after this change, it's 30MB. --- gc.c | 2 +- test/ruby/test_module.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) commit 45b14ef5c55e5b1956c590f4cfddacbccfc7bf8a Author: nagachika AuthorDate: 2023-07-16 23:30:43 +0900 Commit: nagachika CommitDate: 2023-07-16 23:30:43 +0900 merge revision(s) 7c9ce38cdb781958c52a89b910ee83d5fea99048: Remove duplicated Rust installation --- .cirrus.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 6feef620c5bfc17548e96227ab08910dd97bb11c Author: nagachika AuthorDate: 2023-07-16 23:28:37 +0900 Commit: nagachika CommitDate: 2023-07-16 23:28:37 +0900 merge revision(s) 4bfa4433830a4e48bc4ca43aef861d213affdd84: [Cirrus] Set up cargo environments just once at first --- .cirrus.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 35b0f10519afb5446dc1da1ebea440cc1efdc8d9 Author: nagachika AuthorDate: 2023-07-16 23:27:44 +0900 Commit: nagachika CommitDate: 2023-07-16 23:27:44 +0900 merge revision(s) 3a761dcc91fcbed828699fcc38017f14a1a2db65,d2ffd0ad3d225b6b9e121278146eae8500e9f259: [Cirrus] Show CPU and memory info --- .cirrus.yml | 6 ++++++ 1 file changed, 6 insertions(+) [Cirrus] Share configuration using YAML aliases https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks --- .cirrus.yml | 113 ++++++++++++++++++------------------------------------------ 1 file changed, 33 insertions(+), 80 deletions(-) commit e14280fa25b085a1c9521d45064529984f5c6324 Author: nagachika AuthorDate: 2023-07-16 23:20:16 +0900 Commit: nagachika CommitDate: 2023-07-16 23:20:16 +0900 merge revision(s) bde3b98a6040800e05c9cf448228f094f80b8fed: [Cirrus] Make gem download non-verbose --- .cirrus.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 88cd13999251797b9a0563123a9bf130197e230b Author: nagachika AuthorDate: 2023-07-16 18:59:17 +0900 Commit: nagachika CommitDate: 2023-07-16 18:59:17 +0900 merge revision(s) 37513490442322e82961bf6d06c1c86d55cb3830: [Cirrus] Cache the bundled gems in advance --- .cirrus.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit c911cbd6c3dcc80def61ab48be1815cd910fc91b Author: nagachika AuthorDate: 2023-07-16 16:50:13 +0900 Commit: nagachika CommitDate: 2023-07-16 16:50:13 +0900 merge revision(s) bd786e78969f9d4a8699376ceafe10934b6ad533: [Backport #19084] Fix mutation on shared strings. (#7837) --- io_buffer.c | 19 ++++++++++++------- test/ruby/test_io_buffer.rb | 4 ---- 2 files changed, 12 insertions(+), 11 deletions(-) commit 5ad2390b551f4a28ea3d4db78c21863489fdd681 Author: nagachika AuthorDate: 2023-07-16 16:44:22 +0900 Commit: nagachika CommitDate: 2023-07-16 16:44:22 +0900 merge revision(s) 466aa8010fb49f9ec6c78ea1de4e8ca0965f4fdf: [Backport #19546] Fix incorrect usage of `rb_fiber_scheduler_io_(p)(read|write)`. (#7593) --- io_buffer.c | 8 ++++---- scheduler.c | 48 ++++++++++++++++++++++---------------------- test/fiber/test_io_buffer.rb | 33 ++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 28 deletions(-) commit c13757ed9ae02a2d03aea91bb852397aa920f3fd Author: nagachika AuthorDate: 2023-07-16 16:42:12 +0900 Commit: nagachika CommitDate: 2023-07-16 16:42:12 +0900 merge revision(s) 09295ea796900fb7b05d29e93364090e21598566: [Backport #19543] IO::Buffer#resize: Free internal buffer if new size is zero (#7569) `#resize(0)` on an IO::Buffer with internal buffer allocated will result in calling `realloc(data->base, 0)`. The behavior of `realloc` with size = 0 is implementation-defined (glibc frees the object and returns NULL, while BSDs return an inaccessible object). And thus such usage is deprecated in standard C (upcoming C23 will make it UB). To avoid this problem, just `free`s the memory when the new size is zero. --- io_buffer.c | 5 +++++ test/ruby/test_io_buffer.rb | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) commit 141402d11c09fa641eebd8f4841f81e7bbf3518c Author: nagachika AuthorDate: 2023-07-16 12:58:21 +0900 Commit: nagachika CommitDate: 2023-07-16 12:58:21 +0900 merge revision(s) e1bd45624c85e8a80991bda20801f50967ac77a1: [Backport #19482] Fix crash when allocating classes with newobj hook We need to zero out the whole slot when running the newobj hook for a newly allocated class because the slot could be filled with garbage, which would cause a crash if a GC runs inside of the newobj hook. For example, the following script crashes: ``` require "objspace" GC.stress = true ObjectSpace.trace_object_allocations { 100.times do Class.new end } ``` [Bug #19482] --- gc.c | 8 +++++++- test/objspace/test_objspace.rb | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) commit b13db31ce8cb8c3a763cc41a6ff616be363ef14a Author: nagachika AuthorDate: 2023-07-16 11:46:04 +0900 Commit: nagachika CommitDate: 2023-07-16 11:46:04 +0900 merge revision(s) fe42d88ad28df395111cfb9f2f67e21910083df1: Pass -Werror=lto-type-mismatch for GCC LTO jobs This helps to find possible LTO miscompilations earlier. See also https://github.com/ruby/ruby/pull/7695. --- .github/workflows/compilers.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 3e664c58133a5954de878e138854447e945b8246 Author: nagachika AuthorDate: 2023-07-16 11:43:54 +0900 Commit: nagachika CommitDate: 2023-07-16 11:43:54 +0900 merge revision(s) 27a21ad201b04f9af6c206836b4c7543fb69a1e7: give up checking old compilers These old compilers needed old OSes, which are getting EODed. We cannot maintain healthy binary of them (building compilers on our own is quite haed). Let us just retire them. Fixes [Bug #19353] --- .github/workflows/compilers.yml | 6 ------ 1 file changed, 6 deletions(-) commit 293a00e622da077cd6fad2e4055eb15b081fc2a6 Author: nagachika AuthorDate: 2023-07-16 11:25:10 +0900 Commit: nagachika CommitDate: 2023-07-16 11:25:45 +0900 merge revision(s) 33edcc112081f96856d52e73253d73c97a5c4a3c,b4e438d8aabaf4bba2b27f374c787543fae07c58: [Backport #19483] YJIT: Protect strings from GC on String#<< (#7466) Fix https://github.com/Shopify/yjit/issues/310 [Bug #19483] Co-authored-by: Maxime Chevalier-Boisvert Co-authored-by: Jimmy Miller --- yjit/src/codegen.rs | 3 +++ 1 file changed, 3 insertions(+) YJIT: Save PC on rb_str_concat (#7586) [Bug #19483] Co-authored-by: Alan Wu --- test/ruby/test_yjit.rb | 19 +++++++++++++++++++ yjit/src/codegen.rs | 6 ++++-- 2 files changed, 23 insertions(+), 2 deletions(-) commit 0ba10fd8508b1a2bf7488649ee90622de9bef04a Author: nagachika AuthorDate: 2023-07-16 11:22:31 +0900 Commit: nagachika CommitDate: 2023-07-16 11:25:45 +0900 merge revision(s) 132934b82baad97107fe754d60f9a68a1db7ecda: [Backport #19463] YJIT: Generate Block::entry_exit with block entry PC Previously, when Block::entry_exit is requested from any instruction that is not the first one in the block, we generated the exit with an incorrect PC. We should always be using the PC for the entry of the block for Block::entry_exit. It was a simple typo. The bug was [introduced][1] while we were refactoring to use the current backend. Later, we had a chance to spot this issue while [preparing][2] to enable unused variable warnings, but didn't spot the issue. Fixes [Bug #19463] [1]: 27fcab995e6dde19deb91dc6e291bdb72100af68 [2]: 31461c7e0eab4963ccc8649ea8ebf27979132c0c --- test/ruby/test_yjit.rb | 41 +++++++++++++++++++++++++++++++++++++++++ yjit/src/codegen.rs | 4 ++-- 2 files changed, 43 insertions(+), 2 deletions(-) commit 2f603bc4d750384d57513679ca9db2b4e2e3ec34 Author: Alan Wu AuthorDate: 2023-07-05 00:07:18 +0900 Commit: GitHub CommitDate: 2023-07-05 00:07:18 +0900 ruby_3_2 backport for #8006 (#8008) YJIT: Fix autosplat miscomp for blocks with optionals When passing an array as the sole argument to `yield`, and the yieldee takes more than 1 optional parameter, the array is expanded similar to `*array` splat calls. This is called "autosplat" in `setup_parameters_complex()`. Previously, YJIT did not detect this autosplat condition. It passed the array without expanding it, deviating from interpreter behavior. Detect this conditon and refuse to compile it. commit 07d5709feea0b4d4fe23e2f346383791c614f073 Author: nagachika AuthorDate: 2023-07-01 14:18:06 +0900 Commit: nagachika CommitDate: 2023-07-01 14:18:06 +0900 bump patchlevel commit 038913f1e9dd4efdbea4047b3e0a3e15f407dfd2 Author: eileencodes AuthorDate: 2023-06-03 04:26:02 +0900 Commit: nagachika CommitDate: 2023-07-01 14:17:30 +0900 Add missing write barrier We were missing the write barrier for class_value to cref. This should fix the segv we were seeing in http://ci.rvm.jp/logfiles/brlog.trunk-gc-asserts.20230601-165052 Co-authored-by: Aaron Patterson commit 8a3d57971c99680d4baec84553247b9c6ee41080 Author: eileencodes AuthorDate: 2023-02-08 05:46:50 +0900 Commit: nagachika CommitDate: 2023-07-01 14:17:30 +0900 Fix cvar caching when class is cloned The class variable cache that was added in https://github.com/ruby/ruby/pull/4544 changed the behavior of class variables on cloned classes. As reported when a class is cloned AND a class variable was set, and the class variable was read from the original class, reading a class variable from the cloned class would return the value from the original class. This was happening because the IC (inline cache) is stored on the ISEQ which is shared between the original and cloned class, therefore they share the cache too. To fix this we are now storing the `cref` in the cache so that we can check if it's equal to the current `cref`. If it's different we don't want to read from the cache. If it's the same we do. Cloned classes don't share the same cref with their original class. This will need to be backported to 3.1 in addition to 3.2 since the bug exists in both versions. We also added a marking function which was missing. Fixes [Bug #19379] Co-authored-by: Aaron Patterson commit 06dae46036316e6e9926c4613ac8058b78eb7f2e Author: eileencodes AuthorDate: 2023-02-09 05:27:28 +0900 Commit: nagachika CommitDate: 2023-07-01 14:17:30 +0900 Copy cvar table on clone When a class with a class variable is cloned we need to also copy the cvar cache table from the original table to the clone. I found this bug while working on fixing [Bug #19379]. While this does not fix that bug directly it is still a required change to fix another bug revealed by the fix in https://github.com/ruby/ruby/pull/7265 This needs to be backported to 3.2.x and 3.1.x. Co-authored-by: Aaron Patterson commit 814271b2f7e20dd3da13f30a2fdc823c720110ac Author: nagachika AuthorDate: 2023-07-01 13:48:08 +0900 Commit: nagachika CommitDate: 2023-07-01 13:48:08 +0900 bump patchlevel commit bbf1eb40977441cbe5d1748bbadaf5d46414e170 Author: Hiroshi SHIBATA AuthorDate: 2023-06-21 14:13:30 +0900 Commit: nagachika CommitDate: 2023-07-01 13:46:09 +0900 Merge URI-0.12.2 for Bundler commit dd73fe077cae077808e820f4765a12b1f4660521 Author: Hiroshi SHIBATA AuthorDate: 2023-06-21 13:20:54 +0900 Commit: nagachika CommitDate: 2023-07-01 13:46:09 +0900 Merge URI-0.12.2 commit b422c3523c419b88c6da23a4022ae8864f411b84 Author: nagachika AuthorDate: 2023-06-25 15:20:43 +0900 Commit: nagachika CommitDate: 2023-06-25 15:20:43 +0900 merge revision(s) 7bd7aee02e303de27d2cddfc5ef47e612d6782cb: [Backport #18464] Fix interpreter crash caused by RUBY_INTERNAL_EVENT_NEWOBJ + Ractors When a Ractor is created whilst a tracepoint for RUBY_INTERNAL_EVENT_NEWOBJ is active, the interpreter crashes. This is because during the early setup of the Ractor, the stdio objects are created, which allocates Ruby objects, which fires the tracepoint. However, the tracepoint machinery tries to dereference the control frame (ec->cfp->pc), which isn't set up yet and so crashes with a null pointer dereference. Fix this by not firing GC tracepoints if cfp isn't yet set up. --- gc.c | 1 + test/objspace/test_ractor.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 test/objspace/test_ractor.rb commit 0c00fb5d92dbd87bfdde393d1e3bece9b457d17c Author: nagachika AuthorDate: 2023-06-25 12:37:14 +0900 Commit: nagachika CommitDate: 2023-06-25 12:37:14 +0900 merge revision(s) ec14861f0d7a1e99d3e6667dee2f4c9cc426d5f3: Update to ruby/spec@7e680fa --- spec/ruby/core/dir/home_spec.rb | 5 +++-- spec/ruby/core/process/spawn_spec.rb | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) commit e3d10dedf106357d2b17fc8786d35035e0b366cf Author: nagachika AuthorDate: 2023-06-25 12:29:49 +0900 Commit: nagachika CommitDate: 2023-06-25 12:29:49 +0900 merge revision(s) bffadcd6d46ccfccade79ce0efb60ced8eac4483: [Backport #19529] Add guard to compaction test in WeakMap Some platforms don't support compaction, so we should skip this test. --- test/ruby/test_weakmap.rb | 2 ++ 1 file changed, 2 insertions(+) commit 3ebcbb537d7ae37e49c49e05b28d2cc5b324f151 Author: nagachika AuthorDate: 2023-06-25 12:26:20 +0900 Commit: nagachika CommitDate: 2023-06-25 12:26:20 +0900 merge revision(s) 548086b34e3dd125edabf5dc1e46b891fad3ea9c,3dc8cde70078ccb38f5f4b0818ad5eecded01bd5,e0cf80d666d4b5df3229f030a16d10d21323508e: [Backport #19529] ObjectSpace::WeakMap: fix compaction support [Bug #19529] `rb_gc_update_tbl_refs` can't be used on `w->obj2wmap` because it's not a `VALUE -> VALUE` table, but a `VALUE -> VALUE *` table, so we need some dedicated iterator. --- test/ruby/test_weakmap.rb | 8 ++++++++ weakmap.c | 37 ++++++++++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) Fix crash during compaction [Bug #19529] The fix for [Bug #19529] in commit 548086b contained a bug that crashes on the following script: ``` wm = ObjectSpace::WeakMap.new obj = Object.new 100.times do wm[Object.new] = obj GC.start end GC.compact ``` --- test/ruby/test_weakmap.rb | 10 ++++++++++ weakmap.c | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) Fix incorrect size of WeakMap buffer In wmap_final_func, j is the number of elements + 1 (since j also includes the length at the 0th index), so we should resize the buffer to size j and the new length is j - 1. --- weakmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a048f7882a13e96080021a5bc13ef1fb293b4985 Author: nagachika AuthorDate: 2023-06-25 11:52:21 +0900 Commit: nagachika CommitDate: 2023-06-25 11:52:21 +0900 merge revision(s) 1cdf8ab07b24ebd16e93621957196e8b1d67f2ba: [Backport #19323] [Bug #19323] Raise `RangeError` instead of integer overflow --- bignum.c | 5 ++++- test/ruby/test_integer.rb | 18 ++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) commit 9fca561980c6d024229d72600180b20f3f77536f Author: nagachika AuthorDate: 2023-06-24 16:59:30 +0900 Commit: nagachika CommitDate: 2023-06-24 16:59:30 +0900 merge revision(s) cd5e6cc0ea48353c88d921b885b552dc76da255c,bbf54ec334fe2edd7669a944d88d17efde49a412: [Backport #19307] Update to ruby/mspec@fef9b81 --- spec/mspec/tool/tag_from_output.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Update to ruby/spec@9d69b95 --- spec/ruby/core/array/keep_if_spec.rb | 1 + spec/ruby/core/array/pack/c_spec.rb | 14 +- spec/ruby/core/array/pack/shared/basic.rb | 40 ++++ spec/ruby/core/array/pack/shared/float.rb | 66 ++++++- spec/ruby/core/array/pack/shared/integer.rb | 96 +++++++-- spec/ruby/core/array/pack/shared/numeric_basic.rb | 10 +- spec/ruby/core/array/pack/shared/unicode.rb | 14 +- spec/ruby/core/array/pack/w_spec.rb | 14 +- spec/ruby/core/array/shared/unshift.rb | 18 ++ spec/ruby/core/array/values_at_spec.rb | 1 + spec/ruby/core/array/zip_spec.rb | 6 + spec/ruby/core/class/subclasses_spec.rb | 22 +++ spec/ruby/core/dir/home_spec.rb | 44 +++-- spec/ruby/core/dir/mkdir_spec.rb | 18 +- spec/ruby/core/enumerable/zip_spec.rb | 5 + spec/ruby/core/float/comparison_spec.rb | 35 ++-- spec/ruby/core/float/divmod_spec.rb | 2 +- spec/ruby/core/float/gt_spec.rb | 21 ++ spec/ruby/core/float/gte_spec.rb | 21 ++ spec/ruby/core/float/lt_spec.rb | 21 ++ spec/ruby/core/float/lte_spec.rb | 21 ++ spec/ruby/core/float/shared/equal.rb | 21 ++ spec/ruby/core/io/gets_spec.rb | 4 + spec/ruby/core/io/lineno_spec.rb | 9 +- spec/ruby/core/io/new_spec.rb | 2 + spec/ruby/core/io/readline_spec.rb | 4 + spec/ruby/core/io/readlines_spec.rb | 4 + spec/ruby/core/io/shared/each.rb | 4 + spec/ruby/core/io/shared/new.rb | 2 + spec/ruby/core/io/shared/pos.rb | 8 +- spec/ruby/core/io/shared/readlines.rb | 4 + spec/ruby/core/io/sysseek_spec.rb | 2 +- spec/ruby/core/kernel/shared/load.rb | 31 ++- spec/ruby/core/kernel/singleton_class_spec.rb | 2 + spec/ruby/core/marshal/dump_spec.rb | 45 ++++- spec/ruby/core/marshal/fixtures/classes.rb | 4 + spec/ruby/core/matchdata/values_at_spec.rb | 73 ++++++- spec/ruby/core/module/fixtures/classes.rb | 1 + spec/ruby/core/module/include_spec.rb | 4 +- spec/ruby/core/module/prepend_spec.rb | 12 ++ .../ruby/core/objectspace/define_finalizer_spec.rb | 22 +++ spec/ruby/core/process/constants_spec.rb | 1 + spec/ruby/core/process/detach_spec.rb | 29 +++ spec/ruby/core/process/spawn_spec.rb | 10 + spec/ruby/core/process/times_spec.rb | 2 +- spec/ruby/core/queue/initialize_spec.rb | 13 +- spec/ruby/core/refinement/import_methods_spec.rb | 34 ++++ spec/ruby/core/refinement/include_spec.rb | 27 +++ spec/ruby/core/refinement/prepend_spec.rb | 27 +++ spec/ruby/core/regexp/initialize_spec.rb | 2 +- spec/ruby/core/signal/trap_spec.rb | 12 ++ spec/ruby/core/string/byteslice_spec.rb | 6 + spec/ruby/core/string/capitalize_spec.rb | 4 + spec/ruby/core/string/chars_spec.rb | 7 +- spec/ruby/core/string/chomp_spec.rb | 4 + spec/ruby/core/string/chop_spec.rb | 4 + spec/ruby/core/string/clone_spec.rb | 4 + spec/ruby/core/string/delete_prefix_spec.rb | 4 + spec/ruby/core/string/delete_spec.rb | 4 + spec/ruby/core/string/delete_suffix_spec.rb | 4 + spec/ruby/core/string/downcase_spec.rb | 4 + spec/ruby/core/string/dump_spec.rb | 10 +- spec/ruby/core/string/dup_spec.rb | 4 + spec/ruby/core/string/lines_spec.rb | 1 - spec/ruby/core/string/reverse_spec.rb | 4 + spec/ruby/core/string/scan_spec.rb | 6 + spec/ruby/core/string/scrub_spec.rb | 10 + spec/ruby/core/string/shared/each_line.rb | 6 + spec/ruby/core/string/shared/partition.rb | 15 ++ spec/ruby/core/string/shared/slice.rb | 13 +- spec/ruby/core/string/shared/strip.rb | 4 + spec/ruby/core/string/shared/succ.rb | 4 + spec/ruby/core/string/split_spec.rb | 17 +- spec/ruby/core/string/squeeze_spec.rb | 5 + spec/ruby/core/string/swapcase_spec.rb | 4 + spec/ruby/core/string/undump_spec.rb | 2 +- spec/ruby/core/string/unpack/b_spec.rb | 28 ++- spec/ruby/core/string/unpack/c_spec.rb | 14 +- spec/ruby/core/string/unpack/h_spec.rb | 28 ++- spec/ruby/core/string/unpack/shared/basic.rb | 28 --- spec/ruby/core/string/unpack/shared/float.rb | 60 +++++- spec/ruby/core/string/unpack/shared/integer.rb | 88 +++++++-- spec/ruby/core/string/unpack/shared/unicode.rb | 14 +- spec/ruby/core/string/unpack/w_spec.rb | 14 +- spec/ruby/core/string/unpack1_spec.rb | 12 +- spec/ruby/core/string/unpack_spec.rb | 34 ++++ spec/ruby/core/string/upcase_spec.rb | 4 + spec/ruby/core/string/valid_encoding/utf_8_spec.rb | 214 +++++++++++++++++++++ spec/ruby/core/struct/values_at_spec.rb | 55 +++++- spec/ruby/core/symbol/shared/id2name.rb | 7 + spec/ruby/core/time/at_spec.rb | 16 ++ spec/ruby/core/time/localtime_spec.rb | 16 +- spec/ruby/core/time/new_spec.rb | 94 +++++++-- spec/ruby/core/time/shared/gmtime.rb | 4 +- spec/ruby/core/time/shared/time_params.rb | 11 +- spec/ruby/core/time/strftime_spec.rb | 40 +++- spec/ruby/core/time/utc_spec.rb | 41 +++- spec/ruby/core/time/zone_spec.rb | 20 +- spec/ruby/core/tracepoint/inspect_spec.rb | 9 + spec/ruby/fixtures/code/load_wrap_fixture.rb | 12 ++ spec/ruby/fixtures/code/wrap_fixture.rb | 9 - spec/ruby/language/case_spec.rb | 4 +- .../ruby/language/regexp/character_classes_spec.rb | 5 + spec/ruby/library/coverage/running_spec.rb | 20 ++ spec/ruby/library/date/civil_spec.rb | 7 +- spec/ruby/library/objectspace/fixtures/trace.rb | 5 + spec/ruby/library/objectspace/trace_spec.rb | 15 ++ spec/ruby/library/openssl/x509/name/verify_spec.rb | 4 +- spec/ruby/library/stringio/initialize_spec.rb | 85 ++++++++ spec/ruby/library/stringio/new_spec.rb | 8 + spec/ruby/library/stringio/shared/write.rb | 22 +++ spec/ruby/optional/capi/ext/io_spec.c | 43 +++++ spec/ruby/optional/capi/io_spec.rb | 15 ++ spec/ruby/shared/rational/Rational.rb | 48 ++--- 114 files changed, 1963 insertions(+), 245 deletions(-) create mode 100644 spec/ruby/core/marshal/fixtures/classes.rb create mode 100644 spec/ruby/core/refinement/import_methods_spec.rb create mode 100644 spec/ruby/core/refinement/include_spec.rb create mode 100644 spec/ruby/core/refinement/prepend_spec.rb create mode 100644 spec/ruby/core/string/unpack_spec.rb create mode 100644 spec/ruby/core/string/valid_encoding/utf_8_spec.rb create mode 100644 spec/ruby/fixtures/code/load_wrap_fixture.rb delete mode 100644 spec/ruby/fixtures/code/wrap_fixture.rb create mode 100644 spec/ruby/library/coverage/running_spec.rb create mode 100644 spec/ruby/library/objectspace/fixtures/trace.rb create mode 100644 spec/ruby/library/objectspace/trace_spec.rb create mode 100644 spec/ruby/library/stringio/new_spec.rb commit f89101fa3610a7b977801d60b85bcc1ea2f6dee4 Author: Nobuyoshi Nakada AuthorDate: 2023-03-15 20:34:21 +0900 Commit: Hiroshi SHIBATA CommitDate: 2023-06-13 14:01:57 +0900 [ruby/openssl] Relax error message check for OpenSSL 3.1 A tentative measures fo https://github.com/ruby/openssl/issues/606. With OpenSSL 3.1.0, the error message at connection using "self-signed certificate" seems to return `SSL_R_TLSV1_ALERT_UNKNOWN_CA` instead of `SSL_R_CERTIFICATE_VERIFY_FAILED`. https://github.com/ruby/openssl/commit/fc4629d246 commit 34da58bd17af10099e2a8f771d8c6aaa038b6cbe Author: Hiroshi SHIBATA AuthorDate: 2023-06-12 11:29:25 +0900 Commit: Hiroshi SHIBATA CommitDate: 2023-06-13 14:01:57 +0900 Try to skip Prime_test.rb commit 1b2ad95c256b0ed5ff5658d752aeadcfed82268c Author: Hiroshi SHIBATA AuthorDate: 2023-06-12 10:02:42 +0900 Commit: Hiroshi SHIBATA CommitDate: 2023-06-13 14:01:57 +0900 Run test-unit test without rake task to avoid yard dependency commit 60ea850bbe7b418b7e6552203f7f48c58d11b9c4 Author: Hiroshi SHIBATA AuthorDate: 2023-06-12 09:34:37 +0900 Commit: Hiroshi SHIBATA CommitDate: 2023-06-13 14:01:57 +0900 pry is not needed for test-bundled-gems commit 60d75a5665e808e7491ea6bca9c02245852ea495 Author: Takashi Kokubun AuthorDate: 2023-04-30 16:38:10 +0900 Commit: nagachika CommitDate: 2023-06-02 18:55:53 +0900 MJIT: Check if self is T_OBJECT before opt_pc jump commit ae70d2d7866174c19f67a1ab4f52625476ca6173 Author: Takashi Kokubun AuthorDate: 2023-06-02 12:47:29 +0900 Commit: nagachika CommitDate: 2023-06-02 16:30:00 +0900 YJIT: Use #[cfg] instead of if cfg! commit 08bf3bcfb722aff2eb66782c0aec59a145fee185 Author: Takashi Kokubun AuthorDate: 2023-05-01 02:32:25 +0900 Commit: nagachika CommitDate: 2023-06-02 09:41:40 +0900 MJIT: Trigger compaction when the queue is empty commit e51014f9c05aa65cbf203442d37fef7c12390015 Author: NARUSE, Yui AuthorDate: 2023-03-30 20:06:29 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-30 20:06:29 +0900 v3.2.2p53 commit 936b705d7839f78d88a1dde5ba4ca309848dd792 Author: NARUSE, Yui AuthorDate: 2023-03-30 19:55:41 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-30 20:05:11 +0900 v3.2.1p53 commit 34d5d10517825a51bea6bcb13ead1484c7182b42 Author: Hiroshi SHIBATA AuthorDate: 2023-03-30 19:54:12 +0900 Commit: GitHub CommitDate: 2023-03-30 19:54:12 +0900 Merge Time-0.2.2 (#7623) commit 250ff4ff45f1257b395260fe42d914cbb0720a41 Author: NARUSE, Yui AuthorDate: 2023-03-29 00:47:10 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-29 00:48:11 +0900 gem related automation must run only on master commit 00041131e25699136179a7de06794527eaaabfd6 Author: Nobuyoshi Nakada AuthorDate: 2023-02-22 22:14:26 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-28 22:47:23 +0900 Skip failing test on MSWin commit 18d3223563cc74b07e53e79c44d45dc50a6004c7 Author: NARUSE, Yui AuthorDate: 2023-03-28 21:01:44 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-28 21:04:02 +0900 Use merge_group commit c3c461c4ff1b998ac49ed1a3ad411d2f0a9123b8 Author: Hiroshi SHIBATA AuthorDate: 2023-03-28 20:36:47 +0900 Commit: GitHub CommitDate: 2023-03-28 20:36:47 +0900 Merge RubyGems-3.4.10 and Bundler-2.4.10 (#7479) * Merge RubyGems-3.4.7 and Bundler-2.4.7 * Merge RubyGems-3.4.8 and Bundler-2.4.8 * Skip failing test on MSWin * Merge RubyGems-3.4.9 and Bundler-2.4.9 * Merge RubyGems-3.4.10 and Bundler-2.4.10 --------- Co-authored-by: Nobuyoshi Nakada commit f8c775cb413724a45bb5641de94f4f9210044116 Author: Hiroshi SHIBATA AuthorDate: 2023-03-28 20:36:36 +0900 Commit: GitHub CommitDate: 2023-03-28 20:36:36 +0900 Use URI-0.12.1 for Ruby 3.2 (#7603) * Merge URI-0.12.1 * Use URI-0.12.1 * Update core_assertions for using assert_linear_performance commit 582aadb3905eac131591f4c7884f441c036c49fb Author: NARUSE, Yui AuthorDate: 2023-03-28 17:02:53 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-28 17:02:53 +0900 merge revision(s) 2f916812a9b818b432ee7c299e021ec62d4727fb,ac458f6bc3c520c9f23364c85bfb033acda907a6: Skip test_europe_lisbon on macOS until we figure out why it's failing. --- test/ruby/test_time_tz.rb | 1 + 1 file changed, 1 insertion(+) Historical timezones of Lisbon in tzdata are unstable --- test/ruby/test_time_tz.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fb4ffce0dd8cae3b7d0141d3b1ea3f0ab710a45a Author: NARUSE, Yui AuthorDate: 2023-03-28 14:25:13 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-28 14:25:13 +0900 merge revision(s) 680bd9027f8cb7977bbc216609db2f4e3cf199a8: [Backport #19471] [Bug #19471] `Regexp.compile` should handle keyword arguments As well as `Regexp.new`, it should pass keyword arguments to the `Regexp#initialize` method. --- re.c | 2 +- test/ruby/test_regexp.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) commit b93e2223300bc54dfa387ffb9fa3d48ecbe670f0 Author: NARUSE, Yui AuthorDate: 2023-03-23 12:04:46 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-23 12:04:46 +0900 merge revision(s) e7342e76dfd26237c604e42f9a59a1eaa578c94e: [Backport #19485] [Bug #19485] [DOC] Mention tabs in indentation of heredoc identifier Co-Authored-By: sawa (Tsuyoshi Sawada) --- doc/syntax/literals.rdoc | 6 ++++++ 1 file changed, 6 insertions(+) commit 400ccb16eefe4e21c4e3eacab4fd0f208fc5e151 Author: NARUSE, Yui AuthorDate: 2023-03-23 08:11:23 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-23 08:11:23 +0900 merge revision(s) cb22d78354e201ca74eba68a8b4edefb593e6754: [Backport #19536] Fix frozen status loss when moving objects [Bug #19536] When objects are moved between size pools, their frozen status is lost in the shape. This will cause the frozen check to be bypassed when there is an inline cache. For example, the following script should raise a FrozenError, but doesn't on Ruby 3.2 and master. class A def add_ivars @a = @b = @c = @d = 1 end def set_a @a = 10 end end a = A.new a.add_ivars a.freeze b = A.new b.add_ivars b.set_a # Set the inline cache in set_a GC.verify_compaction_references(expand_heap: true, toward: :empty) a.set_a --- shape.c | 2 +- test/ruby/test_gc_compact.rb | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) commit ad6fe84dfa6935bd6e2c3ef3ee36bed4e8627d0b Author: NARUSE, Yui AuthorDate: 2023-03-22 10:34:12 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-22 10:34:12 +0900 merge revision(s) dddc542e9b61b292d80a96d0d0efbbf58719e3be: [Backport #19476] [Bug #19476]: correct cache index computation for repetition (#7457) --- regexec.c | 4 ++-- test/ruby/test_regexp.rb | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) commit 4b4087dce318570f9f9c05e14900325b499fb632 Author: NARUSE, Yui AuthorDate: 2023-03-20 15:06:34 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-20 15:06:34 +0900 merge revision(s) e22c4e8877677ff90805e4a4dcbdef80f4220136: [Backport #19467] [Bug #19467] correct cache points and counting failure on `OP_ANYCHAR_STAR_PEEK_NEXT` (#7454) --- regexec.c | 20 ++++++++++++++++---- test/ruby/test_regexp.rb | 10 ++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) commit 0555303464f3595223ec8093146041f96595865d Author: NARUSE, Yui AuthorDate: 2023-03-18 15:02:04 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-18 15:02:04 +0900 merge revision(s) 96d1acfdf6c6b42f2029f44d5b5920961d6efa92: [Backport #19161] [Bug #19161] Check for TLS usability On all platforms using GCC, even other than darwin. --- configure.ac | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit f3abe5ba645839fb2a686aee18d3466b59256af0 Author: NARUSE, Yui AuthorDate: 2023-03-17 13:40:04 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-17 13:40:04 +0900 merge revision(s) 0700d0fd1c77b4fddf803dea3c10be654df600ff,62c2082f1f726cb90d8c332fbedbecf41d5d82ec: [Backport #19469] Fix indentation in vm_setivar_default --- vm_insnhelper.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) [Bug #19469] Fix crash when resizing generic iv list The following script can sometimes trigger a crash: ```ruby GC.stress = true class Array def foo(bool) if bool @a = 1 @b = 2 @c = 1 else @c = 1 end end end obj = [] obj.foo(true) obj2 = [] obj2.foo(false) obj3 = [] obj3.foo(true) ``` This is because vm_setivar_default calls rb_ensure_generic_iv_list_size to resize the iv list. However, the call to gen_ivtbl_resize reallocs the iv list, and then inserts into the generic iv table. If the st_insert triggers a GC then the old iv list will be read during marking, causing a use-after-free bug. Co-Authored-By: Jemma Issroff --- internal/variable.h | 2 +- variable.c | 23 ++++++++++++++++++----- vm_insnhelper.c | 4 ++-- 3 files changed, 21 insertions(+), 8 deletions(-) commit b309c246ee70926d593d3857e1625202e2d0f67b Author: NARUSE, Yui AuthorDate: 2023-03-17 10:56:18 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-17 10:56:18 +0900 merge revision(s) d78ae78fd76e556e281a743c75bea4c0bb81ed8c: [Backport #19468] rb_str_modify_expand: clear the string coderange [Bug #19468] b0b9f7201acab05c2a3ad92c3043a1f01df3e17f errornously stopped clearing the coderange. Since `rb_str_modify` clears it, `rb_str_modify_expand` should too. --- string.c | 1 + 1 file changed, 1 insertion(+) commit b73a07359758a9034996752e981e09ddaffe8d87 Author: NARUSE, Yui AuthorDate: 2023-03-15 16:36:32 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-15 16:36:32 +0900 merge revision(s) 0eb634ae73cb327ede833b72492f912792a4a9d5: [Backport #19464] YJIT: Detect and reject `send(:alias_for_send, :foo)` Previously, YJIT failed to put the stack into the correct shape when `BasicObject#send` calls an alias method for the send method itself. This can manifest as strange `NoMethodError`s in the final non-send receiver, as [seen][1] with the kt-paperclip gem. I also found a case where it makes YJIT fail the stack size assertion while compiling `leave`. YJIT's `BasicObject#__send__` implementation already rejects sends to `send`, but didn't detect sends to aliases of `send`. Adjust the detection and reject these cases. Fixes [Bug #19464] [1]: https://github.com/Shopify/yjit/issues/306 --- test/ruby/test_yjit.rb | 20 ++++++++++++++++++++ yjit/src/codegen.rs | 25 ++++++++++--------------- 2 files changed, 30 insertions(+), 15 deletions(-) commit db28f7003f7d49cfa13871c38d10c1967282ca6b Author: NARUSE, Yui AuthorDate: 2023-03-09 09:35:39 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-09 09:35:39 +0900 merge revision(s) 3b567eb491e460e00a66fdea8054eeb083b5dafd: [Backport #19459] [Bug #19459] Remove unnecessary always-true checks (#7362) `length` is a required argument for `IO::Buffer#read` and `IO::Buffer#write` methods, and `argc` is already checked with `rb_check_arity`. Also fix the call-seq of `IO::Buffer#read`. --- io_buffer.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) commit 4e4a4e42b284d9309a7e51c97058093539e7a843 Author: NARUSE, Yui AuthorDate: 2023-03-08 14:46:30 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-08 14:46:30 +0900 merge revision(s) d2520b7b76759118071a16e6bca22726a5de9fb4: [Backport #19439] Marshal.load: restore instance variables on Regexp [Bug #19439] The instance variables were restore on the Regexp source, not the regexp itself. Unfortunately we have a bit of a chicken and egg problem. The source holds the encoding, and the encoding need to be set on the source to be able to instantiate the Regexp. So the instance variables have to be read on the `source`. To correct this we transfert the instance variables after instantiating the Regexp. The only way to avoid this would be to read the instance variable twice and rewind. --- marshal.c | 20 ++++++++++++++++++-- spec/ruby/core/marshal/shared/load.rb | 11 +++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) commit 59eb18037ff92839be48fb6c46ff0acc179b4f4c Author: NARUSE, Yui AuthorDate: 2023-03-08 12:02:22 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-08 12:02:22 +0900 merge revision(s) dd28c55a7cd6780dad637b4d6a20507fbfc6af4a: [Backport #19445] [Bug#19445] Fix keyword splat in enumerator Extracted arguments do not have keyword hash to splat. --- numeric.c | 2 +- test/ruby/test_numeric.rb | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) commit 4d75035e1762a23d38c5192b30bb47f40b752bee Author: NARUSE, Yui AuthorDate: 2023-03-07 19:48:32 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-07 19:48:32 +0900 merge revision(s) c178926fbe879045fa711444a1fd9e906af23e3b,a4b7ec12298c78392797e5ba7704076550e4f100: [Backport #19444] YJIT: jit_prepare_routine_call() for String#+@ missing We saw SEGVs due to this when running with StackProf, which needs a correct PC for RUBY_INTERNAL_EVENT_NEWOBJ, the same event used for ObjectSpace allocation tracing. [Bug #19444] --- test/ruby/test_yjit.rb | 27 +++++++++++++++++++++++++++ yjit/src/codegen.rs | 5 ++++- 2 files changed, 31 insertions(+), 1 deletion(-) YJIT: Fix false assumption that String#+@ => ::String Could return a subclass. [Bug #19444] --- test/ruby/test_yjit.rb | 17 +++++++++++++++++ yjit/src/codegen.rs | 10 +++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) commit f1cde05d99898f491c8e302ae74029468fdb6eb9 Author: NARUSE, Yui AuthorDate: 2023-03-07 10:11:43 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-07 10:11:43 +0900 merge revision(s) 86de48e9f69b665ba9ffb5bdc5a181a3adb1a7b8: [Backport #19419] Remove ibf_dumper's WB_PROTECTED status It doesn't have the right write barriers in place. For example, there is rb_mark_set(dump->global_buffer.obj_table); in the mark function, but there is no corresponding write barrier when adding to the table in the `ibf_dump_object() -> ibf_table_find_or_insert() -> st_insert()` code path. To insert write barrier correctly, we need to store the T_STRUCT VALUE inside `struct ibf_dump`. Instead of doing that, let's just demote it to WB unproected for correctness. These dumper object are ephemeral so there is not a huge benefit for having them WB protected. Users of the bootsnap gem ran into crashes due to this issue: https://github.com/Shopify/bootsnap/issues/436 Fixes [Bug #19419] --- compile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f93c7b9f58966fd04496bfeb2538fb1ff41f788e Author: NARUSE, Yui AuthorDate: 2023-03-04 15:39:47 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-04 15:39:47 +0900 merge revision(s) b78f871d838c168789648738e5c67b071beb8a19,ecd0cdaf820af789f355f1a18c31d6adfe8aad94: [Backport #19400] YJIT: Use the system page size when the code page size is too small (#7267) Previously on ARM64 Linux systems that use 64 KiB pages (`CONFIG_ARM64_64K_PAGES=y`), YJIT was panicking on boot due to a failed assertion. The assertion was making sure that code GC can free the last code page that YJIT manages without freeing unrelated memory. YJIT prefers picking 16 KiB as the granularity at which to free code memory, but when the system can only free at 64 KiB granularity, that is not possible. The fix is to use the system page size as the code page size when the system page size is 64 KiB. Continue to use 16 KiB as the code page size on common systems that use 16/4 KiB pages. Add asserts to code_gc() and free_page() about code GC's assumptions. Fixes [Bug #19400] --- yjit/src/asm/mod.rs | 78 ++++++++++++++++++++++++++++++++------------------ yjit/src/codegen.rs | 2 -- yjit/src/virtualmem.rs | 13 +++++++++ 3 files changed, 63 insertions(+), 30 deletions(-) YJIT: Fix assertion for partially mapped last pages (#7337) Follows up [Bug #19400] --- test/ruby/test_yjit.rb | 19 +++++++++++++++++++ yjit/src/asm/mod.rs | 2 +- yjit/src/virtualmem.rs | 18 +++++++++++++----- 3 files changed, 33 insertions(+), 6 deletions(-) commit 53f6173cfc085a7422b4a76c85e6c35969209327 Author: NARUSE, Yui AuthorDate: 2023-03-02 09:28:58 +0900 Commit: NARUSE, Yui CommitDate: 2023-03-02 09:29:38 +0900 merge revision(s) 8ce2fb9bbbaea14737c84385b1573f743a30f773,3a0f6ce1d31eefd8af01b50f3632a64d64e8f8c1: [Backport #19415] Only emit circular dependency warning for owned thread shields [Bug #19415] If multiple threads attemps to load the same file concurrently it's not a circular dependency issue. So we check that the existing ThreadShield is owner by the current fiber before warning about circular dependencies. --- internal/thread.h | 1 + load.c | 3 ++- spec/ruby/core/kernel/shared/require.rb | 11 +++++++++++ spec/ruby/fixtures/code/concurrent_require_fixture.rb | 4 ++++ test/ruby/test_require.rb | 3 --- thread.c | 11 +++++++++++ 6 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 spec/ruby/fixtures/code/concurrent_require_fixture.rb Use Thread.pass until thread.stop? to wait for thread to block [Bug #19415] It should be more reliable --- spec/ruby/fixtures/code/concurrent_require_fixture.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 65ab2c1ef23bd4a02120a27c371dce12ea9024d4 Author: Hiroshi SHIBATA AuthorDate: 2023-02-22 19:00:00 +0900 Commit: GitHub CommitDate: 2023-02-22 19:00:00 +0900 Backport [Bug #19158] for Ruby 3.2 (#7356) Backport https://github.com/ruby/ruby/pull/7321 commit 31819e82c88c6f8ecfaeb162519bfa26a14b21fd Author: NARUSE, Yui AuthorDate: 2023-02-08 13:02:20 +0900 Commit: NARUSE, Yui CommitDate: 2023-02-08 13:02:20 +0900 v3.2.1 commit 88e0862267cec6764ab9888f7522a40f2996e2c7 Author: NARUSE, Yui AuthorDate: 2023-02-08 01:31:22 +0900 Commit: NARUSE, Yui CommitDate: 2023-02-08 01:31:22 +0900 Remove wrong file commit 3decf7df6f678ff6386c5c1888642d76f49dc147 Author: NARUSE, Yui AuthorDate: 2023-02-07 15:15:17 +0900 Commit: NARUSE, Yui CommitDate: 2023-02-07 15:15:17 +0900 merge revision(s) 3a7367ccc319499127ead147e5a08f769e44208e: [Backport #19403] mkconfig: Map `includedir` only for system ruby Only when installing to the system path on macOS, prepend '$(SDKROOT)' and remap `includedir`. Fix https://github.com/rbenv/ruby-build/discussions/2123 --- test/mkmf/test_config.rb | 4 ++-- test/test_rbconfig.rb | 9 --------- tool/mkconfig.rb | 4 +++- 3 files changed, 5 insertions(+), 12 deletions(-) commit 7246cd0081ec845e1407484fca10439e7868880b Author: NARUSE, Yui AuthorDate: 2023-02-07 13:46:36 +0900 Commit: NARUSE, Yui CommitDate: 2023-02-07 13:46:36 +0900 merge revision(s) fad48fefe19cc282a5b209944244a3713359b47f: [Backport #19399] [Bug #19399] Parsing invalid heredoc inside block parameter Although this is of course invalid as Ruby code, allow to just parse and tokenize. --- ext/ripper/lib/ripper/lexer.rb | 2 +- test/ripper/test_lexer.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) commit 3426ebd0489654f951a8b92efaf5e72b9f43efab Author: NARUSE, Yui AuthorDate: 2023-02-06 16:41:23 +0900 Commit: NARUSE, Yui CommitDate: 2023-02-06 16:41:23 +0900 merge revision(s) c6f84e918943a0bf8db6fee556fc53180d257510: [Backport #19398] [Bug #19398] Memory leak in WeakMap There's a memory leak in ObjectSpace::WeakMap due to not freeing the `struct weakmap`. It can be seen in the following script: ``` 100.times do 10000.times do ObjectSpace::WeakMap.new end # Output the Resident Set Size (memory usage, in KB) of the current Ruby process puts `ps -o rss= -p #{$$}` end ``` --- gc.c | 1 + test/ruby/test_weakmap.rb | 9 +++++++++ 2 files changed, 10 insertions(+) commit 3a88589399f7f1059be245f766809c49790ad939 Author: NARUSE, Yui AuthorDate: 2023-02-06 14:00:47 +0900 Commit: NARUSE, Yui CommitDate: 2023-02-06 14:00:47 +0900 merge revision(s) 3b83b265f11965582d4b9b439eff8a501792ab68: [Backport #19404] YJIT: Crash with rb_bug() when panicking Helps with getting good bug reports in the wild. Intended to be backported to the 3.2.x series. --- yjit/bindgen/src/main.rs | 3 +++ yjit/src/cruby_bindings.inc.rs | 1 + yjit/src/yjit.rs | 29 +++++++++++++++++++++++++++-- 3 files changed, 31 insertions(+), 2 deletions(-) commit 535d863f34e6c36a2378683e7c2d3b7369e3d076 Author: NARUSE, Yui AuthorDate: 2023-02-03 14:13:02 +0900 Commit: NARUSE, Yui CommitDate: 2023-02-03 14:13:09 +0900 merge revision(s) 188688a53e7708d25ab80e14d05e70ffcf792e13: [Backport #19385] [PATCH 1/4] YJIT: Move CodegenGlobals::freed_pages into an Rc This allows for supplying a freed_pages vec in Rust tests. We need it so we can test scenarios that occur after code GC. --- yjit/src/asm/mod.rs | 48 +++++++++++++++++++++++++++++++++------------ yjit/src/codegen.rs | 16 ++++----------- 2 files changed, 39 insertions(+), 25 deletions(-) Subject: [PATCH 2/4] YJIT: other_cb is None in tests Since the other cb is in CodegenGlobals, and we want Rust tests to be self-contained. --- yjit/src/asm/mod.rs | 1 + 1 file changed, 1 insertion(+) Subject: [PATCH 3/4] YJIT: ARM64: Move functions out of arm64_emit() --- yjit/src/backend/arm64/mod.rs | 180 +++++++++++++++++----------------- 1 file changed, 90 insertions(+), 90 deletions(-) Subject: [PATCH 4/4] YJIT: ARM64: Fix long jumps to labels Previously, with Code GC, YJIT panicked while trying to emit a B.cond instruction with an offset that is not encodable in 19 bits. This only happens when the code in an assembler instance straddles two pages. To fix this, when we detect that a jump to a label can land on a different page, we switch to a fresh new page and regenerate all the code in the assembler there. We still assume that no one assembler has so much code that it wouldn't fit inside a fresh new page. [Bug #19385] --- yjit/src/backend/arm64/mod.rs | 65 ++++++++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 5 deletions(-) commit f4e6e78410136100ef5f285136a66df8d6004a61 Author: Hiroshi SHIBATA AuthorDate: 2023-02-01 12:05:19 +0900 Commit: GitHub CommitDate: 2023-02-01 12:05:19 +0900 Merge RubyGems 3.4.6 and Bundler 2.4.6 (#7214) Merge RubyGems-3.4.6 and Bundler-2.4.6 commit 40e0b1e123503805c16a2a9aafae0a5c302c20d1 Author: NARUSE, Yui AuthorDate: 2023-01-31 23:46:50 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-31 23:46:50 +0900 merge revision(s) 9726736006b3f74635fd8af05814fe0908e2cf84: [Backport #19327] Set STR_SHARED_ROOT flag on root of string --- string.c | 1 + 1 file changed, 1 insertion(+) commit 22bfad0ec9968be4c99c8c68f2c809b833069ea7 Author: NARUSE, Yui AuthorDate: 2023-01-31 18:27:44 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-31 18:27:44 +0900 Remove "Miscellaneous checks" from CI It is expected to use on master branch commit ca75332f46c39804e06cd37c2608cbdef0aebf05 Author: NARUSE, Yui AuthorDate: 2023-01-31 15:28:01 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-31 15:28:01 +0900 merge revision(s) eccfc978fd6f65332eb70c9a46fbb4d5110bbe0a: [Backport #19379] Fix parsing of regexps that toggle extended mode on/off inside regexp This was broken in ec3542229b29ec93062e9d90e877ea29d3c19472. That commit didn't handle cases where extended mode was turned on/off inside the regexp. There are two ways to turn extended mode on/off: ``` /(?-x:#y)#z /x =~ '#y' /(?-x)#y(?x)#z /x =~ '#y' ``` These can be nested inside the same regexp: ``` /(?-x:(?x)#x (?-x)#y)#z /x =~ '#y' ``` As you can probably imagine, this makes handling these regexps somewhat complex. Due to the nesting inside portions of regexps, the unassign_nonascii function needs to be recursive. In recursive mode, it needs to track both opening and closing parentheses, similar to how it already tracked opening and closing brackets for character classes. When scanning the regexp and coming to `(?` not followed by `#`, scan for options, and use `x` and `i` to determine whether to turn on or off extended mode. For `:`, indicting only the current regexp section should have the extended mode switched, recurse with the extended mode set or unset. For `)`, indicating the remainder of the regexp (or current regexp portion if already recursing) should turn extended mode on or off, just change the extended mode flag and keep scanning. While testing this, I noticed that `a`, `d`, and `u` are accepted as options, in addition to `i`, `m`, and `x`, but I can't see where those options are documented. I'm not sure whether or not handling `a`, `d`, and `u` as options is a bug. Fixes [Bug #19379] --- re.c | 153 +++++++++++++++++++++++++++++++++++++---------- test/ruby/test_regexp.rb | 56 +++++++++++++++++ 2 files changed, 176 insertions(+), 33 deletions(-) commit 5a2b28909ece2e1310250180f097bfcb7b0203dc Author: NARUSE, Yui AuthorDate: 2023-01-31 13:39:13 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-31 13:39:13 +0900 merge revision(s) 3f54d09a5b8b6e4fd734abc8911e170d5967b5b0: [Backport #19390] bignum.c: rb_int_parse_cstr handle `0` strings [Bug #19390] We shouldn't check the string length when skipping zeros, as the string might only contains zero characters, resulting in an empty string. --- bignum.c | 1 - test/ruby/test_time.rb | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) commit 1689d8bb4843f92c1805e4a4bdd94049569198f4 Author: NARUSE, Yui AuthorDate: 2023-01-31 11:08:50 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-31 11:08:50 +0900 merge revision(s) 21dced8b01823a991829b66ffdc8ffc635965c76: [Backport #19389] [ruby/stringio] [Bug #19389] Fix chomping with longer separator https://github.com/ruby/stringio/commit/eb322a9716 --- ext/stringio/stringio.c | 5 +++-- test/stringio/test_stringio.rb | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) commit fee5b8f263211faef10ed9f3e43c1e8b34548bbd Author: NARUSE, Yui AuthorDate: 2023-01-25 16:34:24 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-25 16:34:24 +0900 merge revision(s) 2c93c554019ebdc394d3c51c6d925620d3005f84,f5ea43a2e61789357e9c4b374b4bc6756abeae17: [Backport #19360] Ensure main file has default coverage if required. (#7169) * Extract common code for coverage setup. --- iseq.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) More coverage tests & specs. (#7171) * Add spec for eval and line coverage. * Add test for main file coverage. --- spec/ruby/library/coverage/start_spec.rb | 8 +++++++- test/coverage/autostart.rb | 2 ++ test/coverage/main.rb | 1 + test/coverage/test_coverage.rb | 7 +++++++ 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 test/coverage/autostart.rb create mode 100644 test/coverage/main.rb commit 4110137fcfd805de03a8f5569c3d6926959b9363 Author: NARUSE, Yui AuthorDate: 2023-01-25 13:26:25 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-25 13:26:25 +0900 merge revision(s) 6f3aff3961a4c5ce87e05096a1a9dcf1055b7647: [Backport #19289] [Bug #19289] Retain `ruby_abi_version` function A few extension libraries, to hide all symbols except for necessary to load, hardcode the symbols to be exported in symbol list files for linker without even checking by `have_func`. As a workaround for such libraries, retain `ruby_abi_version` symbol always even in released versions for now. --- include/ruby/internal/abi.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 0090cb82b0bf477c29a659e34cf4427a3b1ceb27 Author: NARUSE, Yui AuthorDate: 2023-01-25 10:23:38 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-25 10:23:38 +0900 merge revision(s) df6b72b8ff7af16a56fa48f3b4abb1d8850f4d1c: [Backport #19348] Avoid checking interrupt when loading iseq MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The interrupt check will unintentionally release the VM lock when loading an iseq. And this will cause issues with the `debug` gem's [`ObjectSpace.each_iseq` method](https://github.com/ruby/debug/blob/0fcfc28acae33ec1c08068fb7c33703cfa681fa7/ext/debug/iseq_collector.c#L61-L67), which wraps iseqs with a wrapper and exposes their internal states when they're actually not ready to be used. And when that happens, errors like this would occur and kill the `debug` gem's thread: ``` DEBUGGER: ReaderThreadError: uninitialized InstructionSequence ┃ DEBUGGER: Disconnected. ┃ ["/opt/rubies/ruby-3.2.0/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/breakpoint.rb:247:in `absolute_path'", ┃ "/opt/rubies/ruby-3.2.0/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/breakpoint.rb:247:in `block in iterate_iseq'", ┃ "/opt/rubies/ruby-3.2.0/lib/ruby/gems/3.2.0/gems/debug-1.7.1/lib/debug/breakpoint.rb:246:in `each_iseq'", ... ``` A way to reproduce the issue is to satisfy these conditions at the same time: 1. `debug` gem calling `ObjectSpace.each_iseq` (e.g. [activating a `LineBreakpoint`](https://github.com/ruby/debug/blob/0fcfc28acae33ec1c08068fb7c33703cfa681fa7/lib/debug/breakpoint.rb#L246)). 2. A large amount of iseq being loaded from another thread (possibly through the `bootsnap` gem). 3. 1 and 2 iterating through the same iseq(s) at the same time. Because this issue requires external dependencies and a rather complicated timing setup to reproduce, I wasn't able to write a test case for it. But here's some pseudo code to help reproduce it: ```rb require "debug/session" Thread.new do 100.times do ObjectSpace.each_iseq do |iseq| iseq.absolute_path end end end sleep 0.1 load_a_bunch_of_iseq possibly_through_bootsnap ``` [Bug #19348] Co-authored-by: Peter Zhu --- compile.c | 2 +- vm_core.h | 1 + vm_insnhelper.c | 11 +++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) commit a20061cb1aa34b73bdbdfa7cba6cfc575a05ca38 Author: NARUSE, Yui AuthorDate: 2023-01-24 17:41:17 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-24 17:41:35 +0900 merge revision(s) 72eb33066fa9e7dacb7470cd140b219abe37667e: [Backport #19320] Fix off-by-one error in rb_vm_each_stack_value Applying the following patch to test/erb/test_erb.rb and running that file will cause Ruby to crash on my machine (macOS 13.1 on M1 Pro): ``` --- a/test/erb/test_erb.rb +++ b/test/erb/test_erb.rb @@ -7,6 +7,12 @@ class TestERB < Test::Unit::TestCase class MyError < RuntimeError ; end + def setup + GC.auto_compact = true + GC.stress = true + GC.verify_compaction_references(expand_heap: true, toward: :empty) + end + ``` It crashes with the following log: ``` /Users/peter/src/ruby/lib/erb/compiler.rb:276: [BUG] Segmentation fault at 0x00000001083a8690 ... -- C level backtrace information ------------------------------------------- ... /Users/peter/src/ruby/build/ruby(rb_vm_each_stack_value+0xa8) [0x104cc3a44] ../vm.c:2737 /Users/peter/src/ruby/build/ruby(rb_vm_each_stack_value+0xa8) [0x104cc3a44] ../vm.c:2737 /Users/peter/src/ruby/build/ruby(check_stack_for_moved+0x2c) [0x104b272a4] ../gc.c:5512 /Users/peter/src/ruby/build/ruby(gc_compact_finish) ../gc.c:5534 /Users/peter/src/ruby/build/ruby(gc_sweep_compact) ../gc.c:8653 /Users/peter/src/ruby/build/ruby(gc_sweep) ../gc.c:6196 /Users/peter/src/ruby/build/ruby(has_sweeping_pages+0x0) [0x104b19c54] ../gc.c:9568 /Users/peter/src/ruby/build/ruby(gc_rest) ../gc.c:9570 ``` This crash happens because it's reading the VALUE at sp. But since sp points to the top of the stack, it's reading the VALUE above the top of the stack, which is causing this segfault. Fixes [Bug #19320] --- vm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c0df0a85dec77a09308caddb1e1efd4d38fbf7b8 Author: NARUSE, Yui AuthorDate: 2023-01-20 17:01:47 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-20 17:01:47 +0900 merge revision(s) ed6fbb79e19bf401db0e85447fee955fd10a25c7: [Backport #19339] Fix crash when defining ivars on special constants [Bug #19339] --- test/ruby/test_variable.rb | 6 ++++++ vm_insnhelper.c | 5 +++++ 2 files changed, 11 insertions(+) commit 373e62248c9dceb660e95f1cf05fa2a4a469cd64 Author: NARUSE, Yui AuthorDate: 2023-01-20 12:24:24 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-20 12:24:24 +0900 merge revision(s) f7b72462aa27716370c6bea1f2c240983aca9a55: [Backport #19356] String#bytesplice should return self In Feature #19314, we concluded that the return value of String#bytesplice should be changed from the source string to the receiver, because the source string is useless and confusing when extra arguments are added. This change should be included in Ruby 3.2.1. --- string.c | 4 ++-- test/ruby/test_string.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 6a8fcb50210f8414d76968298576e39b9fa82562 Author: NARUSE, Yui AuthorDate: 2023-01-19 21:52:47 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-19 21:52:47 +0900 merge revision(s) 3be2acfafd3b3c6168e2266c7c6561d143d7ae5c: [Backport #19327] Fix re-embedding of strings during compaction The reference updating code for strings is not re-embedding strings because the code is incorrectly wrapped inside of a `if (STR_SHARED_P(obj))` clause. Shared strings can't be re-embedded so this ends up being a no-op. This means that strings can be moved to a large size pool during compaction, but won't be re-embedded, which would waste the space. --- gc.c | 16 +++++++++------- string.c | 12 ++++++++---- test/ruby/test_gc_compact.rb | 8 ++++---- 3 files changed, 21 insertions(+), 15 deletions(-) commit 98abe4a0be09e0571104f4ca1b5655e353910aa0 Author: Peter Zhu AuthorDate: 2022-12-31 00:31:50 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-19 15:50:58 +0900 Fix test when Ruby is verbose The test added in 90a80eb0 fails if Ruby is verbose, it outputs the following line to stderr: RUBY_GC_HEAP_INIT_SLOTS=100 (default value: 10000) commit 686b38f83e70b3e1796092c71dd0b7dc2206b118 Author: NARUSE, Yui AuthorDate: 2023-01-19 11:59:43 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-19 11:59:43 +0900 merge revision(s) d8ef0a98c670449b20436947f5ebbd327ed5ab0d: [Backport #19319] [Bug #19319] Fix crash in rb_str_casemap The following code crashes on my machine: ``` GC.stress = true str = "testing testing testing" puts str.capitalize ``` We need to ensure that the object `buffer_anchor` remains on the stack so it does not get GC'd. --- string.c | 2 ++ 1 file changed, 2 insertions(+) commit 1a2447ac9925e7794a7c5aa07960ad4de08e6aca Author: NARUSE, Yui AuthorDate: 2023-01-19 11:05:29 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-19 11:05:29 +0900 merge revision(s) 979dd02e2f0a70f3f30d47c6115780d8fac6147e: [Backport #19262] Check if the argument is Thread::Backtrace::Location object [Bug #19262] --- ast.c | 5 +++++ test/ruby/test_ast.rb | 6 ++++++ 2 files changed, 11 insertions(+) commit 08ae7f64dc52c2b61e451d6e79ebdae73d482677 Author: NARUSE, Yui AuthorDate: 2023-01-19 09:31:47 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-19 09:31:47 +0900 merge revision(s) 273dca3aed7989120d57f80c789733d4bc870ffe: [Backport #19248] Fix undefined behavior in shape.c Under strict aliasing, writing to the memory location of a different type is not allowed and will result in undefined behavior. This was happening in shape.c due to `rb_id_table_lookup` writing to the memory location of `VALUE *` that was casted from a `rb_shape_t **`. This was causing test failures when compiled with LTO. Fixes [Bug #19248] Co-Authored-By: Alan Wu --- shape.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit d7fb4629b4058eb86be03760e6b9f1f272e44147 Author: NARUSE, Yui AuthorDate: 2023-01-18 20:15:28 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-18 20:15:28 +0900 merge revision(s) 837ef8911c638c3e2bdb6af710de7c1fac7b5f90: [Backport #19305] Fix crash in TracePoint c_call for removed method trace_arg->id is the ID of the original method of an aliased method. If the original method is removed, then the lookup will fail. We should use trace_arg->called_id instead, which is the ID of the aliased method. Fixes [Bug #19305] --- test/ruby/test_settracefunc.rb | 23 +++++++++++++++++++++++ vm_trace.c | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) commit 44a3043d1182acf3147935d9c1564028b5538417 Author: NARUSE, Yui AuthorDate: 2023-01-18 20:14:43 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-18 20:14:43 +0900 merge revision(s) 2bbf63dd867fe3d349b1758805ad4421f2d772ab: [Backport #19298] Remove lib/mjit/instruction.rb This was accidentally re-introduced in f6620037ba1477d2c337d7b511f094d6d0fbb69c. [Bug #19298] --- lib/mjit/instruction.rb | 2162 ----------------------------------------------- 1 file changed, 2162 deletions(-) delete mode 100644 lib/mjit/instruction.rb commit 1fb5eb5740d4c4f1fc34a4a50bc0482eac27b545 Author: NARUSE, Yui AuthorDate: 2023-01-18 18:56:51 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-18 18:56:51 +0900 merge revision(s) aeddc19340c7116d48fac3080553fbb823857d16: [Backport #19316] YJIT: Save PC and SP before calling leaf builtins (#7090) Previously, we did not update `cfp->sp` before calling the C function of ISEQs marked with `Primitive.attr! "inline"` (leaf builtins). This caused the GC to miss temporary values on the stack in case the function allocates and triggers a GC run. Right now, there is only a few leaf builtins in numeric.rb on Integer methods such as `Integer#~`. Since these methods only allocate when operating on big numbers, we missed this issue. Fix by saving PC and SP before calling the functions -- our usual protocol for calling C functions that may allocate on the GC heap. [Bug #19316] --- test/ruby/test_yjit.rb | 16 ++++++++++++++++ yjit/src/codegen.rs | 4 ++++ 2 files changed, 20 insertions(+) commit f7e9b79f815e08e0a29fff11f77466f4ffb92520 Author: NARUSE, Yui AuthorDate: 2023-01-18 18:56:09 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-18 18:56:09 +0900 merge revision(s) 4959e01932cf6c4d3e5e90d3e0b4fa780f754fa6: [Backport #19271] common.mk: Do not invoke outdate-bundled-gems by default If baseruby is available (and its version is different from one being built) when compiling ruby, tool/outdate-bundled-gems.rb (which is invoked by `make install`) wrongly deletes debug.so and rbs_extension.so in .bundle/extension/*. This leads to a broken installation of ruby which lacks the libraries, which may make rubygems show the following warnings (in some additional complex conditions): ``` $ irb Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 irb(main):001:0> ``` According to some committers, tool/outdate-bundled-gems.rb is introduced for fixing a build issue, but the detail is not recorded. The issue seems to occur only when debug gem or rbs gem is updated, so it is difficult to fix the script so soon. Tentatively, this change stops invoking the script by default. This should be backported to ruby_3_2. Fixes [Bug #19271] --- common.mk | 1 - 1 file changed, 1 deletion(-) commit 97c32b49e2fe4de8b57ce05146e63b2aa64c7a44 Author: NARUSE, Yui AuthorDate: 2023-01-18 17:18:44 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-18 17:18:44 +0900 merge revision(s) 43ff0c2c488c80aaf83b486d45bcd4a92ebe3848: [Backport #19299] YJIT: Fix `yield` into block with >=30 locals on ARM It's a register spill issue. Fix by moving the Qnil fill snippet to after registers are released. [Bug #19299] --- test/ruby/test_yjit.rb | 14 ++++++++++++++ yjit/src/codegen.rs | 29 ++++++++++++++--------------- 2 files changed, 28 insertions(+), 15 deletions(-) commit 52ea5ea9906c3a96c60a68e01b303672602a6832 Author: NARUSE, Yui AuthorDate: 2023-01-18 17:17:27 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-18 17:17:27 +0900 merge revision(s) 291a4098cf649c027cb50c16b872455f26ad1dfb,5be0d42d2c4dc765230c76738289560f9ee37f09: [Backport #19296] Add missing assertion --- test/ruby/test_time.rb | 3 +++ 1 file changed, 3 insertions(+) [Bug #19296] Precheck bits of time components --- test/ruby/test_time.rb | 15 +++++++++++++++ time.c | 14 ++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) commit 057eff7663a0a4bc95a4799336a2bc14ca2480f0 Author: NARUSE, Yui AuthorDate: 2023-01-18 17:08:23 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-18 17:08:23 +0900 merge revision(s) eab7f4623fbf0488e828b75843d70c8e02dc8aa5: [Backport #19336] Return 0 if there is no CFP on the EC yet StackProf uses a signal handler to call `rb_profile_frames`. Signals are delivered to threads randomly, and can be delivered after the thread has been created but before the CFP has been established on the EC. This commit returns early if there is no CFP to use. Here is some info from the core files we are seeing. Here you can see the CFP on the current EC is 0x0: ``` (gdb) p ruby_current_ec $20 = (struct rb_execution_context_struct *) 0x7f3481301b50 (gdb) p ruby_current_ec->cfp $21 = (rb_control_frame_t *) 0x0 ``` Here is where VM_FRAME_CFRAME_P gets a 0x0 CFP: ``` 6 VM_FRAME_CFRAME_P (cfp=0x0) at vm_core.h:1350 7 VM_FRAME_RUBYFRAME_P (cfp=) at vm_core.h:1350 8 rb_profile_frames (start=0, limit=2048, buff=0x7f3493809590, lines=0x7f349380d590) at vm_backtrace.c:1587 ``` Down the stack we can see this is happening after thread creation: ``` 19 0x00007f3495bf9420 in () at /lib/x86_64-linux-gnu/libpthread.so.0 20 0x000055d531574e55 in thread_start_func_2 (th=, stack_start=) at thread.c:676 21 0x000055d531575b31 in thread_start_func_1 (th_ptr=) at thread_pthread.c:1170 22 0x00007f3495bed609 in start_thread (arg=) at pthread_create.c:477 23 0x00007f3495b12133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 ``` --- vm_backtrace.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 89cd61890fe78e0491708f87a5df678b03fda8a3 Author: NARUSE, Yui AuthorDate: 2023-01-17 11:21:00 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-17 11:21:00 +0900 merge revision(s) 542e984d82fa25098eb15398d716d907acc52b93: [Backport #19292] [Bug #19292] Re-initialize tm when wday or yday is not set --- test/ruby/test_time.rb | 3 ++- time.c | 31 ++++++++++++++++++++++--------- 2 files changed, 24 insertions(+), 10 deletions(-) commit 49cf0896a2934547c0764aadaec021fb37a2e96f Author: NARUSE, Yui AuthorDate: 2023-01-17 11:20:40 +0900 Commit: NARUSE, Yui CommitDate: 2023-01-17 11:20:40 +0900 merge revision(s) 90a80eb076429978e720e11fb17a3cbb96de3454: [Backport #19284] Fix integer underflow when using HEAP_INIT_SLOTS There is an integer underflow when the environment variable RUBY_GC_HEAP_INIT_SLOTS is less than the number of slots currently in the Ruby heap. [Bug #19284] --- gc.c | 25 +++++++++++++------------ test/ruby/test_gc.rb | 5 +++++ 2 files changed, 18 insertions(+), 12 deletions(-) commit a7d467a792c644a7260d6560ea2002fdb8ff6de3 Author: NARUSE, Yui AuthorDate: 2022-12-29 15:59:52 +0900 Commit: NARUSE, Yui CommitDate: 2022-12-29 15:59:52 +0900 merge revision(s) b726d60c986bf951d13e7a2ab5f5e58f58657b03: [Backport #19273] Fix [Bug 19273], set correct value to `outer_repeat` on `OP_REPEAT` (#7035) --- regexec.c | 2 +- test/ruby/test_regexp.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) commit 5c551ac59f9620901394a46dffda5a1833b9c4b0 Author: NARUSE, Yui AuthorDate: 2022-12-27 14:56:51 +0900 Commit: NARUSE, Yui CommitDate: 2022-12-27 14:56:51 +0900 merge revision(s) fc03ba50f1ff6c30f7c654f564b4dffbed0844ef: [Backport #19263] MJIT: Fix JIT code for multiple values in a single case [Bug #19263] --- lib/ruby_vm/mjit/compiler.rb | 2 +- test/ruby/test_mjit.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) commit a528908271c678360d2d8ca232c178e7cdd340b4 Author: NARUSE, Yui AuthorDate: 2022-12-25 15:55:25 +0900 Commit: NARUSE, Yui CommitDate: 2022-12-25 15:55:25 +0900 v3.2.0 commit 8f05e4f54bdb3bcf05574bd5f12e56f7e010c8a2 Author: David Rodríguez AuthorDate: 2022-12-25 04:42:50 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-25 05:55:36 +0900 Update Bundler to 2.4.1 & and RubyGems to 3.4.1 Notes: Merged: https://github.com/ruby/ruby/pull/7020 commit 3cbe37bd357464c0ce665770998b691cad022a24 Author: Nobuyoshi Nakada AuthorDate: 2022-12-25 00:43:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-25 00:43:27 +0900 Support new style diagnostic reports commit 4378de02f9c2c494ae1302c59625e2d126b23f3e Author: Nobuyoshi Nakada AuthorDate: 2022-12-24 11:21:28 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-24 23:49:27 +0900 Test of environment variables order for HOME on Windows commit d0f5dc9eac78ecade459b740ed08795c8df6d129 Author: Lars Kanis AuthorDate: 2022-12-19 05:05:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-24 23:48:47 +0900 Windows: Prefer USERPROFILE over HOMEPATH HOMEPATH is set to "\WINDOWS\system32" when running per "runas" session. This directory is not writable by ordinary users, leading to errors with many ruby tools. Also config files in the home directory are not recognized. Still keeping HOME at first which is not used by native Windows, but by ruby specs and by MSYS2 environment. Notes: Merged: https://github.com/ruby/ruby/pull/6992 commit 6a55b4601a50144a4c98571a79395b85465fda7f Author: Nobuyoshi Nakada AuthorDate: 2022-12-23 18:55:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-24 22:55:12 +0900 Add Dir.home test with encoding commit d6ce4180a5b4dacbac895c9911031a6df6c61136 Author: Lars Kanis AuthorDate: 2022-12-19 05:05:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-24 22:54:23 +0900 Windows: Fix encoding of Dir.home Dir.home returns an UTF-8 string since ruby-3.0, but the actual encoding of the bytes was CP_ACP or CP_OEMCP. That led to invalid bytes when calling Dir.home with an unicode username. Notes: Merged: https://github.com/ruby/ruby/pull/6991 commit 18c1ca8f4c0748905d5cedb6c044df507ea8ad6a Author: Nobuyoshi Nakada AuthorDate: 2022-12-24 20:18:10 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-24 20:18:10 +0900 Fix test-syntax-suggest order Prepare for test-syntax-suggest after other tests finished. commit 3fb1d49a1f1289142f3da8e876133bd7f459e4f6 Author: NARUSE, Yui AuthorDate: 2022-12-24 18:59:45 +0900 Commit: NARUSE, Yui CommitDate: 2022-12-24 18:59:45 +0900 Revert "darwin: resolve rb symbols from ext by `-flat_namespace` to see libruby transitively" This reverts commit c5eefb7f37db2865891298dd1a1e60dff09560ad. Flat namespace breaks gems with C extention if its symbols conflict with ohter libraries. commit b9332ac8e7126066ac4238443d63eaa4c06789f9 Author: Takashi Kokubun AuthorDate: 2022-12-24 18:13:40 +0900 Commit: GitHub CommitDate: 2022-12-24 18:13:40 +0900 MJIT: Cancel all on disastrous situations (#7019) I noticed this while running test_yjit with --mjit-call-threshold=1, which redefines `Integer#<`. When Ruby is monkey-patched, MJIT itself could be broken. Similarly, Ruby scripts could break MJIT in many different ways. I prepared the same set of hooks as YJIT so that we could possibly override it and disable it on those moments. Every constant under RubyVM::MJIT is private and thus it's an unsupported behavior though. Notes: Merged-By: k0kubun commit d521c9e5a7ed603f8f1aaa9a9a66c3cc80599b0c Author: Hiroshi SHIBATA AuthorDate: 2022-12-24 17:54:21 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-24 17:54:21 +0900 cosmetic changes for external link commit 8263feaa22bce11f173c53305bcd43eb702cc5fc Author: Hiroshi SHIBATA AuthorDate: 2022-12-24 17:20:09 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-24 17:20:09 +0900 Added some of new features for RubyGems 3.4 and Bundler 2.4 commit f6620037ba1477d2c337d7b511f094d6d0fbb69c Author: Hiroshi SHIBATA AuthorDate: 2022-12-22 08:20:23 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-24 16:57:07 +0900 Merge RubyGems-3.4.0 and Bundler-2.4.0 Notes: Merged: https://github.com/ruby/ruby/pull/6987 commit d5635dfe36588b04d3dd6065ab4e422f51629b11 Author: Nobuyoshi Nakada AuthorDate: 2022-12-24 11:27:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-24 11:29:11 +0900 Extract setup of environment variables commit 640dca9ae72e55028af812cc041bdaed1f5a2af4 Author: zverok AuthorDate: 2022-12-23 06:29:44 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-24 10:52:20 +0900 [DOC] Document AST.parse's keyword arguments Notes: Merged: https://github.com/ruby/ruby/pull/6996 commit c3c116f6a6b92d0224b35e7423959a7ab39ddc6b Author: Victor Shepelev AuthorDate: 2022-12-24 07:48:58 +0900 Commit: GitHub CommitDate: 2022-12-24 07:48:58 +0900 [DOC] Document new methods of IO::Buffer and Fiber::Scheduler (#7016) Co-authored-by: Samuel Williams Notes: Merged-By: ioquatix commit 11ad9a42d76ba785b2ec93f327469ead9b810ef4 Author: Samuel Williams AuthorDate: 2022-12-24 03:52:10 +0900 Commit: GitHub CommitDate: 2022-12-24 03:52:10 +0900 Fix missing handling of offset argument in `IO::Buffer` `pread` and `pwrite`. (#7012) Notes: Merged-By: ioquatix commit af4cd997a160c4eddc935dd384dbd0160d3160ce Author: Yusuke Endoh AuthorDate: 2022-12-20 01:20:21 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-24 03:19:45 +0900 sample/trick2022/03-mame/entry.rb: remove trailing spaces Notes: Merged: https://github.com/ruby/ruby/pull/7014 commit a8485291bbdbe3b8e867f59d2d77b7a22732e5a6 Author: Yusuke Endoh AuthorDate: 2022-12-19 22:32:48 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-24 03:19:45 +0900 test/test_trick.rb: Add tests for TRICK 2022 entries Notes: Merged: https://github.com/ruby/ruby/pull/7014 commit e8b0180974a1f51ae3894d3e055461a1037c778d Author: Yusuke Endoh AuthorDate: 2022-12-19 22:12:34 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-24 03:19:45 +0900 sample/trick2022/: adds the top-three entries of TRICK 2022 See https://github.com/tric/trick2022 for TRICK 2022. Notes: Merged: https://github.com/ruby/ruby/pull/7014 commit 1d3bfd804cdba027ab9ec79678692b607c43b798 Author: Takashi Kokubun AuthorDate: 2022-12-24 03:18:57 +0900 Commit: GitHub CommitDate: 2022-12-24 03:18:57 +0900 MJIT: Export fewer shape functions (#7007) Notes: Merged-By: k0kubun commit ee60756495b775c4e8fc93a57094ac4e4b83fa7f Author: NARUSE, Yui AuthorDate: 2022-12-24 02:24:55 +0900 Commit: GitHub CommitDate: 2022-12-24 02:24:55 +0900 Fix backtrace beyond _singtramp on macOS arm64 (#7015) * move ptrauth_strip logic into vm_dump.c * don't use _sigtramp special logic on arm64 Notes: Merged-By: nurse commit 1876cda972ea226ee85faf14dae6d047e145a4c6 Author: Peter Zhu AuthorDate: 2022-12-23 23:42:18 +0900 Commit: Peter Zhu CommitDate: 2022-12-24 01:21:14 +0900 Add tests for compacting shared arrays Notes: Merged: https://github.com/ruby/ruby/pull/7013 commit 7891f9407184ca6b4636092555d2546e3830c2ff Author: Peter Zhu AuthorDate: 2022-12-23 23:33:51 +0900 Commit: Peter Zhu CommitDate: 2022-12-24 01:21:14 +0900 Don't allow re-embedding frozen arrays Frozen arrays should not move from heap allocated to embedded because frozen arrays could be shared roots for other (shared) arrays. If the frozen array moves from heap allocated to embedded it would cause issues since the shared array would no longer know where to set the pointer in the shared root. Notes: Merged: https://github.com/ruby/ruby/pull/7013 commit d61a4cec618b8f5554398fff2ee4656763aeec4e Author: zverok AuthorDate: 2022-12-22 05:33:48 +0900 Commit: Victor Shepelev CommitDate: 2022-12-24 01:09:49 +0900 Docs: path: option for IO.new Notes: Merged: https://github.com/ruby/ruby/pull/6985 commit c621c6140ad8ace766e616f593f530041d860a23 Author: zverok AuthorDate: 2022-12-22 05:10:21 +0900 Commit: Victor Shepelev CommitDate: 2022-12-24 01:09:49 +0900 Docs: Fix problems with Fiber's docs * References to Scheduler (was outdated to SchedulerInterface) * References between new methods (storage, [], []=) * Storage's call-sequence (rendered confusingly) Notes: Merged: https://github.com/ruby/ruby/pull/6985 commit 5c04ff944ee6bdfb1c20acef20b7b0b1d5074440 Author: zverok AuthorDate: 2022-12-22 04:52:55 +0900 Commit: Victor Shepelev CommitDate: 2022-12-24 01:09:49 +0900 Docs: Fix small glitch in GC Notes: Merged: https://github.com/ruby/ruby/pull/6985 commit 64cdf1936a3952fbd43083de55244dd1b701cce6 Author: zverok AuthorDate: 2022-12-22 04:51:08 +0900 Commit: Victor Shepelev CommitDate: 2022-12-24 01:09:49 +0900 Docs: Separate documentation for UnboundMethod#== Notes: Merged: https://github.com/ruby/ruby/pull/6985 commit b3d57fdd64d2e88499bf718e64522dfce9358c48 Author: zverok AuthorDate: 2022-12-22 04:23:14 +0900 Commit: Victor Shepelev CommitDate: 2022-12-24 01:09:49 +0900 Docs: Update Struct docs about keyword initialization Notes: Merged: https://github.com/ruby/ruby/pull/6985 commit 91076b2c595a83fd55b49f907b2f9d84d264e5a2 Author: zverok AuthorDate: 2022-12-22 04:22:38 +0900 Commit: Victor Shepelev CommitDate: 2022-12-24 01:09:49 +0900 Docs: Fix rendering of SyntaxError#path Notes: Merged: https://github.com/ruby/ruby/pull/6985 commit 65920cfc40b47e9e037e0536b2b7de8f0cf30fc3 Author: Yusuke Endoh AuthorDate: 2022-12-19 17:15:31 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-23 23:48:18 +0900 addr2line.c: Strip pointer authentication We need to manually strip pointer authentication bits on M1 mac because libunwind leaks them out. Co-Authored-By: NARUSE, Yui Co-Authored-By: Yuta Saito Notes: Merged: https://github.com/ruby/ruby/pull/7011 commit 540b67da4d59ab7d9dbba8d5551944dad1ef8200 Author: Nobuyoshi Nakada AuthorDate: 2022-12-23 12:57:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-23 20:33:27 +0900 test-syntax-suggest is run by check now Notes: Merged: https://github.com/ruby/ruby/pull/7010 commit cae53842735237ccf71a13873fd0d1ae7f165582 Author: Nobuyoshi Nakada AuthorDate: 2022-12-23 12:02:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-23 20:33:27 +0900 Test syntax_suggest by `make check` Notes: Merged: https://github.com/ruby/ruby/pull/7010 commit 17b63ab6b1a8b9f5af99d3bcdb95a3bb19fdd576 Author: Nobuyoshi Nakada AuthorDate: 2022-12-23 20:27:58 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-23 20:31:25 +0900 [ruby/rdoc] Fix fragile tests When the temporary path is long enough, the formatter may fold the path and may hit a hyphen at the end of line, and miscounted. https://github.com/ruby/rdoc/commit/5f46479543 commit edb83dc3a2c374e880e8eb488152872152790e92 Author: Hiroshi SHIBATA AuthorDate: 2022-12-23 19:37:24 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-23 19:37:24 +0900 Revert the additional change from openssl-3.1.0 Revert "[ruby/openssl] pkey/ec: constify" This reverts commit d2cd903c85f38f42c6aefc6d97a1558f74d8d9db. commit eb8d4d7b5145849325985c00b810b8d75661d86e Author: Hiroshi SHIBATA AuthorDate: 2022-12-23 19:36:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-23 19:36:43 +0900 Revert the additional changes from net-http-0.3.2 commit d40064d1846b5835dff81e3f168c0c3a6c85e814 Author: Hiroshi SHIBATA AuthorDate: 2022-12-23 19:32:35 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-23 19:33:27 +0900 Revert the accidentally commit from erb-4.0.2 Revert "[ruby/erb] Use a ruby-lang alias on spec.email" This reverts commit fa64889abbad727d31bb927604d87679825dcd37. commit c5eefb7f37db2865891298dd1a1e60dff09560ad Author: Yuta Saito AuthorDate: 2022-12-23 13:58:45 +0900 Commit: Yuta Saito CommitDate: 2022-12-23 17:45:20 +0900 darwin: resolve rb symbols from ext by `-flat_namespace` to see libruby transitively This repairs the assumption, which many fat-gem maintainer expect, "An extension built with --disable-shared Ruby is loadable from --enable-shared Ruby". By default all references resolved to a dynamic library use "two-level namespace", which record the library name and symbol name for each resolution entry. On the other hand, `-flat_namespace` discards the library name information and resolves symbols "flatly". This behavior is useful for us to ignore which image (`ruby` executable or `libruby.dylib`) provides rb symbols at runtime. Notes: Merged: https://github.com/ruby/ruby/pull/7008 commit 2192f2e6bc361396f6a81ead955a0de31a2e164c Author: Shugo Maeda AuthorDate: 2022-12-23 14:48:35 +0900 Commit: Shugo Maeda CommitDate: 2022-12-23 14:48:35 +0900 Update bundled_gems for net-imap commit 4aeea3cc09b302862fd0d40ccfaf86a688681d82 Author: Hiroshi SHIBATA AuthorDate: 2022-12-23 13:10:26 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-23 14:07:02 +0900 Removed the needless test guard for syntax_suggest. It's resolved by https://github.com/ruby/ruby/commit/5bb43aeb890657ea586e3fabbf763e5b5670ffd7 Notes: Merged: https://github.com/ruby/ruby/pull/7006 commit bf3b376522705eaa01204618a15fce4c11dde42b Author: Nobuyoshi Nakada AuthorDate: 2022-12-23 12:29:53 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-23 13:05:26 +0900 [ruby/syntax_suggest] Remove debug print https://github.com/ruby/syntax_suggest/commit/4d53d31bc5 commit 5bb43aeb890657ea586e3fabbf763e5b5670ffd7 Author: Nobuyoshi Nakada AuthorDate: 2022-12-23 12:28:32 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-23 13:05:25 +0900 [ruby/syntax_suggest] Should not hardcode ruby name https://github.com/ruby/syntax_suggest/commit/0d5201b24d commit d2cd903c85f38f42c6aefc6d97a1558f74d8d9db Author: Nobuyoshi Nakada AuthorDate: 2022-12-23 11:18:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-23 11:42:15 +0900 [ruby/openssl] pkey/ec: constify https://github.com/ruby/openssl/commit/6fb3499a7b commit d2847009dbe1df52b3984ab994b1d5c2dadbb86e Author: Marco Costa AuthorDate: 2022-12-23 11:12:16 +0900 Commit: GitHub CommitDate: 2022-12-23 11:12:16 +0900 [DOC] Fix most of Range#cover? marked as verbatim Notes: Merged: https://github.com/ruby/ruby/pull/7005 Merged-By: nobu commit 792c50e917c6f7a7ed0f3ca8c64b47c005593b41 Author: Nobuyoshi Nakada AuthorDate: 2022-12-23 10:46:25 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-23 11:05:09 +0900 [ruby/rdoc] Clean up home directories for each test https://github.com/ruby/rdoc/commit/f067c174da commit 3ade713967de46665c3682af5696fd3b8dac1d86 Author: Hiroshi SHIBATA AuthorDate: 2022-12-23 09:42:51 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-23 09:51:52 +0900 Bump version to 1.6.2 commit ba342088009619f5df84116a0567e93bf6c9181b Author: Hiroshi SHIBATA AuthorDate: 2022-12-23 09:11:59 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-23 09:51:35 +0900 Bump up Racc parser version commit 6438f3cad684fc3ab5d4cd9950a01eabbfdfd289 Author: Johnny Willemsen AuthorDate: 2022-12-21 03:44:00 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-23 09:46:59 +0900 [ruby/racc] Removed old originalId in comment https://github.com/ruby/racc/commit/1dfbef8e99 commit 2d2baaf2f46d447f64f4f8fd7cfa3a2a7eba69ed Author: Kazuki Yamaguchi AuthorDate: 2022-12-23 08:52:24 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] Ruby/OpenSSL 3.1.0 https://github.com/ruby/openssl/commit/c2f7d775c6 commit a77830591919f06feaeb82585c229322d5e8836b Author: Kazuki Yamaguchi AuthorDate: 2022-12-23 08:49:36 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] Ruby/OpenSSL 3.0.2 https://github.com/ruby/openssl/commit/48b79333e0 commit 046aadb89b62d5ca5b8a0a061e5682f82defa22d Author: Kazuki Yamaguchi AuthorDate: 2022-12-23 08:40:26 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] Ruby/OpenSSL 2.2.3 https://github.com/ruby/openssl/commit/04acccd692 commit 75e7b85e3ec0b9724cce585d31c2c3c5aaa6a9a0 Author: Kazuki Yamaguchi AuthorDate: 2022-12-23 06:04:20 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] test/openssl/test_pkey.rb: allow failures in test_s_generate_parameters The root cause has been fixed by OpenSSL 3.0.6, but Ubuntu 22.04's OpenSSL package has not backported the patch yet. Reference: https://github.com/ruby/openssl/issues/492 https://github.com/ruby/openssl/commit/f2e2a5e5ed commit 0e11d2c3f8a74d2310efa67179b50c12acb3fa42 Author: Joe Truba AuthorDate: 2022-11-20 09:54:32 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] pkey/ec: check private key validity with OpenSSL 3 The behavior of EVP_PKEY_public_check changed between OpenSSL 1.1.1 and 3.0 so that it no longer validates the private key. Instead, private keys can be validated through EVP_PKEY_private_check and EVP_PKEY_pairwise_check. [ky: simplified condition to use either EVP_PKEY_check() or EVP_PKEY_public_check().] https://github.com/ruby/openssl/commit/e38a63ab3d commit 782777a803f990f688579db50c938d1a80a5f24a Author: Yuta Saito AuthorDate: 2022-10-31 20:07:57 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] Undefine `OpenSSL::SSL` for no socket platforms This fixes a linkage error about `ossl_ssl_type` on platforms which do not have socket, like WASI. Even before this patch, some items are disabled under `OPENSSL_NO_SOCK` since https://github.com/ruby/ruby/commit/ee22fad45d394818690c4a7586d7bb576ba67c56 However, due to some new use of OpenSSL::SSL::Socket over the past few years, the build under `OPENSSL_NO_SOCK` had been broken. This patch guards whole `OpenSSL::SSL` items by `OPENSSL_NO_SOCK`. [ky: adjusted to apply on top of my previous commit that removed the OpenSSL::ExtConfig, and added a guard to lib/openssl/ssl.rb.] https://github.com/ruby/openssl/commit/b0cfac6a96 commit e6ca6443299b48f906662b438e5267d876d21a1e Author: Kazuki Yamaguchi AuthorDate: 2022-12-23 04:34:43 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] ssl: remove OpenSSL::ExtConfig This module was introduced in 2015 for internal use within this library. Neither of the two constants in it is used anymore. I don't think we will be adding a new constant in the foreseeable future, either. OPENSSL_NO_SOCK is unused since commit https://github.com/ruby/openssl/commit/998d66712a78 (r55191). HAVE_TLSEXT_HOST_NAME is unused since commit https://github.com/ruby/openssl/commit/4eb4b3297a92. https://github.com/ruby/openssl/commit/eed3894bda commit a4b4997c69437e9d2ba09629d72284a4fb9defc5 Author: Kazuki Yamaguchi AuthorDate: 2022-12-23 04:06:12 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] test/openssl/test_ssl.rb: do not run SSL tests if not available https://github.com/ruby/openssl/commit/a3d230d4e0 commit dd6f3276e07f8f731a3bbcbdd58525ee6dd6581e Author: Kazuki Yamaguchi AuthorDate: 2022-10-17 17:33:37 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] ssl: disable NPN support on LibreSSL As noted in commit https://github.com/ruby/openssl/commit/a2ed156cc9f1 ("test/test_ssl: do not run NPN tests for LibreSSL >= 2.6.1", 2017-08-13), NPN is known not to work properly on LibreSSL. Disable NPN support on LibreSSL, whether OPENSSL_NO_NEXTPROTONEG is defined or not. NPN is less relevant today anyway. Let's also silence test suite when it's not available. https://github.com/ruby/openssl/commit/289f6e0e1f commit d6c16dd3e67ea5aa58a2f17dc8aa8aa977ded99a Author: Kazuki Yamaguchi AuthorDate: 2022-10-17 16:52:46 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] ssl: update TLS1_3_VERSION workaround for older LibreSSL versions The macro is now defined by default in LibreSSL 3.4+. Let's document it for future readers. https://github.com/ruby/openssl/commit/935698e9f9 commit 7c073cc11221eb85ac0c55ec38ff4c9da22ca26c Author: Kazuki Yamaguchi AuthorDate: 2022-10-17 16:50:10 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] test/openssl/test_asn1.rb: remove pend for unsupported LibreSSL versions Commit https://github.com/ruby/openssl/commit/af895bc5596b ("asn1: avoid truncating OID in OpenSSL::ASN1::ObjectId#oid", 2016-12-15) added this test case. The OBJ_obj2txt() issue was fixed by LibreSSL 2.5.1 (released in 2017) and is no longer relevant today. https://github.com/ruby/openssl/commit/6a188f1a29 commit 5591e4935da7b606f9d3047894eeea5d7e4a8864 Author: Kazuki Yamaguchi AuthorDate: 2022-10-17 16:50:01 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] test/openssl/test_asn1.rb: skip failing tests on LibreSSL 3.6.0 LibreSSL 3.6.0 expects the seconds part in UTCTime and GeneralizedTime to be always present. LibreSSL 3.6.0 release note [1] says: > - The ASN.1 time parser has been refactored and rewritten using CBS. > It has been made stricter in that it now enforces the rules from > RFC 5280. [1] https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.6.0-relnotes.txt https://github.com/ruby/openssl/commit/bbc540fe83 commit 6df4d272c3f74d3f9d206536add39b59ee1acb57 Author: Nobuyoshi Nakada AuthorDate: 2022-07-10 00:15:46 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] Suppress deprecation warnings by OpenSSL 3 https://github.com/ruby/openssl/commit/91657a7924 commit d7d1bb3e871108b787d67da1f0d11d317bdfacf7 Author: Nobuyoshi Nakada AuthorDate: 2022-07-09 00:17:25 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:15 +0900 [ruby/openssl] Constify when building with OpenSSL 3 https://github.com/ruby/openssl/commit/c0023822fe commit 2bc7eac8224d3a58381505d5296652594159017c Author: Nobuyoshi Nakada AuthorDate: 2022-07-09 23:32:44 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:14 +0900 [ruby/openssl] Check for functions with arguments https://github.com/ruby/openssl/commit/b67aaf925d commit ca7a6b15535f23b624452ab793d60ee277d8c73f Author: Joe Truba AuthorDate: 2022-11-26 07:30:01 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:14 +0900 [ruby/openssl] pkey/ec: fix ossl_raise() calls using cEC_POINT instead of eEC_POINT https://github.com/ruby/openssl/commit/b2e9f5e132 commit 13137236dc34e80402489de226d3671c87a24686 Author: Joe Truba AuthorDate: 2022-11-20 06:46:49 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-12-23 09:39:14 +0900 [ruby/openssl] raise when EC_POINT_cmp or EC_GROUP_cmp error instead of returning true https://github.com/ruby/openssl/commit/e1e8f3cebe commit fe2bcd352899cd402091c2815846d17a0eb1369b Author: Takashi Kokubun AuthorDate: 2022-12-23 09:33:44 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-23 09:35:07 +0900 Check `added` for the second sub! properly Even if the first sub! modifies `news`, when `added` is empty, it always ended up skipping `File.write("NEWS.md", news)` because of the `next`. This commit fixes the problem. commit 7d700a9f5df32718a9376d53e023a5a9787c0afa Author: Koichi Sasada AuthorDate: 2022-12-23 03:13:24 +0900 Commit: Koichi Sasada CommitDate: 2022-12-23 08:32:57 +0900 debug.gem v1.7.1 Notes: Merged: https://github.com/ruby/ruby/pull/6995 commit dc8c5bafcf3afe478710a8f93b8638fcbf510f1f Author: Nobuyoshi Nakada AuthorDate: 2022-12-23 06:06:31 +0900 Commit: GitHub CommitDate: 2022-12-23 06:06:31 +0900 Clean intermediate source file in `TestMJIT#test_jit_failure` (#6994) Notes: Merged-By: k0kubun commit 7e8fa06022a9e412e3f8e6c8b6f0ba1909f648d5 Author: Jeremy Evans AuthorDate: 2022-12-21 05:44:11 +0900 Commit: Jeremy Evans CommitDate: 2022-12-23 04:50:26 +0900 Always issue deprecation warning when calling Regexp.new with 3rd positional argument Previously, only certain values of the 3rd argument triggered a deprecation warning. First step for fix for bug #18797. Support for the 3rd argument will be removed after the release of Ruby 3.2. Fix minor fallout discovered by the tests. Co-authored-by: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/6976 commit 4f73de67edc18207148fa311eff8f463ac873981 Author: Peter Zhu AuthorDate: 2022-12-23 03:16:55 +0900 Commit: Peter Zhu CommitDate: 2022-12-23 03:16:55 +0900 Fix typo in array.c We should be using the size of RArray and not RString for arrays. commit 98675ac09cf7bc204b708faea1874b0b0610f309 Author: Alan Wu AuthorDate: 2022-12-23 03:15:04 +0900 Commit: GitHub CommitDate: 2022-12-23 03:15:04 +0900 [DOC] IO#read doesn't always read in binary mode When `maxlen` is `nil`, it uses the data mode of the stream. For example in the following: ```ruby File.binwrite("a.txt", "\r\n\r") p File.open("a.txt", "rt").read # "\n\n" p File.open("a.txt", "rt").read(3) # "\r\n\r" ``` Note, this newline translation is _not_ specific to Windows. Notes: Merged: https://github.com/ruby/ruby/pull/6982 Merged-By: XrXr commit bba2bfc97512014134ea1c172e7a077bddebdbad Author: Alan Wu AuthorDate: 2022-12-22 02:34:08 +0900 Commit: Alan Wu CommitDate: 2022-12-23 03:10:22 +0900 [DOC] encodings.rdoc: universal_newline reacts to \r It wasn't clear that the mode also translates "\r" to "\n". Notes: Merged: https://github.com/ruby/ruby/pull/6981 commit 95a1d1fde8fb13d6b7bd6d63864d3bae8b34b0b0 Author: Yusuke Endoh AuthorDate: 2022-12-22 22:41:10 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-23 00:32:35 +0900 addr2line.c: Support DW_FORM_rnglistx Notes: Merged: https://github.com/ruby/ruby/pull/6993 commit 53c82a6ce4c90bca5212c2d533014af47c6a5b4e Author: Yusuke Endoh AuthorDate: 2022-12-22 22:39:04 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-23 00:32:35 +0900 addr2line.c: Implement DW_AT_*_base ... and add code to parse the sections of .debug_addr_base and .debug_rnglists_base. Notes: Merged: https://github.com/ruby/ruby/pull/6993 commit 515f816b7f3985e0cfa889a574c3b93274d50b6f Author: Yusuke Endoh AuthorDate: 2022-12-22 22:34:34 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-23 00:32:35 +0900 addr2line.c: Support DW_FORM_strx* forms Notes: Merged: https://github.com/ruby/ruby/pull/6993 commit 5234f99b76689e7cf711961a737efd4de863460a Author: Yusuke Endoh AuthorDate: 2022-12-22 22:33:06 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-23 00:32:35 +0900 addr2line.c: Support DW_FORM_addrx* forms ... and add VAL_addr value type Notes: Merged: https://github.com/ruby/ruby/pull/6993 commit 303e11697dab49a3522712cdc0b4d34af1dc6bfc Author: Yusuke Endoh AuthorDate: 2022-12-22 22:29:39 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-23 00:32:35 +0900 addr2line.c: Keep .debug_str_offsets and .debug_addr sections as well clang generates DWARF with the sections Notes: Merged: https://github.com/ruby/ruby/pull/6993 commit d7388f720c706d94f21ee4e169678a71c73ce37c Author: Peter Zhu AuthorDate: 2022-12-22 05:09:27 +0900 Commit: Peter Zhu CommitDate: 2022-12-22 23:23:40 +0900 Fix buffer overrun with auto-compact for shapes The following script crashes: ```ruby GC.auto_compact = true GC.stress = true class Foo def initialize @a = @b = @c = 0 end def add_ivars @d = @e = @f = 0 end end ary = 1_000.times.map { Foo.new } ary.each { |f| f.add_ivars } ``` This is because in rb_grow_iv_list, it first calls rb_ensure_iv_list_size to allocate the buffer (and also unsets the embed bit) then rb_shape_transition_shape_capa to get the new shape. However, auto-compact can trigger in rb_shape_transition_shape_capa which would re-embed the object since it doesn't have the new shape yet. This causes a crash as the object is now embedded but has a non-embed shape which would cause the object to have a buffer overrun. Notes: Merged: https://github.com/ruby/ruby/pull/6986 commit d1d61cabbc332790c0d53fea01f51d52a3489670 Author: Yusuke Endoh AuthorDate: 2022-12-22 20:37:40 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-22 20:37:40 +0900 addr2line.c: Fix another indexing bug commit ebd6b5d826b1a04b20e477f54723aa5c545cbf69 Author: Yusuke Endoh AuthorDate: 2022-12-22 20:26:32 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-22 20:28:03 +0900 addr2line.c: Fix indexing bug commit e61e4ae60b1858254051de1e7e90f47185e31491 Author: Nobuyoshi Nakada AuthorDate: 2022-12-22 15:59:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-22 19:27:27 +0900 Refactor `reg_extract_args` to return regexp if given commit 78826ad4868c56964d0c47cf37f0100565a5b997 Author: Yusuke Endoh AuthorDate: 2022-12-22 00:51:46 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-22 18:57:06 +0900 addr2info.c: Make it work with --enable-yjit Background: GCC 12 generates DWARF 5 with .debug_rnglists, while rustc generates DWARF 4 with .debug_ranges. The previous logic always used .debug_rnglists if there is the section. However, we need to refer .debug_ranges for DWARF 4. This change keeps DWARF version of the current compilation unit and use a proper section depending on the version. Notes: Merged: https://github.com/ruby/ruby/pull/6980 commit c827d724b767a4624b9a3a00c61f181aaf6aef7e Author: Yusuke Endoh AuthorDate: 2022-12-21 22:18:48 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-22 18:57:06 +0900 addr2line.c: Support "Line Number Program Header" in DWARF 5 Notes: Merged: https://github.com/ruby/ruby/pull/6980 commit 2445a4c5b705e6a4bc5113c25d8a6684d0a1df82 Author: Yusuke Endoh AuthorDate: 2022-12-21 22:13:22 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-22 18:57:06 +0900 addr2line.c: Keep .debug_line_str section as well ... and properly support DW_FORM_line_strp. This is a prepartion to support DWARF 5. Notes: Merged: https://github.com/ruby/ruby/pull/6980 commit fe7190a8c19bb56ca0aefed368402af1547dd09a Author: Hiroshi SHIBATA AuthorDate: 2022-12-22 17:47:34 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-22 17:48:22 +0900 [ruby/optparse] Bump version to 0.3.1 https://github.com/ruby/optparse/commit/2a1e157ae1 commit 298176f23acb6a79ec6bca6767547bf7d7162dfd Author: Kazuki Tsujimoto AuthorDate: 2022-12-22 16:20:23 +0900 Commit: Kazuki Tsujimoto CommitDate: 2022-12-22 16:20:23 +0900 NEWS.md: Update power_assert version commit 454c00723a24916daeedde993a8429ab508576d3 Author: Nobuyoshi Nakada AuthorDate: 2022-12-21 23:17:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-22 15:51:00 +0900 Share argument parsing in `Regexp#initialize` and `Regexp.linear_time?` Notes: Merged: https://github.com/ruby/ruby/pull/6988 commit bb4cbd0803c3297ad036008adc7a01159ce44e1e Author: Takashi Kokubun AuthorDate: 2022-12-22 15:46:15 +0900 Commit: GitHub CommitDate: 2022-12-22 15:46:15 +0900 Put RubyVM::MJIT::Compiler under ruby_vm directory (#6989) [Misc #19250] Notes: Merged-By: k0kubun commit 186b5c0086a3b7b02b19f58aeda09016ee1c3d52 Author: Takashi Kokubun AuthorDate: 2022-12-22 14:49:30 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-22 14:49:30 +0900 Revert "Update bundled gems list at 2022-12-22" This reverts commit 89a66f20d8701f30f3d9952ae62a02fdefcd166b. commit 1e193c78d20e567c8eaeedf56b728adb9e0aaf7b Author: Jeremy Evans AuthorDate: 2022-12-22 14:05:08 +0900 Commit: Jeremy Evans CommitDate: 2022-12-22 14:05:08 +0900 Clarify NEWS entry for Bug #16889 commit 4213f42555a62b565ff99e0ad3e7d3c7f5495180 Author: Jeremy Evans AuthorDate: 2022-12-22 14:02:43 +0900 Commit: GitHub CommitDate: 2022-12-22 14:02:43 +0900 Make sure TracePoint#binding returns nil for c_call/c_return events This makes sure the method returns nil for these events, as described in NEWS, even if the TracePoint could create a binding. Notes: Merged: https://github.com/ruby/ruby/pull/6984 Merged-By: jeremyevans commit ae455a129e97709d7fd8b11c1e5c3245f4738528 Author: zverok AuthorDate: 2021-12-31 03:52:42 +0900 Commit: Koichi Sasada CommitDate: 2022-12-22 13:37:58 +0900 [DOC] Update TracePoint.allow_reentry docs Adjust call-seq to mention block, and add examples and explanations. Notes: Merged: https://github.com/ruby/ruby/pull/5380 commit b7bb14b96e7e1923d91787fa5a9ca2e4053431b1 Author: Kazuki Tsujimoto AuthorDate: 2022-12-22 13:05:09 +0900 Commit: Kazuki Tsujimoto CommitDate: 2022-12-22 13:05:09 +0900 Update documentation about Time#deconstruct_keys commit 4e6c44e297a7b504f6390446e2e499a7a97a5363 Author: Nobuyoshi Nakada AuthorDate: 2022-12-22 12:48:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-22 12:48:11 +0900 [DOC] Fix the paragraph about PRNG update commit e3847f39a199407059349f19a98cbe790d08f0cd Author: Hiroshi SHIBATA AuthorDate: 2022-12-22 12:27:09 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-22 12:27:09 +0900 Added the missing word with 1e1d7047fcc commit 1e1d7047fcc741dae66b29c611004d722ad087c9 Author: Hiroshi SHIBATA AuthorDate: 2022-12-22 12:25:00 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-22 12:25:00 +0900 Introduce GH releases for default gems and bundled gems commit 2811d9d224645ea714c3d20ef3d0e6a6661d441f Author: Yusuke Endoh AuthorDate: 2022-12-18 19:18:35 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-18 19:18:35 +0900 NEWS.md: Tweak "Constant lookup when defining a class/module" commit dd338ae124182b445c688666769cd8b7930ad88c Author: Yusuke Endoh AuthorDate: 2022-12-18 18:48:02 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-18 18:48:02 +0900 NEWS.md: Fix typos commit 937299ede1a996efa0992b8a8cfb4a5f830b0e5c Author: Yusuke Endoh AuthorDate: 2022-12-18 18:47:19 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-18 18:47:19 +0900 NEWS.md: Fix a typo commit 89a66f20d8701f30f3d9952ae62a02fdefcd166b Author: git[bot] AuthorDate: 2022-12-22 11:34:24 +0900 Commit: git[bot] CommitDate: 2022-12-22 11:34:24 +0900 Update bundled gems list at 2022-12-22 commit 5b85e4040e130777ab1652a1cbfcbfa170bcc799 Author: Kazuki Tsujimoto AuthorDate: 2022-12-22 11:12:59 +0900 Commit: Kazuki Tsujimoto CommitDate: 2022-12-22 11:12:59 +0900 Update power_assert to 2.0.3 commit 67ef3cd3ccdaeb1310a550f62a8a23606fb3bced Author: Takashi Kokubun AuthorDate: 2022-12-22 09:56:41 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-22 09:56:41 +0900 Skip a flaky Ractor test for mswin commit 99cee85775bc5656b942bf4e1b0568a8f40addcd Author: Ufuk Kayserilioglu AuthorDate: 2022-12-22 09:27:38 +0900 Commit: GitHub CommitDate: 2022-12-22 09:27:38 +0900 Add copy with changes functionality for Data objects (#6766) Implements [Feature #19000] This commit adds copy with changes functionality for `Data` objects using a new method `Data#with`. Since Data objects are immutable, the only way to change them is by creating a copy. This PR adds a `with` method for `Data` class instances that optionally takes keyword arguments. If the `with` method is called with no arguments, the behaviour is the same as the `Kernel#dup` method, i.e. a new shallow copy is created with no field values changed. However, if keyword arguments are supplied to the `with` method, then the copy is created with the specified field values changed. For example: ```ruby Point = Data.define(:x, :y) point = Point.new(x: 1, y: 2) point.with(x: 3) # => # ``` Passing positional arguments to `with` or passing keyword arguments to it that do not correspond to any of the members of the Data class will raise an `ArgumentError`. Co-authored-by: Alan Wu Notes: Merged-By: k0kubun commit 398aaed2f0e56a81c5c15cc1126b6bbba79ffec0 Author: Nobuyoshi Nakada AuthorDate: 2022-12-22 00:33:44 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-22 00:34:21 +0900 Fix the case trailer without newline cf0b413ef8b794ef6e7436f22fd5a998050dada9 commit 98fbebf110f0802fd6c72e48eb9d9a6c40878e40 Author: Nobuyoshi Nakada AuthorDate: 2022-12-21 23:59:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-22 00:01:18 +0900 [DOC] Fix typo commit 172dc98c94d1b0356c14e60dfcc4ba1ed2c7ed16 Author: BurdetteLamar AuthorDate: 2022-12-21 06:10:51 +0900 Commit: Peter Zhu CommitDate: 2022-12-21 23:17:19 +0900 [ruby/net-http] Adding links to references https://github.com/ruby/net-http/commit/71bae5c0fe commit 276b84f8ed1639d22df072c622e0a5d501bf8c5f Author: BurdetteLamar AuthorDate: 2022-12-21 01:52:26 +0900 Commit: Peter Zhu CommitDate: 2022-12-21 23:17:19 +0900 [ruby/net-http] Adding links to references https://github.com/ruby/net-http/commit/e4df80f299 commit 86f0128efe687a9db2756c9902b4a28f26981b1b Author: BurdetteLamar AuthorDate: 2022-12-20 02:38:02 +0900 Commit: Peter Zhu CommitDate: 2022-12-21 23:17:18 +0900 [ruby/net-http] Adding links to references https://github.com/ruby/net-http/commit/df5a554fa8 commit 6af6857ecfd5d67e5e9125c7ace0900475481275 Author: Soutaro Matsumoto AuthorDate: 2022-12-21 22:11:51 +0900 Commit: GitHub CommitDate: 2022-12-21 22:11:51 +0900 Set up RBS_SKIP_TESTS (#6862) * Set up RBS_SKIP_TESTS Notes: Merged-By: soutaro commit befc99c00813568973a6330b2101e27184aab509 Author: Nobuyoshi Nakada AuthorDate: 2022-12-21 12:52:44 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-21 20:48:51 +0900 [DOC] tool/update-NEWS-refs.rb: Align footnotes commit c7c006cc68573cea356253cb1cc2c428d83fdf6c Author: Nobuyoshi Nakada AuthorDate: 2022-12-21 02:06:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-21 20:48:51 +0900 [DOC] tool/update-NEWS-refs.rb: Remove extra brackets Surrounding with brackets is just a convention for the bugs tracker links. commit cc4c28ec2efa71b1c8afb4ce11409ad7b5ca1c95 Author: Akinori MUSHA AuthorDate: 2022-12-21 19:13:15 +0900 Commit: Akinori MUSHA CommitDate: 2022-12-21 19:13:15 +0900 Make Enumerartor.product return nil when called with a block commit 308ccbaeb2c1c0e78d59c0411ddbeede8d2324f0 Author: Akinori MUSHA AuthorDate: 2022-12-21 18:19:19 +0900 Commit: Akinori MUSHA CommitDate: 2022-12-21 18:19:19 +0900 Make product consistently yield an array of N elements instead of N arguments Inconsistency pointed out by @mame: ``` >> Enumerator.product([1], [2], [3]).to_a => [[1, 2, 3]] >> Enumerator.product([1], [2]).to_a => [[1, 2]] >> Enumerator.product([1]).to_a => [1] >> Enumerator.product().to_a => [nil] ``` Got fixed as follows: ``` >> Enumerator.product([1], [2], [3]).to_a => [[1, 2, 3]] >> Enumerator.product([1], [2]).to_a => [[1, 2]] >> Enumerator.product([1]).to_a => [[1]] >> Enumerator.product().to_a => [[]] ``` This was due to the nature of the N-argument funcall in Ruby. commit 684fa46ee68dd7f1f07d4f7f65861d6875736122 Author: Hiroshi SHIBATA AuthorDate: 2022-12-21 18:57:34 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-21 18:57:37 +0900 Removed empty section commit e894ff5ec18ff42d90b7977317d1bcaecd51f186 Author: Hiroshi SHIBATA AuthorDate: 2022-12-21 14:19:17 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-21 18:57:36 +0900 Update bundled_gems commit 1a24442193fe437e761e941d1ae0923d45fbb92f Author: Nobuyoshi Nakada AuthorDate: 2022-12-21 15:18:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-21 15:18:34 +0900 test/socket/test_addrinfo.rb: Suppress Errno::EACCES on Windows commit 9f42ee3e529759dc18a92ed4d3bbd0612787d8fd Author: Nobuyoshi Nakada AuthorDate: 2022-12-21 14:32:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-21 14:34:40 +0900 [DOC] Fix formatting commit 1e989c49a823c7257040fdd1d712a06a5acd6a60 Author: Mau Magnaguagno AuthorDate: 2022-12-21 14:28:48 +0900 Commit: GitHub CommitDate: 2022-12-21 14:28:48 +0900 MJIT: Refactor Compiler#cast_offset (#6967) Subtract max value from offset when sign bit is set, without string operations. Notes: Merged-By: k0kubun commit 502ca37dde288d20fed6e6ea34f4ab3299de7777 Author: Nobuyoshi Nakada AuthorDate: 2022-12-21 14:07:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-21 14:09:12 +0900 [ruby/optparse] The encoding argument of `Regexp.new` has been ignored since 1.9 https://github.com/ruby/optparse/commit/766f567405 commit afd46429fcdb83aa9fa7c193ede40bff3f3ff151 Author: Yuta Saito AuthorDate: 2022-01-19 15:14:02 +0900 Commit: Yuta Saito CommitDate: 2022-12-21 11:19:23 +0900 tool/m4/ruby_wasm_tools.m4: force passing WASI_SDK_PATH when building for wasi Make the WASI_SDK_PATH variable mandatory when building for wasi host. This requirement prevents developers from being stuck due to unfriendly configuration's error message. Notes: Merged: https://github.com/ruby/ruby/pull/5464 commit 2b96119fc00a49813c169d811e43a49ba9833f5f Author: Nobuyoshi Nakada AuthorDate: 2022-12-21 08:34:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-21 09:48:42 +0900 [DOC] fix unintentional verbatim Notes: Merged: https://github.com/ruby/ruby/pull/6975 commit 47988e63d65098ce1e6484f03ae5e2ca42bd7963 Author: Sorah Fukumori AuthorDate: 2022-01-08 14:03:02 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-21 09:40:09 +0900 test_readline#test_without_tty: Use EnvUtil.rubybin `ruby` is not always available in certain build environments and configure options. Choose appropriate command line using EnvUtil. Notes: Merged: https://github.com/ruby/ruby/pull/5417 commit 33debffdd3aa0ef9752857530c125f0a889db970 Author: Benoit Daloze AuthorDate: 2022-12-21 07:02:25 +0900 Commit: Benoit Daloze CommitDate: 2022-12-21 07:05:56 +0900 Use "Fiber storage variables" consistently Notes: Merged: https://github.com/ruby/ruby/pull/6974 commit 4495dea153a097c59d56819bc827bebfbef5be3f Author: Benoit Daloze AuthorDate: 2022-12-21 06:10:37 +0900 Commit: Benoit Daloze CommitDate: 2022-12-21 07:05:56 +0900 Improve documentation for fiber-scoped variables * Especially around Enumerator. Notes: Merged: https://github.com/ruby/ruby/pull/6974 commit 39e70eef724d1c4b50a6ee894c35a3e60773671c Author: Peter Zhu AuthorDate: 2022-12-21 05:18:36 +0900 Commit: Peter Zhu CommitDate: 2022-12-21 05:18:36 +0900 [DOC] Fix formatting for GC.compact commit 9f4472cad76ced858e84095bd64089900265f4b4 Author: Peter Zhu AuthorDate: 2022-12-21 05:16:36 +0900 Commit: Peter Zhu CommitDate: 2022-12-21 05:16:36 +0900 [DOC] Escape all usages of GC RDoc was making every usage of the word "GC" link to the page for GC (which is the same page). commit 63fe03aa4e9bba62dec83e5b7927c47b9599eeff Author: Peter Zhu AuthorDate: 2022-12-21 05:09:14 +0900 Commit: Peter Zhu CommitDate: 2022-12-21 05:09:14 +0900 [DOC] Fix call-seq for GC methods RDoc parses the last arrow in the call-seq as the arrow for the return type. It was getting confused over the arrow in the hash. commit 790b3f7bbde1e1c9594c12e8d8ed8ae9718148f7 Author: Peter Zhu AuthorDate: 2022-12-21 05:07:11 +0900 Commit: Peter Zhu CommitDate: 2022-12-21 05:07:11 +0900 [DOC] Fix formatting for GC#latest_gc_info commit ae53986834d5220b779ed01bfa7e3f15a3f9b58f Author: Peter Zhu AuthorDate: 2022-12-21 05:06:06 +0900 Commit: Peter Zhu CommitDate: 2022-12-21 05:06:06 +0900 [DOC] Fix formatting for GC#latest_compact_info commit 0efa36ac06a14a3e2e0aca395fee6530c790bdf1 Author: Benoit Daloze AuthorDate: 2022-12-21 02:21:43 +0900 Commit: Benoit Daloze CommitDate: 2022-12-21 03:32:23 +0900 Ensure Fiber storage is only accessed from the Fiber it belongs to Notes: Merged: https://github.com/ruby/ruby/pull/6972 commit d557f17974384dde4ff2da021a1b38905a39bda2 Author: Benoit Daloze AuthorDate: 2022-12-21 02:10:57 +0900 Commit: Benoit Daloze CommitDate: 2022-12-21 03:32:23 +0900 Use an experimental warning for Fiber#storage= Notes: Merged: https://github.com/ruby/ruby/pull/6972 commit 45175962a6fd74ab2e9ba92f1280f3987af25494 Author: Benoit Daloze AuthorDate: 2022-12-21 01:59:46 +0900 Commit: Benoit Daloze CommitDate: 2022-12-21 03:32:23 +0900 Never use the storage of another Fiber, that violates the whole design * See https://bugs.ruby-lang.org/issues/19078#note-30 Notes: Merged: https://github.com/ruby/ruby/pull/6972 commit 88040063d0ec8aa64e0de2a3afae7286ec53bfdb Author: Jean Boussier AuthorDate: 2022-12-20 17:25:05 +0900 Commit: Benoit Daloze CommitDate: 2022-12-21 03:17:57 +0900 Array#pack: document silent truncation Ref: [Feature #19245] At the very least this behavior should be documented. Notes: Merged: https://github.com/ruby/ruby/pull/6969 commit b2bf5d237ba5f2d1ebaf12d164064ce8c5b3628f Author: Takashi Kokubun AuthorDate: 2022-12-21 02:06:44 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-21 02:07:55 +0900 [ruby/irb] Version 1.6.2 https://github.com/ruby/irb/commit/a8ea9963c6 commit cf0b413ef8b794ef6e7436f22fd5a998050dada9 Author: Takashi Kokubun AuthorDate: 2022-12-21 02:05:58 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-21 02:07:54 +0900 [ruby/irb] Respect DLEXT to force-load debug.so (https://github.com/ruby/irb/pull/481) https://github.com/ruby/irb/commit/9d82778152 Co-authored-by: Nobuyoshi Nakada commit 80e56d1438724d37ca09f61e560f95c00599cdf3 Author: Peter Zhu AuthorDate: 2022-12-20 23:06:29 +0900 Commit: Peter Zhu CommitDate: 2022-12-21 01:32:51 +0900 Fix thrashing of major GC when size pool is small If a size pooll is small, then `min_free_slots < heap_init_slots` is true. This means that min_free_slots will be set to heap_init_slots. This causes `swept_slots < min_free_slots` to be true in a later if statement. The if statement could trigger a major GC which could cause major GC thrashing. Notes: Merged: https://github.com/ruby/ruby/pull/6971 commit c72a748b277af14e807aa3c4815a0287a6dce41c Author: Nobuyoshi Nakada AuthorDate: 2022-12-20 13:33:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-21 00:50:32 +0900 Win32: add dependency of revision.h When out-of-place build, and revision.h does not exist in the source directory, `VPATH` fallbacks to the current directory. commit 25635bbcee64f052e9d66298c25ff3005583bc58 Author: Yuta Saito AuthorDate: 2022-12-20 16:32:14 +0900 Commit: Yuta Saito CommitDate: 2022-12-21 00:10:27 +0900 Add links to Wasm port resources to NEWS.md Notes: Merged: https://github.com/ruby/ruby/pull/6968 commit 950dc1698910e329fe224720123292e27c9d0981 Author: Yusuke Endoh AuthorDate: 2022-12-17 19:04:55 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-17 19:04:55 +0900 Move Coverage-related items to Stdlib section commit c00f7cfb9b1dc7c79c7858c54205121aeb02bfcb Author: Yusuke Endoh AuthorDate: 2022-12-17 18:29:24 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-17 18:29:24 +0900 Move Socket-related changes to stdlib section commit 031bc21abba4c2e9ce38bb49c456478073e6672a Author: Nobuyoshi Nakada AuthorDate: 2022-12-19 22:43:51 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-20 17:40:19 +0900 expand-config.rb: search revision.h to extract release date commit 0ccc498e6e9f1f2884d72381d57c2f97cfa6e59a Author: Nobuyoshi Nakada AuthorDate: 2022-12-20 00:32:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-20 16:06:32 +0900 loadpath.c does not depend on revision.h since 947ebd0ac5ba commit 5c21cc39704f7e50b12f19c423e17ab275f74fbe Author: Mike Dalessio AuthorDate: 2022-12-19 06:59:03 +0900 Commit: Yuta Saito CommitDate: 2022-12-20 15:57:22 +0900 configure.ac: limit miniruby dep to when bundle_loader needs it See also e7bffe0 https://bugs.ruby-lang.org/issues/19239 Co-authored-by: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/6959 commit 20f9316f9dd5c77f96f1c08adb8da7e91d666f3b Author: Hiroshi SHIBATA AuthorDate: 2022-12-20 14:39:45 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 14:50:08 +0900 [ruby/syntax_suggest] Bump version to 1.0.2 https://github.com/ruby/syntax_suggest/commit/92ea00650a commit 2e7e153a2af1456515d43b6381e38534b069b1c2 Author: Nobuyoshi Nakada AuthorDate: 2022-12-19 14:10:58 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-20 14:12:38 +0900 [Bug #19242] Prohibit circular causes to be loaded Notes: Merged: https://github.com/ruby/ruby/pull/6960 commit 18ba89093a0b214cd89f1567c037c239f094496d Author: Hiroshi SHIBATA AuthorDate: 2022-12-20 09:43:53 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 Merge RubyGems/Bundler master Pick from https://github.com/rubygems/rubygems/commit/ba3adad4d80038ffd7bea015da2f11d3e8a2ff82 Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 870bcc96bab644656cd914b5061fcacc39db6557 Author: Mark Burns AuthorDate: 2022-12-19 02:55:53 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] fix https://github.com/rubygems/rubygems/pull/6147 when --parseable and --groups used together https://github.com/rubygems/rubygems/commit/3b0b95c509 Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 8eb66180137e3cba030d43fba21980efa5f58bb3 Author: Josef Šimánek AuthorDate: 2022-12-17 22:34:49 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Turn `--ext` option into string. Deprecate usage without explicit value. - this is preparation for onboarding Rust based extension gem generator https://github.com/rubygems/rubygems/commit/d32801bdbc Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit eaf0157dd1ad6cfbecedd9ff4158954418c1331c Author: Josef Šimánek AuthorDate: 2022-12-17 22:35:32 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Regenerate bundler man pages for December 2022. https://github.com/rubygems/rubygems/commit/17037fe32c Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit f270aa3eda535f3eb3f77912cf4a7a80f240b89e Author: Josef Šimánek AuthorDate: 2022-12-17 16:47:52 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Use safe Marshal deserialization for dependency API response. - adds Bundler#safe_load_marshal and Bundler::SAFE_MARSHAL_CLASSES listing safe classes to deserialize https://github.com/rubygems/rubygems/commit/e947c608cc Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit efd103f3e58fcf3aeb6c4a0d3dd9233448698231 Author: David Rodríguez AuthorDate: 2022-12-17 09:54:46 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Fix crash when showing some resolution errors If the conflict explanation includes empty ranges and version unions, Pub Grub was crashing. https://github.com/rubygems/rubygems/commit/eb360b77a2 Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 1db9bcfeaf27b8a8ced1ea5ad13f5c5774530a6b Author: David Rodríguez AuthorDate: 2022-12-17 09:20:14 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Fix crash when building resolution errors with OR requirements https://github.com/rubygems/rubygems/commit/8f287479bc Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 829348956476fc395f267b3f4a20ea67546551b2 Author: David Rodríguez AuthorDate: 2022-12-17 08:53:45 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Slight tweak to error message building Let Pub Grub decide how the constraint should be displayed. https://github.com/rubygems/rubygems/commit/4f651b6429 Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit beef72965e8d3e23bfc37a6da553d171357ec7f3 Author: Michael Siegfried AuthorDate: 2022-12-17 02:20:55 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Clarify flag description Prerelease versions are already considered in a certain circumstance, and the 'if updating' is redundant in the update case anyway. https://github.com/rubygems/rubygems/commit/8d68635f8c Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 32e72b78b31a80d308f9762913399d179ed96914 Author: Michael Siegfried AuthorDate: 2022-12-16 10:33:54 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Add tests for bundle lock Ensure `bundle lock` handles pre flag just like bundle update does. https://github.com/rubygems/rubygems/commit/b9e85e3157 Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 42972bdd9259c93c007ecb48987f0b617a5f21e0 Author: Michael Siegfried AuthorDate: 2022-11-17 11:00:26 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Test the public interface With `GemVersionPromoter#sort_versions` being so simple, we no longer need to reach into the class's internals to make private methods public in order to effectively test. We can just allow both cases to go through the main method. https://github.com/rubygems/rubygems/commit/6cbe891003 Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit c436f52fe81b90e09376c9b75ac4cb4a4b090e32 Author: Michael Siegfried AuthorDate: 2022-11-17 10:52:50 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Fix tiny typo https://github.com/rubygems/rubygems/commit/390e3e1ebd Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 2bc4f1dea5e663acba1d3c662390e8fc20bf6721 Author: Michael Siegfried AuthorDate: 2022-01-05 07:54:17 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Support for pre flag in `bundle update` Passing this flag allows bumping to the current version, even if that version is prerelease. This works in concert with the current flags. https://github.com/rubygems/rubygems/commit/a6409e3509 Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 1ee31f9d9dc8da4b0eb8ca39b79a6b270c6c2f2d Author: Michael Siegfried AuthorDate: 2022-11-17 09:19:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Clarify segment equality check https://github.com/rubygems/rubygems/commit/6624474c5a Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit e58d18bf23a4dff7f17c76e6a3c762896cc2d807 Author: Michael Siegfried AuthorDate: 2022-11-17 09:18:34 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Return early outside of loop The conditions are not dependent on each spec and can be checked once at the beginning of the method. https://github.com/rubygems/rubygems/commit/086bc9433f Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit c67f6c4dafbc868c36b3e021331fe0b1fac680f5 Author: Michael Siegfried AuthorDate: 2022-11-17 09:13:06 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Add question marks to interrogative methods https://github.com/rubygems/rubygems/commit/52da85e9ef Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 0a9544ce4ab86963dde0f3ad0b489b6a354cc8b3 Author: Eloy Espinaco AuthorDate: 2022-11-30 11:40:02 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Cleanup intermediate artifacts after installing built extensions https://github.com/rubygems/rubygems/commit/98b6a959bd Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 9d10b8393e6692d076d79d3b80c6eefb40a65b44 Author: David Rodríguez AuthorDate: 2022-12-16 21:37:28 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Use better name for variable The installed file not always have the `.so` extension. https://github.com/rubygems/rubygems/commit/6f6681bcb9 Co-authored-by: Eloy Espinaco Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 012ef7d1d035f2c5cdb06bea777c22d72acc78c9 Author: Eloy Espinaco AuthorDate: 2022-11-29 02:09:00 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Fix tests checking intermediate files Some tests check that the shared objects are actually installed, but checking an intermediate build file instead of the installed one. https://github.com/rubygems/rubygems/commit/ad526073b0 Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 3fd33590f624ff74d91c1d505f85653902764384 Author: David Rodríguez AuthorDate: 2022-12-15 20:14:40 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Fix crash when lockfile is missing dependencies We have a check for a corrupt lockfile right before installing. However, the check accounted for locked specs not satisfying locked dependencies, but not for locked specs missing for some locked dependencies. Instead of fixing this check, I decided to remove it in favor of automatically detecting the situation and re-resolve to automatically fix the lockfile rather than printing a warning but leave the problem there. https://github.com/rubygems/rubygems/commit/4a7a584252 Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 16b36a5b0c71afdcd125c530ee6fb809d4306822 Author: David Rodríguez AuthorDate: 2022-12-15 20:22:48 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Remove unused code https://github.com/rubygems/rubygems/commit/b88c43a28c Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit d1533f20f1c3f9b6f2324c62ab1460996cda174a Author: David Rodríguez AuthorDate: 2022-12-14 02:08:29 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Detect circular dependency errors https://github.com/rubygems/rubygems/commit/a8348d271d Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit 96aa1a1a9888720d73321013a5cb4de20381a974 Author: David Rodríguez AuthorDate: 2022-12-14 00:30:59 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Remove dead logic https://github.com/rubygems/rubygems/commit/950615405e Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit d1c210355b0c27fa5846cd0fd0c55358a7d5a0e0 Author: David Rodríguez AuthorDate: 2022-12-14 00:31:13 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-20 13:15:02 +0900 [rubygems/rubygems] Extract a variable for consistency https://github.com/rubygems/rubygems/commit/3f4b1c7a01 Notes: Merged: https://github.com/ruby/ruby/pull/6966 commit fe3dedb21a945063724502e96c21ed3682c61c18 Author: Yusuke Endoh AuthorDate: 2022-12-17 08:51:20 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-17 08:51:20 +0900 Prevent a "method redefined" warning commit 2013dd465811b6d01129f25af4fbe84002a2273f Author: Yusuke Endoh AuthorDate: 2022-12-17 08:40:36 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-17 08:40:36 +0900 Prevent warning "assigned but unused variable - initial_shape" commit e7915d6d7042c7945195289d882aa91e35dc9404 Author: Peter Zhu AuthorDate: 2022-12-20 01:44:00 +0900 Commit: Peter Zhu CommitDate: 2022-12-20 07:09:08 +0900 Fix misfire of compaction read barrier gc_compact_move incorrectly returns false when destination heap is full after sweeping. It returns false even if destination heap is different than source heap (returning false means that the source heap has finished compacting). This causes the source page to get locked, which causes a read barrier fire when we try to compact the source heap again. Notes: Merged: https://github.com/ruby/ruby/pull/6963 commit 650a20a3e1205f47224a987676cdbad7d826d597 Author: Takashi Kokubun AuthorDate: 2022-12-20 06:59:23 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-20 06:59:36 +0900 Re-enable test_ractor for YJIT This would be still flaky, but we want to make sure there's no YJIT-specific issue when Ruby 3.2 is released. We might skip it again after the release. commit 8275cad1e1646a2b301962313dc3e8ff1deb87b3 Author: Peter Zhu AuthorDate: 2022-12-20 01:21:16 +0900 Commit: Peter Zhu CommitDate: 2022-12-20 03:13:26 +0900 Fix buffer overrun when re-embedding objects We eagerly set the new shape of an object when moving an object during compaction. This new shape may have a different capacity than the current original shape capacity. This means that we cannot copy from the original buffer using size of the new capacity. Instead, we should use the ivar count (which is less than or equal to both the new and original capacities). Co-Authored-By: Matt Valentine-House Notes: Merged: https://github.com/ruby/ruby/pull/6962 commit b2f53dccbedd9f399bc4668eb02f26b2eafa6f5c Author: Mau Magnaguagno AuthorDate: 2022-12-20 00:44:23 +0900 Commit: GitHub CommitDate: 2022-12-20 00:44:23 +0900 YJIT: skip map in print_sorted_exit_counts (#6954) Array#sum accepts a block. Notes: Merged-By: maximecb commit 1482f0649e303c8bf11281268d3e1e6e2370c093 Author: Takashi Kokubun AuthorDate: 2022-12-20 00:26:21 +0900 Commit: GitHub CommitDate: 2022-12-20 00:26:21 +0900 YJIT: Improve the description about --enable-yjit (#6947) Notes: Merged-By: maximecb commit bcdc9cf1590caeda83c4e8f90f27a4a80b152e08 Author: Takashi Kokubun AuthorDate: 2022-12-20 00:19:56 +0900 Commit: GitHub CommitDate: 2022-12-20 00:19:56 +0900 YJIT: Make --yjit-stats always visible on --help (#6946) Notes: Merged-By: maximecb commit 1148636e3dfb3aa25485b6e5cf40c043df848c07 Author: Nobuyoshi Nakada AuthorDate: 2022-12-19 17:29:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-19 17:49:59 +0900 [ruby/irb] PTY module is platform dependent https://github.com/ruby/irb/commit/dbb3dc72ff commit 9761422f47f6c06b8aa332b7c941a5874319508a Author: Hiroshi SHIBATA AuthorDate: 2022-12-19 15:55:04 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-19 15:55:13 +0900 Added news entries for Bundler commit 1142bc875bc00d492046ecbf781f076a78e4b8c5 Author: Hiroshi SHIBATA AuthorDate: 2022-12-19 14:59:10 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-19 14:59:59 +0900 [ruby/did_you_mean] Bump version to 1.6.3 https://github.com/ruby/did_you_mean/commit/f7703add76 commit 2605ff79aa84a635d135c5892339483e337bbd03 Author: Yusuke Endoh AuthorDate: 2022-12-19 14:47:37 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-19 14:48:18 +0900 tool/update-NEWS-refs.rb: Accept non-redmine url links commit 9a48459393d27229759ea484ad5244b71fc4e614 Author: Hiroshi SHIBATA AuthorDate: 2022-12-19 14:20:08 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-19 14:22:18 +0900 Added notable changes for the default gems commit c41a7012ca79ad9bcf6f4c7b422caac82c99fb98 Author: Nobuyoshi Nakada AuthorDate: 2022-12-19 13:27:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-19 14:09:30 +0900 Use pthread API if the target platform doesn't support TLS attribute commit 4de514da383ef70d784e2ddded42e74375880996 Author: Takashi Kokubun AuthorDate: 2022-12-19 14:04:10 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-19 14:04:10 +0900 Revert "Mentioned https://github.com/ruby/ruby/pull/6086 to NEWS" This reverts commit 6229c02d6b895eda8c73efa8a41c73692d133a65. Nothing has been changed in RubyVM.stat on normal Ruby build. It seems confusing to say that something has been changed there. The flag is supposed to be enabled only by CRuby developers, and it's not efficient enough for public consumption. commit d64e10228da1cabf07c3d5f6289e219a12d4cd86 Author: Nobuyoshi Nakada AuthorDate: 2022-12-19 13:14:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-19 13:14:46 +0900 Fix guess_diff type `unsigned_time_t` has the same size as `time_t`, but it doesn't mean these types are same except for signedness. For instance, while `long` and `long long` has the same size and `time_t` is defined as the latter on 64bit OpenBSD, `unsigned_time_t` has been defined as `long`. commit df4820e749fbada28b622ccd36c3a1d542231705 Author: Hiroshi SHIBATA AuthorDate: 2022-12-19 12:10:02 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-19 12:10:02 +0900 Added some changes that are only exists on GitHub to NEWS commit 40ec3762d233de12a04bd6321fc32ef1affd7852 Author: Hiroshi SHIBATA AuthorDate: 2022-12-19 11:45:23 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-19 11:45:23 +0900 Mentioned https://github.com/ruby/date/pull/80 commit 289d99cc62985e9a8834e80a1da424c1bdbb4502 Author: Hiroshi SHIBATA AuthorDate: 2022-12-19 11:43:56 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-19 11:43:56 +0900 Merge Time class sections on NEWS commit 6229c02d6b895eda8c73efa8a41c73692d133a65 Author: Hiroshi SHIBATA AuthorDate: 2022-12-19 11:38:23 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-19 11:38:25 +0900 Mentioned https://github.com/ruby/ruby/pull/6086 to NEWS commit 63a9b72c171219db9310ee613a69d5bcc5926220 Author: Hiroshi SHIBATA AuthorDate: 2022-12-19 11:34:17 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-19 11:34:17 +0900 Removed empty section commit 08d21b4bd2000596160d62f28b840b53e26d738d Author: Hiroshi SHIBATA AuthorDate: 2022-12-19 10:39:05 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-19 10:50:21 +0900 [ruby/net-http] Bump version to 0.3.2 https://github.com/ruby/net-http/commit/b8bdb7248e commit 1998d979085bdcd2db25db76709dc49c3cd7fffb Author: Hiroshi SHIBATA AuthorDate: 2022-12-19 10:48:51 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-19 10:50:21 +0900 [ruby/date] Bump version to 3.3.3 https://github.com/ruby/date/commit/ea3644a7c4 commit 6073782627b8a4976cab232daab2350e36c21cdd Author: Samuel Williams AuthorDate: 2022-12-19 09:45:50 +0900 Commit: GitHub CommitDate: 2022-12-19 09:45:50 +0900 Disable SEH workaround on __MINGW64__ only. (#6957) Notes: Merged-By: ioquatix commit d4315284e9382caf264e66ecf890f5a45d85c5e3 Author: Alyssa Ross AuthorDate: 2019-01-21 21:10:53 +0900 Commit: git[bot] CommitDate: 2022-12-19 04:17:42 +0900 [rubygems/rubygems] Add bundle lock --update --bundler bundle lock --update can do everything that bundle update can do, but it doesn't actually install gems. This is especially useful for generating a lockfile on a machine that doesn't have the libraries available to be able to build native extensions. But, there was no parallel for bundle update --bundler. So let's add one. https://github.com/rubygems/rubygems/commit/7fc00bd2a5 commit ede7c035d58a3384b684051647aa56f258ecc286 Author: BurdetteLamar AuthorDate: 2022-12-18 08:09:50 +0900 Commit: git[bot] CommitDate: 2022-12-19 00:37:45 +0900 [ruby/net-http] Adding links to references https://github.com/ruby/net-http/commit/6dfe6f411a commit e7bffe0c4b8bebabc89e7440efffa43ee3e1123e Author: Mike Dalessio AuthorDate: 2022-12-18 03:43:24 +0900 Commit: Yuta Saito CommitDate: 2022-12-18 12:56:53 +0900 configure.ac: add miniruby to PREP when cross-compiling to darwin miniruby is used to resolve symbols in ext bundles https://bugs.ruby-lang.org/issues/19239 Co-authored-by: Yuta Saito Notes: Merged: https://github.com/ruby/ruby/pull/6944 commit b8cc0992c681de30d48e9c9bdb59721604c194b5 Author: Nobuyoshi Nakada AuthorDate: 2022-12-18 11:38:07 +0900 Commit: git[bot] CommitDate: 2022-12-18 11:58:51 +0900 [ruby/date] Extract `head_match_p` and abbreviated name length constants https://github.com/ruby/date/commit/3f666fa882 commit df49bf8150ee0a6ea2a06b0d2288863b2032c932 Author: Nobuyoshi Nakada AuthorDate: 2022-10-30 01:11:32 +0900 Commit: git[bot] CommitDate: 2022-12-18 11:58:50 +0900 [ruby/date] Consider the length of string to parse https://github.com/ruby/date/commit/3bfed83ce7 commit 49dc424ff304149a847880f7c6c19179668f94de Author: Nobuyoshi Nakada AuthorDate: 2022-10-30 01:10:16 +0900 Commit: git[bot] CommitDate: 2022-12-18 11:58:49 +0900 [ruby/date] Remove `extz_pats` table https://github.com/ruby/date/commit/945e26e243 commit 70c905963e71667c1c8b131f290f1d5436d104e0 Author: Nobuyoshi Nakada AuthorDate: 2022-10-30 01:09:38 +0900 Commit: git[bot] CommitDate: 2022-12-18 11:58:48 +0900 [ruby/date] Remove `merid_names` table https://github.com/ruby/date/commit/7fe2bd5f94 commit 6efeaabef05253cfce64f2d7c94be57cd7d4acd5 Author: Nobuyoshi Nakada AuthorDate: 2022-10-30 00:43:54 +0900 Commit: git[bot] CommitDate: 2022-12-18 11:58:47 +0900 [ruby/date] Match abbreviated day and month names with head of full names https://github.com/ruby/date/commit/a45f8f03c9 commit ea3d3c455294b2ad94c93cbe0e61921d71f1d9d3 Author: John Hawthorn AuthorDate: 2022-12-17 10:00:13 +0900 Commit: John Hawthorn CommitDate: 2022-12-18 07:51:49 +0900 Use FL_TEST_RAW in rb_hash_default_value We should always have a T_HASH here, so we can use FL_TEST_RAW to avoid checking whether we may have an immediate value. I expect this to be a very small performance improvement (perf stat ./miniruby benchmark/hash_aref_miss.rb shows a ~1% improvement). It also removes 9 instructions from rb_hash_default_value on x86_64. Notes: Merged: https://github.com/ruby/ruby/pull/6945 commit fbaa5db44a3b0622e2755fd00e0519a603aa9bcb Author: John Hawthorn AuthorDate: 2022-12-16 03:46:24 +0900 Commit: John Hawthorn CommitDate: 2022-12-18 07:51:49 +0900 Use a BOP for Hash#default On a hash miss we need to call default if it is redefined in order to return the default value to be used. Previously we checked this with rb_method_basic_definition_p, which avoids the method call but requires a method lookup. This commit replaces the previous check with BASIC_OP_UNREDEFINED_P and a new BOP_DEFAULT. We still need to fall back to rb_method_basic_definition_p when called on a subclasss of hash. | |compare-ruby|built-ruby| |:---------------|-----------:|---------:| |hash_aref_miss | 2.692| 3.531| | | -| 1.31x| Co-authored-by: Daniel Colson Co-authored-by: "Ian C. Anderson" Co-authored-by: Jack McCracken Notes: Merged: https://github.com/ruby/ruby/pull/6945 commit 632beec01f6a293aa03da06f5f0e6f9a7c22a8c5 Author: Mau Magnaguagno AuthorDate: 2022-12-18 06:06:50 +0900 Commit: GitHub CommitDate: 2022-12-18 06:06:50 +0900 MJIT: Refactor BitField dereference byte and bitmask (#6955) Prefer Array#unpack1 and Enumerable#sum. I think the bitmask formula ``2 ** @width - 1`` would be clearer, but not faster for such small integers. Notes: Merged-By: k0kubun commit 6e3bc6710324aeb75299c9edce305b6f7c22321c Author: Peter Zhu AuthorDate: 2022-12-17 23:18:54 +0900 Commit: Peter Zhu CommitDate: 2022-12-17 23:18:54 +0900 Hard crash when allocating in GC when RUBY_DEBUG Not all builds have RGENGC_CHECK_MODE set, so it should also crash when RUBY_DEBUG is set. commit 965f4259db5ad59045f778d4129f65e381aab004 Author: Peter Zhu AuthorDate: 2022-12-17 23:13:46 +0900 Commit: Peter Zhu CommitDate: 2022-12-17 23:16:26 +0900 Move check for GC to xmalloc and xcalloc Moves the check earlier to before we actually perform the allocation. commit 9da5a7e79dcaed9bf233f6a9a5df54c727f60c77 Author: Samuel Williams AuthorDate: 2022-12-17 16:43:21 +0900 Commit: GitHub CommitDate: 2022-12-17 16:43:21 +0900 Add tests for `Queue#pop` with fiber scheduler. (#6953) Notes: Merged-By: ioquatix commit 297df9240772a14141988aef63400e3988584ced Author: Jemma Issroff AuthorDate: 2022-12-16 06:38:53 +0900 Commit: Peter Zhu CommitDate: 2022-12-17 03:27:45 +0900 Clean up Ruby Shape API Make printing shapes better, use a struct instead of specific methods for each field on a shape. Co-Authored-By: Aaron Patterson Notes: Merged: https://github.com/ruby/ruby/pull/6942 commit 2ccf6e539458ef5c9f7a2d68163089d1d38e47f7 Author: Peter Zhu AuthorDate: 2022-12-16 23:06:26 +0900 Commit: Peter Zhu CommitDate: 2022-12-17 00:01:53 +0900 Don't allow allocating memory during GC Allocating memory (xmalloc and xrealloc) during GC could cause GC to trigger, which would crash with `[BUG] during_gc != 0`. This is an intermittent bug which could be hard to debug. This commit changes it so that any memory allocation during GC will emit a warning. When debug flags are enabled it will also cause a crash. Notes: Merged: https://github.com/ruby/ruby/pull/6921 commit 3d2eb7c9a6d473411bf2f08dcf9bbdbb59ea93cb Author: Nobuyoshi Nakada AuthorDate: 2022-11-18 13:47:10 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-16 22:52:59 +0900 [Feature #18033] [DOC] Add NEWS Notes: Merged: https://github.com/ruby/ruby/pull/4825 commit 3e49d62bc1696a7943e4407328714e32b539b007 Author: Nobuyoshi Nakada AuthorDate: 2022-11-18 14:18:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-16 22:52:59 +0900 [Feature #18033] Parse more strictly conformant with ISO-8601 * 4-digits or more is required as year * Minutes and seconds parts are not ommittable Notes: Merged: https://github.com/ruby/ruby/pull/4825 commit 635fc5f7fc88a2344118e7a156ff1b2644d0de0c Author: Nobuyoshi Nakada AuthorDate: 2022-11-18 14:17:10 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-16 22:52:59 +0900 [Feature #18033] Make more conformant with C standard Notes: Merged: https://github.com/ruby/ruby/pull/4825 commit 9515179d74f2d9934c1b2c69879d72254d940f85 Author: Nobuyoshi Nakada AuthorDate: 2021-10-23 23:32:25 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-16 22:52:59 +0900 [Feature #18033] Add `precision:` option Which limits the precision of subsecond. Defaulted to 9, that means nanosecond. Notes: Merged: https://github.com/ruby/ruby/pull/4825 commit 67c589afa05b1a894ed07969bec16647eff4e593 Author: Nobuyoshi Nakada AuthorDate: 2021-09-19 14:06:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-16 22:52:59 +0900 [Feature #18033] More strict checks Notes: Merged: https://github.com/ruby/ruby/pull/4825 commit 0a2f300a8a21e013e5debb639adba77fb18b5f40 Author: Nobuyoshi Nakada AuthorDate: 2022-12-16 11:55:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-16 22:52:59 +0900 [Feature #18033] Name a magic number Notes: Merged: https://github.com/ruby/ruby/pull/4825 commit 8c272f44816f098c1e057c72a47451efc8cd1739 Author: Nobuyoshi Nakada AuthorDate: 2021-09-05 00:24:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-16 22:52:59 +0900 [Feature #18033] Make Time.new parse time strings `Time.new` now parses strings such as the result of `Time#inspect` and restricted ISO-8601 formats. Notes: Merged: https://github.com/ruby/ruby/pull/4825 commit ee7a338d2b21a84d194015c3680bd2a95c0dd23f Author: Yusuke Endoh AuthorDate: 2022-12-16 04:04:41 +0900 Commit: Benoit Daloze CommitDate: 2022-12-16 20:15:50 +0900 Unconditionally warn "unknown pack/unpack directive" [Bug #19150] Notes: Merged: https://github.com/ruby/ruby/pull/6948 commit b9ea83fc1c95dba0f5548e6bd1b2fa40c6e65e2d Author: Yusuke Endoh AuthorDate: 2022-12-16 02:20:59 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-16 02:21:50 +0900 Update NEWS.md Regexp optimization and Wasm support are added. commit f2690be746ae0c79d7f1d9eb431eb7cf25761d95 Author: Hiroshi SHIBATA AuthorDate: 2022-12-16 15:47:49 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-16 15:48:00 +0900 Removed temporary workaround for syntax_suggest tags commit 11f3bef260258c4c8a05ea35ab3bf8a4998e1ff0 Author: Hiroshi SHIBATA AuthorDate: 2022-12-16 15:35:49 +0900 Commit: git[bot] CommitDate: 2022-12-16 15:36:03 +0900 [ruby/date] Bump version to 3.3.2 https://github.com/ruby/date/commit/7afd9d4615 commit 2cd22f9abd2e759a94452b54408a682fce78bdb9 Author: Hiroshi SHIBATA AuthorDate: 2022-12-16 15:34:16 +0900 Commit: git[bot] CommitDate: 2022-12-16 15:34:47 +0900 [ruby/logger] Bump version to 1.5.3 https://github.com/ruby/logger/commit/4e8d9e27fd commit 5e5f3f6bd1ca980685849ca9fc79ef685e1cd252 Author: Hiroshi SHIBATA AuthorDate: 2022-12-16 13:59:04 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-16 13:59:04 +0900 Followed up ad18d1297ed82aa9c38375532b0b709131cf1ae7 with tool/update-deps --fix commit ad18d1297ed82aa9c38375532b0b709131cf1ae7 Author: Akinori MUSHA AuthorDate: 2022-12-16 13:32:13 +0900 Commit: Akinori MUSHA CommitDate: 2022-12-16 13:32:13 +0900 Reject keyword arguments given to Enumerator::Product.new The use of keyword arguments should be reserved for future extension. commit d95ee114621c3cd34b4a34233888bbe0780f1c28 Author: Hiroshi SHIBATA AuthorDate: 2022-12-16 12:44:31 +0900 Commit: git[bot] CommitDate: 2022-12-16 12:45:11 +0900 [ruby/io-console] Bump version to 0.6.0 https://github.com/ruby/io-console/commit/441528e3eb commit 7e26ff7dc008ce14e34b43b8ee04a7aa09cd5886 Author: Hiroshi SHIBATA AuthorDate: 2022-12-16 11:34:34 +0900 Commit: git[bot] CommitDate: 2022-12-16 11:36:21 +0900 [ruby/io-wait] Bump version to 0.3.0 https://github.com/ruby/io-wait/commit/940ba319d3 commit dbf77d420d49e541c59f4c14b8e56d3e7af689aa Author: Koichi Sasada AuthorDate: 2022-12-16 11:12:37 +0900 Commit: Koichi Sasada CommitDate: 2022-12-16 11:12:37 +0900 surpress warning now `enc_table->list` is not a pointer. commit d6624db92608f65b5ba91de8a927916f7b096c5b Author: Hiroshi SHIBATA AuthorDate: 2022-12-15 13:55:37 +0900 Commit: git[bot] CommitDate: 2022-12-16 10:10:46 +0900 [ruby/irb] Prefer to use File.open instead of Kernel.open https://github.com/ruby/irb/commit/ed9e435a6b commit ae19ac5b5ba1e613a788addeb6d4d67fa65f6518 Author: Koichi Sasada AuthorDate: 2022-12-15 17:53:55 +0900 Commit: Koichi Sasada CommitDate: 2022-12-16 10:04:37 +0900 fixed encoding table This reduces global lock acquiring for reading. https://bugs.ruby-lang.org/issues/18949 Notes: Merged: https://github.com/ruby/ruby/pull/6935 commit 15b60bb1a48b98e2ba267c88551803df5f88355e Author: Hiroshi SHIBATA AuthorDate: 2022-12-16 09:13:32 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-16 09:13:35 +0900 Mentioned https://bugs.ruby-lang.org/issues/17767 on NEWS.md commit 14158f1f8c50069f076f99e08405c5006ca65df9 Author: Alan Wu AuthorDate: 2022-12-16 08:10:28 +0900 Commit: GitHub CommitDate: 2022-12-16 08:10:28 +0900 YJIT: Fix `obj.send(:call)` All the method call types need to handle argument shifting in case they're called by `.send`, and we weren't handling that in `OPTIMIZED_METHOD_TYPE_CALL`. Lack of shifting caused the stack size assertion in gen_leave() to fail. Discovered by Rails CI: https://buildkite.com/rails/rails/builds/91705#018516c4-f8f8-469e-bc2d-ddeb25ca8317/1920-2067 Diagnosed with help from `@eileencodes` and `@k0kubun`. Notes: Merged: https://github.com/ruby/ruby/pull/6943 Merged-By: XrXr commit e9ba3042e13313944fd2695731d0d7498532b80f Author: Jemma Issroff AuthorDate: 2022-12-16 03:42:24 +0900 Commit: Aaron Patterson CommitDate: 2022-12-16 06:41:47 +0900 Indicate if a shape is too_complex in ObjectSpace#dump Notes: Merged: https://github.com/ruby/ruby/pull/6939 commit c505448cdbd4cd1a52ed7108095f6738d29b3419 Author: Peter Zhu AuthorDate: 2022-12-16 03:54:07 +0900 Commit: Peter Zhu CommitDate: 2022-12-16 06:33:46 +0900 Move definition of SIZE_POOL_COUNT back to gc.h SIZE_POOL_COUNT is a GC macro, it should belong in gc.h and not shape.h. SIZE_POOL_COUNT doesn't depend on shape.h so we can have shape.h depend on gc.h. Co-Authored-By: Matt Valentine-House Notes: Merged: https://github.com/ruby/ruby/pull/6940 commit d5eafaed812bc683d5069154c5c9391ba98ea151 Author: BurdetteLamar AuthorDate: 2022-12-16 00:11:06 +0900 Commit: git[bot] CommitDate: 2022-12-16 06:33:19 +0900 [ruby/net-http] Enhanced RDoc for Net::HTTP https://github.com/ruby/net-http/commit/da626e4e42 commit 5e81cf8fd009d1aa74b49dce8ba174cd65776d15 Author: Peter Zhu AuthorDate: 2022-12-16 04:20:32 +0900 Commit: Peter Zhu CommitDate: 2022-12-16 05:27:38 +0900 Refactor to only attempt to move movable objects Moves check for gc_is_moveable_obj from try_move to gc_compact_plane. Co-Authored-By: Matt Valentine-House Notes: Merged: https://github.com/ruby/ruby/pull/6938 commit bfc66e07b7e0134dfa2041c311dc56941fe1caf0 Author: Matt Valentine-House AuthorDate: 2022-12-14 00:11:57 +0900 Commit: Peter Zhu CommitDate: 2022-12-16 05:27:38 +0900 Fix Object Movement allocation in GC When moving Objects between size pools we have to assign a new shape. This happened during updating references - we tried to create a new shape tree that mirrored the existing tree, but based on the root shape of the new size pool. This causes allocations to happen if the new tree doesn't already exist, potentially triggering a GC, during GC. This commit changes object movement to look for a pre-existing new tree during object movement, and if that tree does not exist, we don't move the object to the new pool. This allows us to remove the shape allocation from update references. Co-Authored-By: Peter Zhu Notes: Merged: https://github.com/ruby/ruby/pull/6938 commit 5fa608ed79645464bf80fa318d89745159301471 Author: Alan Wu AuthorDate: 2022-12-16 05:10:14 +0900 Commit: GitHub CommitDate: 2022-12-16 05:10:14 +0900 YJIT: Fix code GC freeing stubs with a trampoline (#6937) Stubs we generate for invalidation don't necessarily co-locate with the code that jump to the stub. Since we rely on co-location to keep stubs alive as they are in the outlined code block, it used to be possible for code GC inside branch_stub_hit() to free the stub that's its direct caller, leading us to return to freed code after. Stubs used to look like: ``` mov arg0, branch_ptr mov arg1, target_idx mov arg2, ec call branch_stub_hit jmp return_reg ``` Since the call and the jump after the call is the same for all stubs, we can extract them and use a static trampoline for them. That makes branch_stub_hit() always return to static code. Stubs now look like: ``` mov arg0, branch_ptr mov arg1, target_idx jmp trampoline ``` Where the trampoline is: ``` mov arg2, ec call branch_stub_hit jmp return_reg ``` Code GC can now free stubs without problems since we'll always return to the trampoline, which we generate once on boot and lives forever. This might save a small bit of memory due to factoring out the static part of stubs, but it's probably minor. [Bug #19234] Co-authored-by: Takashi Kokubun Notes: Merged-By: maximecb commit c0b14e128ff2114e9fc226a5bce117f7fb1d4a19 Author: Jemma Issroff AuthorDate: 2022-12-16 04:45:38 +0900 Commit: Aaron Patterson CommitDate: 2022-12-16 04:46:55 +0900 Update NEWS.md to include shapes and gc bitmap marking Notes: Merged: https://github.com/ruby/ruby/pull/6941 commit 8b0e44214c91ceddf6e7189348bad07e8983fca7 Author: Takashi Kokubun AuthorDate: 2022-12-16 03:45:40 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-16 03:45:41 +0900 Fix missing variables It was a bad copy-paste. commit e25beac145dd3b3943dcf270a2f0d7c7f8c12e60 Author: Takashi Kokubun AuthorDate: 2022-12-16 03:40:32 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-16 03:43:21 +0900 Enable Slack notifications on more Actions auto_request_review, codeql-analysis, scorecards don't have it either, but those are intentional. commit ef008d8946d004dc273a033ab399b0df6c71e4f3 Author: Takashi Kokubun AuthorDate: 2022-12-16 03:07:50 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-16 03:08:11 +0900 Partially revert "Update bundled_gems" This reverts the net-imap upgrade of commit e3ed6c07832edf2a95bae3bdd908cc3f5b65eebe. net-imap tests of test-bundled-gems seem to be broken https://github.com/ruby/ruby/actions/runs/3704473689/jobs/6277145052. commit c1ab6ddc9a6fa228caa5d26b118b54855051279c Author: Jemma Issroff AuthorDate: 2022-12-09 07:16:52 +0900 Commit: Aaron Patterson CommitDate: 2022-12-16 03:06:04 +0900 Transition complex objects to "too complex" shape When an object becomes "too complex" (in other words it has too many variations in the shape tree), we transition it to use a "too complex" shape and use a hash for storing instance variables. Without this patch, there were rare cases where shape tree growth could "explode" and cause performance degradation on what would otherwise have been cached fast paths. This patch puts a limit on shape tree growth, and gracefully degrades in the rare case where there could be a factorial growth in the shape tree. For example: ```ruby class NG; end HUGE_NUMBER.times do NG.new.instance_variable_set(:"@unique_ivar_#{_1}", 1) end ``` We consider objects to be "too complex" when the object's class has more than SHAPE_MAX_VARIATIONS (currently 8) leaf nodes in the shape tree and the object introduces a new variation (a new leaf node) associated with that class. For example, new variations on instances of the following class would be considered "too complex" because those instances create more than 8 leaves in the shape tree: ```ruby class Foo; end 9.times { Foo.new.instance_variable_set(":@uniq_#{_1}", 1) } ``` However, the following class is *not* too complex because it only has one leaf in the shape tree: ```ruby class Foo def initialize @a = @b = @c = @d = @e = @f = @g = @h = @i = nil end end 9.times { Foo.new } `` This case is rare, so we don't expect this change to impact performance of most applications, but it needs to be handled. Co-Authored-By: Aaron Patterson Notes: Merged: https://github.com/ruby/ruby/pull/6931 commit a3d552aedd190b0f21a4f6479f0ef1d2ce90189b Author: Jemma Issroff AuthorDate: 2022-12-09 06:48:48 +0900 Commit: Aaron Patterson CommitDate: 2022-12-16 03:06:04 +0900 Add variation_count on classes Count how many "variations" each class creates. A "variation" is a a unique ordering of instance variables on a particular class. This can also be thought of as a branch in the shape tree. For example, the following Foo class will have 2 variations: ```ruby class Foo ; end Foo.new.instance_variable_set(:@a, 1) # case 1: creates one variation Foo.new.instance_variable_set(:@b, 1) # case 2: creates another variation foo = Foo.new foo.instance_variable_set(:@a, 1) # does not create a new variation foo.instance_variable_set(:@b, 1) # does not create a new variation (a continuation of the variation in case 1) ``` We will use this number to limit the amount of shapes that a class can create and fallback to using a hash iv lookup. Co-Authored-By: Aaron Patterson Notes: Merged: https://github.com/ruby/ruby/pull/6931 commit f50aa19da63067c4b0de5964b6632df20202e71c Author: Peter Zhu AuthorDate: 2022-12-16 02:00:30 +0900 Commit: Peter Zhu CommitDate: 2022-12-16 02:00:30 +0900 Revert "Fix Object Movement allocation in GC" This reverts commit 9c54466e299aa91af225bc2d92a3d7755730948f. We're seeing crashes in Shopify CI after this commit. commit 9c54466e299aa91af225bc2d92a3d7755730948f Author: Matt Valentine-House AuthorDate: 2022-12-14 00:11:57 +0900 Commit: Peter Zhu CommitDate: 2022-12-15 23:04:30 +0900 Fix Object Movement allocation in GC When moving Objects between size pools we have to assign a new shape. This happened during updating references - we tried to create a new shape tree that mirrored the existing tree, but based on the root shape of the new size pool. This causes allocations to happen if the new tree doesn't already exist, potentially triggering a GC, during GC. This commit changes object movement to look for a pre-existing new tree during object movement, and if that tree does not exist, we don't move the object to the new pool. This allows us to remove the shape allocation from update references. Co-Authored-By: Peter Zhu Notes: Merged: https://github.com/ruby/ruby/pull/6926 commit e3ed6c07832edf2a95bae3bdd908cc3f5b65eebe Author: Kazuhiro NISHIYAMA AuthorDate: 2022-12-15 22:18:52 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-12-15 22:18:52 +0900 Update bundled_gems commit 49b0f3b024855efad66a386595eabd103058826d Author: Hiroshi SHIBATA AuthorDate: 2022-12-15 18:00:04 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-15 19:06:40 +0900 Merge RubyGems/Bundler master Pick from https://github.com/rubygems/rubygems/commit/084f7d1f21f6fc3e2bb685b7bda3653fb2891c6e Notes: Merged: https://github.com/ruby/ruby/pull/6936 commit 2581de112c1957dc4b5852e54337551dc8972c99 Author: Shugo Maeda AuthorDate: 2022-12-15 15:12:33 +0900 Commit: Shugo Maeda CommitDate: 2022-12-15 18:56:24 +0900 Disallow mixed usage of ... and */** [Feature #19134] Notes: Merged: https://github.com/ruby/ruby/pull/6934 commit 613fca01486e47dee9364a2fd86b5f5e77fe23c8 Author: Nobuyoshi Nakada AuthorDate: 2022-12-07 22:14:44 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-15 11:00:42 +0900 [Bug #19189] Fallback to the default "pkg-config" Notes: Merged: https://github.com/ruby/ruby/pull/6927 commit d20bd06a97555a4493458d866590107da6cb21f4 Author: Samuel Williams AuthorDate: 2022-12-15 07:37:01 +0900 Commit: GitHub CommitDate: 2022-12-15 07:37:01 +0900 Remove `require 'io/wait'` where it's no longer necessary. (#6932) * Remove `require 'io/wait'` as it's part of core now. * Update ruby specs using version gates. * Add note about why it's conditional. Notes: Merged-By: ioquatix commit 55f56eb66e9045943c4b61876b67bcd971666788 Author: Burdette Lamar AuthorDate: 2022-12-15 07:13:23 +0900 Commit: git[bot] CommitDate: 2022-12-15 07:13:28 +0900 [ruby/net-http] [DOC] New doc for responses classes (https://github.com/ruby/net-http/pull/91) https://github.com/ruby/net-http/commit/d394404402 commit d2b87456f0e0046630dea9dd7fae4ec6324e9e92 Author: Burdette Lamar AuthorDate: 2022-12-15 06:34:07 +0900 Commit: git[bot] CommitDate: 2022-12-15 06:34:12 +0900 [ruby/net-http] [DOC] Correct formatting in header.rb (https://github.com/ruby/net-http/pull/90) https://github.com/ruby/net-http/commit/d9d829ca53 commit 693c01d50917071433ff1bc7c4d8ce626a12c48e Author: Alan Wu AuthorDate: 2022-12-15 05:12:44 +0900 Commit: Alan Wu CommitDate: 2022-12-15 06:17:46 +0900 YJIT: Remove duplicate call to jit_prepare_routine_call() It's idempotent. Notes: Merged: https://github.com/ruby/ruby/pull/6930 commit 7a63114f8eaba7a1fe8a56a2e665703d9f9cfa8a Author: Peter Zhu AuthorDate: 2022-12-15 00:57:44 +0900 Commit: Peter Zhu CommitDate: 2022-12-15 03:21:46 +0900 Remove dead code in get_next_shape_internal If the rb_id_table_lookup fails, then res is not updated so it cannot be any value other than null. Notes: Merged: https://github.com/ruby/ruby/pull/6928 commit 71dd8b3caa6462e5c3dfd7059314459b51ebebc0 Author: Nobuyoshi Nakada AuthorDate: 2022-12-15 00:27:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-15 00:27:47 +0900 socket.rb - simplify check for the method commit 9eb19a02aea2f867972d2c28cab25e5df162091f Author: NARUSE, Yui AuthorDate: 2022-12-15 00:14:00 +0900 Commit: NARUSE, Yui CommitDate: 2022-12-15 00:14:00 +0900 Add more comments why CRuby uses __pioinfo commit 1df6d0e57828de9606613db940e32aa5b15eff18 Author: Jean Boussier AuthorDate: 2022-12-14 23:19:56 +0900 Commit: Jean Boussier CommitDate: 2022-12-14 23:53:41 +0900 objspace_dump.c: don't dump class of T_IMEMO They don't actually have a class. Notes: Merged: https://github.com/ruby/ruby/pull/6925 commit 3e5f8b2af305daee719dedf0162be1652e336447 Author: Burdette Lamar AuthorDate: 2022-12-14 22:54:59 +0900 Commit: git[bot] CommitDate: 2022-12-14 22:55:06 +0900 [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP (https://github.com/ruby/net-http/pull/89) https://github.com/ruby/net-http/commit/86b84eb307 commit 3e104b4419caecb9cd328f36169d993fe86d983c Author: Nobuyoshi Nakada AuthorDate: 2022-12-12 13:33:24 +0900 Commit: git[bot] CommitDate: 2022-12-14 19:11:07 +0900 [rubygems/rubygems] Clean up Indexer build files in tests https://github.com/rubygems/rubygems/commit/5479d99a1d commit 1a8d460534c7423091b790530bb3ead4840820c4 Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 17:47:44 +0900 Commit: git[bot] CommitDate: 2022-12-14 17:48:38 +0900 [ruby/securerandom] Bump version to 0.2.2 https://github.com/ruby/securerandom/commit/9e16b597f5 commit 95d7b5e2e933cf74cc29782ce33b6503e874890d Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 16:36:42 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-14 17:42:15 +0900 [ruby/resolv-replace] Bump version to 0.1.1 https://github.com/ruby/resolv-replace/commit/187e91d149 commit bec7deba306572a130e971b53a82270a7b1255c6 Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 16:44:47 +0900 Commit: git[bot] CommitDate: 2022-12-14 16:56:09 +0900 [ruby/date] Fixed wrong minimum version of Ruby Fixed https://github.com/ruby/date/issues/83 https://github.com/ruby/date/commit/9731a3e732 commit 15f5842a5fe57fdc9af28494609cbd2c9901d40f Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 16:51:37 +0900 Commit: git[bot] CommitDate: 2022-12-14 16:53:51 +0900 [ruby/English] Bump version to 0.7.2 https://github.com/ruby/English/commit/736f819b3b commit 0b67e435ed07a2febf7c7bd4911257a8f4836779 Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 16:38:17 +0900 Commit: git[bot] CommitDate: 2022-12-14 16:38:37 +0900 [ruby/abbrev] Bump version to 0.1.1 https://github.com/ruby/abbrev/commit/8c3debac5a commit c6f41a3255e55d6a30bc8ef557bfba1c87a7a868 Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 15:14:23 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-14 16:07:44 +0900 [ruby/time] Bump version to 0.2.1 https://github.com/ruby/time/commit/4cebf6de3c commit 989d993f5b03fbbf712554abe7f93bbeaad6298c Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 15:59:59 +0900 Commit: git[bot] CommitDate: 2022-12-14 16:01:19 +0900 [ruby/reline] Bump version to 0.3.2 https://github.com/ruby/reline/commit/3fbb7ec2ae commit 20c34f10d799c6b10a657a266db3aa6c51c850d3 Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 15:44:48 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-14 15:46:19 +0900 Use versioning sort for released version detection commit 307d2e0e91632a61cc492653a47027fbce7332d4 Author: Takashi Kokubun AuthorDate: 2022-12-14 15:40:13 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-14 15:40:13 +0900 Skip yet another flaky Ractor test commit 65dfe2eea80bef95c1bebc990780314f8118ec0d Author: Takashi Kokubun AuthorDate: 2022-12-14 15:25:47 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-14 15:26:24 +0900 Suppress the output of `if [ 'xyes' = xyes ];` code itself commit 9e4d7e99ce5686760ef2eab0d8b4f933c1c665dc Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 15:17:51 +0900 Commit: git[bot] CommitDate: 2022-12-14 15:18:10 +0900 [ruby/syslog] Bump version to 0.1.1 https://github.com/ruby/syslog/commit/a92b55b638 commit e2f4b8bf77ac29b2b94fc01d6d2d6365d5ff4345 Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 15:16:10 +0900 Commit: git[bot] CommitDate: 2022-12-14 15:16:29 +0900 [ruby/weakref] Bump version to 0.1.2 https://github.com/ruby/weakref/commit/5b5f79d8a6 commit abf9a321823184f73a5aaf3c8e25291e75f94a84 Author: Takashi Kokubun AuthorDate: 2022-12-14 15:06:02 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-14 15:07:42 +0900 Match ABI versions precisely "3.2.0+33" starts with "3.2.0+3", but it doesn't mean that they are the same ABI version. commit 2d5b723b2f69dda8c7cf0de69c25e16a1818b88c Author: Jimmy Miller AuthorDate: 2022-12-14 14:59:21 +0900 Commit: GitHub CommitDate: 2022-12-14 14:59:21 +0900 Fix build when enable_shared is on (#6924) Before this change, if enable_shared was true, the directory would have a suffix of -static and be deleted on each make install. This would cause a second make install to fail. Notes: Merged-By: k0kubun commit 87d32376d96d2c73083ac149df788edc16543c05 Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 14:53:44 +0900 Commit: git[bot] CommitDate: 2022-12-14 14:54:06 +0900 [ruby/readline-ext] Bump version to 0.1.5 https://github.com/ruby/readline-ext/commit/7af996f24b commit 0c27c1b3fca72e638a9d91705234e7c4b2e236d4 Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 14:37:25 +0900 Commit: git[bot] CommitDate: 2022-12-14 14:49:14 +0900 [ruby/open3] Bump version to 0.1.2 https://github.com/ruby/open3/commit/38904e204d commit 067747bb9a959808c47b32393170ca09e0214df4 Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 14:33:21 +0900 Commit: git[bot] CommitDate: 2022-12-14 14:35:48 +0900 [ruby/tempfile] Bump version to 0.1.3 https://github.com/ruby/tempfile/commit/99dc1f7058 commit 03927b565b9b6c8578c6a1c6f8e17e72ef82a05e Author: Hiroshi SHIBATA AuthorDate: 2022-12-14 12:57:04 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-14 12:57:30 +0900 Pin syntax_suggest-1.0.1 manually because it mixed dead_end tags commit fbedadb61f49ba3aaf4f07939b4fc7d0b8f8ac03 Author: TSUYUSATO Kitsune AuthorDate: 2022-12-14 12:57:14 +0900 Commit: GitHub CommitDate: 2022-12-14 12:57:14 +0900 Add `Regexp.linear_time?` (#6901) Notes: Merged-By: makenowjust commit fe3cbc61c805a860da3d41253879708ec86b6aa2 Author: HASUMI Hitoshi AuthorDate: 2022-12-14 09:00:27 +0900 Commit: git[bot] CommitDate: 2022-12-14 09:00:39 +0900 [ruby/reline] Fix a misparameter of RubyLex#set_input in termination_checker.rb (https://github.com/ruby/reline/pull/482) * Fix a misparameter of RubyLex#set_input in termination_checker.rb The keyword parameter `:context` of RubyLex#set_input became mandatory due to this commit: https://github.com/ruby/irb/pull/427/files#diff-612b926e42ed78aed1a889ac1944f7d22229b3a489cc08f837a7f75eca3d3399R51 Without my patch, tests that specify "--auto-indent" option in test_yamatanooroti fall into an infinite loop. This would need more explanation: - The infinite loop happens in Yamatanooroti::VTermTestCaseModule#sync see: https://github.com/aycabta/yamatanooroti/blob/v0.0.9/lib/yamatanooroti/vterm.rb#L60-L63 - `@pty_output.read_nonblock(1024)` actually returned an exception - However, this method doesn't anticipate such a situation - As a result, `startup_message` couldn't be resolved for good and the infinite loop happens - I think we would eventually have to fix yamatanooroti, though the inconsistency of the kwarg of "set_input" has to be fixed anyway The actual exception message that is raised but ignored silently in Yamatanooroti::VTermTestCaseModule#sync: ``` /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/bundler/gems/irb-d30c0c994351/lib/irb/ruby-lex.rb:51:in `set_input': missing keyword: :context (ArgumentError) from /home/hasumi/work/ruby/reline/test/reline/yamatanooroti/termination_checker.rb:23:in `initialize' from /home/hasumi/work/ruby/reline/test/reline/yamatanooroti/multiline_repl:43:in `new' from /home/hasumi/work/ruby/reline/test/reline/yamatanooroti/multiline_repl:43:in `block in
' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/3.1.0/optparse.rb:1576:in `block in parse_in_order' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/3.1.0/optparse.rb:1559:in `catch' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/3.1.0/optparse.rb:1559:in `parse_in_order' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/3.1.0/optparse.rb:1553:in `order!' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/3.1.0/optparse.rb:1659:in `permute!' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/3.1.0/optparse.rb:1684:in `parse!' from /home/hasumi/work/ruby/reline/test/reline/yamatanooroti/multiline_repl:174:in `
' ``` Backtrace of an inifinite loop: ``` /home/hasumi/work/ruby/yamatanooroti/lib/yamatanooroti/vterm.rb:59:in `sleep': Interrupt from /home/hasumi/work/ruby/yamatanooroti/lib/yamatanooroti/vterm.rb:59:in `block in sync' from /home/hasumi/work/ruby/yamatanooroti/lib/yamatanooroti/vterm.rb:58:in `loop' from /home/hasumi/work/ruby/yamatanooroti/lib/yamatanooroti/vterm.rb:58:in `sync' from /home/hasumi/work/ruby/yamatanooroti/lib/yamatanooroti/vterm.rb:28:in `start_terminal' from /home/hasumi/work/ruby/reline/test/reline/yamatanooroti/test_rendering.rb:653:in `test_suppress_auto_indent_just_after_pasted' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testcase.rb:871:in `run_test' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testcase.rb:566:in `block (2 levels) in run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/fixture.rb:276:in `block in create_fixtures_runner' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/fixture.rb:276:in `block in create_fixtures_runner' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/fixture.rb:257:in `run_fixture' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/fixture.rb:292:in `run_setup' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testcase.rb:564:in `block in run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testcase.rb:563:in `catch' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testcase.rb:563:in `run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testsuite.rb:124:in `run_test' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testsuite.rb:53:in `run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testsuite.rb:124:in `run_test' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testsuite.rb:53:in `run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testsuite.rb:124:in `run_test' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testsuite.rb:53:in `run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testsuite.rb:124:in `run_test' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/testsuite.rb:53:in `run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/ui/testrunnermediator.rb:67:in `run_suite' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/ui/testrunnermediator.rb:45:in `block (2 levels) in run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/ui/testrunnermediator.rb:102:in `with_listener' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/ui/testrunnermediator.rb:41:in `block in run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/ui/testrunnermediator.rb:39:in `catch' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/ui/testrunnermediator.rb:39:in `run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/ui/testrunner.rb:40:in `start_mediator' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/ui/testrunner.rb:25:in `start' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/ui/testrunnerutilities.rb:24:in `run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/autorunner.rb:458:in `block in run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/autorunner.rb:514:in `change_work_directory' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/autorunner.rb:457:in `run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit/autorunner.rb:66:in `run' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/test-unit-3.5.5/lib/test/unit.rb:518:in `block (2 levels) in ' ``` * Fix mock object of Context The previous commit solved one problem, but it found the next problem. Following error message got from the command `RELINE_STDERR_TTY=error.log rake test_yamatanooroti`: ``` Reline is used by 24373 /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/bundler/gems/irb-d30c0c994351/lib/irb/ruby-lex.rb:151:in `ripper_lex_without_warning': private method `local_variables' called for # (NoMethodError) lvars_code = generate_local_variables_assign_code(context&.local_variables || []) ^^^^^^^^^^^^^^^^^ from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/bundler/gems/irb-d30c0c994351/lib/irb/ruby-lex.rb:213:in `block in set_auto_indent' from /home/hasumi/work/ruby/reline/lib/reline/line_editor.rb:1721:in `process_auto_indent' from /home/hasumi/work/ruby/reline/lib/reline/line_editor.rb:1663:in `input_key' from /home/hasumi/work/ruby/reline/lib/reline.rb:346:in `block (3 levels) in inner_readline' from /home/hasumi/work/ruby/reline/lib/reline.rb:345:in `each' from /home/hasumi/work/ruby/reline/lib/reline.rb:345:in `block (2 levels) in inner_readline' from /home/hasumi/work/ruby/reline/lib/reline.rb:420:in `block in read_io' from /home/hasumi/work/ruby/reline/lib/reline.rb:390:in `loop' from /home/hasumi/work/ruby/reline/lib/reline.rb:390:in `read_io' from /home/hasumi/work/ruby/reline/lib/reline.rb:343:in `block in inner_readline' from /home/hasumi/work/ruby/reline/lib/reline.rb:341:in `loop' from /home/hasumi/work/ruby/reline/lib/reline.rb:341:in `inner_readline' from /home/hasumi/work/ruby/reline/lib/reline.rb:271:in `readmultiline' from /home/hasumi/.rbenv/versions/3.1.2/lib/ruby/3.1.0/forwardable.rb:238:in `readmultiline' from /home/hasumi/work/ruby/reline/test/reline/yamatanooroti/multiline_repl:185:in `
' ``` In irb/ruby-lex.rb, `context` is originally supposed to be an instance of IRB::Context with a public method `#local_variables`. However, the `context` in reline/test/reline/yamatanooroti/termination_checker.rb is a Struct that is a mock object with no `#local_variables` method. Thus, `rake test_yamatanooroti` no longer causes an infinite loop and an unexpected error with these two commits (at least in WITH_VTERM environment) * Name the Struct "MockIRBContext" to specify what it is for commit 74995162fc5d530e1a7a91b9f5c11a3b270f7f5f Author: MSP-Greg AuthorDate: 2022-12-14 04:57:38 +0900 Commit: GitHub CommitDate: 2022-12-14 04:57:38 +0900 socket.rb - don't load io/wait (#6922) See d2166c09b08fc1 and #6036 for more context. Notes: Merged-By: ioquatix commit 1859784422ca7f19710bbfb1b12b46fdd8ecf3cb Author: zverok AuthorDate: 2022-12-07 02:57:51 +0900 Commit: git[bot] CommitDate: 2022-12-14 04:52:06 +0900 [ruby/date] Implement Date#deconstruct_keys and DateTime#deconstruct_keys https://github.com/ruby/date/commit/6bb6d3a810 commit a1dba60b5bec6b25e8262640228e19329d0dfec2 Author: Takashi Kokubun AuthorDate: 2022-12-14 03:36:34 +0900 Commit: git[bot] CommitDate: 2022-12-14 03:36:45 +0900 [ruby/irb] Version 1.6.1 https://github.com/ruby/irb/commit/229476ba76 commit a66a69865d444509710253d3210a1e72bcd040f9 Author: Takashi Kokubun AuthorDate: 2022-12-14 01:00:22 +0900 Commit: GitHub CommitDate: 2022-12-14 01:00:22 +0900 YJIT: Change the default mem size to 64MiB (#6912) * YJIT: Change the default mem size to 64MiB * Also update ruby --help Co-authored-by: Alan Wu Notes: Merged-By: maximecb commit 99d0a257af54aa819c6ced5f1ff8ff37e3d5342b Author: Nobuyoshi Nakada AuthorDate: 2022-12-13 19:47:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-13 19:55:18 +0900 [ruby/openssl] [DOC] Remove duplicate doc RDoc does not consider preprocessor conditionals, but equally uses both documents of `#if` and `#else` sides. https://github.com/ruby/openssl/commit/ea0a112a0c commit 3de7ff8eb9eb74e0dbd48902d1535d3c9fe14005 Author: Hiroshi SHIBATA AuthorDate: 2022-12-13 17:47:20 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-13 18:07:41 +0900 We should apply https://github.com/ruby/openssl/pull/576 instead of them: https://github.com/ruby/ruby/commit/6d8f396f37350b7aa9c85a097929f54a0939448b https://github.com/ruby/ruby/commit/c8b3bd45cc3cae93ae701333202416838ee6a00c commit 2be03fb5b0fc6ba18cf9842f410f3853e0369600 Author: Henrique Bontempo AuthorDate: 2022-11-24 02:04:38 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-13 18:07:41 +0900 [ruby/openssl] Fixes OPENSSL_LIBRARY_VERSION description on documentation (https://github.com/ruby/openssl/pull/559) Adds back missing constant description on the documentation. commit 8ab8c2d601db398c2d0e17db2105acb561ef0e04 Author: Theo Buehler AuthorDate: 2022-11-24 01:09:50 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-13 18:07:41 +0900 [ruby/openssl] Enable HKDF support for LibreSSL 3.6 and later LibreSSL 3.6 added support for HKDF in EVP. Enable this in ossl_kdf.c. https://github.com/ruby/openssl/commit/9bdd39a7e2 commit d4dce27d894f4889f29d779c94ba2d30c231f9f8 Author: Yusuke Nakamura AuthorDate: 2022-11-23 21:05:49 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-13 18:07:41 +0900 [ruby/openssl] Allow empty string to OpenSSL::Cipher#update For some reasons, plaintext may be empty string. ref https://www.rfc-editor.org/rfc/rfc9001.html#section-5.8 https://github.com/ruby/openssl/commit/953592a29e commit d92f4fe4d74d929cec9ca36ec3dbec070b314902 Author: Theo Buehler AuthorDate: 2022-11-10 22:50:22 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-13 18:07:41 +0900 [ruby/openssl] Use EVP_Digest{Sign,Verify} when available LibreSSL 3.4 added EVP_DigestSign() and EVP_DigestVerify(). Use them when available to prepare for the addition of Ed25519 support in LibreSSL 3.7. https://github.com/ruby/openssl/commit/475b2bf766 commit ce025a5cb4a7aea62629fcf8685e931671a0672d Author: Jarek Prokop AuthorDate: 2022-10-18 16:52:13 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-13 18:07:41 +0900 [ruby/openssl] Use SHA256 instead of SHA1 where needed in tests. Systems such as RHEL 9 are moving away from SHA1 disabling it completely in default configuration. https://github.com/ruby/openssl/commit/32648da2f6 commit 764da87ab02d30c578138bdb0f37e7c18f2d4371 Author: Nobuyoshi Nakada AuthorDate: 2022-12-13 15:18:42 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-13 18:06:11 +0900 [Bug #19195] Allow optional newlines before closing parenthesis Notes: Merged: https://github.com/ruby/ruby/pull/6916 commit 3262842e0adaed63935923bdc14884ac19d7549c Author: Takashi Kokubun AuthorDate: 2022-12-13 17:22:57 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-13 17:25:02 +0900 Skip calling f.read for `overwrite: true`-only cases We only need to set outpath for that case. commit 5ba9dcff16226bbe0f24b234e62e2ed67a17ac53 Author: Takashi Kokubun AuthorDate: 2022-12-13 17:15:02 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-13 17:17:47 +0900 Make sure f.read is not called twice --revision.h and --if-change are not used simultaneously, but they might be in the future. Co-authored-by: Nobuyoshi Nakada commit 7edcdc380f3bb6f5a81bfb5798c339acd844a0d3 Author: Takashi Kokubun AuthorDate: 2022-12-13 16:34:30 +0900 Commit: GitHub CommitDate: 2022-12-13 16:34:30 +0900 Avoid overwriting revision.h when .git doesn't exist (#6915) * Avoid overwriting revision.h when .git doesn't exist * Overwrite revision.h if it's blank Notes: Merged-By: k0kubun commit 3e00cb8256cfe0640cb1d744d07d496128edb7e9 Author: Hiroshi SHIBATA AuthorDate: 2022-12-13 11:24:14 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-13 12:41:08 +0900 Merge RubyGems/Bundler master from https://github.com/rubygems/rubygems/commit/1fdbeeabedd3cc4fffb0bb527b7c789afa44fb51 Notes: Merged: https://github.com/ruby/ruby/pull/6914 commit 6d00053c741cc7a369a1967e0631e32ddf3d1f82 Author: David Rodríguez AuthorDate: 2022-12-12 04:17:51 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-13 12:41:08 +0900 [rubygems/rubygems] Use better matcher Hopefully it gives a better error. https://github.com/rubygems/rubygems/commit/5bc9ff64b6 Notes: Merged: https://github.com/ruby/ruby/pull/6914 commit 43f9351177c14c554d88630b3db771b2faf11dd0 Author: John Hawthorn AuthorDate: 2022-12-13 04:09:10 +0900 Commit: John Hawthorn CommitDate: 2022-12-13 07:05:43 +0900 Fix parens on LIKELY in basic operators We want to hint to the compiler that it's likely that the BOP is unredefined (the bit is 0). Previously we were accidentally hinting to the compiler that it was non-zero due to a misplaced parenthesis. Notes: Merged: https://github.com/ruby/ruby/pull/6911 commit 17559f0420fd925147156e7434916b58c830f44c Author: David Rodríguez AuthorDate: 2022-12-12 20:19:40 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-13 07:01:52 +0900 Don't leave backup file around I suspect this was for debugging? If not, these days we have source control tools, so this wouldn't seem necessary? Notes: Merged: https://github.com/ruby/ruby/pull/6907 commit f88f2bd92f4a1760c0f323614c45369d6a281317 Author: Stan Lo AuthorDate: 2022-12-13 06:04:58 +0900 Commit: git[bot] CommitDate: 2022-12-13 06:05:03 +0900 [ruby/irb] Group show_doc tests and update the expectation (https://github.com/ruby/irb/pull/479) https://github.com/ruby/irb/commit/bede04c14a commit 258ac07907b2e3561db48d53ed0a50c8dd05f102 Author: Alan Wu AuthorDate: 2022-12-13 05:59:29 +0900 Commit: GitHub CommitDate: 2022-12-13 05:59:29 +0900 YJIT: Generate debug info in release builds (#6910) * YJIT: Generate debug info in release builds They are helpful in case we need to do core dump debugging. * Remove Cirrus DOC skip rule The syntax for this is weird, and escaping [ and ] cause parse failures. Cirrus' docs said to surround with .*, but then that seems to skip everything. Revert e0a4205eb785f266fdf08f409c2f112f5dfcb229 for now. Notes: Merged-By: maximecb commit 1004d693b7a3db5db98be59a3d3d468d2ee21ca5 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-12-13 05:13:46 +0900 Commit: GitHub CommitDate: 2022-12-13 05:13:46 +0900 Make it so YJIT is no longer marked as experimental (#6909) Tested on production workloads at Shopify for > 1 year and proven to be quite stable. Enabling YJIT at run-time is still guarded behind the --yjit command-line option for now. Notes: Merged-By: maximecb commit 63f682ba11d92f5f9c1254c491d5881b1614731a Author: Burdette Lamar AuthorDate: 2022-12-13 04:34:15 +0900 Commit: git[bot] CommitDate: 2022-12-13 04:34:21 +0900 [ruby/net-http] [DOC] Enhanced RDoc for HTTPHeader (https://github.com/ruby/net-http/pull/88) https://github.com/ruby/net-http/commit/46e966be10 commit 223d4448c827b9daeb6a61312777e67405e66379 Author: Stan Lo AuthorDate: 2022-12-13 02:35:43 +0900 Commit: git[bot] CommitDate: 2022-12-13 02:35:48 +0900 [ruby/irb] `show_doc` command should take non-string argument too (https://github.com/ruby/irb/pull/478) Given that `show_doc` already supports syntax like `String#gsub`, it should be able to take it in non-string form too, like `edit` and `show_source` do. This ensures users can have a consistent syntax on argument between different commands. commit ece624605785f6640118a0cfd97618e71abfbee8 Author: Takashi Kokubun AuthorDate: 2022-12-13 00:19:24 +0900 Commit: GitHub CommitDate: 2022-12-13 00:19:24 +0900 YJIT: Implement opt_newarray_max instruction (#6893) Notes: Merged-By: maximecb commit 5302d04e5a7fe226a4e9f6aba8b681e0d5088b27 Author: Peter Zhu AuthorDate: 2022-12-13 00:16:38 +0900 Commit: Peter Zhu CommitDate: 2022-12-13 00:16:38 +0900 [DOC] Fix format in ObjectSpace.dump_all commit be710c1bf797f539707e00a1ec6bf86e6009add0 Author: Peter Zhu AuthorDate: 2022-12-13 00:15:24 +0900 Commit: Peter Zhu CommitDate: 2022-12-13 00:15:24 +0900 [DOC] Fix format for ObjectSpace.dump_shapes commit a9c3dc8d2ea4f2461862a999ce40cf944af97190 Author: Peter Zhu AuthorDate: 2022-12-12 23:58:39 +0900 Commit: Peter Zhu CommitDate: 2022-12-12 23:58:39 +0900 [DOC] Fix call-seq for ObjectSpace methods commit 58e3ce5de6e54e4ede6ab6c5df2426ddb92b5a17 Author: Peter Zhu AuthorDate: 2022-12-12 23:56:44 +0900 Commit: Peter Zhu CommitDate: 2022-12-12 23:56:44 +0900 [DOC] Fix typo in docs for ObjectSpace.dump_all commit 87d54708735a77c867638e3157695d75cab279b3 Author: Peter Zhu AuthorDate: 2022-12-12 23:51:12 +0900 Commit: Peter Zhu CommitDate: 2022-12-12 23:51:12 +0900 [DOC] Fix indentation for ObjectSpace.dump_all commit 0b4fda11ec918e8f40059cfd1d2f417bf780d60d Author: Peter Zhu AuthorDate: 2022-12-12 23:37:31 +0900 Commit: Peter Zhu CommitDate: 2022-12-12 23:48:06 +0900 [DOC] Don't document private methods in objspace commit 6d6b1e599034717c8c8df67ece0d4abb4e12d4cb Author: Nobuyoshi Nakada AuthorDate: 2022-12-12 13:38:12 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-12 23:32:37 +0900 Display error messages outside the groups so can be found quickly commit 0ba65c689e27b0b6229fbb40fc6794d0c853a33f Author: Nobuyoshi Nakada AuthorDate: 2022-12-12 17:05:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-12 17:05:37 +0900 outdate-bundled-gems.rb: check for gemspec files for extensions https://github.com/ruby/setup-ruby/issues/415#issuecomment-1345662263 commit ff6831c3343a3d30fdccb0932b8ae0834ee85709 Author: Nobuyoshi Nakada AuthorDate: 2022-12-12 17:05:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-12 17:05:03 +0900 outdate-bundled-gems.rb: remove unused option commit be18b60c335ea0d557717470826a489939316192 Author: Yusuke Endoh AuthorDate: 2022-12-09 14:19:31 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-12 16:21:31 +0900 Prevent potential buffer overflow on enclen Follow up of 1d2d25dcadda0764f303183ac091d0c87b432566 Notes: Merged: https://github.com/ruby/ruby/pull/6903 commit e1f42844a0b2a4dcf4c7338c41ef92f1b45393d8 Author: Nobuyoshi Nakada AuthorDate: 2020-07-27 09:59:11 +0900 Commit: git[bot] CommitDate: 2022-12-12 15:00:41 +0900 [rubygems/rubygems] Prefer RbConfig::CONFIG['EXEEXT'] over hardcorded '.exe' https://github.com/rubygems/rubygems/commit/bc84b2d262 commit b8e542b46350cc1e7975bb711082e4cc6fcb7c82 Author: Yusuke Endoh AuthorDate: 2022-12-09 14:17:35 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-12 14:26:38 +0900 Make absent operator work at the end of the input string https://bugs.ruby-lang.org/issues/19104#change-100542 Notes: Merged: https://github.com/ruby/ruby/pull/6902 commit f093b619a4863be96e6ebfa2fd58c77f4a360eae Author: Nobuyoshi Nakada AuthorDate: 2022-12-12 13:56:06 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-12 13:56:06 +0900 [DOC] NEWS about [Feature #19104] commit bbe56a643734025aef6a3cbeb07c5306505040f6 Author: Hiroshi SHIBATA AuthorDate: 2022-12-12 09:09:23 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-12 10:49:43 +0900 Merge RubyGems/Bundler master from https://github.com/rubygems/rubygems/commit/bfb0ae69776069155d2092702bfbb5a12617d85a Notes: Merged: https://github.com/ruby/ruby/pull/6906 commit f1cdc129d4d6440168b840fa852fa6c3e28d46a9 Author: Burdette Lamar AuthorDate: 2022-12-12 07:26:06 +0900 Commit: git[bot] CommitDate: 2022-12-12 07:26:18 +0900 [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP (https://github.com/ruby/net-http/pull/85) https://github.com/ruby/net-http/commit/9d9040fb79 commit e1ca089b5dddd30c4ac8de9c7ec9e52948768117 Author: Jonathan Lim AuthorDate: 2022-12-12 02:24:01 +0900 Commit: GitHub CommitDate: 2022-12-12 02:24:01 +0900 [DOC] Correct Array#compact! description Notes: Merged: https://github.com/ruby/ruby/pull/6904 Merged-By: XrXr commit e0a4205eb785f266fdf08f409c2f112f5dfcb229 Author: Alan Wu AuthorDate: 2022-12-12 02:02:05 +0900 Commit: Alan Wu CommitDate: 2022-12-12 02:14:04 +0900 Skip Cirrus checks for [DOC] commits Since we also skip them on GitHub Actions. Notes: Merged: https://github.com/ruby/ruby/pull/6905 commit 381a373ab92e2a5869e75f43815993cef39d32cf Author: zverok AuthorDate: 2022-01-13 05:05:30 +0900 Commit: Victor Shepelev CommitDate: 2022-12-12 01:49:56 +0900 [DOC] Improve Random::Formatter docs * Make its usage more obvious (by providing more detailed examples); * Include mention of it into Random itself; * Small cleanups of docs. Notes: Merged: https://github.com/ruby/ruby/pull/5434 commit f07897fd7bb53a40a8fad5ee2be74e02b53e8614 Author: zverok AuthorDate: 2022-01-25 07:31:12 +0900 Commit: Victor Shepelev CommitDate: 2022-12-12 01:43:44 +0900 [DOC] Clarify Class#subclases behavior quirks As per discussion in [Feature #18273], explain the non-deterministic nature of the method. Notes: Merged: https://github.com/ruby/ruby/pull/5480 commit 73eddee76efdc4ed255fd13533b4a0a329cf3b1a Author: David Rodríguez AuthorDate: 2022-12-11 06:10:43 +0900 Commit: git[bot] CommitDate: 2022-12-11 22:35:01 +0900 [rubygems/rubygems] Bump optparse to 0.3.0 And remove a patch no longer needed since we dropped Ruby 2.4 support. https://github.com/rubygems/rubygems/commit/8939337072 commit d82328ffc8b70564cb84ee8ec8c3d90884234eb7 Author: David Rodríguez AuthorDate: 2022-12-11 06:05:03 +0900 Commit: git[bot] CommitDate: 2022-12-11 22:35:00 +0900 [rubygems/rubygems] Bump Molinillo and tsort And configure tsort to be vendored as a dependency of Molinillo. https://github.com/rubygems/rubygems/commit/8ec749f891 commit 9477ec732b680df1ffa1d17b86ba641c83dc4b74 Author: nagachika AuthorDate: 2022-12-11 20:23:36 +0900 Commit: nagachika CommitDate: 2022-12-11 20:23:36 +0900 NEWS.md: fix ticket ref position. commit 9d59d093bd99ca7f4266dec1e9b4cd8b5efbd2d4 Author: Takashi Kokubun AuthorDate: 2022-12-11 15:21:06 +0900 Commit: GitHub CommitDate: 2022-12-11 15:21:06 +0900 MJIT: Compile methods in batches (#6900) * MJIT: Compile methods in batches * MJIT: make mjit-bindgen * MJIT: Fix RubyVM::MJIT tests Notes: Merged-By: k0kubun commit 7055574cf9dbcabd9d440c364f3e7b7812527bde Author: Nobuyoshi Nakada AuthorDate: 2022-12-06 22:16:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-11 11:55:28 +0900 [Bug #19182] Unicode updating targets do not need to run for each files Notes: Merged: https://github.com/ruby/ruby/pull/6899 commit ea613c63608232bf33fd454fc6cd1ce20d63d82e Author: Mirek Klimos AuthorDate: 2022-12-11 03:35:31 +0900 Commit: GitHub CommitDate: 2022-12-11 03:35:31 +0900 Expose need_major_gc via GC.latest_gc_info (#6791) Notes: Merged-By: peterzhu2118 commit 12003acbb9c2c2624be8c41c22c15e6d1fa3a42e Author: Jemma Issroff AuthorDate: 2022-12-10 03:33:48 +0900 Commit: Jean Boussier CommitDate: 2022-12-11 00:10:21 +0900 Update shape capacity when removing ivar and rewriting shape transitions Since edc7af48acd12666a2945f30901d16b62a39f474, we now no longer have undef ivar transitions. Instead, we rebuild the shapes table. When we do this, we need to ensure that we retain our capacities on shapes. Notes: Merged: https://github.com/ruby/ruby/pull/6894 commit 0645c8b3c1f7448d88c6fe6a4ebbd7b3a091c042 Author: Nobuyoshi Nakada AuthorDate: 2022-12-10 19:01:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-10 19:01:29 +0900 [DOC] Fix update-NEWS-refs.rb * Issue numbers are path components but not fragments * Align justification width to Feature lines commit fd440b09fc64b1d2275942c7f6d1e1f4069e85ae Author: Nobuyoshi Nakada AuthorDate: 2022-12-10 18:57:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-10 18:57:20 +0900 A negative denominator case in the Rational string parsing test commit c33615b6543b46227e7f51c17c2d725cf5bfa2ef Author: nagachika AuthorDate: 2022-12-10 16:10:39 +0900 Commit: nagachika CommitDate: 2022-12-10 16:10:39 +0900 NEWS.md: Added compatibility issue of String#to_c. [ruby-core:110523] [Bug #19087] commit fc8d22f89124d2b7f1df5de87274e86ccefadbd2 Author: Nobuyoshi Nakada AuthorDate: 2022-12-10 04:24:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-10 13:58:20 +0900 Win32: Move fallback BASERUBY definition Notes: Merged: https://github.com/ruby/ruby/pull/6898 commit 7a976c106030f37d6ab72b1abaef10e575bb8809 Author: Nobuyoshi Nakada AuthorDate: 2022-12-06 16:47:42 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-10 13:58:20 +0900 [Bug #19181] Separate the rule for unicode_normalize/tables.rb timestamp It should depends on only existing data files (except for the tools), unless `ALWAYS_UPDATE_UNICODE=yes`. Notes: Merged: https://github.com/ruby/ruby/pull/6898 commit 5404e2fd31736af3a7477f3ec67d3f07276485d6 Author: Alan Wu AuthorDate: 2022-12-10 11:56:02 +0900 Commit: GitHub CommitDate: 2022-12-10 11:56:02 +0900 [DOC] Fix false link to ::Data commit 22d391dc637dd756fdcdfc0ece4a71753b5b2ddb Author: Samuel Williams AuthorDate: 2022-12-10 09:54:53 +0900 Commit: GitHub CommitDate: 2022-12-10 09:54:53 +0900 Add spec for fiber storage. (#6896) Notes: Merged-By: ioquatix commit 24043031be75cb5119cc4a6c1ffb2c867b567633 Author: Takashi Kokubun AuthorDate: 2022-12-10 09:45:38 +0900 Commit: GitHub CommitDate: 2022-12-10 09:45:38 +0900 YJIT: Split send_iseq_complex_callee exit reasons (#6895) Notes: Merged-By: k0kubun commit 381e128c135e491689714cb69353d11e782f5994 Author: Stan Lo AuthorDate: 2022-12-10 08:39:12 +0900 Commit: git[bot] CommitDate: 2022-12-10 08:39:17 +0900 [ruby/irb] Fix step command (https://github.com/ruby/irb/pull/477) The current `next` pre-command workaround on IRB source stepping moves the location by 1 extra line. A better way is to make `debug` skip IRB frames completely, which is what this commit does. It also fixes the step command's test. The `|` in regexp was not escaped so it was always incorrectly matched. commit daa893db412c6ae814d0291b4ac6fc62a466d394 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-12-10 07:12:15 +0900 Commit: GitHub CommitDate: 2022-12-10 07:12:15 +0900 YJIT: implement `getconstant` YARV instruction (#6884) * YJIT: implement getconstant YARV instruction * Constant id is not a pointer * Stack operands must be read after jit_prepare_routine_call Co-authored-by: Takashi Kokubun Notes: Merged-By: k0kubun commit 1c057cfc2fd84369a2ebff048c4a5fdf5fa08fff Author: Takashi Kokubun AuthorDate: 2022-12-10 06:14:19 +0900 Commit: GitHub CommitDate: 2022-12-10 06:14:19 +0900 YJIT: Filter out 0-exit ops from Top-20 exit ops (#6892) Notes: Merged-By: k0kubun commit d7812d1949b6315eff5088c6f74eaf9ef6b34119 Author: Jean Boussier AuthorDate: 2022-12-09 23:22:10 +0900 Commit: Jean Boussier CommitDate: 2022-12-10 01:06:21 +0900 objspace_dump.c: dump the capacity field for INITIAL_CAPACITY shapes We forgot about that one, it's quite useful to see which capacity we started from. Notes: Merged: https://github.com/ruby/ruby/pull/6891 commit 12b52686790582e30d7d92f2070741d28be8c517 Author: Matt Valentine-House AuthorDate: 2022-12-08 22:42:19 +0900 Commit: Peter Zhu CommitDate: 2022-12-09 23:34:17 +0900 Remove unused counter for heap_page->pinned_slots Notes: Merged: https://github.com/ruby/ruby/pull/6881 commit fe67998816245fbab6a65095bde3d57f1277609c Author: Nobuyoshi Nakada AuthorDate: 2022-12-09 22:15:38 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-09 22:15:38 +0900 Clean up a temporary file commit 11acb7f7bcf6e80e03cf83bba863b9b3f980fdca Author: Nobuyoshi Nakada AuthorDate: 2022-12-09 01:14:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-09 22:11:44 +0900 [Bug #19167] Remove useless conversion of classes for special const commit 181d4bee5e03a30596e78b2d7aa0396887a53881 Author: Matt Valentine-House AuthorDate: 2022-12-08 01:01:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-09 22:11:00 +0900 Use rb_inspect instead of +PRIsVALUE for Object.inspect In order to preserve the values when TrueClass, FalseClass or NilClass are stored in ivars Notes: Merged: https://github.com/ruby/ruby/pull/6872 commit 01cf3ab3b8ee20ad6746373ae17a5679cad47125 Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 16:56:36 +0900 Commit: git[bot] CommitDate: 2022-12-09 16:57:33 +0900 [ruby/date] Bump version to 3.3.1 https://github.com/ruby/date/commit/b7a8229041 commit e96b64f5e749425b63cc71f256da304fe3ee476b Author: Charles Oliver Nutter AuthorDate: 2022-12-09 13:43:46 +0900 Commit: git[bot] CommitDate: 2022-12-09 16:55:07 +0900 [ruby/date] No-op gem for JRuby for now Remove all shipped files and require path on JRuby until we can add JRuby's extension to the gem. Temporary workaround for #48 https://github.com/ruby/date/commit/94c3becef2 commit 8893913ae6da33662201d0a0e6ba2d37f50630ca Author: Takashi Kokubun AuthorDate: 2022-12-09 16:41:12 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-09 16:43:09 +0900 MJIT: Clarify jit_unit is only for MJIT commit 93ac1503be10c43978fe7ee1fec95ca2098fbd26 Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 15:13:23 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Added condition for ruby/ruby repository Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit 0677bbe3ff139a4f369c128bdab3526450c5ee6f Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 15:12:51 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Merge syntax_suggest master Pick from https://github.com/ruby/syntax_suggest/commit/daee74dcb06296fa69fe8595fdff5d93d432b30d Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit 9557c8edf2dcf18fdece066c596a71696b2f2b30 Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 15:00:11 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Merge net-protocol-0.2.1 Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit 4cbd3e19447591f66c3ab08c322a32aa53eae74f Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 14:54:10 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Merge RDoc-6.5.0 Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit a4e14b9d9d58391fb7d7a10be8d883690860373b Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 14:45:51 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Merge RubyGems/Bundler master Pick from https://github.com/rubygems/rubygems/commit/823c776d951f3c35094611473ec77f94e8bf6610 Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit d928ebacb23639cbf3f28201304f0451e5bd45a7 Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 14:36:54 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Merge Psych-5.0.1 Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit 98e33aa992a86c8000e050ffa870fa72517187fe Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 14:19:59 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Merge yaml-0.2.1 Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit 3b45498d3e4e459cf881c97cc72c4c8d5adcc546 Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 14:18:20 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Merge json-2.6.3 Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit 7d04cddfef5a4aa212799a5ab6f8518819bed937 Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 14:03:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Merge stringio-3.0.4 Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit 286812bcf3f3ece9ed784d943902007ec065bdd9 Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 13:43:01 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Merge fiddle-1.1.1 Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit 4e31fea77d360c6535e33ff2525d80fba38d15d8 Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 13:03:33 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Merge strscan-3.0.5 Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit bcf01b18cfe9b21bfde32e28edd4745703bf190c Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 08:51:13 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Reapply the following commits related to extend timeout value. 66d1900423e6fb9774c2fe72dba8c2968b54d7ab 0686e4181d04dd911316a227753ceaa96d8c6533 1a63468831524f68e73cbb068071652c6486cfc6 e1fee7f949cb6719122672fa1081c60984a5339f 232e43fd52e53f667c2c290cffb4afa524889f0f Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit 643918ecfe9c980f251247de6acd3be6280da24c Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 08:46:14 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-09 16:36:22 +0900 Merge csv-3.2.6 Notes: Merged: https://github.com/ruby/ruby/pull/6890 commit 260a00d80e4dcc930b040313a99da29e4b1e6678 Author: Takashi Kokubun AuthorDate: 2022-12-09 16:08:34 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-09 16:08:34 +0900 MJIT: Refactor JIT failure handling commit 97ed056274f4b1f5a174f9ed45aecba4d3c37568 Author: Takashi Kokubun AuthorDate: 2022-12-09 15:58:39 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-09 15:58:40 +0900 MJIT: Give a more appropriate name to the initial state commit 0dc5c117a5eb8773b717ef79c4f78ccf0e3981d5 Author: Takashi Kokubun AuthorDate: 2022-12-09 15:53:27 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-09 15:53:58 +0900 MJIT: Convert compact_p flag to an enum I'm gonna add another type of unit shortly. commit bda070f0162e293e296c1fe7e6cb80a736058162 Author: Nobuyoshi Nakada AuthorDate: 2022-11-30 23:04:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-09 15:40:05 +0900 [ruby/rdoc] Fix `=end` delimiter https://github.com/ruby/rdoc/commit/e1679fa7e4 commit acd857b9897cf98994e9d798f4e9179cf4a8d6e0 Author: Nobuyoshi Nakada AuthorDate: 2022-11-30 22:59:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-09 15:40:04 +0900 [ruby/rdoc] Non-RD part feature has not been imported to RDoc https://github.com/ruby/rdoc/commit/fe0159de2f commit b749bc05d0c54ced973628372f43085a9719aa2e Author: Nobuyoshi Nakada AuthorDate: 2022-11-30 22:44:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-09 15:40:04 +0900 [ruby/rdoc] Use Tempfile https://github.com/ruby/rdoc/commit/0b9dde5ab4 commit fa64889abbad727d31bb927604d87679825dcd37 Author: Takashi Kokubun AuthorDate: 2022-12-09 15:36:35 +0900 Commit: git[bot] CommitDate: 2022-12-09 15:36:55 +0900 [ruby/erb] Use a ruby-lang alias on spec.email https://github.com/ruby/erb/commit/39414f32a5 commit d7baa17b49a681a7436718f6219fcbb1ce8b2ff3 Author: Hiroshi SHIBATA AuthorDate: 2022-12-09 14:57:29 +0900 Commit: git[bot] CommitDate: 2022-12-09 14:57:49 +0900 [ruby/etc] Bump version to 1.4.2 https://github.com/ruby/etc/commit/5cac138538 commit ec184077bc503756f42a19dc5ee16f9c5cd894b6 Author: Takashi Kokubun AuthorDate: 2022-12-09 14:42:15 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-09 14:42:15 +0900 MJIT: Remove obsoleted conditional variables commit 95b423f93a418abc010d7bc1baab48b526dd3304 Author: Takashi Kokubun AuthorDate: 2022-12-09 13:35:31 +0900 Commit: git[bot] CommitDate: 2022-12-09 13:35:43 +0900 [ruby/irb] Version 1.6.0 https://github.com/ruby/irb/commit/d799c5c9da commit 6ea3edbdad1ecad20f9856e0e260e5ca5976b7fc Author: Janosch Müller AuthorDate: 2022-12-09 06:14:08 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-09 11:26:26 +0900 Fix bad code example in documentation Notes: Merged: https://github.com/ruby/ruby/pull/6885 commit e714907d82f486c13fc1ea5e3ad291dabf4e7fbe Author: Alan Wu AuthorDate: 2022-12-09 05:03:47 +0900 Commit: Alan Wu CommitDate: 2022-12-09 07:35:18 +0900 YJIT: Upgrade bindgen to stabilize and reduce output The new version has an option to merge everything into a big `extern "C"` block and it's nicer. More importantly, this upgrade fixes an issue where Ubuntu with Clang 12 and macOS with Clang 14 gave a one line diff for `rb_shape_t`. It was slightly annoying because we use macOS locally. Notes: Merged: https://github.com/ruby/ruby/pull/6887 commit 51ef991d8dabadf8fbd46ad02cd9fea3c4d06f62 Author: Takashi Kokubun AuthorDate: 2022-12-09 07:33:18 +0900 Commit: GitHub CommitDate: 2022-12-09 07:33:18 +0900 YJIT: Drop Copy trait from Context (#6889) Notes: Merged-By: maximecb commit b26c9ce5e9b1c80a59f4faeb92be4a302232e12c Author: Maxime Chevalier-Boisvert AuthorDate: 2022-12-09 07:31:33 +0900 Commit: GitHub CommitDate: 2022-12-09 07:31:33 +0900 YJIT: implement opt_newarray_min YARV instruction (#6888) Notes: Merged-By: maximecb commit c9076d546aae9dbcb7da404aada7ce8d23e2273b Author: Stan Lo AuthorDate: 2022-12-09 06:46:51 +0900 Commit: git[bot] CommitDate: 2022-12-09 06:46:55 +0900 [ruby/irb] Add show_doc as an alias to the help command (https://github.com/ruby/irb/pull/475) In the long-term, we want to align with `Pry`, `byebug` and `debug` to use the `help` command to list all commands, which is what `show_cmds` currently does. And `show_doc` will be the command to look up Ruby APIs. By aliasing `show_doc` to the current `help` now, users will have time to get use to it. commit 12b7c129bf8ed3a113e2cc73f817868507504268 Author: Stan Lo AuthorDate: 2022-12-09 06:05:33 +0900 Commit: git[bot] CommitDate: 2022-12-09 06:05:37 +0900 [ruby/irb] Gracefully handle missing command argument (https://github.com/ruby/irb/pull/473) * Handle file loading commands' argument error gracefully Currently, if users don't provide an argument to `source`, `irb_load`, and `irb_require`, IRB raises `ArgumentError` with full stacktrace. This is confusing because it looks similar to when IRB has internal issues. The message also isn't helpful on helping users avoid the error. So in this commit, I add a new `CommandArgumentError` for commands to raise explicitly when users' input doesn't satisfy a command's argument requirement. * Gracefully handle `fg` command's argument requirement commit 8bbf4e5d8dccba3adf07fb56a38c062477653aec Author: Sutou Kouhei AuthorDate: 2022-12-09 05:58:40 +0900 Commit: git[bot] CommitDate: 2022-12-09 05:58:53 +0900 [ruby/stringio] bump up to 3.0.5 https://github.com/ruby/stringio/commit/e62b9d78d3 commit bb8afd7265af41a75e8889774aa26f157f146380 Author: Alan Wu AuthorDate: 2022-12-07 02:06:25 +0900 Commit: Alan Wu CommitDate: 2022-12-09 05:58:26 +0900 Freeze singleton class, not its origin Previously, when we froze an object, we froze `RCLASS_ORIGIN(object.singleton_class)`, which didn't freeze `object.singleton_class` when it has some prepended modules. Origin iclass are internal objects and users can't interact with them through Kernel#freeze?, Kernel#freeze, or any mutation method that checks the frozen status. So we shouldn't touch the origin iclasses when the frozen status should be visible. [Bug #19169] Notes: Merged: https://github.com/ruby/ruby/pull/6869 commit 47a5b34aba514fd075664b4cf0e95e0f7f26609f Author: Alan Wu AuthorDate: 2022-12-09 05:02:21 +0900 Commit: Alan Wu CommitDate: 2022-12-09 05:58:00 +0900 YJIT: Fold check-yjit-bindings into yjit-bindgen So it's shorter on CI and the hint about how the fix the failure shows up. It's going to print a diff locally too, but that should be fine. Notes: Merged: https://github.com/ruby/ruby/pull/6883 commit 2ae26554de200adc0d557776e2d2c3eb91c6ec90 Author: Alan Wu AuthorDate: 2022-12-09 03:23:46 +0900 Commit: Alan Wu CommitDate: 2022-12-09 05:58:00 +0900 YJIT: Add a hint for fixing "check-yjit-bindings" This makes it clear what to do when the CI check fails and should remove a few minutes of confusion for people seeing this for the first time. Notes: Merged: https://github.com/ruby/ruby/pull/6883 commit a87f802f1ecc2f1442f4590dc58068a72f68eae9 Author: Stan Lo AuthorDate: 2022-12-09 04:11:47 +0900 Commit: git[bot] CommitDate: 2022-12-09 04:11:51 +0900 [ruby/irb] Kill PTY process after test is finished (https://github.com/ruby/irb/pull/471) The killing/waiting logic is borrowed from ruby/debug: https://github.com/ruby/debug/blob/ec5ae5aebd61a99dc84028d8dffa8e7e165c1ec6/test/support/test_case.rb#L107-L136 commit 3956bb859c2442d34ea171db8f92f3e5895c43d9 Author: Stan Lo AuthorDate: 2022-12-09 04:10:19 +0900 Commit: git[bot] CommitDate: 2022-12-09 04:10:23 +0900 [ruby/irb] Add "show_cmds" command to list all commands' descriptions (https://github.com/ruby/irb/pull/463) https://github.com/ruby/irb/commit/7e857655ac commit 2cea8e014dbbbb68e4e8be367529b2beae564c54 Author: Takashi Kokubun AuthorDate: 2022-12-09 03:31:45 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-09 03:31:56 +0900 MJIT: Mark MJIT's objects from mjit_mark It looks like the current way of marking objects was breaking eightbitraptor's upcoming VWA changes and this seems to fix it. commit 73771e4b192f3db62efb854affdfc95babba1d35 Author: Jean Boussier AuthorDate: 2022-12-06 20:56:51 +0900 Commit: Jean Boussier CommitDate: 2022-12-09 02:46:16 +0900 ObjectSpace.dump_all: dump shapes as well I see several arguments in doing so. First they use a non trivial amount of memory, so for various memory profiling/mapping tools it is relevant to have visibility of the space occupied by shapes. Then, some pathological code can create a tons of shape, so it is valuable to have a way to have a way to observe shapes without having to compile Ruby with `SHAPE_DEBUG=1`. And additionally it's likely much faster to dump then this way than to use `RubyVM::Shape`. There are however a few open questions: - Shapes can't respect the `since:` argument. Not sure what to do when it is provided. Would probably make sense to not dump them. - Maybe it would make more sense to have a separate `ObjectSpace.dump_shapes`? - Maybe instead `dump_all` should take a `shapes: false` argument? Additionally, `ObjectSpace.dump_shapes` is added for the use case of debugging the evolution of the shape tree. Notes: Merged: https://github.com/ruby/ruby/pull/6868 commit b19490f75dd790f2f886df2c05ed8fba947326a9 Author: Nobuyoshi Nakada AuthorDate: 2022-12-07 21:41:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-09 02:20:16 +0900 Use the built bundled gems in test-all as well as test-bundled-gems Notes: Merged: https://github.com/ruby/ruby/pull/6882 commit 5738ae70d959a2bab0dfe40b12ba16a2c2cd6a12 Author: Jimmy Bourassa AuthorDate: 2022-12-09 00:38:23 +0900 Commit: GitHub CommitDate: 2022-12-09 00:38:23 +0900 [DOC] Update `rb_gc_mark_locations` doc The documentation says that the `end` pointer will be marked but looking at the source, that is not the case. Notes: Merged: https://github.com/ruby/ruby/pull/6876 Merged-By: nobu commit e9f6d6b3fb522f2f9a70f06230c6ecb0cad0ac90 Author: Jean Boussier AuthorDate: 2022-12-08 18:15:06 +0900 Commit: Jean Boussier CommitDate: 2022-12-08 21:29:13 +0900 Ignore .o.tmp files Notes: Merged: https://github.com/ruby/ruby/pull/6879 commit 6081fd456436a98ada7f51ebb4d44c0cc7f01b06 Author: Jean Boussier AuthorDate: 2022-12-08 17:44:58 +0900 Commit: git[bot] CommitDate: 2022-12-08 21:15:52 +0900 [ruby/net-protocol] Failing test case for #19 Unfortunately we have to use a mock, but this test demonstrate the mutation bug fixed in #19. It fails on 0.2.0 but passes on 0.1.3 or 0.2.1. https://github.com/ruby/net-protocol/commit/40a1ab687c commit 6f44dc8edf5b444a45ea9f0a375a2620b93ed19d Author: Hiroshi SHIBATA AuthorDate: 2022-12-08 16:23:27 +0900 Commit: git[bot] CommitDate: 2022-12-08 16:23:46 +0900 [ruby/net-protocol] Bump version to 0.2.1 https://github.com/ruby/net-protocol/commit/06d1420936 commit 8547f61dafa1ea1a18b6f823320e3fcf97e1a156 Author: Jean Boussier AuthorDate: 2022-12-08 00:37:09 +0900 Commit: git[bot] CommitDate: 2022-12-08 16:17:51 +0900 [ruby/net-protocol] Undo BufferedIO#rbuf_consume_all_shareable! optimization This optimization is unsafe because `dest` is allowed to be a custom object responding to `<<` (e.g. a block wrapped in `ReadAdapter`). So the receiver can hold onto the passed buffer for as long as it wants. If it was guaranteed that `ReadAdapter` was the only possible receiver we could dup the buffer there for mutation safety, but I'm not certain it's the case so I'd rather err on the safe side. Ref: https://github.com/shrinerb/shrine/issues/610 https://github.com/ruby/net-protocol/commit/7efa16d55d commit a57a3154d3e11b347ecde7b86a656d0c0737169e Author: Benoit Daloze AuthorDate: 2022-12-08 01:30:05 +0900 Commit: git[bot] CommitDate: 2022-12-08 16:17:09 +0900 [rubygems/rubygems] Avoid deprecated Gem::Platform.match in Gem::Resolver::InstallerSet https://github.com/rubygems/rubygems/commit/05cb5410cb commit 3938bd1b42a157877f63c3d322456d8c7dd54cff Author: Takashi Kokubun AuthorDate: 2022-12-08 15:05:14 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-08 15:05:15 +0900 MJIT: Remove Windows-specific code because we no longer support it commit 09bc3abd2e4e65aed1bdf8adb67ecfcad17e0836 Author: Takashi Kokubun AuthorDate: 2022-12-07 16:24:19 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-08 14:20:05 +0900 MJIT: Deal with a TODO with assertion commit 6fd5d2dc003bda5ce0685abd2b975d7ac7079d46 Author: Samuel Williams AuthorDate: 2022-12-08 14:19:53 +0900 Commit: GitHub CommitDate: 2022-12-08 14:19:53 +0900 Introduce `IO.new(..., path:)` and promote `File#path` to `IO#path`. (#6867) Notes: Merged-By: ioquatix commit b9d055d7604ea41f54268076622c8a1a5d0f7750 Author: Sutou Kouhei AuthorDate: 2022-12-08 14:11:49 +0900 Commit: git[bot] CommitDate: 2022-12-08 14:12:15 +0900 [ruby/stringio] bump up to 3.0.4 https://github.com/ruby/stringio/commit/5ba853d6ff commit 7e121dc4a883d1e69db601bdcaac42de33e176e1 Author: Akira Matsuda AuthorDate: 2022-12-08 12:31:30 +0900 Commit: git[bot] CommitDate: 2022-12-08 12:31:36 +0900 [ruby/logger] Another performance improvement on the Formatter by using Kernel#sprintf over String#% (https://github.com/ruby/logger/pull/75) * Prefer Kernel#sprintf over String#% for formatting Strings commit 7ab4820af7b39e12023ab3aee74cb7e66e97f786 Author: Samuel Williams AuthorDate: 2022-12-08 12:28:13 +0900 Commit: git[bot] CommitDate: 2022-12-08 12:28:18 +0900 [ruby/logger] Only assign to `@filename` if the path is valid. (https://github.com/ruby/logger/pull/81) https://github.com/ruby/logger/commit/b41d7c699c commit 2efaa80523054a50bbd21f079c5d4eb133053a60 Author: Hiroshi SHIBATA AuthorDate: 2022-12-08 12:21:59 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-08 12:22:02 +0900 Don't sync jar artifact of CGI commit 701251c57650a70d838caf5a11905fca12300546 Author: Samuel Williams AuthorDate: 2022-12-08 12:21:25 +0900 Commit: git[bot] CommitDate: 2022-12-08 12:21:40 +0900 [ruby/logger] Drop RDoc development dependency to avoid CI failures. (https://github.com/ruby/logger/pull/82) https://github.com/ruby/logger/commit/8915627234 commit 9fce6014b52852265c6b34a04a20579b6242552e Author: Hiroshi SHIBATA AuthorDate: 2022-12-08 11:06:16 +0900 Commit: git[bot] CommitDate: 2022-12-08 11:08:25 +0900 [ruby/psych] Bump version to 5.0.1 https://github.com/ruby/psych/commit/bdf20e6042 commit 645cd94d9a2383f973ae2fd83fef7024ae59c679 Author: Chris Seaton AuthorDate: 2022-12-08 10:09:30 +0900 Commit: GitHub CommitDate: 2022-12-08 10:09:30 +0900 Add debug counters to RubyVM.stat (#6086) * Add debug counters to RubyVM.stat * Use SIZET2NUM Co-author: Nobuyoshi Nakada * Prefix debug_counter_names Notes: Merged-By: k0kubun commit a2d3f5606a241999feda113f7331cf1a637bcaf0 Author: Stan Lo AuthorDate: 2022-12-08 08:29:55 +0900 Commit: git[bot] CommitDate: 2022-12-08 08:30:00 +0900 [ruby/irb] Lazily load the multi-irb extension (https://github.com/ruby/irb/pull/472) * Lazily load the multi-irb extension We now have plan to implement a command that prints all commands' information, which will need to load all command files without actually running them. But because the `multi-irb` extension patches IRB's top-level methods, loading it would cause unintentional side-effects. So this commit moves related requires into command execution to avoid the problem. * Make extend_irb_context private Co-authored-by: Takashi Kokubun commit 30c76f4d0d1b090a2ac4885f10f31d59d9c243df Author: Maxime Chevalier-Boisvert AuthorDate: 2022-12-08 06:46:59 +0900 Commit: GitHub CommitDate: 2022-12-08 06:46:59 +0900 Update yjit.md Update citation, fix outdated and inaccurate information. commit 9350c2b12f308e8a3676630460e3aa0ae38f8b47 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-12-08 05:02:45 +0900 Commit: GitHub CommitDate: 2022-12-08 05:02:45 +0900 Update YJIT warning, mention need to install rustc (#6873) Notes: Merged-By: maximecb commit 3bb7a401600d37b569a6da6a2be82bcd84eac37f Author: Maxime Chevalier-Boisvert AuthorDate: 2022-12-08 05:00:18 +0900 Commit: GitHub CommitDate: 2022-12-08 05:00:18 +0900 Update NEWS.md commit a89d856f2693007cceabcce07b1d60542ad9ddf9 Author: Aaron Patterson AuthorDate: 2022-12-07 23:56:30 +0900 Commit: Aaron Patterson CommitDate: 2022-12-08 02:57:11 +0900 Update spec/bundler/bundler/fetcher/compact_index_spec.rb Co-authored-by: Takashi Kokubun Notes: Merged: https://github.com/ruby/ruby/pull/6866 commit edc7af48acd12666a2945f30901d16b62a39f474 Author: Aaron Patterson AuthorDate: 2022-12-06 09:48:47 +0900 Commit: Aaron Patterson CommitDate: 2022-12-08 02:57:11 +0900 Stop transitioning to UNDEF when undefining an instance variable Cases like this: ```ruby obj = Object.new loop do obj.instance_variable_set(:@foo, 1) obj.remove_instance_variable(:@foo) end ``` can cause us to use many more shapes than we want (and even run out). This commit changes the code such that when an instance variable is removed, we'll walk up the shape tree, find the shape, then rebuild any child nodes that happened to be below the "targetted for removal" IV. This also requires moving any instance variables so that indexes derived from the shape tree will work correctly. Co-Authored-By: Jemma Issroff Co-authored-by: John Hawthorn Notes: Merged: https://github.com/ruby/ruby/pull/6866 commit f725bf358a38b2d5dccb016a962f560baaee55c2 Author: nagachika AuthorDate: 2022-12-07 21:27:03 +0900 Commit: nagachika CommitDate: 2022-12-07 21:27:36 +0900 Fix a typo in NEWS.md. [ci-skip] commit 01fd1c482e6ca08c7598c951e6929ba55b4a8228 Author: Ian Ker-Seymer AuthorDate: 2022-12-07 14:30:01 +0900 Commit: git[bot] CommitDate: 2022-12-07 20:31:26 +0900 [rubygems/rubygems] Remove remaining dev profile test https://github.com/rubygems/rubygems/commit/7d50e998b3 commit 88497b2167b88bb7e4f17cb5f2f74f8314d6d45d Author: Ian Ker-Seymer AuthorDate: 2022-12-07 14:15:02 +0900 Commit: git[bot] CommitDate: 2022-12-07 20:31:25 +0900 [rubygems/rubygems] Better tests are better https://github.com/rubygems/rubygems/commit/17abb80c2c commit ef50934721e86e4e02623959ee4a27ec53864dcc Author: Ian Ker-Seymer AuthorDate: 2022-12-07 14:11:39 +0900 Commit: git[bot] CommitDate: 2022-12-07 20:31:25 +0900 [rubygems/rubygems] Fix string match in test https://github.com/rubygems/rubygems/commit/82554f2bfd commit 554161236a263e47f6a2590bafbf9e7b59415736 Author: Ian Ker-Seymer AuthorDate: 2022-12-07 14:07:46 +0900 Commit: git[bot] CommitDate: 2022-12-07 20:31:25 +0900 [rubygems/rubygems] Always build in release mode https://github.com/rubygems/rubygems/commit/7b84fc1f19 commit 37d10caa0dbec950694cedea5c7924aef6b39f1f Author: Ian Ker-Seymer AuthorDate: 2022-12-07 13:26:21 +0900 Commit: git[bot] CommitDate: 2022-12-07 20:31:21 +0900 [rubygems/rubygems] Updates rb-sys to 0.9.46 https://github.com/rubygems/rubygems/commit/6c2e7aafd6 commit 58cc3c9f387dcf8f820b43e043b540fa06248da3 Author: Nobuyoshi Nakada AuthorDate: 2022-12-07 13:08:40 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-07 19:19:54 +0900 [Bug #19187] Fix for tzdata-2022g commit 1968b4e2c7f9ae7a4d9f4bc6f7f6da0efc6afb75 Author: Jean Boussier AuthorDate: 2022-12-07 17:53:27 +0900 Commit: Jean Boussier CommitDate: 2022-12-07 18:08:25 +0900 Mention `rb_hash_new_capa` and `rb_internal_thread_*` in NEWS.md Notes: Merged: https://github.com/ruby/ruby/pull/6871 commit bcd8b2f00aef8fdaa54f1d76ca841ae8d10e5e0f Author: Yusuke Endoh AuthorDate: 2022-12-07 12:31:00 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-07 12:32:29 +0900 NEWS.md: Added some missing features Also, tool/update-NEWS-refs.rb is added to help the update of NEWS.md. commit 65545c66086c0dfb36275d3014586281ec3ee27e Author: Takashi Kokubun AuthorDate: 2022-12-07 16:45:49 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-07 16:46:16 +0900 MJIT: Fix an assertion broken with --mjit-wait enabled commit 17d45feeb6291c407e00b20a7f16ac472c7b1ef9 Author: Takashi Kokubun AuthorDate: 2022-12-07 16:16:21 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-07 16:21:19 +0900 MJIT: Refactor mjit_wait commit 57cb4a817916637eaeb4732f56c5aa5b748a4349 Author: Takashi Kokubun AuthorDate: 2022-12-07 16:01:30 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-07 16:05:00 +0900 MJIT: Remove obsoleted MJIT counters commit 12916e283fdeb87b84f09379c056614c6196615a Author: Takashi Kokubun AuthorDate: 2022-12-07 16:00:12 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-07 16:00:22 +0900 MJIT: Use xfree for units now that we use ZALLOC_N for allocating units commit 98c41dfe6f986ed0a0277d8b1379ed632ec1ce82 Author: Takashi Kokubun AuthorDate: 2022-12-07 15:40:03 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-07 15:40:08 +0900 MJIT: Just use ZALLOC_N in create_unit We no longer use an MJIT worker thread, so there's no need to avoid GC. commit 7e20704000177c5863d97bbda7ca3ea160dafdd1 Author: Takashi Kokubun AuthorDate: 2022-12-07 15:18:42 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-07 15:19:26 +0900 MJIT: Remove an unused argument and unused counters I plan to rebuild MJIT metrics later, not using debug counters. commit e6b63b382c30cb665d24853f745586a157ae58f3 Author: Takashi Kokubun AuthorDate: 2022-12-07 14:27:46 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-07 14:36:58 +0900 MJIT: Refactor the jit_func enum for MJIT All values should have a MJIT_ prefix. We could address the warning for the end mark if we just define the macro for the check next to the enum. It even simplifies some code for checking the enum. commit 8684904cb418df3f6d15ea0b0ad5c7c357d7ef06 Author: Yusuke Endoh AuthorDate: 2022-12-07 08:11:35 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-07 08:11:35 +0900 NEWS.md: Explain the change of [Feature #18367] commit 40a9964b893fee5680b455d0e905155be3360685 Author: Jemma Issroff AuthorDate: 2022-12-07 04:52:11 +0900 Commit: Aaron Patterson CommitDate: 2022-12-07 06:43:42 +0900 Set max_iv_count (used for object shapes) based on inline caches With this change, we're storing the iv name on an inline cache on setinstancevariable instructions. This allows us to check the inline cache to count instance variables set in initialize and give us an estimate of iv capacity for an object. For the purpose of estimating the number of instance variables required for an object, we're assuming that all initialize methods will call `super`. This change allows us to estimate the number of instance variables required without disassembling instruction sequences. Co-Authored-By: Aaron Patterson Notes: Merged: https://github.com/ruby/ruby/pull/6870 commit 64cdf8bae7cd85bc2911b39074d5710616c7ec73 Author: Daniel Colson AuthorDate: 2022-12-02 06:07:59 +0900 Commit: John Hawthorn CommitDate: 2022-12-07 05:37:23 +0900 Update dependencies commit e69b91fae4602b69c5ef45fcf82932adde8b31d8 Author: Daniel Colson AuthorDate: 2022-11-23 11:16:11 +0900 Commit: John Hawthorn CommitDate: 2022-12-07 05:37:23 +0900 Introduce BOP_CMP for optimized comparison Prior to this commit the `OPTIMIZED_CMP` macro relied on a method lookup to determine whether `<=>` was overridden. The result of the lookup was cached, but only for the duration of the specific method that initialized the cmp_opt_data cache structure. With this method lookup, `[x,y].max` is slower than doing `x > y ? x : y` even though there's an optimized instruction for "new array max". (John noticed somebody a proposed micro-optimization based on this fact in https://github.com/mastodon/mastodon/pull/19903.) ```rb a, b = 1, 2 Benchmark.ips do |bm| bm.report('conditional') { a > b ? a : b } bm.report('method') { [a, b].max } bm.compare! end ``` Before: ``` Comparison: conditional: 22603733.2 i/s method: 19820412.7 i/s - 1.14x (± 0.00) slower ``` This commit replaces the method lookup with a new CMP basic op, which gives the examples above equivalent performance. After: ``` Comparison: method: 24022466.5 i/s conditional: 23851094.2 i/s - same-ish: difference falls within error ``` Relevant benchmarks show an improvement to Array#max and Array#min when not using the optimized newarray_max instruction as well. They are noticeably faster for small arrays with the relevant types, and the same or maybe a touch faster on larger arrays. ``` $ make benchmark COMPARE_RUBY= ITEM=array_min $ make benchmark COMPARE_RUBY= ITEM=array_max ``` The benchmarks added in this commit also look generally improved. Co-authored-by: John Hawthorn commit c43951e60eed0b01f464cd25441b81751d2d5087 Author: Daniel Colson AuthorDate: 2022-12-01 10:28:14 +0900 Commit: John Hawthorn CommitDate: 2022-12-07 05:37:23 +0900 Move BOP macros to separate file This commit moves ruby_basic_operators and the unredefined macros out of vm_core.h and into basic_operators.h so that we can use them more broadly in places where we currently use a method look up via `rb_method_basic_definition_p` (e.g. object.c, numeric.c, complex.c, enum.c, but also in internal/compar.h after introducing BOP_CMP and elsewhere if we introduce more BOPs) The most controversial part of this change is probably moving redefined_flag out of rb_vm_t. [vm_opt_method_def_table and vm_opt_mid_table](https://github.com/ruby/ruby/blob/9da2a5204f32a4f2ce135fddde2abb6e07d647e9/vm.c) are not part of rb_vm_t either, and I think this fits well with those. But more significantly it seems to result in one fewer instruction. For example: Before: ``` (lldb) disassemble -n vm_opt_str_freeze miniruby`vm_exec_core: miniruby[0x10028233e] <+14558>: movq 0x11a86b(%rip), %rax ; ruby_current_vm_ptr miniruby[0x100282345] <+14565>: testb $0x4, 0x242c(%rax) ``` After: ``` (lldb) disassemble -n vm_opt_str_freeze ruby`vm_exec_core: ruby[0x100280ebe] <+14510>: testb $0x4, 0x120147(%rip) ; ruby_vm_redefined_flag + 43 ``` Co-authored-by: John Hawthorn commit 9d4483f24deaf360dafe745a71211ec73dc7029a Author: Peter Zhu AuthorDate: 2022-12-06 23:25:10 +0900 Commit: git[bot] CommitDate: 2022-12-06 23:27:15 +0900 [ruby/net-http] [DOC] Fix call-seq for Net::HTTP.start The lack of a newline between the call-seq and the documentation was causing the documentation to be parsed as a call-seq. https://github.com/ruby/net-http/commit/1a212e2065 commit 87a1fb9ac306769d74edf7d99aa7860c1e8e07e5 Author: Koichi Sasada AuthorDate: 2022-12-06 18:23:54 +0900 Commit: Koichi Sasada CommitDate: 2022-12-06 18:23:54 +0900 NEWS: `UnboundMethod#==` commit 81e274c9907c9ddb8fbf8ad0c28cd2b39d6e1639 Author: Lars Kanis AuthorDate: 2022-11-01 23:40:52 +0900 Commit: 卜部昌平 CommitDate: 2022-12-06 14:55:05 +0900 [DOC] Improve documentation to RB_ALLOCV Although the storage of the opaque Ruby object is an array of VALUEs, the intention of RB_ALLOCV is to allocate bytes of memory. Notes: Merged: https://github.com/ruby/ruby/pull/6654 commit e9a0f45dc40d3539640739c1cc7e6c47abc02a2f Author: Nobuyoshi Nakada AuthorDate: 2022-12-06 11:06:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-06 11:06:15 +0900 [Bug #19180] rbconfig.rb depends on common.mk commit 68bb6bfc35e8971bde21dd2ed4fc5406d5dc5e7c Author: Martin Dürst AuthorDate: 2022-12-06 10:17:34 +0900 Commit: Martin Dürst CommitDate: 2022-12-06 10:17:34 +0900 update NEWS to mention Unicode version 15.0.0 commit e0487ec45e12044874473d6c4a05cc25a00d8afb Author: Martin Dürst AuthorDate: 2022-12-06 10:10:36 +0900 Commit: Martin Dürst CommitDate: 2022-12-06 10:11:33 +0900 update rbconfig spec to Unicode version 15.0.0 (this includes emoji version 15.0) commit 368b844874afe10d4a402baa15f1e3fd6cb14e16 Author: Martin Dürst AuthorDate: 2022-12-06 10:01:24 +0900 Commit: Martin Dürst CommitDate: 2022-12-06 10:11:33 +0900 update Unicode include files to version 15.0.0 commit 66bf15636f26e84c644d38d4ce6a61a21d059706 Author: Martin Dürst AuthorDate: 2022-12-06 09:50:31 +0900 Commit: Martin Dürst CommitDate: 2022-12-06 10:11:33 +0900 move Unicode include files to version 15.0.0 directory commit 156069d7b6a44656e1155ba8f39dbda3be9d6724 Author: Martin Dürst AuthorDate: 2022-12-06 09:41:36 +0900 Commit: Martin Dürst CommitDate: 2022-12-06 10:11:33 +0900 update Unicode normalization tables to version 15.0.0 commit ea532bd557e7579f82f1375cf9bcad5ade5fd6f8 Author: Martin Dürst AuthorDate: 2022-12-06 09:38:06 +0900 Commit: Martin Dürst CommitDate: 2022-12-06 10:11:33 +0900 add file version check for new Unicode emoji file header The change in the Unicode emoji file header took place at version 14.0.0, but is needed only from version 15.0.0 because in version 14.0.0, another check is still active. commit f82a38be2616b190377877646fd91e3314626085 Author: Martin Dürst AuthorDate: 2022-12-06 09:36:39 +0900 Commit: Martin Dürst CommitDate: 2022-12-06 10:11:33 +0900 change Unicode version to 15.0.0 commit 9aa18f61f297fcb2ee0cbd4be0772607745274b7 Author: Stan Lo AuthorDate: 2022-12-06 09:53:28 +0900 Commit: git[bot] CommitDate: 2022-12-06 09:53:32 +0900 [ruby/irb] Allow disabling autocompletion with `IRB_USE_AUTOCOMPLETE=false` (https://github.com/ruby/irb/pull/469) * Allow using IRB_USE_AUTOCOMPLETE=false to disable autocompletion Currently, the only 2 ways to disable autocompletion are: 1. Create `.irbrc` and set `IRB.conf[:USE_AUTOCOMPLETE] = false` 2. Add the `--noautocomplete` flag when using the `irb` executable Both of them are less convenient than setting a env var and are lesser known to devs. And given the number of problems the autocompletion has (see #445), I think we should allow disabling it with a simple `IRB_USE_AUTOCOMPLETE=false`. * Mention some env var configs in the README commit e31d645da58abce67a0fb8b27251ee532adcfab5 Author: Martin Dürst AuthorDate: 2022-12-06 08:52:54 +0900 Commit: Martin Dürst CommitDate: 2022-12-06 08:58:30 +0900 fix wrong property information in name2ctype.h See https://github.com/ruby/ruby/pull/6451 and https://bugs.ruby-lang.org/issues/19007. This keeps the Unicode version at 14.0.0, so this commit is suited for backporting where applicable. At the time of this commit, the reason for the wrong properties which we fix here is still not completely known, so issue 19007 should be kept open. Co-authored-by: Nobuyoshi Nakada commit b78fbfdbb44ee6979a647fcc5d3e7c1422a531bc Author: Takashi Kokubun AuthorDate: 2022-12-06 08:03:58 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-06 08:03:58 +0900 Skip auto-request-review on fork repositories commit 235fc50447c13b054d8849ef2fcdac55ef1f5f9c Author: Alan Wu AuthorDate: 2022-12-06 07:43:17 +0900 Commit: GitHub CommitDate: 2022-12-06 07:43:17 +0900 YJIT: Remove --yjit-code-page-size (#6865) Certain code page sizes don't work and can cause crashes, so having this value available as a command-line option is a bit dangerous. Remove it and turn it into a constant instead. Notes: Merged-By: maximecb commit e4aba8f519ca0b63fb3da11d6573443545aaef9b Author: Jemma Issroff AuthorDate: 2022-12-06 04:59:07 +0900 Commit: Aaron Patterson CommitDate: 2022-12-06 07:33:16 +0900 Add shape_id to heap dump Notes: Merged: https://github.com/ruby/ruby/pull/6864 commit e7642d8095d7f597c322ed26797d649aec7edbd9 Author: Jemma Issroff AuthorDate: 2022-12-06 06:20:11 +0900 Commit: GitHub CommitDate: 2022-12-06 06:20:11 +0900 YJIT: Extract SHAPE_ID_NUM_BITS into a constant (#6863) Notes: Merged-By: k0kubun commit 1602d75c34c39f6d2f5a505a6532c3664288ef06 Author: Matthew Boeh AuthorDate: 2022-12-05 22:16:27 +0900 Commit: git[bot] CommitDate: 2022-12-05 22:16:33 +0900 [ruby/did_you_mean] Do not suggest #name= for #name and vice versa (https://github.com/ruby/did_you_mean/pull/180) * Do not suggest #name= for #name and vice versa * Avoid allocating unnecessary MatchData Co-authored-by: Jean byroot Boussier Co-authored-by: Jean byroot Boussier commit 74923aaf31ae49cd372f2fe54baa4115a20bfe76 Author: Nobuyoshi Nakada AuthorDate: 2022-12-05 19:31:18 +0900 Commit: git[bot] CommitDate: 2022-12-05 21:03:57 +0900 [ruby/irb] Close leaked pty IOs https://github.com/ruby/irb/commit/cc9b1d7ba8 commit fa865f5752d55c6fd2f88b81401c43de7317dbce Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 19:44:05 +0900 Commit: git[bot] CommitDate: 2022-12-05 19:44:30 +0900 [ruby/bigdecimal] Bump version to 3.1.3 https://github.com/ruby/bigdecimal/commit/25a75c2033 commit 3fe5890f7b2edca1b5e25b1bf240bbbe90c0e867 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 19:29:20 +0900 Commit: git[bot] CommitDate: 2022-12-05 19:29:44 +0900 [ruby/did_you_mean] Bump version to 1.6.2 https://github.com/ruby/did_you_mean/commit/f5b15128e2 commit 3f8dad0463e6d55f800dacb2ed55fa01182b2974 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 17:26:04 +0900 Commit: git[bot] CommitDate: 2022-12-05 17:26:21 +0900 [ruby/zlib] Bump version to 3.0.0 https://github.com/ruby/zlib/commit/f1ce5e3e8d commit 48644e71096c70132be9dfdcbfb414ec2e68d18b Author: Yuta Saito AuthorDate: 2022-12-04 15:34:55 +0900 Commit: Yuta Saito CommitDate: 2022-12-05 17:24:17 +0900 tool/runruby.rb: remove LD_PRELOAD-like env-var options from runruby.rb LD_PRELOAD sometimes forces loading libraries into unrelated executables. For example, macOS on recent Apple Silicon can execute arm64 and arm64e binaries by default, and /usr/bin/clang is built as arm64e. If Ruby is built as arm64, and mkmf launched through runruby.rb spawns /usr/bin/clang, dynamic loader tries to load libruby (arm64e) into clang (arm64). This force-load causes library load failure. In theory, we don't need both LD_PRELOAD and LD_LIBRARY_PATH at the same time, because executables requiring libruby already have libruby dependency, so LD_LIBRARY_PATH is enough for this case. Notes: Merged: https://github.com/ruby/ruby/pull/6857 commit 3396b10ff191a8ac7c4d0dfa051930ce55c53fcf Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 17:22:29 +0900 Commit: git[bot] CommitDate: 2022-12-05 17:22:51 +0900 [ruby/win32ole] Bump version to 1.8.9 https://github.com/ruby/win32ole/commit/e4a1f3a2bf commit b62b7dc705b347e9fdd0aa543a0a22dfa461c8c7 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 17:20:01 +0900 Commit: git[bot] CommitDate: 2022-12-05 17:20:24 +0900 [ruby/uri] Bump version to 0.12.0 https://github.com/ruby/uri/commit/72f22716f8 commit 3fe8907b84d6df75590f273ebd79b417a9543e57 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 17:18:13 +0900 Commit: git[bot] CommitDate: 2022-12-05 17:18:33 +0900 [ruby/un] Bump version to 0.2.1 https://github.com/ruby/un/commit/8f1c78e27c commit eca80901200f96e50b174dcb69af468016eb7968 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 17:16:05 +0900 Commit: git[bot] CommitDate: 2022-12-05 17:16:29 +0900 [ruby/tsort] Bump version to 0.1.1 https://github.com/ruby/tsort/commit/dd71002c65 commit 325ac80c21d9da96b314d1e5b0cb1dc55034878a Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 17:14:49 +0900 Commit: git[bot] CommitDate: 2022-12-05 17:15:11 +0900 [ruby/tmpdir] Bump version to 0.1.3 https://github.com/ruby/tmpdir/commit/ee99c758fd commit 3909cfaa02f96976e2734948e356001345c133be Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 17:12:06 +0900 Commit: git[bot] CommitDate: 2022-12-05 17:13:18 +0900 [ruby/timeout] Bump version to 0.3.1 https://github.com/ruby/timeout/commit/4941e8c871 commit 30379e33c3f5fdac0692ed56cf3cf90aa31a3d3a Author: Nobuyoshi Nakada AuthorDate: 2021-09-01 16:13:18 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-05 17:09:49 +0900 Handle depend files on nmake commit facb5cd4d5405dafabe0bd150f5dc56dc73aa96a Author: Nobuyoshi Nakada AuthorDate: 2021-07-08 17:28:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-05 17:09:49 +0900 Clean compiler intermediate files more commit faafb7b74027213b59e7cfbd4de969a654b27022 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 17:03:05 +0900 Commit: git[bot] CommitDate: 2022-12-05 17:03:29 +0900 [ruby/stringio] Revert "Bump version to 3.0.4" This reverts commit https://github.com/ruby/stringio/commit/aeb7e1a0bde6. https://github.com/ruby/stringio/commit/003dd0d003 commit 95e272baf801aa081569729c5bc518e7ac46b829 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 17:01:57 +0900 Commit: git[bot] CommitDate: 2022-12-05 17:02:25 +0900 [ruby/stringio] Bump version to 3.0.4 https://github.com/ruby/stringio/commit/aeb7e1a0bd commit f5355df6102fbfb4f6f3391448518c7398958a50 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 16:51:16 +0900 Commit: git[bot] CommitDate: 2022-12-05 16:51:34 +0900 [ruby/securerandom] Bump version to 0.2.1 https://github.com/ruby/securerandom/commit/5bfe7d6c16 commit 52c76d0f692c3be8670bcbe1c7791575f4a0389b Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 16:48:35 +0900 Commit: git[bot] CommitDate: 2022-12-05 16:49:03 +0900 [ruby/resolv] Bump version to 0.2.2 https://github.com/ruby/resolv/commit/261f049058 commit 40ee1eea76f91af9387a8d3b55c57340905db05e Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 16:43:15 +0900 Commit: git[bot] CommitDate: 2022-12-05 16:44:39 +0900 [ruby/psych] Bump version to 5.0.0 https://github.com/ruby/psych/commit/4fed0941b9 commit 73404e8f1233bdeb6cbe5b80acf3f0144dbaf192 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 16:37:59 +0900 Commit: git[bot] CommitDate: 2022-12-05 16:38:23 +0900 [ruby/pstore] Bump version to 0.1.2 https://github.com/ruby/pstore/commit/2d95c19c43 commit 7a7d1b38537356aa5d1dd6ed85f00de11751e9a3 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 16:21:07 +0900 Commit: git[bot] CommitDate: 2022-12-05 16:35:19 +0900 [ruby/pp] Bump version to 0.4.0 https://github.com/ruby/pp/commit/8870aa02df commit 0d5ad44ac3565e780076c8cc4b8b2c1fe55027cb Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 16:19:14 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-05 16:33:43 +0900 [ruby/pathname] Bump version to 0.2.1 https://github.com/ruby/pathname/commit/7e796cc78e commit 71b4d355266ae4ae3c2bf05b5882edbdbce1abfc Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 16:17:01 +0900 Commit: git[bot] CommitDate: 2022-12-05 16:17:23 +0900 [ruby/optparse] Bump version to 0.3.0 https://github.com/ruby/optparse/commit/c80dfb1ebd commit c5911408f905fdd90f6b93026adc5a45b26e5bb0 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 16:13:46 +0900 Commit: git[bot] CommitDate: 2022-12-05 16:14:06 +0900 [ruby/open-uri] Bump version to 0.3.0 https://github.com/ruby/open-uri/commit/783892ebb0 commit 04311008b6fcb32d3a9512b644acc6b74e4d07cd Author: Shugo Maeda AuthorDate: 2022-12-05 15:52:45 +0900 Commit: Shugo Maeda CommitDate: 2022-12-05 15:54:21 +0900 Use loc to fix a failure of test_ast.rb ``` 1) Failure: TestAst#test_ranges:test/fiber/scheduler.rb [/home/runner/work/ruby/ruby/src/test/ruby/test_ast.rb:122]: <[]> expected but was <[{:type=>:max_validation_error, :max=> #, :end_pos=> #, :node=> (BLOCK_PASS@203:15-203:19 (ARGSPUSH@203:15-203:20 (SPLAT@203:16-203:19 (LVAR@203:16-203:19 :*)) (HASH@203:16-203:19 (LIST@203:16-203:19 nil (LVAR@203:16-203:19 :**) nil))) (LVAR@203:16-203:19 :&))}]>. ``` commit ccb41a0a362bb6e203939a23e1f353a526989c89 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 15:51:16 +0900 Commit: git[bot] CommitDate: 2022-12-05 15:51:37 +0900 [ruby/nkf] Bump version to 0.1.2 https://github.com/ruby/nkf/commit/98607bd2be commit ad970f54742c3275e407baa8d5777c373b44cfb9 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 15:46:11 +0900 Commit: git[bot] CommitDate: 2022-12-05 15:46:33 +0900 [ruby/net-protocol] Bump version to 0.2.0 https://github.com/ruby/net-protocol/commit/3097bb4cc3 commit 9e114338b97c1b063b26b378f0eff8d215e8ff06 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 15:42:35 +0900 Commit: git[bot] CommitDate: 2022-12-05 15:42:56 +0900 [ruby/net-http] Bump version to 0.3.1 https://github.com/ruby/net-http/commit/09a9ea163a commit 826adbc963912ea705f131320585aaab8873abfc Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 15:39:37 +0900 Commit: git[bot] CommitDate: 2022-12-05 15:39:55 +0900 [ruby/mutex_m] Bump version to 0.1.2 https://github.com/ruby/mutex_m/commit/57f23978cd commit 8a5dffe513a0b5bd8264b4b19a80c7dc1184c3cb Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 15:36:13 +0900 Commit: git[bot] CommitDate: 2022-12-05 15:36:31 +0900 [ruby/logger] Bump version to 1.5.2 https://github.com/ruby/logger/commit/9c4ae3b81d commit 51cfe70135045536b442648e691e84db7e39b3fb Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 15:31:42 +0900 Commit: git[bot] CommitDate: 2022-12-05 15:32:03 +0900 [ruby/ipaddr] Bump version to 1.2.5 https://github.com/ruby/ipaddr/commit/d92acb3982 commit 8c596369e8e308672a34031378e2d445aed61436 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 15:21:44 +0900 Commit: git[bot] CommitDate: 2022-12-05 15:22:15 +0900 [ruby/io-nonblock] Bump version to 0.2.0 https://github.com/ruby/io-nonblock/commit/46c0ec245e commit 519c31e48cfea27bbe4cdfa489f288d68d9aa419 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 15:19:06 +0900 Commit: git[bot] CommitDate: 2022-12-05 15:19:25 +0900 [ruby/getoptlong] Bump version to 0.2.0 https://github.com/ruby/getoptlong/commit/71fbf2123f commit f41d38a6fb778980fc4476067bc81d05ab2c7694 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 15:15:18 +0900 Commit: git[bot] CommitDate: 2022-12-05 15:15:38 +0900 [ruby/forwardable] Bump version to 1.3.3 https://github.com/ruby/forwardable/commit/301687dbfa commit 05caafb4731c796890027cafedaac59dc108a23a Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 15:12:08 +0900 Commit: git[bot] CommitDate: 2022-12-05 15:12:31 +0900 [ruby/fileutils] Bump version to 1.7.0 https://github.com/ruby/fileutils/commit/213e6a3d1f commit 2649055c98fe2b221c50866c3d75e7dccbeddadc Author: Shugo Maeda AuthorDate: 2022-12-05 15:09:19 +0900 Commit: Shugo Maeda CommitDate: 2022-12-05 15:10:15 +0900 Should use argsloc for the last argument for arg_append() commit f6dad3954469b0051286237bd6bb4b19d6d914a7 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 15:09:20 +0900 Commit: git[bot] CommitDate: 2022-12-05 15:09:41 +0900 [ruby/fcntl] Bump version to 1.0.2 https://github.com/ruby/fcntl/commit/20fd776303 commit a0deb649098979ec1c7349080a32415be6185de1 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 15:05:09 +0900 Commit: git[bot] CommitDate: 2022-12-05 15:07:32 +0900 [ruby/etc] Bump version to 1.4.1 https://github.com/ruby/etc/commit/b3e9d9ceb0 commit 3cfb7afbfec492ba5ec2f7f50775bd134816c3cb Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 14:59:12 +0900 Commit: git[bot] CommitDate: 2022-12-05 14:59:33 +0900 [ruby/drb] Bump version to 2.1.1 https://github.com/ruby/drb/commit/7c2d56e9f3 commit fcbafe7f4a22417f20b327a22696df9daceb00da Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 14:56:28 +0900 Commit: git[bot] CommitDate: 2022-12-05 14:56:58 +0900 [ruby/digest] Bump version to 3.1.1 https://github.com/ruby/digest/commit/fad16582ea commit c4d22d47f8bd019ae6df98fafb9db7c20c33d30c Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 14:46:31 +0900 Commit: git[bot] CommitDate: 2022-12-05 14:47:54 +0900 [ruby/delegate] Bump version to 0.3.0 https://github.com/ruby/delegate/commit/420637be45 commit 650b87b0bdbeb351be185604465cbe302082089e Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 14:40:27 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-05 14:40:32 +0900 Manually bumped date-3.3.0 version commit 774dad4915c4f4c8e315d5cb6b4051861f61fedd Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 14:18:53 +0900 Commit: git[bot] CommitDate: 2022-12-05 14:19:16 +0900 [ruby/date] Bump version to 3.3.0 https://github.com/ruby/date/commit/ac1642cf39 commit 0f534bfb6ae03247620beb871c93256b7ad78e78 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 14:12:50 +0900 Commit: git[bot] CommitDate: 2022-12-05 14:15:02 +0900 [ruby/benchmark] Bump version to 0.2.1 https://github.com/ruby/benchmark/commit/303ac8f28b commit 4d39a11cd1a0e45eb38de70b930fab15c504d26d Author: Takashi Kokubun AuthorDate: 2022-12-05 14:04:36 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-05 14:04:50 +0900 Change the dependabot interval to monthly It's not that important for ruby/ruby to keep them up to date. commit d7b00b55a91583610cf5ceac162d6579064126a1 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 13:59:36 +0900 Commit: git[bot] CommitDate: 2022-12-05 13:59:54 +0900 [ruby/rdoc] Bump version to 6.5.0 https://github.com/ruby/rdoc/commit/c5e7ee03ac commit 5fb3dec05868f9513b15d0b0a9c81d4d17459c89 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 13:55:09 +0900 Commit: git[bot] CommitDate: 2022-12-05 13:55:35 +0900 [ruby/racc] Bump version to 1.6.1 https://github.com/ruby/racc/commit/1768ed252f commit 16b2e0301411531a6ced6c673a1f9bd41d7b7e3e Author: Stan Lo AuthorDate: 2022-12-04 20:16:27 +0900 Commit: git[bot] CommitDate: 2022-12-05 12:14:55 +0900 [ruby/reline] Remove unapproved color setting APIs These APIs/configs are not approved by the Ruby core, so they can't be released to the public. This means having them in the codebase will block other fixes/features from being released as well. So this commit removes those exposed interfaces to unblock the release. Hopefully when https://bugs.ruby-lang.org/issues/18996 is approved we can re-implement better APIs. https://github.com/ruby/reline/commit/f7a961c550 commit 06cc30b1898d7536f7024b9d4c7f22ec6a967c15 Author: Hiroshi SHIBATA AuthorDate: 2022-12-05 11:22:48 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-05 11:22:48 +0900 gitignore yjit_exit_locations.dump commit d90835aeb54c635d99a3ba199605d062109a54ed Author: Peter Zhu AuthorDate: 2022-12-05 05:23:09 +0900 Commit: Peter Zhu CommitDate: 2022-12-05 05:23:09 +0900 Fix crash when RGENGC_CHECK_MODE=2 Commit dba61f4 fixes a crash when GC'ing a iseq that failed to compile. However, if we turn on RGENGC_CHECK_MODE then rb_iseq_memsize crashes since it cannot handle an iseq without is_entries. commit e58c4f97fa45206172a19803bfb2270b9a5bc010 Author: Burdette Lamar AuthorDate: 2022-12-05 05:22:25 +0900 Commit: git[bot] CommitDate: 2022-12-05 05:22:31 +0900 [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP (https://github.com/ruby/net-http/pull/84) https://github.com/ruby/net-http/commit/660046386f commit dba61f487cd7c1555f1187a2e2846506c1b143be Author: Aaron Patterson AuthorDate: 2022-12-03 00:44:10 +0900 Commit: Aaron Patterson CommitDate: 2022-12-04 04:03:51 +0900 return early if there is no is_entries buffer If there is a compilation error, is_entries may not be allocated, but ic_size could be greater than 0. If we don't have a buffer to iterate over, just return early. Otherwise GC could segv [Bug #19173] Notes: Merged: https://github.com/ruby/ruby/pull/6853 commit b8a73e704ddc77db36317dda293e99fb0ee641f4 Author: Nobuyoshi Nakada AuthorDate: 2022-12-04 00:31:45 +0900 Commit: git[bot] CommitDate: 2022-12-04 00:53:20 +0900 [ruby/pathname] [Misc #19155] [DOC] Addition of absolute paths https://github.com/ruby/pathname/commit/3cb5ed2576 commit 59e389af2893c0fcf8b2cfa008c9a16825bf56ff Author: Koichi Sasada AuthorDate: 2022-12-03 05:55:33 +0900 Commit: Koichi Sasada CommitDate: 2022-12-03 08:53:12 +0900 UnboundMethod only refer defined_class UnboundMethod records caller's class, like `D` or `E` on the following case: ```ruby class C def foo = :foo end class D < C end class E < C end d = D.instance_method(:foo) e = E.instance_method(:foo) ``` But `d` and `e` only refers `C#foo` so that UnboundMethod doesn't record `D` or `E`. This behavior changes the following methods: * `UnboundMethod#inspect` (doesn't show caller's class) * `UnboundMethod#==` (`d == e` for example) fix https://bugs.ruby-lang.org/issues/18798 Notes: Merged: https://github.com/ruby/ruby/pull/6855 commit 7161bf34e161979b97dbc0c1f7450c195faffcfe Author: Stan Lo AuthorDate: 2022-12-03 07:00:39 +0900 Commit: git[bot] CommitDate: 2022-12-03 07:00:42 +0900 [ruby/irb] Require pathname in test helper (https://github.com/ruby/irb/pull/467) https://github.com/ruby/irb/commit/39c6924c12 commit 41bacd9b0d0a2cec497b0b81c0d5916c5e98e96f Author: Jemma Issroff AuthorDate: 2022-12-03 03:41:06 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-03 05:53:51 +0900 Remove unused rb_shape_flag_shift and rb_shape_flag_mask Notes: Merged: https://github.com/ruby/ruby/pull/6767 commit ebd4c7bb01860735779e90fbaa53f7e4ab78ff6e Author: Jemma Issroff AuthorDate: 2022-12-03 02:45:25 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-03 05:53:51 +0900 Fixed yjit bindings rb_gc_write_barrier Notes: Merged: https://github.com/ruby/ruby/pull/6767 commit 4c5e89791b2e5e168aadb949c90f804736a472bd Author: Jemma Issroff AuthorDate: 2022-12-03 02:33:20 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-03 05:53:51 +0900 Extracted rb_shape_id_offset Notes: Merged: https://github.com/ruby/ruby/pull/6767 commit 606653e43a8207e15d6c3b450754d2a8bd349fc9 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-12-03 01:37:02 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-03 05:53:51 +0900 Update yjit/src/codegen.rs Notes: Merged: https://github.com/ruby/ruby/pull/6767 commit be40af284a03d09e0197daed1c26f098c92d7d2d Author: Aaron Patterson AuthorDate: 2022-11-19 06:13:32 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-03 05:53:51 +0900 make flag clearing better Notes: Merged: https://github.com/ruby/ruby/pull/6767 commit 07fe3d37c5a27629bbddb98c6c7af73054a47754 Author: Aaron Patterson AuthorDate: 2022-11-18 08:17:01 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-03 05:53:51 +0900 only generate wb when we really need to Notes: Merged: https://github.com/ruby/ruby/pull/6767 commit 744b0527eacb6f1d76c225c720c1a3ed23185ad4 Author: Aaron Patterson AuthorDate: 2022-11-17 09:31:14 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-03 05:53:51 +0900 bail on compilation if the comptime receiver is frozen Notes: Merged: https://github.com/ruby/ruby/pull/6767 commit 7b5ee9a8a60bb4d8cdc68aab9795109e766dbc96 Author: Aaron Patterson AuthorDate: 2022-11-17 09:15:43 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-03 05:53:51 +0900 do not fire the wb when writing immediates Notes: Merged: https://github.com/ruby/ruby/pull/6767 commit 17f9bcd7d77c0d9fdd4be605f0791f3f03fd6caf Author: Aaron Patterson AuthorDate: 2022-11-17 08:37:57 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-03 05:53:51 +0900 implement IV writes Notes: Merged: https://github.com/ruby/ruby/pull/6767 commit 69fd673b1a22039c7414a5eb4046d3bf54a0c750 Author: Stan Lo AuthorDate: 2022-12-03 05:43:55 +0900 Commit: git[bot] CommitDate: 2022-12-03 05:43:59 +0900 [ruby/irb] Disable debug cmd tests based on project structure instead of env (https://github.com/ruby/irb/pull/466) It's hard to find an env var that's universally set in all Ruby CI environments but not in local. Checking gemspec seems to be a better way as `syntax_suggest` already uses it for a while. https://github.com/ruby/syntax_suggest/blob/d8f1bca297a392b80b5d167e2be07cf6ac4feae3/spec/spec_helper.rb#L47 commit e9e624b76e1f1b2c8dd5d4a6eea7e55ab491822e Author: Maxime Chevalier-Boisvert AuthorDate: 2022-12-03 05:33:47 +0900 Commit: GitHub CommitDate: 2022-12-03 05:33:47 +0900 YJIT: check that we correctly auto-enable YJIT on Linux (#6854) * YJIT: check that we correctly auto-enable YJIT on Linux YJIT should be automatically built on Linux x86-64 when rustc is present, and we should see +YJIT in the version string. * Use miniruby rather than system ruby Notes: Merged-By: maximecb commit 82b86b4c97963d25c4e8ba12aab327d47c1f5861 Author: Ellen Marie Dash AuthorDate: 2022-07-01 09:28:33 +0900 Commit: git[bot] CommitDate: 2022-12-03 04:21:08 +0900 [rubygems/rubygems] Delete partial file and re-raise on Errno::ENOSPC. Add test for not leaving empty files if ENOSPC is raised during 'gem install' https://github.com/rubygems/rubygems/commit/8e0e20f079 commit 5fafff15c606dd4ad323cc9a9c75776ab9536d54 Author: Takashi Kokubun AuthorDate: 2022-12-03 03:48:50 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-03 03:49:56 +0900 Do not run drb SSL tests on Windows These tests often cause a timeout and this issue seems specific to the Windows platforms. https://github.com/ruby/ruby/actions/runs/3603761925/jobs/6072346738 commit 7b38853bc37a312b0543d402b334d4cc67be5aed Author: Takashi Kokubun AuthorDate: 2022-12-03 03:26:54 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-03 03:26:54 +0900 Skip another flaky Ractor test for YJIT commit 85f041c0c5cb3edf2bd062aa19020bde3b4cbc44 Author: Takashi Kokubun AuthorDate: 2022-12-03 03:18:49 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-03 03:18:50 +0900 Skip a couple of Ractor tests Koichi plans to rework Ractor implementation to address these failures. He agreed to skip flaky Ractor tests for now. commit 1015e69d37b8e75145a3d21e4bd54fa538d1fa68 Author: Alan Wu AuthorDate: 2022-12-03 02:24:17 +0900 Commit: GitHub CommitDate: 2022-12-03 02:24:17 +0900 YJIT: echo "\n" is not portable It's unspecified by POSIX. zsh and dash give a newline and bash doesn't substitute it. Attributes don't have to be followed by a newline anyway, so just remove it. [Bug #19174] commit 6f3c8fdab46872ccece3bf512adac95b64e29111 Author: Koichi Sasada AuthorDate: 2022-12-03 00:03:37 +0900 Commit: Koichi Sasada CommitDate: 2022-12-03 02:23:28 +0900 debug.gem v1.7.0 Notes: Merged: https://github.com/ruby/ruby/pull/6852 commit a5dde619a4d8c9280d5ea1a79d8de858d074a85f Author: Nobuyoshi Nakada AuthorDate: 2022-12-03 02:01:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-03 02:03:57 +0900 Fix up "Avoid bash specific variable substitution" Keep `target_alias` empty if it is set to empty. If it is set to non empty, `os_version_style_transform` is not used. commit c2671fa0513c49c874810677f347d727c4ed4502 Author: Nobuyoshi Nakada AuthorDate: 2022-12-03 01:37:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-03 02:03:23 +0900 downloader.rb: Select less components path commit eb2b717a8bfc18f8ee53ff3d738bcfd3960f8fa4 Author: Alan Wu AuthorDate: 2022-12-03 01:40:16 +0900 Commit: GitHub CommitDate: 2022-12-03 01:40:16 +0900 YJIT: Make case-when optimization respect === redefinition (#6846) * YJIT: Make case-when optimization respect === redefinition Even when a fixnum key is in the dispatch hash, if there is a case such that its basic operations for === is redefined, we need to fall back to checking each case like the interpreter. Semantically we're always checking each case by calling === in order, it's just that this is not observable when basic operations are intact. When all the keys are fixnums, though, we can do the optimization we're doing right now. Check for this condition. * Update yjit/src/cruby_bindings.inc.rs Co-authored-by: Takashi Kokubun Co-authored-by: Takashi Kokubun Notes: Merged-By: maximecb commit fa77bcf7220a5515323a53a8320132418124f202 Author: Takashi Kokubun AuthorDate: 2022-12-03 01:32:49 +0900 Commit: GitHub CommitDate: 2022-12-03 01:32:49 +0900 YJIT: Change the default --yjit-call-threshold to 30 (#6850) Notes: Merged-By: maximecb commit e558c374b7975f9923228cdf325f767eef97a725 Author: Nobuyoshi Nakada AuthorDate: 2022-12-03 01:28:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-03 01:28:34 +0900 downloader.rb: Fix link to absolute cache path commit bb0ec7df3220de317f719d1e8b5aa45bd40dad25 Author: Nobuyoshi Nakada AuthorDate: 2022-12-02 23:44:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-02 23:46:21 +0900 Wait killed threads commit eb6785356d5c5775f26a49ae1138fdb0214ec509 Author: Nobuyoshi Nakada AuthorDate: 2022-12-01 13:49:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-02 23:45:43 +0900 Avoid bash specific variable substitution It may cause parse errors in some other sh even in never executed parts. Notes: Merged: https://github.com/ruby/ruby/pull/6844 commit 11871e49c4fe493d6b958046969bc863f7fb6627 Author: HASUMI Hitoshi AuthorDate: 2022-11-29 10:06:50 +0900 Commit: git[bot] CommitDate: 2022-12-02 19:47:18 +0900 [ruby/reline] Fix misuse of kwarg in IO#raw - Obviously, `tim` is a typo for `time` - This didn't cause an exception because IO#raw is implemented in C and it doesn't check the keyword of the parameters - Though this typo doesn't produce any problems for now, I think it should be fixed just in case for the future - I've used this fixed version of Reline with IRB for several days and didn't find any new problems due to the fix - But I myself am not sure how to make sure this fix is completely robust https://github.com/ruby/reline/commit/e66a9696a1 commit 21ed929e157f1b859534de421a9e3641a2ec22c8 Author: Nobuyoshi Nakada AuthorDate: 2022-12-02 18:43:19 +0900 Commit: git[bot] CommitDate: 2022-12-02 19:33:36 +0900 [ruby/io-console] Omit on JRuby https://github.com/ruby/io-console/commit/9122c181eb commit 678bcfcaa686c0b3125c856a3fc53186126c7554 Author: Nobuyoshi Nakada AuthorDate: 2022-12-02 17:39:30 +0900 Commit: git[bot] CommitDate: 2022-12-02 19:33:35 +0900 [ruby/io-console] Check rawmode option names strictly https://github.com/ruby/io-console/commit/aa8fc7e947 commit 7390eb43fe1bfb069af80ba8f73f7dc4999df0fd Author: Jean Boussier AuthorDate: 2022-11-29 18:39:56 +0900 Commit: Jean Boussier CommitDate: 2022-12-02 17:53:57 +0900 io.c (read_all): grow the buffer exponentially when size is unknown [Feature #6047] Currently it's grown by `BUFSIZ` (1024) on every iteration which is bit wasteful. Instead we can double the capacity whenever there is less than `BUFSIZ` capacity left. Notes: Merged: https://github.com/ruby/ruby/pull/6829 commit 07ac707758395749611e1028ef18127087d198db Author: Takashi Kokubun AuthorDate: 2022-12-02 16:55:55 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-02 16:56:02 +0900 MJIT: Use install = true for bundler/inline It prints a `bundle install`-like output, which seems more useful than a silent output. commit f01bfa8af7e4d163e411d133da7ef170f1b33988 Author: Takashi Kokubun AuthorDate: 2022-12-02 16:40:33 +0900 Commit: git[bot] CommitDate: 2022-12-02 16:41:18 +0900 [ruby/irb] This doesn't work on RubyCI either http://rubyci.s3.amazonaws.com/rhel_zlinux/ruby-master/log/20221202T063302Z.fail.html.gz http://rubyci.s3.amazonaws.com/openbsd-current/ruby-master/log/20221202T053006Z.fail.html.gz http://rubyci.s3.amazonaws.com/freebsd12/ruby-master/log/20221202T063002Z.fail.html.gz http://rubyci.s3.amazonaws.com/osx1013/ruby-master/log/20221202T054503Z.fail.html.gz https://github.com/ruby/irb/commit/13c2484d59 commit ad4eab1a8ccacf7dc79a73407978a5591062f057 Author: Nobuyoshi Nakada AuthorDate: 2022-12-02 16:20:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-02 16:20:43 +0900 Wait killed thread commit 4fa47eabf21f3a13bb614cf8a63708f05decb710 Author: Samuel Williams AuthorDate: 2022-12-02 13:49:42 +0900 Commit: GitHub CommitDate: 2022-12-02 13:49:42 +0900 Clarify the storage argument. (#6849) * Slightly more consistent indentation with other parts of the document. Notes: Merged-By: ioquatix commit 7e3b42d008de3c69c9e6bc1d127f28d91c0e88a9 Author: Takashi Kokubun AuthorDate: 2022-12-02 13:42:57 +0900 Commit: git[bot] CommitDate: 2022-12-02 13:43:36 +0900 [ruby/irb] Skip debug command tests on ruby/ruby Stan has said these tests could be excluded if they don't work on ruby/ruby CI. https://github.com/ruby/irb/commit/11e779ecb7 commit bc3ac86795877b752c082230e561f547e682e951 Author: Yusuke Endoh AuthorDate: 2022-11-28 14:52:13 +0900 Commit: git[bot] CommitDate: 2022-12-02 13:12:16 +0900 [rubygems/rubygems] require bundler/setup only when Bundler is not defined ... to prevent "circular require" when `--disable-gems` is used. This is a simplified case of https://github.com/ruby/ruby/commit/e5a0abc5dedfd011986b16e8f8cf5cda476984c9 ``` $ bundle exec ruby -we 'system("ruby", "-w", "--disable-gems", "-e", "")' :85: warning: :85: warning: loading in progress, circular require considered harmful - /home/mame/work/ruby/local/lib/ruby/3.2.0+3/bundler/setup.rb ``` When bundler/setup is require'ed under --disable-gems mode, it loads rubygems by `require "rubygems" unless defined?(Gem)` in https://github.com/rubygems/rubygems/blob/0b1f682a6d65e57b86ba4853cba23cac361c769d/bundler/lib/bundler/rubygems_integration.rb#L3 In this case, require'ing bundler/setup from rubygems.rb is circular. This change makes rubygems.rb to require "bundler/setup" only when `Bundler` is not defined. https://github.com/rubygems/rubygems/commit/b4608dee5e commit b6c66ead9da8e4a8a0aeed0eece056d74273b6d9 Author: Nobuyoshi Nakada AuthorDate: 2022-12-02 12:08:25 +0900 Commit: git[bot] CommitDate: 2022-12-02 12:14:51 +0900 [ruby/irb] Use the proper ruby command and library path https://github.com/ruby/irb/commit/1416cc1871 commit d55d1a737bf5784856cd35f2d94b7b5d411e6d3c Author: Hiroshi SHIBATA AuthorDate: 2022-12-02 10:34:00 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-02 10:34:00 +0900 Skip examples for SyntaxError extensions on Ruby 3.2 commit 8abf9e6ad0390e384ab47243ed4ece62a4d9cea0 Author: Stan Lo AuthorDate: 2022-12-02 10:05:07 +0900 Commit: git[bot] CommitDate: 2022-12-02 10:05:22 +0900 [ruby/irb] Test debug commands without yamatanooroti (https://github.com/ruby/irb/pull/464) * Add debug command tests that don't require yamatanooroti * Remove debug command related yamatanooroti tests As discussed in https://github.com/ruby/irb/pull/449#pullrequestreview-1187255149, we should avoid adding new tests that need yamatanooroti because it's not maintained by the Ruby org. And since debug commands are now tested in `test/irb/test_debug_cmd.rb`, we don't need these tests anymore. * Test against latest debug gem https://github.com/ruby/irb/commit/78a8aa8834 commit 85a1c67a6550641e5de96cdbee1713be3f1e8882 Author: schneems AuthorDate: 2022-12-02 04:27:59 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-02 09:36:40 +0900 [ruby/syntax_suggest] Add temp support for 3.2.0-preview{3,2,1} This SyntaxError#path feature only exists in Ruby HEAD. Until it is released in a preview I want to continue to support existing releases of 3.2.0 (and also so CI will continue to work, as it still uses a preview version to execute tests). https://github.com/ruby/syntax_suggest/commit/9862032465 commit 652e2d8f5d0e0210a4ef3cb541504433dbae57b3 Author: Hiroshi SHIBATA AuthorDate: 2022-12-01 19:45:09 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-12-02 09:36:39 +0900 [ruby/syntax_suggest] No longer need PathnameFromMessage with SyntaxError#path. https://bugs.ruby-lang.org/issues/19138 Co-authored-by: Nobuyoshi Nakada https://github.com/ruby/syntax_suggest/commit/8e1e7b3298 commit def258e77544409df507c0fa153cf40e84d65082 Author: John Hawthorn AuthorDate: 2022-12-02 04:51:18 +0900 Commit: John Hawthorn CommitDate: 2022-12-02 09:31:54 +0900 Improve packing of iseq_constant_body struct By moving the two bools into a packing gap above the mark_bits pointer/union we can save 8 bytes in the struct and avoid an extra cache line (328 bytes vs 320 bytes). Co-authored-by: Adam Hess Notes: Merged: https://github.com/ruby/ruby/pull/6847 commit dcbea7671be74a328f115c6410980f54c872c478 Author: Takashi Kokubun AuthorDate: 2022-12-02 09:13:38 +0900 Commit: GitHub CommitDate: 2022-12-02 09:13:38 +0900 YJIT: Respect destination num_bits on STUR (#6848) Notes: Merged-By: k0kubun commit 8ffa8fc192f4c4005fd2216108ee82876b4165cb Author: Takashi Kokubun AuthorDate: 2022-12-02 08:37:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-12-02 08:37:41 +0900 Relax the timeout of a YAML test https://cirrus-ci.com/task/4752663775019008 commit f0cf70c84065f0780f9bd251688c56da2ecede28 Author: John Hawthorn AuthorDate: 2022-11-24 07:01:03 +0900 Commit: John Hawthorn CommitDate: 2022-12-02 08:37:15 +0900 Add a macro for SHAPE_DEBUG Like before, default to VM_CHECK_MODE > 0, but this allows just enabling shape debug helpers without the rest of VM_CHECK_MODE. Notes: Merged: https://github.com/ruby/ruby/pull/6800 commit da204d2eee51082854ff6ec89eacea2911ea1590 Author: John Hawthorn AuthorDate: 2022-11-23 07:28:22 +0900 Commit: John Hawthorn CommitDate: 2022-12-02 08:37:15 +0900 Inherit max_iv_count from superclass In 274870bd5434ab64ac3a3c9db9aa27d262c1d6d6 we gained the ability to make an educated guess at the max_iv_count of a class based on its initialize method. This commit makes subclasses inherit their super's max_iv_count, which makes the estimate work in cases that the subclass does not have an initialize method. Notes: Merged: https://github.com/ruby/ruby/pull/6800 commit 171e94bd953b381b2d19e56cf04eadac436f7a31 Author: Burdette Lamar AuthorDate: 2022-12-02 08:17:31 +0900 Commit: git[bot] CommitDate: 2022-12-02 08:17:47 +0900 [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTPHeader (https://github.com/ruby/net-http/pull/83) https://github.com/ruby/net-http/commit/1ea5004098 commit 3d272b0fc822f5c2e9c716377b7fcecf15426b27 Author: Jean byroot Boussier AuthorDate: 2022-12-02 07:32:41 +0900 Commit: GitHub CommitDate: 2022-12-02 07:32:41 +0900 Module#remove_method: Check frozen on the right object Previously, the frozen check happened on `RCLASS_ORIGIN(self)`, which can return an iclass. The frozen check is supposed to respond to objects that users can call methods on while iclasses are hidden from users. Other mutation methods like Module#{define_method,alias_method,public} don't do this. Check frozen status on the module itself. Fixes [Bug #19164] and [Bug #19166]. Co-authored-by: Alan Wu Notes: Merged: https://github.com/ruby/ruby/pull/6842 Merged-By: XrXr commit 9da2a5204f32a4f2ce135fddde2abb6e07d647e9 Author: Nobuyoshi Nakada AuthorDate: 2022-12-02 01:50:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-02 01:50:48 +0900 [Bug #19087] Merge to "trailing garbage" case commit c94cd8534afad86c75f2c7b4f4a2ab4ea2dc4837 Author: Nobuyoshi Nakada AuthorDate: 2022-12-02 01:47:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-02 01:47:30 +0900 [Bug #19087] Fix an assertion of `String#to_c` commit c0dc717c45fc3abc64a337c3481bc4555b675d87 Author: Nobuyoshi Nakada AuthorDate: 2022-10-28 19:28:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-02 01:35:45 +0900 [Bug #19087] Disallow successive underscores in Complex string Notes: Merged: https://github.com/ruby/ruby/pull/6645 commit 914cf26d6e65307910854723964e75edaa748377 Author: S-H-GAMELINKS AuthorDate: 2022-11-27 21:17:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-02 01:31:27 +0900 parenthesize to macro Notes: Merged: https://github.com/ruby/ruby/pull/6700 commit 1a64d45c67feed7355d6b53746801acb319394a4 Author: S-H-GAMELINKS AuthorDate: 2022-11-15 13:21:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-02 01:31:27 +0900 Introduce encoding check macro Notes: Merged: https://github.com/ruby/ruby/pull/6700 commit 7bc63d6f430422535f4dd460a98f3a90578e524c Author: S-H-GAMELINKS AuthorDate: 2022-11-04 19:06:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-02 01:30:01 +0900 Introduce argf_encoding function Notes: Merged: https://github.com/ruby/ruby/pull/6672 commit 040e0c8d671f86b20e2b929b4077fcc74aa55074 Author: S-H-GAMELINKS AuthorDate: 2022-11-22 21:49:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-02 01:19:55 +0900 Reuse NIL_OR_UNDEF_P macro Notes: Merged: https://github.com/ruby/ruby/pull/6787 commit 2c939458cab06b4fda09b55a57b8bac30efe6b17 Author: Takashi Kokubun AuthorDate: 2022-12-02 00:59:56 +0900 Commit: GitHub CommitDate: 2022-12-02 00:59:56 +0900 YJIT: Reorder branches for Fixnum opt_case_dispatch (#6841) * YJIT: Reorder branches for Fixnum opt_case_dispatch Co-authored-by: Maxime Chevalier-Boisvert Co-authored-by: Alan Wu * YJIT: Don't support too large values Co-authored-by: Maxime Chevalier-Boisvert Co-authored-by: Alan Wu Notes: Merged-By: maximecb commit 5872fd6f6cc5ddde33df94fb11e773eeb653e55e Author: Nobuyoshi Nakada AuthorDate: 2022-12-01 22:50:25 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-02 00:56:52 +0900 [Feature #19163] Marshal-loaded Data object also should be frozen Notes: Merged: https://github.com/ruby/ruby/pull/6843 commit a14a1a5626a4d8e661a3e606f8f92b8c455b9a04 Author: Nobuyoshi Nakada AuthorDate: 2022-12-01 17:26:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-02 00:56:52 +0900 [Feature #19163] Data object should be frozen Notes: Merged: https://github.com/ruby/ruby/pull/6843 commit 06a0c580161db7084e8276fcd9fbb5d25bde4a03 Author: Jemma Issroff AuthorDate: 2022-12-02 00:53:50 +0900 Commit: GitHub CommitDate: 2022-12-02 00:53:50 +0900 YJIT: fix 32 and 16 bit register store (#6840) * Fix 32 and 16 bit register store in YJIT Co-Authored-By: Takashi Kokubun * Remove an unnecessary diff * Reuse an rm_num_bits result * Use u16::MAX instead * Update the link Co-authored-by: Alan Wu * Just use sturh for 16 bits Co-authored-by: Takashi Kokubun Co-authored-by: Alan Wu Notes: Merged-By: maximecb commit 0436f1e15a8e79ffef5ea412ac1312cbf9f063e6 Author: Samuel Williams AuthorDate: 2022-12-01 19:00:33 +0900 Commit: GitHub CommitDate: 2022-12-01 19:00:33 +0900 Introduce `Fiber#storage` for inheritable fiber-scoped variables. (#6612) Notes: Merged-By: ioquatix commit 9869bd1d612b489df806cf95bcb56965a02424e0 Author: Nobuyoshi Nakada AuthorDate: 2022-11-22 14:25:44 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-01 17:38:33 +0900 [Bug #19108] Check for the encoding of pack/unpack format Notes: Merged: https://github.com/ruby/ruby/pull/6785 commit a1d341efaf0b357e7aad3700ed7551559b4fcdf8 Author: Nobuyoshi Nakada AuthorDate: 2022-12-01 14:11:50 +0900 Commit: git[bot] CommitDate: 2022-12-01 17:08:02 +0900 [ruby/delegate] Revert "Fix `DelegateClass` block "method redefined" warning" https://github.com/ruby/delegate/commit/2a91436284 commit 4e68b594314760611d0926c3de70a4cad26802cd Author: Nobuyoshi Nakada AuthorDate: 2022-11-20 22:59:52 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-01 17:05:41 +0900 [Feature #19138] Add `SyntaxError#path` Notes: Merged: https://github.com/ruby/ruby/pull/6779 commit 5752d11f1f33d277356373da749db111e03c96b5 Author: Alan Wu AuthorDate: 2022-12-01 05:04:31 +0900 Commit: Alan Wu CommitDate: 2022-12-01 06:27:39 +0900 Use RTEST and add test for GH-6832 Technically we shouldn't see Qfalse now, but RTEST also compiles down to just one branch anyways. Pretty contrived issue, but easy to fix. Notes: Merged: https://github.com/ruby/ruby/pull/6832 commit 4b9d10b8330b5072993f2c32eaf701c5c1aa7e55 Author: Zack Deveau AuthorDate: 2022-11-30 04:40:43 +0900 Commit: Alan Wu CommitDate: 2022-12-01 06:27:39 +0900 struct.c (struct_ivar_get): add conditional for potential Qnil returned by rb_class_superclass struct_ivar_get recently started using rb_class_superclass to resolve super instead of RCLASS_SUPER. This change made Qnil a possible case we need to return from within the struct_ivar_get for loop. Notes: Merged: https://github.com/ruby/ruby/pull/6832 commit 0d3fc08ff46cdfa389170db6141f1747d5d9d283 Author: Takashi Kokubun AuthorDate: 2022-12-01 06:16:11 +0900 Commit: GitHub CommitDate: 2022-12-01 06:16:11 +0900 YJIT: Optimize rb_int_equal (#6838) Notes: Merged-By: maximecb commit d98d84b75dab450070ff3dc7154661a9941fb44d Author: Maxime Chevalier-Boisvert AuthorDate: 2022-12-01 04:09:10 +0900 Commit: GitHub CommitDate: 2022-12-01 04:09:10 +0900 YJIT: add new counters for deferred compilation and queued blocks (#6837) Notes: Merged-By: maximecb commit ab4c7077cc44cd6725625562b7380a44cf462190 Author: Yusuke Endoh AuthorDate: 2022-12-01 01:31:24 +0900 Commit: Yusuke Endoh CommitDate: 2022-12-01 02:38:51 +0900 Prevent segfault in String#scan with ObjectSpace.each_object Calling `String#scan` without a block creates an incomplete MatchData object whose `RMATCH(match)->str` is Qfalse. Usually this object is not leaked, but it was possible to pull it by using ObjectSpace.each_object. This change hides the internal MatchData object by using rb_obj_hide. Fixes [Bug #19159] Notes: Merged: https://github.com/ruby/ruby/pull/6836 commit f0c9d2a0c801569725459420acefc8d983bbf307 Author: Nobuyoshi Nakada AuthorDate: 2022-11-30 23:04:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-01 02:36:20 +0900 [ruby/rdoc] Fix `=end` delimiter https://github.com/ruby/rdoc/commit/e1679fa7e4 Notes: Merged: https://github.com/ruby/ruby/pull/6835 commit 99cad3fccdb9e7a66ff4c8231d43dafa336b2687 Author: Nobuyoshi Nakada AuthorDate: 2022-11-30 22:59:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-01 02:36:20 +0900 [ruby/rdoc] Non-RD part feature has not been imported to RDoc https://github.com/ruby/rdoc/commit/fe0159de2f Notes: Merged: https://github.com/ruby/ruby/pull/6835 commit c87b3ee671581594b60ae7cac05a053b1c12f3b9 Author: Nobuyoshi Nakada AuthorDate: 2022-11-30 22:44:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-01 02:36:20 +0900 [ruby/rdoc] Use Tempfile https://github.com/ruby/rdoc/commit/0b9dde5ab4 Notes: Merged: https://github.com/ruby/ruby/pull/6835 commit d752cf7601adbe4bc2dc658effc2f61563a7dfb7 Author: Nobuyoshi Nakada AuthorDate: 2022-11-25 14:22:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-12-01 02:28:49 +0900 Use class methods of `File` over `Kernel.open` and `IO.read` Notes: Merged: https://github.com/ruby/ruby/pull/6834 commit a0b0365e905e1ac51998ace7e6fc723406a2f157 Author: Alan Wu AuthorDate: 2022-11-30 06:14:13 +0900 Commit: Maxime Chevalier-Boisvert CommitDate: 2022-12-01 02:23:50 +0900 YJIT: Deallocate `struct Block` to plug memory leaks Previously we essentially never freed block even after invalidation. Their reference count never reached zero for a couple of reasons: 1. `Branch::block` formed a cycle with the block holding the branch 2. Strong count on a branch that has ever contained a stub never reached 0 because we increment the `.clone()` call for `BranchRef::into_raw()` didn't have a matching decrement. It's not safe to immediately deallocate blocks during invalidation since `branch_stub_hit()` can end up running with a branch pointer from an invalidated branch. To plug the leaks, we wait until code GC or global invalidation and deallocate the blocks for iseqs that are definitely not running. Notes: Merged: https://github.com/ruby/ruby/pull/6833 commit b30248f74a8f6ce37a78f07597c7c5452ff50abd Author: Alan Wu AuthorDate: 2022-11-30 05:41:25 +0900 Commit: Maxime Chevalier-Boisvert CommitDate: 2022-12-01 02:23:50 +0900 YJIT: Deallocate when assumptions tables are empty When we run global invalidation for TracePoints or code GC, we clear out all blocks in our assumptions table but we don't deallocate the backing buffers. Let's reclaim some memory during these rare events. Notes: Merged: https://github.com/ruby/ruby/pull/6833 commit 03f1e6a2aa8aa1d5aef79a33a243372a457f0fa2 Author: Alan Wu AuthorDate: 2022-11-30 05:37:29 +0900 Commit: Maxime Chevalier-Boisvert CommitDate: 2022-12-01 02:23:50 +0900 YJIT: Fix IseqPayload::pages memory bloat HashSet::clear() doesn't deallocate the backing buffer and shrink the capacity. Replace with a 0-capcity set instead so we reclaim some memory each code GC. Notes: Merged: https://github.com/ruby/ruby/pull/6833 commit d532d27507678daa400e1e0ed3da3c014cd38f27 Author: Nobuyoshi Nakada AuthorDate: 2022-11-30 19:11:42 +0900 Commit: git[bot] CommitDate: 2022-11-30 19:18:57 +0900 [ruby/irb] Use class methods of `File` over `Kernel.open` https://github.com/ruby/irb/commit/e0ec5e1bd8 commit cf3b305c43b81161c2c9bdfba48823ecf7e41c6c Author: Nobuyoshi Nakada AuthorDate: 2022-11-30 19:06:12 +0900 Commit: git[bot] CommitDate: 2022-11-30 19:09:17 +0900 [ruby/un] wait_writable: close opened file https://github.com/ruby/un/commit/b08aeb9c48 commit c8bfbbc25e4bc7c3ff59fae40471923a2793ba48 Author: Hiroshi SHIBATA AuthorDate: 2022-11-30 17:20:38 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-30 17:20:38 +0900 Removed documentation for incomplete option about [Feature #17134] commit d0c0d7fa5b2725dfcc98eac3348527a2924a9120 Author: Takashi Kokubun AuthorDate: 2022-11-30 15:35:17 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-30 15:35:26 +0900 MJIT: Revert FL_EXIVAR check optimization It seems to slow down optcarrot. I'll revisit this later. commit a1d70f5b120478d11151dc0e2cd554f38574953b Author: Takashi Kokubun AuthorDate: 2022-11-30 14:42:35 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-30 14:45:34 +0900 MJIT: Rename mjit_compile_attr to mjit_sp_inc There's no mjit_compile.inc, so no need to use this prefix anymore. commit 7a2b1364ef5889497e7c203f644610f346bdd80a Author: Takashi Kokubun AuthorDate: 2022-11-30 14:32:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-30 14:34:46 +0900 MJIT: Merge mjit_unit.h into mjit_c.h The distinction doesn't make much difference today. commit ecc15bc94afc574b6f06478a8625d6364db5c7a9 Author: Takashi Kokubun AuthorDate: 2022-11-30 14:19:36 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-30 14:26:59 +0900 MJIT: Rename mjit_compiler.c to mjit_c.c It's no longer about the compiler logic itself. commit 9a84971315f39e3fabd382fd35728eb254333fe2 Author: Takashi Kokubun AuthorDate: 2022-11-30 13:52:29 +0900 Commit: git[bot] CommitDate: 2022-11-30 13:52:33 +0900 [ruby/irb] Make sure ls doesn't return an array (https://github.com/ruby/irb/pull/461) https://github.com/ruby/irb/commit/367797bb05 commit d6e91784ab78c25e864869b05a149e7c9cfeab7d Author: schneems AuthorDate: 2022-11-30 05:09:20 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-30 12:58:47 +0900 Update SyntaxSuggest to use angle brackets `>` ``` $ ruby tool/sync_default_gems.rb syntax_suggest Sync ruby/syntax_suggest ``` https://github.com/ruby/syntax_suggest/pull/161 Notes: Merged: https://github.com/ruby/ruby/pull/6831 commit 33a9a7fd8d22ea5d87789e64a931dd03d28d9407 Author: Yusuke Endoh AuthorDate: 2022-11-30 11:35:44 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-30 11:35:44 +0900 Mention Exception#detailed_message in NEWS.md commit 4e13f5b579576c3f23f0b10a808d22766ed192b9 Author: Yusuke Endoh AuthorDate: 2022-11-30 11:33:33 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-30 11:34:02 +0900 Mention Regexp.timeout= in NEWS.md commit bbed2269bcc898096cc6a0aa66bb0e76a5ae2794 Author: Takashi Kokubun AuthorDate: 2022-11-30 05:46:21 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-30 05:46:26 +0900 Fix unused variable warnings builtin seems to be not handling this correctly. commit 3e4d1a1dd1c78e8e9cd18d0a39b6846d79f90d6e Author: Takashi Kokubun AuthorDate: 2022-11-30 00:09:32 +0900 Commit: GitHub CommitDate: 2022-11-30 00:09:32 +0900 YJIT: Skip checking interrupt_mask (#6825) Notes: Merged-By: maximecb commit 67ae3e97388bc9083cb3cc2f22ba8abc28d6fda3 Author: yui-knk AuthorDate: 2022-11-29 11:42:53 +0900 Commit: yui-knk CommitDate: 2022-11-29 18:23:00 +0900 Add a test case for argument forwarding Notes: Merged: https://github.com/ruby/ruby/pull/6828 commit ed4b5c4f21d50609d1e895449f50462c293b2a9d Author: Nobuyoshi Nakada AuthorDate: 2022-11-27 20:14:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-29 18:12:43 +0900 Extract outdate-bundled-gems.rb commit 8e3ac264df55ed7903f4f9519b353ca182eea81f Author: Nobuyoshi Nakada AuthorDate: 2022-11-27 18:19:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-29 18:12:43 +0900 Fix dependencies of outdate-bundled-gems Extract new gems then remove outdated gem directories. commit aacaa2ec5e13d7d678b58208bf3d6c0551f251cd Author: Nobuyoshi Nakada AuthorDate: 2022-11-27 01:12:06 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-29 18:12:43 +0900 Refine outdate-bundled-gems commit f19deef323609e46a732edaa983e7bfed16582c0 Author: Takashi Kokubun AuthorDate: 2022-11-29 17:33:49 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-29 17:47:25 +0900 MJIT: Move Primitive helpers to mjit_c.rb commit 27f34eeb5a95263f8669e6998247d83606c3763f Author: Takashi Kokubun AuthorDate: 2022-11-29 17:21:27 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-29 17:23:51 +0900 MJIT: Self-contain extern declarations I'm trying to get rid of mjit_compiler.c, and this helps that migration. commit 8a0acbea4cf7be4bfaf329d077b2b4c9a2ad425b Author: Takashi Kokubun AuthorDate: 2022-11-29 17:12:29 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-29 17:12:33 +0900 MJIT: Refactor CDHASH handling Converting a CDHASH into a safe Hash is a lot of work, but retrieving just values is much easier. commit 44165df121f13ef7b148b8ba4aa08386a24c4df5 Author: Takashi Kokubun AuthorDate: 2022-11-29 16:53:26 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-29 16:53:33 +0900 MJIT: Cache an ISeq pointer instance to obviate one rb_funcall. This also removes rb_ptr as refactoring. commit 2329cbeb5bf7c7e8720cd4512285e6784c41367e Author: Takashi Kokubun AuthorDate: 2022-11-29 16:32:24 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-29 16:32:27 +0900 MJIT: Merge exivar guards as well obviating status->merge_ivar_guards_p as refactoring commit 322e546f60e3a66b9af6aa1b8c7006369932ce27 Author: Takashi Kokubun AuthorDate: 2022-11-29 15:46:00 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-29 15:46:20 +0900 MJIT: Remove an unused field This has not been used since recent shape-related changes. commit 8be62f06c8e583578aa3b8ffc4bf02e3273248df Author: yui-knk AuthorDate: 2022-11-28 18:54:16 +0900 Commit: yui-knk CommitDate: 2022-11-29 15:39:56 +0900 Remove ruby2_keywords related to args forwarding This was introduced by b609bdeb5307e280137b4b2838af0fe4e4b46f1c to suppress warnings. However these warngins were deleted by beae6cbf0fd8b6619e5212552de98022d4c4d4d4. Therefore these codes are not needed anymore. Notes: Merged: https://github.com/ruby/ruby/pull/6826 commit bb6f933d51ae4c663a1d768508fc840c56be07a3 Author: Takashi Kokubun AuthorDate: 2022-11-29 14:59:00 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-29 15:03:16 +0900 MJIT: Get rid of is_entries copy MJIT worker no longer exists, so we don't need this safeguard anymore. commit 9c13fc614c2de0ca4aa8b6ecdd84033ef689b542 Author: Takashi Kokubun AuthorDate: 2022-11-29 14:33:55 +0900 Commit: GitHub CommitDate: 2022-11-29 14:33:55 +0900 MJIT: Make it parsable by Solargraph (#6827) * Revert "Revert "MJIT: Make it parsable by Solargraph"" This reverts commit 8e18761da1932df88bfb6505acbda4740e1b2930. * Call rb_gc_register_mark_object Notes: Merged-By: k0kubun commit acb76663ba20241e7c2552aafae8b1d883520b9a Author: Takashi Kokubun AuthorDate: 2022-11-29 14:22:02 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-29 14:23:14 +0900 MJIT: Rename mjit_compiler.h to mjit_c.h because it exists primarily for generating mjit_c.rb. commit 74bdf09215da3c9f1eb31feea3666359acbce527 Author: Shugo Maeda AuthorDate: 2022-11-29 14:17:03 +0900 Commit: Shugo Maeda CommitDate: 2022-11-29 14:18:16 +0900 Add tests for [Feature #19134] https://bugs.ruby-lang.org/issues/19134?next_issue_id=19133&prev_issue_id=19135#note-4 commit 4f8c6711ddb09bb9d0dcbf784e2cdec81c7d427e Author: Takashi Kokubun AuthorDate: 2022-11-29 13:57:36 +0900 Commit: git[bot] CommitDate: 2022-11-29 13:58:29 +0900 [ruby/erb] Version 4.0.2 https://github.com/ruby/erb/commit/8c8ff1551b commit 129d208f9a5d54faf2eb4d944bc874fe347bfd64 Author: Takashi Kokubun AuthorDate: 2022-11-29 13:55:58 +0900 Commit: git[bot] CommitDate: 2022-11-29 13:56:03 +0900 [ruby/erb] Fix line numbers after multi-line <%# (https://github.com/ruby/erb/pull/42) https://github.com/ruby/erb/commit/526885923e commit b5726892d0d9bf282d54e21e8f170f754c235456 Author: Shugo Maeda AuthorDate: 2022-11-29 10:31:44 +0900 Commit: Shugo Maeda CommitDate: 2022-11-29 11:22:09 +0900 Use rbs HEAD for [Feature #19134] Notes: Merged: https://github.com/ruby/ruby/pull/6818 commit a0e4dc52b0ba4a6707cad04ea926dab6cae8ed0f Author: Shugo Maeda AuthorDate: 2022-11-28 17:27:27 +0900 Commit: Shugo Maeda CommitDate: 2022-11-29 11:22:09 +0900 Use idFWD_* instead of ANON_*_ID Notes: Merged: https://github.com/ruby/ruby/pull/6818 commit 4fc668a4f3b9b67cc7566096ab55cab34c67c158 Author: Shugo Maeda AuthorDate: 2022-11-28 10:40:08 +0900 Commit: Shugo Maeda CommitDate: 2022-11-29 11:22:09 +0900 Allow ** in def foo(...) [Feature #19134] Notes: Merged: https://github.com/ruby/ruby/pull/6818 commit ee49fe5d34c1498a532bbaeaf4c12b162d0df78f Author: Burdette Lamar AuthorDate: 2022-11-29 08:33:09 +0900 Commit: git[bot] CommitDate: 2022-11-29 08:33:15 +0900 [ruby/net-http] Enhanced RDoc for header Range (https://github.com/ruby/net-http/pull/82) https://github.com/ruby/net-http/commit/a26f62a2e5 commit 579c8cb01c7e2192b9741103c54d9064ad01247b Author: moenodedev <113457600+moenodedev@users.noreply.github.com> AuthorDate: 2022-11-29 05:33:00 +0900 Commit: git[bot] CommitDate: 2022-11-29 08:20:59 +0900 [rubygems/rubygems] Remove pointer to RVM documentation https://github.com/rubygems/rubygems/commit/7467019d87 commit 8a74361b41810b5fda74c573810fa1712c4a7841 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-11-29 06:45:42 +0900 Commit: GitHub CommitDate: 2022-11-29 06:45:42 +0900 Update yjit.md to mention `RUBY_YJIT_ENABLE` commit d13de3a62eddb3a706597f7be975e32e5beb3583 Author: Takashi Kokubun AuthorDate: 2022-11-29 03:44:19 +0900 Commit: git[bot] CommitDate: 2022-11-29 03:44:36 +0900 [ruby/irb] Version 1.5.1 https://github.com/ruby/irb/commit/f9507923fa commit c5279db75f3e00b5c7df4d16bc38f6446f394260 Author: Takashi Kokubun AuthorDate: 2022-11-29 03:42:54 +0900 Commit: git[bot] CommitDate: 2022-11-29 03:42:59 +0900 [ruby/irb] Fix the debug.gem force-loader for Ruby 3.2 (https://github.com/ruby/irb/pull/458) * Fix the debug.gem force-loader for Ruby 3.2 * Support 1.7.0dev format as well commit f3ad68dd161da60bb4f4908974839bb2b5736a85 Author: Yusuke Endoh AuthorDate: 2022-11-29 01:14:47 +0900 Commit: git[bot] CommitDate: 2022-11-29 01:20:40 +0900 [ruby/optparse] Fix the test failure in ruby/ruby ``` $ make test-all TESTS=test/optparse/ ... [148/178] TestOptionParserDidYouMean#test_raise_unknown = 0.00 s 1) Failure: TestOptionParserDidYouMean#test_raise_unknown [/home/mame/work/ruby/test/optparse/test_optparse.rb:106]: <["--bar"]> expected but was <[]>. ``` In the old test/unit (bundled in ruby/ruby), when a test class inherits from another test class, the child class runs all the tests defined in the parent class. However, it looks like the new test/unit does not do so. This is because the test failure does not occur in ruby/optparse. As a tentative solution, this changes the option names in TestOptionParser to avoid the name conflict with TestOptionParserDidYouMean. https://github.com/ruby/optparse/commit/fee86ef7a4 commit 0bfb185654b13237b874dc00d5719e695416b711 Author: Nobuyoshi Nakada AuthorDate: 2022-10-30 00:36:19 +0900 Commit: git[bot] CommitDate: 2022-11-28 23:24:06 +0900 [ruby/optparse] Add `raise_unknown` flag (https://github.com/ruby/optparse/pull/38) https://github.com/ruby/optparse/commit/12529653cd commit 476700c06f8e54025387f793e17e0522c3f05e16 Author: schneems AuthorDate: 2022-11-26 07:29:19 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-28 20:55:42 +0900 [ruby/syntax_suggest] v1.0.0 https://github.com/ruby/syntax_suggest/commit/f142fcbf96 commit f64ba0fadd97adbd7cb8171fc8aa010b829a7185 Author: schneems AuthorDate: 2022-11-26 07:26:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-28 20:55:41 +0900 [ruby/syntax_suggest] Do not output "Syntax OK" when there's an error Due to a problem with ripper we do not recognize `break` as invalid code. It's confusing that "Syntax OK" is output in that case. When there's no syntax error, the algorithm should not say anything. The exception is in the CLI and that's for compatibility with `ruby -wc` ``` $ cat /tmp/break.rb break ⛄️ 3.1.2 🚀 /Users/rschneeman/Documents/projects/syntax_suggest (schneems/no-syntax-not-okay-break) $ ruby -wc /tmp/break.rb Syntax OK ``` > Note that this is invalid, running this code will raise a Syntax error. ``` $ exe/syntax_suggest /tmp/break.rb Syntax OK ``` Close https://github.com/ruby/syntax_suggest/pull/157 https://github.com/ruby/syntax_suggest/commit/d7bd8f03a2 commit 4d51a0b495262073a8c1c0c9d7f276c4e6260688 Author: schneems AuthorDate: 2022-11-26 07:12:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-28 20:55:41 +0900 [ruby/syntax_suggest] Failing test for #157 https://github.com/ruby/syntax_suggest/commit/14e8cdc916 Notes: Merged: https://github.com/ruby/ruby/pull/6824 commit ee11090b280e21304a23511714f41f4057e59605 Author: Nobuyoshi Nakada AuthorDate: 2022-11-28 19:37:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-28 20:55:09 +0900 sync_default_gems.rb: move default_branch to REPOSITORIES `sync_default_gems_with_commits` also needs the default branch. Notes: Merged: https://github.com/ruby/ruby/pull/6823 commit 6559ba3b5ca5d376736ac3e682d76838e0a05483 Author: Nobuyoshi Nakada AuthorDate: 2022-11-28 19:28:50 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-28 20:55:09 +0900 sync_default_gems.rb: suppress a duplicated range warning Notes: Merged: https://github.com/ruby/ruby/pull/6823 commit 8bac8772df7d202ce290a8e056a680fd5b8c9d23 Author: Hiroshi SHIBATA AuthorDate: 2022-11-28 16:50:41 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-28 18:28:31 +0900 Added permission restrictions for GitHub actions Notes: Merged: https://github.com/ruby/ruby/pull/6821 commit 906a2f067dfc806b7412c7cd79bb7462fc8c7827 Author: Nobuyoshi Nakada AuthorDate: 2022-11-28 17:13:39 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-28 17:17:06 +0900 sync_default_gems.rb: extend for singleton methods commit 8e18761da1932df88bfb6505acbda4740e1b2930 Author: Takashi Kokubun AuthorDate: 2022-11-28 17:13:09 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 17:13:23 +0900 Revert "MJIT: Make it parsable by Solargraph" This reverts commit ccd8dd6ad395bbd9f5290e0fcb7929e5e5d36767. Revert "MJIT: Fix miniruby with MJIT_FORCE_ENABLE" This reverts commit b033775ed9d9226ba73c1d4a197e55ba89575142. GitHub Actions is failing. I ran out of time today to investigate it. will try it again tomorrow. commit b033775ed9d9226ba73c1d4a197e55ba89575142 Author: Takashi Kokubun AuthorDate: 2022-11-28 16:58:04 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 16:58:50 +0900 MJIT: Fix miniruby with MJIT_FORCE_ENABLE commit ccd8dd6ad395bbd9f5290e0fcb7929e5e5d36767 Author: Takashi Kokubun AuthorDate: 2022-11-28 16:40:41 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 16:46:59 +0900 MJIT: Make it parsable by Solargraph commit 93e87c0217a20dff53dfc576de913620021f83e6 Author: Nobuyoshi Nakada AuthorDate: 2022-11-28 14:50:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-28 16:30:40 +0900 Fix the case of multiple trailers Notes: Merged: https://github.com/ruby/ruby/pull/6820 commit 5a171ee4c05c0ed20ac4b4632e54b23717d5fe16 Author: Nobuyoshi Nakada AuthorDate: 2022-11-28 14:49:40 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-28 16:30:40 +0900 Add tests for sync_default_gems.rb Notes: Merged: https://github.com/ruby/ruby/pull/6820 commit 1d1200555faa22683b7d2436f77c00f55044bba1 Author: Takashi Kokubun AuthorDate: 2022-11-28 16:05:56 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 16:06:29 +0900 MJIT: Avoid hanging on mjit_wait with a JIT failure commit 168b0e1f025a3c8927bbf548cc4631862fe22d29 Author: Takashi Kokubun AuthorDate: 2022-11-28 15:48:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 15:48:19 +0900 Make the timeout of test_system_sigpipe longer https://github.com/ruby/ruby/actions/runs/3562236318/jobs/5983796689 commit 2c1c0d3df033da6745aa0f828a704bb46a535fbc Author: Takashi Kokubun AuthorDate: 2022-11-28 15:23:35 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 15:47:46 +0900 MJIT: Get rid of C.fprintf Faster code generation and cleaner code. commit 87e7b640ebb6002236e601d09347850fab5858df Author: Takashi Kokubun AuthorDate: 2022-11-28 15:14:48 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 15:14:48 +0900 Suppress warnings again commit 880e8fd1f94c0eac213a274cb20d95674fb29f2d Author: Takashi Kokubun AuthorDate: 2022-11-28 14:48:13 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 14:48:32 +0900 Relax a too strict timeout Regexp tests are flaky. http://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20221128T050004Z.fail.html.gz commit a22c684c5940210515d295684e016cd834b2b53f Author: Takashi Kokubun AuthorDate: 2022-11-28 14:41:53 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 14:44:28 +0900 MJIT: Refactor invokebuiltin_delegate_leave You shouldn't assume bf->compiler is always non-zero. While struct aref/aset is no longer a builtin function since https://github.com/ruby/ruby/pull/5131, it seems like you could still load such an iseq binary. The refactored code fallbacks to compile_insn_default correctly when bf->compiler is zero. commit 6844bcc6b4cdc50def1c0d30d4e8b5045fb43443 Author: Takashi Kokubun AuthorDate: 2022-11-28 08:15:52 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 14:11:33 +0900 MJIT: Use a String buffer in builtin compilers instead of FILE*. Using C.fprintf is slower than String manipulation on memory. I'm going to change the way MJIT writes files, and this is a prerequisite for it. commit 6d26f78f684607a39249882ea686a231f8768bd5 Author: Takashi Kokubun AuthorDate: 2022-11-28 08:42:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 14:04:41 +0900 MJIT: Clear .cache/clangd on bindgen if exists commit b335d899fff3cc22b022c9ee2ceb636d714bf1a7 Author: Hiroshi SHIBATA AuthorDate: 2022-11-28 13:39:16 +0900 Commit: git[bot] CommitDate: 2022-11-28 13:40:26 +0900 [ruby/cgi] Bump up 0.3.6 https://github.com/ruby/cgi/commit/827b7d43cc commit e0901f46b7c62acb2cbc9b05ee5753baeb37b82d Author: Sven Riedel AuthorDate: 2022-11-28 13:36:26 +0900 Commit: git[bot] CommitDate: 2022-11-28 13:36:29 +0900 [ruby/rdoc] Add `--no-skipping-tests` option https://github.com/ruby/rdoc/commit/33925f885f commit 745dcf5326ea2c8e2047a3bddeb0fbb7e7d07649 Author: Xenor Chang AuthorDate: 2022-11-28 13:34:06 +0900 Commit: git[bot] CommitDate: 2022-11-28 13:34:11 +0900 [ruby/cgi] Loosen the domain regex to accept '.' (https://github.com/ruby/cgi/pull/29) * Loosen the domain regex to accept '.' Co-authored-by: Nobuyoshi Nakada https://github.com/ruby/cgi/commit/5e09d632f3 Co-authored-by: Hiroshi SHIBATA commit 98074a57ca9f3169fe9da9af6c49b636d37db16f Author: Hiroshi SHIBATA AuthorDate: 2022-11-28 12:34:34 +0900 Commit: git[bot] CommitDate: 2022-11-28 12:34:42 +0900 [ruby/cgi] Prepare to release 0.3.6 https://github.com/ruby/cgi/commit/710a647855 commit 1a744417f26837f3f90402688c344aec6d60aa61 Author: Soutaro Matsumoto AuthorDate: 2022-11-28 12:31:17 +0900 Commit: GitHub CommitDate: 2022-11-28 12:31:17 +0900 Bundle RBS 2.8.1 (#6819) Update `bundled_gems` to bundle RBS 2.8.1 Notes: Merged-By: soutaro commit 0096d99effc4b0a9c2209d6c1312aadab8a5a79c Author: git[bot] AuthorDate: 2022-11-28 11:57:48 +0900 Commit: git[bot] CommitDate: 2022-11-28 11:57:48 +0900 Update bundled gems list at 2022-11-28 commit 595f3063f01ce25122b6d1ae452720b0ec58e86d Author: StepSecurity Bot AuthorDate: 2022-11-25 20:14:05 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-28 11:42:40 +0900 [StepSecurity] ci: Harden GitHub Actions Signed-off-by: StepSecurity Bot Notes: Merged: https://github.com/ruby/ruby/pull/6811 commit e3de7230434d5c78cc06d40893b5d7cf41e7e89c Author: Takashi Kokubun AuthorDate: 2022-11-28 07:50:10 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 07:50:20 +0900 MJIT: Move some private declarations and clean up legacy comments for the Ruby migration commit 2a6dfb1cbbe0a5c3026a84ccc9170071c6465a14 Author: Takashi Kokubun AuthorDate: 2022-11-28 06:43:43 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 07:16:29 +0900 Synchronously run the MJIT compiler in the parent process. Completely isolating the MJIT compilation process complicates a lot of things for ensuring consistency before and after the fork. Just running this synchronously makes things a lot easier, for example the race condition of capture_cc_entries could be fixed by this patch alone. Hopefully, the bottleneck is the C compiler and not this Ruby code. Also, this change doesn't negatively impact MJIT's final numbers on yjit-bench while "1st itr" is degraded for sure. commit f93ae96b0e24a4e6101245d07d2d5c95769fe23e Author: Takashi Kokubun AuthorDate: 2022-11-28 06:32:39 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 06:34:10 +0900 Disable test-all on MJIT CI for now https://github.com/ruby/ruby/actions/runs/3560006749/jobs/5979749144 commit 62476dd268a829ba81bd3703c3360ccc5a7463fd Author: Takashi Kokubun AuthorDate: 2022-11-28 06:12:29 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 06:12:34 +0900 Test only --mjit-wait for now We've disabled MJIT CI on GitHub Actions for a while. It's convenient that fork repositories need to see failures or disable it. We should remove unused CI by default instead of silently disabling it. Since I saw --mjit-wait passed on my fork, I'd like to try running --mjit-wait one. commit 03b96319b48f3bd1ae5cbebd0f1b6b3b1ac5bb32 Author: Takashi Kokubun AuthorDate: 2022-11-28 06:02:42 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-28 06:02:43 +0900 Skip a broken RDoc test http://ci.rvm.jp/results/trunk-yjit@phosphorus-docker/4309535 http://ci.rvm.jp/results/trunk-random0@phosphorus-docker/4309536 http://ci.rvm.jp/results/trunk-random1@phosphorus-docker/4309538 http://ci.rvm.jp/results/trunk-random2@phosphorus-docker/4309541 http://ci.rvm.jp/results/trunk-random3@phosphorus-docker/4309544 http://ci.rvm.jp/results/trunk-no-mjit@phosphorus-docker/4309550 http://ci.rvm.jp/results/trunk-yjit@phosphorus-docker/4309556 http://ci.rvm.jp/results/trunk-random0@phosphorus-docker/4309562 http://ci.rvm.jp/results/trunk-random1@phosphorus-docker/4309564 http://ci.rvm.jp/results/trunk-random2@phosphorus-docker/4309567 http://ci.rvm.jp/results/trunk-random3@phosphorus-docker/4309570 http://rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20221127T200003Z.fail.html.gz http://ci.rvm.jp/results/trunk-random-repeat@phosphorus-docker/4309581 http://rubyci.s3.amazonaws.com/freebsd12/ruby-master/log/20221127T203002Z.fail.html.gz http://ci.rvm.jp/results/trunk-yjit@phosphorus-docker/4309588 commit 5b1db79129a74156f0c95372bb39f53088a8d596 Author: Nobuyoshi Nakada AuthorDate: 2022-11-28 04:19:01 +0900 Commit: git[bot] CommitDate: 2022-11-28 04:46:12 +0900 [ruby/rdoc] Revert "Refactor `RDoc::Markup::Parser#tokenize`" This reverts commit https://github.com/ruby/rdoc/commit/41ceae93b3bc. https://github.com/ruby/rdoc/commit/5d2c47e8b8 commit 21977b95e238da08ee2dc50fe5a908f11feb130c Author: Nobuyoshi Nakada AuthorDate: 2022-10-05 20:07:02 +0900 Commit: git[bot] CommitDate: 2022-11-28 02:24:38 +0900 [ruby/rdoc] Refactor `RDoc::Markup::Parser#tokenize` Make verbatims text or newline only, and simplify `build_verbatim`. https://github.com/ruby/rdoc/commit/41ceae93b3 commit 29862ce27303107935de6df4f85dd7fd610f19e2 Author: nick evans AuthorDate: 2022-11-17 04:11:08 +0900 Commit: git[bot] CommitDate: 2022-11-28 02:24:17 +0900 [ruby/rdoc] Darkfish: group method call-seq in div.method-header This way, custom CSS styles can be easily applied to the entire method header at once. Otherwise, it can be tricky to make a border that goes around the entire set of method call-seq, but not the method description. https://github.com/ruby/rdoc/commit/5db4bce01e commit ae3817bc61cb320524f153e82eb5eee752188a12 Author: nick evans AuthorDate: 2022-11-17 04:07:18 +0900 Commit: git[bot] CommitDate: 2022-11-28 02:18:16 +0900 [ruby/rdoc] Darkfish: Nest sidebar ToC as a tree of headings This uses `
heading
    nested
`, similar to how the classes and pages lists are now nested. https://github.com/ruby/rdoc/commit/e57beff287 commit 511864d1a7188f78f8a7ec93a5fe3f406bb6899f Author: Nobuyoshi Nakada AuthorDate: 2021-12-09 00:10:33 +0900 Commit: git[bot] CommitDate: 2022-11-28 01:35:08 +0900 [ruby/rdoc] Refine regexp usages and reduce substring allocations https://github.com/ruby/rdoc/commit/a976fb9d39 commit 1b67c58f41a9387d762afffa09c27ced8245c0f6 Author: Nobuyoshi Nakada AuthorDate: 2021-12-08 23:48:12 +0900 Commit: git[bot] CommitDate: 2022-11-28 01:35:07 +0900 [ruby/rdoc] Pull up handle_tab_width to RDoc::Parser To share with the duplicate code in RDoc::Parser::Ruby#initialize. https://github.com/ruby/rdoc/commit/27829ac119 commit 6fdc677186b646f8f011411f827c2fa6a50b33bd Author: Takashi Kokubun AuthorDate: 2022-11-27 15:32:50 +0900 Commit: git[bot] CommitDate: 2022-11-27 15:32:58 +0900 [ruby/erb] Version 4.0.1 https://github.com/ruby/erb/commit/3bb67009dd commit d2c62426e5f5a53fd17e07e789a92994be4351ed Author: Takashi Kokubun AuthorDate: 2022-11-27 15:30:43 +0900 Commit: git[bot] CommitDate: 2022-11-27 15:30:48 +0900 [ruby/erb] Skip using the extension for truffleruby as well (https://github.com/ruby/erb/pull/39) * Skip using the extension for truffleruby as well * Just skip building the C extension for TruffleRuby * Skip rake compile for truffleruby * Use resolve_feature_path * Revert "Use resolve_feature_path" This reverts commit https://github.com/ruby/erb/commit/acc1e0c0ffaf. * Use resolve_feature_path with LoadError guard https://github.com/ruby/erb/commit/85dcb08439 commit ec76c9868b9b707aa657b59b8bb9e737c7ff91e7 Author: Stan Lo AuthorDate: 2022-11-27 15:09:45 +0900 Commit: git[bot] CommitDate: 2022-11-27 15:09:50 +0900 [ruby/irb] Activate yamatanooroti tests on CI (https://github.com/ruby/irb/pull/459) * Activate yamatanooroti tests on CI * Fix delete test https://github.com/ruby/irb/commit/750cf4c480 commit b55da1cd97c579d65f9a2bad8d638278563008be Author: Burdette Lamar AuthorDate: 2022-11-27 09:21:43 +0900 Commit: git[bot] CommitDate: 2022-11-27 09:21:49 +0900 [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTPHeader https://github.com/ruby/net-http/commit/77c6878970 commit 73e42ef856840187966c78e73e6994506677a1cf Author: Takashi Kokubun AuthorDate: 2022-11-27 08:38:43 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-27 08:39:53 +0900 MJIT: Remove a duplicated rescue `#compile` has a catch-call rescue, so compile_insn_entry shouldn't do that. It was a temporary code needed during the migration. commit b2dcde839d824ba30590ce0a8ab8a2fe281fdeb9 Author: Takashi Kokubun AuthorDate: 2022-11-27 08:10:58 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-27 08:31:38 +0900 MJIT: Merge mjit_compiler.rb into mjit.rb There are too many mjit_compiler.* files. It was hard to find files. commit de9e2a5ac7b4ef52a03b1b6a3b07708f11d8d11c Author: Peter Zhu AuthorDate: 2022-11-27 06:06:05 +0900 Commit: Peter Zhu CommitDate: 2022-11-27 06:06:05 +0900 [ruby/net-http] Fix test for Ruby head The error raised for broken coderanges was changed in ruby/ruby@571d21f and the test was fixed in that commit but not ported to this repo. ruby/net-http@e6185dda26ea6db7a3515d4f47ab231f5f4ac902 commit 3853385377525258881d35850a42473ce69c8e47 Author: Soutaro Matsumoto AuthorDate: 2022-11-26 15:44:56 +0900 Commit: GitHub CommitDate: 2022-11-26 15:44:56 +0900 Update bundled_gems (#6813) * Update bundled_gems Notes: Merged-By: soutaro commit 534bac04e71efcbb9f4dc877f490b92e7b4ba2aa Author: Takashi Kokubun AuthorDate: 2022-11-26 15:04:41 +0900 Commit: git[bot] CommitDate: 2022-11-26 15:05:23 +0900 [ruby/erb] Version 4.0.0 https://github.com/ruby/erb/commit/2809a54d88 commit 29bf5495a9ecb2b70cd1fc9008e1b861e982ab72 Author: Takashi Kokubun AuthorDate: 2022-11-26 14:45:27 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-26 14:45:28 +0900 Do not use the same variable for multiple things `conv` proc is used before and after the `url` variable is updated. So this script didn't seem to behave correctly for the "Close #xxx" syntax. Reusing the same variable name for different things seems prone to errors. commit 95647378ffdaa0ceb09595430b43534d3a7f3452 Author: Takashi Kokubun AuthorDate: 2022-11-26 14:41:36 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-26 14:44:21 +0900 Support other GitHub PR/issue syntaxes https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue commit 7cf94a611fbb4252498990a4277894dda33532f3 Author: Takashi Kokubun AuthorDate: 2022-11-26 14:36:40 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-26 14:36:40 +0900 Allow an arbitrary number of newlines commit 574896a0ce99ab00676aa5ff2fabd3dcf8d49154 Author: Takashi Kokubun AuthorDate: 2022-11-26 14:32:20 +0900 Commit: git[bot] CommitDate: 2022-11-26 14:32:25 +0900 [ruby/erb] Define ERB::Escape module (https://github.com/ruby/erb/pull/38) Close #32 commit d0bb24c497ceae01cc7b7698365982303e3ea24d Author: Nobuyoshi Nakada AuthorDate: 2022-11-26 12:53:10 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-26 13:12:10 +0900 [DOC] Fix loose and tight lists The MarkDown parser of RDoc does not allow mixing loose and tight lists, and the results may be very unexpected otherwise. commit 19fdc9cac2d21a28598764302b7a87478555bef2 Author: Nobuyoshi Nakada AuthorDate: 2022-11-26 12:52:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-26 13:12:10 +0900 [DOC] Fix indents of nested bullet lists commit ac4d00df824215d4b85d36cef75c76543fead33e Author: Takashi Kokubun AuthorDate: 2022-11-26 08:49:52 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-26 08:55:19 +0900 MJIT: Change default --mjit-max-cache back to 100 These days we benchmark MJIT using yjit-bench. The warmup duration in yjit-bench is very short, so compiling many methods comes at a cost even while it's actually optimal for MJIT to compile everything / tens of thousands of methods once it reaches the peak performance. yjit-bench doesn't necessarily represent the peak performance on production. It measures the performance of Ruby 30~60s after boot. If your JIT takes more than 1 minute to warm up, there's no way for the JIT to make the numbers good on yjit-bench. Until we make MJIT's compilation much faster, we don't afford compiling 10,000 methods on yjit-bench. This change alone makes MJIT's benchmark number on railsbench 2x better :p commit 3c16f33ffdfb96bfdd45bc6067175dcd2eb3f090 Author: Takashi Kokubun AuthorDate: 2022-11-26 08:27:09 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-26 08:27:27 +0900 MJIT: Refactor source_shape_id extraction I'm not comfortable indenting code that deeply. commit 89a98ee1e1008588962ab444cee7d51fa46ebcf0 Author: Takashi Kokubun AuthorDate: 2022-11-26 08:23:42 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-26 08:23:43 +0900 MJIT: Remove obsoleted variable no longer used after 4ea9d7d7c223ff92365c4a013fc1bd073d67a3a5 commit 4ea9d7d7c223ff92365c4a013fc1bd073d67a3a5 Author: Takashi Kokubun AuthorDate: 2022-11-26 08:16:13 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-26 08:18:34 +0900 MJIT: Remove the code to optimize shape transition because this code crashes on railsbench. I'll try adding a repro for it later, but I don't know shapes enough to craft it right away. commit 1d64a5a7c09d1029508b6b3cb3d04e5a939bc8f8 Author: Alan Wu AuthorDate: 2022-11-26 03:13:09 +0900 Commit: Alan Wu CommitDate: 2022-11-26 07:15:24 +0900 YJIT: Run test-all tests without requiring RUN_OPTS Most tests in test_yjit.rb use a sub process, so we can run them even when the parent process is not running with YJIT. Run them so simply running `make check` tests YJIT a bit. [Misc #19149] Notes: Merged: https://github.com/ruby/ruby/pull/6814 commit 790cf4b6d0475614afb127b416e87cfa39044d67 Author: Alan Wu AuthorDate: 2022-11-18 07:33:18 +0900 Commit: Alan Wu CommitDate: 2022-11-26 06:21:40 +0900 Fix autoload status of statically linked extensions Previously, for statically-linked extensions, we used `vm->loading_table` to delay calling the init function until the extensions are required. This caused the extensions to look like they are in the middle of being loaded even before they're required. (`rb_feature_p()` returned true with a loading path output.) Combined with autoload, queries like `defined?(CONST)` and `Module#autoload?` were confused by this and returned nil incorrectly. RubyGems uses `defined?` to detect if OpenSSL is available and failed when OpenSSL was available in builds using `--with-static-linked-ext`. Use a dedicated table for the init functions instead of adding them to the loading table. This lets us remove some logic from non-EXTSTATIC builds. [Bug #19115] Notes: Merged: https://github.com/ruby/ruby/pull/6756 commit e15cd01149afe4924460f81cb6e27dd96de06657 Author: StepSecurity Bot AuthorDate: 2022-11-25 19:26:10 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-25 20:12:23 +0900 [StepSecurity] ci: Harden GitHub Actions Signed-off-by: StepSecurity Bot Notes: Merged: https://github.com/ruby/ruby/pull/6810 commit 26baf4813e0a717b95860be0d9c71dc7def93643 Author: Nobuyoshi Nakada AuthorDate: 2022-11-25 15:42:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-25 19:51:31 +0900 [Feature #18925] [DOC] Add `FileUtils.ln_sr` to NEWS commit e9d6d2a57949541fd8775832b9ee55cf0df67006 Author: Nobuyoshi Nakada AuthorDate: 2022-11-25 19:42:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-25 19:42:47 +0900 [DOC] Fix AST documents - Fix indents of `tokens`, to make the contents of Token a list - Move the example of `tokens` to separate from the above list - Markup keyword argument and method name commit fb7598fb3e2b9da289556b0a4fa7c9e42e45121a Author: Nobuyoshi Nakada AuthorDate: 2022-11-25 19:15:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-25 19:17:44 +0900 [DOC] Remove extraneous backticks So cross-references to defined classes/modules/methods work. commit addb1cbbfd93d30e4752ec63b2d5ff96a13fac3d Author: Takashi Kokubun AuthorDate: 2022-11-25 17:53:36 +0900 Commit: git[bot] CommitDate: 2022-11-25 17:54:18 +0900 [ruby/erb] Keep ERB::Util#html_escape private ERB::Util.html_escape has been public, but ERB::Util#html_escape had been private. https://github.com/ruby/erb/commit/e62210bf56 commit 58dc9c931b89931d339cf9db5f329cf650b23be8 Author: Nobuyoshi Nakada AuthorDate: 2022-11-25 12:01:52 +0900 Commit: git[bot] CommitDate: 2022-11-25 17:02:28 +0900 [rubygems/rubygems] Stop installing everything under "lib" at the top in all tests https://github.com/rubygems/rubygems/commit/f9772d62e1 commit 64c8ed272fea57e0825650f75e05eb44456a039a Author: Nobuyoshi Nakada AuthorDate: 2022-08-25 13:47:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-25 16:11:17 +0900 `remain` no longer starts with 0 Notes: Merged: https://github.com/ruby/ruby/pull/6809 commit ffc6c5d056e0f18a9bdfb9b1477d0192a6d37ea3 Author: Nobuyoshi Nakada AuthorDate: 2022-08-25 13:42:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-25 16:11:17 +0900 [Bug #18971] Add precheck to enumerator Notes: Merged: https://github.com/ruby/ruby/pull/6809 commit 67d0f4821ff9ae550425a66202710d82de886384 Author: Nobuyoshi Nakada AuthorDate: 2022-11-25 14:20:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-25 15:50:06 +0900 [Bug #19145] `volatile` on an argument may not be effective Notes: Merged: https://github.com/ruby/ruby/pull/6807 commit 45bad8c7b8851a179515407d7ee2ed70545e4b40 Author: Nobuyoshi Nakada AuthorDate: 2022-11-25 13:49:06 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-25 15:50:06 +0900 The mode flags may be clobbered by tag jumps Notes: Merged: https://github.com/ruby/ruby/pull/6807 commit 67766cd55c3a05f9888c8e2b9e34051a44b3e3fc Author: Koichi Sasada AuthorDate: 2022-11-25 11:51:35 +0900 Commit: Koichi Sasada CommitDate: 2022-11-25 14:01:36 +0900 add debug context APIs for debuggers (frame depth) The following new debug context APIs are for implementing debugger's `next` (step over) and similar functionality. * `rb_debug_inspector_frame_depth(dc, index)` returns `index`-th frame's depth. * `rb_debug_inspector_current_depth()` returns current frame depth. The frame depth is not related to the frame index because debug context API skips some special frames but proposed `_depth()` APIs returns the count of all frames (raw depth). Notes: Merged: https://github.com/ruby/ruby/pull/6805 commit 571d21fd4a2e877f49b4ff918832bda9a5e8f91c Author: Jeremy Evans AuthorDate: 2022-08-25 02:31:17 +0900 Commit: Jeremy Evans CommitDate: 2022-11-25 11:24:42 +0900 Make String#rstrip{,!} raise Encoding::CompatibilityError for broken coderange It's questionable whether we want to allow rstrip to work for strings where the broken coderange occurs before the trailing whitespace and not after, but this approach is probably simpler, and I don't think users should expect string operations like rstrip to work on broken strings. In some cases, this changes rstrip to raise Encoding::CompatibilityError instead of ArgumentError. However, as the problem is related to an encoding issue in the receiver, and due not due to an issue with an argument, I think Encoding::CompatibilityError is the more appropriate error. Fixes [Bug #18931] Notes: Merged: https://github.com/ruby/ruby/pull/6282 commit c6330cd32b7d02b4603080a2c53d64be9e05773c Author: Nobuyoshi Nakada AuthorDate: 2022-11-25 10:03:51 +0900 Commit: git[bot] CommitDate: 2022-11-25 10:03:57 +0900 [ruby/fileutils] [Feature #18925] Add `ln_sr` method and `relative:` option to `ln_s` https://github.com/ruby/fileutils/commit/5116088d5c commit 1a47521c4459fd61384c51ee58bc422ec69310d6 Author: Nobuyoshi Nakada AuthorDate: 2022-11-24 23:39:55 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-25 08:51:14 +0900 Use `rb_sprintf` instead of deprecated `sprintf` commit bcdfe12919f967cad17c2c6a8c98454f373ca935 Author: Takashi Kokubun AuthorDate: 2022-11-25 08:49:10 +0900 Commit: git[bot] CommitDate: 2022-11-25 08:49:15 +0900 [ruby/erb] Allow requiring erb/escape.so alone (https://github.com/ruby/erb/pull/37) Prior to this commit, requiring erb/escape first and then requiring erb did not work as expected. commit 8ac4081aa80e571271296331dbd2a7a0654cd34a Author: Takashi Kokubun AuthorDate: 2022-11-25 08:40:48 +0900 Commit: git[bot] CommitDate: 2022-11-25 08:40:53 +0900 [ruby/erb] Split erb.rb into files for each module under ERB (https://github.com/ruby/erb/pull/36) https://github.com/ruby/erb/commit/f74833cc07 commit c480f589c29c4e7f4414ee4b01513bf2bd2e0cbc Author: Takashi Kokubun AuthorDate: 2022-11-25 08:21:56 +0900 Commit: git[bot] CommitDate: 2022-11-25 08:22:00 +0900 [ruby/erb] Rename erb.so to erb/escape.so (https://github.com/ruby/erb/pull/35) https://github.com/ruby/erb/commit/1280046952 commit 04a92a6764bf678919cf4b68a27496a39d6b886a Author: Jeremy Evans AuthorDate: 2022-08-20 05:19:03 +0900 Commit: Jeremy Evans CommitDate: 2022-11-25 08:18:44 +0900 Raise TypeError for endless non-numeric range include? Beginless ranges previously raised TypeError for this case, except for string ranges, which had unexpected behavior: ('a'..'z').include?('ww') # false (..'z').include?('ww') # previously true, now TypeError Use of include? with endless ranges could previously result in an infinite loop. This splits off a range_string_cover_internal function from range_include_internal. Fixes [Bug #18580] Notes: Merged: https://github.com/ruby/ruby/pull/6261 commit 1c0c1c8098bfb989ff5288b2e0a43b1bd0be2781 Author: Takashi Kokubun AuthorDate: 2022-11-25 07:47:11 +0900 Commit: git[bot] CommitDate: 2022-11-25 07:49:21 +0900 [ruby/erb] Drop deprecated -S option from erb command We attempted to remove things like this and reverted all of them, but I think nobody relies on this unlike the positional arguments of `ERB#initialize`. https://github.com/ruby/erb/commit/92fde7e403 commit e5a0abc5dedfd011986b16e8f8cf5cda476984c9 Author: Takashi Kokubun AuthorDate: 2022-11-25 07:35:28 +0900 Commit: git[bot] CommitDate: 2022-11-25 07:35:33 +0900 [ruby/erb] Suppress warnings to fix ruby-head CI (https://github.com/ruby/erb/pull/34) There seems to be no way to fix this. It doesn't happen in an installed directory, so it's likely a false positive and/or a bug in rubygems. | :85: warning: :85: warning: loading in progress, circular require considered harmful - /home/runner/.rubies/ruby-head/lib/ruby/3.2.0+3/bundler/setup.rb | from /home/runner/work/erb/erb/libexec/erb:0:in `require' | from /home/runner/.rubies/ruby-head/lib/ruby/3.2.0+3/bundler/setup.rb:3:in `' | from /home/runner/.rubies/ruby-head/lib/ruby/3.2.0+3/bundler/setup.rb:3:in `require_relative' | from /home/runner/.rubies/ruby-head/lib/ruby/3.2.0+3/bundler/shared_helpers.rb:8:in `' | from /home/runner/.rubies/ruby-head/lib/ruby/3.2.0+3/bundler/shared_helpers.rb:8:in `require_relative' | from /home/runner/.rubies/ruby-head/lib/ruby/3.2.0+3/bundler/rubygems_integration.rb:3:in `' | from /home/runner/.rubies/ruby-head/lib/ruby/3.2.0+3/bundler/rubygems_integration.rb:3:in `require' | from /home/runner/.rubies/ruby-head/lib/ruby/3.2.0+3/rubygems.rb:1352:in `' | from :85:in `require' | from :85:in `require' commit 1340195e79b8ae9cc56ebffc4241d6a5b2b12174 Author: Jeremy Evans AuthorDate: 2022-10-06 03:50:43 +0900 Commit: Jeremy Evans CommitDate: 2022-11-25 07:27:19 +0900 Reduce duplication in pack by sharing code for some cases s/S, i/I, l/L, and q/Q had the same code in both cases, so combine the cases. Alternatively, we could actually the size of the unsigned type, but I doubt there are any platforms where the unsigned type is a different size than the signed type. Notes: Merged: https://github.com/ruby/ruby/pull/6495 commit f5d73da8062377e5b93100c6ea109a37bd04b4c1 Author: Jeremy Evans AuthorDate: 2022-08-25 04:32:46 +0900 Commit: Jeremy Evans CommitDate: 2022-11-25 07:26:08 +0900 Fix the position of rescue clause without exc_list If the rescue clause has only exc_var and not exc_list, use the exc_var position instead of the rescue body position. This issue appears to have been introduced in 688169fd83b24564b653c03977c168cea50ccd35 when "opt_list" was split into "exc_list exc_var". Fixes [Bug #18974] Notes: Merged: https://github.com/ruby/ruby/pull/6283 commit 07169fd824529c0f7f69ff0c10939b63abecc6ef Author: Maxime Chevalier-Boisvert AuthorDate: 2022-11-25 06:37:04 +0900 Commit: GitHub CommitDate: 2022-11-25 06:37:04 +0900 Update YJIT section of `NEWS.md` (#6803) * Update YJIT section of `NEWS.md` * Update NEWS.md Notes: Merged-By: maximecb commit a81c89b7c877cc0ddf40a8d4672ca90090e116c6 Author: Alan Wu AuthorDate: 2022-11-25 04:58:41 +0900 Commit: GitHub CommitDate: 2022-11-25 04:58:41 +0900 YJIT: Make sure rustc's target matches before enabling (#6804) For people using Rosetta 2 on ARM Macs, it can happen that the rustc in the PATH compiles for x86_64 while clang is targeting ARM. We were enabling YJIT in these situations because the test program compiled fine, but caused linking failure later due to the architecture mismatch. Adjust the test program to fail when rustc's target arch is different from ruby's target arch. [Bug #19146] Notes: Merged-By: maximecb commit 656f25987cf2885104d5b13c8d3f5b7d32f1b333 Author: Jean Boussier AuthorDate: 2022-11-23 20:10:36 +0900 Commit: git[bot] CommitDate: 2022-11-25 03:32:19 +0900 [ruby/cgi] Fix test_cgi_cookie_new_with_domain to pass on older rubies https://github.com/ruby/cgi/commit/05f0c58048 commit d2fa67de81f66cb42cfeebc81a03c57a4621c09a Author: Maxime Chevalier-Boisvert AuthorDate: 2022-11-25 00:30:28 +0900 Commit: GitHub CommitDate: 2022-11-25 00:30:28 +0900 YJIT: rename `InsnOpnd` => `YARVOpnd` (#6801) Rename InsnOpnd => YARVOpnd Make it more clear this refers to YARV insn/vm operands rather than backend IR, x86 or ARM insn operands. Notes: Merged-By: maximecb commit 66e5200ba435361624caa3e23db7962d906b70db Author: Yusuke Endoh AuthorDate: 2022-11-24 15:11:55 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-24 15:13:00 +0900 Relax the timeout of TestRegexp#test_cache_optimization_square It fails on riscv (QEmu) http://rubyci.s3.amazonaws.com/debian-riscv64/ruby-master/log/20221124T000021Z.fail.html.gz ``` 1) Error: TestRegexp#test_cache_optimization_square: Regexp::TimeoutError: regexp match timeout /home/rubyci/chkbuild/tmp/build/20221124T000021Z/ruby/test/ruby/test_regexp.rb:1693:in `
' /home/rubyci/chkbuild/tmp/build/20221124T000021Z/ruby/test/ruby/test_regexp.rb:1688:in `test_cache_optimization_square' ``` commit d92054e3711ca5dd336b753c238f4e53a9881157 Author: Alan Wu AuthorDate: 2022-11-22 10:50:53 +0900 Commit: Alan Wu CommitDate: 2022-11-24 08:00:12 +0900 YJIT: Use a Box for branch targets to save memory We frequently make branches that only have one target but we used to always allocate space for two branch targets. This patch moves all the information a branch target has into a struct and refer to them using Option>, this way when the second branch target is not present it only takes 8 bytes. Retained heap size on railsbench went from 16.17 MiB to 14.57 MiB, a ratio of about 1.1. Notes: Merged: https://github.com/ruby/ruby/pull/6799 commit e788215125a015d32281aff0a7891d2d2020dbcb Author: Aaron Patterson AuthorDate: 2022-11-24 02:02:14 +0900 Commit: Aaron Patterson CommitDate: 2022-11-24 07:18:10 +0900 Add next_shape_id to vm stats We need to track this number in CI. It's important to know how changes to the codebase impact the number of shapes in the system, so lets add the number to the VM stat hash Notes: Merged: https://github.com/ruby/ruby/pull/6798 commit a50aabde9cf3b58c63563427b2e7d22c60370cdd Author: Takashi Kokubun AuthorDate: 2022-11-24 02:14:43 +0900 Commit: GitHub CommitDate: 2022-11-24 02:14:43 +0900 YJIT: Simplify Insn::CCall to obviate Target::FunPtr (#6793) Notes: Merged-By: maximecb commit 5ee947314eac6bc8ce2ee28a0619beb0250f704a Author: BurdetteLamar AuthorDate: 2022-11-24 01:49:58 +0900 Commit: git[bot] CommitDate: 2022-11-24 02:12:35 +0900 [ruby/net-http] Enhanced RDoc for Net::HTTPHeader https://github.com/ruby/net-http/commit/86b0514239 commit 4b32ed6e33d5a15e22b2f729257ef287e4c964c1 Author: BurdetteLamar AuthorDate: 2022-11-23 22:06:47 +0900 Commit: git[bot] CommitDate: 2022-11-24 02:12:34 +0900 [ruby/net-http] Enhanced RDoc for Net::HTTPHeader https://github.com/ruby/net-http/commit/ef0ef53b0c commit 79a9280aa59558018d9255b30b596faf1f4ba912 Author: BurdetteLamar AuthorDate: 2022-11-21 04:51:58 +0900 Commit: git[bot] CommitDate: 2022-11-24 02:12:33 +0900 [ruby/net-http] Enhanced RDoc for Net::HTTPHeader https://github.com/ruby/net-http/commit/0af9fb94a9 commit c6dc1266418a5cb84a91718946f9be00d073c2f7 Author: BurdetteLamar AuthorDate: 2022-11-21 04:43:07 +0900 Commit: git[bot] CommitDate: 2022-11-24 02:12:33 +0900 [ruby/net-http] Enhanced RDoc for Net::HTTPHeader https://github.com/ruby/net-http/commit/995ff356b4 commit 66be0922b7a665cb9d52174e435752404e74d962 Author: BurdetteLamar AuthorDate: 2022-11-20 03:13:45 +0900 Commit: git[bot] CommitDate: 2022-11-24 02:12:32 +0900 [ruby/net-http] Enhanced RDoc for Net::HTTPHeader https://github.com/ruby/net-http/commit/e924f1205b commit d88adaad7ea4761bd36c957260667840472fd2dc Author: Takashi Kokubun AuthorDate: 2022-11-24 02:02:05 +0900 Commit: GitHub CommitDate: 2022-11-24 02:02:05 +0900 YJIT: Use NonNull pointer for CodePtr (#6792) Notes: Merged-By: maximecb commit 9c36de3c484f104a59033d75855864853c4325c4 Author: Takashi Kokubun AuthorDate: 2022-11-23 10:21:26 +0900 Commit: Alan Wu CommitDate: 2022-11-24 01:59:50 +0900 YJIT: Stop passing target1 to gen_return_branch Notes: Merged: https://github.com/ruby/ruby/pull/6794 commit fe2bed6778962a083fbba7bbd6d2aa4cc8b62768 Author: Takashi Kokubun AuthorDate: 2022-11-24 01:59:02 +0900 Commit: GitHub CommitDate: 2022-11-24 01:59:02 +0900 YJIT: Simplify code for RB_SPECIAL_CONST_P (#6795) Notes: Merged-By: maximecb commit e82b15b6603ddc6754f4cfa7a189c0acb0ccce71 Author: Jemma Issroff AuthorDate: 2022-11-24 00:48:17 +0900 Commit: GitHub CommitDate: 2022-11-24 00:48:17 +0900 Fix YJIT backend to account for unsigned int immediates (#6789) YJIT: x86_64: Fix cmp with number where sign bit is set Before this commit, we were unconditionally treating unsigned ints as signed ints when counting the number of bits required for representing the immediate in machine code. When the size of the immediate matches the size of the other operand, no sign extension happens, so this was incorrect. `asm.cmp(opnd64, 0x8000_0000)` panicked even though it's encodable as `CMP r/m32, imm32`. Large shape ids were impacted by this issue. Co-Authored-By: Aaron Patterson Co-Authored-By: Alan Wu Co-authored-by: Aaron Patterson Co-authored-by: Alan Wu Notes: Merged-By: maximecb commit aedf682bfad425149053f58c9115bc830da4efd1 Author: Aaron Patterson AuthorDate: 2022-11-23 06:54:30 +0900 Commit: Aaron Patterson CommitDate: 2022-11-23 06:54:30 +0900 Free the IV table after estimation We need to make sure the name table is freed otherwise we have a memory leak. commit 003f8ea80983d9a2c1d5352c448ad2991fb73ad7 Author: Peter Zhu AuthorDate: 2022-11-15 01:22:00 +0900 Commit: Aaron Patterson CommitDate: 2022-11-23 06:49:46 +0900 Remove dead code in rb_obj_copy_ivar The removed code is a duplicate of the code above. Notes: Merged: https://github.com/ruby/ruby/pull/6727 commit c4e99ac454cbbf731c2fe51fa549bd472ab1dc41 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-11-23 06:18:31 +0900 Commit: GitHub CommitDate: 2022-11-23 06:18:31 +0900 Update yjit.md commit eaf2b6c4396ff19921cbc75a394d7a752aaab4ef Author: zverok AuthorDate: 2022-10-20 04:07:23 +0900 Commit: Victor Shepelev CommitDate: 2022-11-23 06:10:46 +0900 Add Time#deconstruct_keys Notes: Merged: https://github.com/ruby/ruby/pull/6594 commit 63f4a7a1ec3433cc985503e3ca342e4a9ebda257 Author: Takashi Kokubun AuthorDate: 2022-11-23 05:57:17 +0900 Commit: GitHub CommitDate: 2022-11-23 05:57:17 +0900 YJIT: Skip padding jumps to side exits on Arm (#6790) YJIT: Skip padding jumps to side exits Co-authored-by: Maxime Chevalier-Boisvert Co-authored-by: Alan Wu Co-authored-by: Maxime Chevalier-Boisvert Co-authored-by: Alan Wu Notes: Merged-By: maximecb commit 9c5e3671ebd9c07c178ca5dac08ad15ad1eae411 Author: Jemma Issroff AuthorDate: 2022-11-23 05:28:14 +0900 Commit: GitHub CommitDate: 2022-11-23 05:28:14 +0900 Increment max_iv_count on class based on number of set_iv in initialize (#6788) We can loosely predict the number of ivar sets on a class based on the number of iv set instructions in the initialize method. This should give us a more accurate estimate to use for initial size pool allocation, which should in turn give us more cache hits. Notes: Merged-By: maximecb commit 20b9d7b9fde83c98046eacdfcb40e8cb6607963e Author: Nobuyoshi Nakada AuthorDate: 2022-11-22 14:20:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-22 14:20:45 +0900 Use `enum` over `int` commit 8c02084ac8412dc57367ac1282cf5ab07554c94c Author: Nobuyoshi Nakada AuthorDate: 2022-11-22 14:07:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-22 14:07:21 +0900 Use dedicated assertions for warnings commit 77f963004f9982c70adde487587cf747503be314 Author: Nobuyoshi Nakada AuthorDate: 2022-11-22 13:58:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-22 13:58:56 +0900 Avoid unnecessary use of global variables commit 36f297e62108072b9377d927321928b994f66a93 Author: Nobuyoshi Nakada AuthorDate: 2022-11-22 11:29:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-22 11:32:28 +0900 Use valid tokens as cookie names commit 805d70f716c782e82ec77ca623b2177129ad1395 Author: Hiroshi SHIBATA AuthorDate: 2022-11-22 11:11:50 +0900 Commit: git[bot] CommitDate: 2022-11-22 11:12:50 +0900 [ruby/cgi] Bump up 0.3.5 https://github.com/ruby/cgi/commit/daf88c2a75 commit 58682b6980e9c2046f4b18025c4b684661fbcf66 Author: Nobuyoshi Nakada AuthorDate: 2022-11-22 11:05:52 +0900 Commit: git[bot] CommitDate: 2022-11-22 11:12:50 +0900 [ruby/cgi] Relax domain label restrictions https://github.com/ruby/cgi/commit/b46d41c363 commit 3f960cf445dd387a5497ffad897ea6f4bd03e62e Author: Hiroshi SHIBATA AuthorDate: 2022-11-22 10:58:26 +0900 Commit: git[bot] CommitDate: 2022-11-22 11:00:11 +0900 [ruby/cgi] Bump up 0.3.4 https://github.com/ruby/cgi/commit/3649a27bf4 commit 0e75b2f2e633ac9579e63e1d4b3bad02e915889c Author: Yusuke Endoh AuthorDate: 2022-11-22 10:49:27 +0900 Commit: git[bot] CommitDate: 2022-11-22 11:00:11 +0900 [ruby/cgi] Prevent CRLF injection Throw a RuntimeError if the HTTP response header contains CR or LF to prevent HTTP response splitting. https://hackerone.com/reports/1204695 https://github.com/ruby/cgi/commit/64c5045c0a commit c05f85f373ed48594d9bf08e11ae0c84c06062f7 Author: Nobuyoshi Nakada AuthorDate: 2022-08-16 18:36:12 +0900 Commit: git[bot] CommitDate: 2022-11-22 11:00:10 +0900 [ruby/cgi] Check cookie name/path/domain characters https://hackerone.com/reports/1204977 https://github.com/ruby/cgi/commit/30107a4797 commit cf05c202ce7716748c4f2f9c24b52fe7f12d40fc Author: MSP-Greg AuthorDate: 2022-11-21 06:06:33 +0900 Commit: Benoit Daloze CommitDate: 2022-11-22 03:52:44 +0900 Fixup spec/ruby/optional/capi/rbasic_spec.rb for mswin Notes: Merged: https://github.com/ruby/ruby/pull/6772 commit 607fb49dbcf9fa24d53c3609ac4e8cba4c0fb8bb Author: Takashi Kokubun AuthorDate: 2022-11-22 03:27:39 +0900 Commit: GitHub CommitDate: 2022-11-22 03:27:39 +0900 YJIT: Lower the required Rust version from 1.58.1 to 1.58.0 (#6780) Notes: Merged-By: k0kubun commit 09423876f9191a73ab428dc27eb5c436105048db Author: Peter Zhu AuthorDate: 2022-11-19 00:39:09 +0900 Commit: Peter Zhu CommitDate: 2022-11-22 01:26:26 +0900 Let SHAPE_BITS take 32 bits on debug builds The ractor_belonging_id has been moved out of the headers, so object shapes can take the top 32 bits of the flags on debug builds. Notes: Merged: https://github.com/ruby/ruby/pull/6763 commit 5f95228c76e6f6994eb4149217fe3e38f9ff8a27 Author: Peter Zhu AuthorDate: 2022-11-19 00:07:06 +0900 Commit: Peter Zhu CommitDate: 2022-11-22 01:26:26 +0900 Add RVALUE_OVERHEAD and move ractor_belonging_id This commit adds RVALUE_OVERHEAD for storing metadata at the end of the slot. This commit moves the ractor_belonging_id in debug builds from the flags to RVALUE_OVERHEAD which frees the 16 bits in the headers for object shapes. Notes: Merged: https://github.com/ruby/ruby/pull/6763 commit b7a0ce32da751b437b976b032e73281b9a56b509 Author: Nobuyoshi Nakada AuthorDate: 2022-11-11 17:51:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-22 00:33:19 +0900 [Bug #19016] `SyntaxError` with parser error messages Raise a `SyntaxError` with the parser error message, in the case reading from a file instead of the `-e` option or standard input. So syntax_suggest can get the message from the caught error. Notes: Merged: https://github.com/ruby/ruby/pull/6778 commit 5b959e238e5b7c18d6a1a5f5d9b4b2063de628fe Author: Nobuyoshi Nakada AuthorDate: 2022-11-11 10:37:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-22 00:33:19 +0900 [Bug #19016] re-order error handling at cleanup Build and store the error message with `#detailed_message` before terminating all Ractors, then show the message later. Notes: Merged: https://github.com/ruby/ruby/pull/6778 commit 1f0888ab3e699a1083cddad84b0d8cb28e15ad8e Author: Peter Zhu AuthorDate: 2022-11-17 23:47:18 +0900 Commit: Peter Zhu CommitDate: 2022-11-22 00:22:29 +0900 Speed up shape transitions This commit significantly speeds up shape transitions as it changes get_next_shape_internal to not perform a lookup (and instead require the caller to perform the lookup). This avoids double lookups during shape transitions. There is a significant (~2x) speedup in the following micro-benchmark: puts(Benchmark.measure do o = Object.new 100_000.times do |i| o.instance_variable_set(:"@a#{i}", 0) end end) Before: 22.393194 0.201639 22.594833 ( 22.684237) After: 11.323086 0.022284 11.345370 ( 11.389346) Notes: Merged: https://github.com/ruby/ruby/pull/6751 commit 648927d71bde5df02a0490f5f45bb7fcde913376 Author: Peter Zhu AuthorDate: 2022-11-16 00:52:39 +0900 Commit: Peter Zhu CommitDate: 2022-11-21 23:58:53 +0900 Refactor obj_ivar_set and vm_setivar obj_ivar_set and vm_setivar_slowpath is essentially doing the same thing, but the code is duplicated and not quite implemented in the same way, which could cause bugs. This commit refactors vm_setivar_slowpath to use obj_ivar_set. Notes: Merged: https://github.com/ruby/ruby/pull/6732 commit 612aa5c24a7c249867bbcd7d6567012aa6a7f4b9 Author: Nobuyoshi Nakada AuthorDate: 2022-11-21 16:20:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-21 22:16:49 +0900 Use class methods of `File` over `Kernel.open` and `IO.read` Notes: Merged: https://github.com/ruby/ruby/pull/6777 commit 116920cff8739c49ba469bf243252f503e28f0fd Author: Nobuyoshi Nakada AuthorDate: 2022-11-21 16:20:17 +0900 Commit: git[bot] CommitDate: 2022-11-21 22:15:48 +0900 [ruby/un] Use class methods of `File` over `Kernel.open` https://github.com/ruby/un/commit/13bdd766fe commit e2b15461a7dc645f4562e1d1a3f0f89973794258 Author: Nobuyoshi Nakada AuthorDate: 2022-11-21 18:28:33 +0900 Commit: git[bot] CommitDate: 2022-11-21 19:26:42 +0900 [ruby/optparse] Use class methods of `File` over `IO` https://github.com/ruby/optparse/commit/ab5073e4d8 commit c9fbc779a680f3e1fd884ec80722cd32a990e0e9 Author: Takashi Kokubun AuthorDate: 2022-11-21 17:46:22 +0900 Commit: git[bot] CommitDate: 2022-11-21 17:46:27 +0900 [ruby/irb] Add commands to start and use the debugger (https://github.com/ruby/irb/pull/449) * Seamlessly integrate a few debug commands * Improve the break command support * Utilize skip_src option if available * Add step and delete commands * Write end-to-end tests for each debugger command * Add documentation * Add backtrace, info, catch commands https://github.com/ruby/irb/commit/976100c1c2 commit 854312eede0f4af9027a7556f98666c8637fd636 Author: yui-knk AuthorDate: 2022-11-21 09:56:36 +0900 Commit: yui-knk CommitDate: 2022-11-21 16:32:13 +0900 Refactor to use has_delayed_token macro Notes: Merged: https://github.com/ruby/ruby/pull/6776 commit 730b841f8d6ba76d793a608cc20f46684a7d2cb1 Author: Yusuke Endoh AuthorDate: 2022-11-21 16:13:15 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-21 16:13:15 +0900 Prevent a "warning: ambiguity between regexp and two divisions" commit 509f04ca9159d1dd046af4ffb19cfa8252021b55 Author: Takashi Kokubun AuthorDate: 2022-11-21 13:44:23 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-21 14:24:25 +0900 [ruby/irb] Version 1.5.0 Asked by ko1 to release https://github.com/ruby/irb/pull/444 for simplifying https://github.com/ruby/debug/pull/808, and hsbt made me a gem owner for this. Stan said 1.4.3 should have been 1.5.0, but now that it's already released and it's not worth yanking it, we're not doing that change. However, now that this release includes `debug` and `edit`, I think it's a good opportunity to hit the version 1.5.0. https://github.com/ruby/irb/commit/85937d71f6 commit 1753cf59cc2fd30109c84d1a3ea56d226a9bcd75 Author: Takashi Kokubun AuthorDate: 2022-11-21 14:23:24 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-21 14:23:28 +0900 Fix a broken interpolation #{head} commit 29e6d97517bbd4dcc540464c8473172232f3e228 Author: Yudai Takada <13041216+ydah@users.noreply.github.com> AuthorDate: 2022-11-21 14:07:18 +0900 Commit: GitHub CommitDate: 2022-11-21 14:07:18 +0900 Fix typos (#6775) * s/Innteger/Integer/ * s/diretory/directory/ * s/Bufer/Buffer/ * s/defalt/default/ * s/covearge/coverage/ Notes: Merged-By: k0kubun commit d8601621edcf29e3323b90dcf04b774edd9fb45e Author: yui-knk AuthorDate: 2022-09-23 22:40:02 +0900 Commit: yui-knk CommitDate: 2022-11-21 09:01:34 +0900 Enhance keep_tokens option for RubyVM::AbstractSyntaxTree parsing methods Implementation for Language Server Protocol (LSP) sometimes needs token information. For example both `m(1)` and `m(1, )` has same AST structure other than node locations then it's impossible to check the existence of `,` from AST. However in later case, it might be better to suggest variables list for the second argument. Token information is important for such case. This commit adds these methods. * Add `keep_tokens` option for `RubyVM::AbstractSyntaxTree.parse`, `.parse_file` and `.of` * Add `RubyVM::AbstractSyntaxTree::Node#tokens` which returns tokens for the node including tokens for descendants nodes. * Add `RubyVM::AbstractSyntaxTree::Node#all_tokens` which returns all tokens for the input script regardless the receiver node. [Feature #19070] Impacts on memory usage and performance are below: Memory usage: ``` $ cat test.rb root = RubyVM::AbstractSyntaxTree.parse_file(File.expand_path('../test/ruby/test_keyword.rb', __FILE__), keep_tokens: true) $ /usr/bin/time -f %Mkb /usr/local/bin/ruby -v ruby 3.2.0dev (2022-11-19T09:41:54Z 19070-keep_tokens d3af1b8057) [x86_64-linux] 11408kb # keep_tokens :false $ /usr/bin/time -f %Mkb /usr/local/bin/ruby test.rb 17508kb # keep_tokens :true $ /usr/bin/time -f %Mkb /usr/local/bin/ruby test.rb 30960kb ``` Performance: ``` $ cat ../ast_keep_tokens.yml prelude: | src = <<~SRC module M class C def m1(a, b) 1 + a + b end end end SRC benchmark: without_keep_tokens: | RubyVM::AbstractSyntaxTree.parse(src, keep_tokens: false) with_keep_tokens: | RubyVM::AbstractSyntaxTree.parse(src, keep_tokens: true) $ make benchmark COMPARE_RUBY="./ruby" ARGS=../ast_keep_tokens.yml /home/kaneko.y/.rbenv/shims/ruby --disable=gems -rrubygems -I../benchmark/lib ../benchmark/benchmark-driver/exe/benchmark-driver \ --executables="compare-ruby::./ruby -I.ext/common --disable-gem" \ --executables="built-ruby::./miniruby -I../lib -I. -I.ext/common ../tool/runruby.rb --extout=.ext -- --disable-gems --disable-gem" \ --output=markdown --output-compare -v ../ast_keep_tokens.yml compare-ruby: ruby 3.2.0dev (2022-11-19T09:41:54Z 19070-keep_tokens d3af1b8057) [x86_64-linux] built-ruby: ruby 3.2.0dev (2022-11-19T09:41:54Z 19070-keep_tokens d3af1b8057) [x86_64-linux] warming up.. | |compare-ruby|built-ruby| |:--------------------|-----------:|---------:| |without_keep_tokens | 21.659k| 21.303k| | | 1.02x| -| |with_keep_tokens | 6.220k| 5.691k| | | 1.09x| -| ``` Notes: Merged: https://github.com/ruby/ruby/pull/6770 commit 701dfe4eb741628213e4d701c13ad6d76904ac4f Author: Nobuyoshi Nakada AuthorDate: 2022-11-18 18:22:12 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-20 20:00:40 +0900 [Bug #19016] Handle syntax error in main script like other errors So that `SyntaxError#detailed_message` will be used also in the case exiting by such syntax error. Notes: Merged: https://github.com/ruby/ruby/pull/6771 commit 12b7b852272c23d8449af507405ac93cedcb6dd6 Author: Nobuyoshi Nakada AuthorDate: 2022-11-18 18:19:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-20 20:00:40 +0900 Use `enum ruby_tag_type` over `int` Notes: Merged: https://github.com/ruby/ruby/pull/6771 commit 779917fcc0db9349bc2808150030def57ac229bf Author: Takashi Kokubun AuthorDate: 2022-11-20 14:57:40 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-20 14:58:22 +0900 Avoid a timeout on test_cache_optimization_exponential The timeout seems too short for some CIs. http://rubyci.s3.amazonaws.com/debian11-aarch64/ruby-master/log/20221120T012840Z.fail.html.gz commit 66ac288ae2d90ab314f388b4a30b6f2cf87578e7 Author: Takashi Kokubun AuthorDate: 2022-11-20 14:38:38 +0900 Commit: git[bot] CommitDate: 2022-11-20 14:38:43 +0900 [ruby/irb] Push an accidentally uncommitted diff https://github.com/ruby/irb/commit/7e9f27afd7 commit 67034ac7e2a81e1fce0818bec8014f6a35a1353c Author: Takashi Kokubun AuthorDate: 2022-11-20 14:34:46 +0900 Commit: git[bot] CommitDate: 2022-11-20 14:34:51 +0900 [ruby/irb] Deal with inconsistency with ruby/ruby https://github.com/ruby/irb/commit/41d5012849 commit 8512b97d27a617bc74d6ec0a7d3fcc1cea43194f Author: Takashi Kokubun AuthorDate: 2022-11-20 14:32:02 +0900 Commit: git[bot] CommitDate: 2022-11-20 14:32:11 +0900 [ruby/irb] Require missing EnvUtil https://github.com/ruby/irb/commit/9bb1757b02 commit fa2e0cc018e09b81d8bf3b48b4e74070b3eb9228 Author: Takashi Kokubun AuthorDate: 2022-11-20 14:31:39 +0900 Commit: git[bot] CommitDate: 2022-11-20 14:31:56 +0900 [ruby/irb] Try using a different file name hoping to address: https://github.com/ruby/ruby/actions/runs/3506561941/jobs/5873689640 https://github.com/ruby/irb/commit/de9a6b9d00 commit f47251671d7c619f00ff6e66ab7990f573224d5e Author: Takashi Kokubun AuthorDate: 2022-11-20 14:19:12 +0900 Commit: git[bot] CommitDate: 2022-11-20 14:19:50 +0900 [ruby/irb] Require rubygems for ruby/ruby You can't take rubygems for granted in a default gem. https://github.com/ruby/ruby/actions/runs/3506561943/jobs/5873689466 https://github.com/ruby/irb/commit/58bb3954d0 commit 1284baec12c57474fa4dc4f456cdf50199fdab9e Author: Takashi Kokubun AuthorDate: 2022-11-20 14:13:05 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-20 14:14:08 +0900 Skip TestDRbSSLAry on mswin This doesn't seem to stably work on mswin: https://github.com/ruby/ruby/actions/runs/3505363753/jobs/5871633211 For CI stability, it generally seems like a bad idea to run druby tests on Windows, given that it's pretty much unstable on MinGW as well. commit e0f0367ab5d3504e741bd6b89d6eea7c93a94327 Author: Takashi Kokubun AuthorDate: 2022-11-20 14:05:45 +0900 Commit: git[bot] CommitDate: 2022-11-20 14:06:07 +0900 [ruby/irb] Fix CI failure on ruby/ruby https://github.com/ruby/irb/commit/ea8c716922 commit 180ed611b238db48db9feb1449c4e3b563d2dce0 Author: Stan Lo AuthorDate: 2022-11-20 13:47:51 +0900 Commit: git[bot] CommitDate: 2022-11-20 13:47:54 +0900 [ruby/irb] Add edit command (https://github.com/ruby/irb/pull/453) * Add edit command * Make find_source a public singleton method * Add document for the edit command * Make find_end private * Remove duplicated private https://github.com/ruby/irb/commit/4321674aa7 Co-authored-by: Takashi Kokubun commit 439990318d90a689b2ac067b41c3462ddda60ae5 Author: Lars Kanis AuthorDate: 2022-11-19 03:30:14 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-20 11:06:28 +0900 Avoid warnings on MINGW: win32/win32.c: In function 'rtc_error_handler': win32/win32.c:691:5: warning: function 'rtc_error_handler' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] 691 | rb_str_vcatf(str, fmt, ap); | ^~~~~~~~~~~~ and win32/win32.c:683:1: warning: 'rtc_error_handler' defined but not used [-Wunused-function] 683 | rtc_error_handler(int e, const char *src, int line, const char *exe, const char *fmt, ...) | ^~~~~~~~~~~~~~~~~ Notes: Merged: https://github.com/ruby/ruby/pull/6764 commit 5958c305e527460465bdbd43e59b2da26d4cfbfb Author: Takashi Kokubun AuthorDate: 2022-11-20 07:14:40 +0900 Commit: git[bot] CommitDate: 2022-11-20 07:14:44 +0900 [ruby/irb] Document a full list of commands (https://github.com/ruby/irb/pull/451) * Document a full list of commands * Document debug as well * Make it less duplicated commit 23750c866a69cec982cc16921bbdc6224dfded94 Author: Takashi Kokubun AuthorDate: 2022-11-20 07:10:05 +0900 Commit: git[bot] CommitDate: 2022-11-20 07:10:09 +0900 [ruby/irb] Update documentation about Autocompletion (https://github.com/ruby/irb/pull/452) https://github.com/ruby/irb/commit/e6b4917750 commit 01bc2fc514c732406ad39d63b2e97b76f2f56de4 Author: Nobuyoshi Nakada AuthorDate: 2022-11-20 01:10:40 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-20 01:10:40 +0900 Update fake.rb for test-spec spec/ruby/command_line/dash_v_spec.rb needs it. commit 909ea6b60d658b2a1c4a53be81b09642dcf86d4b Author: BurdetteLamar AuthorDate: 2022-11-19 07:40:03 +0900 Commit: git[bot] CommitDate: 2022-11-20 00:33:28 +0900 [ruby/net-http] About the Examples moved to separate file https://github.com/ruby/net-http/commit/0512b5bfc9 commit e6162728f6ca72e97805c7ee16b98f6639b2af11 Author: BurdetteLamar AuthorDate: 2022-11-18 23:10:38 +0900 Commit: Peter Zhu CommitDate: 2022-11-20 00:25:12 +0900 [ruby/net-http] Enhanced RDoc for Net::HTTP commit 2047636af81d08d20a083fdd08cc771d772eecfb Author: Burdette Lamar AuthorDate: 2022-11-17 04:33:19 +0900 Commit: Peter Zhu CommitDate: 2022-11-20 00:17:54 +0900 [ruby/net-http] Update lib/net/http/request.rb https://github.com/ruby/net-http/commit/e3c9011edb Co-authored-by: Peter Zhu commit dbb902fc91b8b9a298d8656830f724c767345969 Author: BurdetteLamar AuthorDate: 2022-11-17 02:39:17 +0900 Commit: Peter Zhu CommitDate: 2022-11-20 00:17:54 +0900 [ruby/net-http] Enhanced RDoc for Net::HTTP https://github.com/ruby/net-http/commit/4444e8cea4 commit 951eabdcf2f0a8c8b0f23904b65bbaf93cde8d82 Author: BurdetteLamar AuthorDate: 2022-11-16 03:07:46 +0900 Commit: Peter Zhu CommitDate: 2022-11-20 00:17:53 +0900 [ruby/net-http] Enhanced RDoc for Net::HTTP https://github.com/ruby/net-http/commit/6b30c5310b commit 50c6cabadca44b7b034eae5dcc8017154a2858bd Author: Maciek Rząsa AuthorDate: 2022-11-19 11:38:16 +0900 Commit: GitHub CommitDate: 2022-11-19 11:38:16 +0900 [DOC] Change formatting in the exec docs The last part of the sentence was accidentally put in enumeration, It made an impression that it's one of the rules, not the result of applying the rules. Notes: Merged: https://github.com/ruby/ruby/pull/6762 Merged-By: nobu commit 574d849869032f987d6b9168e01fe704258b8974 Author: Alan Wu AuthorDate: 2022-11-19 08:56:27 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-19 10:36:51 +0900 Run skipped minitest tests that now pass The mentioned PR was merged. Notes: Merged: https://github.com/ruby/ruby/pull/6768 commit 6dcb7b92169e5bd490bb6eaa4d5b9b7445af464c Author: Takashi Kokubun AuthorDate: 2022-11-19 10:27:07 +0900 Commit: GitHub CommitDate: 2022-11-19 10:27:07 +0900 YJIT: Improve the failure message on enlarging a branch (#6769) Notes: Merged-By: k0kubun commit 082cfcfd06f85ea5c578f0654431dad5c2f32814 Author: yui-knk AuthorDate: 2022-11-18 19:42:37 +0900 Commit: yui-knk CommitDate: 2022-11-19 10:17:16 +0900 Add test cases for args forwarding after rest argument Notes: Merged: https://github.com/ruby/ruby/pull/6761 commit 5c505f4a48cafd83493ce2744373bd33361ab9f1 Author: Alan Wu AuthorDate: 2022-11-19 09:42:24 +0900 Commit: Alan Wu CommitDate: 2022-11-19 09:42:24 +0900 Rename misleading label We use this code path when we require the same extension twice, so it's not necessarily about the feature being statically linked. Removing this code when there is no statically linked extensions leads to breakage. commit 7f269a3c2d19e28d493a492748cd998d4cd43c89 Author: Alan Wu AuthorDate: 2022-11-19 04:59:04 +0900 Commit: Alan Wu CommitDate: 2022-11-19 08:50:34 +0900 Fix io/console test for --with-static-linked-ext The tests looks for the .so file, which doesn't exist when the extension is statically linked. In that situation it passes -I to ruby with nothing after it which ate the -rio/console argument. Notes: Merged: https://github.com/ruby/ruby/pull/6765 commit 2185f0ca772c1e8c318198b54e3a694b55945bbb Author: Aaron Patterson AuthorDate: 2022-11-19 06:58:13 +0900 Commit: Aaron Patterson CommitDate: 2022-11-19 06:58:13 +0900 Update assertion New T_OBJECT objects will have a T_OBJECT shape commit 9e067df76bda7384e8f3ddda2b348f3a742eb784 Author: Aaron Patterson AuthorDate: 2022-11-16 04:46:18 +0900 Commit: Aaron Patterson CommitDate: 2022-11-19 05:04:10 +0900 32 bit comparison on shape id This commit changes the shape id comparisons to use a 32 bit comparison rather than 64 bit. That means we don't need to load the shape id to a register on x86 machines. Given the following program: ```ruby class Foo def initialize @foo = 1 @bar = 1 end def read [@foo, @bar] end end foo = Foo.new foo.read foo.read foo.read foo.read foo.read puts RubyVM::YJIT.disasm(Foo.instance_method(:read)) ``` The machine code we generated _before_ this change is like this: ``` == BLOCK 1/4, ISEQ RANGE [0,3), 65 bytes ====================== # getinstancevariable 0x559a18623023: mov rax, qword ptr [r13 + 0x18] # guard object is heap 0x559a18623027: test al, 7 0x559a1862302a: jne 0x559a1862502d 0x559a18623030: cmp rax, 4 0x559a18623034: jbe 0x559a1862502d # guard shape, embedded, and T_OBJECT 0x559a1862303a: mov rcx, qword ptr [rax] 0x559a1862303d: movabs r11, 0xffff00000000201f 0x559a18623047: and rcx, r11 0x559a1862304a: movabs r11, 0xb000000002001 0x559a18623054: cmp rcx, r11 0x559a18623057: jne 0x559a18625046 0x559a1862305d: mov rax, qword ptr [rax + 0x18] 0x559a18623061: mov qword ptr [rbx], rax == BLOCK 2/4, ISEQ RANGE [3,6), 0 bytes ======================= == BLOCK 3/4, ISEQ RANGE [3,6), 47 bytes ====================== # gen_direct_jmp: fallthrough # getinstancevariable # regenerate_branch # getinstancevariable # regenerate_branch 0x559a18623064: mov rax, qword ptr [r13 + 0x18] # guard shape, embedded, and T_OBJECT 0x559a18623068: mov rcx, qword ptr [rax] 0x559a1862306b: movabs r11, 0xffff00000000201f 0x559a18623075: and rcx, r11 0x559a18623078: movabs r11, 0xb000000002001 0x559a18623082: cmp rcx, r11 0x559a18623085: jne 0x559a18625099 0x559a1862308b: mov rax, qword ptr [rax + 0x20] 0x559a1862308f: mov qword ptr [rbx + 8], rax ``` After this change, it's like this: ``` == BLOCK 1/4, ISEQ RANGE [0,3), 41 bytes ====================== # getinstancevariable 0x5560c986d023: mov rax, qword ptr [r13 + 0x18] # guard object is heap 0x5560c986d027: test al, 7 0x5560c986d02a: jne 0x5560c986f02d 0x5560c986d030: cmp rax, 4 0x5560c986d034: jbe 0x5560c986f02d # guard shape 0x5560c986d03a: cmp word ptr [rax + 6], 0x19 0x5560c986d03f: jne 0x5560c986f046 0x5560c986d045: mov rax, qword ptr [rax + 0x10] 0x5560c986d049: mov qword ptr [rbx], rax == BLOCK 2/4, ISEQ RANGE [3,6), 0 bytes ======================= == BLOCK 3/4, ISEQ RANGE [3,6), 23 bytes ====================== # gen_direct_jmp: fallthrough # getinstancevariable # regenerate_branch # getinstancevariable # regenerate_branch 0x5560c986d04c: mov rax, qword ptr [r13 + 0x18] # guard shape 0x5560c986d050: cmp word ptr [rax + 6], 0x19 0x5560c986d055: jne 0x5560c986f099 0x5560c986d05b: mov rax, qword ptr [rax + 0x18] 0x5560c986d05f: mov qword ptr [rbx + 8], rax ``` The first ivar read is a bit more complex, but the second ivar read is much simpler. I think eventually we could teach the context about the shape, then emit only one shape guard. Notes: Merged: https://github.com/ruby/ruby/pull/6737 commit 6582f34831cc665b2adcf7d475aceb9b918badb6 Author: Aaron Patterson AuthorDate: 2022-11-19 03:29:41 +0900 Commit: Aaron Patterson CommitDate: 2022-11-19 05:04:10 +0900 rename SHAPE_BITS to SHAPE_ID_NUM_BITS Notes: Merged: https://github.com/ruby/ruby/pull/6737 commit ba3b40a9aeb752d1b3e4c87748c977bfd3cf6f2c Author: Takashi Kokubun AuthorDate: 2022-11-19 03:03:29 +0900 Commit: git[bot] CommitDate: 2022-11-19 03:03:33 +0900 [ruby/irb] Discover and load debug.gem even if it's not in Gemfile (https://github.com/ruby/irb/pull/448) * Minor fixes on debug command * Discover and load debug.gem even if it's not in Gemfile * Eliminate else for rescue * Discover the latest one from all gem paths commit b1cbc883f2add06479113b61005f4cdfa90ff266 Author: Takashi Kokubun AuthorDate: 2022-11-19 02:34:38 +0900 Commit: git[bot] CommitDate: 2022-11-19 02:34:42 +0900 [ruby/irb] Minor fixes on debug command (https://github.com/ruby/irb/pull/447) * Minor fixes on debug command * Update lib/irb/cmd/debug.rb commit 10788166e7e568fdcd0b748e8d5dab442dcdc7ef Author: Aaron Patterson AuthorDate: 2022-11-18 08:57:11 +0900 Commit: Aaron Patterson CommitDate: 2022-11-19 01:31:56 +0900 Differentiate T_OBJECT shapes from other objects We would like to differentiate types of objects via their shape. This commit adds a special T_OBJECT shape when we allocate an instance of T_OBJECT. This allows us to avoid testing whether an object is an instance of a T_OBJECT or not, we can just check the shape. Notes: Merged: https://github.com/ruby/ruby/pull/6758 commit f0ce1186620273a1182e6084559765143099eb88 Author: yui-knk AuthorDate: 2022-11-17 23:43:21 +0900 Commit: yui-knk CommitDate: 2022-11-18 18:25:42 +0900 Make anonymous rest arg (*) and block arg (&) accessible from ARGS node Notes: Merged: https://github.com/ruby/ruby/pull/6760 commit ddd62fadaf91418cd259593285bc59358fb0b166 Author: Shugo Maeda AuthorDate: 2022-11-16 23:03:39 +0900 Commit: Shugo Maeda CommitDate: 2022-11-18 18:23:06 +0900 Allow anonymous keyword rest parameter with other keyword parameters Fixes [Bug #19132] Notes: Merged: https://github.com/ruby/ruby/pull/6743 commit 00872d120b017de2270fe18068cea2d37d41ed71 Author: Stan Lo AuthorDate: 2022-11-18 18:11:19 +0900 Commit: git[bot] CommitDate: 2022-11-18 18:11:23 +0900 [ruby/irb] Add debug command (https://github.com/ruby/irb/pull/446) https://github.com/ruby/irb/commit/30faa13fa3 commit a80b66e7ebf1179964b416cee6fd236048a73dcf Author: Hiroshi SHIBATA AuthorDate: 2022-11-18 17:51:33 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-18 17:51:37 +0900 Added build instructions of psych and fiddle with source files of libyaml and libffi commit ca1aa7afeae43b02d00cf2f2a82acde293e48875 Author: Yusuke Endoh AuthorDate: 2022-11-18 15:39:50 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-18 15:39:50 +0900 Prevent a "method redefined" warning http://rubyci.s3.amazonaws.com/ubuntu2004-arm/ruby-master/log/20221118T033003Z.log.html.gz ``` [21350/22024] TestIRB::ExtendCommandTest#test_show_source_end_finder/home/chkbuild/chkbuild/tmp/build/20221118T033003Z/ruby/test/irb/test_cmd.rb:523: warning: method redefined; discarding old show_source_test_method /home/chkbuild/chkbuild/tmp/build/20221118T033003Z/ruby/test/irb/test_cmd.rb:523: warning: previous definition of show_source_test_method was here ``` commit 417f3cd89365a12c1cd49f0df842a3dc2eb040b3 Author: Yusuke Endoh AuthorDate: 2022-11-18 14:56:55 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-18 14:56:55 +0900 tool/generic_erb.rb: Add a hack to prevent "unused variable" warnings commit e19afe36ca64b261f25622219d570720fd20a28e Author: Yusuke Endoh AuthorDate: 2022-11-18 14:45:21 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-18 14:45:21 +0900 Revert "tool/generic_erb.rb: Use ERB#result_with_hash instead of #result" This reverts commit bd148a2bdd0c1a4d7679eedcd649171cdb4234d7. ERB#result_with_hash does not work on Ruby 2.2 https://ci.appveyor.com/project/ruby/ruby/builds/45420170 ``` ../tool/generic_erb.rb:33:in `block (2 levels) in
': undefined method `result_with_hash' for # (NoMethodError) ``` commit 096ffebbbf1f4a5bbdb3abb4b8335b43645cc870 Author: Yusuke Endoh AuthorDate: 2022-11-18 14:39:40 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-18 14:39:40 +0900 Prevent a "warning: assigned but unused variable - s2" commit bd148a2bdd0c1a4d7679eedcd649171cdb4234d7 Author: Yusuke Endoh AuthorDate: 2022-11-18 14:38:09 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-18 14:38:49 +0900 tool/generic_erb.rb: Use ERB#result_with_hash instead of #result to prevent the warnings: ``` ./tool/generic_erb.rb:23: warning: assigned but unused variable - output ./tool/generic_erb.rb:24: warning: assigned but unused variable - vpath ``` commit 98e9165b0ac0065b0594c41f7d9f8907e5b1e623 Author: Jimmy Miller AuthorDate: 2022-11-18 13:17:40 +0900 Commit: GitHub CommitDate: 2022-11-18 13:17:40 +0900 Fix bug involving .send and overwritten methods. (#6752) @casperisfine reporting a bug in this gist https://gist.github.com/casperisfine/d59e297fba38eb3905a3d7152b9e9350 After investigating I found it was caused by a combination of send and a c_func that we have overwritten in the JIT. For send calls, we need to do some stack manipulation before making the call. Because of the way exits works, we need to do that stack manipulation at the last possible moment. In this case, we weren't doing that stack manipulation at all. Unfortunately, with how the code is structured there isn't a great place to do that stack manipulation for our overridden C funcs. Each overridden C func can return a boolean stating that it shouldn't be used. We would need to do the stack manipulation after all of those checks are done. We could pass a lambda(?) or separate out the logic for "can I run this override" from "now generate the code for it". Since we are coming up on a release, I went with the path of least resistence and just decided to not use these overrides if we are in a send call. We definitely should revist this in the future. Notes: Merged-By: maximecb commit ab4379e086d69b13f4446bb0bddd87844650ea1a Author: Takashi Kokubun AuthorDate: 2022-11-18 10:55:24 +0900 Commit: GitHub CommitDate: 2022-11-18 10:55:24 +0900 Refactor RB_SPECIAL_CONST_P (#6759) Since https://github.com/ruby/ruby/pull/6599, RUBY_IMMEDIATE_MASK also overlaps RUBY_Qnil. Now RB_SPECIAL_CONST_P seems confusing since both RB_IMMEDIATE_P and RB_TEST check for RUBY_Qnil while we only need to check RUBY_Qnil besides RUBY_IMMEDIATE_MASK. I'd like to make this change to make it less confusing. I confirmed that this doesn't change the number of instructions used for the RUBY_Qfalse check on Linux x86_64 GCC and macOS arm64 Clang. Notes: Merged-By: k0kubun commit d8202a52a5fedd2209248b030ea6c41382f5f3e2 Author: Takashi Kokubun AuthorDate: 2022-11-18 09:47:49 +0900 Commit: git[bot] CommitDate: 2022-11-18 09:47:53 +0900 [ruby/irb] Add an option to suppress code_around_binding (https://github.com/ruby/irb/pull/444) for debug.gem's `irb` command commit cb4c89e08ea2f879b6a860a3d6944efce6c9bf50 Author: Samuel Williams AuthorDate: 2022-11-18 08:19:21 +0900 Commit: GitHub CommitDate: 2022-11-18 08:19:21 +0900 Fix quoting of code in `NEWS.md`. commit ea8a7287e2b96b9c24e5e89fe863e5bfa60bfdda Author: Samuel Williams AuthorDate: 2022-11-18 07:50:25 +0900 Commit: GitHub CommitDate: 2022-11-18 07:50:25 +0900 Add support for `sockaddr_un` on Windows. (#6513) * Windows: Fix warning about undefined if_indextoname() * Windows: Fix UNIXSocket on MINGW and make .pair more reliable * Windows: Use nonblock=true for read tests with scheduler * Windows: Move socket detection from File.socket? to File.stat Add S_IFSOCK to Windows and interpret reparse points accordingly. Enable tests that work now. * Windows: Use wide-char functions to UNIXSocket This fixes behaviour with non-ASCII characters. It also fixes deletion of temporary UNIXSocket.pair files. * Windows: Add UNIXSocket tests for specifics of Windows impl. * Windows: fix VC build due to missing _snwprintf Avoid usage of _snwprintf, since it fails linking ruby.dll like so: linking shared-library x64-vcruntime140-ruby320.dll x64-vcruntime140-ruby320.def : error LNK2001: unresolved external symbol snwprintf x64-vcruntime140-ruby320.def : error LNK2001: unresolved external symbol vsnwprintf_l whereas linking miniruby.exe succeeds. This patch uses snprintf on the UTF-8 string instead. Also remove branch GetWindowsDirectoryW, since it doesn't work. * Windows: Fix dangling symlink test failures Co-authored-by: Lars Kanis Notes: Merged-By: ioquatix commit 4e4b29b1a9e534554594b6f18fc0bdc462638934 Author: Takashi Kokubun AuthorDate: 2022-11-18 07:00:25 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-18 07:02:01 +0900 YJIT: Make the code GC test stabler The first `add_pages` call shouldn't hit Code GC yet; otherwise `compiles` returns false. With the increased code size in runtime_stats itself, it sometimes hits Code GC too early, at least in arm64 that has a large code size. commit c80edc9f98f58826d6c6d4b5ee11a2886bbfb006 Author: Takashi Kokubun AuthorDate: 2022-11-18 05:59:59 +0900 Commit: GitHub CommitDate: 2022-11-18 05:59:59 +0900 YJIT: Add object shape count to stats (#6754) Notes: Merged-By: k0kubun commit 4b29eb17f2b01442198c81c5f62fcd3045aab659 Author: Peter Zhu AuthorDate: 2022-11-18 04:43:46 +0900 Commit: Peter Zhu CommitDate: 2022-11-18 04:43:46 +0900 Fix indentation of switch statement in shape.c commit 3f3a53919769bc3035d7837eb2f7890d7b675f86 Author: Takashi Kokubun AuthorDate: 2022-11-18 04:31:56 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-18 04:31:56 +0900 YJIT: Add missing key for non-stats build commit 0446d961a09cf324636f6dc0603ae60282c6f1c1 Author: Takashi Kokubun AuthorDate: 2022-11-18 03:58:56 +0900 Commit: GitHub CommitDate: 2022-11-18 03:58:56 +0900 YJIT: Fix typo in stats references (#6753) Notes: Merged-By: k0kubun commit 189e3c0ada43e4adb00d601dfdd26cdc42cffb2d Author: TSUYUSATO Kitsune AuthorDate: 2022-11-17 13:58:08 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-17 23:19:17 +0900 Add default cases for cache point finding function Notes: Merged: https://github.com/ruby/ruby/pull/6744 commit 90bfac296ec419b22be9ecb1eb7bf189ebc55243 Author: TSUYUSATO Kitsune AuthorDate: 2022-11-16 23:40:44 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-17 23:19:17 +0900 Add OP_CCLASS_MB case Notes: Merged: https://github.com/ruby/ruby/pull/6744 commit a145a204ec01a5087a3d3699e3707b41afd5fd6b Author: Nobuyoshi Nakada AuthorDate: 2022-11-17 21:50:40 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-17 21:52:50 +0900 [DOC] Update about `sec` argument of `Time.new` commit 7b1d23fd295fe8275b313f31ea545f7f6b3f2e62 Author: Lars Kanis AuthorDate: 2022-11-17 18:57:52 +0900 Commit: GitHub CommitDate: 2022-11-17 18:57:52 +0900 Windows: Readlink improvements (#6745) * Windows: Use readlink emulation for File.readlink This fixes readlink emulation for the ERROR_MORE_DATA case and general error reporting. It now releases GVL while readlink IO operation. The dedicated rb_readlink was introduced in commit 2ffb87995a33cdc7ba609a4b867f03f18da0c3b3 in order to improve encoding and buffer allocation. However the encoding issues are solved since ruby-3.0 switched to UTF-8 and the buffer allocation will be improved in a later commit. * Windows: Increase the default buffer size for reparse point info So far nearly all queries of reparse points needed two attempts to get enough buffer. * Windows: Remove declaration of rb_w32_wreadlink It was removed in commit 2f6fdd3aebdee2ce04d003b206f6da78120e8235 Notes: Merged-By: ioquatix commit c76909e551f0f60b7a354ab748ef1a04b84d06fb Author: Hiroshi SHIBATA AuthorDate: 2022-11-17 13:52:12 +0900 Commit: git[bot] CommitDate: 2022-11-17 13:52:50 +0900 [ruby/irb] Bump up 1.4.3 https://github.com/ruby/irb/commit/1bddbbf602 commit 923c1aaed7a5707d5c358627aad37f29e7738143 Author: st0012 AuthorDate: 2022-07-26 07:35:25 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-17 13:06:32 +0900 Drop Ruby 2.5 support Because it has reached EOL for more than 1.5 years and it won't be supported by the next reline version either. commit e61b3e6f43434bd815577a67d4f1719091b57d5c Author: Patrick Plenefisch AuthorDate: 2022-10-01 03:26:46 +0900 Commit: git[bot] CommitDate: 2022-11-17 12:39:04 +0900 [ruby/irb] Fix https://github.com/ruby/irb/pull/295: Ignore Java package reference objects in JRuby https://github.com/ruby/irb/commit/84d030182d commit a777ec0d85f1d52ddf531931c7457a65961f0082 Author: Takashi Kokubun AuthorDate: 2022-11-17 09:30:39 +0900 Commit: GitHub CommitDate: 2022-11-17 09:30:39 +0900 YJIT: Shrink version lists after mutation (#6749) Notes: Merged-By: k0kubun commit 3259aceb3514892450664828b39a78cc95a412fa Author: Takashi Kokubun AuthorDate: 2022-11-17 08:48:46 +0900 Commit: GitHub CommitDate: 2022-11-17 08:48:46 +0900 YJIT: Pack BlockId and CodePtr (#6748) Notes: Merged-By: k0kubun commit 1b8236acc212a6751da7248eb3f22b0262ca0623 Author: Takashi Kokubun AuthorDate: 2022-11-17 08:31:13 +0900 Commit: GitHub CommitDate: 2022-11-17 08:31:13 +0900 YJIT: Add compiled_branch_count stats (#6746) Notes: Merged-By: k0kubun commit 3eb7a6521ce08eb3758e63575a90b66a3ea10717 Author: Takashi Kokubun AuthorDate: 2022-11-17 03:09:15 +0900 Commit: GitHub CommitDate: 2022-11-17 03:09:15 +0900 YJIT: Shrink the vectors of Block after mutation (#6739) Notes: Merged-By: k0kubun commit 05af417587cf57142b66e5041b592fe67803a3db Author: Takashi Kokubun AuthorDate: 2022-11-17 03:08:52 +0900 Commit: GitHub CommitDate: 2022-11-17 03:08:52 +0900 YJIT: Show YJIT build option in RUBY_DESCRIPTION (#6738) YJIT: Show YJIT profile in RUBY_DESCRIPTION Notes: Merged-By: k0kubun commit 24cbc50c76f7ccc89f9510250359f3a405d9af68 Author: Nobuyoshi Nakada AuthorDate: 2022-11-05 01:01:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-16 20:47:23 +0900 Remove duplicate `.rbinc` on `.rb` dependencies Notes: Merged: https://github.com/ruby/ruby/pull/6742 commit 1f4f6c9832d83e7ebd65ccf4e95cef358b3512c6 Author: S-H-GAMELINKS AuthorDate: 2022-11-15 13:24:08 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-16 18:58:33 +0900 Using UNDEF_P macro Notes: Merged: https://github.com/ruby/ruby/pull/6721 commit dc1c4e46758ace2c9e5e822df0d64b16bb564bb4 Author: Nobuyoshi Nakada AuthorDate: 2022-11-16 11:43:52 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-16 18:42:46 +0900 Clean extension build directories and exts.mk file Notes: Merged: https://github.com/ruby/ruby/pull/6741 commit be65cf53253fa955cd4016459b3add3ba6046837 Author: Nobuyoshi Nakada AuthorDate: 2022-11-16 11:41:19 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-16 18:42:46 +0900 Remove `-j` option from `MFLAGS` for sub-makes Notes: Merged: https://github.com/ruby/ruby/pull/6741 commit fca50abb7c7e5369fdb8d2d3b6c1750076f3d846 Author: Takashi Kokubun AuthorDate: 2022-11-16 16:42:41 +0900 Commit: GitHub CommitDate: 2022-11-16 16:42:41 +0900 Let mjit-bindgen use BASERUBY and bundle/inline (#6740) Notes: Merged-By: k0kubun commit cd2da0941035c231bc95007a269b6dc3d4b62ca9 Author: Takashi Kokubun AuthorDate: 2022-11-16 14:59:38 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-16 14:59:38 +0900 MJIT: Refactor BitField dereference a little commit e7443dbbcaf82eee200d33a5c3bc374ad9eec8a7 Author: Takashi Kokubun AuthorDate: 2022-11-16 14:34:30 +0900 Commit: GitHub CommitDate: 2022-11-16 14:34:30 +0900 Rewrite Symbol#to_sym and #intern in Ruby (#6683) Notes: Merged-By: k0kubun commit 41b0f641ef0671d8cde397e56b1eb3c6b8e0f0db Author: Takashi Kokubun AuthorDate: 2022-11-16 08:23:20 +0900 Commit: GitHub CommitDate: 2022-11-16 08:23:20 +0900 YJIT: Always encode Opnd::Value in 64 bits on x86_64 for GC offsets (#6733) * YJIT: Always encode Opnd::Value in 64 bits on x86_64 for GC offsets Co-authored-by: Alan Wu * Introduce heap_object_p * Leave original mov intact * Remove unneeded branches * Add a test for movabs Co-authored-by: Alan Wu Notes: Merged-By: k0kubun commit 0d384ce6e627539d17f9307e522cb98bbca1ace3 Author: Takashi Kokubun AuthorDate: 2022-11-16 08:20:02 +0900 Commit: GitHub CommitDate: 2022-11-16 08:20:02 +0900 YJIT: Include actual memory region size in stats (#6736) Notes: Merged-By: k0kubun commit d1fb6595475707986356fd2533fa3f2a650ea39b Author: Takashi Kokubun AuthorDate: 2022-11-16 07:50:12 +0900 Commit: GitHub CommitDate: 2022-11-16 07:50:12 +0900 YJIT: Count getivar side exits by receiver flag changes (#6735) Notes: Merged-By: k0kubun commit 1125274c4e8aeffd8609ced41c05d26d45b9b5ad Author: Takashi Kokubun AuthorDate: 2022-11-16 05:57:43 +0900 Commit: GitHub CommitDate: 2022-11-16 05:57:43 +0900 YJIT: Invalidate redefined methods only through cme (#6734) Co-authored-by: Alan Wu Co-authored-by: Alan Wu Notes: Merged-By: k0kubun commit 9751b54971c5ad3bab29ce8af6ec50695aa43251 Author: Stan Lo AuthorDate: 2022-11-16 02:26:47 +0900 Commit: git[bot] CommitDate: 2022-11-16 02:26:51 +0900 [ruby/irb] Improve testing infra (https://github.com/ruby/irb/pull/442) * Add test_in_isolation task to run tests in isolation This simulates how tests are run in Ruby CI and can detect some issues before they're merged and break Ruby CI later. * Run test_in_isolation task on CI * Fix TestRaiseNoBacktraceException's setup https://github.com/ruby/irb/commit/51f23c58b0 commit ac063fd4c44fc90146908e9039706a79484c6b46 Author: Nobuyoshi Nakada AuthorDate: 2022-11-16 00:10:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-16 00:44:34 +0900 Depending on revision.h with VPATH commit 5dcbe5883364c763ca5324e40716a334360c19a7 Author: Peter Zhu AuthorDate: 2022-11-15 00:24:55 +0900 Commit: Peter Zhu CommitDate: 2022-11-15 22:53:46 +0900 Fix buffer overrun in ivars when rebuilding shapes In rb_shape_rebuild_shape, we need to increase the capacity when capacity == next_iv_index since the next ivar will be writing at index next_iv_index. This bug can be reproduced when assertions are turned on and you run the following code: class Foo def initialize @a1 = 1 @a2 = 1 @a3 = 1 @a4 = 1 @a5 = 1 @a6 = 1 @a7 = 1 end def add_ivars @a8 = 1 @a9 = 1 end end class Bar < Foo end foo = Foo.new foo.add_ivars bar = Bar.new GC.start bar.add_ivars bar.clone You will get the following crash: Assertion Failed: object.c:301:rb_obj_copy_ivar:src_num_ivs <= shape_to_set_on_dest->capacity Notes: Merged: https://github.com/ruby/ruby/pull/6725 commit 36dc99af5aa3932f3a85b1d8212e1d3625307a90 Author: Hiroshi SHIBATA AuthorDate: 2022-11-15 20:19:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-15 20:19:43 +0900 Added empty class for test methods in TestIRB cases commit aecb7f6efc8422d98453128c80754121022b0766 Author: st0012 AuthorDate: 2022-10-05 20:44:13 +0900 Commit: git[bot] CommitDate: 2022-11-15 19:08:30 +0900 [ruby/irb] Deprecate USE_RELINE and USE_REIDLINE Based on this commit: https://github.com/ruby/irb/commit/93f87ec65344b44123b0150a5fc07de1fd4c80c4 It appears that the maintainer @aycabta wanted to deprecate any `USE_*LINE` configs in favor of `USE_MULTILINE`. So we should deprecate `USE_RELINE` as well. https://github.com/ruby/irb/commit/478f19f3ae commit 34320d883f7197444fd240c68a65dd6cc6f395e3 Author: st0012 AuthorDate: 2022-10-05 20:42:01 +0900 Commit: git[bot] CommitDate: 2022-11-15 19:08:29 +0900 [ruby/irb] Deprecate reidline flags https://github.com/ruby/irb/commit/9957e83f7d commit 4f348e482c2b539aaf535ac3dabc07fed6718e59 Author: st0012 AuthorDate: 2022-10-05 20:38:51 +0900 Commit: git[bot] CommitDate: 2022-11-15 19:08:28 +0900 [ruby/irb] Rename leftover Reidline references https://github.com/ruby/irb/commit/0ed8b103ed commit 1eae15142f0fd9e5285e3d685bb1448f0f441b1c Author: st0012 AuthorDate: 2022-11-13 20:19:40 +0900 Commit: git[bot] CommitDate: 2022-11-15 19:07:32 +0900 [ruby/irb] Remove duplicated TestInputMethod definitions https://github.com/ruby/irb/commit/4b831d02e1 commit 1a9e87fe3a0bb8a4a16e34997371b1823557202d Author: Takashi Kokubun AuthorDate: 2022-11-15 17:11:44 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-15 17:34:00 +0900 MJIT: Fix vm_cc_cme(cc).def.type to use bit field access properly. Because the libclang node had two children, it wasn't handled well by the pattern matching for the bit field case. In addition to that, this bit field has a non-1 width. Because we're returning true/false for a width-1 bit field, I added another behavior that works like a char value for bit fields with width 2-8. commit f500ca9b8a62599433f7087fe1da30ec16e3564c Author: Takashi Kokubun AuthorDate: 2022-11-15 17:18:12 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-15 17:18:13 +0900 Handle more MJIT compilation failures NotImplementedError is not part StandardError, for example. When that kind of exception happens, current_cc_unit remains not NULL, and mjit_finish ends up waiting for 5 seconds, which is inconvenient. commit 2652bc3578b79dbe9b3b28d4ee67b3729789cc61 Author: Johnny Willemsen AuthorDate: 2022-11-15 17:06:22 +0900 Commit: git[bot] CommitDate: 2022-11-15 17:15:19 +0900 [ruby/racc] Update racc.gemspec Updated homepage to https://github.com/ruby/racc commit 69e47b7fa6611a852e86ea6efee4ba9cf49f893e Author: Takashi Kokubun AuthorDate: 2022-11-15 16:37:30 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-15 16:39:38 +0900 MJIT: Remove reference to ROBJECT_EMBED_LEN_MAX maybe not used since some shape changes? commit d15d1c01c28f63888475f8016adbc8b4f982b573 Author: Takashi Kokubun AuthorDate: 2022-11-15 16:38:52 +0900 Commit: GitHub CommitDate: 2022-11-15 16:38:52 +0900 Rename --mjit-min-calls to --mjit-call-threshold (#6731) for consistency with YJIT Notes: Merged-By: k0kubun commit c75de1e3304e804be9c073940f396c8a506a005f Author: Kenta Murata AuthorDate: 2022-11-15 15:58:56 +0900 Commit: git[bot] CommitDate: 2022-11-15 15:59:11 +0900 [ruby/bigdecimal] Add fallback definition of MAYBE_UNUSED https://github.com/ruby/bigdecimal/commit/b2123faa52 commit c925a2ee91a06cd91f6c1045d69041c699f12105 Author: David Rodríguez AuthorDate: 2022-11-11 20:15:03 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-15 14:45:51 +0900 Update RSpec gems commit 3c60e030b57be556ea2002d1416fdfa6c1cb2a1b Author: Kenta Murata AuthorDate: 2022-11-15 13:01:50 +0900 Commit: git[bot] CommitDate: 2022-11-15 13:02:01 +0900 [ruby/bigdecimal] Replace sprintf by snprintf https://github.com/ruby/bigdecimal/commit/d6f5bb40c7 commit e74d82f67447d10347b154d5e9b098397e80567c Author: Aaron Patterson AuthorDate: 2022-11-15 09:15:50 +0900 Commit: Aaron Patterson CommitDate: 2022-11-15 10:04:50 +0900 Implement LDURH on Aarch64 When RUBY_DEBUG is enabled, shape ids are 16 bits. I would like to do 16 bit comparisons, so I need to load halfwords sometimes. This commit adds LDURH so that I can load halfwords. https://developer.arm.com/documentation/ddi0596/2021-12/Base-Instructions/LDURH--Load-Register-Halfword--unscaled--?lang=en I verified the bytes using clang: ``` $ cat asmthing.s .global _start .align 2 _start: ldurh w10, [x1] ldurh w10, [x1, #123] $ as asmthing.s -o asmthing.o && objdump --disassemble asmthing.o asmthing.o: file format mach-o arm64 Disassembly of section __TEXT,__text: 0000000000000000 : 0: 2a 00 40 78 ldurh w10, [x1] 4: 2a b0 47 78 ldurh w10, [x1, #123] ``` Notes: Merged: https://github.com/ruby/ruby/pull/6729 commit 9228ae97c5f4e27a3bd534d4b40c6f390cb8aaac Author: Takashi Kokubun AuthorDate: 2022-11-15 09:52:20 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-15 09:53:14 +0900 Try to let dependabot maintain the version comment It seems like dependabot supports updating the `# vX.Y.Z` comment. The reason why I disabled this was that it failed to update this, but maybe it was because it had `, checking sha`. Let me try it again with that removed. commit 3147a3900f7fc5ee7f763741dcc97f4487de79f4 Author: Kenta Murata AuthorDate: 2022-11-15 09:32:53 +0900 Commit: git[bot] CommitDate: 2022-11-15 09:34:23 +0900 [ruby/bigdecimal] Mark some functions MAYBE_UNUSED https://github.com/ruby/bigdecimal/commit/d70a4d53e5 commit 5c3dba83faee9dca30fa37d14c52419d68300409 Author: Nobuyoshi Nakada AuthorDate: 2022-11-15 09:01:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-15 09:01:29 +0900 Re-order checks for colons in UTC offset commit b7d591643ae37a556217a22e1ee9e9c6ab7cfd3e Author: Aaron Patterson AuthorDate: 2022-11-15 06:16:26 +0900 Commit: Aaron Patterson CommitDate: 2022-11-15 08:42:11 +0900 Remove USE_RVARGC code We don't need this constant to be exposed anymore, so remove it Notes: Merged: https://github.com/ruby/ruby/pull/6728 commit 6cd0553ab7d6927e07cc7f00305cb413436b7608 Author: Shohei YOSHIDA AuthorDate: 2022-11-14 09:50:18 +0900 Commit: git[bot] CommitDate: 2022-11-15 08:39:32 +0900 [rubygems/rubygems] Update comment by the review comment https://github.com/rubygems/rubygems/commit/7c54dc56f6 commit 436aa6e64df1164c1158210936f8f606f49cbb6b Author: Shohei YOSHIDA AuthorDate: 2022-11-08 21:30:14 +0900 Commit: git[bot] CommitDate: 2022-11-15 08:39:32 +0900 [rubygems/rubygems] Fix '--force' option documentation of 'bundle clean' '--path' option is no longer used. https://github.com/rubygems/rubygems/commit/43b3d5f7bc commit 710c1ada8494859a6902c0baf8566d474c34ce32 Author: Peter Zhu AuthorDate: 2022-11-15 06:59:43 +0900 Commit: Peter Zhu CommitDate: 2022-11-15 06:59:43 +0900 Use string's capacity to determine if reembeddable During auto-compaction, using length to determine whether or not a string can be re-embedded may be a problem for newly created strings. This is because usually it requires a malloc before setting the length. If the malloc triggers compaction, then the string may be re-embedded and can cause crashes. commit 9a6c3355c5c9541b9afb94d4ee770a7584c7ac15 Author: Peter Zhu AuthorDate: 2022-11-15 05:40:47 +0900 Commit: Peter Zhu CommitDate: 2022-11-15 05:40:47 +0900 Set array capacity/shared immediately after alloc If auto-compaction is enabled, then we have to set the capacity/shared immediately after allocating a heap array. If compaction runs before capacity/shared is set then it could cause the array to be re-embedded, which can cause crashes. commit 6dd1a5f532711a28ffe815455503f5a2b1f70d23 Author: Peter Zhu AuthorDate: 2022-11-12 00:37:11 +0900 Commit: Peter Zhu CommitDate: 2022-11-15 01:25:41 +0900 Remove unused function rb_shape_transition_shape Notes: Merged: https://github.com/ruby/ruby/pull/6717 commit 3fae53a343ebd7686bb20d8f4b6855f4d11019cd Author: Nobuyoshi Nakada AuthorDate: 2022-11-14 18:59:06 +0900 Commit: GitHub CommitDate: 2022-11-14 18:59:06 +0900 [Bug #19127] Fix revision.h dependency when no baseruby Disconnect the dependency of revision.h on the timestamp file if no baseruby is available Notes: Merged: https://github.com/ruby/ruby/pull/6724 Merged-By: nobu commit a8537aa6a5ec6da5261e727943ba267bc422e594 Author: Takashi Kokubun AuthorDate: 2022-11-14 17:29:28 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-14 17:29:28 +0900 Import shape constants with mjit-bindgen commit 80bab6c8eddbb225c88155f2eb456a4d937294c7 Author: Takashi Kokubun AuthorDate: 2022-11-14 17:24:08 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-14 17:24:08 +0900 Import class constants with mjit-bindgen commit d019c3a4bd7b0955c630195c585f3f029a78877e Author: Yusuke Endoh AuthorDate: 2022-11-14 15:37:21 +0900 Commit: git[bot] CommitDate: 2022-11-14 15:37:33 +0900 [ruby/error_highlight] Bump version https://github.com/ruby/error_highlight/commit/5275078dc6 commit 81c494d81009290706967095912a1f4791e2d5ee Author: Yusuke Endoh AuthorDate: 2022-11-14 15:19:01 +0900 Commit: git[bot] CommitDate: 2022-11-14 15:22:35 +0900 [ruby/error_highlight] Enable tests for TypeError and ArgumentError These tests were unintentionally disabled by `if false` https://github.com/ruby/error_highlight/commit/fa6d00d80d commit 8bfd4dd4e15a9ac3a308c3c45db629e74fae9b0c Author: Yusuke Endoh AuthorDate: 2022-11-14 14:36:24 +0900 Commit: git[bot] CommitDate: 2022-11-14 15:06:12 +0900 [ruby/error_highlight] Enable ErrorHighlight for TypeError/ArgumentError only after Ruby 3.2 ... because changing TypeError#message and ArgumentError#message is highly incompatible. https://github.com/ruby/error_highlight/commit/39aa897c7a commit 96d29dff66a0d2e045d09ce6bb7bb3b382c59c2c Author: Takashi Kokubun AuthorDate: 2022-11-14 14:14:46 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-14 14:14:47 +0900 Fix invokebuiltin in Ruby MJIT https://github.com/ruby/ruby/blob/45fe7f757522ed7d1d3ec754da59d41d45dd6bab/tool/ruby_vm/views/_mjit_compile_invokebuiltin.erb#L21 has not been ported correctly. commit 3dd4e381fe3c7faf886145ad7ab2152c6b199d69 Author: Takashi Kokubun AuthorDate: 2022-11-14 13:35:35 +0900 Commit: GitHub CommitDate: 2022-11-14 13:35:35 +0900 Reduce the number of branches in jit_exec (#6722) * Reduce the number of branches in jit_exec * Address build failure in some configurations * Refactor yjit.h Notes: Merged-By: k0kubun commit dc5e2eaab6a82d31992127e4a3ba4028824d7b92 Author: Takashi Kokubun AuthorDate: 2022-11-14 08:13:13 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-14 08:13:44 +0900 Refactor update_global_event_hook It seems more readable to put JIT invalidation code together. commit e377875cff5dd93758296180c3bd6a35c3bbbc12 Author: Takashi Kokubun AuthorDate: 2022-11-14 07:41:08 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-14 07:41:08 +0900 s/mjit_func_t/jit_func_t/ commit 68e05234848e8cd0dae7ba9f27a17f9220236fba Author: Takashi Kokubun AuthorDate: 2022-11-14 06:58:50 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-14 07:00:30 +0900 Remove unused debug counters The structure and readability of jit_exec is messed up right now. I'd like to help the current situation by this for now. I'll resurrect them when I need it again. commit 6246788bc47b5d28e3c612479a2986d84f2aa589 Author: Takashi Kokubun AuthorDate: 2022-11-14 02:54:41 +0900 Commit: GitHub CommitDate: 2022-11-14 02:54:41 +0900 YJIT: Instrument global allocations on stats build (#6712) * YJIT: Instrument global allocations on stats build * Just use GLOVAL_ALLOCATOR.stats() Notes: Merged-By: maximecb commit bc8ba244b8524c8537eda4ca79f880312c8f4528 Author: Alan Wu AuthorDate: 2022-11-14 02:51:19 +0900 Commit: GitHub CommitDate: 2022-11-14 02:51:19 +0900 YJIT: Fix invalidation for c_call and c_return (#6719) Follow-up for 2b8191bdad7545b71f270d2b25a34cd2b3afa02f. Since that commit, we stopped doing code invalidation the second time the call and return events are enabled. We need to do it every time these events are enabled because we might have generated code while these events are disabled. Also rename locals and edit comments to make it more clear that the iseq rewrite code path only happens the first time a particular iseq trace event is enabled. Notes: Merged-By: maximecb commit a1b460bd6e4b53ce41771669d39a4a6f414bf35f Author: Maxime Chevalier-Boisvert AuthorDate: 2022-11-14 02:42:47 +0900 Commit: GitHub CommitDate: 2022-11-14 02:42:47 +0900 Update yjit.md Remove disclaimer commit d5e1b82f5c3e29e5d0a4a49216ae26e18af3f1c6 Author: Takashi Kokubun AuthorDate: 2022-11-14 02:33:23 +0900 Commit: GitHub CommitDate: 2022-11-14 02:33:23 +0900 YJIT: Remove unused src_ctx from Block (#6714) Notes: Merged-By: maximecb commit 2f7d2662dd90a6985f1c98ea93cfc2026407a8ab Author: Nobuyoshi Nakada AuthorDate: 2022-11-13 23:54:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-13 23:54:43 +0900 Control non-parallel parts with `.WAIT` if available commit 8d82f4ba1c715da6a50b8626792a49c343914efd Author: Kenta Murata AuthorDate: 2022-11-13 21:05:46 +0900 Commit: git[bot] CommitDate: 2022-11-13 21:33:29 +0900 [ruby/bigdecimal] Add specific value allocators * Add NewZero* and NewOne* function families * Use them instead of VpAlloc for allocating 0 and 1 https://github.com/ruby/bigdecimal/commit/9276a94ac7 commit 70c9d5b504525afd679cb45174e9544f150428a5 Author: Nobuyoshi Nakada AuthorDate: 2022-11-13 18:05:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-13 18:05:11 +0900 Try to overwrite the file in VPATH if possible commit 66529eef883cc8bb9bc628122f9fa0104acd79fc Author: Nobuyoshi Nakada AuthorDate: 2022-11-12 08:48:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-13 17:38:44 +0900 Force to update revision.h when commits differ commit 18fa7059e83d6c1afa32c4b331ca254da452a36a Author: Takashi Kokubun AuthorDate: 2022-11-13 15:15:31 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-13 15:15:40 +0900 Deal with different Ruby versions commit 802dce4acd97234bef88fe4bbb98db5ab90c45d9 Author: Kenta Murata AuthorDate: 2022-11-13 14:59:55 +0900 Commit: git[bot] CommitDate: 2022-11-13 15:01:27 +0900 [ruby/bigdecimal] Add and use specific value allocators * Add rbd_allocate_struct_zero for making 0.0 * Add rbd_allocate_struct_one for making 1.0 * Use them to replace VpAlloc calls * Renmae VpPt5 to VpConstPt5 https://github.com/ruby/bigdecimal/commit/40c826f5e6 commit 019f53de5c92059745fd1fcf8f3b8dcad92bff67 Author: Kenta Murata AuthorDate: 2022-11-13 14:59:21 +0900 Commit: git[bot] CommitDate: 2022-11-13 15:01:27 +0900 [ruby/bigdecimal] Make VPrint function always available https://github.com/ruby/bigdecimal/commit/5391f7e92c commit c0735d1d72aeeed777a233831c6a5208edadc2dc Author: Takashi Kokubun AuthorDate: 2022-11-13 14:55:00 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-13 14:55:00 +0900 Fix a CI failure in bigdecimal commit d1f55dea864f1ab819bc8332476ae2824c5d0302 Author: Kenta Murata AuthorDate: 2022-11-13 13:26:50 +0900 Commit: git[bot] CommitDate: 2022-11-13 13:29:19 +0900 [ruby/bigdecimal] Tweak VpAlloc * Stop reusing mx and mf * Check szVal == NULL first * Treat special values before checking the leading `#` https://github.com/ruby/bigdecimal/commit/14f3d965f8 commit bbb9f7235329380d9cf617530ca4d39ba07e1824 Author: Kenta Murata AuthorDate: 2022-11-13 12:46:22 +0900 Commit: git[bot] CommitDate: 2022-11-13 12:47:40 +0900 [ruby/bigdecimal] Rewrite allocation functions * Rename them * Make allocation count operations atomic https://github.com/ruby/bigdecimal/commit/a5ab34a115 commit 27034102890f5feeb28682e5117f1d2ec6a949ad Author: Kenta Murata AuthorDate: 2022-11-13 11:46:00 +0900 Commit: git[bot] CommitDate: 2022-11-13 11:46:42 +0900 [ruby/bigdecimal] Twak GetPrecisionInt and rename it to check_int_precision https://github.com/ruby/bigdecimal/commit/69d0588a3b commit ef1c6109b12b78926b7cb31cd8b0d27b629a35c4 Author: Kenta Murata AuthorDate: 2022-11-13 11:01:09 +0900 Commit: git[bot] CommitDate: 2022-11-13 11:02:02 +0900 [ruby/bigdecimal] Tweak check_rounding_mode_option https://github.com/ruby/bigdecimal/commit/e1c6c9be25 commit 74c6e6e565aad4cbf2e5b7a13c21e78361808404 Author: Kenta Murata AuthorDate: 2022-11-13 10:50:33 +0900 Commit: git[bot] CommitDate: 2022-11-13 11:02:01 +0900 [ruby/bigdecimal] Rewrite check_rounding_mode function Use table-lookup algorithm instead of consecutive if-statements. https://github.com/ruby/bigdecimal/commit/23eaff3ae5 commit b89769b978588ede479bea17fedc976d4387b281 Author: Kenta Murata AuthorDate: 2022-11-13 10:13:54 +0900 Commit: git[bot] CommitDate: 2022-11-13 11:02:00 +0900 [ruby/bigdecimal] [Doc] Fix the document of n_significant_digits https://github.com/ruby/bigdecimal/commit/91b72a9341 commit 977aac057f590ea19754d03e1475b470fc07c7d3 Author: Kenta Murata AuthorDate: 2022-11-13 10:11:27 +0900 Commit: git[bot] CommitDate: 2022-11-13 11:02:00 +0900 [ruby/bigdecimal] Make GetVpValue inline https://github.com/ruby/bigdecimal/commit/1b642e2e59 commit 0d5248673da4399cd5ee7899f988213fff177e87 Author: Kenta Murata AuthorDate: 2022-11-13 10:09:16 +0900 Commit: git[bot] CommitDate: 2022-11-13 11:01:59 +0900 [ruby/bigdecimal] Make BigDecimal_double_fig inline https://github.com/ruby/bigdecimal/commit/4ecf04da7a commit 0a9d51ee9d2b3d0111832e5ea1c8195a16e2f99b Author: Hiroshi SHIBATA AuthorDate: 2022-11-12 06:00:58 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-12 07:40:31 +0900 Migrate our resolver engine to PubGrub https://github.com/rubygems/rubygems/pull/5960 Co-authored-by: David Rodríguez commit 14a1394bcd85c90c9f14f687fd4a80ba5b96b437 Author: Stan Lo AuthorDate: 2022-11-12 06:05:31 +0900 Commit: git[bot] CommitDate: 2022-11-12 06:05:35 +0900 [ruby/irb] Simplify info command's tests (https://github.com/ruby/irb/pull/440) https://github.com/ruby/irb/commit/5942949226 commit a48e01ccba99eaec48bf63db326c0602fbd50610 Author: Burdette Lamar AuthorDate: 2022-11-11 00:36:50 +0900 Commit: git[bot] CommitDate: 2022-11-12 02:05:29 +0900 [ruby/net-http] Update lib/net/http.rb https://github.com/ruby/net-http/commit/16d042fad6 Co-authored-by: Peter Zhu commit 4d9ada223bf7d57a62e94b0a2082cc92ba5b7813 Author: BurdetteLamar AuthorDate: 2022-11-10 07:08:51 +0900 Commit: git[bot] CommitDate: 2022-11-12 02:05:28 +0900 [ruby/net-http] Prettify class hierarchies in Net::HTTP https://github.com/ruby/net-http/commit/4a5732e210 commit 04c5adf80697a310f12f473b5ef772d234576f2b Author: Alan Wu AuthorDate: 2022-11-11 07:24:10 +0900 Commit: Alan Wu CommitDate: 2022-11-12 01:13:07 +0900 YJIT: Fix staying in invalidated code after proc calls Previously, there is no instruction boundary patch point after the call to a non-leaf C function we generate for OPTIMIZED_METHOD_TYPE_CALL. This meant that if code GC is triggered while inside the C function, we would keep running invalidated code when we return from the C function. This had the effect of running stale branch stubs, jumping to bad code, etc. Use jit_prepare_routine_call() to make sure we exit from the invalidated region as soon as possible after the C call in case of invalidation. Notes: Merged: https://github.com/ruby/ruby/pull/6711 commit 90bbc891b192c30432c517ccb279ed687bb2d0b4 Author: Hiroshi SHIBATA AuthorDate: 2022-11-11 17:01:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-11 21:12:56 +0900 Enable only master-branch Notes: Merged: https://github.com/ruby/ruby/pull/6716 commit 5a1ddc486bad30d795ce94021ee03c085e7a88c1 Author: Hiroshi SHIBATA AuthorDate: 2022-11-11 16:54:51 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-11 21:12:56 +0900 Test with topic-branch Notes: Merged: https://github.com/ruby/ruby/pull/6716 commit 800caf4ee1eca21252da0ec148ed7840df89bc9b Author: Hiroshi SHIBATA AuthorDate: 2022-11-11 16:54:24 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-11 21:12:56 +0900 Use secrets.SCORECARD_READ_TOKEN Notes: Merged: https://github.com/ruby/ruby/pull/6716 commit a0fcbce415fc045ff16eb74946a40774c0d39ac5 Author: Hiroshi SHIBATA AuthorDate: 2022-11-11 16:06:36 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-11 21:12:56 +0900 Try to use ossf/scorecards Notes: Merged: https://github.com/ruby/ruby/pull/6716 commit 28611be6ee84ba8eb19e667a70ae129833b98b8b Author: Hiroshi SHIBATA AuthorDate: 2022-11-11 15:05:59 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-11 17:24:08 +0900 Merge RubyGems/Bundler master from ee2f8398324af4bc1b95f7565ce2fda98126e026 Notes: Merged: https://github.com/ruby/ruby/pull/6715 commit de159c5a855dd53bfd9ce284c9099306724560a7 Author: Josef Šimánek AuthorDate: 2022-11-05 06:56:31 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-11 17:24:08 +0900 [rubygems/rubygems] Store last check even when upgrade is not available and fix test. https://github.com/rubygems/rubygems/commit/bcffc2b0a5 Notes: Merged: https://github.com/ruby/ruby/pull/6715 commit 7ce0f81fbbd9c2b35e9fe35f5ef040626e284a88 Author: Josef Šimánek AuthorDate: 2022-10-29 09:47:14 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-11 17:24:08 +0900 [rubygems/rubygems] Use file in XDG_STATE_HOME directory to store last update check timestamp. https://github.com/rubygems/rubygems/commit/0fbc4ace8a Notes: Merged: https://github.com/ruby/ruby/pull/6715 commit c7d043065c058f20ce30c61bb3ce127cb15cc0a8 Author: Josef Šimánek AuthorDate: 2022-09-11 12:40:55 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-11 17:24:08 +0900 [rubygems/rubygems] Add 'call for update' to RubyGems install command. https://github.com/rubygems/rubygems/commit/05811f8248 Notes: Merged: https://github.com/ruby/ruby/pull/6715 commit ceeefb5870c144ddc069b2c9b8a19dbd4947a947 Author: Jason Karns AuthorDate: 2022-10-29 04:30:21 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-11 17:24:08 +0900 [rubygems/rubygems] github source should default to secure protocol Bundler 2 switched to secure https here https://github.com/rubygems/rubygems/commit/c2e81f8ff63613871cc8b52653c5e176f8dafde3 Insecure protocols should be avoided to prevent MITM attacks. https://github.com/rubygems/rubygems/commit/758413364a Notes: Merged: https://github.com/ruby/ruby/pull/6715 commit adfbee85e07494d42e54b1c616e5fa62a207fb8f Author: Yusuke Endoh AuthorDate: 2022-11-11 09:05:51 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-11 09:07:00 +0900 Allow a float error for Regexp.timeout The tests failed on windows https://github.com/ruby/ruby/actions/runs/3440997073/jobs/5740085169#step:18:62 ``` 1) Failure: TestRegexp#test_s_timeout [D:/a/ruby/ruby/src/test/ruby/test_regexp.rb:1586]: <0.30000000000000004> expected but was <0.3>. 2) Failure: TestRegexp#test_timeout_shorter_than_global [D:/a/ruby/ruby/src/test/ruby/test_regexp.rb:1631]: <0.30000000000000004> expected but was <0.3>. ``` commit 8fa83fa0b2031ad17f01b5a12b39599398dc6da6 Author: Takashi Kokubun AuthorDate: 2022-11-11 07:55:11 +0900 Commit: git[bot] CommitDate: 2022-11-11 07:55:15 +0900 [ruby/irb] Transform ls's --grep/-G option to keyword args (https://github.com/ruby/irb/pull/437) * Transform ls's --grep/-G option to keyword args * Make --grep less flexible * Support -g instead of --grep * Suppress warnings from symbol aliases commit d5513da01d24fbc4de71975b6a49f0ba3b3be401 Author: Yusuke Endoh AuthorDate: 2022-10-29 03:23:46 +0900 Commit: git[bot] CommitDate: 2022-11-11 07:45:31 +0900 [rubygems/rubygems] Update bundler/spec/bundler/shared_helpers_spec.rb https://github.com/rubygems/rubygems/commit/8b1481ba77 Co-authored-by: Nobuyoshi Nakada commit b5f809c4961bd43b8e77cceebad44e341618998d Author: Yusuke Endoh AuthorDate: 2022-10-29 01:19:36 +0900 Commit: git[bot] CommitDate: 2022-11-11 07:45:31 +0900 [rubygems/rubygems] Load "bundler/setup" in lib/rubygems.rb Ruby interpreter loads some special gems at startup: did_you_mean, error_highlight, and syntax_suggest. These gems are loaded before `bundler/setup` is loaded by `RUBYOPT=-rbundler/setup`. So, the versions of the gems are not controllable by Gemfile. This change will `require "bundler/setup"` in rubygems.rb (i.e., before the special gems are loaded). Now `bundle exec` sets an environment variable `BUNDLER_SETUP`, and rubygems requires the variable if defined. See also: https://bugs.ruby-lang.org/issues/19089 https://github.com/rubygems/rubygems/commit/963cb65a2d commit 06e17d7659f42cd59634931e5c8d9dd211c7b2e6 Author: Yusuke Endoh AuthorDate: 2022-11-11 07:41:08 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-11 07:42:03 +0900 Run EnvUtil.apply_timeout_scale outside of assert_separately It does not work well in assert_separately commit 51d161980ae0e26602eb17bed5f9cc0beb61f9a3 Author: Thomas E. Enebo AuthorDate: 2022-11-11 04:37:57 +0900 Commit: git[bot] CommitDate: 2022-11-11 07:36:34 +0900 [ruby/racc] Make racc test more flexible (for JRuby). JRuby uses these same files for testing racc. The existing logic will not find 'racc' in a JRuby project checkout. This change allows it to work by just assuming 'ruby -S racc' when running tests. This will not change C Ruby's detection when setting up tests (since earlier checks will find racc). https://github.com/ruby/racc/commit/b74ce5e018 commit 2b8191bdad7545b71f270d2b25a34cd2b3afa02f Author: Takashi Kokubun AuthorDate: 2022-11-11 07:12:38 +0900 Commit: GitHub CommitDate: 2022-11-11 07:12:38 +0900 YJIT: Invalidate JIT code only for ISEQ_TRACE_EVENTS (#6695) Notes: Merged-By: maximecb commit d9056328514041c22f73809921118fa7a1478092 Author: Takashi Kokubun AuthorDate: 2022-11-11 06:16:25 +0900 Commit: GitHub CommitDate: 2022-11-11 06:16:25 +0900 Define YJIT_STATS on --enable-yjit=stats (#6710) Notes: Merged-By: k0kubun commit 7ee1cacb84e6b19908ac0e692601447597d40605 Author: Jemma Issroff AuthorDate: 2022-11-11 01:36:24 +0900 Commit: Peter Zhu CommitDate: 2022-11-11 03:02:50 +0900 Extract `rb_shape_get_parent` helper Extract an `rb_shape_get_parent` method instead of continually calling `rb_shape_get_shape_by_id(shape->parent_id)` Notes: Merged: https://github.com/ruby/ruby/pull/6708 commit 354791c248d7e21d5b70ded7c548af954491e247 Author: Takashi Kokubun AuthorDate: 2022-11-11 03:00:15 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-11 03:00:16 +0900 Remove inconsistency I meant they should be also fixed in https://github.com/ruby/ruby/pull/6694#discussion_r1019445575 commit 8b3347950e6344474430ed08f5fa19f613883660 Author: Jimmy Miller AuthorDate: 2022-11-11 02:56:22 +0900 Commit: GitHub CommitDate: 2022-11-11 02:56:22 +0900 Enable --yjit-stats for release builds (#6694) * Enable --yjit-stats for release builds In order for people in the real world to report information about how their application runs with YJIT, we want to expose stats without requiring rebuilding ruby. We can do this without overhead, with the exception of count ratio in yjit, since this relies on the interpreter also counting instructions. This change exposes those stats, while not showing ratio in yjit if we are not in a stats build. * Update yjit.rb Co-authored-by: Takashi Kokubun Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged-By: maximecb commit 0de3bc92b4fc3bb9fc0930e98baed37044ed44e1 Author: Takashi Kokubun AuthorDate: 2022-11-11 02:31:11 +0900 Commit: git[bot] CommitDate: 2022-11-11 02:31:15 +0900 [ruby/irb] Make $ and @ default aliases (https://github.com/ruby/irb/pull/438) https://github.com/ruby/irb/commit/0613589476 commit bab8051d2d20a13f4aa26330a25e72ccec980f7a Author: Nobuyoshi Nakada AuthorDate: 2022-11-09 19:36:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-11 01:56:46 +0900 [Bug #19100] [DOC] Add NEWS about PRNG update and incompatiblity Notes: Merged: https://github.com/ruby/ruby/pull/6697 commit c771d835934141645db72bb98351c77b378ac17e Author: Alan Wu AuthorDate: 2022-11-11 01:30:54 +0900 Commit: GitHub CommitDate: 2022-11-11 01:30:54 +0900 Set up EXTSTATIC before checking it The bundle_loader check for darwin checks EXTSTATIC, but previously the setup for the variable comes after the check. I had trouble building using --with-static-linked-ext on darwin before this change. Notes: Merged: https://github.com/ruby/ruby/pull/6675 Merged-By: XrXr commit c726c48a3dacd9ca1cb0d96fee98890cb74b37d3 Author: Jemma Issroff AuthorDate: 2022-11-09 04:09:43 +0900 Commit: Peter Zhu CommitDate: 2022-11-11 00:11:34 +0900 Remove numiv from RObject Since object shapes store the capacity of an object, we no longer need the numiv field on RObjects. This gives us one extra slot which we can use to give embedded objects one more instance variable (for a total of 3 ivs). This commit removes the concept of numiv from RObject. Notes: Merged: https://github.com/ruby/ruby/pull/6699 commit 5246f4027ec574e77809845e1b1f7822cc2a5cef Author: Jemma Issroff AuthorDate: 2022-11-09 05:35:31 +0900 Commit: Peter Zhu CommitDate: 2022-11-11 00:11:34 +0900 Transition shape when object's capacity changes This commit adds a `capacity` field to shapes, and adds shape transitions whenever an object's capacity changes. Objects which are allocated out of a bigger size pool will also make a transition from the root shape to the shape with the correct capacity for their size pool when they are allocated. This commit will allow us to remove numiv from objects completely, and will also mean we can guarantee that if two objects share shapes, their IVs are in the same positions (an embedded and extended object cannot share shapes). This will enable us to implement ivar sets in YJIT using object shapes. Co-Authored-By: Aaron Patterson Notes: Merged: https://github.com/ruby/ruby/pull/6699 commit 9986697b621e5345177a1c395489dcc9fab8602b Author: Jemma Issroff AuthorDate: 2022-11-09 05:35:31 +0900 Commit: Peter Zhu CommitDate: 2022-11-11 00:11:34 +0900 Omit test on IO Buffers which relies on String being embedded There is currently a bug ([#19084]) in how extended strings work in IO Buffers. Object Shapes changes will make the string in this test extended on 32 bit machines. Since this behavior is currently broken (unrelated to object shapes) on 32 bit machines, this test will then fail. We preemptively omit it so that this commit can be reverted once the bug is fixed. Notes: Merged: https://github.com/ruby/ruby/pull/6699 commit 199b59f065ce6f1c13b8424f35a70c513523211b Author: Jemma Issroff AuthorDate: 2022-11-10 07:04:35 +0900 Commit: Peter Zhu CommitDate: 2022-11-10 23:26:37 +0900 Fix bug in array pack with shared strings If string literals are long and they become shared, we need to make them independent before we can write to them. [Bug #19116] Notes: Merged: https://github.com/ruby/ruby/pull/6704 commit 68bd1d685579f9ae96f1c8160cf1fd9820e508da Author: Peter Zhu AuthorDate: 2022-11-10 23:07:20 +0900 Commit: Peter Zhu CommitDate: 2022-11-10 23:07:20 +0900 Fix compiler issues in test on C99 Fixes the following issue when compiling using C99: ext/-test-/rb_call_super_kw/rb_call_super_kw.c ext/-test-/random/loop.c:16:39: error: extra ';' outside of a function [-Werror,-Wextra-semi] RB_RANDOM_DEFINE_INIT_INT32_FUNC(loop); commit b7e8876704648cee6866591ac1aca7a54faff742 Author: Nobuyoshi Nakada AuthorDate: 2022-11-09 19:36:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-10 12:06:13 +0900 [Bug #19100] Add `init_int32` function to `rb_random_interface_t` Distinguish initialization by single word from initialization by array. commit 6eaed20e145c1ab4c9c4ccf669d0ebea934f4d36 Author: Nobuyoshi Nakada AuthorDate: 2022-11-08 09:06:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-10 11:59:45 +0900 Add version to the interface of Random extensions commit b7504af8fc73b92ae13b4cf3a65d2417d219ecb4 Author: Nobuyoshi Nakada AuthorDate: 2022-11-09 22:04:28 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-10 09:51:50 +0900 Preprocess for older bison is no longer needed Notes: Merged: https://github.com/ruby/ruby/pull/6701 commit 9ab978b7183d92cf1451be5dce7c7cc72222a39a Author: Eileen M. Uchitelle AuthorDate: 2022-11-10 07:09:16 +0900 Commit: GitHub CommitDate: 2022-11-10 07:09:16 +0900 Fix exit locations dump (#6703) While I was working on my RubyConf talk for tracing yjit exit locations I realized that there were exits from the dump code included in the stats data. For example I saw 224 interp leave exits for a simple script that should have had 1 or 2. I realized that the dump code needs to be called _after_ the stats are generated, otherwise the dump code will be counted in the stats exits. I've added a `_dump_locations` method to the `at_exit` for stats generation to ensure that it runs last. I've updated the documentation to add a note that if you call `dump_exit_locations` directly, your stats will include the dump code exits as well. Notes: Merged-By: maximecb commit 0e1e1b19804b7ea704ec43c4fb23082f7e74da3b Author: Burdette Lamar AuthorDate: 2022-11-10 01:15:39 +0900 Commit: GitHub CommitDate: 2022-11-10 01:15:39 +0900 [DOC] Enhanced RDoc for IO (#6669) Notes: Merged-By: BurdetteLamar commit 1dc4128e92ed6e7af8556abdfb657c135f4e13b7 Author: TSUYUSATO Kitsune AuthorDate: 2022-11-09 16:22:42 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Reduce warnings commit 36ff0521c1e81f83bf050d428815ae7413960136 Author: TSUYUSATO Kitsune AuthorDate: 2022-11-09 12:19:52 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Use long instead of int commit d868f4ca31339095991e162e010fcda0f2d7bd39 Author: Yusuke Endoh AuthorDate: 2022-11-09 00:37:46 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Check for integer overflow in the allocation of match_cache table commit 14845ab4ffccc317a08629f4503c87ee97621c0b Author: Yusuke Endoh AuthorDate: 2022-11-08 23:36:14 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Ensure that the table size for CACHE_MATCH fits with int Currently, the keys for CACHE_MATCH are handled as an `int` type. So we should make sure the table size are smaller than the range of `int`. commit 537286d0bb5021afe188cfba6100772bb0285e06 Author: Yusuke Endoh AuthorDate: 2022-11-08 18:13:00 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Prevent GCC warnings ``` regexec.c: In function ‘reset_match_cache’: regexec.c:1259:56: warning: suggest parentheses around ‘-’ inside ‘<<’ [-Wparentheses] 1259 | match_cache[k1 >> 3] &= ((1 << (8 - (k2 & 7) - 1)) - 1 << ((k2 & 7) + 1)) | ((1 << (k1 & 7)) - 1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ regexec.c:1269:60: warning: suggest parentheses around ‘-’ inside ‘<<’ [-Wparentheses] 1269 | match_cache[k2 >> 3] &= ((1 << (8 - (k2 & 7) - 1)) - 1 << ((k2 & 7) + 1)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ regexec.c: In function ‘find_cache_index_table’: regexec.c:1192:11: warning: ‘m’ may be used uninitialized [-Wmaybe-uninitialized] 1192 | if (!(0 <= m && m < num_cache_table && table[m].addr == p)) { | ~~^~~~ regexec.c: In function ‘match_at’: regexec.c:1238:12: warning: ‘m1’ is used uninitialized [-Wuninitialized] 1238 | if (table[m1].addr < pbegin && m1 + 1 < num_cache_table) m1++; | ^ regexec.c:1218:39: note: ‘m1’ was declared here 1218 | int l = 0, r = num_cache_table - 1, m1, m2; | ^~ regexec.c:1239:12: warning: ‘m2’ is used uninitialized [-Wuninitialized] 1239 | if (table[m2].addr > pend && m2 - 1 > 0) m2--; | ^ regexec.c:1218:43: note: ‘m2’ was declared here 1218 | int l = 0, r = num_cache_table - 1, m1, m2; | ^~ ``` commit ff5dba831910c91e293220b652be868e9cfdc8e1 Author: Yusuke Endoh AuthorDate: 2022-11-08 18:09:57 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Return ONIGERR_MEMORY if it fails to allocate memory for cache_match_opt commit a1c1fc558a0ee791e91a66cae5c9515679890339 Author: TSUYUSATO Kitsune AuthorDate: 2022-11-08 15:13:27 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Revert "Refactor field names" This reverts commit 1e6673d6bbd2adbf555d82c7c0906ceb148ed6ee. commit 22294731a82642ac63ed6708e0015361d05d6677 Author: TSUYUSATO Kitsune AuthorDate: 2022-11-08 15:05:52 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Refactor field names commit 0a14825f731afc468481569d332027abdd58cd4e Author: TSUYUSATO Kitsune AuthorDate: 2022-11-08 11:58:47 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Update timeout seconds for square test commit 71c76d1bfad90c63bcd74fcd2447e52189de8c49 Author: TSUYUSATO Kitsune AuthorDate: 2022-11-07 11:52:38 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Update timeout seconds commit 80d145fa52e9077dc7812a94f3fc41208fc58bd7 Author: TSUYUSATO Kitsune AuthorDate: 2022-11-07 09:03:12 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Fix and add regexp tests commit ff2998a86c5f4238462715eaf6b6bfd70519349b Author: TSUYUSATO Kitsune AuthorDate: 2022-11-06 21:01:10 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Remove debug printf commit 37613fea1657b1a0732501657275bc03e8e0ebc4 Author: TSUYUSATO Kitsune AuthorDate: 2022-10-27 22:39:56 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Clear cache on OP_NULL_CHECK_END_MEMST commit f25bb291b42a45d23cfc8658720c62e1f3a7390f Author: TSUYUSATO Kitsune AuthorDate: 2022-10-20 16:52:23 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Support OP_REPEAT and OP_REPEAT_INC commit ea3d9893bf4d6c9b6016d5f7fe5a6cf820376e53 Author: TSUYUSATO Kitsune AuthorDate: 2022-10-19 17:28:26 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Reduce warnings commit 3c797319810ca86f1f3b0e556f6ac04d56b39c76 Author: TSUYUSATO Kitsune AuthorDate: 2022-10-19 16:28:30 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Fix to compile when USE_CACHE_MATCH_OPT is disabled commit 1134fa40ee65be5b74c05e38a29ef4ac353d5763 Author: TSUYUSATO Kitsune AuthorDate: 2022-10-12 17:51:44 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Enable optimization for PUSH_IF/OR opcodes commit 70f8e9efda017420b1a9503763824b87b748d3d5 Author: TSUYUSATO Kitsune AuthorDate: 2022-10-12 16:51:00 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Enable optimization for ANYCHAR_STAR opcodes commit cbabba9c82f3401a67d470ee6ef9213cb6161f57 Author: TSUYUSATO Kitsune AuthorDate: 2022-10-06 17:11:33 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Add index to the latest NULL_CHECK_STACK for fast matching commit aefb7e5fa5f60d6ad9a6cf56bbf9ac950cee302e Author: TSUYUSATO Kitsune AuthorDate: 2022-10-04 14:36:09 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Add static declaration to new functions commit d84edce689b8634d9a627a2b73434b9115dd5c72 Author: TSUYUSATO Kitsune AuthorDate: 2022-10-04 12:28:55 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Increment num_fail on OP_POP too commit 8c9e4d37a3be68574e0a84d2321d694b3f87793f Author: TSUYUSATO Kitsune AuthorDate: 2022-10-04 11:20:49 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Fix look-around like operators and cclass commit f07dea16e3f70fbc33c51dbc73ef0f33f965e010 Author: TSUYUSATO Kitsune AuthorDate: 2022-10-04 01:02:51 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Keep cache optimization info to MatchArg for global matching commit 881bf9a0b8b52c05a5917b95d988ae4b9a391a47 Author: TSUYUSATO Kitsune AuthorDate: 2022-10-03 22:21:56 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 23:21:26 +0900 Implement cache optimization for regexp matching commit 230267d1a8f2b8245e911513926c06299ddeebc8 Author: Nobuyoshi Nakada AuthorDate: 2022-11-09 20:15:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-09 21:34:02 +0900 Now bison 3.0 or later is required Notes: Merged: https://github.com/ruby/ruby/pull/6698 commit c3de7a3c58bf9a138ff8720ed56c0045d2b8e01d Author: Yusuke Endoh AuthorDate: 2022-11-08 13:35:37 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-09 12:25:35 +0900 Make pending_interrupt?(Exception) work A patch from katsu (Katsuhiro Ueno) [Bug #19110] Notes: Merged: https://github.com/ruby/ruby/pull/6689 commit 558137d5f3b77294949bd042bb99ae12d37faa2f Author: Nobuyoshi Nakada AuthorDate: 2022-11-09 12:04:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-09 12:04:22 +0900 [DOC] Fix missing type name commit ef1c1ddf68e7219b055ae707b3f8c825d7c787b7 Author: Nobuyoshi Nakada AuthorDate: 2022-11-09 11:58:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-09 11:58:37 +0900 Use `rb_sprintf` instead of deprecated `sprintf` commit 5d95cd99f4ed425c416cc91e8986a3402d5b557a Author: Alan Wu AuthorDate: 2022-11-08 06:49:48 +0900 Commit: Alan Wu CommitDate: 2022-11-09 06:09:02 +0900 YJIT: Reset dropped_bytes when patching code We switch to a new page when we detect dropped_bytes flipping from false to true. Previously, when we patch code for invalidation during code gc, we start with the flag being set to true, so we failed to apply patches that straddle pages. We would write out jumps half way and then stop, which left the code corrupted. Reset the flag before patching so we patch across pages properly. Notes: Merged: https://github.com/ruby/ruby/pull/6686 commit 1466682a23ce0d7bf1f30d8b9627b4597c037e4d Author: Alan Wu AuthorDate: 2022-11-09 05:29:30 +0900 Commit: GitHub CommitDate: 2022-11-09 05:29:30 +0900 YJIT: Improve checking message for rustc version (#6693) Preivously we didn't have a "checking ...." line for this check and when rustc was too old, we would dump the error message to the console like: checking for rustc... rustc error: there is no argument named `x` --> :1:33 | 1 | fn main() { let x = 1; format!("{x}"); } | ^^^ error: aborting due to previous error `configure` checks usually don't do this and this might be confusing. With this commit it now says something like: checking whether rustc is new enough for YJIT... no Notes: Merged-By: maximecb commit 1a65ab20cb6519ab3d4e58141cfd812eaea5f7e0 Author: Jimmy Miller AuthorDate: 2022-11-09 05:28:28 +0900 Commit: GitHub CommitDate: 2022-11-09 05:28:28 +0900 Implement optimize call (#6691) This dispatches to a c func for doing the dynamic lookup. I experimented with chain on the proc but wasn't able to detect which call sites would be monomorphic vs polymorphic. There is definitely room for optimization here, but it does reduce exits. Notes: Merged-By: maximecb commit aada904d94ece1d1b48d6275169d3f906a062247 Author: Matt Valentine-House AuthorDate: 2022-11-09 02:51:58 +0900 Commit: Peter Zhu CommitDate: 2022-11-09 04:59:01 +0900 [doc] Clarify how to build OpenSSL on macOS Notes: Merged: https://github.com/ruby/ruby/pull/6692 commit 5643d2bb9aae3417cfc1b9dc85bf28dfb2574a55 Author: Takashi Kokubun AuthorDate: 2022-11-09 02:36:29 +0900 Commit: GitHub CommitDate: 2022-11-09 02:36:29 +0900 YJIT: Make more stats accessible from Ruby code (#6685) Notes: Merged-By: maximecb commit b7b78f062ff66c7a6da80e8d1dea734fcb7366c4 Author: Stan Lo AuthorDate: 2022-11-09 02:19:55 +0900 Commit: git[bot] CommitDate: 2022-11-09 02:19:59 +0900 [ruby/irb] Add execute_lines to reduce command tests' boilerplate code (https://github.com/ruby/irb/pull/436) https://github.com/ruby/irb/commit/1595337149 commit 0df47fdaf9c8bcfad0180aab81f9ceb162b360a1 Author: Bo Anderson AuthorDate: 2022-10-16 06:51:39 +0900 Commit: git[bot] CommitDate: 2022-11-09 02:05:19 +0900 [rubygems/rubygems] Add tests for universal Ruby with arch-specific prebuilt gems https://github.com/rubygems/rubygems/commit/11229b16c3 commit 2244d5084e32fea801bff1060ef528769bebaa36 Author: Bo Anderson AuthorDate: 2022-10-12 22:08:35 +0900 Commit: git[bot] CommitDate: 2022-11-09 02:05:18 +0900 [rubygems/rubygems] Map 'universal' to the real arch in Bundler for prebuilt gem selection https://github.com/rubygems/rubygems/commit/dd0c94f16a commit 3703a81491a16554674e4b15bac87efa3eb18f3b Author: Maxime Chevalier-Boisvert AuthorDate: 2022-11-09 01:57:11 +0900 Commit: GitHub CommitDate: 2022-11-09 01:57:11 +0900 YJIT: improve/fix code to automatically build YJIT when available (#6684) * YJIT: improve/fix code to automatically build YJIT when available * Set YJIT_SUPPORT=no * Fix rustc => $RUSTC Notes: Merged-By: maximecb commit eacedcfe44a0ae22bf54ddb7df193c48d4c857c6 Author: Jean byroot Boussier AuthorDate: 2022-11-08 20:43:16 +0900 Commit: GitHub CommitDate: 2022-11-08 20:43:16 +0900 mutex: Raise a ThreadError when detecting a fiber deadlock (#6680) [Bug #19105] If no fiber scheduler is registered and the fiber that owns the lock and the one that try to acquire it both belong to the same thread, we're in a deadlock case. Co-authored-by: Jean Boussier Notes: Merged-By: ioquatix commit 4e728486b93eaec876ea8f876df9ecad350da269 Author: Yusuke Endoh AuthorDate: 2022-11-08 14:41:04 +0900 Commit: git[bot] CommitDate: 2022-11-08 17:07:39 +0900 [ruby/error_highlight] Bump version https://github.com/ruby/error_highlight/commit/59c291cce1 commit 001606097b3239b84a5910e2f2bc814074cb6973 Author: Nobuyoshi Nakada AuthorDate: 2022-11-08 15:06:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-08 16:13:30 +0900 Suppress false warning by a bug of gcc GCC [Bug 99578] seems triggered by calling `rb_reg_last_match` before `match_check(match)`, probably by `NIL_P(match)` in `rb_reg_nth_match`. [Bug 99578]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578 Notes: Merged: https://github.com/ruby/ruby/pull/6690 commit 4a7d6c2852aa734506be83c932168e8f974687b5 Author: Yusuke Endoh AuthorDate: 2022-11-08 11:52:22 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-08 14:37:08 +0900 Fix false LocalJumpError when branch coverage is enabled `throw TAG_BREAK` instruction makes a jump only if the continuation of catch of TAG_BREAK exactly matches the instruction immediately following the "send" instruction that is currently being executed. Otherwise, it seems to determine break from proc-closure. Branch coverage may insert some recording instructions after "send" instruction, which broke the conditions for TAG_BREAK to work properly. This change forces to set the continuation of catch of TAG_BREAK immediately after "send" (or "invokesuper") instruction. [Bug #18991] Notes: Merged: https://github.com/ruby/ruby/pull/6688 commit f7db1affd10767d729866e95c02ffb26266829ab Author: yui-knk AuthorDate: 2022-09-23 23:01:55 +0900 Commit: yui-knk CommitDate: 2022-11-08 12:30:03 +0900 Set default %printer for NODE nterms Before: ``` Reducing stack by rule 639 (line 5062): $1 = token "integer literal" (1.0-1.1: 1) -> $$ = nterm simple_numeric (1.0-1.1: ) ``` After: ``` Reducing stack by rule 641 (line 5078): $1 = token "integer literal" (1.0-1.1: 1) -> $$ = nterm simple_numeric (1.0-1.1: NODE_LIT) ``` `"<*>"` is supported by Bison 2.3b (2008-05-27) or later. https://git.savannah.gnu.org/cgit/bison.git/commit/?id=12e3584054c16ab255672c07af0ffc7bb220e8bc Therefore developers need to install Bison 2.3b+ to build ruby from source codes if their Bison is older. Minimum version requirement for Bison is changed to 3.0. See: https://bugs.ruby-lang.org/issues/19068 [Feature #19068] Notes: Merged: https://github.com/ruby/ruby/pull/6579 commit 7456647effc8c0d0fd85eb16b47635b96d2401df Author: Peter Zhu AuthorDate: 2022-11-08 09:47:12 +0900 Commit: Peter Zhu CommitDate: 2022-11-08 09:47:12 +0900 [DOC] Properly number the list in building_ruby.md commit cb2323a98366bb7afb7b2fee2547804bbbc9d345 Author: Nobuyoshi Nakada AuthorDate: 2022-11-08 09:31:58 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-08 09:31:58 +0900 Thread#native_thread_id is very platform specific commit b14f133054bb04e1187f9897fa546faa433d37e7 Author: Peter Zhu AuthorDate: 2022-11-08 04:35:21 +0900 Commit: Peter Zhu CommitDate: 2022-11-08 04:35:21 +0900 [DOC] Improve building_ruby.md commit 83decbb62b8b3f1638927033f12b55f9b11f78c6 Author: Benoit Daloze AuthorDate: 2022-11-08 04:05:30 +0900 Commit: Benoit Daloze CommitDate: 2022-11-08 04:05:30 +0900 Update to ruby/spec@740ccc8 commit c99e4c427897e82a3419abed894d28705f70fa13 Author: Benoit Daloze AuthorDate: 2022-11-08 04:05:18 +0900 Commit: Benoit Daloze CommitDate: 2022-11-08 04:05:18 +0900 Update to ruby/mspec@1e16420 commit 9001e53e68d282493f513ed67824e4014fd01d57 Author: Takashi Kokubun AuthorDate: 2022-11-08 02:29:24 +0900 Commit: git[bot] CommitDate: 2022-11-08 02:29:28 +0900 [ruby/irb] Support non-string input in show_source (https://github.com/ruby/irb/pull/430) * Support non-string input in show_source * Test show_source as a method commit 7442cb461b32de2eec3b37f52d80752d30627de0 Author: Takashi Kokubun AuthorDate: 2022-11-08 00:48:26 +0900 Commit: GitHub CommitDate: 2022-11-08 00:48:26 +0900 YJIT: Free pages after ObjectSpace API usages (#6676) Notes: Merged-By: maximecb commit ca0b59267352dd23bc53b5cb6f09aacd0025f536 Author: Stan Lo AuthorDate: 2022-11-06 23:55:24 +0900 Commit: git[bot] CommitDate: 2022-11-07 23:44:25 +0900 [ruby/irb] Don't lazily retrieve gem specs for completion There are a few downsides of the current approach: 1. Because gem specs are lazily retrieved, this computation happens in every irb completion test case, which is not necessary. (In tests we don't cache the result of `retrieve_files_to_require_from_load_path`) 2. Gem::Specification.latest_specs is sensible to the content of LOAD_PATH. And when combined with 1, tests fail "randomly" if they try to mutate LOAD_PATH, even though the test subject it's something else. So by pre-computing and storing the gem paths in a constant, it guarantees that the computation only happens once and it doesn't get affected by test cases. One argument could be made against the change is that, it'll store unnecessary data for users that disable autocompletion. But the counter-arguments are: 1. Since autocompletion is enabled by default, this should not be the case for most users. 2. For users with autocompletion enabled, IRB already caches the result of `retrieve_files_to_require_from_load_path` in memory, which should have a similar size of GEM_SPECS. And we currently haven't received any report about problems caused by such memory consumption. https://github.com/ruby/irb/commit/c671d39020 commit 72c7dba436a5ebb53dfb37f3e400e84b0c2f9f45 Author: Yusuke Endoh AuthorDate: 2022-08-30 16:02:02 +0900 Commit: git[bot] CommitDate: 2022-11-07 20:25:25 +0900 [ruby/fileutils] Revert "FileUtils.rm* methods swallows only Errno::ENOENT when force is true" This reverts commit https://github.com/ruby/fileutils/commit/fa65d676ece9. This caused some incompatibility problems in real-world cases. https://bugs.ruby-lang.org/issues/18784#change-98927 https://bugs.ruby-lang.org/issues/18784#change-98967 https://github.com/ruby/fileutils/commit/42983c2553 commit 33bc398b731d699cbdd37110240dd54df15a8f9c Author: Peter Zhu AuthorDate: 2022-11-04 03:54:14 +0900 Commit: git[bot] CommitDate: 2022-11-07 19:52:15 +0900 [rubygems/rubygems] Fix rubocop violations https://github.com/rubygems/rubygems/commit/cc12e68637 commit b228effd0cf9ec72f51ce3ca8ff597a00a653339 Author: Peter Zhu AuthorDate: 2022-11-04 03:44:46 +0900 Commit: git[bot] CommitDate: 2022-11-07 19:52:14 +0900 [rubygems/rubygems] Drop support for IRIX The IRIX OS is no longer maintained with the last release being 16 years ago. https://github.com/rubygems/rubygems/commit/5381c6a871 commit 1e53ebae57aa8bfb6724f346099e35757184cfd7 Author: Peter Zhu AuthorDate: 2022-11-04 03:43:03 +0900 Commit: git[bot] CommitDate: 2022-11-07 19:52:14 +0900 [rubygems/rubygems] Drop support for bitrig The bitrig OS is no longer maintained with the last release being 7 years ago. https://github.com/rubygems/rubygems/commit/85ed90ddd0 commit 0fb7a1c77c8d080f1d5099e07ed705cfd652f029 Author: Peter Zhu AuthorDate: 2022-11-04 03:41:40 +0900 Commit: git[bot] CommitDate: 2022-11-07 19:52:13 +0900 [rubygems/rubygems] Drop support for HP-UX Support for HP-UX was dropped in Ruby in ruby/ruby#5457. https://github.com/rubygems/rubygems/commit/a3a8df3582 commit 011d4c57d21220249600dfb76db84840550da019 Author: Nobuyoshi Nakada AuthorDate: 2022-11-07 13:23:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-07 15:56:12 +0900 [Bug #19106] Normalize time at 24:00:00 with a timezone object commit ee86b57ee5df34390ba1d20343593adf8331c010 Author: Nobuyoshi Nakada AuthorDate: 2022-11-07 15:51:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-07 15:54:40 +0900 Revert jobserver handling in spec commit b02b8e77562661865b380d78e7621edfd8149a8f Author: Nobuyoshi Nakada AuthorDate: 2022-11-07 10:08:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-07 10:08:30 +0900 Let other test runners follow the change of GNU make 4.4 jobserver commit ab01b8f23f1e218fa5a360806120a1d6eaaa228f Author: Nobuyoshi Nakada AuthorDate: 2022-11-07 09:43:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-07 10:08:09 +0900 jobserver option may not be at the last commit 12883f8fa6222324880e2b0f161f8c6d6cf365c7 Author: Nobuyoshi Nakada AuthorDate: 2022-11-06 23:39:55 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-06 23:39:55 +0900 GNU make 4.4 now uses a fifo for the jobserver commit fc842c9ccc2059e20ec6487b6678e6b71cbd77e1 Author: Nobuyoshi Nakada AuthorDate: 2022-11-06 19:32:50 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-06 19:32:50 +0900 Check `rustc` with the target commit 9627aab82524e71b702479b4fa5e24b36cced398 Author: Nobuyoshi Nakada AuthorDate: 2022-11-06 15:59:32 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-06 17:07:44 +0900 `--disable-jit-support` should disable YJIT successfully Even if `rustc` is available, it should not be an error unless `--enable-yjit` is explicitly given. Notes: Merged: https://github.com/ruby/ruby/pull/6681 commit cb899a990a02ad86ffc27fa17308fe514cc6415c Author: Nobuyoshi Nakada AuthorDate: 2022-11-06 10:16:12 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-06 10:16:12 +0900 Disable YJIT support when cross-compiling As the target-list of `rustc` is different from `config.guess` and `config.sub`, `$target` cannot be used directly. commit 1454f8f219890b8134f68e868d8cb1d0a9d2aa20 Author: Nobuyoshi Nakada AuthorDate: 2022-11-05 22:19:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-06 06:47:38 +0900 Add `--target` option to RUSTC when cross-compiling Notes: Merged: https://github.com/ruby/ruby/pull/6677 commit 10fd1d9507a87bc9cdb1592cdb10c7890e52eb30 Author: Nobuyoshi Nakada AuthorDate: 2022-11-05 12:48:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-06 06:47:38 +0900 Should use the configured rustc consistently Notes: Merged: https://github.com/ruby/ruby/pull/6677 commit 3a6cdeda89280ade714f158830acee88fb36306d Author: Yuta Saito AuthorDate: 2022-11-06 01:10:35 +0900 Commit: Yuta Saito CommitDate: 2022-11-06 05:03:21 +0900 [wasm] Scan machine stack based on `ec->machine.stack_{start,end}` fiber machine stack is placed outside of C stack allocated by wasm-ld, so highest stack address recorded by `rb_wasm_record_stack_base` is invalid when running on non-main fiber. Therefore, we should scan `stack_{start,end}` which always point a valid stack range in any context. Notes: Merged: https://github.com/ruby/ruby/pull/6679 commit 267452e6fed5d31dcad3c20970f74eec009dc03f Author: Yusuke Endoh AuthorDate: 2022-11-05 23:18:32 +0900 Commit: Yusuke Endoh CommitDate: 2022-11-05 23:18:32 +0900 Sync TRICK 2018 (02-mame) https://github.com/tric/trick2018/pull/5 commit 9af344a42129ea193d6dba92d62458c5f3429507 Author: Takashi Kokubun AuthorDate: 2022-11-05 17:30:41 +0900 Commit: git[bot] CommitDate: 2022-11-05 17:34:32 +0900 [ruby/erb] Revert the strpbrk optimization because it's much slower on M1 https://github.com/ruby/erb/pull/29. It'd be too complicated to switch the implementation based on known optimized platforms / versions. Besides, short strings are the most common usages of this method and SIMD doesn't really help that case. All in all, I can't justify the existence of this code. https://github.com/ruby/erb/commit/30691c8995 commit 458d6fb15eedaa142c71f120e3a71b84d0938454 Author: Takashi Kokubun AuthorDate: 2022-11-05 16:41:52 +0900 Commit: git[bot] CommitDate: 2022-11-05 16:52:46 +0900 [ruby/erb] Optimize away the rb_convert_type call using RB_TYPE_P https://github.com/ruby/erb/commit/12058c3784 commit e8873e01b67629f93ebbd83397f2454e16e0d864 Author: Takashi Kokubun AuthorDate: 2022-11-05 16:26:32 +0900 Commit: git[bot] CommitDate: 2022-11-05 16:52:45 +0900 [ruby/erb] Use strpbrk only when str is long enough for SIMD This is the same trick used by https://github.com/k0kubun/hescape to choose the best strategy for different scenarios. https://github.com/ruby/erb/commit/af26da2858 commit 419d2fc14d2bedc6d5a7080ee80df8330884ea6c Author: Takashi Kokubun AuthorDate: 2022-11-05 15:58:43 +0900 Commit: git[bot] CommitDate: 2022-11-05 15:58:48 +0900 [ruby/erb] Optimize the no-escape case with strpbrk (https://github.com/ruby/erb/pull/29) Typically, strpbrk(3) is optimized pretty well with SIMD instructions. Just using it makes this as fast as a SIMD-based implementation for the no-escape case. Not utilizing this for escaped cases because memory allocation would be a more significant bottleneck for many strings anyway. Also, there'll be some overhead in calling a C function (strpbrk) many times because we're not using SIMD instructions directly. So using strpbrk all the time might not necessarily be faster. commit f276d5a7fe28ae4fd2934af4befd920bb78cfa9e Author: Takashi Kokubun AuthorDate: 2022-11-05 15:24:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-05 15:54:25 +0900 Improve HTML escape benchmarks commit dd4ae9a475e081f5264c827e8c50b351236a68d2 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-11-05 06:02:04 +0900 Commit: GitHub CommitDate: 2022-11-05 06:02:04 +0900 Auto-enable YJIT build when rustc >= 1.58.0 present (#6662) * Auto-enable YJIT build when rustc >= 1.58.0 present * Try different incantation to have rustc output to stdout only * Add comment, remove whitespace * Try to detect if we are on a platform on which YJIT is supported Notes: Merged-By: maximecb commit 6d835901575d58e7db404665801a1c455ee982a8 Author: Peter Zhu AuthorDate: 2022-11-05 04:36:30 +0900 Commit: Peter Zhu CommitDate: 2022-11-05 04:36:30 +0900 Don't report changed ENV caused by Bundler Bundler's backups changes environment variables starting with BUNDLER_ORIG_. This causes a lot of noise in tests as the leakchecker reports them as changed. commit 367c072ac6910e487a7619f61baebe1b4a6cf315 Author: Stan Lo AuthorDate: 2022-11-05 02:53:10 +0900 Commit: git[bot] CommitDate: 2022-11-05 03:29:54 +0900 [ruby/irb] Silent the noise created when building Context in tests https://github.com/ruby/irb/commit/27e4274b3c commit b169d78c882efdb4a3da6077f6d723f65ded6f15 Author: Takashi Kokubun AuthorDate: 2022-11-05 01:46:23 +0900 Commit: git[bot] CommitDate: 2022-11-05 01:46:29 +0900 [ruby/erb] Avoid using prepend + super for fallback (https://github.com/ruby/erb/pull/28) `prepend` is prioritized more than ActiveSupport's monkey-patch, but the monkey-patch needs to work. https://github.com/ruby/erb/commit/611de5a865 commit 13395757fa7fe0abee3a260d5669baec2dc2e0fc Author: Nobuyoshi Nakada AuthorDate: 2022-11-05 00:43:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-05 00:48:42 +0900 Update dependencies for bc28acc347eace4d02bbb4b672655216f7dd3a81 commit 6e4b97f1daf2a6e60dcfb5df4136ce5681095849 Author: Jemma Issroff AuthorDate: 2022-11-04 23:49:00 +0900 Commit: Peter Zhu CommitDate: 2022-11-05 00:41:10 +0900 Increment max_iv_count on class in gc marking, not gc freeing We were previously incrementing the max_iv_count on a class in gc freeing. By the time we free an object though, we're not guaranteed its class is still valid. Instead, we can do this when marking and we're guaranteed the object still knows its class. Notes: Merged: https://github.com/ruby/ruby/pull/6673 commit 6b9091097360988dce7b4190fef1602536ddff34 Author: Nobuyoshi Nakada AuthorDate: 2022-11-05 00:18:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-05 00:18:02 +0900 Update dependencies commit 93f364d65e25187ce3c1dd5172a00264804e9380 Author: Peter Zhu AuthorDate: 2022-11-04 22:02:58 +0900 Commit: Peter Zhu CommitDate: 2022-11-04 22:02:58 +0900 Use RTEST to to check return value rb_obj_is_kind_of returns a Ruby Qtrue or Qfalse. We should use RTEST rather than assuming that Qfalse is 0. commit 76a6c5d6d16cd0e55df15d66d53c6d7a9614f3d6 Author: Alexander Momchilov AuthorDate: 2022-11-04 03:59:48 +0900 Commit: Peter Zhu CommitDate: 2022-11-04 21:57:01 +0900 Remove unnecessary branch in `UnboundMethod#bind` Co-authored-by: Michael Herold Notes: Merged: https://github.com/ruby/ruby/pull/6670 commit b83074dac7a3a1353ac8f897a510cecfccc2f7c6 Author: Nobuyoshi Nakada AuthorDate: 2022-11-04 20:43:12 +0900 Commit: git[bot] CommitDate: 2022-11-04 20:43:21 +0900 [ruby/irb] Suppress "switching inspect mode" messages https://github.com/ruby/irb/commit/ee068d039b commit ed9d7612172e12f515cb79088efe45267a062276 Author: Nobuyoshi Nakada AuthorDate: 2022-11-04 18:19:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-04 18:19:30 +0900 mkconfig.rb: take CPU name from arch flag commit cb18deee7285dde67102c9702796d7eba0046af5 Author: Nobuyoshi Nakada AuthorDate: 2022-11-04 17:38:28 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-04 17:38:28 +0900 Substitute from the actual netinet6/in6.h Xcode no longer links the system include files directory to `/usr`. Extract the actual header file path from cpp output. commit 2bb89b7f114e4beb3012f63e12e726ae23005e6f Author: Samuel Williams AuthorDate: 2022-11-04 16:13:48 +0900 Commit: GitHub CommitDate: 2022-11-04 16:13:48 +0900 Lower priority of `POSIX_MADV_DONTNEED`. (#6671) Notes: Merged-By: ioquatix commit ccf32a5ca4ce29f9019cf8bae9f3c0f69e27bd22 Author: Takashi Kokubun AuthorDate: 2022-11-04 15:34:09 +0900 Commit: git[bot] CommitDate: 2022-11-04 16:07:24 +0900 [ruby/erb] Do not allocate a new String if not needed [Feature #19102]https://github.com/ruby/erb/commit/ecebf8075c commit 20efeaddbe246f3b2eaee4f17f54a814777176a8 Author: Takashi Kokubun AuthorDate: 2022-11-04 15:26:53 +0900 Commit: git[bot] CommitDate: 2022-11-04 16:07:24 +0900 [ruby/erb] Optimize away to_s if it's already T_STRING [Feature #19102]https://github.com/ruby/erb/commit/38c6e182fb commit dc5d06e9b145f7d5f8c5f7c3757b43f2d68833fd Author: Takashi Kokubun AuthorDate: 2022-11-03 14:28:45 +0900 Commit: git[bot] CommitDate: 2022-11-04 16:07:23 +0900 [ruby/erb] Copy CGI.escapeHTML to ERB::Util.html_escape https://github.com/ruby/erb/commit/ac9b219fa9 commit b6d7e98f2540500f072c5cc0f136cae69f80055c Author: Nobuyoshi Nakada AuthorDate: 2022-11-04 15:18:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-04 15:43:29 +0900 sync_default_gems.rb: fix the position to insert the original URL Since the regexp had expected an empty line before `Co-Authored-By:` trailer lines, it failed to match when the body has the trailer only. commit 570dee15a6939f1a3c8cf301202a1c508c2c2a33 Author: Nobuyoshi Nakada AuthorDate: 2022-11-04 15:17:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-04 15:43:29 +0900 sync_default_gems.rb: accept log input from other than STDIN commit 1956fb9b78c1f78649df48282c716b4f74d45ed7 Author: Takashi Kokubun AuthorDate: 2022-11-04 09:26:50 +0900 Commit: Takashi Kokubun CommitDate: 2022-11-04 09:27:37 +0900 Bump benchmark-driver version https://github.com/benchmark-driver/benchmark-driver/pull/75 is useful for quickly benchmarking a single method in CRuby. commit a9232038119f2401e6c3d3a4946114b1e878afb5 Author: Stan Lo AuthorDate: 2022-11-04 07:13:07 +0900 Commit: git[bot] CommitDate: 2022-11-04 07:13:11 +0900 [ruby/irb] Provide a base test class and let tests restore encodings conveniently (https://github.com/ruby/irb/pull/429) * Create a base TestIRB::TestCase class * Save/restore encodings for tests that initializes InputMethod classes Because `RelineInputMethod#initializes` calls `set_encoding`, which changes stdio/out/err and Encoding's default encoding values, we need to make sure any test that directly or indirectly (e.g. through Context) initializes `RelineInputMethod` restores encodings. `ReadlineInputMethod` also changes encodings but currently no tests cover it. * Remove unnecessary TestHelper module Since we now have a base TestCase, without_rdoc can just live there. https://github.com/ruby/irb/commit/c2874ec121 commit a13836e70d9cc2eb569911030cbd735d68b4042c Author: Takashi Kokubun AuthorDate: 2022-11-04 07:09:51 +0900 Commit: git[bot] CommitDate: 2022-11-04 07:09:55 +0900 [ruby/irb] Allow non-identifier aliases like Pry's @ and $ (https://github.com/ruby/irb/pull/426) * Allow non-identifier aliases * Move the configuration to IRB.conf * Avoid abusing method lookup for symbol aliases * Add more alias tests * A small optimization * Assume non-nil Context * Load IRB.conf earlier https://github.com/ruby/irb/commit/e23db5132e commit d24ac6d2811e461562e3bb95525399bb9cf464f8 Author: Peter Zhu AuthorDate: 2022-11-04 05:58:39 +0900 Commit: Peter Zhu CommitDate: 2022-11-04 05:58:39 +0900 Update configure command in building_ruby.md Readers didn't realize that you can use --prefix with --disable-install-doc. commit 5344618cb758e351a857d7e71eecc6ac475ce8a7 Author: Yusuke Nakamura AuthorDate: 2022-11-04 01:13:26 +0900 Commit: Peter Zhu CommitDate: 2022-11-04 03:40:17 +0900 [DOC] Fix IO::Buffer#slice rdoc position Before this change, rdoc shows empty in 'slice' method section Notes: Merged: https://github.com/ruby/ruby/pull/6668 commit 56884b64deeeffb6400060523f8b85211ec99d78 Author: Takashi Kokubun AuthorDate: 2022-11-04 02:41:57 +0900 Commit: git[bot] CommitDate: 2022-11-04 02:42:45 +0900 [ruby/irb] Require rubygems to run the test alone on ruby/ruby `Gem` is not undefined on test-all https://github.com/ruby/irb/commit/08ac803d61 commit 01d7e15757131555291daa2b851a850cfe17cfe7 Author: Takashi Kokubun AuthorDate: 2022-11-04 02:42:29 +0900 Commit: GitHub CommitDate: 2022-11-04 02:42:29 +0900 YJIT: Show side_exit count in stats as well (#6666) Notes: Merged-By: maximecb commit ea77aa2fd0899820752df7de6077a3b847a20aee Author: Takashi Kokubun AuthorDate: 2022-11-04 02:41:35 +0900 Commit: GitHub CommitDate: 2022-11-04 02:41:35 +0900 YJIT: Make Code GC metrics available for non-stats builds (#6665) Notes: Merged-By: maximecb commit 611b5e7f40dd7f0ee00df7981dc60890eeb2f315 Author: Takashi Kokubun AuthorDate: 2022-11-04 02:34:46 +0900 Commit: git[bot] CommitDate: 2022-11-04 02:35:15 +0900 [ruby/irb] Fix build_context for ruby/ruby CI Co-Authored-By: Stan Lo https://github.com/ruby/irb/commit/d1fe234a9a commit 124f10f56b16e4fa4572b6dffde7487dcf914b26 Author: Takashi Kokubun AuthorDate: 2022-11-04 02:33:49 +0900 Commit: GitHub CommitDate: 2022-11-04 02:33:49 +0900 YJIT: Fix a wrong type reference (#6661) * YJIT: Fix a wrong type reference * YJIT: Just remove CapturedSelfOpnd for now Notes: Merged-By: maximecb commit 00f559641a0b4941e0022c67657469dc565ce44d Author: Stan Lo AuthorDate: 2022-11-04 02:12:31 +0900 Commit: git[bot] CommitDate: 2022-11-04 02:12:35 +0900 [ruby/irb] Require the entire irb lib in RubyLex test (https://github.com/ruby/irb/pull/428) RubyLex is not designed to be used alone. It's usually used with an IRB context, which requires workspace. So its tests should have access to those components too. https://github.com/ruby/irb/commit/608f261da4 commit c5d6a483f5f771aa904ea85dad35a368ddf8047a Author: Stan Lo AuthorDate: 2022-11-04 01:32:10 +0900 Commit: git[bot] CommitDate: 2022-11-04 01:32:22 +0900 [ruby/irb] Refactor RubyLex and its tests (https://github.com/ruby/irb/pull/427) * Make sure `RubyLex#set_input`'s context is always present in tests In real-world scenarios, the context should always be non-nil: https://github.com/ruby/irb/blob/master/lib/irb.rb#L489 So we should make sure our test setup reflects that. * Make context a required keyword Since in practice, `set_input`'s context should always be non-nil, its parameters should reflect that. And since `RubyLex#check_state` is only called by `#lex` and `#set_input`, both of which now always require context, we can assume its context should be non-nil too. https://github.com/ruby/irb/commit/1aeeb86203 commit 68ef97d788cf8bff42d981bda41cd26128220740 Author: Takashi Kokubun AuthorDate: 2022-11-04 00:42:28 +0900 Commit: GitHub CommitDate: 2022-11-04 00:42:28 +0900 YJIT: Stop incrementing write_pos if cb.has_dropped_bytes (#6664) Co-Authored-By: Alan Wu Co-authored-by: Alan Wu Notes: Merged-By: maximecb commit 0468136a1b07d693cf60abd0c5ccd125fc361039 Author: Peter Zhu AuthorDate: 2022-11-03 04:21:50 +0900 Commit: Peter Zhu CommitDate: 2022-11-03 22:09:11 +0900 Make str_alloc_heap return a STR_NOEMBED string This commit refactors str_alloc_heap to return a string with the STR_NOEMBED flag set. Notes: Merged: https://github.com/ruby/ruby/pull/6663 commit 7b6c5f9b5b16d244268f700aa5cd60bdde3e34d6 Author: Takashi Kokubun AuthorDate: 2022-11-03 14:56:24 +0900 Commit: git[bot] CommitDate: 2022-11-03 14:58:14 +0900 [ruby/erb] Skip a test for JRuby https://github.com/ruby/erb/commit/48a75665ab commit f667d3afc9096ea32f6f84204529b95099062e86 Author: Takashi Kokubun AuthorDate: 2022-11-03 14:53:39 +0900 Commit: git[bot] CommitDate: 2022-11-03 14:58:14 +0900 [ruby/erb] Skip tests for truffleruby https://github.com/ruby/erb/commit/65a7c70a00 commit c24800f4f71a1971619855065c37adaa766a3dd1 Author: Takashi Kokubun AuthorDate: 2022-11-03 14:49:09 +0900 Commit: git[bot] CommitDate: 2022-11-03 14:58:13 +0900 [ruby/erb] Fix CI for JRuby https://github.com/ruby/erb/commit/df642335b7 commit 59a6caf83acf32915abf11ae81ca3167d2577b21 Author: Hiroshi SHIBATA AuthorDate: 2022-11-03 07:27:11 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-11-03 07:27:11 +0900 Run only daily schedule because CodeQL provides a lot of false-positive results for Ruby code commit b777408c33b57077f8be09eaed9245eeca0b59c5 Author: Peter Zhu AuthorDate: 2022-11-03 02:34:02 +0900 Commit: Peter Zhu CommitDate: 2022-11-03 02:34:02 +0900 Fix crash in test runner on timeout When a test worker hangs and timeouts, the test runner crashes with the following stack trace: ruby/tool/lib/test/unit.rb:1747:in `puke': undefined method `backtrace' for Timeout::Error:Class (NoMethodError) from ruby/tool/lib/test/unit.rb:790:in `block in _run_parallel' from ruby/tool/lib/test/unit.rb:788:in `each' This commit adds handling for Timeout::Error and outputs a message. commit 81e84e0a4d348309d5d38311d283d049ffeeb7a2 Author: Takashi Kokubun AuthorDate: 2022-11-03 01:30:48 +0900 Commit: GitHub CommitDate: 2022-11-03 01:30:48 +0900 YJIT: Support invokeblock (#6640) * YJIT: Support invokeblock * Update yjit/src/backend/arm64/mod.rs * Update yjit/src/codegen.rs Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged-By: maximecb commit ee7c031dc46b4e86f889b2f98cb479d79774a446 Author: Noah Gibbs AuthorDate: 2022-11-03 00:16:26 +0900 Commit: GitHub CommitDate: 2022-11-03 00:16:26 +0900 YJIT: don't show a full crash report if mmap is only out of memory (#6659) Notes: Merged-By: maximecb commit 946bb34fb57b9588b93d8435c9a581d0c7ef0019 Author: Takashi Kokubun AuthorDate: 2022-11-03 00:14:31 +0900 Commit: GitHub CommitDate: 2022-11-03 00:14:31 +0900 YJIT: Avoid accumulating freed pages in the payload (#6657) Co-Authored-By: Alan Wu Co-Authored-By: Maxime Chevalier-Boisvert Co-authored-by: Alan Wu Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged-By: maximecb commit 4a8cd9e8bca2be1c14310cc13366ec9177a1f74d Author: Peter Zhu AuthorDate: 2022-11-03 00:03:21 +0900 Commit: Peter Zhu CommitDate: 2022-11-03 00:03:21 +0900 Use shared flags of the type The ELTS_SHARED flag is generic, so we should prefer to use the flags specific of the type (STR_SHARED for strings and RARRAY_SHARED_FLAG for arrays). commit d9cf0388599a3234b9f3c06ddd006cd59a58ab8b Author: Sampat Badhe AuthorDate: 2022-11-02 14:05:54 +0900 Commit: GitHub CommitDate: 2022-11-02 14:05:54 +0900 Update Regexp.timeout doc (#6658) * Correct Regexp.timeout doc, Timeout.timeout= => Regexp.timeout= * add link Regexp Timeout section Notes: Merged-By: nobu commit 3475b661607e6d2c72460ea381ee856726128259 Author: Nobuyoshi Nakada AuthorDate: 2022-11-02 12:18:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-02 12:38:31 +0900 file2lastrev.rb: try to overwrite the found revision.h as before commit ac06951c31c59781951a70788e4b0de2aa3d481c Author: Nobuyoshi Nakada AuthorDate: 2022-11-02 11:37:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-02 12:38:03 +0900 file2lastrev.rb: separate options for `Output` and `VPath` So the `--srcdir` option in this file can override the same option in `VPath`. commit 60f12c7d2e37ebb57193612421ab66d6368eff6e Author: Nobuyoshi Nakada AuthorDate: 2022-11-02 11:33:08 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-02 11:33:08 +0900 Fix infinite loop when out-of-place build commit 265a96b005748beb1dea9a3de67ae35f96374c97 Author: Nobuyoshi Nakada AuthorDate: 2022-11-01 13:32:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-02 11:10:00 +0900 Manage the timestamp for revision.h Notes: Merged: https://github.com/ruby/ruby/pull/6653 commit 70173a72a29474b6fd8fdc629954a95a4b0a3793 Author: Aaron Patterson AuthorDate: 2022-11-02 04:31:24 +0900 Commit: Aaron Patterson CommitDate: 2022-11-02 07:38:44 +0900 Ivar copy needs to happen _before_ setting the shape When we copy instance variables, it is possible for the GC to be kicked off. The GC looks at the shape to determine what slots to mark inside the object. If the shape is set too soon, the GC could think that there are more instance variables on the object than there actually are at that moment. commit 0d1e1987d1ca90cf2d2374f576be2633c52a66f4 Author: Takashi Kokubun AuthorDate: 2022-11-02 04:05:36 +0900 Commit: GitHub CommitDate: 2022-11-02 04:05:36 +0900 YJIT: Visualize live ranges on register spill (#6651) Notes: Merged-By: maximecb commit cbf15e5cbe30cbca45810ef65224ad1bc19c67b4 Author: Alan Wu AuthorDate: 2022-11-02 00:44:55 +0900 Commit: Alan Wu CommitDate: 2022-11-02 03:16:32 +0900 YJIT: Add an assert to help with Context changes While experimenting I found that it's easy to change Context and forget to also change the copying operation in limit_block_versions(). Add an assert to make sure we substitute a compatible generic context when limiting the number of versions. Notes: Merged: https://github.com/ruby/ruby/pull/6656 commit a70f90e1a95cf4dfbaa2485767156997eb958c4b Author: Alan Wu AuthorDate: 2022-11-02 00:39:13 +0900 Commit: Alan Wu CommitDate: 2022-11-02 03:16:32 +0900 YJIT: Delete redundant ways to make Context Context::new() is the same as Context::default() and Context::new_with_stack_size() was only used in tests. Notes: Merged: https://github.com/ruby/ruby/pull/6656 commit 6bf458eefdac6e03fe4f2989b6cf08ad6a838520 Author: Nobuyoshi Nakada AuthorDate: 2022-11-01 12:29:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-01 14:34:05 +0900 file2lastrev.rb: use output.rb for the options commit 7e6e94262c9c916cb22dc9015be0e99659018c1f Author: Nobuyoshi Nakada AuthorDate: 2022-11-01 11:43:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-01 14:34:05 +0900 file2lastrev.rb: rename output as format Also: - format -> time_format - output -> formatter commit a2e7b11f2ae13f96171cb8a5aa6ae3cc75f6f083 Author: Nobuyoshi Nakada AuthorDate: 2022-11-01 11:08:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-01 14:34:05 +0900 output.rb: extract from generic_erb.rb - writing to a file or stdout - touching timestamp files - overwriting only if changed - colorizing commit 99a79dc40bf20e0e5d588db4f93b69617affa7f3 Author: Nobuyoshi Nakada AuthorDate: 2022-11-01 10:56:28 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-01 14:34:05 +0900 colorize.rb: support for NO_COLOR commit f0c8c1e878978341701b0818c19bf383bd9efbae Author: Nobuyoshi Nakada AuthorDate: 2022-11-01 10:51:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-01 14:34:05 +0900 vpath.rb: tweak --vpath option message commit 16953867ed8fc951364f05fdf0c9267799e3087a Author: Samuel Williams AuthorDate: 2022-11-01 13:10:31 +0900 Commit: GitHub CommitDate: 2022-11-01 13:10:31 +0900 We don't care about actual hostname resolution. (#6652) https://bugs.ruby-lang.org/issues/18380 Notes: Merged-By: ioquatix commit aa8c6759ee7d740939eab9ee0e94260aa8f4f010 Author: Nobuyoshi Nakada AuthorDate: 2022-11-01 11:23:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-11-01 11:40:32 +0900 vcs.rb: do not reference the constant before assignment commit 2d86e79fe6a8eaea85edb4b9ab59d12228dbd8b9 Author: Aaron Patterson AuthorDate: 2022-11-01 07:38:51 +0900 Commit: Aaron Patterson CommitDate: 2022-11-01 09:05:37 +0900 Always lookup IV buffers when iterating Always look up instance variable buffers when iterating. It is possible for the instance variable buffer to change out from under the object during iteration, so we cannot cache the buffer on the stack. In the case of Bug #19095, the transient heap moved the buffer during iteration: ``` Watchpoint 1 hit: old value: 0x0000000107c00df8 new value: 0x00000001032743c0 Process 31720 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = watchpoint 1 frame #0: 0x00000001006e5178 miniruby`rb_obj_transient_heap_evacuate(obj=0x000000010d6b94b0, promote=1) at variable.c:1361:5 1358 } 1359 MEMCPY(new_ptr, old_ptr, VALUE, len); 1360 ROBJECT(obj)->as.heap.ivptr = new_ptr; -> 1361 } 1362 } 1363 #endif 1364 miniruby`rb_obj_transient_heap_evacuate: -> 0x1006e5178 <+328>: b 0x1006e517c ; <+332> at variable.c:1362:1 0x1006e517c <+332>: ldp x29, x30, [sp, #0x50] 0x1006e5180 <+336>: add sp, sp, #0x60 0x1006e5184 <+340>: ret Target 0: (miniruby) stopped. (lldb) bt * thread #1, queue = 'com.apple.main-thread', stop reason = watchpoint 1 * frame #0: 0x00000001006e5178 miniruby`rb_obj_transient_heap_evacuate(obj=0x000000010d6b94b0, promote=1) at variable.c:1361:5 frame #1: 0x00000001006cb150 miniruby`transient_heap_block_evacuate(theap=0x0000000100b196c0, block=0x0000000107c00000) at transient_heap.c:734:17 frame #2: 0x00000001006c854c miniruby`transient_heap_evacuate(dmy=0x0000000000000000) at transient_heap.c:808:17 frame #3: 0x00000001007fe6c0 miniruby`rb_postponed_job_flush(vm=0x0000000104402900) at vm_trace.c:1773:21 frame #4: 0x0000000100637a84 miniruby`rb_threadptr_execute_interrupts(th=0x0000000103803bc0, blocking_timing=0) at thread.c:2316:13 frame #5: 0x000000010078b730 miniruby`rb_vm_check_ints(ec=0x00000001048038d0) at vm_core.h:2025:9 frame #6: 0x00000001006fbd10 miniruby`vm_pop_frame(ec=0x00000001048038d0, cfp=0x0000000104a04440, ep=0x0000000104904a28) at vm_insnhelper.c:422:5 frame #7: 0x00000001006fbca0 miniruby`rb_vm_pop_frame(ec=0x00000001048038d0) at vm_insnhelper.c:431:5 frame #8: 0x00000001007d6420 miniruby`vm_call0_cfunc_with_frame(ec=0x00000001048038d0, calling=0x000000016fdcc6a0, argv=0x0000000000000000) at vm_eval.c:153:9 frame #9: 0x00000001007d44cc miniruby`vm_call0_cfunc(ec=0x00000001048038d0, calling=0x000000016fdcc6a0, argv=0x0000000000000000) at vm_eval.c:164:12 frame #10: 0x0000000100766e80 miniruby`vm_call0_body(ec=0x00000001048038d0, calling=0x000000016fdcc6a0, argv=0x0000000000000000) at vm_eval.c:210:15 frame #11: 0x00000001007d76f0 miniruby`vm_call0_cc(ec=0x00000001048038d0, recv=0x000000010d6b49d8, id=2769, argc=0, argv=0x0000000000000000, cc=0x000000010d6b2e58, kw_splat=0) at vm_eval.c:87:12 frame #12: 0x0000000100769e48 miniruby`rb_funcallv_scope(recv=0x000000010d6b49d8, mid=2769, argc=0, argv=0x0000000000000000, scope=CALL_FCALL) at vm_eval.c:1051:16 frame #13: 0x0000000100760a54 miniruby`rb_funcallv(recv=0x000000010d6b49d8, mid=2769, argc=0, argv=0x0000000000000000) at vm_eval.c:1066:12 frame #14: 0x000000010037513c miniruby`rb_inspect(obj=0x000000010d6b49d8) at object.c:633:34 frame #15: 0x000000010002c950 miniruby`inspect_ary(ary=0x000000010d6b4938, dummy=0x0000000000000000, recur=0) at array.c:3091:13 frame #16: 0x0000000100642020 miniruby`exec_recursive(func=(miniruby`inspect_ary at array.c:3084), obj=0x000000010d6b4938, pairid=0x0000000000000000, arg=0x0000000000000000, outer=0, mid=2769) at thread.c:5177:23 frame #17: 0x00000001006412fc miniruby`rb_exec_recursive(func=(miniruby`inspect_ary at array.c:3084), obj=0x000000010d6b4938, arg=0x0000000000000000) at thread.c:5205:12 frame #18: 0x00000001000127f0 miniruby`rb_ary_inspect(ary=0x000000010d6b4938) at array.c:3117:12 ``` In general though, any calls back out to the interpreter could change the IV buffer, so it's not safe to cache. [Bug #19095] Notes: Merged: https://github.com/ruby/ruby/pull/6650 commit 02f15542245222ee392e68fb244b3b8c4a12ad82 Author: John Hawthorn AuthorDate: 2022-11-01 06:05:37 +0900 Commit: GitHub CommitDate: 2022-11-01 06:05:37 +0900 Implement object shapes for T_CLASS and T_MODULE (#6637) * Avoid RCLASS_IV_TBL in marshal.c * Avoid RCLASS_IV_TBL for class names * Avoid RCLASS_IV_TBL for autoload * Avoid RCLASS_IV_TBL for class variables * Avoid copying RCLASS_IV_TBL onto ICLASSes * Use object shapes for Class and Module IVs Notes: Merged-By: jhawthorn commit 2b39640b0bbf7459b305d8a98bb01f197975b8d9 Author: Takashi Kokubun AuthorDate: 2022-11-01 03:29:45 +0900 Commit: GitHub CommitDate: 2022-11-01 03:29:45 +0900 YJIT: Add RubyVM::YJIT.code_gc (#6644) * YJIT: Add RubyVM::YJIT.code_gc * Rename compiled_page_count to live_page_count Notes: Merged-By: maximecb commit 5e6633fcf988e5874d0a9929bdf2cd496289e75d Author: Maxime Chevalier-Boisvert AuthorDate: 2022-11-01 03:29:11 +0900 Commit: GitHub CommitDate: 2022-11-01 03:29:11 +0900 YJIT: reduce default `--yjit-exec-mem-size` to 128MiB instead of 256 (#6649) Reduce default --yjit-exec-mem-size to 128MiB instead of 256 Notes: Merged-By: maximecb commit c3de08cb245467efb8fe3a661e9ec4a52514faf1 Author: S-H-GAMELINKS AuthorDate: 2022-10-26 13:55:18 +0900 Commit: Samuel Williams CommitDate: 2022-10-31 15:57:46 +0900 Reuse FIBER_RESUMED_P macro Notes: Merged: https://github.com/ruby/ruby/pull/6635 commit 350d0aa023223f560d812ef61396a2c5359f09a6 Author: eileencodes AuthorDate: 2022-10-20 02:50:30 +0900 Commit: git[bot] CommitDate: 2022-10-31 13:58:38 +0900 [ruby/error_highlight] Support nodes in `spot` Fixes a bug where `spot` was using the wrong local variable. We want to use error highlight with code that has been eval'd, specifically ERB templates. We can recover the compiled source code of the ERB template but we need an API to pass the node into error highlight's `spot`. Required Ruby PR: https://github.com/ruby/ruby/pull/6593 https://github.com/ruby/error_highlight/commit/0b1b650a59 Co-authored-by: Aaron Patterson commit 3391c51effcd61f9a718adf59740661d99f57b5b Author: eileencodes AuthorDate: 2022-10-20 02:23:53 +0900 Commit: Yusuke Endoh CommitDate: 2022-10-31 13:39:56 +0900 Add `node_id_for_backtrace_location` function We want to use error highlight with eval'd code, specifically ERB templates. We're able to recover the generated code for eval'd templates and can get a parse tree for the ERB generated code, but we don't have a way to get the node id from the backtrace location. So we can't pass the right node into error highlight. This patch gives us an API to get the node id from the backtrace location so we can find the node in the AST. Error Highlight PR: https://github.com/ruby/error_highlight/pull/26 Co-authored-by: Aaron Patterson Notes: Merged: https://github.com/ruby/ruby/pull/6593 commit 7ed10abdd97a324583c9b9794088a41a550abcd0 Author: Nobuyoshi Nakada AuthorDate: 2022-10-30 22:21:18 +0900 Commit: git[bot] CommitDate: 2022-10-30 23:21:31 +0900 [ruby/bigdecimal] Suppress macro redefinition warnings `HAVE_` macros by autoconf are defined as 1. https://github.com/ruby/bigdecimal/commit/cd35868aa6 commit 0717cb84193083cbfb7daee115a82418fd9c1474 Author: Nobuyoshi Nakada AuthorDate: 2022-10-30 18:22:50 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-30 19:16:09 +0900 Try -fstack-protector-strong on MinGW The CI for MinGW has used it. commit 00d5b7ce7c2e72170b7f563b9de0e7ac4bc8f772 Author: Nobuyoshi Nakada AuthorDate: 2022-10-30 15:05:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-30 17:06:33 +0900 vcs.rb: copy safe directory configuration Now revision.tmp will be regenerated always and every times, even if the recent file exists in the source directory, as far as using git. On the other hand, VirtualBox mounts shared folders as root, and git rejects the repository there as dubious ownership. Notes: Merged: https://github.com/ruby/ruby/pull/6647 commit b64514f132615c00982d008bb2d7d2d1230d4f1c Author: Nobuyoshi Nakada AuthorDate: 2022-10-30 12:39:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-30 17:06:33 +0900 vcs.rb: prettify debug print Notes: Merged: https://github.com/ruby/ruby/pull/6647 commit 1acbcf0e58f60addf5aa7bb5e0ff7f6907a10fbc Author: git[bot] AuthorDate: 2022-10-30 16:04:08 +0900 Commit: git[bot] CommitDate: 2022-10-30 16:04:08 +0900 Update bundled gems list at 2022-10-30 commit 91c28ab2ee58f9b5da33dc566a4c263449b8520f Author: Burdette Lamar AuthorDate: 2022-10-30 04:47:16 +0900 Commit: GitHub CommitDate: 2022-10-30 04:47:16 +0900 [DOC] Enhanced RDOc for IO (#6642) In io.c treats: #close #close_read #close_write #closed Notes: Merged-By: BurdetteLamar commit d5fb76a6c8d86253110d265070e775a1bf9f9730 Author: Nobuyoshi Nakada AuthorDate: 2022-10-29 22:25:42 +0900 Commit: git[bot] CommitDate: 2022-10-29 22:47:23 +0900 [ruby/optparse] Add tests for `load(into:)` https://github.com/ruby/optparse/commit/51f7e060ee commit 37291df91dea2616559e64751ae6f8ed799c4310 Author: Whyme Lyu <5longluna@gmail.com> AuthorDate: 2022-10-29 22:46:23 +0900 Commit: git[bot] CommitDate: 2022-10-29 22:46:27 +0900 [ruby/optparse] #load() into hash (https://github.com/ruby/optparse/pull/42) OptionParser#load learns .load(into: Hash) https://github.com/ruby/optparse/commit/2ea626fcff Co-authored-by: Nobuyoshi Nakada commit 4dac53f0a48920f80ccaa4de151631659ab1d2ba Author: Nobuyoshi Nakada AuthorDate: 2022-10-29 22:23:14 +0900 Commit: git[bot] CommitDate: 2022-10-29 22:40:19 +0900 [ruby/optparse] Add tests for `OptionParser#load` https://github.com/ruby/optparse/commit/fb34a1d3a3 commit bc28acc347eace4d02bbb4b672655216f7dd3a81 Author: Nobuyoshi Nakada AuthorDate: 2022-10-29 16:31:54 +0900 Commit: git[bot] CommitDate: 2022-10-29 21:06:03 +0900 [ruby/digest] Use CommonDigest by default if available https://github.com/ruby/digest/commit/cce9ada85e commit c5ca250eb5a0e55391607cc20fa382cd64e49e5e Author: Nobuyoshi Nakada AuthorDate: 2022-10-29 16:14:19 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-29 16:17:45 +0900 Clear `_FORTIFY_SOURCE` before definition As clang on macOS defines this macro as 0 internally when a sanitizer option is given, clear it before definition to suppress redefinition warnings. Notes: Merged: https://github.com/ruby/ruby/pull/6646 commit 5e0432f59bb85dd3d98be3c1043a1f9c5b41d86b Author: Aaron Patterson AuthorDate: 2022-10-29 08:10:45 +0900 Commit: Aaron Patterson CommitDate: 2022-10-29 08:10:55 +0900 fix ASAN error in GC commit 9b462aec4af0fbf9d82cbd3efe1d2cfe15f5e539 Author: Nobuyoshi Nakada AuthorDate: 2022-10-28 19:33:19 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-28 19:33:19 +0900 Follow up "Rework `first_lineno` to be `int`." commit 4021c6565f9655bfd667152f76f22f7cc81c7e17 Author: Nobuyoshi Nakada AuthorDate: 2022-03-31 12:51:04 +0900 Commit: git[bot] CommitDate: 2022-10-28 18:36:28 +0900 [ruby/irb] Do not make non-existent XDG directory on start (https://github.com/ruby/irb/pull/357) https://github.com/ruby/irb/commit/298b134792 commit 56c97a6621241db99f7c96740164bdd8f898d881 Author: Nobuyoshi Nakada AuthorDate: 2022-10-28 18:30:20 +0900 Commit: git[bot] CommitDate: 2022-10-28 18:30:24 +0900 [ruby/irb] Update regarding NO_COLOR value https://no-color.org has been updated (jcs/no_color#83): > Command-line software which adds ANSI color to its output by default should check for a `NO_COLOR` environment variable that, when present and **not an empty string** (regardless of its value), prevents the addition of ANSI color. https://github.com/ruby/irb/commit/46e0f7e370 Co-authored-by: Stan Lo commit 13e968c1cdd2da470173e2cc15b44ebb936be534 Author: Nobuyoshi Nakada AuthorDate: 2022-10-28 16:35:00 +0900 Commit: git[bot] CommitDate: 2022-10-28 17:29:38 +0900 [ruby/irb] Suppress sequence to inspect asian ambiguous width https://github.com/ruby/irb/commit/a7097c5b80 commit 7440fc3eb4ee6409f2204523c8c9875d8e80a208 Author: Nobuyoshi Nakada AuthorDate: 2022-10-28 16:32:36 +0900 Commit: git[bot] CommitDate: 2022-10-28 17:29:37 +0900 [ruby/irb] Suppress "switching inspect mode" messages https://github.com/ruby/irb/commit/565eeb3c19 commit e6e202234c0f5d9755cf2aa88b178371fd8b38e4 Author: Nobuyoshi Nakada AuthorDate: 2022-10-28 13:15:14 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-28 13:15:14 +0900 sync_default_gems.rb: append orignal commit URLs to subject only log commit 9cf027f83afba538bea050ad19f4f597c50dcfc1 Author: Alan Wu AuthorDate: 2022-10-28 07:52:58 +0900 Commit: GitHub CommitDate: 2022-10-28 07:52:58 +0900 YJIT: Use guard_known_class() for opt_aref on Arrays (#6643) This code used to roll its own heap object check before we made a better version in guard_known_class(). The improved version uses one fewer comparison, so let's use that. Notes: Merged-By: maximecb commit 2812a57b14de8bfab7feccb7924039edc2611aad Author: Maxime Chevalier-Boisvert AuthorDate: 2022-10-28 05:50:00 +0900 Commit: GitHub CommitDate: 2022-10-28 05:50:00 +0900 Update docs wrt YJIT limitations and building YJIT (#6641) * Update docs wrt YJIT limitations and building YJIT * Update building_ruby.md Fix relative link Notes: Merged-By: maximecb commit ea5972572b116071a5b62d001c7d39e7a080779c Author: Peter Zhu AuthorDate: 2022-10-28 04:24:05 +0900 Commit: Peter Zhu CommitDate: 2022-10-28 04:29:52 +0900 [ruby/irb] Fix warnings in test_cmd.rb Fixes this warning: warning: assigned but unused variable - err https://github.com/ruby/irb/commit/298fcb57a3 commit b260c1e8c8a2b6c4cef944e3247ca743079478df Author: Stan Lo AuthorDate: 2022-10-26 04:43:45 +0900 Commit: Peter Zhu CommitDate: 2022-10-28 04:29:11 +0900 [ruby/irb] Remove unnecessary test setup commit bb7067cbdfe1cf1b8bbd742e87f41c9707ddb2d2 Author: Benoit Daloze AuthorDate: 2022-10-28 04:10:39 +0900 Commit: git[bot] CommitDate: 2022-10-28 04:16:52 +0900 [ruby/irb] Suppress warning for test which uses a locale non-existing on GitHub Actions commit 8d7844235cd9ba9836e9eacb74c75d31aaa567b3 Author: Benoit Daloze AuthorDate: 2022-10-28 03:54:12 +0900 Commit: git[bot] CommitDate: 2022-10-28 04:16:51 +0900 [ruby/irb] Remove unecesary and harmful pend for TruffleRuby in TestRaiseNoBacktraceException * Specifically the second one causes `$HOME` to be unset, which breaks `File.expand_path('~')`. https://github.com/ruby/irb/commit/61963305f5 commit c6f439a6a8df582416e756d7511aa4d9c72071a9 Author: S.H AuthorDate: 2022-10-28 01:13:16 +0900 Commit: GitHub CommitDate: 2022-10-28 01:13:16 +0900 Improve performance some `Integer` and `Float` methods [Feature #19085] (#6638) * Improve some Integer and Float methods * Using alias and Remove unnecessary code * Remove commentout code Notes: Merged-By: k0kubun commit 7cf7e6c33226093c9c4e3078f7ced3b9b9c99b05 Author: Stan Lo AuthorDate: 2022-10-28 00:30:42 +0900 Commit: git[bot] CommitDate: 2022-10-28 00:36:18 +0900 [ruby/irb] Add missing require commit 26b913c88b087a93f5a7a5f8282d1934b6c5073e Author: st0012 AuthorDate: 2022-10-27 19:55:40 +0900 Commit: git[bot] CommitDate: 2022-10-28 00:25:39 +0900 [ruby/irb] Add test for IRB::InputCompletor::PerfectMatchedProc This proc displays rdoc document when the input matches certain symbols perfectly, like "String". It's commonly triggered with autocompletion but only has 1 test case. So this commit increases its test coverage. https://github.com/ruby/irb/commit/d85d719313 commit 5129ca3e056e1ce3189ba39fa311d4d687b97b45 Author: Shugo Maeda AuthorDate: 2022-10-27 10:29:02 +0900 Commit: git[bot] CommitDate: 2022-10-27 17:16:06 +0900 [ruby/rdoc] Delay `require "readline"` in case the terminal is in raw mode commit 739ad81ff1ba28608fbc492cc0b09f96c0bd463a Author: Nobuyoshi Nakada AuthorDate: 2022-10-27 14:12:27 +0900 Commit: git[bot] CommitDate: 2022-10-27 14:36:11 +0900 [ruby/date] Check month range as civil commit cb80ee7a4a3967be3a0ce687ec76522f1680600b Author: Nobuyoshi Nakada AuthorDate: 2022-10-26 21:20:17 +0900 Commit: git[bot] CommitDate: 2022-10-27 12:12:00 +0900 [ruby/tmpdir] Warnings should contain the environment variable name commit 792dc553f19f99113284b72f59acfd7a7614dc4f Author: Takashi Kokubun AuthorDate: 2022-10-27 07:20:33 +0900 Commit: GitHub CommitDate: 2022-10-27 07:20:33 +0900 YJIT: Test --yjit-verify-ctx on GitHub Actions as well (#6639) Notes: Merged-By: maximecb commit c746f380f278683e98262883ed69319bd9fa680e Author: Matthew Draper AuthorDate: 2022-10-27 04:27:59 +0900 Commit: GitHub CommitDate: 2022-10-27 04:27:59 +0900 YJIT: Support nil and blockparamproxy as blockarg in send (#6492) Co-authored-by: John Hawthorn Co-authored-by: John Hawthorn Notes: Merged-By: maximecb commit fa0adbad92fc1216ba0d1757fe40f0453e3a6574 Author: Takashi Kokubun AuthorDate: 2022-10-27 00:29:12 +0900 Commit: GitHub CommitDate: 2022-10-27 00:29:12 +0900 YJIT: Invalidate i-cache for the other cb on next_page (#6631) * YJIT: Invalidate i-cache for the other cb on next_page * YJIT: Invalidate only what's written by jmp_ptr * YJIT: Move the code to the arm64 backend Notes: Merged-By: maximecb commit 0dc2e1a764ba2a18d3646f11f272b05395b01201 Author: Stan Lo AuthorDate: 2022-10-26 23:44:01 +0900 Commit: git[bot] CommitDate: 2022-10-27 00:15:30 +0900 [ruby/irb] Remove unnecessary warning check on help command It's not an intentional behavior of the command and it behaves differently in different environments. So checking it actually brings more problem than benefit. https://github.com/ruby/irb/commit/b3203bc784 commit 73a0223f952ef40d4986dde65eadb8f0b59521f2 Author: Peter Zhu AuthorDate: 2022-10-27 00:12:32 +0900 Commit: git[bot] CommitDate: 2022-10-27 00:13:44 +0900 [ruby/irb] Rename test_helper.rb to helper.rb The name test_helper.rb conflicts with the test_helper.rb in JSON, causing build failures. This commit renames test_helper.rb to helper.rb. https://github.com/ruby/irb/commit/b6a92bf6b3 Co-Authored-By: Stan Lo commit cb95d834cc19a45a84d8d2c6d0f25d0c44e0d813 Author: st0012 AuthorDate: 2022-10-26 20:40:48 +0900 Commit: Peter Zhu CommitDate: 2022-10-26 23:44:29 +0900 [ruby/irb] Don't insert new methods to Test::Unit::TestCase Ruby CI runs irb and other Ruby core/stdlib tests in the same process. So adding irb-specific helper to Test::Unit::TestCase could potentially pollute other components' tests and should be avoided. commit 2022470a954ad673b0c08aecaa9a7881188cd105 Author: Stan Lo AuthorDate: 2022-10-26 04:25:49 +0900 Commit: Peter Zhu CommitDate: 2022-10-26 23:44:26 +0900 [ruby/irb] Suppress warnings Co-authored-by: Peter Zhu commit d889e810f3d9061fdab5a21470bf32d078d2b06a Author: st0012 AuthorDate: 2022-10-25 06:52:52 +0900 Commit: Peter Zhu CommitDate: 2022-10-26 23:44:23 +0900 [ruby/irb] Add test for the help command commit 40f8a781a39042cdccd641fef6e10cb2c8d98c41 Author: st0012 AuthorDate: 2022-10-25 07:08:32 +0900 Commit: Peter Zhu CommitDate: 2022-10-26 23:44:03 +0900 [ruby/irb] Extract without_rdoc helper commit 131c31a9209c61f84d318aa18b61f468f48b8219 Author: Nobuyoshi Nakada AuthorDate: 2022-10-26 19:43:14 +0900 Commit: GitHub CommitDate: 2022-10-26 19:43:14 +0900 [Bug #19081] Show the caller location in warning for Ractor The internal location in ractor.rb is not usefull at all. ``` $ ruby -e 'Ractor.new {}' :267: warning: Ractor is experimental, ... ``` Notes: Merged: https://github.com/ruby/ruby/pull/6629 Merged-By: nobu commit a14611cd54d2ac02daad5ccfe99fc3ec9b0818bd Author: Nobuyoshi Nakada AuthorDate: 2022-10-26 10:53:10 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-26 18:57:26 +0900 Fix -Wundef warnings Notes: Merged: https://github.com/ruby/ruby/pull/6634 commit 287eac5e8ecb774edcc3e4000f3b4848700d23e4 Author: Nobuyoshi Nakada AuthorDate: 2022-10-26 10:43:41 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-26 18:57:26 +0900 Fix format specifiers for `size_t` Notes: Merged: https://github.com/ruby/ruby/pull/6634 commit 923aed26ff217f0b5619d5c53c24be7e0823b951 Author: Takashi Kokubun AuthorDate: 2022-10-26 13:49:35 +0900 Commit: Takashi Kokubun CommitDate: 2022-10-26 13:50:23 +0900 Start notifying Cirrus CI failures It looks like Cirrus doesn't natively support notifications and they recomment to use GitHub Actions for it. https://cirrus-ci.org/guide/notifications/ Because I don't know what the payload looks like, I just added a basic payload and dumped GitHub context so that we could improve it later. commit 1670e96c0ddf9e17e94e25517fb424f3a8e20e33 Author: Josh Cooper AuthorDate: 2022-10-26 08:22:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-26 10:42:03 +0900 [win32] Only include base windows types esent.h is the header for MS essential storage engine (JET) which is not needed in ruby. basetsd.h has existed since _MSC_VER >= 1200 (VS 6.0) and is the preferred header to use for WCHAR. Notes: Merged: https://github.com/ruby/ruby/pull/6632 commit 1dd9511b6723b2781e65e2b4093a714576802302 Author: Takashi Kokubun AuthorDate: 2022-10-26 09:53:08 +0900 Commit: GitHub CommitDate: 2022-10-26 09:53:08 +0900 Use ruby/action-slack@v3.0.0 and ref_name (#6633) It's moved from k0kubun to ruby org. Also, we don't need JavaScript eval to generate branch if we use github.ref_name, so v3.0.0 is a version that doesn't use eval. Co-Authored-By: Nobuyoshi Nakada Co-authored-by: Nobuyoshi Nakada Notes: Merged-By: k0kubun commit d6d9b5130e5545e978fc9763e9419bdddc5ec4bd Author: Takashi Kokubun AuthorDate: 2022-10-26 08:11:42 +0900 Commit: git[bot] CommitDate: 2022-10-26 08:14:09 +0900 [ruby/erb] Version 3.0.0 commit ea989127eb9658ffe4b71a29cd3d6ea66e25b664 Author: Takuya Noguchi AuthorDate: 2022-10-23 17:47:05 +0900 Commit: git[bot] CommitDate: 2022-10-26 06:19:39 +0900 Bundler: update docs for gemfile(5) manpage - Add mswin/mswin64 to platforms - Use TruffleRuby as example instead of Rubinius Signed-off-by: Takuya Noguchi Co-authored-by: André Arko commit 48339d5c5b6f8b34aad0fe2b44d0e2eb479b069f Author: Stan Lo AuthorDate: 2022-10-26 05:45:16 +0900 Commit: git[bot] CommitDate: 2022-10-26 05:50:07 +0900 [ruby/irb] Make sure Encoding's defaults are restored commit 217fdbf9aa6dd850eace9f10c9a74bcec8b510e2 Author: Jean Boussier AuthorDate: 2022-10-26 01:39:56 +0900 Commit: git[bot] CommitDate: 2022-10-26 01:40:05 +0900 [ruby/erb] url_encode: use CGI.escapeURIComponent (https://github.com/ruby/erb/pull/23) Ref: https://github.com/ruby/cgi/pull/26 This native implementation is much faster and available in `cgi 0.3.3`. https://github.com/ruby/erb/commit/2d90e9b010 commit b7644a231100b1e1b70af528f9629d2e39572087 Author: Takashi Kokubun AuthorDate: 2022-10-26 01:07:10 +0900 Commit: GitHub CommitDate: 2022-10-26 01:07:10 +0900 YJIT: GC and recompile all code pages (#6406) when it fails to allocate a new page. Co-authored-by: Alan Wu Notes: Merged-By: k0kubun commit 1d2d25dcadda0764f303183ac091d0c87b432566 Author: Yusuke Endoh AuthorDate: 2022-10-25 15:45:40 +0900 Commit: Yusuke Endoh CommitDate: 2022-10-25 17:02:43 +0900 Prevent potential buffer overrun in onigmo A code pattern `p + enclen(enc, p, pend)` may lead to a buffer overrun if incomplete bytes of a UTF-8 character is placed at the end of a string. Because this pattern is used in several places in onigmo, this change fixes the issue in the side of `enclen`: the function should not return a number that is larger than `pend - p`. Co-Authored-By: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/6628 commit 114e71d06280f9c57b9859ee4405ae89a989ddb6 Author: Nobuyoshi Nakada AuthorDate: 2022-10-25 16:39:12 +0900 Commit: git[bot] CommitDate: 2022-10-25 16:54:40 +0900 [ruby/tmpdir] Ignore empty environment variables Fixes https://github.com/ruby/tmpdir/pull/17 https://github.com/ruby/tmpdir/commit/a79c727a5d commit 883d9c305f82b23fbe0ed28e9d74461cc5e13b97 Author: Nobuyoshi Nakada AuthorDate: 2022-10-25 16:07:09 +0900 Commit: git[bot] CommitDate: 2022-10-25 16:16:36 +0900 [ruby/tmpdir] Found or raise commit d55f72bcdbe7f6157c3ad9b1ce32bcc01cf375c4 Author: Nobuyoshi Nakada AuthorDate: 2022-10-25 15:41:45 +0900 Commit: git[bot] CommitDate: 2022-10-25 15:59:30 +0900 [ruby/tmpdir] Update supported and testing ruby versions commit 287c5da4aae6a3c8ae16cde590a9eb6d4dd655bf Author: Peter Vandenberk AuthorDate: 2022-09-20 16:53:39 +0900 Commit: git[bot] CommitDate: 2022-10-25 15:59:16 +0900 [ruby/tmpdir] Make `Dir.tmpdir` more idiomatic and functional Use `Enumerable#find` to iterate over the candidates, not `Enumerable.each`. (this makes the code more functional, and - IMO - slightly more idiomatic, as it avoids setting the "global" (by which I mean: non-local) `tmp` variable from inside the block) https://github.com/ruby/tmpdir/commit/d1f20ad694 commit cade3aba610b5b018072c646b28a2c10bc2669bb Author: Nobuyoshi Nakada AuthorDate: 2022-10-25 14:02:44 +0900 Commit: git[bot] CommitDate: 2022-10-25 14:02:54 +0900 [ruby/tmpdir] Fix typo commit 71a5b1d4573ea16e4691e0847cea7d309116e224 Author: Nobuyoshi Nakada AuthorDate: 2022-10-25 13:39:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-25 13:57:56 +0900 [ruby/tmpdir] [DOC] Improve documentation https://github.com/ruby/tmpdir/commit/b9c880f2b6 commit 902e459b733a92c3ccdd8762427f71dded997e7c Author: Yusuke Endoh AuthorDate: 2022-10-25 13:20:25 +0900 Commit: GitHub CommitDate: 2022-10-25 13:20:25 +0900 Prevent buffer overrun in regparse.c A regexp that ends with an escape following an incomplete UTF-8 char might cause buffer overrun. Found by OSS-Fuzz. ``` $ valgrind ./miniruby -e 'Regexp.new("\\u2d73\\0\\0\\0\\0 \\\xE6".b)' ==296213== Memcheck, a memory error detector ==296213== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==296213== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info ==296213== Command: ./miniruby -e Regexp.new("\\\\u2d73\\\\0\\\\0\\\\0\\\\0\ \ \ \ \ \ \ \ \ \ \\\\\\xE6".b) ==296213== ==296213== Warning: client switching stacks? SP change: 0x1ffe8020e0 --> 0x1ffeffff10 ==296213== to suppress, use: --max-stackframe=8379952 or greater ==296213== Invalid read of size 1 ==296213== at 0x484EA10: memmove (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==296213== by 0x339568: memcpy (string_fortified.h:29) ==296213== by 0x339568: onig_strcpy (regparse.c:271) ==296213== by 0x339568: onig_node_str_cat (regparse.c:1413) ==296213== by 0x33CBA0: parse_exp (regparse.c:6198) ==296213== by 0x33EDE4: parse_branch (regparse.c:6511) ==296213== by 0x33EEA2: parse_subexp (regparse.c:6544) ==296213== by 0x34019C: parse_regexp (regparse.c:6593) ==296213== by 0x34019C: onig_parse_make_tree (regparse.c:6638) ==296213== by 0x32782D: onig_compile_ruby (regcomp.c:5779) ==296213== by 0x313EFA: onig_new_with_source (re.c:876) ==296213== by 0x313EFA: make_regexp (re.c:900) ==296213== by 0x313EFA: rb_reg_initialize (re.c:3136) ==296213== by 0x318555: rb_reg_initialize_str (re.c:3170) ==296213== by 0x318555: rb_reg_init_str (re.c:3205) ==296213== by 0x31A669: rb_reg_initialize_m (re.c:3856) ==296213== by 0x3E5165: vm_call0_cfunc_with_frame (vm_eval.c:150) ==296213== by 0x3E5165: vm_call0_cfunc (vm_eval.c:164) ==296213== by 0x3E5165: vm_call0_body (vm_eval.c:210) ==296213== by 0x3E89BD: vm_call0_cc (vm_eval.c:87) ==296213== by 0x3E89BD: rb_call0 (vm_eval.c:551) ==296213== Address 0x9d45b10 is 0 bytes after a block of size 32 alloc'd ==296213== at 0x4844899: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==296213== by 0x20FA7B: objspace_xmalloc0 (gc.c:12146) ==296213== by 0x35F8C9: str_buf_cat4.part.0 (string.c:3132) ==296213== by 0x31359D: unescape_escaped_nonascii (re.c:2690) ==296213== by 0x313A9D: unescape_nonascii (re.c:2869) ==296213== by 0x313A9D: rb_reg_preprocess (re.c:2992) ==296213== by 0x313DFC: rb_reg_initialize (re.c:3109) ==296213== by 0x318555: rb_reg_initialize_str (re.c:3170) ==296213== by 0x318555: rb_reg_init_str (re.c:3205) ==296213== by 0x31A669: rb_reg_initialize_m (re.c:3856) ==296213== by 0x3E5165: vm_call0_cfunc_with_frame (vm_eval.c:150) ==296213== by 0x3E5165: vm_call0_cfunc (vm_eval.c:164) ==296213== by 0x3E5165: vm_call0_body (vm_eval.c:210) ==296213== by 0x3E89BD: vm_call0_cc (vm_eval.c:87) ==296213== by 0x3E89BD: rb_call0 (vm_eval.c:551) ==296213== by 0x3E957B: rb_call (vm_eval.c:877) ==296213== by 0x3E957B: rb_funcallv_kw (vm_eval.c:1074) ==296213== by 0x2A4123: rb_class_new_instance_pass_kw (object.c:1991) ==296213== ==296213== ==296213== HEAP SUMMARY: ==296213== in use at exit: 35,476,538 bytes in 9,489 blocks ==296213== total heap usage: 14,893 allocs, 5,404 frees, 37,517,821 bytes allocated ==296213== ==296213== LEAK SUMMARY: ==296213== definitely lost: 316,081 bytes in 2,989 blocks ==296213== indirectly lost: 136,808 bytes in 2,361 blocks ==296213== possibly lost: 1,048,624 bytes in 3 blocks ==296213== still reachable: 33,975,025 bytes in 4,136 blocks ==296213== suppressed: 0 bytes in 0 blocks ==296213== Rerun with --leak-check=full to see details of leaked memory ==296213== ==296213== For lists of detected and suppressed errors, rerun with: -s ==296213== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) ``` Notes: Merged: https://github.com/ruby/ruby/pull/6625 Merged-By: mame commit ee3da3784e13c9f5164206a373d14d3f7aa9d245 Author: Nick Hengeveld AuthorDate: 2022-10-25 07:28:57 +0900 Commit: John Hawthorn CommitDate: 2022-10-25 08:47:42 +0900 Use CXX14 to allow constexpr with non-return statements Co-authored-by: Daniel Colson Notes: Merged: https://github.com/ruby/ruby/pull/6626 commit b652dbf63b963f92abddf15ed4f2fed0787e1969 Author: John Hawthorn AuthorDate: 2022-10-22 06:31:33 +0900 Commit: John Hawthorn CommitDate: 2022-10-25 02:54:01 +0900 Remove iv_index_tbl_entry Notes: Merged: https://github.com/ruby/ruby/pull/6610 commit abeef41c9573b458dec1b960d4251a38aeaa8e03 Author: Stan Lo AuthorDate: 2022-10-25 01:32:58 +0900 Commit: git[bot] CommitDate: 2022-10-25 02:02:34 +0900 [ruby/irb] Restore standard input/output encodings after input method tests commit 120b747b7df25722c982ff4ba0f8be9a1463bd78 Author: Takashi Kokubun AuthorDate: 2022-10-25 01:20:44 +0900 Commit: GitHub CommitDate: 2022-10-25 01:20:44 +0900 YJIT: Lazily enable YJIT after prelude (#6597) * YJIT: Lazily enable YJIT after prelude * Update dependencies * Use a bit field for opt->yjit Notes: Merged-By: maximecb commit 841be6392ef85a02ab8ce7f323b990d6bbcc09cb Author: Burdette Lamar AuthorDate: 2022-10-25 00:38:19 +0900 Commit: GitHub CommitDate: 2022-10-25 00:38:19 +0900 [DOC] Revert previous merge (#6624) Revert previous merge Notes: Merged-By: BurdetteLamar commit 21fa0135a4f66e101d6225a9de1e02fade22a38c Author: Nobuyoshi Nakada AuthorDate: 2022-10-23 18:33:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-24 23:45:45 +0900 Split tests for `Array#shuffle` and `Array#sample` commit bcb72f503c311e214545e77906efbbadd8313068 Author: Burdette Lamar AuthorDate: 2022-10-24 22:56:13 +0900 Commit: GitHub CommitDate: 2022-10-24 22:56:13 +0900 [DOC] Add note about method names (#6620) Notes: Merged-By: BurdetteLamar commit 5a86155249d0cba9135327bce8f5d3f6f69721d8 Author: st0012 AuthorDate: 2022-10-22 05:36:13 +0900 Commit: git[bot] CommitDate: 2022-10-24 22:36:58 +0900 [ruby/irb] Add a test case to cover rdoc unintalled scenario commit b7622d792dde7922692de6fcf43bd87cd7faa97b Author: st0012 AuthorDate: 2022-10-18 18:08:24 +0900 Commit: git[bot] CommitDate: 2022-10-24 22:36:57 +0900 [ruby/irb] Move require out of repeated execution path SHOW_DOC_DIALOG will be called repeatedly whenever the corresponding key is pressed, but we only need to require rdoc once. So ideally the require can be put outside of the proc. And because when rdoc is not available the entire proc will be nonfunctional, we can stop registering the SHOW_DOC_DIALOG if we failed to require rdoc. https://github.com/ruby/irb/commit/b1278b7320 commit d377cc4530c1edeb4281a6a5a7ee2a4d13b1b561 Author: st0012 AuthorDate: 2022-10-18 19:24:04 +0900 Commit: git[bot] CommitDate: 2022-10-24 22:36:56 +0900 [ruby/irb] Add tests for RelineInputMethod commit 399747926c323aca4f477ac3f8870b19229f4212 Author: git[bot] AuthorDate: 2022-10-24 18:27:55 +0900 Commit: git[bot] CommitDate: 2022-10-24 18:27:55 +0900 Update bundled gems list at 2022-10-24 commit 67ed70da615c7fa5dc46c30eb3e966b903ef1f8b Author: Yusuke Endoh AuthorDate: 2022-10-24 18:21:30 +0900 Commit: Yusuke Endoh CommitDate: 2022-10-24 18:21:30 +0900 Refactor timeout-setting code to a function commit ef01482f64df9bcd7adb2b64ca6ab96f55f42c43 Author: Yusuke Endoh AuthorDate: 2022-10-24 18:12:49 +0900 Commit: Yusuke Endoh CommitDate: 2022-10-24 18:13:26 +0900 Refactor timeout-related code in re.c a little commit b51b22513f6a2a514a9e614e7a9f6e0df6c0c985 Author: Yusuke Endoh AuthorDate: 2022-10-24 18:03:26 +0900 Commit: GitHub CommitDate: 2022-10-24 18:03:26 +0900 Fix per-instance Regexp timeout (#6621) Fix per-instance Regexp timeout This makes it follow what was decided in [Bug #19055]: * `Regexp.new(str, timeout: nil)` should respect the global timeout * `Regexp.new(str, timeout: huge_val)` should use the maximum value that can be represented in the internal representation * `Regexp.new(str, timeout: 0 or negative value)` should raise an error Notes: Merged-By: mame commit 6700fa7f62b040b5f69c3c5c3f5dbe740910c990 Author: Nobuyoshi Nakada AuthorDate: 2022-10-24 13:16:06 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-24 17:48:00 +0900 Set timestamp path for the target path to TARGET_SO_DIR_TIMESTAMP commit 711b2ed5fe7abcb44a2432cb5f0e70861bf95aef Author: Nobuyoshi Nakada AuthorDate: 2022-10-24 12:49:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-24 17:47:59 +0900 Make the timestamp path correspond to the bundled target path So different timestamps for different paths will be used. Extentions paths in bundled gems contain `ruby_version`, which includes the ABI version, and the same timestamp file for different paths resulted in build failures when it changed. commit 298221dfe56c905800967ab7dbe4cf74cecdc531 Author: S-H-GAMELINKS AuthorDate: 2022-10-24 16:31:07 +0900 Commit: Jean Boussier CommitDate: 2022-10-24 17:25:01 +0900 Reuse RBOOL macro in rb_ivar_defined function Notes: Merged: https://github.com/ruby/ruby/pull/6622 commit c5f5403f6ed9e62f2a1002417e61c949ee9c8420 Author: Hiroshi SHIBATA AuthorDate: 2022-10-24 14:43:15 +0900 Commit: git[bot] CommitDate: 2022-10-24 14:45:44 +0900 [ruby/net-http] Bump version to 0.3.0 commit 174ddc79c53ffe2efbccfe8737e7b8d50fe79050 Author: Nobuyoshi Nakada AuthorDate: 2022-10-24 00:33:51 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-24 09:32:13 +0900 Skip `File.atime`/`File.mtime` tests randomly failing on Travis Not only powerpc64le, also s390x and arm32 seem failing too. These failures are probably caused by filesystem settings on Travis, but unrelated to CPUs. commit c4089e65245aa00824c30fa7033a18cfa1c0e4c9 Author: S-H-GAMELINKS AuthorDate: 2022-10-23 15:00:55 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-23 17:38:59 +0900 Fix argument & Remove enum Notes: Merged: https://github.com/ruby/ruby/pull/6616 commit 1e06ef1328880bf39a7e6d757678be619c21f0c1 Author: S-H-GAMELINKS AuthorDate: 2022-10-22 18:26:53 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-23 17:38:59 +0900 Introduce rb_memsearch_with_char_size function Notes: Merged: https://github.com/ruby/ruby/pull/6616 commit 86450d03a8c1570571c20452578cb923060e1d1f Author: Nobuyoshi Nakada AuthorDate: 2022-10-23 13:42:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-23 16:44:43 +0900 Reduce type check of arguments at Complex creation Notes: Merged: https://github.com/ruby/ruby/pull/6618 commit c8c136265c6dd343990293016eb9904aa78a0412 Author: S.H AuthorDate: 2022-10-23 16:17:24 +0900 Commit: GitHub CommitDate: 2022-10-23 16:17:24 +0900 Introduce `hash_iter_status_check` function Notes: Merged: https://github.com/ruby/ruby/pull/6564 Merged-By: nobu commit 54cad3123a07583c90e85bcfc55ebd87124c1250 Author: Stephen Ierodiaconou AuthorDate: 2022-10-23 12:59:06 +0900 Commit: GitHub CommitDate: 2022-10-23 12:59:06 +0900 [Bug #19004] `Complex.polar` handles complex singular `abs` argument `Complex.polar` accepts Complex values as arguments for the polar form as long as the value of the complex has no imaginary part (ie it is 'real'). In `f_complex_polar` this is handled by extracting the real part of the arguments. However in the case `polar` is called with only a single argument, the absolute value (abs), then the Complex is created without applying a check on the type of abs, meaning it is possible to create a Complex where the real part is itself an instance of a Complex. This change removes the short circuit for the single argument case meaning the real part extraction is performed correctly (by f_complex_polar). Also adds an example to `spec/ruby/core/complex/polar_spec.rb` to check that the real part of a complex argument is correctly extracted and used in the resulting Complex real and imaginary parts. Notes: Merged: https://github.com/ruby/ruby/pull/6568 Merged-By: nobu commit 0d9628e0decc6c2c7ca0ca4e7ecbf7e4d025959b Author: Nobuyoshi Nakada AuthorDate: 2022-10-23 12:46:13 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-23 12:46:13 +0900 Update Complex.polar with Complex tests commit 8dfe3bdf48ff73052de1262e4644c08742abd8e6 Author: Samuel Williams AuthorDate: 2022-10-22 19:34:00 +0900 Commit: GitHub CommitDate: 2022-10-22 19:34:00 +0900 Improved formatting of `hash_foreach_iter` functions. (#6615) Notes: Merged-By: ioquatix commit 420bdba1397b355aec773688487229c20a1e7759 Author: Thomas E. Enebo AuthorDate: 2022-10-21 03:17:47 +0900 Commit: git[bot] CommitDate: 2022-10-22 17:01:24 +0900 [rubygems/rubygems] Allow upcoming JRuby to pass keywords for Kernel#warn jruby-head (which will be JRuby 9.4.0.0) can now properly process the keywords to Kernel#warn. I cannot think of any capability based test for this so I constrained it using a version guard. Only JRuby will ever hit the version guard. https://github.com/rubygems/rubygems/commit/cd468c7e0f commit a11952dac1a5b0776a493968eeffbd4be4403b76 Author: Jemma Issroff AuthorDate: 2022-10-22 05:24:29 +0900 Commit: Aaron Patterson CommitDate: 2022-10-22 06:57:34 +0900 Rename `iv_count` on shapes to `next_iv_index` `iv_count` is a misleading name because when IVs are unset, the new shape doesn't decrement this value. `next_iv_count` is an accurate, and more descriptive name. Notes: Merged: https://github.com/ruby/ruby/pull/6608 commit 13bd617ea6fdf72467c593639cf33312a06c330c Author: Jemma Issroff AuthorDate: 2022-10-22 01:58:51 +0900 Commit: Aaron Patterson CommitDate: 2022-10-22 06:56:48 +0900 Remove unused class serial Before object shapes, we were using class serial to invalidate inline caches. Now that we use shape_id for inline cache keys, the class serial is unnecessary. Co-Authored-By: Aaron Patterson Notes: Merged: https://github.com/ruby/ruby/pull/6605 commit 87bb0bee6b9843ea32ca6bb48f9e03b1876b7c48 Author: Alan Wu AuthorDate: 2022-10-22 06:06:34 +0900 Commit: GitHub CommitDate: 2022-10-22 06:06:34 +0900 YJIT: Fix page rounding for icache busting Previously, we found the current page by rounding the current pointer to the closest smaller page size. This is incorrect because pages are relative to the start of the address we reserve. For example, if the starting address is 12KiB modulo the 16KiB page size, once we have more than 4KiB of code, calculating with the address would incorrectly give us page 1 when we're actually still on page 0. Previously, I can reproduce crashes with: make btest RUN_OPTS=--yjit-code-page-size=32 on ARM64 macOS, where system page sizes are 16KiB. Notes: Merged: https://github.com/ruby/ruby/pull/6607 Merged-By: XrXr commit 8bbcb75377fed4e4e7f2a5848e1a21f4dc0efa8c Author: Alan Wu AuthorDate: 2022-10-22 04:11:52 +0900 Commit: Alan Wu CommitDate: 2022-10-22 05:25:41 +0900 YJIT: Read rb_num_t as usize early This patch makes sure that we're not accidentally reading rb_num_t instruction arguments as VALUE and accidentally baking them into code and marking them. Some of these are simply moving the cast earlier, but some of these avoid potential problems for flag and ID arguments. Follow-up for 39f7eddec4c55711d56f05b085992a83bf23159e. Notes: Merged: https://github.com/ruby/ruby/pull/6606 commit c7754a4d4c977607695758c7fda7a20313a77398 Author: Burdette Lamar AuthorDate: 2022-10-22 04:42:28 +0900 Commit: GitHub CommitDate: 2022-10-22 04:42:28 +0900 [DOC] Add link targets (#6602) Notes: Merged-By: BurdetteLamar commit f2ae58119d9581dee467b0a7f05173eca3b2dfea Author: Jemma Issroff AuthorDate: 2022-10-21 03:50:41 +0900 Commit: Aaron Patterson CommitDate: 2022-10-22 02:57:05 +0900 In init_copy, set shape after copying ivars GC uses shapes to determine IV buffer width. Since allocation can trigger GC, we need to ensure we only set the shape once we've fully allocated new memory for the IV buffer, otherwise the GC can end up trying to mark invalid memory. Notes: Merged: https://github.com/ruby/ruby/pull/6601 commit 35e03a44b815c1111e3947ba526a5de0bdf82c82 Author: Burdette Lamar AuthorDate: 2022-10-21 23:12:31 +0900 Commit: git[bot] CommitDate: 2022-10-21 23:12:45 +0900 [ruby/stringio] [DOC] Enhanced RDoc for StringIO (https://github.com/ruby/stringio/pull/36) Treats: - #each_codepoint - #gets - #readline (shows up in doc for module IO::generic_readable, not class StringIO) - #each_line https://github.com/ruby/stringio/commit/659aca7fe5 commit f88bff770578583a708093f4a0d8b1483a1d2039 Author: Hiroshi SHIBATA AuthorDate: 2022-10-21 21:33:50 +0900 Commit: git[bot] CommitDate: 2022-10-21 21:39:52 +0900 [ruby/net-http] Revert "Replace Timeout.timeout in Net:HTTP#connect" This reverts commit https://github.com/ruby/net-http/commit/753cae3bbccc. https://github.com/ruby/net-http/commit/98caa38204 commit e026368061c56bc925aff58910a4b02f18b78c70 Author: Yusuke Endoh AuthorDate: 2022-10-21 13:39:15 +0900 Commit: Yusuke Endoh CommitDate: 2022-10-21 16:35:46 +0900 Range#size returns nil for (.."a") and (nil..) Fixes [Bug #18983] Notes: Merged: https://github.com/ruby/ruby/pull/6604 commit 39f7eddec4c55711d56f05b085992a83bf23159e Author: Alan Wu AuthorDate: 2022-10-21 05:45:24 +0900 Commit: Alan Wu CommitDate: 2022-10-21 07:12:15 +0900 YJIT: Fix gen_expandarray treating argument as VALUE The expandarray instruction interpreters its arguments as rb_num_t. YJIT was treating the num argument as a VALUE previously and when it has a certain bit pattern, it can look like a GC pointer. The argument is not a pointer, so YJIT crashed when trying to mark those pointers. This bug existed previously, but our test suite didn't expose it until f55212bce939f736559709a8cd16c409772389c8. TestArgf#test_to_io has a line like: a1, a2, a3, a4, a5, a6, a7, a8 = array Which maps to an expandarray with an argument of 8. Qnil happened to be defined as 8, which masked the issue. Fix it by not using the argument as a VALUE. Notes: Merged: https://github.com/ruby/ruby/pull/6603 commit 9a0a165a5d6d0bc4ed18cb92d05593796f703359 Author: Nobuyoshi Nakada AuthorDate: 2022-10-21 00:43:08 +0900 Commit: Alan Wu CommitDate: 2022-10-21 04:43:34 +0900 Check writebarrier arguments Notes: Merged: https://github.com/ruby/ruby/pull/6600 commit 245ad2b38a4a1a13297cb7adfb79834db48aedd3 Author: Nobuyoshi Nakada AuthorDate: 2022-10-20 23:19:22 +0900 Commit: Alan Wu CommitDate: 2022-10-21 04:43:34 +0900 YJIT: incorporate ruby_special_consts Notes: Merged: https://github.com/ruby/ruby/pull/6600 commit 6aed5b0c11eab5f5b51ef9343cae9313f425c50e Author: Jemma Issroff AuthorDate: 2022-10-20 03:56:22 +0900 Commit: Aaron Patterson CommitDate: 2022-10-21 03:59:34 +0900 Unmark Internal IV test as pending Co-Authored-By: Aaron Patterson Notes: Merged: https://github.com/ruby/ruby/pull/6595 commit 0378e2f4a8319440dd65c82b16f189161472d237 Author: Ufuk Kayserilioglu AuthorDate: 2022-09-27 07:19:22 +0900 Commit: Jean Boussier CommitDate: 2022-10-21 00:30:17 +0900 Add Class#attached_object Implements [Feature #12084] Returns the object for which the receiver is the singleton class, or raises TypeError if the receiver is not a singleton class. Notes: Merged: https://github.com/ruby/ruby/pull/6450 commit 192bc725290ca4b271bff2bae6123d84c25f7173 Author: Nobuyoshi Nakada AuthorDate: 2022-10-20 14:42:08 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-20 22:05:27 +0900 Define `UNDEF_P` and `NIL_OR_UNDEF_P` [EXPERIMENTAL] Notes: Merged: https://github.com/ruby/ruby/pull/6599 commit f55212bce939f736559709a8cd16c409772389c8 Author: Nobuyoshi Nakada AuthorDate: 2022-10-20 10:57:40 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-20 22:05:27 +0900 Move "special consts" so `Qundef` and `Qnil` differ just 1 bit Notes: Merged: https://github.com/ruby/ruby/pull/6599 commit e35c528d721d209ed8531b10b46c2ac725ea7bf5 Author: Koichi Sasada AuthorDate: 2022-10-17 17:50:42 +0900 Commit: Koichi Sasada CommitDate: 2022-10-20 17:38:28 +0900 push dummy frame for loading process This patch pushes dummy frames when loading code for the profiling purpose. The following methods push a dummy frame: * `Kernel#require` * `Kernel#load` * `RubyVM::InstructionSequence.compile_file` * `RubyVM::InstructionSequence.load_from_binary` https://bugs.ruby-lang.org/issues/18559 Notes: Merged: https://github.com/ruby/ruby/pull/6572 commit 7563604fb868d87057733f52d780d841fc1ab6bb Author: Nobuyoshi Nakada AuthorDate: 2022-10-20 14:07:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-20 15:35:31 +0900 [Bug #18998] Honor `#to_str` next to `#to_int` in `Kernel#Integer` Notes: Merged: https://github.com/ruby/ruby/pull/6598 commit 4f1e0bfacd93c28bff549e2f3603c3b4942429a3 Author: Hiroshi SHIBATA AuthorDate: 2022-10-20 14:36:06 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-20 14:36:06 +0900 Followed up CVE-2022-39253 for bundler examples commit b963fb25d2f683759c273eb21af85c1632122056 Author: Takashi Kokubun AuthorDate: 2022-10-20 09:47:11 +0900 Commit: GitHub CommitDate: 2022-10-20 09:47:11 +0900 YJIT: Respect writable_addrs on --yjit-dump-iseq-disasm as well (#6596) YJIT: Respect writable_addrs on --yjit-dump-iseq-disasm as well Notes: Merged-By: maximecb commit 7f175e564875b011efb43537907867dd08d659e8 Author: Samuel Williams AuthorDate: 2022-10-20 09:38:52 +0900 Commit: GitHub CommitDate: 2022-10-20 09:38:52 +0900 Avoid missed wakeup with fiber scheduler and Fiber.blocking. (#6588) * Ensure that blocked fibers don't prevent valid wakeups. Notes: Merged-By: ioquatix commit d9d9005a3a31d0df0b5432eba5d6f2b9bd647cb1 Author: Takashi Kokubun AuthorDate: 2022-10-20 09:18:59 +0900 Commit: Takashi Kokubun CommitDate: 2022-10-20 09:20:48 +0900 MJIT: Stop using the VM barrier for jit_cont This solves multiple problems. First, RB_VM_LOCK_ENTER/LEAVE is a barrier. We could at least use the _NO_BARRIER variant. Second, this doesn't need to interfere with GC or other GVL users when multiple Ractors are used. This needs to be used in very few places, so the benefit of fine-grained locking would outweigh its small maintenance cost. Third, it fixes a crash for YJIT. Because YJIT is never disabled until a process exits unlike MJIT that finishes earlier, we could call jit_cont_free when EC no longer exists, which crashes RB_VM_LOCK_ENTER. commit 0d360ee7ff962ef66667a75a912c3980c4f5b217 Author: Takashi Kokubun AuthorDate: 2022-10-20 04:36:24 +0900 Commit: GitHub CommitDate: 2022-10-20 04:36:24 +0900 YJIT: Skip dumping code for the other cb on --yjit-dump-disasm (#6592) YJIT: Skip dumping code for the other cb on --yjit-dump-disasm Notes: Merged-By: maximecb commit 9da0d4ca9d7032347776390fc473857c57a72ba3 Author: Alan Wu AuthorDate: 2022-10-20 03:43:36 +0900 Commit: Alan Wu CommitDate: 2022-10-20 03:44:58 +0900 YJIT: fix a #[warn(unused_parens)] commit 0aaa6133ed7365e5037ccdac8b59b00fb13aa50e Author: Jemma Issroff AuthorDate: 2022-10-19 22:30:41 +0900 Commit: Aaron Patterson CommitDate: 2022-10-20 03:06:19 +0900 Transition frozen string to frozen root shape Co-Authored-By: Aaron Patterson Notes: Merged: https://github.com/ruby/ruby/pull/6590 commit 5ca23caa2057fc4760fbefab6087371b11c4bc6c Author: Alan Wu AuthorDate: 2022-10-20 03:03:07 +0900 Commit: GitHub CommitDate: 2022-10-20 03:03:07 +0900 YJIT: fold the "asm_comments" feature into "disasm" (#6591) Previously, enabling only "disasm" didn't actually build. Since these two features are closely related and we don't really use one without the other, let's simplify and merge the two features together. Notes: Merged-By: maximecb commit bc939d293768acf9a21568ebe738b8fe5981038f Author: Burdette Lamar AuthorDate: 2022-10-20 00:34:51 +0900 Commit: GitHub CommitDate: 2022-10-20 00:34:51 +0900 [DOC] More about line number (#6582) Notes: Merged-By: BurdetteLamar commit c32180d5ceee28d035db8ce1a7e9973238a4553e Author: Burdette Lamar AuthorDate: 2022-10-20 00:33:02 +0900 Commit: git[bot] CommitDate: 2022-10-20 00:33:08 +0900 [ruby/stringio] [DOC] Enhanced RDoc for StringIO (https://github.com/ruby/stringio/pull/35) Treated: - #getc - #getbyte - #ungetc - #ungetbyte - #readchar - #readbyte - #each_char https://github.com/ruby/stringio/commit/6400af8d9f commit eeea633eb20cfdcaf0fec35109afa3821cb994f3 Author: Aaron Patterson AuthorDate: 2022-09-28 03:51:34 +0900 Commit: Aaron Patterson CommitDate: 2022-10-19 23:54:46 +0900 Stop zeroing memory on allocation / copy Shapes gives us an almost exact count of instance variables on an object. Since we know the number of instance variables that have been set, we will never access slots that haven't been initialized with an IV. Notes: Merged: https://github.com/ruby/ruby/pull/6585 commit 412e3c7a8db275567eaceece6c48dde3aedf2ae6 Author: Nobuyoshi Nakada AuthorDate: 2022-10-19 18:45:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-19 22:55:42 +0900 Assert for RTEST that Qnil and Qfalse differ just 1 bit Notes: Merged: https://github.com/ruby/ruby/pull/6589 commit 86096a91d55f72620e0f8ca8634da5fa342dc35b Author: Hiroshi SHIBATA AuthorDate: 2022-10-19 20:39:07 +0900 Commit: git[bot] CommitDate: 2022-10-19 22:03:47 +0900 [rubygems/rubygems] Use [] instead of double-quotes commit a25c0338051af3fe2e917cd4d3d4c42b9f0bcf9e Author: Hiroshi SHIBATA AuthorDate: 2022-10-19 14:57:07 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-19 21:10:00 +0900 Suppress warning for fgrep >fgrep: warning: fgrep is obsolescent; using ggrep -F Notes: Merged: https://github.com/ruby/ruby/pull/6586 commit dae843f6b7502f921a7e66f39e3714a39d860181 Author: Hiroshi SHIBATA AuthorDate: 2022-10-19 19:40:00 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-19 20:34:45 +0900 Bypass git submodule add/update with git config protocol.file.allow=always option. Co-authored-by: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/6587 commit 567725ed303b6738493c80efaf93dc4c1e65a9c9 Author: Sergey Fedorov AuthorDate: 2022-10-19 19:49:45 +0900 Commit: GitHub CommitDate: 2022-10-19 19:49:45 +0900 Fix and improve coroutines for Darwin (macOS) ppc/ppc64. (#5975) Notes: Merged-By: ioquatix commit fc3137ef54562c3c3290245c0f62e0bb193c3145 Author: Samuel Williams AuthorDate: 2022-10-19 14:53:38 +0900 Commit: GitHub CommitDate: 2022-10-19 14:53:38 +0900 Add support for anonymous shared IO buffers. (#6580) Notes: Merged-By: ioquatix commit f982a26374f4300ed9e5cbd122f792f907e20b22 Author: Kouhei Yanagita AuthorDate: 2022-10-18 12:19:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-19 09:14:50 +0900 [DOC] Fix typo in Enumerable#slice_before Notes: Merged: https://github.com/ruby/ruby/pull/6577 commit 18b96d8a828f595c46814511f11b41c4dba7d4b4 Author: Burdette Lamar AuthorDate: 2022-10-17 03:22:06 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-19 09:12:18 +0900 [ruby/stringio] [DOC] StringIO doc enhancements (https://github.com/ruby/stringio/pull/33) Treated: - ::new - ::open - #string - #string= - #close - #close_read - #close_write - #closed? - #closed_read? - #closed_write? - #eof? https://github.com/ruby/stringio/commit/be9b64d739 commit 01d56b99bf1f89b104df789431f698e44d2d547c Author: Nobuyoshi Nakada AuthorDate: 2022-10-19 08:52:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-19 08:52:29 +0900 [DOC] Fix rdoc-ref commit 12c30f215cfadb8feb678c659941d4cfe5310785 Author: Jimmy Miller AuthorDate: 2022-10-19 05:03:55 +0900 Commit: GitHub CommitDate: 2022-10-19 05:03:55 +0900 Fixes remaining issues and turns back on dead code and unused (#6584) Notes: Merged-By: maximecb commit 6bd72a6406bedce6267b9737b38b9f1b89cf6a51 Author: Burdette Lamar AuthorDate: 2022-10-19 03:40:48 +0900 Commit: git[bot] CommitDate: 2022-10-19 03:41:00 +0900 [ruby/stringio] [DOC] Enhanced RDoc for StringIO (https://github.com/ruby/stringio/pull/34) Treated: - #lineno - #lineno= - #binmode - #reopen - #pos - #pos= - #rewind - #seek - #sync - #each_byte commit b2ba71df9efd2e484cce955a398f2894702c7de0 Author: Jimmy Miller AuthorDate: 2022-10-19 03:19:41 +0900 Commit: GitHub CommitDate: 2022-10-19 03:19:41 +0900 Code clean around unused code for some architectures or features (#6581) Notes: Merged-By: maximecb commit e7166c9bb78e20531a9cbb372e460ecd12603b5e Author: Takashi Kokubun AuthorDate: 2022-10-19 01:07:11 +0900 Commit: GitHub CommitDate: 2022-10-19 01:07:11 +0900 Allow passing a Rust closure to rb_iseq_callback (#6575) Notes: Merged-By: k0kubun commit d67b6310d3e529b4d4a56ba8d850aa5bccfb83b5 Author: Burdette Lamar AuthorDate: 2022-10-19 00:16:22 +0900 Commit: GitHub CommitDate: 2022-10-19 00:16:22 +0900 [DOC] Link to packed data doc (#6567) * Link to packed data doc * Update pack.rb Co-authored-by: Peter Zhu * Update pack.rb Co-authored-by: Peter Zhu * Update pack.rb Co-authored-by: Peter Zhu Co-authored-by: Peter Zhu Notes: Merged-By: BurdetteLamar commit dffca50bb609661f04660221834c48f36b4b21fa Author: Aaron Patterson AuthorDate: 2022-07-15 02:00:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-18 17:21:45 +0900 [ruby/fiddle] Free closures immediately (https://github.com/ruby/fiddle/pull/109) These structs don't need to be freed as part of finalization, so lets free them immediately. https://github.com/ruby/fiddle/commit/8a10ec1152 Notes: Merged: https://github.com/ruby/ruby/pull/6576 commit e84ea4af695de307c4e66bf0d9aa445a1016a4af Author: Sutou Kouhei AuthorDate: 2022-04-11 08:32:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-18 17:21:45 +0900 [ruby/fiddle] Add support for linker script on Linux GitHub: fix https://github.com/ruby/fiddle/pull/107 Reported by nicholas a. evans. Thanks!!! https://github.com/ruby/fiddle/commit/49ea1490df Notes: Merged: https://github.com/ruby/ruby/pull/6576 commit 93da67d46394007aa977c9345535c37878fd0db9 Author: John Paul Adrian Glaubitz AuthorDate: 2022-03-20 06:16:07 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-18 17:21:45 +0900 [ruby/fiddle] Fix filenames for glibc SO files on alpha and ia64 (https://github.com/ruby/fiddle/pull/105) Fixes [Bug #18645] https://github.com/ruby/fiddle/commit/9a5a1dab1d Notes: Merged: https://github.com/ruby/ruby/pull/6576 commit 08ec6562822f0734f246741ebc9b0fa0829f8208 Author: Sutou Kouhei AuthorDate: 2021-11-24 11:40:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-18 17:21:45 +0900 [ruby/fiddle] Bump version Notes: Merged: https://github.com/ruby/ruby/pull/6576 commit 091e3522d709160ebb4cb58794b10b3ab08f163b Author: Nobuyoshi Nakada AuthorDate: 2022-10-18 10:49:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-18 17:21:45 +0900 fiddle: use the old rb_ary_tmp_new() alias Fiddle is a gem and has the external upstream which supports older versions of Ruby. Notes: Merged: https://github.com/ruby/ruby/pull/6576 commit 007946c27d7445e25569be58e255f7bb08e8bd75 Author: Takuya Noguchi AuthorDate: 2022-10-18 12:55:59 +0900 Commit: git[bot] CommitDate: 2022-10-18 16:54:32 +0900 [rubygems/rubygems] Bundler: github DSL has used https protocol over git This behavior change was done in Bundler 2.2.0. https://github.com/rubygems/bundler/pull/7142 Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/9510190be1 commit f5df47d1f3ec403d057f823375f1dfeea711caa6 Author: Hiroshi SHIBATA AuthorDate: 2022-10-18 15:24:42 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 Merge RubyGems/Bundler master https://github.com/rubygems/rubygems/commit/6214d00b2315ed37c76b1fbc1c72f61f92ba5a65 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 2ab7bb8969ca76d49a6c2043f423a3646b20d1f7 Author: Jarek Prokop AuthorDate: 2022-09-09 22:25:09 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] TestGemSecuritySigner#test_sign: Correct the expectation for new cert. https://github.com/rubygems/rubygems/commit/bed360410d Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit b7debaa8015c7a3dba832954ecc93334f6853f37 Author: Jarek Prokop AuthorDate: 2022-09-09 22:22:31 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] TestGemSecurity#test_class_re_sign: Correct signature algorithm. https://github.com/rubygems/rubygems/commit/e2d533591c Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit cbddc913d94dde97714eeab1eac8570ff6674201 Author: Jarek Prokop AuthorDate: 2022-09-09 22:18:25 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Set Subject Key Identifier in test to correspond to the new certificate. https://github.com/rubygems/rubygems/commit/3a607f43d1 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit cb63a3f4c1d4b3e6245674e8f759adeda7c7abe4 Author: David Rodríguez AuthorDate: 2022-10-11 08:36:04 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Materialize platforms strictly on Windows too https://github.com/rubygems/rubygems/commit/ab11545f80 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 4d3dbbe77e273262757483d402ee1157a48453e9 Author: David Rodríguez AuthorDate: 2022-10-11 08:34:12 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Remove unnecessary receiver https://github.com/rubygems/rubygems/commit/ba9d9b1890 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 74dbb0d09a694c40b8406ce35ca5d4278185c3f0 Author: David Rodríguez AuthorDate: 2022-10-11 08:33:09 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Remove unnecessary generic I didn't realize how the `Bundler::GemHelpers.generic` method works when I added this. It already matches this and other java platforms properly. https://github.com/rubygems/rubygems/commit/5f0f0c678c Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 5fa18a7b0cb1ffbc0c11d151c074c9aa0ea6ee41 Author: David Rodríguez AuthorDate: 2022-10-05 22:40:03 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Fix bad spec wording https://github.com/rubygems/rubygems/commit/06faad1e05 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit e956caea88b67cc1a1b42b95327190c63d45888a Author: David Rodríguez AuthorDate: 2022-10-05 21:16:57 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Extract matcher for slow perf spec https://github.com/rubygems/rubygems/commit/1c0eb63c6a Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 56ad79694ba18789cb26a85dd693d51d96a092c3 Author: David Rodríguez AuthorDate: 2022-09-13 01:46:01 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Simplify fetching spec group dependencies https://github.com/rubygems/rubygems/commit/62c2edd255 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 804ae4ea12d05e66aaa680feea83af587ac53745 Author: David Rodríguez AuthorDate: 2022-09-13 01:38:33 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Simplify SpecGroup creation https://github.com/rubygems/rubygems/commit/788e46e152 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 67de00053a26db9d976efa393d121479b5315f5e Author: David Rodríguez AuthorDate: 2022-07-05 02:04:00 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Inline helper method https://github.com/rubygems/rubygems/commit/e60459d6b6 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit b99010f9f2aa9e8ea100f4cdbe1e2f1a5601fd5e Author: David Rodríguez AuthorDate: 2022-07-05 01:37:59 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Use `flat_map` https://github.com/rubygems/rubygems/commit/b31308fb4c Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 71dede387e089023292e66c7f39305e13400c8c0 Author: David Rodríguez AuthorDate: 2022-08-23 15:36:30 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Remove one more `expand_dependencies` call https://github.com/rubygems/rubygems/commit/996fd81871 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit cef7f6b2241565f51bb724c19b89b8320825b98a Author: David Rodríguez AuthorDate: 2022-07-07 05:29:13 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Remove now unnecessary parameter to `expand_dependencies` We just call it once for resolution, so we can simplify things. https://github.com/rubygems/rubygems/commit/99c144fbe3 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 8c4bd1e58d426ff014a3958ac197d40b4e367f00 Author: David Rodríguez AuthorDate: 2022-07-07 05:21:32 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Remove another `expand_dependencies` instance https://github.com/rubygems/rubygems/commit/33769ddb07 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 60670b163f32cae27629c852f95870656d2ee72f Author: David Rodríguez AuthorDate: 2022-07-04 21:47:53 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Remove another unnecessary dependency expansion https://github.com/rubygems/rubygems/commit/b4a0fcd2d2 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 0b6f2af3ba7bda0a81bc1eb1bd5b067c8d9e3e17 Author: David Rodríguez AuthorDate: 2022-07-06 20:47:11 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Avoid unnecessary dependency expansion https://github.com/rubygems/rubygems/commit/426748ed06 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit da1981fca450b5dd28d252cd42d59480c7d062b7 Author: David Rodríguez AuthorDate: 2022-09-29 14:30:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Remove unused parameter to `SharedHelpers.pretty_dependency` https://github.com/rubygems/rubygems/commit/665051d085 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 4205190cb24c350f0fbe5471881c25e8ecece96c Author: David Rodríguez AuthorDate: 2022-09-29 14:16:32 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-18 16:33:15 +0900 [rubygems/rubygems] Remove dead code https://github.com/rubygems/rubygems/commit/999b644708 Notes: Merged: https://github.com/ruby/ruby/pull/6578 commit 931bcd1b6315de5407a73019482bd3919f16820d Author: Takashi Kokubun AuthorDate: 2022-10-18 15:00:23 +0900 Commit: git[bot] CommitDate: 2022-10-18 15:03:23 +0900 [ruby/irb] Assert lvars_code doesn't include \n Removing /\A.+\n/ could have an unexpected impact, depending on how RubyLex.generate_local_variables_assign_code is implemented. It feels like a too much assumption and the intention isn't immediately clear, so I added these changes. https://github.com/ruby/irb/commit/ccc07a35ce commit a09f764ce52838a363b006ea434287eca431dbae Author: tomoya ishida AuthorDate: 2022-10-18 14:44:04 +0900 Commit: git[bot] CommitDate: 2022-10-18 14:44:07 +0900 [ruby/irb] Always use local variables in current context to parse code (https://github.com/ruby/irb/pull/397) * Use local_variables for colorize, code_block_open check, nesting_level and assignment_expression check * Check if expression is an assignment BEFORE evaluating it. evaluate might define new localvars and change result of assignment_expression? * Add local_variables dependent code test * pend local variable dependent test on truffleruby code_block_open is not working on truffleruby * Always pass context to RubyLex#lex * Rename local_variable_assign_code generator method name * Add assignment expression truncate test * Add Context#local_variables and make generate_local_variables_assign_code more simple * Update lib/irb/input-method.rb Co-authored-by: Stan Lo * Add a comment why assignment expression check should be done before evaluate https://github.com/ruby/irb/commit/c8b3877281 Co-authored-by: Stan Lo Co-authored-by: Takashi Kokubun commit 344e6c915f41d99df024c7e90403baca0d5213a5 Author: tomoya ishida AuthorDate: 2022-10-18 14:30:29 +0900 Commit: git[bot] CommitDate: 2022-10-18 14:30:33 +0900 [ruby/irb] Fix code terminated check with heredoc and backtick (https://github.com/ruby/irb/pull/390) * Fix backtick method def method call handled as backtick open * Fix handling heredoc in check_string_literal * Sort result of lexer.parse by pos in ruby<2.7. It's not sorted when the given code includes heredoc. * Update lib/irb/ruby-lex.rb Co-authored-by: Stan Lo * Update lib/irb/ruby-lex.rb Co-authored-by: Stan Lo * Add check_string_literal test for heredoc code that does not end with newline https://github.com/ruby/irb/commit/44bc712460 Co-authored-by: Stan Lo commit ab3b1b23811c44f56f3dff318b08a9112cba3582 Author: Nobuyoshi Nakada AuthorDate: 2022-10-18 11:30:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-18 11:37:12 +0900 sync_default_gems.rb: fix links to GitHub issues - Substitute `GH-xxxx` which does not contain `#` too. - Split each substitutions. commit 329d5424a479bb08e75bd750c51a5382e382731c Author: Hiroshi Shirosaki AuthorDate: 2022-10-18 09:18:03 +0900 Commit: Hiroshi Shirosaki CommitDate: 2022-10-18 09:18:03 +0900 [Bug #19042] Fix Dir.glob brace with '/' Dir.glob brace pattern with '/' after '**' does not match paths in recursive expansion process. We expand braces with '/' before expanding a recursive. Co-authored-by: Nobuyoshi Nakada commit 995bdd69de0ce0ab5cec93c5818cc28912657458 Author: Takashi Kokubun AuthorDate: 2022-10-18 07:37:56 +0900 Commit: GitHub CommitDate: 2022-10-18 07:37:56 +0900 Try --x-use-aria2 for better retries (#6574) to possibly deal with failures like https://ci.appveyor.com/project/ruby/ruby/builds/45097615. I'm not sure how vcpkg retries things, but at least aria2c seems to attempt downloads 5 times by default. https://aria2.github.io/manual/en/html/aria2c.html Looking at the CI log, vcpkg might be already trying it 5 times, but let me give it a try too. Notes: Merged-By: k0kubun commit b54c8ba8fc1a03446fa9ecfd7995ba8fafd20a3e Author: Jemma Issroff AuthorDate: 2022-10-18 03:31:24 +0900 Commit: Aaron Patterson CommitDate: 2022-10-18 06:47:45 +0900 Simplified rb_obj_copy_ivar implementation Notes: Merged: https://github.com/ruby/ruby/pull/6573 commit 1865ed4ab938a9979b3a310800a37c25e468c564 Author: Takashi Kokubun AuthorDate: 2022-10-18 06:32:44 +0900 Commit: Takashi Kokubun CommitDate: 2022-10-18 06:32:46 +0900 Fix an outdated notification message https://github.com/ruby/ruby/commit/0d7292ec734d49def118959d6a80588e7c0f7a39 commit 1c83469fc6e6bde8781e09ce2844231feed9b170 Author: st0012 AuthorDate: 2022-10-08 07:19:03 +0900 Commit: git[bot] CommitDate: 2022-10-18 06:14:50 +0900 [ruby/irb] Remove unnecessary coloring support check https://github.com/ruby/irb/commit/ddd7dbe2c5 commit f11765aef0cafb6fadf98216c94507f2390a0a70 Author: Takashi Kokubun AuthorDate: 2022-10-18 02:47:22 +0900 Commit: GitHub CommitDate: 2022-10-18 02:47:22 +0900 YJIT: Allow --yjit-dump-disasm to dump into a file (#6552) * YJIT: Allow --yjit-dump-disasm to dump into a file * YJIT: Move IO implementation to disasm.rs * YJIT: More consistent naming Notes: Merged-By: k0kubun commit 64c52c428285e7930aed62740cc9c54ee483178e Author: Takashi Kokubun AuthorDate: 2022-10-18 02:45:59 +0900 Commit: GitHub CommitDate: 2022-10-18 02:45:59 +0900 YJIT: Interleave inline and outlined code blocks (#6460) Co-authored-by: Alan Wu Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged-By: k0kubun commit e7c71c6c9271b0c29f210769159090e17128e740 Author: Takashi Kokubun AuthorDate: 2022-10-18 01:27:59 +0900 Commit: GitHub CommitDate: 2022-10-18 01:27:59 +0900 Make mjit_cont sharable with YJIT (#6556) * Make mjit_cont sharable with YJIT * Update dependencies * Update YJIT binding Notes: Merged-By: k0kubun commit 07a93b1e378bf2ea356b0561e5e89e60d30fc684 Author: Tatsuya Kawano AuthorDate: 2022-10-18 01:26:36 +0900 Commit: GitHub CommitDate: 2022-10-18 01:26:36 +0900 YJIT: Do not call `mprotect` when `mem_size` is zero (#6563) This allows x86_64 based YJIT to run on Docker Desktop on Apple silicon (arm64) Mac because it will avoid a subtle behavior difference in `mprotect` system call between the Linux kernel and `qemu-x86_64` user space emulator. Notes: Merged-By: maximecb commit ad3d210beab9d162b96e2601aa3ad896785b831b Author: Alan Wu AuthorDate: 2022-10-15 06:20:41 +0900 Commit: Alan Wu CommitDate: 2022-10-18 01:11:17 +0900 YJIT: call free_block to cleanup block when out of memory The commented out instance of free_block() is left over from the port. The addition in gen_single_block() was a place we missed. The new block is allocated in the same function and could have invariants associated with it even though there is no space to hold all the code. Notes: Merged: https://github.com/ruby/ruby/pull/6551 commit 60defe0a68a40d1b3225cf6b971ea195e19ae2e2 Author: Jean Boussier AuthorDate: 2022-10-06 22:53:16 +0900 Commit: Jean Boussier CommitDate: 2022-10-17 23:56:00 +0900 thread_sync.c: Clarify and document the behavior of timeout == 0 [Feature #18982] Instead of introducing an `exception: false` argument to have `non_block` return nil rather than raise, we can clearly document that a timeout of 0 immediately returns. The code is refactored a bit to avoid doing a time calculation in such case. Notes: Merged: https://github.com/ruby/ruby/pull/6500 commit 7db29de008bbf06ce1dc2a1e9fd9c9684b31e325 Author: Ben Toews AuthorDate: 2022-10-17 22:58:04 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 23:38:35 +0900 [ruby/openssl] add document-method for BN#mod_inverse https://github.com/ruby/openssl/commit/5befde7519 commit 149cb049f1d7f5fd2edf5ab467c33037ec993a47 Author: Ben Toews AuthorDate: 2022-10-17 22:31:40 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 23:38:34 +0900 [ruby/openssl] add BN#mod_sqrt https://github.com/ruby/openssl/commit/4619ab3e76 commit e037731c9f840b0c74eb68a808a109fdef3c6d5e Author: Ben Toews AuthorDate: 2022-10-17 22:30:30 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 23:38:34 +0900 [ruby/openssl] define BIGNUM_2cr macro for BN function that takes context and returns a BN https://github.com/ruby/openssl/commit/4d0971c51c commit 6166fa612cf798930863c7cca23dc96f46ab1c37 Author: Bart de Water <496367+bdewater@users.noreply.github.com> AuthorDate: 2022-10-08 20:53:57 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] Call out insecure PKCS #1 v1.5 default padding for RSA https://github.com/ruby/openssl/commit/fd5eaa6dfc commit aecc470a3354bbf61e5cd2e65f4aeb4f3825a9be Author: Samuel Williams AuthorDate: 2022-10-07 19:05:17 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] Use default `IO#timeout` if possible. https://github.com/ruby/openssl/commit/471340f612 commit 17998ad3bb5864db38ba9e709ed7209da6189f0f Author: Christophe De La Fuente AuthorDate: 2022-08-30 03:15:54 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] Add support to SSL_CTX_set_keylog_callback - This callback is invoked when TLS key material is generated or received, in order to allow applications to store this keying material for debugging purposes. - It is invoked with an `SSLSocket` and a string containing the key material in the format used by NSS for its SSLKEYLOGFILE debugging output. - This commit adds the Ruby binding `keylog_cb` and the related tests - It is only compatible with OpenSSL >= 1.1.1. Even if LibreSSL implements `SSL_CTX_set_keylog_callback()` from v3.4.2, it does nothing (see https://github.com/libressl-portable/openbsd/commit/648d39f0f035835d0653342d139883b9661e9cb6) https://github.com/ruby/openssl/commit/3b63232cf1 commit e4b1627983ca27afcae9a2c502915a747a9e1656 Author: Kazuki Yamaguchi AuthorDate: 2022-09-09 16:03:42 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] ssl: fix "warning: ‘ctx’ may be used uninitialized" The code was introduced by https://github.com/ruby/openssl/commit/65530b887e54 ("ssl: enable generating keying material from SSL sessions", 2022-08-03). This is harmless, but we should avoid it. https://github.com/ruby/openssl/commit/f5b82e814b commit 04bf83d6f7c9999ea82e472e09a42286026194f9 Author: Kazuki Yamaguchi AuthorDate: 2022-09-09 00:28:55 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] bump version number to 3.1.0.pre https://github.com/ruby/openssl/commit/fceb978a5d commit cd83f5b961dfb5401d601c3b08ff3db9f02a5793 Author: Kazuki Yamaguchi AuthorDate: 2022-09-08 18:34:26 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] Ruby/OpenSSL 3.0.1 https://github.com/ruby/openssl/commit/e5bbd015dc commit 15a966a674a0c6813131057ee1540f021071ad3c Author: Kazuki Yamaguchi AuthorDate: 2022-09-08 18:07:20 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] Ruby/OpenSSL 2.2.2 https://github.com/ruby/openssl/commit/de8a644bc4 commit 33d30a8675e926e7ad07ff2b135da0c819af33ca Author: Kazuki Yamaguchi AuthorDate: 2022-09-08 17:58:27 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] Ruby/OpenSSL 2.1.4 https://github.com/ruby/openssl/commit/5316241e61 commit b69d41e1c433f9109b7c9237cde6ed8b4884cc06 Author: Kazuki Yamaguchi AuthorDate: 2022-09-02 23:05:28 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] pkey/ec: check existence of public key component before exporting i2d_PUBKEY_bio() against an EC_KEY without the public key component trggers a null dereference. This is a regression introduced by commit https://github.com/ruby/openssl/commit/56f0d34d63fb ("pkey: refactor #export/#to_pem and #to_der", 2017-06-14). Fixes https://github.com/ruby/openssl/pull/527#issuecomment-1220504524 Fixes https://github.com/ruby/openssl/issues/369#issuecomment-1221554057 https://github.com/ruby/openssl/commit/f6ee0fa4de commit 0677b2fb87fa4bdff64e650e5df0fd7bf684bd2e Author: Kazuki Yamaguchi AuthorDate: 2022-09-02 22:40:54 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] pkey: restore support for decoding "openssl ecparam -genkey" output Scan through the input for a private key, then fallback to generic decoder. OpenSSL 3.0's OSSL_DECODER supports encoded key parameters. The PEM header "-----BEGIN EC PARAMETERS-----" is used by one of such encoding formats. While this is useful for OpenSSL::PKey::PKey, an edge case has been discovered. The openssl CLI command line "openssl ecparam -genkey" prints two PEM blocks in a row, one for EC parameters and another for the private key. Feeding the whole output into OSSL_DECODER results in only the first PEM block, the key parameters, being decoded. Previously, ruby/openssl did not support decoding key parameters and it would decode the private key PEM block instead. While the new behavior is technically correct, "openssl ecparam -genkey" is so widely used that ruby/openssl does not want to break existing applications. Fixes https://github.com/ruby/openssl/pull/535 https://github.com/ruby/openssl/commit/d486c82833 commit 4fb2845c7b71d94f01a224020e4eb91c99f99d66 Author: Kazuki Yamaguchi AuthorDate: 2022-09-02 18:14:57 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] pkey: clear error queue before each OSSL_DECODER_from_bio() call Fix potential error queue leak. https://github.com/ruby/openssl/commit/3992b6f208 commit 10f93a8bd787658996f08b13a0e564eaf3f41489 Author: Kazuki Yamaguchi AuthorDate: 2022-01-04 22:11:00 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] pkey/dsa: let PKey::DSA.generate choose appropriate q size DSA parameters generation via EVP_PKEY_paramgen() will not automatically adjust the size of q value but uses 224 bits by default unless specified explicitly. This behavior is different from the now-deprecated DSA_generate_parameters_ex(), which PKey::DSA.generate used to call. Fixes https://github.com/ruby/openssl/issues/483 Fixes: https://github.com/ruby/openssl/commit/1800a8d5ebaf ("pkey/dsa: use high level EVP interface to generate parameters and keys", 2020-05-17) https://github.com/ruby/openssl/commit/0105975a0b commit 65bba0ef6fa104324d34079f107f9c72ed8d0e2f Author: Kazuki Yamaguchi AuthorDate: 2022-09-01 15:59:52 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] hmac: use EVP_PKEY_new_raw_private_key() if available Current OpenSSL 3.0.x release has a regression with zero-length MAC keys. While this issue should be fixed in a future release of OpenSSL, we can use EVP_PKEY_new_raw_private_key() in place of the problematic EVP_PKEY_new_mac_key() to avoid the issue. OpenSSL 3.0's man page recommends using it regardless: > EVP_PKEY_new_mac_key() works in the same way as > EVP_PKEY_new_raw_private_key(). New applications should use > EVP_PKEY_new_raw_private_key() instead. Fixes https://github.com/ruby/openssl/issues/369#issuecomment-1224912710 https://github.com/ruby/openssl/commit/4293f18b1f commit bee383d9fe84eb29ec12a8c392fcbf7c646575b8 Author: Kazuki Yamaguchi AuthorDate: 2022-09-02 13:55:19 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] x509*: fix error queue leak in #extensions= and #attributes= methods X509at_delete_attr() in OpenSSL master puts an error queue entry if there is no attribute left to delete. We must either clear the error queue, or try not to call it when the list is already empty. https://github.com/ruby/openssl/commit/a0c878481f commit 79543b9a530d85f0487583d96ad412f5e7683ffa Author: madblobfish <-> AuthorDate: 2022-08-04 06:24:28 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] ssl: enable generating keying material from SSL sessions Add OpenSSL::SSL::SSLSocket#export_keying_material to support RFC 5705 https://github.com/ruby/openssl/commit/65530b887e commit a98096349ec7280edabf3822d2c6932ac6e63634 Author: Nobuhiro IMAI AuthorDate: 2022-08-05 18:42:06 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] Check if the option is an Hash in `pkey_ctx_apply_options0()` causes SEGV if it is an Array or something like that. https://github.com/ruby/openssl/commit/ef23525210 commit c865e8d161f40c6e9cce411c92e313a91b14124e Author: MSP-Greg AuthorDate: 2022-07-26 11:43:47 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] [CI] TestHMAC#test_dup - remove 'pend' for OpenSSL 3 https://github.com/ruby/openssl/commit/626b0434a6 commit 5dae78b9d36be7e2adfb5f9cad78bb10d641e40a Author: Alan Wu AuthorDate: 2022-07-12 05:55:39 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:35 +0900 [ruby/openssl] Pass arguments to check macro presence X509_STORE_get_ex_new_index() is a macro, so passing just its name to have_func() doesn't detect it. Pass an example call instead. https://github.com/ruby/openssl/commit/8d264d3e60 Co-authored-by: Nobuyoshi Nakada commit a211b32180b1ab0532f6978c32e907fe1c0c218a Author: Alan Wu AuthorDate: 2022-06-27 10:34:42 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:35:33 +0900 [ruby/openssl] Check for OpenSSL functions in headers While building with a custom build of OpenSSL, I noticed in mkmf.log that all the feature detection checks are done using a program lacking an OpenSSL header include. `mkmf` retries using a fallback program when this fails, but that means all the `have_func` calls compile twice when compiling once should suffice. Example log without this commit: have_func: checking for X509_STORE_CTX_get0_cert()... -------------------- yes DYLD_FALLBACK_LIBRARY_PATH=.:../.. "clang -o conftest ... conftest.c:14:57: error: use of undeclared identifier 'X509_STORE_CTX_get0_cert' int t(void) { void ((*volatile p)()); p = (void ((*)()))X509_STORE_CTX_get0_cert; return !p; } ^ 1 error generated. checked program was: /* begin */ 1: #include "ruby.h" 2: 3: /*top*/ 4: extern int t(void); 5: int main(int argc, char **argv) 6: { 7: if (argc > 1000000) { 8: int (* volatile tp)(void)=(int (*)(void))&t; 9: printf("%d", (*tp)()); 10: } 11: 12: return !!argv[argc]; 13: } 14: int t(void) { void ((*volatile p)()); p = (void ((*)()))X509_STORE_CTX_get0_cert; return !p; } /* end */ DYLD_FALLBACK_LIBRARY_PATH=.:../.. "clang -o conftest ... checked program was: /* begin */ 1: #include "ruby.h" 2: 3: /*top*/ 4: extern int t(void); 5: int main(int argc, char **argv) 6: { 7: if (argc > 1000000) { 8: int (* volatile tp)(void)=(int (*)(void))&t; 9: printf("%d", (*tp)()); 10: } 11: 12: return !!argv[argc]; 13: } 14: extern void X509_STORE_CTX_get0_cert(); 15: int t(void) { X509_STORE_CTX_get0_cert(); return 0; } /* end */ The second compilation succeeds. Specify the header for each checked function. https://github.com/ruby/openssl/commit/34ae7d92d0 commit 63234edf6791e787f8ea4d439df431dcc2f0f527 Author: Kazuki Yamaguchi AuthorDate: 2022-10-17 16:17:27 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-10-17 16:25:51 +0900 openssl: use the old rb_ary_tmp_new() alias openssl has to support older versions of Ruby. Undo the change in ext/openssl/ossl_pkey_ec.c by commit efb91ff19b73 ("Rename rb_ary_tmp_new to rb_ary_hidden_new", 2022-07-25). commit b7de04d161726fbb277eaa95fb0d658dbb6a9536 Author: Takashi Kokubun AuthorDate: 2022-10-17 14:47:49 +0900 Commit: Takashi Kokubun CommitDate: 2022-10-17 14:47:49 +0900 Disable dependabot for auto-request-review for now because you have to manually update the version tag comment. It feels unsafe to trust third party git tags when you need to pass MATZBOT_GITHUB_TOKEN to it. Git commit sha alone isn't human-readable and I'm reluctant to remove the comment either. It doesn't seem worth the effort to review changes for every release of this action. commit fb6a9656a114cc9246b657cb4fa63313ef266fe0 Author: Takashi Kokubun AuthorDate: 2022-10-17 14:44:15 +0900 Commit: Takashi Kokubun CommitDate: 2022-10-17 14:44:15 +0900 Do not run CodeQL on dependabot PRs commit 0d7292ec734d49def118959d6a80588e7c0f7a39 Author: Takashi Kokubun AuthorDate: 2022-10-17 14:02:47 +0900 Commit: GitHub CommitDate: 2022-10-17 14:02:47 +0900 Leave only the oldest Visual Studio in AppVeyor (#6561) Notes: Merged-By: k0kubun commit 7cf37a57221c085aaf29e260060ea0e709af1e93 Author: Nobuyoshi Nakada AuthorDate: 2022-10-17 12:00:39 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-17 12:02:34 +0900 [DOC] Add the polar form in String#to_c commit e4191ac1ec7940b37bfeaf09c000cf46d2db5200 Author: yui-knk AuthorDate: 2022-10-16 21:40:42 +0900 Commit: yui-knk CommitDate: 2022-10-17 11:30:07 +0900 Change a tab to spaces Notes: Merged: https://github.com/ruby/ruby/pull/6570 commit 15488fc1c6f66d2ebb7410c48d76e9588921db63 Author: Nobuyoshi Nakada AuthorDate: 2022-10-16 18:04:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-16 18:22:20 +0900 Update bundled gems list at 2022-10-16 commit f0654b1027d2f24cbb6e3cfb0c5946b70f06739b Author: Aaron Patterson AuthorDate: 2022-10-16 01:37:44 +0900 Commit: Aaron Patterson CommitDate: 2022-10-16 02:44:10 +0900 More precisely iterate over Object instance variables Shapes provides us with an (almost) exact count of instance variables. We only need to check for Qundef when an IV has been "undefined" Prefer to use ROBJECT_IV_COUNT when iterating IVs Notes: Merged: https://github.com/ruby/ruby/pull/6555 commit 8d20632df849833d8a98f3d6f5e61f32eefa0fa6 Author: Burdette Lamar AuthorDate: 2022-10-16 00:53:08 +0900 Commit: GitHub CommitDate: 2022-10-16 00:53:08 +0900 [DOC] Packed data (#6520) New page for packed data Notes: Merged-By: BurdetteLamar commit d56301c00afff7115e01f54d57e464d26b8d1177 Author: Nobuyoshi Nakada AuthorDate: 2022-10-15 23:55:25 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-16 00:34:59 +0900 No longer download zlib source Although zlib package in vcpkg is still 1.2.12, it should be no problem in ruby tests. commit 1e3fa634f7c90bc5eab5bc7280b673333070ca84 Author: Nobuyoshi Nakada AuthorDate: 2022-10-16 00:20:58 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-16 00:26:51 +0900 Explicitly cast to uint32_t and suppress warnings by VC ``` ../src/variable.c(1440): warning C4244: 'initializing': conversion from 'double' to 'uint32_t', possible loss of data 242 ../src/variable.c(1470): warning C4244: 'initializing': conversion from 'double' to 'uint32_t', possible loss of data 243 ``` TODO: check for `newsize` overflow commit 7fcad1fa03c21b9a9916a12b816ec886a5b68920 Author: Samuel Williams AuthorDate: 2022-10-15 17:43:45 +0900 Commit: GitHub CommitDate: 2022-10-15 17:43:45 +0900 Update `Fiber::Scheduler` documentation. (#6562) Notes: Merged-By: ioquatix commit 52fcb3a72446189448e96a465d8c91c469ac0ed2 Author: Samuel Williams AuthorDate: 2022-10-15 16:04:58 +0900 Commit: GitHub CommitDate: 2022-10-15 16:04:58 +0900 Add missing `#close` call to `test_dup_timeout` test. (#6560) Notes: Merged-By: ioquatix commit 8a420670a29a7c78c7201f678eb26528621bf39f Author: Samuel Williams AuthorDate: 2022-10-15 15:59:04 +0900 Commit: GitHub CommitDate: 2022-10-15 15:59:04 +0900 Introduce `Fiber::Scheduler#io_select` hook for non-blocking `IO.select`. (#6559) Notes: Merged-By: ioquatix commit 1acc1a5c6d5d01b2822d7aa4356208095481724b Author: Aaron Patterson AuthorDate: 2022-10-15 08:11:37 +0900 Commit: Aaron Patterson CommitDate: 2022-10-15 09:14:41 +0900 YJIT doesn't need rb_obj_ensure_iv_index_mapping We should make this function static and remove it from YJIT bindings. Notes: Merged: https://github.com/ruby/ruby/pull/6553 commit 53e0e5e8df8648e23278e4811e634671de9e1af1 Author: Takashi Kokubun AuthorDate: 2022-10-15 04:45:00 +0900 Commit: GitHub CommitDate: 2022-10-15 04:45:00 +0900 YJIT: Avoid creating payloads for non-JITed ISEQs (#6549) * YJIT: Count freed ISEQs * YJIT: Avoid creating payloads for non-JITed ISEQs Notes: Merged-By: k0kubun commit cbd3d655745564e3c33a29a5625ac30b4d69fb29 Author: Aaron Patterson AuthorDate: 2022-10-15 03:59:31 +0900 Commit: Aaron Patterson CommitDate: 2022-10-15 04:01:42 +0900 Add a test for transition order We only cache the destination shape id, but that can lead to false cache hits. This patch tests that we correctly handle false cache hits commit 9a5684bf7f92ae71a55ede82ec18c31c161694ec Author: Jemma Issroff AuthorDate: 2022-10-05 04:27:13 +0900 Commit: John Hawthorn CommitDate: 2022-10-15 03:59:36 +0900 Add test for ractor race condition on ivar sets Notes: Merged: https://github.com/ruby/ruby/pull/6490 commit fb99227ca1ee9d8540d251c8b61c3e6433211714 Author: Jimmy Miller AuthorDate: 2022-10-15 02:04:53 +0900 Commit: GitHub CommitDate: 2022-10-15 02:04:53 +0900 More clippy fixes (#6547) Notes: Merged-By: maximecb commit 7e81dd94073d699f6f0c930072cd43e5e387784e Author: Eileen M. Uchitelle AuthorDate: 2022-10-15 01:43:18 +0900 Commit: GitHub CommitDate: 2022-10-15 01:43:18 +0900 Update yjit docs (#6548) * The list of supported architectures was updated in https://github.com/ruby/ruby/commit/5ef048e5b1c3dd61adf782ace570bb0a1f9bb12f but the first paragraph wasn't updated. * `--yjit-trace-exits` was missing from the command-line options * Fixes some spacing issues * Updates call threshold default to 10, verified in the code that's correct. * Add code ticks around method names. * Fix namespace of stats example Notes: Merged-By: k0kubun commit 7e24ebc649b9b12e5fc704d7fc7563aeaf589e03 Author: Takashi Kokubun AuthorDate: 2022-10-15 01:16:21 +0900 Commit: GitHub CommitDate: 2022-10-15 01:16:21 +0900 Disable msystem: MINGW64 job on GitHub Actions (#6545) Notes: Merged-By: k0kubun commit ee6cc2502664ac46edc61868d8954b626bb48e53 Author: Nobuyoshi Nakada AuthorDate: 2022-10-15 01:03:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-15 01:03:47 +0900 Remove wrong dollar commit 60610031009e60bdfe5775b0316df251ee36a973 Author: Jonathan Hefner AuthorDate: 2022-10-12 02:02:15 +0900 Commit: git[bot] CommitDate: 2022-10-15 00:08:44 +0900 [ruby/delegate] Fix DelegateClass block "method redefined" warning This commit prevents "method redefined" warnings when overriding methods within a `DelegateClass` block, such as in the following example: ```ruby Base = Class.new do def foo "foo" end end Overridden = DelegateClass(Base) do def foo super + "!" end end ``` Fixes https://bugs.ruby-lang.org/issues/19047. https://github.com/ruby/delegate/commit/214fae86de commit d4162053410782a449e0921ee7222e7ce3deca6f Author: Samuel Williams AuthorDate: 2022-10-14 21:45:51 +0900 Commit: GitHub CommitDate: 2022-10-14 21:45:51 +0900 Copy `IO#timeout` on `IO#dup`. (#6546) Notes: Merged-By: ioquatix commit 7b7e5153e81288fe57ae64f2e1db228435156aeb Author: manga_osyo AuthorDate: 2022-10-10 12:30:35 +0900 Commit: git[bot] CommitDate: 2022-10-14 21:31:24 +0900 [ruby/pp] [Feature #19045] Add support Data#pretty_print https://github.com/ruby/pp/commit/343a20d721 commit 5ccb625fbbd1e774636a9fdbe0bf1c3d38e085d5 Author: Nobuyoshi Nakada AuthorDate: 2022-10-04 18:10:41 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-14 19:23:25 +0900 Use `roomof` macro for rounding up divisions commit ee8bcbf40578c0c4e60063a3e0c86439a6891131 Author: S-H-GAMELINKS AuthorDate: 2022-10-13 00:09:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-14 18:31:15 +0900 Reuse ins_methods_type_i function Notes: Merged: https://github.com/ruby/ruby/pull/6534 commit 5e554d30ba747ad1b59335efaa63c7e3c94bfad0 Author: Takashi Kokubun AuthorDate: 2022-10-14 08:28:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-10-14 08:29:06 +0900 Upgrade zlib_version on AppVeyor They removed https://zlib.net/zlib1212.zip because https://zlib.net/zlib1213.zip was released :thinking_face: Fix CI failures like: https://ci.appveyor.com/project/ruby/ruby/builds/45064876/job/bb9biogolh0u2595 commit 3c0b4ef1a2a972d5b0b723b82538fc8f40d85f32 Author: Jimmy Miller AuthorDate: 2022-10-14 07:20:04 +0900 Commit: GitHub CommitDate: 2022-10-14 07:20:04 +0900 fixes more clippy warnings (#6543) * fixes more clippy warnings * Fix x86 c_callable to have doc_strings Notes: Merged-By: maximecb commit 93a87f4963703a709bf974c48f76a5503f31f53f Author: Jimmy Miller AuthorDate: 2022-10-14 07:17:13 +0900 Commit: GitHub CommitDate: 2022-10-14 07:17:13 +0900 Make op_ext an optional for code clarity (#6542) Notes: Merged-By: maximecb commit e5058b58c22e19d559b1122d94af5af3931aa416 Author: Aaron Patterson AuthorDate: 2022-10-13 06:37:02 +0900 Commit: Aaron Patterson CommitDate: 2022-10-14 05:11:01 +0900 Only expose Ruby Shape API if VM_CHECK_MODE is enabled commit 1b0c9d0e3d6dc3630072dc16c143e0d79886b7a0 Author: Alan Wu AuthorDate: 2022-10-13 05:19:55 +0900 Commit: Alan Wu CommitDate: 2022-10-14 03:29:42 +0900 YJIT: No need to fill to get UDF on ARM64 On ARM64, all zeros is already undefined, so we don't need to do extra work to fill new memory with undefined instructions. Notes: Merged: https://github.com/ruby/ruby/pull/6536 commit 2cc3963a00868ef6ff84a8b3bccca778592b3c2d Author: Yusuke Endoh AuthorDate: 2022-10-13 19:23:46 +0900 Commit: Aaron Patterson CommitDate: 2022-10-14 00:14:04 +0900 Prevent wrong integer expansion `(attr_index + 1)` leads to wrong integer expansion on 32-bit machines (including Solaris 10 CI) because `attr_index_t` is uint16_t. http://rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20221013T080004Z.fail.html.gz ``` 1) Failure: TestRDocClassModule#test_marshal_load_version_2 [/export/home/users/chkbuild/cb-gcc/tmp/build/20221013T080004Z/ruby/test/rdoc/test_rdoc_class_module.rb:493]: <[doc: [doc (file.rb): [para: "this is a comment"]]]> expected but was <[doc: [doc (file.rb): [para: "this is a comment"]]]>. 2) Failure: TestRDocStats#test_report_method_line [/export/home/users/chkbuild/cb-gcc/tmp/build/20221013T080004Z/ruby/test/rdoc/test_rdoc_stats.rb:460]: Expected /\#\ in\ file\ file\.rb:4/ to match "The following items are not documented:\n" + "\n" + " class C # is documented\n" + "\n" + " # in file file.rb\n" + " def m1; end\n" + "\n" + " end\n" + "\n" + "\n". 3) Failure: TestRDocStats#test_report_attr_line [/export/home/users/chkbuild/cb-gcc/tmp/build/20221013T080004Z/ruby/test/rdoc/test_rdoc_stats.rb:91]: Expected /\#\ in\ file\ file\.rb:3/ to match "The following items are not documented:\n" + "\n" + " class C # is documented\n" + "\n" + " attr_accessor :a # in file file.rb\n" + "\n" + " end\n" + "\n" + "\n". ``` Notes: Merged: https://github.com/ruby/ruby/pull/6541 commit 4b1504ae0a5118153f8b47d7bd0fff7e61553d17 Author: Nobuyoshi Nakada AuthorDate: 2022-10-13 16:24:47 +0900 Commit: git[bot] CommitDate: 2022-10-13 16:24:53 +0900 [ruby/uri] Fix splitting relative URI https://github.com/ruby/uri/commit/ffbab83de6 commit 765ee822b54026e6cafa107d93475c2883e2bad8 Author: Samuel Williams AuthorDate: 2022-10-13 15:04:06 +0900 Commit: GitHub CommitDate: 2022-10-13 15:04:06 +0900 Add missing `f.resume` to fiber test. (#6539) Notes: Merged-By: ioquatix commit b734832883e3644af2527bd463de220a0b5794bc Author: Hiroshi SHIBATA AuthorDate: 2022-10-13 13:42:22 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-13 13:42:22 +0900 Skip utime example with Intel C Compiler suite commit 1cda4146224e857f6258241bbb30d9358ce2d6c7 Author: Hiroshi SHIBATA AuthorDate: 2022-10-13 11:41:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-13 12:32:02 +0900 Raise ArgumentError with empty host url again. Fixup dd5118f8524c425894d4716b787837ad7380bb0d Co-authored-by: Koichi Sasada Notes: Merged: https://github.com/ruby/ruby/pull/6538 commit dd5118f8524c425894d4716b787837ad7380bb0d Author: NARUSE, Yui AuthorDate: 2019-01-13 08:58:00 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-13 11:04:06 +0900 URI.parse should set empty string in host instead of nil commit 166140aa289e6edfd9b023b87c9e6d4434bb29bc Author: Takashi Kokubun AuthorDate: 2022-10-13 04:50:50 +0900 Commit: GitHub CommitDate: 2022-10-13 04:50:50 +0900 YJIT: Set RUST_BACKTRACE=1 in every Cirrus script (#6526) * YJIT: Set RUST_BACKTRACE=1 in every Cirrus script * YJIT: Print $CIRRUS_ENV correctly It looks like $CIRRUS_ENV is cleaned up at every script. Notes: Merged-By: maximecb commit 107531583c8e8b2d706a6a27f46d429e387efff7 Author: Aaron Patterson AuthorDate: 2022-10-13 00:54:02 +0900 Commit: Aaron Patterson CommitDate: 2022-10-13 01:56:11 +0900 Unwrap shape id as unsigned int Shape IDs are unsigned. This commit unwraps the shape id as an unsigned int, which will automatically raise an argument error and also eliminate a compilation warning. Notes: Merged: https://github.com/ruby/ruby/pull/6535 commit b55e3b842a8cf4349914b05cebf00ab53024ae69 Author: Nobuyoshi Nakada AuthorDate: 2022-10-12 19:38:29 +0900 Commit: Aaron Patterson CommitDate: 2022-10-13 01:14:55 +0900 Initialize shape attr index also in non-markable CC Notes: Merged: https://github.com/ruby/ruby/pull/6532 commit 80da7250c5d7c862e3c1e1431683a1f1211a4d9c Author: Nobuyoshi Nakada AuthorDate: 2022-10-12 22:03:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-12 22:24:53 +0900 file2lastrev.rb: Refactor VCS directory search Search VCS directory after other options are in effective, i.e., `--srcdir=nonexitent --suppress_not_found` options, as well as the reverse order case, should print the current date only and exit successfully. commit 504e388525ca7a1eeac64d08731f036b2ffc7b07 Author: Yusuke Endoh AuthorDate: 2022-10-12 21:51:23 +0900 Commit: Yusuke Endoh CommitDate: 2022-10-12 21:51:23 +0900 Suppress a "warning: method redefined" in test/ruby/test_method.rb commit 9cfc45d6e52cf4ffde0375f8d3f2271c36e9e91c Author: Yusuke Endoh AuthorDate: 2022-10-12 21:48:28 +0900 Commit: Yusuke Endoh CommitDate: 2022-10-12 21:48:28 +0900 Suppress warnings in test/ruby/test_ast.rb The tests for error tolerance printed some warnings. This change suppresses them. commit 7a9f865a1d855109c7990b5fee21f92cc951ce60 Author: Yusuke Endoh AuthorDate: 2022-10-12 19:02:11 +0900 Commit: Yusuke Endoh CommitDate: 2022-10-12 20:28:24 +0900 Do not read cached_id from callcache on stack The inline cache is initialized by vm_cc_attr_index_set only when vm_cc_markable(cc). However, vm_getivar attempted to read the cache even if the cc is not vm_cc_markable. This caused a condition that depends on uninitialized value. Here is an output of valgrind: ``` ==10483== Conditional jump or move depends on uninitialised value(s) ==10483== at 0x4C1D60: vm_getivar (vm_insnhelper.c:1171) ==10483== by 0x4C1D60: vm_call_ivar (vm_insnhelper.c:3257) ==10483== by 0x4E8E48: vm_call_symbol (vm_insnhelper.c:3481) ==10483== by 0x4EAD8C: vm_sendish (vm_insnhelper.c:5035) ==10483== by 0x4C62B2: vm_exec_core (insns.def:820) ==10483== by 0x4DD519: rb_vm_exec (vm.c:0) ==10483== by 0x4F00B3: invoke_block (vm.c:1417) ==10483== by 0x4F00B3: invoke_iseq_block_from_c (vm.c:1473) ==10483== by 0x4F00B3: invoke_block_from_c_bh (vm.c:1491) ==10483== by 0x4D42B6: rb_yield (vm_eval.c:0) ==10483== by 0x259128: rb_ary_each (array.c:2733) ==10483== by 0x4E8730: vm_call_cfunc_with_frame (vm_insnhelper.c:3227) ==10483== by 0x4EAD8C: vm_sendish (vm_insnhelper.c:5035) ==10483== by 0x4C6254: vm_exec_core (insns.def:801) ==10483== by 0x4DD519: rb_vm_exec (vm.c:0) ==10483== ``` In fact, the CI on FreeBSD 12 started failing since ad63b668e22e21c352b852f3119ae98a7acf99f1. ``` gmake[1]: Entering directory '/usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby' /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:924:in `complete': undefined method `complete' for nil:NilClass (NoMethodError) from /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:1816:in `block in visit' from /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:1815:in `reverse_each' from /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:1815:in `visit' from /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:1847:in `block in complete' from /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:1846:in `catch' from /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:1846:in `complete' from /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:1640:in `block in parse_in_order' from /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:1632:in `catch' from /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:1632:in `parse_in_order' from /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:1626:in `order!' from /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:1732:in `permute!' from /usr/home/chkbuild/chkbuild/tmp/build/20221011T163003Z/ruby/lib/optparse.rb:1757:in `parse!' from ./ext/extmk.rb:359:in `parse_args' from ./ext/extmk.rb:396:in `
' ``` This change adds a guard to read the cache only when vm_cc_markable(cc). It might be better to initialize the cache as INVALID_SHAPE_ID when the cc is not vm_cc_markable. Notes: Merged: https://github.com/ruby/ruby/pull/6530 commit 66a650ec41a583ec58003737b23b42ec8f069920 Author: Nobuyoshi Nakada AuthorDate: 2022-10-12 20:17:46 +0900 Commit: git[bot] CommitDate: 2022-10-12 20:24:38 +0900 [ruby/psych] Fix missing `abort` call https://github.com/ruby/psych/commit/de2b98c7b7 Co-authored-by: Olle Jonsson commit ed01bacf2778a5e3bd813ded5f01d7ccc85b289d Author: Nobuyoshi Nakada AuthorDate: 2022-10-12 19:53:40 +0900 Commit: git[bot] CommitDate: 2022-10-12 20:24:37 +0900 [ruby/psych] Abandon when libyaml is not found https://github.com/ruby/psych/commit/0b89eda398 commit 0360fca4ad9cfcffbcc5e5a016308563267a5fcb Author: Nobuyoshi Nakada AuthorDate: 2022-10-12 13:30:25 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-12 13:30:25 +0900 [DOC] Replace the external URIs to docs with rdoc-ref commit b57ecc3eb88db40517f43ed44c007e2ddf5a8b2f Author: Nobuyoshi Nakada AuthorDate: 2022-10-12 13:24:53 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-12 13:24:53 +0900 sync_default_gems: Replace the URIs to be redirected The reference generated by using RDoc without the proper `--page-dir` option (or `.rdoc_options`) file may contain `/doc/`. Since these URIs are redirected by the server now, replace such URIs with the corresponding rdoc-refs too. commit 3539da64fc42d6eb76f1d4c3ccd219c3259ecd8b Author: Nobuyoshi Nakada AuthorDate: 2022-10-12 11:54:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-12 12:27:40 +0900 [DOC] Replace the external URIs to docs with rdoc-ref commit 2b5d4fe28dc548f782be8d71de8b472000e6b38e Author: Nobuyoshi Nakada AuthorDate: 2022-10-12 11:52:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-12 12:27:40 +0900 sync_default_gems: Add rdoc-ref command to test commit df588440ee01e91d87cb815ff85dd6c785dc7827 Author: Nobuyoshi Nakada AuthorDate: 2022-10-12 11:50:25 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-12 12:27:40 +0900 sync_default_gems: Replace the external URIs to docs with rdoc-ref commit c67e49688642b5a650f53765dd11c1202d1ea57f Author: Nobuyoshi Nakada AuthorDate: 2022-10-12 11:38:44 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-12 12:27:40 +0900 sync_default_gems: Should match with the beginning of the strings `git status -z` result is NUL-separated, and can contain newline characters. commit 04d291a490517eb32ea02df636fc8f1f1ed57873 Author: Samuel Williams AuthorDate: 2022-10-12 11:56:35 +0900 Commit: GitHub CommitDate: 2022-10-12 11:56:35 +0900 Simplify implementation of scheduler `io_read` and `io_write`. (#6527) Notes: Merged-By: ioquatix commit 4e29ca0c4093133838eda852879b23ed4fad56b5 Author: Kazuki Yamaguchi AuthorDate: 2022-10-08 01:54:35 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-12 10:36:51 +0900 Add :ssl_min_version and :ssl_max_version options Replace :ssl_version option with these two new options. These provide access to OpenSSL::SSL::SSLContext#{min,max}_version=, which is the recommended way to specify SSL/TLS protocol versions. commit ced1d172804b6dfe39aa31a323ffab80a25223b9 Author: Samuel Williams AuthorDate: 2022-10-12 08:59:05 +0900 Commit: GitHub CommitDate: 2022-10-12 08:59:05 +0900 Improvements to IO::Buffer implementation and documentation. (#6525) Notes: Merged-By: ioquatix commit 467992ee35b59577ddb53f1323b19af3f3e3d134 Author: Jimmy Miller AuthorDate: 2022-10-12 05:37:05 +0900 Commit: GitHub CommitDate: 2022-10-12 05:37:05 +0900 Implement optimize send in yjit (#6488) * Implement optimize send in yjit This successfully makes all our benchmarks exit way less for optimize send reasons. It makes some benchmarks faster, but not by as much as I'd like. I think this implementation works, but there are definitely more optimial arrangements. For example, what if we compiled send to a jump table? That seems like perhaps the most optimal we could do, but not obvious (to me) how to implement give our current setup. Co-authored-by: Alan Wu * Attempt at fixing the issues raised by @XrXr * fix allowlist * returns 0 instead of nil when not found * remove comment about encoding exception * Fix up c changes * Update assert Co-authored-by: Alan Wu * get rid of unneeded code and fix the flags * Apply suggestions from code review Co-authored-by: Alan Wu * rename and fix typo Co-authored-by: Alan Wu Notes: Merged-By: maximecb commit 913979bede2a1b79109fa2072352882560d55fe0 Author: Jemma Issroff AuthorDate: 2022-10-04 02:52:40 +0900 Commit: Aaron Patterson CommitDate: 2022-10-12 00:40:56 +0900 Make inline cache reads / writes atomic with object shapes Prior to this commit, we were reading and writing ivar index and shape ID in inline caches in two separate instructions when getting and setting ivars. This meant there was a race condition with ractors and these caches where one ractor could change a value in the cache while another was still reading from it. This commit instead reads and writes shape ID and ivar index to inline caches atomically so there is no longer a race condition. Co-Authored-By: Aaron Patterson Co-Authored-By: John Hawthorn commit ad63b668e22e21c352b852f3119ae98a7acf99f1 Author: Jemma Issroff AuthorDate: 2022-10-04 00:14:32 +0900 Commit: Aaron Patterson CommitDate: 2022-10-12 00:40:56 +0900 Revert "Revert "This commit implements the Object Shapes technique in CRuby."" This reverts commit 9a6803c90b817f70389cae10d60b50ad752da48f. commit 1a66d42fca86b1d47f91cf9de1443c72785fe222 Author: Nobuyoshi Nakada AuthorDate: 2022-10-11 16:25:09 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-11 16:25:09 +0900 [DOC] use the local rdoc reference than the external URI commit 1dd774f53ac0043692bf0673df866ef419d8a987 Author: Nobuyoshi Nakada AuthorDate: 2022-10-11 09:32:35 +0900 Commit: git[bot] CommitDate: 2022-10-11 10:44:42 +0900 [ruby/open-uri] Remove unused files from the packages https://github.com/ruby/open-uri/commit/b2d9efbaf8 commit 1bafa4a59b296e6ca80e32755fc84b76c3c575e5 Author: Samuel Williams AuthorDate: 2022-10-11 06:18:20 +0900 Commit: GitHub CommitDate: 2022-10-11 06:18:20 +0900 Ignore failure to set nonblock mode. (#6524) Notes: Merged-By: ioquatix commit 1a7e7bb2d1dd507a6fdf883548633bdd14bf6854 Author: Jean Boussier AuthorDate: 2022-10-07 21:44:13 +0900 Commit: Jean Boussier CommitDate: 2022-10-10 18:35:16 +0900 object.c: rb_eql returns int not VALUE It works, but assumes `Qfalse == 0`, which is true today but might not be forever. Notes: Merged: https://github.com/ruby/ruby/pull/6508 commit f1c89c81478d3520fec6b34ec2d411a1e85b7769 Author: S.H AuthorDate: 2022-10-10 13:52:25 +0900 Commit: GitHub CommitDate: 2022-10-10 13:52:25 +0900 Reuse `with_warning_string_from` macro Notes: Merged: https://github.com/ruby/ruby/pull/6471 Merged-By: nobu commit 6c5a8c20439ea8932863627e477f18a7e77cf47e Author: Nobuyoshi Nakada AuthorDate: 2022-10-10 11:43:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-10 13:41:46 +0900 Ignore excessive precisions On filesystems where have precisions more than microseconds, even when the whole fractional part is not zero, the microsecond can be zero in about 1/1,000,000 probabilities. Notes: Merged: https://github.com/ruby/ruby/pull/6522 commit 0a98dd1cffe09c2c17e60e1a1c75bad7e4337002 Author: Nobuyoshi Nakada AuthorDate: 2022-10-10 13:21:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-10 13:21:57 +0900 Should use dedecated function `Check_Type` commit 4954c9fc0f9d06aa4e3e8deb33b41f3fae294adc Author: Vladimir Dementyev AuthorDate: 2022-08-06 09:13:09 +0900 Commit: Kazuki Tsujimoto CommitDate: 2022-10-10 12:41:13 +0900 Add MatchData#deconstruct/deconstruct_keys Notes: Merged: https://github.com/ruby/ruby/pull/6216 commit 546566d34b37fb5a028bcbe6bafa8248877f06ca Author: Nobuyoshi Nakada AuthorDate: 2022-10-09 17:43:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-09 19:07:21 +0900 Do not set `$!` to `SyntaxError` when error tolerant Notes: Merged: https://github.com/ruby/ruby/pull/6517 commit d9e2ef6000a7a7621e110a7092f09e273eb81fcb Author: Nobuyoshi Nakada AuthorDate: 2022-10-09 18:01:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-09 19:05:31 +0900 Extract `assert_error_tolerant` Notes: Merged: https://github.com/ruby/ruby/pull/6519 commit f178ff39334ac2fb33de0d6c3e6ec8fb7714e8da Author: Nobuyoshi Nakada AuthorDate: 2022-10-09 16:08:09 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-09 16:27:34 +0900 Allow abbreviated dump options with additional options Notes: Merged: https://github.com/ruby/ruby/pull/6518 commit 43f692248e93a3a43f07f9f1e9b5c4659d65c88a Author: Nobuyoshi Nakada AuthorDate: 2022-10-09 16:23:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-09 16:26:18 +0900 Set AST prettyprint width to 80 explicitly `PrettyPrint` results depend on the `COLUMNS` environment variable by default. commit 561b6c4fa00bc4645aa083eb42356aa1289eed70 Author: yui-knk AuthorDate: 2022-10-09 11:01:04 +0900 Commit: yui-knk CommitDate: 2022-10-09 14:00:52 +0900 Remove unused macro NEW_PREEXE has not been used since 52a5f76e8b1ab02ee6e259a7cff9e8c5475744e8 Notes: Merged: https://github.com/ruby/ruby/pull/6516 commit b22a2803a86d6adabc24dd00ef5ae90762a2ae46 Author: Peter Zhu AuthorDate: 2022-10-09 04:04:18 +0900 Commit: Peter Zhu CommitDate: 2022-10-09 04:06:30 +0900 Fix flaky test test_thrashing_for_young_objects The test could be flaky when a heap has below GC_HEAP_INIT_SLOTS number of free slots because it would trigger a major GC and allocate more pages. commit 8483737bbfff506996777991f8dca7f45ce422d5 Author: yui-knk AuthorDate: 2022-10-08 21:04:23 +0900 Commit: yui-knk CommitDate: 2022-10-08 23:29:36 +0900 Fix typos Notes: Merged: https://github.com/ruby/ruby/pull/6515 commit 50f5223236704c75c827d0a745fc934ad9c86277 Author: yui-knk AuthorDate: 2022-10-08 18:53:41 +0900 Commit: yui-knk CommitDate: 2022-10-08 22:30:50 +0900 Fix SEGV of dump parsetree Assign internal_id to semantic value so that dump parsetree option can render the tree for these codes without SEGV. * `def m(&); end` * `def m(*); end` * `def m(**); end` Notes: Merged: https://github.com/ruby/ruby/pull/6514 commit 0f231f2babf314593bcd233f4f5b8de8dc936145 Author: Maciek Rząsa AuthorDate: 2022-10-08 19:30:12 +0900 Commit: git[bot] CommitDate: 2022-10-08 19:30:34 +0900 [ruby/optparse] Don't treat empty string as an option description https://github.com/ruby/optparse/commit/078638ee6d commit 3531086095aed9d2898de686bc67ab3a6c2192de Author: yui-knk AuthorDate: 2022-10-01 17:53:39 +0900 Commit: yui-knk CommitDate: 2022-10-08 17:59:11 +0900 "expr_value" can be error So that "IF" node is kept in the case below ``` def m if end ``` [Feature #19013] Notes: Merged: https://github.com/ruby/ruby/pull/6512 commit 4bfdf6d06ddbcf21345461038f2a9e3012f77268 Author: yui-knk AuthorDate: 2022-10-01 17:44:28 +0900 Commit: yui-knk CommitDate: 2022-10-08 17:59:11 +0900 Move `error` from top_stmts and top_stmt to stmt By this change, syntax error is recovered smaller units. In the case below, "DEFN :bar" is same level with "CLASS :Foo" now. ``` module Z class Foo foo. end def bar end end ``` [Feature #19013] Notes: Merged: https://github.com/ruby/ruby/pull/6512 commit 4f24f3ea94e43d1021fdd8548480f130f5112b99 Author: yui-knk AuthorDate: 2022-10-01 17:19:34 +0900 Commit: yui-knk CommitDate: 2022-10-08 17:59:11 +0900 Treat "end" as reserved word with consideration of indent "end" after "." or "::" is treated as local variable or method, see `EXPR_DOT_bit` for detail. However this "changes" where `bar` method is defined. In the example below it is not module Z but class Foo. ``` module Z class Foo foo. end def bar end end ``` [Feature #19013] Notes: Merged: https://github.com/ruby/ruby/pull/6512 commit 342d4c16d963408905fd08118d1908fe197f2364 Author: yui-knk AuthorDate: 2022-09-25 18:09:34 +0900 Commit: yui-knk CommitDate: 2022-10-08 17:59:11 +0900 Generates "end" tokens if parser hits end of input but "end" tokens are needed for correct language. [Feature #19013] Notes: Merged: https://github.com/ruby/ruby/pull/6512 commit 52eaffde8604b64279208242444894dd69780c24 Author: yui-knk AuthorDate: 2022-09-25 21:23:17 +0900 Commit: yui-knk CommitDate: 2022-10-08 17:59:11 +0900 Support "+error-tolerant" as ruby option [Feature #19013] Notes: Merged: https://github.com/ruby/ruby/pull/6512 commit fbbdbdd8911ffb24d98bb71c7c33d24609ce7dfe Author: yui-knk AuthorDate: 2022-09-25 17:53:44 +0900 Commit: yui-knk CommitDate: 2022-10-08 17:59:11 +0900 Add error_tolerant option to RubyVM::AST If this option is enabled, SyntaxError is not raised and Node is returned even if passed script is broken. [Feature #19013] Notes: Merged: https://github.com/ruby/ruby/pull/6512 commit 7775d14356c375536c915ea4bd0fae019acaaeb1 Author: git[bot] AuthorDate: 2022-10-08 16:05:42 +0900 Commit: git[bot] CommitDate: 2022-10-08 16:05:42 +0900 Update bundled gems list at 2022-10-08 commit 844a9dff887f0af075c0c50020f98a45a1528d14 Author: Samuel Williams AuthorDate: 2022-10-08 10:02:34 +0900 Commit: GitHub CommitDate: 2022-10-08 10:02:34 +0900 Try `nil` as default for 'default timeout'. (#6509) Notes: Merged-By: ioquatix commit 5b3079a8a5f66859c8d80ad55b5424c7c1877443 Author: st0012 AuthorDate: 2022-10-06 20:37:37 +0900 Commit: git[bot] CommitDate: 2022-10-08 03:17:42 +0900 [ruby/irb] Sort constant completion's candidates https://github.com/ruby/irb/commit/ee9b33c817 commit 7cafe09aec76924eafe3ca46b0265de44930a67e Author: st0012 AuthorDate: 2022-10-06 19:54:11 +0900 Commit: git[bot] CommitDate: 2022-10-08 03:17:42 +0900 [ruby/irb] Lazily evaluate candidates locals https://github.com/ruby/irb/commit/19a2fcbd87 commit 7be5e9b9712d5ba11911e1ca618c6c487ad8eea6 Author: st0012 AuthorDate: 2022-10-06 20:30:18 +0900 Commit: git[bot] CommitDate: 2022-10-08 03:17:41 +0900 [ruby/irb] Correct assert_equal's usage in completion tests https://test-unit.github.io/test-unit/en/Test/Unit/Assertions.html#assert_equal-instance_method https://github.com/ruby/irb/commit/00f90d40ad commit afc1f4fba4c2e97b3d6afc0c863cf1246320aae3 Author: st0012 AuthorDate: 2022-10-06 20:27:16 +0900 Commit: git[bot] CommitDate: 2022-10-08 03:17:40 +0900 [ruby/irb] Add constant completion test https://github.com/ruby/irb/commit/39f8fcb058 commit 3e18bb916fe77aa7834aa11bfcb31f86626c6b76 Author: st0012 AuthorDate: 2022-10-06 19:59:49 +0900 Commit: git[bot] CommitDate: 2022-10-08 03:17:39 +0900 [ruby/irb] Regroup completion tests https://github.com/ruby/irb/commit/71631287c8 commit 83a9b91522469d5d58e280391138f43afba110af Author: st0012 AuthorDate: 2022-10-06 19:49:51 +0900 Commit: git[bot] CommitDate: 2022-10-08 03:17:38 +0900 [ruby/irb] Add tests for primitive types' method completion https://github.com/ruby/irb/commit/2e12fac38e commit d76854f1668fc6ee1cd8af15213d6e225269a9e4 Author: Alan Wu AuthorDate: 2022-10-07 00:37:16 +0900 Commit: Alan Wu CommitDate: 2022-10-08 01:38:43 +0900 Update NEWS about [Feature #18589] Notes: Merged: https://github.com/ruby/ruby/pull/6501 commit ad0def7f259f793ce02400a8d6144f86b3615ddd Author: Peter Zhu AuthorDate: 2022-10-07 22:39:07 +0900 Commit: Peter Zhu CommitDate: 2022-10-07 22:39:07 +0900 Add more debugging output to test_thrashing_for_young_objects commit 24f3e397e957a6747a2067edd831bc7920e204ec Author: Samuel Williams AuthorDate: 2022-10-07 20:33:40 +0900 Commit: GitHub CommitDate: 2022-10-07 20:33:40 +0900 Add spec for `Coverage.supported?` and `start(eval: true)`. (#6499) * Don't emit coverage for eval when eval coverage is disabled. Notes: Merged-By: ioquatix commit 1e6cdc76e4b11084f85b2b4718090787a500fd69 Author: lijunwei AuthorDate: 2022-08-21 00:12:59 +0900 Commit: git[bot] CommitDate: 2022-10-07 19:37:27 +0900 [ruby/logger] Fix the Logger::Formatter documentation https://github.com/ruby/logger/commit/db554fbda7 commit a081fe76de5de0307651d99324a0e454fd8b8a8b Author: Samuel Williams AuthorDate: 2022-10-07 18:51:27 +0900 Commit: GitHub CommitDate: 2022-10-07 18:51:27 +0900 Simplify default argument specification. (#6507) Notes: Merged-By: ioquatix commit e4f91bbdbaa6ab3125f24967414ac5300bb244f5 Author: Samuel Williams AuthorDate: 2022-10-07 17:48:38 +0900 Commit: GitHub CommitDate: 2022-10-07 17:48:38 +0900 Add IO#timeout attribute and use it for blocking IO operations. (#5653) Notes: Merged-By: ioquatix commit c3a87e16d8edea1496eebc60d7514fa8005449c7 Author: Soutaro Matsumoto AuthorDate: 2022-10-07 16:02:45 +0900 Commit: GitHub CommitDate: 2022-10-07 16:02:45 +0900 Bundle RBS 2.7.0 (#6506) Notes: Merged-By: soutaro commit 4f78560cf12ad4979a5953bbf38d05e2bf264d21 Author: Hiroshi SHIBATA AuthorDate: 2022-10-07 15:18:00 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:20:11 +0900 Add --with-libffi-source-dir feature and removed --enable-bundled-libffi option. (#113) https://bugs.ruby-lang.org/issues/18571 Co-authored-by: Nobuyoshi Nakada Co-authored-by: Sutou Kouhei commit 92f0c53934f01bb217ec1517d7eeef2e86b3773f Author: Sutou Kouhei AuthorDate: 2022-09-16 05:54:47 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:54 +0900 [ruby/fiddle] test: don't use assert_true/assert_false GitHub: GH-102 They aren't available in ruby/ruby. https://github.com/ruby/fiddle/commit/ced671e43b commit ada9f8a9f78b3ccd8a5187775d06f45eb9f636f5 Author: Sutou Kouhei AuthorDate: 2022-09-15 08:51:42 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:54 +0900 [ruby/fiddle] closure: follow variable name change GitHub: GH-102 https://github.com/ruby/fiddle/commit/2530496602 commit a4ad6bd9aac564e93219284c912b26a72f9e82fc Author: Sutou Kouhei AuthorDate: 2022-09-15 07:08:20 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:53 +0900 [ruby/fiddle] closure: free resources when an exception is raised in Closure.new GitHub: GH-102 https://github.com/ruby/fiddle/commit/81a8a56239 commit 9f62768e51a1afb479b0100e9c44645d6c1ece38 Author: Sutou Kouhei AuthorDate: 2022-09-15 07:07:59 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:53 +0900 [ruby/fiddle] test: ensure freeing closure GitHub: GH-102 https://github.com/ruby/fiddle/commit/b2fef1770d commit 824c474c95969f8255f293dc927ea081907aa0c2 Author: Sutou Kouhei AuthorDate: 2022-09-15 06:44:07 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:53 +0900 [ruby/fiddle] test: ensure freeing closure GitHub: GH-102 This also improves freed closures assertions. https://github.com/ruby/fiddle/commit/0495624caf commit dfca6a879935b5999a56c2a220d4f2595c16d4d4 Author: Sutou Kouhei AuthorDate: 2022-09-15 06:40:31 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:52 +0900 [ruby/fiddle] test: don't use power-assert It seems that we can't use it in ruby/ruby. https://github.com/ruby/fiddle/commit/e1221297fb commit 7c3314129368fdfcf104e489f16538b531ed6d3d Author: Sutou Kouhei AuthorDate: 2022-09-15 06:38:52 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:52 +0900 [ruby/fiddle] test: ensure freeing closure GitHub: GH-102 This also improves freed closures assertions. https://github.com/ruby/fiddle/commit/f6431f3cf8 commit 255e617bc38f714c943c932e7df2b709313fd6bf Author: Sutou Kouhei AuthorDate: 2022-09-14 12:59:13 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:51 +0900 [ruby/fiddle] Add Fiddle::Closure.create and Fiddle::Closure.free GitHub: fix GH-102 It's for freeing a closure explicitly. We can't use Fiddle::Closure before we fork the process. If we do it, the process may be crashed with SELinux. See https://github.com/ruby/fiddle/issues/102#issuecomment-1241763091 for details. Reported by Vít Ondruch. Thanks!!! https://github.com/ruby/fiddle/commit/a0ccc6bb1b commit 191b91f47a1557b7178072e2a607105d5449e2ef Author: Sutou Kouhei AuthorDate: 2022-09-14 12:51:40 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:51 +0900 [ruby/fiddle] test: suppress a warning test/fiddle/test_import.rb:138: warning: ambiguous first argument; put parentheses or a space even after `-' operator https://github.com/ruby/fiddle/commit/060eef76ad commit 0097c7f3887ad8dd5493cb3696ac6368dc4a1014 Author: Aaron Patterson AuthorDate: 2022-09-14 00:27:59 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:51 +0900 [ruby/fiddle] Add `sym_defined?` methods to test if a symbol is defined (https://github.com/ruby/fiddle/pull/108) I would like to check if a symbol is defined before trying to access it. Some symbols aren't available on all platforms, so instead of raising an exception, I want to check if it's defined first. Today we have to do: ```ruby begin addr = Fiddle::Handle.sym("something") # do something rescue Fiddle::DLError end ``` I want to write this: ```ruby if Fiddle::Handle.sym_defined?("something") addr = Fiddle::Handle.sym("something") # do something end ``` https://github.com/ruby/fiddle/commit/9d3371de13 Co-authored-by: Sutou Kouhei commit 755d99e8789b84a7d73d5a30f6b5d582e06f7f45 Author: Aaron Patterson AuthorDate: 2022-09-14 00:26:47 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:50 +0900 [ruby/fiddle] Move "type" constants to `Fiddle::Types` (https://github.com/ruby/fiddle/pull/112) This helps to reduce repetition in code. Instead of doing "TYPE_*" everywhere, you can do `include Fiddle::Types`, and write the type name directly. This PR is to help reduce repetition when writing Fiddle code. Right now we have to type `TYPE_` everywhere, and you also have to include all of `Fiddle` to access `TYPE_*` constants. With this change, you can just include `Fiddle::Types` and it will shorten your code and also you only have to include those constants. Here is an example before: ```ruby require "fiddle" module MMAP # All Fiddle constants included include Fiddle def self.make_function name, args, ret ptr = Handle::DEFAULT[name] func = Function.new ptr, args, ret, name: name define_singleton_method name, &func.to_proc end make_function "munmap", [TYPE_VOIDP, # addr TYPE_SIZE_T], # len TYPE_INT make_function "mmap", [TYPE_VOIDP, TYPE_SIZE_T, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT], TYPE_VOIDP make_function "mprotect", [TYPE_VOIDP, TYPE_SIZE_T, TYPE_INT], TYPE_INT end ``` After: ```ruby require "fiddle" module MMAP # Only type names included include Fiddle::Types def self.make_function name, args, ret ptr = Fiddle::Handle::DEFAULT[name] func = Fiddle::Function.new ptr, args, ret, name: name define_singleton_method name, &func.to_proc end make_function "munmap", [VOIDP, # addr SIZE_T], # len INT make_function "mmap", [VOIDP, SIZE_T, INT, INT, INT, INT], VOIDP make_function "mprotect", [VOIDP, SIZE_T, INT], INT end ``` We only need to import the type names, and you don't have to type `TYPE_` over and over. I think this makes Fiddle code easier to read. https://github.com/ruby/fiddle/commit/49fa7233e5 Co-authored-by: Sutou Kouhei commit 48a64984063532f4dedf62e8ac4958a3cf3b556d Author: Aaron Patterson AuthorDate: 2022-09-13 01:53:19 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:49 +0900 [ruby/fiddle] Add constants for unsigned values (https://github.com/ruby/fiddle/pull/111) This commit adds constants for unsigned values. Currently we can use `-` to mean "unsigned", but I think having a specific name makes Fiddle more user friendly. This commit continues to support `-`, but introduces negative constants with "unsigned" names I think this will help to eliminate [this code](https://github.com/ruby/ruby/blob/3a56bf0bcc66e14ffe5ec89efc32ecfceed180f4/lib/mjit/c_type.rb#L31-L38) https://github.com/ruby/fiddle/commit/2bef0f1082 Co-authored-by: Sutou Kouhei commit 6d01b66764b6dd3fc61c297bd1ec973f8ea686aa Author: Sutou Kouhei AuthorDate: 2022-09-09 23:59:41 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-07 15:18:49 +0900 [ruby/fiddle] test: ensure GC-ing closures GitHub: fix GH-102 We can't use Fiddle::Closure before we fork the process. If we do it, the process may be crashed with SELinux. See https://github.com/ruby/fiddle/issues/102#issuecomment-1241763091 for details. Reported by Vít Ondruch. Thanks!!! https://github.com/ruby/fiddle/commit/1343ac7a95 commit 1b7c5c394f14e1a7aebbaf14b7d681733d1d97c2 Author: Nobuyoshi Nakada AuthorDate: 2022-10-07 14:12:30 +0900 Commit: git[bot] CommitDate: 2022-10-07 14:41:31 +0900 [ruby/date] Fix misplaced time zone offset checks https://github.com/ruby/date/commit/d21c69450a commit fc218e597709e14634535c5836349f7f89a75dc2 Author: Hiroshi SHIBATA AuthorDate: 2022-10-07 12:46:09 +0900 Commit: git[bot] CommitDate: 2022-10-07 12:55:31 +0900 [ruby/psych] Removed the related condition of --enable-bundled-libyaml https://github.com/ruby/psych/commit/7c211a43c1 commit 94d4bea7c9952ac5abe0d8cd473a73e025b468ab Author: Hiroshi SHIBATA AuthorDate: 2022-10-07 12:45:07 +0900 Commit: git[bot] CommitDate: 2022-10-07 12:55:30 +0900 [ruby/psych] --enable-bundled-libyaml config has been removed https://github.com/ruby/psych/commit/447d372dcd commit a87de5e3c111a1af92fbfd877d0ad8050444f3fa Author: Nobuyoshi Nakada AuthorDate: 2022-10-07 11:38:21 +0900 Commit: git[bot] CommitDate: 2022-10-07 12:12:10 +0900 [ruby/rdoc] Special characters are prohibited as filename on Windows https://github.com/ruby/rdoc/commit/13b9da5932 commit 39909d8c18ede7bb94bbcd0ad00d41b2f545528b Author: Nobuyoshi Nakada AuthorDate: 2021-09-07 23:52:13 +0900 Commit: git[bot] CommitDate: 2022-10-07 12:12:09 +0900 [ruby/rdoc] Escape search results https://hackerone.com/reports/1321358 https://github.com/ruby/rdoc/commit/2ebf8fd510 commit a3cb09c7d17f2626ebd6eae774f0425d602ed95b Author: Nobuyoshi Nakada AuthorDate: 2021-08-28 17:41:47 +0900 Commit: git[bot] CommitDate: 2022-10-07 12:12:08 +0900 [ruby/rdoc] Escape file names https://hackerone.com/reports/1321358 https://github.com/ruby/rdoc/commit/8c07cc4657 commit 8d0b2162a09183eb3d58a5a1d824b4daf16bf3c8 Author: Nobuyoshi Nakada AuthorDate: 2022-04-13 22:02:21 +0900 Commit: git[bot] CommitDate: 2022-10-07 12:09:23 +0900 [ruby/rdoc] Escape main title https://hackerone.com/reports/1187156 https://github.com/ruby/rdoc/commit/5dedb5741d commit 586e18b94645b2d3181720d311fcd72b4bb2ca88 Author: Nobuyoshi Nakada AuthorDate: 2022-04-13 16:14:28 +0900 Commit: git[bot] CommitDate: 2022-10-07 12:09:22 +0900 [ruby/rdoc] Escape HYPERLINKs https://github.com/ruby/rdoc/commit/ac35485be6 commit 9e3ab9da7fe6d4910a48d808e582e825d7b7467d Author: Nobuyoshi Nakada AuthorDate: 2022-04-13 16:14:07 +0900 Commit: git[bot] CommitDate: 2022-10-07 12:09:21 +0900 [ruby/rdoc] Escape RDOCLINKs https://hackerone.com/reports/1187156 https://github.com/ruby/rdoc/commit/7cecf1efae commit deaa65660822e070294d6c2a7dfec286cbbdff56 Author: Nobuyoshi Nakada AuthorDate: 2022-03-28 18:36:56 +0900 Commit: git[bot] CommitDate: 2022-10-07 12:09:20 +0900 [ruby/rdoc] Escape TIDYLINKs https://hackerone.com/reports/1187156 https://github.com/ruby/rdoc/commit/1ad2dd3ca2 commit 0472effc41918f85c17e11885595ff810955e626 Author: Alan Wu AuthorDate: 2022-10-07 07:42:26 +0900 Commit: GitHub CommitDate: 2022-10-07 07:42:26 +0900 YJIT: add an assert for branch_stub_hit() (#6505) We set the PC in branch_stub_hit(), which only makes sense if we're running with the intended iseq for the stub. We ran into an issue caught by this while tweaking code layout. Notes: Merged-By: maximecb commit 43e87c7e8ab5cbf253c8f11daf9c8ad4bc3d7b3e Author: Alan Wu AuthorDate: 2022-10-07 07:41:38 +0900 Commit: GitHub CommitDate: 2022-10-07 07:41:38 +0900 YJIT: fix ARM64 bitmask encoding for 32 bit registers (#6503) For logical instructions such as AND, there is a constraint that the N part of the bitmask immediate must be 0. We weren't respecting this condition previously and were silently emitting undefined instructions. Check for this condition in the assembler and tweak the backend to correctly detect whether a number could be encoded as an immediate in a 32 bit logical instruction. Due to the nature of the immediate encoding, the same numeric value encodes differently depending on the size of the register the instruction works on. We currently don't have cases where we use 32 bit immediates but we ran into this encoding issue during development. Notes: Merged-By: maximecb commit fa2e1b67e548cb5653b66909a2bc3d6b9eae98e3 Author: Janko Marohnić AuthorDate: 2022-10-07 03:09:46 +0900 Commit: git[bot] CommitDate: 2022-10-07 06:58:37 +0900 [ruby/open-uri] Support 308 status redirect https://github.com/ruby/open-uri/commit/d8899ae4ac commit 7837dccb0ea9f84f033635e77bc9dfb6ea023bcd Author: Burdette Lamar AuthorDate: 2022-10-07 05:02:37 +0900 Commit: GitHub CommitDate: 2022-10-07 05:02:37 +0900 Adapt doc guide to new GFM features (#6504) Notes: Merged-By: BurdetteLamar commit 43650f606e221f0c8029c0795458e39c740b2c30 Author: Takashi Kokubun AuthorDate: 2022-10-07 03:58:50 +0900 Commit: Takashi Kokubun CommitDate: 2022-10-07 03:58:50 +0900 Notify CI failures of Miscellaneous checks commit 1f2c84de83cef26e7e0bb6537992d3ad922533a8 Author: Takashi Kokubun AuthorDate: 2022-10-07 03:56:04 +0900 Commit: Takashi Kokubun CommitDate: 2022-10-07 03:56:05 +0900 [ruby/rdoc] Remove trailing spaces to fix CI https://github.com/ruby/ruby/actions/runs/3199301563/jobs/5224898228 https://github.com/ruby/rdoc/commit/369e4fa32d60bc00982801a6848efe5338603ac5 commit 3df904d1a8dc614589295dfdf30a781114b3a7fc Author: Peter Zhu AuthorDate: 2022-10-07 02:46:31 +0900 Commit: Peter Zhu CommitDate: 2022-10-07 02:46:31 +0900 Add debug output to test_thrashing_for_young_objects The test is failing only on trunk-repeat50@phosphorus-docker. This commit adds some debugging output to debug the failure. commit 13e87e5049dd418e764f30a9cc45f787d239d466 Author: Yuri Smirnov AuthorDate: 2022-10-07 02:13:17 +0900 Commit: GitHub CommitDate: 2022-10-07 02:13:17 +0900 fix Data docs (#6497) Notes: Merged-By: k0kubun commit bbbdb574c56b5ba8b91f671404645569dc6f156b Author: Burdette Lamar AuthorDate: 2022-10-06 23:30:12 +0900 Commit: GitHub CommitDate: 2022-10-06 23:30:12 +0900 [DOC] Integrate io_streams.rdoc into io.c (#6491) Integrate io_streams.rdoc into io.c Notes: Merged-By: BurdetteLamar commit cf3056be69b3c07ffed423246df0dee2adda5ac1 Author: Nobuyoshi Nakada AuthorDate: 2022-10-06 17:39:10 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-06 23:22:02 +0900 [ruby/rdoc] Add center align https://github.com/ruby/rdoc/commit/512cc55a0e commit 28e24ce35596b5faaf57f3ad4925656e22b23d1c Author: Nobuyoshi Nakada AuthorDate: 2022-10-06 17:20:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-06 23:21:16 +0900 [ruby/rdoc] Allow spaces around pipes https://github.com/ruby/rdoc/commit/3b3a583580 commit 7c03c82444220a4d1425cf801fa6a5d3d253b835 Author: Nobuyoshi Nakada AuthorDate: 2022-10-06 17:26:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-06 23:17:49 +0900 [ruby/rdoc] Allow escaped pipes in cells https://github.com/ruby/rdoc/commit/333952a62d commit f6c916c7ef546b5ed59ac5ca5f5a0a547accdf3c Author: Nobuyoshi Nakada AuthorDate: 2022-10-06 17:12:09 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-06 23:16:54 +0900 [ruby/rdoc] Allow leading pipes to be ommitted https://github.com/ruby/rdoc/commit/d263a2c9c4 commit a19bf47d03b51b339688c865c35bff0c0d2be6c1 Author: Nobuyoshi Nakada AuthorDate: 2022-10-06 13:10:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-06 23:14:29 +0900 [ruby/rdoc] Allow trailing pipes to be ommitted https://github.com/ruby/rdoc/commit/1318048877 commit 76bae60d9b967415c5930c2c5906e14c8362a6dd Author: Peter Zhu AuthorDate: 2022-10-06 04:19:43 +0900 Commit: Peter Zhu CommitDate: 2022-10-06 22:01:12 +0900 [Bug #19038] Fix corruption of generic_iv_tbl when compacting When the generic_iv_tbl is resized up, rebuild_table performs allocations that can trigger GC. If autocompaction is enabled, then moved objects are removed from and inserted into the generic_iv_tbl. This may cause another call to rebuild_table to resize the generic_iv_tbl. When returning back to the original rebuild_table, some of the data may be stale, causing the generic_iv_tbl to be corrupted. This commit changes rebuild_table to only read data from the st_table after the allocations have completed. Co-Authored-By: Matt Valentine-House Notes: Merged: https://github.com/ruby/ruby/pull/6494 commit e696ec67ac7bd14ff8436f9ee7724c17c5bf6689 Author: Samuel Williams AuthorDate: 2022-10-06 19:00:49 +0900 Commit: GitHub CommitDate: 2022-10-06 19:00:49 +0900 Introduce `Fiber.blocking{}` for bypassing the fiber scheduler. (#6498) Notes: Merged-By: ioquatix commit 75a53f6be0bdd02fcf70a352892e085a02995cf9 Author: Nobuyoshi Nakada AuthorDate: 2022-10-06 12:05:26 +0900 Commit: git[bot] CommitDate: 2022-10-06 18:24:44 +0900 [ruby/rdoc] Allow RDoc markups in table cells https://github.com/ruby/rdoc/commit/b16d3f1727 commit e929b0aac530f4fe4d905ff147fe94fe2a3e856c Author: Nobuyoshi Nakada AuthorDate: 2022-10-06 11:51:15 +0900 Commit: git[bot] CommitDate: 2022-10-06 18:24:43 +0900 [ruby/rdoc] Add `RDoc::Markup::ToHtml#accept_table` test https://github.com/ruby/rdoc/commit/0cb3df713b commit 43e925090b6cf33b889904f8b795f4583b20a59b Author: Nishant Patel <91441876+nishantactivepipe@users.noreply.github.com> AuthorDate: 2022-02-16 14:59:28 +0900 Commit: git[bot] CommitDate: 2022-10-06 18:00:58 +0900 [ruby/open-uri] fix: added test case that validates that bad TLS version is silently ignored https://github.com/ruby/open-uri/commit/4b91b11730 commit cdbaac3f4b6349907fe744f5eafab982b45e53e2 Author: Nishant Patel <91441876+nishantactivepipe@users.noreply.github.com> AuthorDate: 2022-02-05 12:29:38 +0900 Commit: git[bot] CommitDate: 2022-10-06 18:00:57 +0900 [ruby/open-uri] feat: allow option to pass version of SSL / TLS to use during communication. Allow versions are OpenSSL::SSL::SSLContext::METHODS https://github.com/ruby/open-uri/commit/8729858517 commit 7f80ec47c3e6a1ac4f8c3e626d51ef6598d65b1c Author: Hiroshi SHIBATA AuthorDate: 2022-10-06 17:12:46 +0900 Commit: git[bot] CommitDate: 2022-10-06 17:15:27 +0900 [ruby/open-uri] Use omit instead of skip for test-unit https://github.com/ruby/open-uri/commit/63f466d6ed commit cc5313ceab756887e5dcddcb3b293a842a01fbac Author: Hiroshi SHIBATA AuthorDate: 2022-10-06 17:08:36 +0900 Commit: git[bot] CommitDate: 2022-10-06 17:15:26 +0900 [ruby/open-uri] Run global constant count test only under Ruby 3.2 https://github.com/ruby/open-uri/commit/a8f1605ae9 commit d15b38d944c27cb627741206d8adf285153a4df2 Author: Jean Boussier AuthorDate: 2022-02-18 17:45:13 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-06 16:55:44 +0900 [ruby/open-uri] Avoid busting the global constant cache `Object#extend(mod)` bump the global constant cache if the module has constants of its own. So by moving these constants outside of `Meta` we avoid bumping the cache. https://github.com/ruby/open-uri/commit/363c399bac commit 3e84290213a86eff5e50ddf92a9b136a5034ac05 Author: Daniel Colson AuthorDate: 2022-10-06 09:51:05 +0900 Commit: git[bot] CommitDate: 2022-10-06 10:04:41 +0900 [ruby/rdoc] Remove unused abbrev require This library originally used `abbrev` to expand abbreviations into fully-qualified classes, but that was replaced in https://github.com/ruby/rdoc/commit/f9ffe6684e2afeac65c62bf1a5a2fce729f21001 `abbrev` is no longer used anywhere, so this commit removes the require. https://github.com/ruby/rdoc/commit/b76775f27d commit 358fe26b31c25033cc1857a4b44634f51d0ee354 Author: David Rodríguez AuthorDate: 2022-10-03 19:10:05 +0900 Commit: git[bot] CommitDate: 2022-10-06 05:13:39 +0900 [rubygems/rubygems] Fix little UI issue when bundler shows duplicated gems in a list https://github.com/rubygems/rubygems/commit/3f71d882e9 commit 83a6213f31016e16bf43613beb4d058339ca9350 Author: Imir Kiyamov AuthorDate: 2022-07-19 01:45:38 +0900 Commit: git[bot] CommitDate: 2022-10-05 19:22:13 +0900 [ruby/irb] Fixed sort of variables in completion https://github.com/ruby/irb/commit/5842888255 commit 107acbd9a475f74be89e63fbb12c11593692b59f Author: Kouhei Yanagita AuthorDate: 2022-05-18 11:21:24 +0900 Commit: git[bot] CommitDate: 2022-10-05 19:20:22 +0900 [ruby/irb] Add description of IRB_LANG, IRBRC, and XDG_CONFIG_HOME to man https://github.com/ruby/irb/commit/564bd91387 commit d88032224338f9c3358b73ef26d6c046eb24247e Author: Kaíque Kandy Koga AuthorDate: 2022-02-02 01:28:46 +0900 Commit: git[bot] CommitDate: 2022-10-05 19:15:28 +0900 [ruby/irb] Update remark of self.install_extend_commands. Create line https://github.com/ruby/irb/commit/64d6a461d5 commit 2f6a26378754adf3658bc237fa51574d3ac64638 Author: Hiroshi SHIBATA AuthorDate: 2022-10-05 18:56:22 +0900 Commit: git[bot] CommitDate: 2022-10-05 18:59:31 +0900 [ruby/irb] Use USE_REIDLINE for backword compatibility https://github.com/ruby/irb/commit/e58a3c1b39 commit b84140f607526018b604f1b4f3e7917ff5112c17 Author: Hiroshi SHIBATA AuthorDate: 2022-10-05 18:26:17 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-05 18:26:17 +0900 Mentioned removing libffi sources from fiddle commit 0b4352b91d067f0c31f749cc77025a856fc6b835 Author: Hiroshi SHIBATA AuthorDate: 2022-10-05 17:35:09 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-05 18:22:06 +0900 Removed the related files for downloading with extlibs commit 19e4a4c624c0872796e3fcde4923b670011e0b59 Author: Gannon McGibbon AuthorDate: 2022-10-05 05:28:45 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-10-05 17:14:19 +0900 [ruby/irb] Rename IDB::ReidlineInputMethod to IRB::RelineInputMethod Deprecates IDB::ReidlineInputMethod and USE_REIDLINE in favor of IRB::RelineInputMethod and USE_RELINE. The Input method uses Reline to read input from the console, so it can be named directly after the Reline library like other inputs methods are (Readline, Stdio, etc.). https://github.com/ruby/irb/commit/5bcade7130 commit 203b8310655ac8a67de2c5b2bd7afa52631d0bbb Author: st0012 AuthorDate: 2022-10-04 06:34:23 +0900 Commit: git[bot] CommitDate: 2022-10-05 15:25:02 +0900 [ruby/irb] Bump version to 1.4.2 https://github.com/ruby/irb/commit/f9960dbd37 commit f081bba875d609bdde8f7e5d1e24654653e7c7e3 Author: Hiroshi SHIBATA AuthorDate: 2022-10-05 15:15:22 +0900 Commit: git[bot] CommitDate: 2022-10-05 15:15:33 +0900 [ruby/irb] Added aycabta to authors https://github.com/ruby/irb/commit/a6bfa7b2e6 commit 7293bfe1bf8a696bd218a52582e9026e5e638458 Author: Alan Wu AuthorDate: 2022-10-05 11:48:05 +0900 Commit: GitHub CommitDate: 2022-10-05 11:48:05 +0900 YJIT: add support for calling bmethods (#6489) * YJIT: fix a parameter name * YJIT: add support for calling bmethods This commit adds support for the VM_METHOD_TYPE_BMETHOD method type in YJIT. You can get these type of methods from facilities like Kernel#define_singleton_method and Module#define_method. Even though the body of these methods are blocks, the parameter setup for them is exactly the same as VM_METHOD_TYPE_ISEQ, so we can reuse the same logic in gen_send_iseq(). You can see this from how vm_call_bmethod() eventually calls setup_parameters_complex() with arg_setup_method. Bmethods do need their frame environment to be setup differently. We handle this by allowing callers of gen_send_iseq() to control the iseq, the frame flag, and the prev_ep. The `prev_ep` goes into the same location as the block handler would go into in an iseq method frame. Co-authored-by: John Hawthorn Co-authored-by: John Hawthorn Notes: Merged-By: maximecb commit 5fc68e1101d38c9ced4d07ef1526467618109de3 Author: Burdette Lamar AuthorDate: 2022-10-05 03:50:33 +0900 Commit: GitHub CommitDate: 2022-10-05 03:50:33 +0900 [DOC] Adding remarks about HTML and tables (#6485) * Adding remarks about HTML and tables Notes: Merged-By: BurdetteLamar commit 40ceceb1a5b63029a4d1434d2d20dfa09cdb295f Author: Nobuyoshi Nakada AuthorDate: 2022-10-04 10:54:28 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-04 21:53:59 +0900 [Bug #19028] Suppress GCC 12 `-Wuse-after-free` false warning GCC 12 introduced a new warning flag `-Wuse-after-free`, however it has a false positive at `realloc` when optimization is disabled, since the memory requested for reallocation is guaranteed to not be touched. This workaround is very unclear why the false warning is suppressed by a statement-expression GCC extension. Notes: Merged: https://github.com/ruby/ruby/pull/6487 commit 6378825df5c7abc7ef45f257057ffd21dc9e63b5 Author: git[bot] AuthorDate: 2022-10-04 16:09:33 +0900 Commit: git[bot] CommitDate: 2022-10-04 16:09:33 +0900 Update bundled gems list at 2022-10-04 commit 7726f6bfff755f2b43d9138756da8b140ed08da1 Author: Vaevictusnet AuthorDate: 2022-09-30 03:03:14 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-04 10:07:01 +0900 Correcting example for swapcase! method Example, line 3, swapcase! was incorrect. implied that the swapcase! did /not/ change the starting string. Notes: Merged: https://github.com/ruby/ruby/pull/6474 commit b2668248b67b0ac7386d6e153a7cf980306dd4db Author: David Rodríguez AuthorDate: 2022-09-16 20:40:32 +0900 Commit: git[bot] CommitDate: 2022-10-04 06:22:50 +0900 [rubygems/rubygems] Make sure RSpec diffs don't omit the different part We sometimes check assertions on lockfile contents, which involves comparing a reasonably long string. Sometimes RSpec is not able to show the part of the string that's actually different, making it hard to figure out the issue. Configuring this setting should fix the issue in most cases. https://github.com/rubygems/rubygems/commit/5ad8ee499e commit efc77662440bd7d31381f7e62fbd813c38d6c64c Author: Jimmy Miller AuthorDate: 2022-10-04 05:57:27 +0900 Commit: GitHub CommitDate: 2022-10-04 05:57:27 +0900 Split cmp operations that aren't 32/64 bit for arm (#6484) Notes: Merged-By: maximecb commit cbd82f52502630e5298c8b82e8d52c59ee5454e1 Author: Nobuyoshi Nakada AuthorDate: 2022-10-03 23:28:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-03 23:28:01 +0900 Cannot `define` from defined `Data` class again commit 8218cb73ba0b4c07d977fbf6e9fd02e1928288b7 Author: Nobuyoshi Nakada AuthorDate: 2022-10-03 22:59:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-03 23:18:34 +0900 [Bug #19034] No runtime check for `utimensat` if unavailable commit bc6c1e0e25a9dc80382e2ffb8559bbe171e0400e Author: Victor Gama AuthorDate: 2022-09-22 03:09:36 +0900 Commit: git[bot] CommitDate: 2022-10-03 20:41:45 +0900 [rubygems/rubygems] Copy template contents instead of file and perms This allows the file to be created without copying permissions from Bundler's installation source. The previous behaviour was noticed after installing Ruby through brew, and using bundle init, which yielded a read-only Gemfile. https://github.com/rubygems/rubygems/commit/839a06851d commit b7a61cb485a9bfaa52107f57782e53365f4bf59a Author: David Rodríguez AuthorDate: 2022-10-03 18:21:42 +0900 Commit: git[bot] CommitDate: 2022-10-03 19:54:24 +0900 [rubygems/rubygems] Revert "Cleaup unnecessary code" Unclear why, but https://github.com/rubygems/rubygems/commit/2e05dadbc5de created some warnings in ruby-core CI, so let's revert it. https://github.com/rubygems/rubygems/commit/729ce3a6e1 commit b91f685a2615ef957210f5e3a50c0e8299c20c55 Author: Benoit Daloze AuthorDate: 2022-10-03 19:03:46 +0900 Commit: Benoit Daloze CommitDate: 2022-10-03 19:03:46 +0900 Mark struct METHOD->owner for the GC * Fixes https://github.com/ruby/ruby/commit/6b7d32a5e5 * See [Bug #18729] commit 10e830c25b61f4c54d5980de4a10c591f91c5f44 Author: st0012 AuthorDate: 2022-10-02 18:25:55 +0900 Commit: git[bot] CommitDate: 2022-10-03 07:00:54 +0900 [ruby/irb] Remove unused error https://github.com/ruby/irb/commit/f09a1874b6 commit b97e909ef476a6facbaec665a205fee486371044 Author: st0012 AuthorDate: 2022-10-02 18:20:26 +0900 Commit: git[bot] CommitDate: 2022-10-03 07:00:53 +0900 [ruby/irb] Remove unnecessary Thread presence check They were introduced around 20 years ago, when Thread is not yet stabilized. So we don't need them anymore. https://github.com/ruby/irb/commit/4c75e03b2b commit 7b88ffb34fc995d7499fd9ed384cf7f5ba12994e Author: osyo-manga AuthorDate: 2022-10-03 06:55:50 +0900 Commit: git[bot] CommitDate: 2022-10-03 06:55:53 +0900 [ruby/irb] Change to explicit method call in completion (https://github.com/ruby/irb/pull/369) Ensure that methods are called even when local variables are defined. see: https://github.com/ruby/irb/issues/368 https://github.com/ruby/irb/commit/c34d54b8bb commit 5cab9d0ee2b728fe7c76ba303335d3b60bcb00b6 Author: st0012 AuthorDate: 2022-10-01 07:18:19 +0900 Commit: git[bot] CommitDate: 2022-10-03 04:59:51 +0900 [ruby/irb] Remove patches for Ruby 2.4 They were added in https://github.com/ruby/irb/commit/b34f26a0dd3b589e6fc321a6248d173682c9202f https://github.com/ruby/irb/commit/0e760d2674 commit 42fcbcc2150c7eaa2057a159ede35a3ac046ea31 Author: st0012 AuthorDate: 2022-10-01 07:14:10 +0900 Commit: git[bot] CommitDate: 2022-10-03 04:59:50 +0900 [ruby/irb] Remove unnecessary condition https://github.com/ruby/irb/commit/daffb8bfe5 commit 55e2116f2c47db6c4e3323b7b89f0088efbb46ad Author: st0012 AuthorDate: 2022-10-01 07:08:36 +0900 Commit: git[bot] CommitDate: 2022-10-03 04:59:49 +0900 [ruby/irb] Refactor ripper_lex_without_warning https://github.com/ruby/irb/commit/0db0a8ddc5 commit ded895baa96cb9622fcd44d308fb48341565605b Author: Burdette Lamar AuthorDate: 2022-10-02 22:24:08 +0900 Commit: GitHub CommitDate: 2022-10-02 22:24:08 +0900 [DOC] RDoc changes for IO (#6458) Moves Expect library doc into io.c. Changes certain links to local sections, now pointing to sections in doc/io_streams.rdoc. Removes local sections now superseded by sections in doc/io_streams.rdoc. Notes: Merged-By: BurdetteLamar commit 85fc822307ee95f351be79934e78c3b9d4102f8a Author: Nobuyoshi Nakada AuthorDate: 2022-10-02 18:36:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-02 18:36:45 +0900 CodeQL slowness on syntax_suggest fixed at 2.10.5 This reverts commit d152ac677cffdbc136530dd56a56c42518d29ea4, "Make CodeQL ignore syntax_suggest because of the performance problem". Probably all instances seem to already have updated to 2.10.5 now. commit f3a3ab110e60db0fb61b278f32fdb17dcc0b8128 Author: Nobuyoshi Nakada AuthorDate: 2022-09-11 19:10:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-02 16:08:38 +0900 [Bug #16909] Honor the tool prefix against pkg-config Notes: Merged: https://github.com/ruby/ruby/pull/6482 commit de9c612d6342ae2ea5ae1e46b27abecf17c439b5 Author: Nobuyoshi Nakada AuthorDate: 2022-09-11 16:40:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-02 15:19:14 +0900 Also the tests should use the configured pkg-config Notes: Merged: https://github.com/ruby/ruby/pull/6482 commit 7f1ca666424849134990d022266bcd4d6636465f Author: Nobuyoshi Nakada AuthorDate: 2022-09-11 16:06:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-02 15:19:14 +0900 Fallback PKG_CONFIG to the configured pkg-config always Notes: Merged: https://github.com/ruby/ruby/pull/6482 commit 88c12a29372e3f908190c6af0aa1b2ac6b78fbd1 Author: Nobuyoshi Nakada AuthorDate: 2022-10-01 18:18:58 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-01 18:53:41 +0900 Indent folded bootstraptest dots commit 56f2fd3bc9bbc69abe75def25f89dac41eb19773 Author: Nobuyoshi Nakada AuthorDate: 2022-10-01 16:18:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-01 16:24:36 +0900 Use the dedicated function to check arity commit 15d3b7fe6dd421cc4ff77d106d17b0e9fd1ead45 Author: Nobuyoshi Nakada AuthorDate: 2022-10-01 16:14:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-01 16:20:22 +0900 Fix an out of bound access commit 27adf5321eabb588ecf20a0c3879e931a7345151 Author: Nobuyoshi Nakada AuthorDate: 2022-10-01 15:58:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-01 15:58:47 +0900 Add macros for assertions commit c767618d4c3319c60155ee2c56450ed7e933b596 Author: Nobuyoshi Nakada AuthorDate: 2022-10-01 15:36:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-10-01 15:36:01 +0900 Do not define the method only for RDoc `Data.members` fails an assertion. commit 70538beaa9a16afa4e2d54ba36fcedffa93f8fbf Author: John Hawthorn AuthorDate: 2022-10-01 09:08:44 +0900 Commit: John Hawthorn CommitDate: 2022-10-01 09:26:27 +0900 Fix YJIT args for rb_vm_set_ivar_idx This was broken accidentally with the revert of shapes (it conflicted with some unrelated cleanup). Notes: Merged: https://github.com/ruby/ruby/pull/6479 commit 1143fe340a99b5d07d0897ea8709bb4cc55b8c02 Author: John Hawthorn AuthorDate: 2022-10-01 08:29:10 +0900 Commit: John Hawthorn CommitDate: 2022-10-01 08:29:10 +0900 Fix YJIT build after shapes-revert An variable had been renamed in between the merge and revert, so the build was broken. This restores it. commit 9a6803c90b817f70389cae10d60b50ad752da48f Author: Aaron Patterson AuthorDate: 2022-10-01 08:01:50 +0900 Commit: Aaron Patterson CommitDate: 2022-10-01 08:01:50 +0900 Revert "This commit implements the Object Shapes technique in CRuby." This reverts commit 68bc9e2e97d12f80df0d113e284864e225f771c2. commit 0ab0229c1162308509b36cafbf6eaafd7ae054d7 Author: eileencodes AuthorDate: 2022-10-01 04:37:18 +0900 Commit: Aaron Patterson CommitDate: 2022-10-01 05:57:59 +0900 Fix frozen object inspect In the rails/rails CI build for Ruby master we found that some tests were failing due to inspect on a frozen object being incorrect. An object's instance variable count was incorrect when frozen causing the object's inspect to not splat out the object. This fixes the issue and adds a test for inspecting frozen objects. Co-Authored-By: Jemma Issroff Co-Authored-By: Aaron Patterson Notes: Merged: https://github.com/ruby/ruby/pull/6478 commit a44040c9e47a9cb41807b0ec5d665d656d60db84 Author: David Rodríguez AuthorDate: 2022-09-30 04:47:53 +0900 Commit: git[bot] CommitDate: 2022-10-01 05:46:41 +0900 [rubygems/rubygems] Add notes to make sure we don't forget to backport changes to Bundler https://github.com/rubygems/rubygems/commit/1ac5b14c78 Co-authored-by: André Arko commit f04d249e8309aaf22f667fd2d505c9b2ead2d30b Author: David Rodríguez AuthorDate: 2022-09-30 03:31:23 +0900 Commit: git[bot] CommitDate: 2022-10-01 05:46:40 +0900 [rubygems/rubygems] Fix matching of eabihf platforms https://github.com/rubygems/rubygems/commit/a03d30cd58 commit 8252ea214061e1e8601ecfe178d010ed92ee8600 Author: David Rodríguez AuthorDate: 2022-09-28 19:12:13 +0900 Commit: git[bot] CommitDate: 2022-10-01 05:46:40 +0900 [rubygems/rubygems] Fix matching of linux platforms with eabi modifiers https://github.com/rubygems/rubygems/commit/89362c18ef Co-authored-by: Mike Dalessio commit 4d58ee3de0ecf8a3b3201359f3c593142cf92d7b Author: David Rodríguez AuthorDate: 2022-09-28 17:57:54 +0900 Commit: git[bot] CommitDate: 2022-10-01 05:46:39 +0900 [rubygems/rubygems] Refactor platform matching on Linux I think this highlights better how musl is special. https://github.com/rubygems/rubygems/commit/4075771697 commit 850cfb021e2ee679bc62d3edc2246e5196630059 Author: Jemma Issroff AuthorDate: 2022-10-01 03:04:08 +0900 Commit: Aaron Patterson CommitDate: 2022-10-01 04:41:12 +0900 Only assert ractor_shareable is consistent on ivar_set for T_OBJECT Before d594a5a8bd0756f65c078fcf5ce0098250cba141, we were only asserting that the value on an ivar_get was ractor_sharable if the object was a T_OBJECT and also ractor shareable. We should still be doing this check only if the object is a T_OBJECT and ractor shareable Notes: Merged: https://github.com/ruby/ruby/pull/6477 commit 641310ce371bd220a5ddd5e54a86979f4055608b Author: tompng AuthorDate: 2022-09-27 13:14:42 +0900 Commit: git[bot] CommitDate: 2022-10-01 04:17:15 +0900 [ruby/irb] Fix ripper_lex_without_warning duplicated heredoc token https://github.com/ruby/irb/commit/45b539af39 commit 31461c7e0eab4963ccc8649ea8ebf27979132c0c Author: Jimmy Miller AuthorDate: 2022-10-01 00:14:55 +0900 Commit: GitHub CommitDate: 2022-10-01 00:14:55 +0900 A bunch of clippy auto fixes for yjit (#6476) Notes: Merged-By: maximecb commit ad651925e365ca18645f05b5e9b2eca9cd5721bc Author: Victor Shepelev AuthorDate: 2022-09-30 18:23:19 +0900 Commit: GitHub CommitDate: 2022-09-30 18:23:19 +0900 [Feature #16122] Data class Add Data class implementation: Simple immutable value object Notes: Merged: https://github.com/ruby/ruby/pull/6353 Merged-By: nobu commit e294e6f417acc27d85c6e6a0e67ebf7a07c83485 Author: Nobuyoshi Nakada AuthorDate: 2022-09-30 17:26:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-30 17:29:23 +0900 Split `with_warning_string_from` for the last named parameter commit 962f9932afd3e545bccc24f7bbc8e9eb85d9ae41 Author: Yusuke Endoh AuthorDate: 2022-09-30 10:53:22 +0900 Commit: git[bot] CommitDate: 2022-09-30 15:50:46 +0900 [rubygems/rubygems] Prevent a "warning: assigned but unused variable - data" https://github.com/rubygems/rubygems/commit/ec3fd55d40 commit ab31d2e69fc8602514b19c90d3f6cc3d6893eb58 Author: Nobuyoshi Nakada AuthorDate: 2022-09-29 20:08:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-30 10:39:43 +0900 Add `--zone` option to `VCS` Which controls the timezone offset for `RUBY_RELEASE_DATE`. Notes: Merged: https://github.com/ruby/ruby/pull/6473 commit 5a5644dadcd5e00b571d0029af4d96849e254cd4 Author: Nobuyoshi Nakada AuthorDate: 2022-09-29 20:03:51 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-30 10:39:42 +0900 Introduce `VCS::Null` for fallback Notes: Merged: https://github.com/ruby/ruby/pull/6473 commit f70ba9cf805dc58d993e60fe2bb06d6c5e2f08cb Author: Nobuyoshi Nakada AuthorDate: 2022-09-30 10:17:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-30 10:39:42 +0900 Check for the availability of the command when detecting Notes: Merged: https://github.com/ruby/ruby/pull/6473 commit 58b3a535cc899760aa69055fa54f4fcb85570dcd Author: Nobuyoshi Nakada AuthorDate: 2022-09-29 17:31:39 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-30 09:21:02 +0900 Pull up `VCS.short_revision` from `VCS::SVN` Notes: Merged: https://github.com/ruby/ruby/pull/6473 commit aa490f9442c32cd0e1e449ac817f410bd5924c8b Author: Benoit Daloze AuthorDate: 2022-09-29 19:09:01 +0900 Commit: Benoit Daloze CommitDate: 2022-09-29 22:48:35 +0900 Reduce diff to proc.c @ b0b9f7201acab05c2a3ad92c3043a1f01df3e17f * So it's easy to review https://github.com/ruby/ruby/pull/6242 + https://github.com/ruby/ruby/pull/6467 and there are less changes overall. commit c6319026caa6c8f0f569f80011e8502349a04b14 Author: Benoit Daloze AuthorDate: 2022-09-29 20:56:03 +0900 Commit: Benoit Daloze CommitDate: 2022-09-29 22:48:35 +0900 Extend tests for a zsuper method of which the method it resolved to has been removed Notes: Merged: https://github.com/ruby/ruby/pull/6467 commit 6b7d32a5e54088b6b4014529bbf2b4b8c1a96029 Author: Benoit Daloze AuthorDate: 2022-09-29 02:49:13 +0900 Commit: Benoit Daloze CommitDate: 2022-09-29 22:48:35 +0900 Resolve zsuper method during lookup but preserve owner separately * See https://bugs.ruby-lang.org/issues/18729#note-34 * See [Bug #18729] Notes: Merged: https://github.com/ruby/ruby/pull/6467 commit aa53d69aa21c4dfa2a78a1cec5cb34e9697b3d30 Author: Benoit Daloze AuthorDate: 2022-09-29 02:04:06 +0900 Commit: Benoit Daloze CommitDate: 2022-09-29 22:48:35 +0900 Add specs for {Method,UnboundMethod}#owner of a zsuper method Notes: Merged: https://github.com/ruby/ruby/pull/6467 commit 94cea3e4d0a60326bd95be762819eed8ccd59ca6 Author: Benoit Daloze AuthorDate: 2022-09-29 01:54:05 +0900 Commit: Benoit Daloze CommitDate: 2022-09-29 22:48:35 +0900 Fix {Method,UnboundMethod}#super_method for zsuper methods * We need to resolve the zsuper method first, and then look the super method of that. Notes: Merged: https://github.com/ruby/ruby/pull/6467 commit 892f350a7db4d2cc99c5061d2e74498dfc4809ca Author: Matt Valentine-House AuthorDate: 2022-09-28 22:45:43 +0900 Commit: Peter Zhu CommitDate: 2022-09-29 22:22:14 +0900 [Bug #19029] Don't start GC during compaction RARRAY_PTR when called with a transient array detransients the array before returning its pointer which allocates in the heap. Because RARRAY_PTR was being used during compaction (when re-embedding arrays that have moved between size pools) this introduces the possibility that we can hit a malloc threshold, triggering GC, while in the middle of compaction. We should avoid this by using safer functions to get hold of the pointer. Since we know that the array is not embedded here, we can use ARY_HEAP_PTR and ARY_EMBED_PTR directly Notes: Merged: https://github.com/ruby/ruby/pull/6466 commit 866cfb248e269f64951c852170732243c3e32d9d Author: Shugo Maeda AuthorDate: 2022-09-29 21:03:57 +0900 Commit: Shugo Maeda CommitDate: 2022-09-29 21:03:57 +0900 Update bundled_gems commit 28840d74c26189f4e730b906c2383e32ea6165fe Author: Jenny Shen AuthorDate: 2022-09-19 22:43:17 +0900 Commit: git[bot] CommitDate: 2022-09-29 17:56:36 +0900 [rubygems/rubygems] Refine error message to check the push URL instead of just the host https://github.com/rubygems/rubygems/commit/46990f3292 commit 0522e31d57d2e777ce01eb12bc44f19c09b8f259 Author: Jenny Shen AuthorDate: 2022-09-17 11:51:58 +0900 Commit: git[bot] CommitDate: 2022-09-29 17:56:36 +0900 [rubygems/rubygems] Refactor tests to use Net::HTTPResponse instances for fetcher.data[:path] https://github.com/rubygems/rubygems/commit/4d91cacb1f Co-authored-by: Jacques Chester commit 17b783ad9e62070e8636800fe3aa9c5570a65bda Author: Jenny Shen AuthorDate: 2022-09-17 00:37:55 +0900 Commit: git[bot] CommitDate: 2022-09-29 17:56:35 +0900 [rubygems/rubygems] Surface entire redirect uri in permanent redirections https://github.com/rubygems/rubygems/commit/da7837630b commit 1cbf0fd86356ccbac5556ab0f63ea8a4b08fd24d Author: Jenny Shen AuthorDate: 2022-09-16 21:48:38 +0900 Commit: git[bot] CommitDate: 2022-09-29 17:56:34 +0900 [rubygems/rubygems] Add error message when api response is a permanent redirect https://github.com/rubygems/rubygems/commit/ccca30c77a Co-authored-by: Nick Schwaderer commit 9948b8bfec08d18c2803dd1fced82a6c28967441 Author: Hiroshi SHIBATA AuthorDate: 2022-09-29 15:08:16 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-29 15:47:08 +0900 Skip unpack_sockaddr_in with http at Solaris platform http://rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20220929T050003Z.fail.html.gz commit cb16dcb1849b3b971b34ef2405949a57e65b8a8a Author: Nobuyoshi Nakada AuthorDate: 2022-09-29 14:15:55 +0900 Commit: git[bot] CommitDate: 2022-09-29 14:56:39 +0900 [ruby/date] The shrunk words to be copied is limited Th buffer size is small enough and no need to allocate dynamically. https://github.com/ruby/date/commit/f62bf0a01d commit 942066713b736c2554f25513ae7986f04e929820 Author: Nobuyoshi Nakada AuthorDate: 2022-09-29 11:46:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-29 14:09:25 +0900 bootstraptest/runner: run in parallel if in parallel build commit 5a8aaedaff48fbf715eed67f29282f9464f118f0 Author: Nobuyoshi Nakada AuthorDate: 2022-04-23 00:24:17 +0900 Commit: git[bot] CommitDate: 2022-09-29 14:06:36 +0900 [ruby/date] Narrow ALLOCV region for shrunk words https://github.com/ruby/date/commit/f51b038074 commit 8c4e52fbe8a07da76c4038e4c5dc518b37258dc3 Author: Hiroshi SHIBATA AuthorDate: 2022-09-29 10:27:29 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-29 10:27:29 +0900 Update bundled_gems commit e7ddb6b182c35a1caf6f95fb6f4d9d53426d52f4 Author: Samuel Williams AuthorDate: 2022-09-29 05:43:07 +0900 Commit: Samuel Williams CommitDate: 2022-09-29 05:44:14 +0900 Update NEWS.md with updated coverage interfaces. commit bd2fbd35888413217337dd327ad90015c0322d12 Author: Samuel Williams AuthorDate: 2022-09-28 20:08:03 +0900 Commit: Samuel Williams CommitDate: 2022-09-29 05:44:14 +0900 Add `Coverage.supported?` to detect what modes are supported. commit 9dd902b83186ad6f9d0a553da2ca114bac6ab7b5 Author: Samuel Williams AuthorDate: 2022-09-28 19:35:42 +0900 Commit: Samuel Williams CommitDate: 2022-09-29 05:44:14 +0900 Add `eval: true/false` flag to `Coverage.setup`. commit ac56e5c1ab6eb133102c395f63101060bad6725d Author: David Rodríguez AuthorDate: 2021-12-04 21:44:07 +0900 Commit: git[bot] CommitDate: 2022-09-29 03:41:53 +0900 [rubygems/rubygems] Put bundler gemspec stub at the right place So that it's found when needed, rather than dynamically modifying loaded stubs and thus messing with RubyGems internals. https://github.com/rubygems/rubygems/commit/cd3e7cb9e5 commit 668e78f01b99085dad4840bbde15a538abb4df90 Author: David Rodríguez AuthorDate: 2021-12-04 21:15:32 +0900 Commit: git[bot] CommitDate: 2022-09-29 03:41:52 +0900 [rubygems/rubygems] Only activate bundler when needed Loading Bundler beforehand was actually replacing ENV with a backup of the pre-Bundler environment through `Bundler::EnvironmentPreserver`. I think that was making a bug in `ENV.replace` not bite our tests, because Bundler includes proper patches to workaround that issue. So this commit also includes these patches in RubyGems tests. https://github.com/rubygems/rubygems/commit/8e079149b9 commit 20eff52087cba5c6ea54a2d67869f1e4eb024c8e Author: David Rodríguez AuthorDate: 2022-05-12 00:58:06 +0900 Commit: git[bot] CommitDate: 2022-09-29 03:41:52 +0900 [rubygems/rubygems] Test a pure RubyGems method `Gem::Specification#load_paths` is actually a Bundler thing. https://github.com/rubygems/rubygems/commit/d20b4d1950 commit 00a040dda3bd2955aa6f470578d639b3c4fc3220 Author: David Rodríguez AuthorDate: 2021-12-04 22:00:02 +0900 Commit: git[bot] CommitDate: 2022-09-29 03:41:51 +0900 [rubygems/rubygems] Little refactor to keep things consistent https://github.com/rubygems/rubygems/commit/3934deb4e4 commit 874a2bf17c8136bf4a9a9abee6ba2b3ab0f82add Author: David Rodríguez AuthorDate: 2021-12-04 21:54:34 +0900 Commit: git[bot] CommitDate: 2022-09-29 03:41:51 +0900 [rubygems/rubygems] Remove unnecessary `ensure` https://github.com/rubygems/rubygems/commit/6c0c02c533 commit c7232a2a0a8f754ac566480363cc551d88993792 Author: David Rodríguez AuthorDate: 2021-12-04 20:57:00 +0900 Commit: git[bot] CommitDate: 2022-09-29 03:41:50 +0900 [rubygems/rubygems] Require bundler consistently The `$LOAD_PATH` should be properly setup so that the local version is used. https://github.com/rubygems/rubygems/commit/03c0ab4082 commit b9c426eaea71628f6d9f57985f16997a2540fa94 Author: David Rodríguez AuthorDate: 2021-12-04 20:54:50 +0900 Commit: git[bot] CommitDate: 2022-09-29 03:41:50 +0900 [rubygems/rubygems] Remove unnecessary constant https://github.com/rubygems/rubygems/commit/4bd77488ad commit 1e5597532ac72ae324550c7cf58f94017f0c8072 Author: David Rodríguez AuthorDate: 2021-12-04 20:49:00 +0900 Commit: git[bot] CommitDate: 2022-09-29 03:41:49 +0900 [rubygems/rubygems] Cleaup unnecessary code https://github.com/rubygems/rubygems/commit/2e05dadbc5 commit 5222a89ab6c71ead00afc7c75684212328457414 Author: David Rodríguez AuthorDate: 2021-12-04 22:38:30 +0900 Commit: git[bot] CommitDate: 2022-09-29 03:41:49 +0900 [rubygems/rubygems] Unskip stuff that now works on JRuby https://github.com/rubygems/rubygems/commit/d86a5ae2eb commit 31cf1bb5256314b69eae92673d3dd5815158ee91 Author: Benoit Daloze AuthorDate: 2022-09-29 01:37:17 +0900 Commit: Benoit Daloze CommitDate: 2022-09-29 01:37:17 +0900 Update to ruby/spec@1d9d5c6 commit 5a1ab740fc287df8bf4038f19bd28bbb73e181b6 Author: Benoit Daloze AuthorDate: 2022-09-29 01:37:16 +0900 Commit: Benoit Daloze CommitDate: 2022-09-29 01:37:16 +0900 Update to ruby/mspec@b60306d commit 3e7c42a239d944ba6025e40bcceef249db93b852 Author: Aaron Patterson AuthorDate: 2022-09-29 01:24:02 +0900 Commit: Aaron Patterson CommitDate: 2022-09-29 01:24:35 +0900 Shapes wrappers shouldn't mark the shape We don't allocate shapes out of the GC anymore, so we shouldn't mark those pointers. commit d594a5a8bd0756f65c078fcf5ce0098250cba141 Author: Jemma Issroff AuthorDate: 2022-09-24 02:54:42 +0900 Commit: Aaron Patterson CommitDate: 2022-09-29 00:26:21 +0900 This commit implements the Object Shapes technique in CRuby. Object Shapes is used for accessing instance variables and representing the "frozenness" of objects. Object instances have a "shape" and the shape represents some attributes of the object (currently which instance variables are set and the "frozenness"). Shapes form a tree data structure, and when a new instance variable is set on an object, that object "transitions" to a new shape in the shape tree. Each shape has an ID that is used for caching. The shape structure is independent of class, so objects of different types can have the same shape. For example: ```ruby class Foo def initialize # Starts with shape id 0 @a = 1 # transitions to shape id 1 @b = 1 # transitions to shape id 2 end end class Bar def initialize # Starts with shape id 0 @a = 1 # transitions to shape id 1 @b = 1 # transitions to shape id 2 end end foo = Foo.new # `foo` has shape id 2 bar = Bar.new # `bar` has shape id 2 ``` Both `foo` and `bar` instances have the same shape because they both set instance variables of the same name in the same order. This technique can help to improve inline cache hits as well as generate more efficient machine code in JIT compilers. This commit also adds some methods for debugging shapes on objects. See `RubyVM::Shape` for more details. For more context on Object Shapes, see [Feature: #18776] Co-Authored-By: Aaron Patterson Co-Authored-By: Eileen M. Uchitelle Co-Authored-By: John Hawthorn commit a05b2614645594df896aaf44a2e5701ee7fb5fec Author: Nobuyoshi Nakada AuthorDate: 2022-09-28 22:07:50 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-28 23:51:38 +0900 Always use the longer version of `TRY_WITH_GC` Notes: Merged: https://github.com/ruby/ruby/pull/6464 commit 09bce061afa3f5710e8d6aafebf865096f11b957 Author: Nobuyoshi Nakada AuthorDate: 2022-09-28 21:58:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-28 23:18:55 +0900 bootstraptest/runner: manage sub processes with the job server Notes: Merged: https://github.com/ruby/ruby/pull/6463 commit fc54dbe8b40d131c72e9216b5ec2b50ae7fb5107 Author: Nobuyoshi Nakada AuthorDate: 2022-09-28 21:39:25 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-28 23:18:55 +0900 bootstraptest/runner: fold dots by window size Notes: Merged: https://github.com/ruby/ruby/pull/6463 commit 3c3bd03a7c4d2213367c65a9aa92f255e1d6cbc9 Author: David Rodríguez AuthorDate: 2022-09-19 03:32:26 +0900 Commit: git[bot] CommitDate: 2022-09-28 23:01:20 +0900 [rubygems/rubygems] Force "master" to be used regardless of `init.defaultBranch` config Otherwise, if you have `init.defaultBranch main` configured, like I do, a bunch of tests fail with things like: ``` ============================================================================================================================================================================================================ Error: test_checkout_submodules(TestGemSourceGit): Gem::Exception: unable to find reference master in /Users/deivid/Code/rubygems/rubygems/tmp/test_rubygems_20220928-13878-xog1je/git/a /Users/deivid/Code/rubygems/rubygems/lib/rubygems/source/git.rb:188:in `rev_parse' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/source/git.rb:143:in `dir_shortref' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/source/git.rb:158:in `install_dir' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/source/git.rb:94:in `checkout' /Users/deivid/Code/rubygems/rubygems/test/rubygems/test_gem_source_git.rb:78:in `test_checkout_submodules' 75: system @git, "commit", "--quiet", "-m", "add submodule b" 76: end 77: => 78: source.checkout 79: 80: assert_path_exist File.join source.install_dir, "a.gemspec" 81: assert_path_exist File.join source.install_dir, "b/b.gemspec" ============================================================================================================================================================================================================ fatal: ambiguous argument 'master': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git [...] -- [...]' fatal: ambiguous argument 'master': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git [...] -- [...]' E ``` In the future, I'd like to change things to use `main`, but the straighforward fix now is to keep "master" and make the running environment's git configuration not get in the middle. https://github.com/rubygems/rubygems/commit/b09b1416f1 commit 28a572f8bffe54226a7ad3fae814c1c92b5036e6 Author: Peter Zhu AuthorDate: 2022-09-28 03:54:09 +0900 Commit: Peter Zhu CommitDate: 2022-09-28 22:05:23 +0900 Fix bug when slicing a string with broken encoding Commit aa2a428 introduced a bug where non-embedded string slices copied the encoding of the original string. If the original string had a broken encoding but the slice has valid encoding, then the slice would be incorrectly marked as broken encoding. Notes: Merged: https://github.com/ruby/ruby/pull/6456 commit 6f8d17e43c7b9b3b8bf42df0ef1ca085080b65f0 Author: Peter Zhu AuthorDate: 2022-09-28 03:50:40 +0900 Commit: Peter Zhu CommitDate: 2022-09-28 22:05:23 +0900 Make string slices views rather than copies Just like commit 1c16645 for arrays, this commit changes string slices to be a view rather than a copy even if it can be allocated through VWA. Notes: Merged: https://github.com/ruby/ruby/pull/6456 commit d12fce7af3af27096b336f43700fffd51158e928 Author: Nobuyoshi Nakada AuthorDate: 2022-09-27 22:46:06 +0900 Commit: git[bot] CommitDate: 2022-09-28 21:07:00 +0900 [ruby/date] Check time zone offset elements Too big parts of fractional hour time zone offset can cause assertion failures. https://github.com/ruby/date/commit/06bcfb2729 commit cd77e71bbac9616a906f6823a8eba4922821e9ad Author: Jeremy Evans AuthorDate: 2022-08-25 03:38:17 +0900 Commit: git[bot] CommitDate: 2022-09-28 17:26:03 +0900 [ruby/net-http] Remove ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE This list is out of date. At least OpenBSD since 2013 does not allow one user to read the environment variables of a process run by another user. While we could try to keep the list updated, I think it's a bad idea to not use the user/password from the environment, even if another user on the system could read it. If http_proxy exists in the environment, and other users can read it, it doesn't make it more secure for Ruby to ignore it. You could argue that it encourages poor security practices, but net/http should provide mechanism, not policy. Fixes [Bug #18908] https://github.com/ruby/net-http/commit/1e4585153d commit b58710e006e71359650240d9de467bd4212435c6 Author: Hiroshi SHIBATA AuthorDate: 2022-09-28 17:06:12 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-28 17:06:12 +0900 dbm and gdbm have been extracted gems. commit b8e804e410b9088fc7921fcf8b6a92a4fbb3006a Author: Maciej Rzasa AuthorDate: 2022-07-29 18:33:23 +0900 Commit: git[bot] CommitDate: 2022-09-28 09:29:49 +0900 [ruby/bigdecimal] Document precision=0 and ndigits=0 for converting from Float https://github.com/ruby/bigdecimal/commit/4f0894c6c0 commit a58cbddd57152a3a4712c6b37b6efa3c108847e7 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-09-28 08:27:39 +0900 Commit: GitHub CommitDate: 2022-09-28 08:27:39 +0900 YJIT: add assertion wrt label names (#6459) Add assertion wrt label names Notes: Merged-By: maximecb commit 8fcbb79742b27619683f0a5f25497a402eeca56f Author: Maxime Chevalier-Boisvert AuthorDate: 2022-09-28 08:27:19 +0900 Commit: GitHub CommitDate: 2022-09-28 08:27:19 +0900 YJIT: reverse configure.ac changes that disable `--yjit-stats` on Graviton1 (#6457) Reverse configure.ac changes that disable YJIT stats on Graviton1 Notes: Merged-By: maximecb commit 28433e9aa0c765c9d20bc6397439a1b12e66bcbd Author: Kevin Newton AuthorDate: 2022-09-28 05:58:01 +0900 Commit: GitHub CommitDate: 2022-09-28 05:58:01 +0900 Change IncrCounter lowering on AArch64 (#6455) * Change IncrCounter lowering on AArch64 Previously we were using LDADDAL which is not available on Graviton 1 chips. Instead, we're going to use an exclusive load/store group through the LDAXR/STLXR instructions. * Update yjit/src/backend/arm64/mod.rs Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged-By: maximecb commit 8f7f12ad64c2f01e1fc8a75402337ceeb6607657 Author: Mike Dalessio AuthorDate: 2022-09-20 04:39:32 +0900 Commit: git[bot] CommitDate: 2022-09-28 05:55:28 +0900 [rubygems/rubygems] fix: Gem::Platform.match handles String argument properly Previously 9eead86 introduced non-commutativity of platforms, and later commit 1b9f7f50 changed the behavior of `Gem::Platform.match` to ensure the callee of `#=~` was the gem platform. However, when the platform argument is a String, then the callee and argument of `#=~` are flipped (see docs for `String#=~`), which works against the fix from 1b9f7f50. Closes #5938 https://github.com/rubygems/rubygems/commit/3b1fb562e8 commit 5d4048e0bc84829ffcd6ff559515c198773476a2 Author: Burdette Lamar AuthorDate: 2022-09-28 03:58:28 +0900 Commit: GitHub CommitDate: 2022-09-28 03:58:28 +0900 [DOC] More on IO streams (#6454) Adds remarks about .new and .open. Uses ..open where convenient (not convenient where output would be in a block). Fixed examples for #ungetc. Notes: Merged-By: BurdetteLamar commit bcd30fb96192993b629f24a5e551d22067220a78 Author: Vít Ondruch AuthorDate: 2022-09-16 21:06:54 +0900 Commit: Benoit Daloze CommitDate: 2022-09-28 02:32:46 +0900 Re-enable TZ test missed due to merge conflict. This was disabled by b7577b4d9e, while properly fixed upstream by: https://github.com/ruby/spec/pull/939 Notes: Merged: https://github.com/ruby/ruby/pull/6393 commit 9d56d9975d867c94ab2a6d76e4482112ab6c3319 Author: Lars Kanis AuthorDate: 2022-09-25 18:14:11 +0900 Commit: git[bot] CommitDate: 2022-09-28 01:59:35 +0900 [ruby/timeout] Explicit add the timeout thread to default ThreadGroup Otherwise the timeout thread would be added to the ThreadGroup of the thread that makes the first call to Timeout.timeout . Fixes bug 19020: https://bugs.ruby-lang.org/issues/19020 Add a test case to make sure the common thread doesn't leak to another ThreadGroup https://github.com/ruby/timeout/commit/c4f1385c9a commit 1a06bc94d96ab4be4386b0ccd802d11380fa4e84 Author: Chad Wilson AuthorDate: 2022-09-27 23:48:16 +0900 Commit: git[bot] CommitDate: 2022-09-28 00:11:05 +0900 [ruby/psych] Bump snakeyaml from 1.31 to 1.33 https://github.com/ruby/psych/commit/8a761cdfb7 commit c35e924f64f25343127ed209f949762eb0dcb58f Author: Burdette Lamar AuthorDate: 2022-09-27 22:50:53 +0900 Commit: GitHub CommitDate: 2022-09-27 22:50:53 +0900 [DOC] More on IO streams (#6445) Text is reorganized so that most of the previous text is now in these newly-created sections: Basic IO Line IO New text is added to form new sections: Character IO Byte IO Codepoint IO This gives the page a functional orientation, so that a reader can quickly find pertinent sections. The page retains its original mission: to provide good link targets for the doc for related classes. Notes: Merged-By: BurdetteLamar commit 95d5b33ea0c99aae76ad148350cd353379a827c8 Author: Hiroshi SHIBATA AuthorDate: 2022-09-27 12:44:30 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-27 12:44:30 +0900 syntax_suggest moved under the ruby organization from zombocom commit b39690df3a90a838cdb2de71e70a20651ebafaf4 Author: Jeremy Evans AuthorDate: 2022-09-27 02:53:45 +0900 Commit: Jeremy Evans CommitDate: 2022-09-27 04:00:40 +0900 Rename method name in keyword test from y to yo Kernel#y is defined by psych/yaml, which causes occasional nondeterministic problems with this test when doing parallel testing. Notes: Merged: https://github.com/ruby/ruby/pull/6449 commit aa2a428cfb3f4273f51358eb4e7fab235c7d36c2 Author: Peter Zhu AuthorDate: 2022-09-27 00:39:36 +0900 Commit: Peter Zhu CommitDate: 2022-09-27 03:54:32 +0900 Refactor str_substr and str_subseq This commit extracts common code between str_substr and rb_str_subseq into a function called str_subseq. This commit also applies optimizations in commit 2e88bca to rb_str_subseq. Notes: Merged: https://github.com/ruby/ruby/pull/6447 commit 9ddfd2ca004d1952be79cf1b84c52c79a55978f4 Author: Jemma Issroff AuthorDate: 2022-09-24 02:54:42 +0900 Commit: Aaron Patterson CommitDate: 2022-09-27 01:21:30 +0900 This commit implements the Object Shapes technique in CRuby. Object Shapes is used for accessing instance variables and representing the "frozenness" of objects. Object instances have a "shape" and the shape represents some attributes of the object (currently which instance variables are set and the "frozenness"). Shapes form a tree data structure, and when a new instance variable is set on an object, that object "transitions" to a new shape in the shape tree. Each shape has an ID that is used for caching. The shape structure is independent of class, so objects of different types can have the same shape. For example: ```ruby class Foo def initialize # Starts with shape id 0 @a = 1 # transitions to shape id 1 @b = 1 # transitions to shape id 2 end end class Bar def initialize # Starts with shape id 0 @a = 1 # transitions to shape id 1 @b = 1 # transitions to shape id 2 end end foo = Foo.new # `foo` has shape id 2 bar = Bar.new # `bar` has shape id 2 ``` Both `foo` and `bar` instances have the same shape because they both set instance variables of the same name in the same order. This technique can help to improve inline cache hits as well as generate more efficient machine code in JIT compilers. This commit also adds some methods for debugging shapes on objects. See `RubyVM::Shape` for more details. For more context on Object Shapes, see [Feature: #18776] Co-Authored-By: Aaron Patterson Co-Authored-By: Eileen M. Uchitelle Co-Authored-By: John Hawthorn Notes: Merged: https://github.com/ruby/ruby/pull/6386 commit 2e88bca24ff4cafeb6afe5b062ff7181bc4b3a9b Author: Jean Boussier AuthorDate: 2022-09-26 19:48:24 +0900 Commit: Jean Boussier CommitDate: 2022-09-26 20:41:17 +0900 string.c: don't create a frozen copy for str_new_shared str_new_shared already has all the necessary logic to do this and is also smart enough to skip this step if the source string is already a shared string itself. This saves a useless String allocation on each call. Notes: Merged: https://github.com/ruby/ruby/pull/6443 commit 5b0396473bbcd70756a09d887fb7436d6cd72dce Author: Kazuki Yamaguchi AuthorDate: 2022-09-26 16:39:53 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-09-26 16:44:46 +0900 Fix coderange calculation in String#b Leave the new coderange unknown if the original encoding is not ASCII-compatible. Non-ASCII-compatible encoding strings with valid or broken coderange can end up as ascii-only. Fixes 9a8f6e392fbd ("Cheaply derive code range for String#b return value", 2022-07-25). commit 1c14e406d3c4a4c660f66f0d1c642d1ed2aabed2 Author: Samuel Williams AuthorDate: 2022-09-26 15:40:23 +0900 Commit: Samuel Williams CommitDate: 2022-09-26 16:10:15 +0900 Fix `io/buffer.h` header guard. Notes: Merged: https://github.com/ruby/ruby/pull/6439 commit 411d0eec11f3618066a293ee72810bf48168adc8 Author: Samuel Williams AuthorDate: 2022-09-26 15:37:28 +0900 Commit: GitHub CommitDate: 2022-09-26 15:37:28 +0900 Update `IO::Buffer` read/write to use rb_thread_io_blocking_region. (#6438) Notes: Merged-By: ioquatix commit a8ad22d926f2c2bc652ce030ccbe2774b13a4b2f Author: Shugo Maeda AuthorDate: 2022-09-26 14:44:54 +0900 Commit: Shugo Maeda CommitDate: 2022-09-26 14:44:54 +0900 Suppress a warning on clang The following warning appears without this fix: ``` parse.y:78:1: warning: unknown warning group '-Wpsabi', ignored [-Wunknown-warning-option] RBIMPL_WARNING_IGNORED(-Wpsabi) ^ ./include/ruby/internal/warning_push.h:103:39: note: expanded from macro 'RBIMPL_WARNING_IGNORED' ^ ./include/ruby/internal/warning_push.h:99:39: note: expanded from macro 'RBIMPL_WARNING_PRAGMA2' ^ ./include/ruby/internal/warning_push.h:98:39: note: expanded from macro 'RBIMPL_WARNING_PRAGMA1' ^ ./include/ruby/internal/warning_push.h:97:39: note: expanded from macro 'RBIMPL_WARNING_PRAGMA0' ^ :49:27: note: expanded from here clang diagnostic ignored "-Wpsabi" ^ 1 warning generated. ``` commit 025b8701c09813c40339bd8fa1c75e0e5eaf7120 Author: Samuel Williams AuthorDate: 2022-09-26 14:06:12 +0900 Commit: GitHub CommitDate: 2022-09-26 14:06:12 +0900 Add several new methods for getting and setting buffer contents. (#6434) Notes: Merged-By: ioquatix commit ecffc6a203822a828d00afece9c9cd782ff60a66 Author: Nobuyoshi Nakada AuthorDate: 2022-09-26 10:20:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-26 13:03:23 +0900 Generate the revision.h before Makefile Except for GNU make which updates makefiles automatically, repeating configure in the same directory causes `make` to stop whenever pulled a new commit. This is unexpected in CIs. Notes: Merged: https://github.com/ruby/ruby/pull/6436 commit b361bdc20036688f17f1e39a260a70254e7db9cd Author: John Hawthorn AuthorDate: 2022-09-26 11:54:49 +0900 Commit: John Hawthorn CommitDate: 2022-09-26 12:44:54 +0900 [Bug #19021] Fix safe call w/ conditional assign As of fbaac837cfba23a9d34dc7ee144d7940248222a2, when we were performing a safe call (`o&.x=`) with a conditional assign (`||= 1`) and discarding the result the stack would end up in a bad state due to a missing pop. This commit fixes that by adjusting the target label of the branchnil to be before a pop in that case (as was previously done in the non-conditional assignment case). Notes: Merged: https://github.com/ruby/ruby/pull/6437 commit e3cc1a6cae0e6c88c04cd54c3afa3c022bb6772c Author: Yuta Saito AuthorDate: 2022-09-24 03:36:04 +0900 Commit: Yuta Saito CommitDate: 2022-09-26 12:03:40 +0900 Initialize Objective-C classes before fork() for macOS 13 Since macOS 13, CFString family API used in `rb_str_append_normalized_ospath` may internally use Objective-C classes (`NSTaggedPointerString` and `NSPlaceholderMutableString`) for small strings. On the other hand, Objective-C classes should not be used for the first time in a `fork()`'ed but not `exec()`'ed process. Violations for this rule can result deadlock during class initialization, so Objective-C runtime conservatively crashes on such cases by default. Therefore, we need to use CFString API to initialize Objective-C classes used internally *before* `fork()`. For more details, see https://bugs.ruby-lang.org/issues/18912 Notes: Merged: https://github.com/ruby/ruby/pull/6426 commit d89f8a046753e2f166ee252510aadf1579dbcd63 Author: yui-knk AuthorDate: 2022-09-26 09:38:24 +0900 Commit: git[bot] CommitDate: 2022-09-26 09:38:40 +0900 [ruby/rdoc] Fix ruby script in "test_parse_method_bracket" (https://github.com/ruby/rdoc/pull/927) Because it's syntax error. https://github.com/ruby/rdoc/commit/993f2532ff commit 1481e6828ccbd42efe8c1a92620b2942fc089790 Author: Nobuyoshi Nakada AuthorDate: 2022-09-26 09:21:05 +0900 Commit: GitHub CommitDate: 2022-09-26 09:21:05 +0900 Avoid type limits (#6435) Notes: Merged-By: k0kubun commit dc7d929e542a3372113f7864b26384ceab596197 Author: Nobuyoshi Nakada AuthorDate: 2022-09-25 22:40:05 +0900 Commit: GitHub CommitDate: 2022-09-25 22:40:05 +0900 Extract `RUBY_RELEASE_DATE` from also revision.h This make variable is very useful for daily build. Notes: Merged: https://github.com/ruby/ruby/pull/6433 Merged-By: nobu commit 85cc0ce5c8b6a369d439093453f7b87f1a154efb Author: Samuel Williams AuthorDate: 2022-09-25 17:49:45 +0900 Commit: Samuel Williams CommitDate: 2022-09-25 20:41:16 +0900 Use `int first_lineno` for binary format. Notes: Merged: https://github.com/ruby/ruby/pull/6430 commit 22af2e9084d869b0d1eb24e4c11bc1fd62b7c50d Author: Samuel Williams AuthorDate: 2022-09-25 17:07:18 +0900 Commit: Samuel Williams CommitDate: 2022-09-25 20:41:16 +0900 Rework vm_core to use `int first_lineno` struct member. Notes: Merged: https://github.com/ruby/ruby/pull/6430 commit 75cf29f60d87b298edfd75611bfe272a92289cee Author: Samuel Williams AuthorDate: 2022-09-25 16:45:28 +0900 Commit: Samuel Williams CommitDate: 2022-09-25 20:41:16 +0900 Rework `first_lineno` to be `int`. Notes: Merged: https://github.com/ruby/ruby/pull/6430 commit a95b741a973438a3ea666b8997efa8194e1fd5e7 Author: Samuel Williams AuthorDate: 2022-09-25 19:34:19 +0900 Commit: git[bot] CommitDate: 2022-09-25 19:34:27 +0900 [ruby/bigdecimal] Remove trailing whitespace. https://github.com/ruby/bigdecimal/commit/223d193f01 commit 8e2c42518355f3e29f5693de9034fb66a2abbdaf Author: Maciek Rząsa AuthorDate: 2022-07-28 21:30:10 +0900 Commit: git[bot] CommitDate: 2022-09-25 16:51:17 +0900 [ruby/bigdecimal] Improve documentation of BigDecimal#sign Fixes https://github.com/ruby/bigdecimal/issues/78 by describing behaviour for positive and negative zero in the docs. https://github.com/ruby/bigdecimal/commit/5415b120ab commit 81b919ce5c85a82d68de9ccaebd5036adef8c7fb Author: Samuel Williams AuthorDate: 2022-09-23 19:58:01 +0900 Commit: Samuel Williams CommitDate: 2022-09-25 16:35:47 +0900 Add news for eval coverage. Notes: Merged: https://github.com/ruby/ruby/pull/6425 commit 09ea4f3a9fc13214198fa2cf223ec601640d3eac Author: Samuel Williams AuthorDate: 2022-09-23 19:54:39 +0900 Commit: Samuel Williams CommitDate: 2022-09-25 16:35:47 +0900 Extract common code for coverage setup. Notes: Merged: https://github.com/ruby/ruby/pull/6425 commit 205c252ec7364ea30ab39cc3c316fdada781eb1b Author: S-H-GAMELINKS AuthorDate: 2022-09-24 22:35:10 +0900 Commit: Samuel Williams CommitDate: 2022-09-25 07:11:06 +0900 Reuse rb_method_call_kw function Notes: Merged: https://github.com/ruby/ruby/pull/6429 commit 08476c45799deeba0e76be54e160e87330e8cf9e Author: Takashi Kokubun AuthorDate: 2022-09-24 15:13:43 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-24 15:13:43 +0900 Remove unneeded semicolons commit b0e3ee454d48748b4aadf1aaedd52670370d503b Author: Takashi Kokubun AuthorDate: 2022-09-24 15:06:27 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-24 15:07:30 +0900 Suppress -Wtype-limits warnings on mjit_c.rb commit 82ac4a2399516a3ffda750b815c244aad6d38277 Author: Chris Salzberg AuthorDate: 2022-08-09 22:22:23 +0900 Commit: Shugo Maeda CommitDate: 2022-09-24 09:41:15 +0900 Support using at toplevel in wrapped script Allow refinements to be used at the toplevel within a script that is loaded under a module. Fixes [Bug #18960] Notes: Merged: https://github.com/ruby/ruby/pull/6226 commit a74f4cded2ba4183b680c14f5c9aa7151afaad58 Author: John Hawthorn AuthorDate: 2022-09-24 06:29:25 +0900 Commit: John Hawthorn CommitDate: 2022-09-24 07:57:02 +0900 Remove reference to __classid__ This used to be used for module names but its uses were removed in b00f280d4b9569e7153365d7e1c522b3d6b3c6cf. Notes: Merged: https://github.com/ruby/ruby/pull/6427 commit 912ea8257a533299d47d71aac8f1b363853493fe Author: Takashi Kokubun AuthorDate: 2022-09-24 05:17:54 +0900 Commit: GitHub CommitDate: 2022-09-24 05:17:54 +0900 YJIT: Support Rust 1.58.1 for --yjit-stats on Arm (#6410) * YJIT: Test Rust 1.58.1 as well on Cirrus * YJIT: Avoid using a Rust 1.60.0 feature * YJIT: Use autoconf to detect support * YJIT: We actually need to run it for checking it properly * YJIT: Try cfg!(target_feature = "lse") * Revert "YJIT: Try cfg!(target_feature = "lse")" This reverts commit 4e2a9ca9a9c83052c23b5e205c91bdf79e88342e. * YJIT: Add --features stats only when it works * Update configure.ac Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged-By: maximecb commit 7588f21851ae7fd93103130e565b97c8249f904f Author: Takashi Kokubun AuthorDate: 2022-09-24 00:02:19 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-24 00:02:21 +0900 Allow changing conversion macro in MJIT bindgen This is necessary for object shapes. commit 3ddab3a84e1fb44fb851c0edfee204e761cfc4d8 Author: Burdette Lamar AuthorDate: 2022-09-23 23:41:21 +0900 Commit: GitHub CommitDate: 2022-09-23 23:41:21 +0900 [DOC] Housekeeping in iostreams doc (#6420) Write some method names in linkable form; make some capitalization consistent. Notes: Merged-By: BurdetteLamar commit a78c733cc32cc3da3796cbf65da21cdd40c63230 Author: Yusuke Endoh AuthorDate: 2022-09-23 16:40:59 +0900 Commit: Yusuke Endoh CommitDate: 2022-09-23 16:40:59 +0900 Revert "Revert "error.c: Let Exception#inspect inspect its message"" This reverts commit b9f030954a8a1572032f3548b39c5b8ac35792ce. [Bug #18170] commit 4e40fdbcee51767de888c81ce4ad2baae639e35f Author: Maxime Chevalier-Boisvert AuthorDate: 2022-09-23 06:47:54 +0900 Commit: GitHub CommitDate: 2022-09-23 06:47:54 +0900 YJIT: add chain guards in `guard_two_fixnums` (#6422) * Add chain guards in guard_two_fixnums, opt_eq with symbols * Remove symbol comparison in gen_equality_specialized Notes: Merged-By: maximecb commit 4b97f1e5256336e259e898c52c30817e0639a42e Author: John Hawthorn AuthorDate: 2022-09-23 06:47:26 +0900 Commit: GitHub CommitDate: 2022-09-23 06:47:26 +0900 YJIT: Refactor into gen_push_frame (#6412) This refactors the "push frame" operation common to both gen_send_iseq and gen_send_cfunc into its own method. This allows that logic to live in one place. Notes: Merged-By: maximecb commit 0c9dc01a2a9a082843b287d30a18c6c67d79de51 Author: Takashi Kokubun AuthorDate: 2022-09-22 22:32:49 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Skip struct fields whose output differs across different environments Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit dfc311c0b3b7d81afa7b153a473990959d46c7ad Author: Takashi Kokubun AuthorDate: 2022-09-22 22:25:33 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Swap the positions of offsetof and type Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit dc5b536468f8def4ab808da57462aee6a99a6fe0 Author: Takashi Kokubun AuthorDate: 2022-09-22 21:39:54 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Bindgen offsetof struct and union with builtin except for bit fields. I made a risky assumption on leading bit fields and just gave up non-leading bit fields for now. I'll change it to let C code access bit fields later. Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit 2ce1460c6504bfefab85814c175de684b3e40381 Author: Takashi Kokubun AuthorDate: 2022-09-21 22:32:28 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Bindgen sizeof struct and union with builtin Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit 4c6e1556b109367f598e276f72feacefc72805fc Author: Takashi Kokubun AuthorDate: 2022-09-20 23:23:50 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Bindgen immediate types with builtin Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit 280ff1707e1e0e5f06d9819dc5f8d8deb38b3f6c Author: Takashi Kokubun AuthorDate: 2022-09-19 09:25:04 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Drop c_64 and c_32 Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit 5cda5938f899ca9ac72f1e44c216f63826516422 Author: Takashi Kokubun AuthorDate: 2022-09-18 23:43:24 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Bindgen enum with builtin Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit 2f5b37533e6129646ddfacffc3da34be02bc9e87 Author: Takashi Kokubun AuthorDate: 2022-09-18 23:32:59 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Builtin needs to be baseruby-compatible Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit 591c3c7a1aae41bb2702dc40609a9bcae0e40ea5 Author: Takashi Kokubun AuthorDate: 2022-09-18 23:25:20 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Automatically setup bundler of bindgen.rb to easily use it with `tool/mjit/bindgen.rb BUILDDIR` instead of using `make mjit-bindgen`. Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit 4e0db2f75348fd28ae8ffd242044a020e41afef5 Author: Takashi Kokubun AuthorDate: 2022-09-18 23:20:44 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 mjit_c.rb doesn't need to be an erb Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit 334b8bd4596cd2fff737f4ced2f2bdf1d7f82679 Author: Takashi Kokubun AuthorDate: 2022-09-18 23:17:22 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Mix manual and auto-generated C APIs Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit 00c441ce7ac76dedd272acf9a9daec59d9d5d908 Author: Takashi Kokubun AuthorDate: 2022-09-18 22:44:29 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Bindgen macro with builtin Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit e81a612413500caa6763a765d12255ea7f150f68 Author: Takashi Kokubun AuthorDate: 2022-09-18 22:32:21 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Auto-generate mjit_c.rb.erb Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit f2bea691cd12150a526ddc4be95c5396f07920ba Author: Takashi Kokubun AuthorDate: 2022-09-18 21:45:58 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-23 06:44:28 +0900 Builtin RubyVM::MJIT::C Notes: Merged: https://github.com/ruby/ruby/pull/6418 commit 88bf8ad6e99fa36c7b4a0b5cbb6fc99777360855 Author: Jeremy Evans AuthorDate: 2022-09-23 01:35:51 +0900 Commit: Jeremy Evans CommitDate: 2022-09-23 05:51:34 +0900 Allow --enable-yjit on OpenBSD yjit uses _Unwind_* functions from libunwind. These functions are available in libc++abi (which requires libpthread), so add those to LDFLAGS if enabling yjit on OpenBSD. Notes: Merged: https://github.com/ruby/ruby/pull/6421 commit b5c459d57af182173ff888b362a38d721c780aa9 Author: Jemma Issroff AuthorDate: 2022-09-23 01:20:45 +0900 Commit: Aaron Patterson CommitDate: 2022-09-23 02:29:43 +0900 Adds a benchmark to measure freezing objects Notes: Merged: https://github.com/ruby/ruby/pull/6419 commit fbaac837cfba23a9d34dc7ee144d7940248222a2 Author: HParker AuthorDate: 2022-09-22 06:12:45 +0900 Commit: John Hawthorn CommitDate: 2022-09-23 01:47:13 +0900 avoid extra dup and pop in compile_op_asgn2 Co-authored-by: John Hawthorn Notes: Merged: https://github.com/ruby/ruby/pull/6414 commit aafbc9068f96e5e1f7f5c2c1fa6cba01ec8422db Author: HParker AuthorDate: 2022-09-22 05:53:10 +0900 Commit: John Hawthorn CommitDate: 2022-09-23 01:47:13 +0900 avoid extra dup and pop in compile_op_log Co-authored-by: John Hawthorn Notes: Merged: https://github.com/ruby/ruby/pull/6414 commit 4bdd8f2ddfce293136fb69257a25e29677612819 Author: Otávio Schwanck dos Santos AuthorDate: 2022-09-21 23:39:21 +0900 Commit: git[bot] CommitDate: 2022-09-22 22:28:39 +0900 [ruby/reline] use assert_nothing_raised https://github.com/ruby/reline/commit/f08be5da09 commit 696e8914b74cd10047917ce677b1872ae1f04660 Author: Otávio Schwanck dos Santos AuthorDate: 2022-09-20 22:40:48 +0900 Commit: git[bot] CommitDate: 2022-09-22 22:28:38 +0900 [ruby/reline] PR changes https://github.com/ruby/reline/commit/e8e8d81f47 commit 9d19d910c077d40a1d60d36baa4458926df857d4 Author: Otávio Schwanck dos Santos AuthorDate: 2022-09-20 22:11:55 +0900 Commit: git[bot] CommitDate: 2022-09-22 22:28:37 +0900 [ruby/reline] Revert "update version" This reverts commit https://github.com/ruby/reline/commit/ce1ac86179e6. https://github.com/ruby/reline/commit/86602cd244 commit 224a3ea718f32daad2a9c874104c33b072dc361a Author: Otávio Schwanck dos Santos AuthorDate: 2022-09-15 21:19:44 +0900 Commit: git[bot] CommitDate: 2022-09-22 22:28:37 +0900 [ruby/reline] update version https://github.com/ruby/reline/commit/ce1ac86179 commit 9fb18e631497fd308b2d1fdd9ad0bef1471de54b Author: Otávio Schwanck dos Santos AuthorDate: 2022-09-15 21:19:02 +0900 Commit: git[bot] CommitDate: 2022-09-22 22:28:36 +0900 [ruby/reline] fix vi-operator-arg https://github.com/ruby/reline/commit/d42cdb8f91 commit 69130e1614b8b0cae8494c249a04d8086448e864 Author: Takashi Kokubun AuthorDate: 2022-09-22 21:07:00 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-22 21:07:22 +0900 Expand paths used for dumper.rb This seems to be needed on Samuel's environment commit 9434a7333c2a23c680a977331a60ca7c502c1ac0 Author: Samuel Williams AuthorDate: 2022-09-17 17:19:57 +0900 Commit: Samuel Williams CommitDate: 2022-09-22 19:19:12 +0900 Enable coverage for eval. Notes: Merged: https://github.com/ruby/ruby/pull/6396 commit 928aeef3301d4dc0de3b80ee80c8effa094958c4 Author: Hiroshi SHIBATA AuthorDate: 2022-09-22 17:28:28 +0900 Commit: git[bot] CommitDate: 2022-09-22 17:29:55 +0900 [ruby/cgi] Bump up 0.3.3 https://github.com/ruby/cgi/commit/c1ffa3a428 commit f07e651a90b3dd95b68a12a484275a27f068b117 Author: Hiroshi SHIBATA AuthorDate: 2022-09-22 14:37:40 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-22 14:37:56 +0900 Mentioned new constants for Process and Socket classes on NEWS.md commit ec93d09c94401af94bcbf5100a9853540d620f16 Author: Aaron Patterson AuthorDate: 2022-09-22 04:27:59 +0900 Commit: Aaron Patterson CommitDate: 2022-09-22 14:20:35 +0900 add rb_execution_context Notes: Merged: https://github.com/ruby/ruby/pull/6417 commit 083b4bb65500376e6c5b9fdf9b7901d5ce4e421a Author: Aaron Patterson AuthorDate: 2022-09-22 00:58:19 +0900 Commit: Aaron Patterson CommitDate: 2022-09-22 14:20:35 +0900 add rb_control_frame_t Notes: Merged: https://github.com/ruby/ruby/pull/6417 commit 9058ba218c382744a737d47e2f9c8c0055386dc8 Author: Nobuyoshi Nakada AuthorDate: 2022-09-22 12:54:23 +0900 Commit: GitHub CommitDate: 2022-09-22 12:54:23 +0900 Binstubs test with relative path seems passing now Notes: Merged: https://github.com/ruby/ruby/pull/6416 Merged-By: nobu commit 830b2e217b6298f696cc20df25e6a547a642f0f2 Author: Takuya Noguchi AuthorDate: 2022-09-20 16:22:44 +0900 Commit: git[bot] CommitDate: 2022-09-22 11:42:57 +0900 [rubygems/rubygems] Update GitLab CI template with new one GitLab CI now needs the default keyword on specification of image and before_script. https://docs.gitlab.com/ee/ci/yaml/#default Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/b79e78e733 commit 6b0b326ef26478e96d176ed2013530e368e32440 Author: Hiroshi SHIBATA AuthorDate: 2022-09-22 09:39:20 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-22 11:35:28 +0900 Followed up 796069b2882d8a67ecc36bda7c72affcbad09dae Notes: Merged: https://github.com/ruby/ruby/pull/6415 commit 56d773dc6f8a1a9ded3f20cdabf263800e5bf75d Author: Burdette Lamar AuthorDate: 2022-09-22 06:34:55 +0900 Commit: GitHub CommitDate: 2022-09-22 06:34:55 +0900 New page IO Streams (#6383) This page provides an overview of IO streams. It's meant to be linked to from many other doc spots. In particular it will be linked to from many places in ARGF, File, IO, and StringIO. Notes: Merged-By: BurdetteLamar commit 369f1668cd9dd4f361d9082bb729aa510835126b Author: tompng AuthorDate: 2022-09-19 14:14:10 +0900 Commit: git[bot] CommitDate: 2022-09-22 00:37:40 +0900 [ruby/irb] Rewrite on_scan proc to be more readable. https://github.com/ruby/irb/commit/da54e7f081 commit 78cb6380027f67c631de93b91f7da88976189e0f Author: tompng AuthorDate: 2022-08-11 06:15:32 +0900 Commit: git[bot] CommitDate: 2022-09-22 00:37:39 +0900 [ruby/irb] Update expected colorize result that were uncolored before https://github.com/ruby/irb/commit/52446eb77f commit 9f686878794291b088d07866c00f8056a0c7dec7 Author: tompng AuthorDate: 2022-08-07 20:58:17 +0900 Commit: git[bot] CommitDate: 2022-09-22 00:37:38 +0900 [ruby/irb] Scan every single characters in IRB::Color.scan https://github.com/ruby/irb/commit/d14e56a65d commit 2c6fdc4d65af035769e969dbe5d5718e859973d3 Author: Takashi Kokubun AuthorDate: 2022-09-22 00:22:21 +0900 Commit: GitHub CommitDate: 2022-09-22 00:22:21 +0900 Improve Ubuntu GitHub Actions (#6413) Make the job names more understandable and avoid testing too many duplicated things. Notes: Merged-By: k0kubun commit c21f820b496351d0f5a8df68192a510973369ac7 Author: Stan Lo AuthorDate: 2022-09-21 22:53:06 +0900 Commit: git[bot] CommitDate: 2022-09-21 22:59:45 +0900 [ruby/irb] Fix completion tests https://github.com/ruby/irb/commit/eb1691f636 commit 6325fc885474937e1250d6605fd594cf70f0794c Author: st0012 AuthorDate: 2022-09-20 00:14:03 +0900 Commit: git[bot] CommitDate: 2022-09-21 22:24:27 +0900 [ruby/irb] Handle non-String $LOAD_PATH values more carefully In addition to String values, $LOAD_PATH can also take objects that respond_to the `to_path` method, like Pathname objects. So `irb` should be able to handle those objects too. And if $LOAD_PATH contains objects that can't be converted into String, `irb` should simply ignore it. https://github.com/ruby/irb/commit/b2f562176b commit 1a2ee4cfabba31d367da854f2e834d4f47cbc4b1 Author: Takashi Kokubun AuthorDate: 2022-09-21 22:01:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-21 22:01:20 +0900 Try reordering test-all and test-spec for mswin CI Visual Studio 2019 GitHub Actions has been super unstable. Somehow nmake test-spec triggers rebuilding the interpreter and fails. usa suggested a possibility of test-all leaving something impacting test-spec. I'd like to try this patch and see what happens. commit 796069b2882d8a67ecc36bda7c72affcbad09dae Author: David Carlier AuthorDate: 2021-04-10 20:47:16 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-21 18:07:59 +0900 getrlimit adding RLIMIT_NPTS constant. Notes: Merged: https://github.com/ruby/ruby/pull/4377 commit d35bc88b37a9cfc491f3bc2aa35ec317febd8289 Author: David Carlier AuthorDate: 2021-12-12 20:08:19 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-21 17:15:54 +0900 sockopt adding Linux constants, SO_INCOMING_CPU/SO_INCOMING_NAPI_ID. commit 8cbbc061c40d0868491e0dc2c42f5cc5eb8d482d Author: David Carlier AuthorDate: 2021-07-08 05:40:15 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-21 17:10:36 +0900 openbsd sockets add SO_RTABLE constant Notes: Merged: https://github.com/ruby/ruby/pull/4635 commit ec2d13567e396e2e1537d05321785c3d772d1e5b Author: David Carlier AuthorDate: 2021-02-21 22:16:57 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-21 15:48:34 +0900 Introduces FreeBSD's SO_USER_COOKIE among socketopt's options. Notes: Merged: https://github.com/ruby/ruby/pull/4206 commit 3f387e60ef87d61d5503132f02b96bba8caa32bd Author: Yuta Saito AuthorDate: 2022-02-18 02:31:40 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-21 15:26:34 +0900 Rescue File.expand_path in MSpecScript#try_load if HOME is unavailable mspec tries to load ~/.mspecrc, but some platforms (e.g. WASI) doesn't have HOME concept, so `~` cannot be expanded and `File.expand_path` can fail. Notes: Merged: https://github.com/ruby/ruby/pull/5566 commit 8a9dfb676b0df74644ddd1db6cfefdd2c9283e8a Author: David CARLIER AuthorDate: 2022-05-02 19:33:57 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-21 15:23:50 +0900 sockets add `TCP_CONNECTION_INFO` and `TCP_KEEPALIVE` constants. Notes: Merged: https://github.com/ruby/ruby/pull/5871 commit 017573c3b373290e52f6e9a8fca217039980247d Author: David CARLIER AuthorDate: 2022-05-19 05:30:47 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-21 15:22:47 +0900 socket add FreeBSD's SO_SETFIB constant. Notes: Merged: https://github.com/ruby/ruby/pull/5917 commit e3b178066b6ec6c2f4f6e038c303cc50db35cf3d Author: Koichi ITO AuthorDate: 2022-05-23 16:40:15 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-21 15:21:27 +0900 [DOC] Tweak the doc for `Process.kill` signature Replacing `...` with `*pids` seems to clarify the expected variadic arguments. Note that the expected arguments are two or more with a signal and pids. That is, the method must have at least one pid, which cannot be omitted: ```console % ruby -e 'Process.kill(0)' -e:1:in `kill': wrong number of arguments (given 1, expected 2+) (ArgumentError) from -e:1:in `
' ``` Notes: Merged: https://github.com/ruby/ruby/pull/5928 commit 76b4305a595c4d35241cc55f6382a86bb0c2af23 Author: Mau Magnaguagno AuthorDate: 2022-08-30 06:47:32 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-21 15:17:12 +0900 [DOC] Improve NEWS.md Fix missing dot and replace error with ArgumentError. Notes: Merged: https://github.com/ruby/ruby/pull/6302 commit c287deecb6431110df9613181bc12b7ae6d77c2c Author: Hiroshi SHIBATA AuthorDate: 2022-09-21 10:53:06 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-21 14:25:42 +0900 backup IRBRC environmental variable. It's used by test methods when it's defined. Notes: Merged: https://github.com/ruby/ruby/pull/6411 commit d6e84d97fee0eed62d0df20a144b11ec3c8240d4 Author: Hiroshi SHIBATA AuthorDate: 2022-09-21 10:46:35 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-21 14:25:42 +0900 Fix the missing locale error Notes: Merged: https://github.com/ruby/ruby/pull/6411 commit 1ad1f07306abc1ade6d8865fea0695771e676af3 Author: Takashi Kokubun AuthorDate: 2022-09-21 13:38:42 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-21 13:38:46 +0900 Fix a broken Slack notification The matrix doesn't have `os`. commit 7060b23ffa25fb53884e99e4ab1fa8919f666beb Author: 卜部昌平 AuthorDate: 2022-09-21 10:14:00 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 proper function prototypes for openssl Just to reroute compiler warnings. Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit 437800d3b0bdacf30b82fff15dd5532fbf65c3ab Author: 卜部昌平 AuthorDate: 2022-09-21 10:03:30 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 getenv: is in stdlib.h getenv is a very basic function that has been in stdlib.h since ISO/IEC 9899:1990. There is absolutely zero need for us to redeclare. pty.c already includes stdlib.h out of the box so we need nothing. Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit 45741918e1963fce3416b253712cfd4745368e7f Author: 卜部昌平 AuthorDate: 2022-09-16 15:14:05 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 reserved_word: just use gperf 3.1 declaration The reason why this was commented out was because of gperf 3.0 vs 3.1 differences (see [Feature #13883]). Five years passed, I am pretty confident that we can drop support of old versions here. Ditto for uniname2ctype_p(), onig_jis_property(), and zonetab(). Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit 77c61ae3ab51746c986ff853c85b5e05bc6a942b Author: 卜部昌平 AuthorDate: 2022-09-14 14:47:26 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 cc_new: vm_ci_new's 4th argument is a pointer Don't pass boolean. Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit ec5798d28bca2c214da886e27d8e870c55301563 Author: 卜部昌平 AuthorDate: 2022-09-14 14:43:31 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 type pun rb_f_notimplement Other functions are already type-punned elsewhere. rb_f_notimplement is the only exceptional function that appear literally. We have to take care of it by hand. Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit 4e64edb6cd8d1b444c591bfd50ec3d357e794f6e Author: 卜部昌平 AuthorDate: 2022-09-14 14:35:47 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 vm_method_cfunc_is: get rid of ANYARGS ANYARGS-ed function prototypes are basically prohibited in C23. Use __attribute__((__transparent_union__)) instead. Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit 8a577cbc63e164a0771581ea7234578f5beab100 Author: 卜部昌平 AuthorDate: 2022-09-14 14:17:56 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 cref_replace_with_duplicated_cref_each_frame: returns a pointer Why use FALSE here? Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit 2f8012c9491e7cf10f4080f6eecdb67d3aa83556 Author: 卜部昌平 AuthorDate: 2022-09-14 14:12:17 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 rb_define_method: dedicated overload for rb_f_notimplement rb_f_notimplement was type-compatible with VALUE(*)(ANYARGS), but not any longer in C23. Provide a dedicated path for it. Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit 0cd86ffb2e4b270084510a0ed056329ddc949e5d Author: 卜部昌平 AuthorDate: 2022-09-14 11:32:24 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 avoid ANYARGS Use macro instead of a static functon. This isn't very amusing but doing this wihtout a macro (is possibe but) seems just too much. Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit 06cb0305161eaae0f006ffb3a7f341a5771f239f Author: 卜部昌平 AuthorDate: 2022-09-13 16:26:33 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 vm_insnhelper.c: add casts Why they have not been at the first place? Siblings have proper casts. Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit 406ebb25a017dba5b066a42a1c325e57fa644e95 Author: 卜部昌平 AuthorDate: 2022-09-13 15:18:46 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 obj_refer_only_sharables_p_i: need derefernce Clang says "warning: variable 'pcnt' set but not used" here. In fact it doesn't. The intention is clear that we want to increment cnt, not pcnt. Adding a * mark solves everything. Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit 104069e75a385d9b04c86cd31f2aa60547ad6a55 Author: 卜部昌平 AuthorDate: 2022-09-13 15:08:50 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 syserr_initialize: delete redundant strerror() declaration This line issues a warning on clang. strerror is of course a part of ISO C since its dawn. We practically have never needed it. Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit 45482fea3c874c4441e1846fb30cac1a92ffbd51 Author: 卜部昌平 AuthorDate: 2022-09-12 14:41:23 +0900 Commit: 卜部昌平 CommitDate: 2022-09-21 11:44:09 +0900 LLVM 15 released See https://discourse.llvm.org/t/llvm-15-0-0-release/65099 Notes: Merged: https://github.com/ruby/ruby/pull/6358 commit d3733c2ba5207d29ef5b52a93672873ae369b52c Author: Maxime Chevalier-Boisvert AuthorDate: 2022-09-21 08:30:10 +0900 Commit: GitHub CommitDate: 2022-09-21 08:30:10 +0900 Guard `--yjit-stats` behind `#[cfg(feature = "stats")]` (#6409) * Guard --yjit-stats behind #[cfg(feature = "stats")] * Only ask for --yjit-stats with dev builds on cirrus CI * Revert "Only ask for --yjit-stats with dev builds on cirrus CI" This reverts commit cfb5ddfa4b9394ca240447eee02637788435b02a. * Make it so the --yjit-stats option works for non-release builds * Revert accidental changes Notes: Merged-By: maximecb commit a8dc49b4d57e0a2d07691176f43e4b7f71874fa7 Author: Alan Wu AuthorDate: 2022-09-20 21:36:06 +0900 Commit: Alan Wu CommitDate: 2022-09-21 03:17:27 +0900 YJIT: Support MAKE=bmake for release build This add support for bmake, which should allow building with `configure --enable-yjit` for the BSDs. Tested on FreeBSD 13 and on macOS with `configure MAKE=bmake` on a case-sensitive file system. It works by including a fragment into the Makefile through the configure script, similar to common.mk. It uses the always rebuild approach to keep build system changes minimal. Notes: Merged: https://github.com/ruby/ruby/pull/6408 commit b3d8dddee7a9ea0bc9c278a5c9faa4df81afd57e Author: Yusuke Endoh AuthorDate: 2022-09-20 17:07:42 +0900 Commit: Yusuke Endoh CommitDate: 2022-09-20 22:25:05 +0900 Try to ignore a noisy ASAN warning for continuation Notes: Merged: https://github.com/ruby/ruby/pull/6405 commit e40fa6c480b58a8d1699b24193cf67945eaec202 Author: Sutou Kouhei AuthorDate: 2022-09-20 16:09:42 +0900 Commit: GitHub CommitDate: 2022-09-20 16:09:42 +0900 [DOC] socket: fix wrong sample addresses (#6372) IPv6 link local address is fe80::/10 not ff80::/10: https://www.rfc-editor.org/rfc/rfc4291.html Link-Local unicast 1111111010 FE80::/10 2.5.6 IPv6 (deprecated) site local address is fec0::/10 not ffc0::/10: https://www.rfc-editor.org/rfc/rfc3513.html Site-local unicast 1111111011 FEC0::/10 2.5.6 Notes: Merged-By: kou commit 9de11fe796e8caca2d87650278028eb95c1e09a0 Author: Nobuyoshi Nakada AuthorDate: 2022-09-20 12:54:08 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-20 12:54:08 +0900 Quiet if the target is already linked the same source commit 55e540f7ab6adb3ea0de16912dfde8e0bf94cc6e Author: Nobuyoshi Nakada AuthorDate: 2022-09-20 11:12:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-20 11:12:11 +0900 Ignore EPERM which means already being process-leader commit 76a0e81f409baf810411677e115bce4f4b05ba5e Author: Takashi Kokubun AuthorDate: 2022-09-20 07:38:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-20 07:38:58 +0900 Support trailing commas in builtin `foo(Primitive.cexpr!('Qnil'),)` causes SEGV without this change. commit f8dad616c2ee2d83b3162da8d86865b0f2a782de Author: Takashi Kokubun AuthorDate: 2022-09-20 06:07:28 +0900 Commit: GitHub CommitDate: 2022-09-20 06:07:28 +0900 YJIT: Show --yjit-stats of railsbench on CI (#6403) * YJIT: Show --yjit-stats of railsbench on CI * YJIT: Use --enable-yjit=dev to see ratio_in_yjit * YJIT: Show master GitHub URL for quick comparison * YJIT: Avoid making CI red by a yjit-bench failure Notes: Merged-By: k0kubun commit 26135312f61014967ef223dd16ad6577ebd9c5d8 Author: Aaron Patterson AuthorDate: 2022-09-16 09:48:52 +0900 Commit: git[bot] CommitDate: 2022-09-20 00:44:30 +0900 [ruby/psych] Convert some of Parser#parse to Ruby This commit just converts some of the parse method to Ruby https://github.com/ruby/psych/commit/bca7d2c549 commit 12889fad4100569c212c9813243db5ec5380b5fb Author: Peter Zhu AuthorDate: 2022-09-19 23:23:29 +0900 Commit: git[bot] CommitDate: 2022-09-19 23:40:49 +0900 [ruby/bigdecimal] Remove symbol defs in missing.h for old Rubies Commit 2885514 added these to support Ruby 2.1. The rb_sym2str function is defined since Ruby 2.2. https://github.com/ruby/bigdecimal/commit/be366c9cf2 commit a44f48cadc8a319e233bc5a8c6ab9d52aaf52bae Author: Peter Zhu AuthorDate: 2022-09-19 23:15:04 +0900 Commit: git[bot] CommitDate: 2022-09-19 23:40:48 +0900 [ruby/bigdecimal] Remove array defs in missing.h for old Rubies Commit 02b6053 added these to support Ruby 2.0.0. The rb_array_const_ptr function is defined since Ruby 2.3. https://github.com/ruby/bigdecimal/commit/678699ca1b commit 5883bc7c0791de2ce5e8b22175aef07705f0c618 Author: Takashi Kokubun AuthorDate: 2022-09-19 16:34:03 +0900 Commit: GitHub CommitDate: 2022-09-19 16:34:03 +0900 YJIT: Check if the processor supports --yjit-stats (#6401) * YJIT: Add asm comment for incr_counter * YJIT: Check if the processor supports --yjit-stats Notes: Merged-By: k0kubun commit ae07336529ee0955bb08b12eb69a90aa9ab4b9f9 Author: Nobuyoshi Nakada AuthorDate: 2022-09-19 00:46:52 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-19 15:34:16 +0900 Reduce fork calls in daemon The forked child process is a grandchild process from the viewpoint of the process which invoked the caller process. That means the child is detached at that point, and it does not need to fork twice. Notes: Merged: https://github.com/ruby/ruby/pull/6402 commit 1c9381283e68b9021df2509fb64d663998d8cb5a Author: Nobuyoshi Nakada AuthorDate: 2022-09-19 00:26:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-19 15:34:16 +0900 Add another test for `Process.daemon` Check for that the daemon process is detached, that means it is not a child and not waitable. Notes: Merged: https://github.com/ruby/ruby/pull/6402 commit e75d96368577276cbebadb56a0fb286f66afdf3f Author: Jimmy Miller AuthorDate: 2022-09-19 15:09:38 +0900 Commit: GitHub CommitDate: 2022-09-19 15:09:38 +0900 Only exit if ruby2_keywords and splat together (#6395) Before this change railsbench spent less time in yjit than before splat. This brings it back to parity. Notes: Merged-By: k0kubun commit ea22403653878e1c8c7e307b0d15c7d5881bad66 Author: Nobuyoshi Nakada AuthorDate: 2022-09-17 22:52:07 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-19 01:09:47 +0900 Extract UNICODE_DOWNLOADER commit cc533cb607d9d96356c12b880d0871a3b24f35e9 Author: Nobuyoshi Nakada AuthorDate: 2022-09-17 22:51:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-19 01:09:47 +0900 Downloader: Define long option aliases commit a0b0991eed5b202b61323496560d8a803fddab02 Author: Nobuyoshi Nakada AuthorDate: 2022-09-17 22:48:40 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-19 01:09:47 +0900 Downloader: Define per-class command line options Move `Downloader::Unicode` specific options, and parse options after the downloader specificier. commit e2e1058e668f875bfc882e94d470b01044303da1 Author: Takashi Kokubun AuthorDate: 2022-09-18 21:19:37 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-18 21:21:37 +0900 Include lib/mjit/instruction.rb in a snapshot baseruby shouldn't be necessary once a snapshot is built. commit 45ecc30a6342e1322f07e68280a5107db8075da0 Author: Takashi Kokubun AuthorDate: 2022-09-18 20:49:46 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-18 21:16:15 +0900 Move mjit/instruction.rb rule to common.mk as suggested by nobu. We don't really need to generate this for Windows, but using common.mk whenever possible would probably make maintenance easier. Notes: Merged: https://github.com/ruby/ruby/pull/6398 commit 0ca037b35cdf14bc6b3910560c786936585cf6fc Author: Takashi Kokubun AuthorDate: 2022-09-18 20:42:57 +0900 Commit: GitHub CommitDate: 2022-09-18 20:42:57 +0900 Update bindgen crate (#6397) to get rid of deprecated indirect dependency, ansi_term Notes: Merged-By: k0kubun commit a988fe0b3e4cd5a3955706affdc1f498ff9b5d77 Author: Takashi Kokubun AuthorDate: 2022-09-18 14:22:35 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-18 14:39:53 +0900 Introduce --basedir to insns2vm.rb and leverage that to preserve the directory structure under tool/ruby_vm/views commit 12023c833fb2ba3b50a34ab7f6b53f5f77d78658 Author: Takashi Kokubun AuthorDate: 2022-09-18 14:21:23 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-18 14:21:40 +0900 Revert "Preserve the directory structure under tool/ruby_vm/views" This reverts commit 62ec621f8c7457374d1f08aec97138ac1b7bdf2a. will revisit this once fixing non-MJIT targets commit 62ec621f8c7457374d1f08aec97138ac1b7bdf2a Author: Takashi Kokubun AuthorDate: 2022-09-18 14:16:08 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-18 14:19:22 +0900 Preserve the directory structure under tool/ruby_vm/views for nested target directories commit 0e816e6d3022892da438940b09c4d4b49ceb670f Author: Takashi Kokubun AuthorDate: 2022-09-18 14:02:09 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-18 14:04:20 +0900 Demote mjit_instruction.rb from builtin to stdlib commit 67417e795a3e5af8e64d3b3c3440ff5e7306707d Author: Takashi Kokubun AuthorDate: 2022-09-18 00:09:41 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-18 00:10:30 +0900 Replace revision.tmp with the HAVE_BASERUBY trick but without relying on replacement. This seems to work on OpenBSD as well. commit 39f91bc24baa37db3c3d1485902056f43b013b54 Author: Takashi Kokubun AuthorDate: 2022-09-17 23:16:55 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-17 23:44:14 +0900 Always generate non-empty revision.h Non-GNU make seems to generate empty revision.h, but it doesn't make sense since https://github.com/ruby/ruby/pull/6382. Also the $(HAVE_BASERUBY:yes=tmp) hack doesn't seem to be working on OpenBSD. I'll remove it to focus on fixing RubyCI first, and then deal with baseruby-missing environments. At least a snapshot should have revision.h and it might work fine though. commit 922e61fcc22abfc86a9805ccf52ba9f8edeca17c Author: Takashi Kokubun AuthorDate: 2022-09-17 23:05:06 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-17 23:05:10 +0900 Remove git command existence check again With 33c6dd2cc89c27bbf406508ec39038a181fb99bc, it's no longer necessary. This is what I got on openbsd-current: ``` -bash-5.1$ git -v unknown option: -v usage: git [--version] [--help] [-C ] [-c =] [--exec-path[=]] [--html-path] [--man-path] [--info-path] [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare] [--git-dir=] [--work-tree=] [--namespace=] [--super-prefix=] [--config-env==] [] -bash-5.1$ git version git version 2.35.1 ``` commit 33c6dd2cc89c27bbf406508ec39038a181fb99bc Author: Takashi Kokubun AuthorDate: 2022-09-17 22:24:09 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-17 22:24:10 +0900 Fallback to VCS.release_date on VCS::NotFoundError when -q is given. One of the RubyCI servers, freebsd12, had a broken git environment: ``` $ git show fatal: detected dubious ownership in repository at '/usr/home/chkbuild/chkbuild/tmp/build/20220917T123002Z/ruby' To add an exception for this directory, call: git config --global --add safe.directory /usr/home/chkbuild/chkbuild/tmp/build/20220917T123002Z/ruby ``` tool/lib/vcs.rb doesn't work normally for that server. Even for such cases, we'd like to generate a usable revision.h. So this patch lets revision.h fallback to default VCS.release_date when VCS::NotFoundError is raised. commit 1825d3673f2a5504b65ba31a9fb6c2e52edf1fc3 Author: Takashi Kokubun AuthorDate: 2022-09-17 22:06:53 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-17 22:08:36 +0900 Skip test_wait on MinGW CI This test has been unstable, and it seems like we're not interested in fixing that for MinGW. https://github.com/ruby/ruby/actions/runs/3073317191/jobs/4965373284 commit 38a7a13ac6ed6bba2584def7d7121257eb85e051 Author: Takashi Kokubun AuthorDate: 2022-09-17 21:16:06 +0900 Commit: GitHub CommitDate: 2022-09-17 21:16:06 +0900 Auto-generate the release date on version.h from git CommitDate (#6382) * Auto-generate the release date on version.h from git CommitDate * Generate revision.h on mswin Notes: Merged-By: k0kubun commit ca4cbe59eda77a3855094c843486759868794e85 Author: Nobuyoshi Nakada AuthorDate: 2022-09-14 19:15:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-17 12:37:48 +0900 Move case-folding.rb to tooldir with enc-prefix commit e9982fd679cb7cb80fbf65fa0090fd01f94884c7 Author: Nobuyoshi Nakada AuthorDate: 2022-09-14 19:00:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-17 12:37:48 +0900 Derive UNICODE_EMOJI_VERSION from UNICODE_VERSION commit 03ce48dac74099dd725c7ab8dce5ca8b20df65f5 Author: Nobuyoshi Nakada AuthorDate: 2022-09-14 18:56:51 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-17 12:37:48 +0900 Emoji files header changed at 15.0 again commit 76c00565052368f693bc4e18e8e40b614f744d74 Author: Nobuyoshi Nakada AuthorDate: 2022-09-14 18:03:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-17 12:37:48 +0900 Follow emoji data files header change The header of emoji data files in UCD, which were moved at 13.0.0, has been changed since 14.0.0. It seems to be the same as other files in UCD. commit 6898984f1cd1b0375c3da44d7832724489e0e470 Author: Nobuyoshi Nakada AuthorDate: 2022-09-17 12:09:34 +0900 Commit: GitHub CommitDate: 2022-09-17 12:09:34 +0900 [Bug #19005] dynamic_lookup linker option in external libraries The warning against `-undefined dynamic_lookup` is just a warning yet, and many gems seem to pay no attention to warnings. Until it fails actually, keep it as a migration path, except for standard extension libraries and bundled extension gems. Notes: Merged: https://github.com/ruby/ruby/pull/6394 Merged-By: nobu commit b07db967441161a84386bcbbb41d990a2f3ad31c Author: Jeremy Evans AuthorDate: 2022-09-17 02:25:15 +0900 Commit: git[bot] CommitDate: 2022-09-17 02:25:26 +0900 [ruby/irb] Support --noscript option to not use first non-option argument as script Also add --script option to turn the option back on. Previously there wasn't a way to get an interactive IRB session and access arguments provided on the command line. Additionally, handle `-` as script as stdin. In Unix-like tools, `-` means to take standard input instead of a file. This doesn't result in exactly the same output for: ``` echo 'p ARGV' > args.rb; irb args.rb a b c ``` and ``` echo 'p ARGV' | irb - a b c ``` Due to how irb handles whether stdin is a tty. However, this change allows use of `-` as a argument, instead of giving an unrecognized switch error. This required some small changes to context.rb (to handle `-` as standard input) and input-method.rb (to have FileInputMethod accept IO arguments in addition to strings). Implements [Feature #15371] https://github.com/ruby/irb/commit/4192683ba2 commit 5b735d0bebe0d6187780d1c2ddea0b0861b15df4 Author: Takashi Kokubun AuthorDate: 2022-09-16 20:44:58 +0900 Commit: GitHub CommitDate: 2022-09-16 20:44:58 +0900 Invalidate i-cache after link_labels (#6388) Notes: Merged-By: k0kubun commit a28e7871e54d7a87afbfd686291c500d71edb7cb Author: Koichi Sasada AuthorDate: 2022-09-16 18:12:46 +0900 Commit: Koichi Sasada CommitDate: 2022-09-16 18:54:33 +0900 Update bundled_gems Try latest patch to avoid some race on Mac OS X. Notes: Merged: https://github.com/ruby/ruby/pull/6390 commit 6ad69944572adddaf608aa33e4fdef80100bee08 Author: Takashi Kokubun AuthorDate: 2022-09-16 17:03:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-16 17:05:59 +0900 Omit a DRb test on MinGW This test seems to leak a thread and let TestIOWait fail: https://github.com/ruby/ruby/actions/runs/3065426880/jobs/4949517274 DRb almost never seemed to stably work on MinGW. I don't think we intend to fix it either. We should just omit DRb tests when they fail on MinGW. commit c8d94d2797f798e2666a057bb1940e1ffe41b717 Author: Nobuyoshi Nakada AuthorDate: 2022-09-16 14:46:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-16 14:46:21 +0900 Now test-bundler needs fake.rb commit 2387fbfb34f58ea05b4aceaab6d54febe9eab4c1 Author: Jimmy Miller AuthorDate: 2022-09-16 13:37:15 +0900 Commit: GitHub CommitDate: 2022-09-16 13:37:15 +0900 Fix splat args (#6385) * Fix splat args Cfuncs were not working properly so I disabled them right now. There were some checks above that were also actually preventing splat args from being called. Finally I did some basic code cleanup after realizing I didn't need to mutate argc so much * Add can't compile for direct cfunc splat call * Fix typo * Update yjit/src/codegen.rs Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged-By: k0kubun commit cc7f6fe73454743da87d73ddb26626503fae248f Author: Noah Gibbs AuthorDate: 2022-09-15 23:14:27 +0900 Commit: GitHub CommitDate: 2022-09-15 23:14:27 +0900 YJIT should die if we compile on Aarch64 with no instruction cache clear available (#6380) YJIT should die if we compile on ARM64 with no icache clear available Notes: Merged-By: maximecb commit 64a020324dc7453c5678f44b898eb5da47b9abcc Author: Maxime Chevalier-Boisvert AuthorDate: 2022-09-15 23:12:27 +0900 Commit: GitHub CommitDate: 2022-09-15 23:12:27 +0900 Add asm comments to make disasm more readable (#6377) Notes: Merged-By: maximecb commit 68a5b0f086c9d54f271cdff231a1a2c2a40b0aa6 Author: Kevin Newton AuthorDate: 2022-09-07 01:33:23 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-15 14:49:20 +0900 [rubygems/rubygems] Mask the file mode when extracting files When extracting files from the tarball, a mode is retrieved from the header. Occasionally you'll encounter a gem that was packaged on a system whose permission bits result in a value that is larger than the value that File.chmod will allow (anything >= 2^16). In that case the extraction fails with a RangeError, which is pretty esoteric. If you extract the tarball with the tar and gunzip utilities, the file permissions end up being just the bottom 16 bits masked off from the original value. I've mirrored that behavior here. Per the tar spec: > Modes which are not supported by the operating system restoring > files from the archive will be ignored. I think that basically means what I've done here. --- This commit also changes the behavior very slightly with regard to when the chmod is called. Previously it was called while the file descriptor was still open, but after the write call. When write flushes, the file permissions are changed to the mode value from the File.open call, undoing the changes made by FileUtils.chmod. CRuby appears to flush the buffer after the chmod call, whereas TruffleRuby flushes before the chmod call. So the file permissions can change depending on implementation. Both implementations end up getting the correct file permissions for the bottom 9 bits (user, group, world), but differ with regard to the sticky bit in the next 3. To get consistent behavior, this commit changes it to close the file descriptor before attempting to chmod anything, which makes it consistent because the write flushes in both cases. https://github.com/rubygems/rubygems/commit/22ce076e99 commit bf72afa76603d1ebd9e9d6e99c6dbc4d765344e6 Author: Nobuyoshi Nakada AuthorDate: 2022-09-15 09:59:05 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-15 14:48:47 +0900 Remove warning for old TLS version connection RubyGems.org already has refused connection requests using older than TLS 1.2. commit 6b2b9e0019de4e08c9164d83c81418db6584f243 Author: Hiroshi SHIBATA AuthorDate: 2022-09-15 11:23:38 +0900 Commit: git[bot] CommitDate: 2022-09-15 12:50:48 +0900 [rubygems/rubygems] Also added x86_64-darwin-21 https://github.com/rubygems/rubygems/commit/c03e7e1564 commit ec0d9a6a6f5da97a6727629ee8bd6c282c519697 Author: Hiroshi SHIBATA AuthorDate: 2022-09-15 11:22:09 +0900 Commit: git[bot] CommitDate: 2022-09-15 12:50:48 +0900 [rubygems/rubygems] Added arm64-darwin-22 to lockfiles for testing https://github.com/rubygems/rubygems/commit/d7956e9ce5 commit d152ac677cffdbc136530dd56a56c42518d29ea4 Author: Nobuyoshi Nakada AuthorDate: 2022-09-15 09:25:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-15 10:25:11 +0900 Make CodeQL ignore syntax_suggest because of the performance problem https://github.com/github/codeql/discussions/10120#discussioncomment-3485880 commit aecb57ceb0c690b05ad29a91c418e075342ea84a Author: Jemma Issroff AuthorDate: 2022-09-15 09:39:39 +0900 Commit: GitHub CommitDate: 2022-09-15 09:39:39 +0900 Fix style on vm_ivar benchmarks (#6379) Notes: Merged-By: k0kubun commit 752ae81ed168444380d265ebefcb3101ef68d890 Author: Nobuyoshi Nakada AuthorDate: 2022-09-15 01:33:17 +0900 Commit: git[bot] CommitDate: 2022-09-15 08:25:53 +0900 [ruby/irb] Refine assertion for failures https://github.com/ruby/irb/commit/fd047512b3 commit ae2e8d364f685d4034f04900e0e3ad53cecc0e05 Author: Nobuyoshi Nakada AuthorDate: 2022-09-15 01:31:34 +0900 Commit: git[bot] CommitDate: 2022-09-15 08:25:52 +0900 [ruby/irb] `Dir.mktmpdir` creates a directory including the process ID https://github.com/ruby/irb/commit/a15f68ffdb commit 513a11b477bb334413452b6004bc7d2d0a3eed4f Author: Jemma Issroff AuthorDate: 2022-09-15 05:48:40 +0900 Commit: Aaron Patterson CommitDate: 2022-09-15 05:50:47 +0900 Add vm_ivar get, get_unitialized, and lazy_set benchmarks Notes: Merged: https://github.com/ruby/ruby/pull/6376 commit f98d6d3f389e8e46775c5895ddc1a3eec4544533 Author: John Hawthorn AuthorDate: 2022-09-15 05:15:55 +0900 Commit: GitHub CommitDate: 2022-09-15 05:15:55 +0900 YJIT: Implement specialized respond_to? (#6363) * Add rb_callable_method_entry_or_negative * YJIT: Implement specialized respond_to? This implements a specialized respond_to? in YJIT. * Update yjit/src/codegen.rs Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged-By: maximecb commit d5cdc2edd02eb6990d045c932aaedb60213143e1 Author: Nobuyoshi Nakada AuthorDate: 2022-09-15 00:58:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-15 01:38:43 +0900 [TravisCI] The source of YAML is no longer bundled commit fb2e9053b3697b856785c0478762291e43e0fc55 Author: Nobuyoshi Nakada AuthorDate: 2022-09-15 00:47:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-15 01:38:42 +0900 [TravisCI] Make gems/src directory writable commit b6a9e683917745df2822a611fce64df9ae8090a7 Author: Nobuyoshi Nakada AuthorDate: 2022-09-14 23:08:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-15 00:31:35 +0900 Add noarch-fake.rb target `yes-fake` depends on it when `arch=noarch` is given, but the rule to generate it from fake.rb.in is ignored now. commit 758a1d730230ad0f4adfd7681c1fe4c8ac398bde Author: Jimmy Miller AuthorDate: 2022-09-14 23:32:22 +0900 Commit: GitHub CommitDate: 2022-09-14 23:32:22 +0900 Initial support for VM_CALL_ARGS_SPLAT (#6341) * Initial support for VM_CALL_ARGS_SPLAT This implements support for calls with splat (*) for some methods. In benchmarks this made very little difference for most benchmarks, but a large difference for binarytrees. Looking at side exits, many benchmarks now don't exit for splat, but exit for some other reason. Binarytrees however had a number of calls that used splat args that are now much faster. In my non-scientific benchmarking this made splat args performance on par with not using splat args at all. * Fix wording and whitespace Co-authored-by: Maxime Chevalier-Boisvert * Get rid of side_effect reassignment Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged-By: maximecb commit 8f37e9c91814357f79911e208ef4d0d56dfa9433 Author: Takashi Kokubun AuthorDate: 2022-09-14 23:27:52 +0900 Commit: GitHub CommitDate: 2022-09-14 23:27:52 +0900 YJIT: Add Opnd#with_num_bits to use only 8 bits (#6359) * YJIT: Add Opnd#sub_opnd to use only 8 bits * Add with_num_bits and let arm64_split use it * Add another assertion to with_num_bits * Use only with_num_bits Notes: Merged-By: maximecb commit 2e25b85a7e4268676fcdf17b5975c2fd60066ce1 Author: Kenta Murata AuthorDate: 2022-09-14 21:20:32 +0900 Commit: Kenta Murata CommitDate: 2022-09-14 23:14:36 +0900 configure.ac: Apply suggestions from code review in #6366 Co-authored-by: Nobuyoshi Nakada commit 960db13c472773926dc8c3dec8ba62d60aaa77f9 Author: S.H AuthorDate: 2022-09-14 23:10:21 +0900 Commit: GitHub CommitDate: 2022-09-14 23:10:21 +0900 Reuse `opt_arg_append` function Notes: Merged: https://github.com/ruby/ruby/pull/6373 Merged-By: nobu commit f512df73986c74e2f4bd65ca642879a0618da213 Author: Kenta Murata AuthorDate: 2022-09-14 22:17:39 +0900 Commit: GitHub CommitDate: 2022-09-14 22:17:39 +0900 configure.ac: Add --with-gmp-dir (#6366) Add the `--with-gmp-dir` to specify the prefix directory of GMP. The`--without-gmp` option is preserved for convenience. It can be used to force to reject using GMP even if the `--with-gmp-dir` option is specified. Notes: Merged-By: mrkn commit 075df960c93cb2d3ebe308f67871f39565b4426e Author: Nobuyoshi Nakada AuthorDate: 2022-09-14 15:23:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-14 21:24:40 +0900 Add comments to touch libyjit Notes: Merged: https://github.com/ruby/ruby/pull/6371 commit e1a9d8849403afea04ca2e11f97245590dcc1597 Author: Nobuyoshi Nakada AuthorDate: 2022-09-14 13:46:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-14 21:24:40 +0900 Touch libyjit.a which may be still old due to the cache Notes: Merged: https://github.com/ruby/ruby/pull/6371 commit f2429f0af57536a354159f08aac729d6e4cdef38 Author: Nobuyoshi Nakada AuthorDate: 2022-08-19 15:22:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-14 21:24:40 +0900 Expand dependency for `$(YJIT_LIBS)` Currently, miniruby is rebuild **always** when yjit is enabled, even if nothing is changed. Notes: Merged: https://github.com/ruby/ruby/pull/6371 commit d66b29ccfbedb8d669ebfed19888f9ba22a48b75 Author: NARUSE, Yui AuthorDate: 2022-09-14 17:27:38 +0900 Commit: NARUSE, Yui CommitDate: 2022-09-14 17:30:10 +0900 Add link to how to build Ruby commit 2e324b645e16e67c14de80ea34b1d61165045f22 Author: Nobuyoshi Nakada AuthorDate: 2022-09-14 00:58:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-14 11:27:05 +0900 Manage paths for bundler tests Notes: Merged: https://github.com/ruby/ruby/pull/6370 commit 035978d7be9bc3819f42f964fe6193d983cce63f Author: Nobuyoshi Nakada AuthorDate: 2022-09-14 00:06:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-14 11:27:05 +0900 Pass job-server FDs to bundler tests Notes: Merged: https://github.com/ruby/ruby/pull/6370 commit c428fc0e1f00ad1176f42157ea9df8d3d19dbd1c Author: Nobuyoshi Nakada AuthorDate: 2022-09-13 23:56:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-14 11:27:05 +0900 -undefined dynamic_lookup is obsolete Notes: Merged: https://github.com/ruby/ruby/pull/6370 commit f863bc505cf1a976aecd0ed3cb21a3a82956953e Author: Nobuyoshi Nakada AuthorDate: 2022-09-14 11:05:43 +0900 Commit: git[bot] CommitDate: 2022-09-14 11:14:08 +0900 [ruby/irb] Fix the error when LC_MESSAGES config value is nil https://github.com/ruby/irb/commit/6bbde84369 commit e2b47b832f53b2fd0626774a573a22c15a933c64 Author: Nobuyoshi Nakada AuthorDate: 2022-09-14 10:42:38 +0900 Commit: GitHub CommitDate: 2022-09-14 10:42:38 +0900 configure.ac: Manage OPT_DIR better (#6367) * Check rpath flag earlier * Manage OPT_DIR at once Notes: Merged-By: mrkn commit 9299db49f567025e28082be698e1f624b3e3f3ed Author: Jeremy Evans AuthorDate: 2022-09-14 10:15:32 +0900 Commit: git[bot] CommitDate: 2022-09-14 10:15:45 +0900 [ruby/irb] Fix history file saving with concurrent irb sessions when history file doesn't exist If history file didn't exist when irb was started, @loaded_history_mtime would be nil. However, if the history file didn't exist before, but it exists when saving history, that means the history file was modified, and we should handle it the same way as we handle the other case where the history file was modified. Fixes https://github.com/ruby/irb/pull/388 https://github.com/ruby/irb/commit/8d277aafcb commit 6a78ae2fe27d31eca233fb0aba5457d954ea7b02 Author: Takashi Kokubun AuthorDate: 2022-09-14 07:21:19 +0900 Commit: GitHub CommitDate: 2022-09-14 07:21:19 +0900 Remove CODEOWNERS to switch to auto-request-review (#6365) * Remove CODEOWNERS to switch to auto-request-review * Random change to test reviews * Revert "Random change to test reviews" This reverts commit 814b10d062d82d953019ea4afadc3f8fcf638379. Notes: Merged-By: k0kubun commit 316b44df09d3bf9dcabb8e2ce9528c72304c1bd4 Author: U.Nakamura AuthorDate: 2022-09-13 15:43:05 +0900 Commit: U.Nakamura CommitDate: 2022-09-13 15:44:29 +0900 Add GMP support for mswin commit 391eebfe6979f72ddff1d086dceb8e415aac0433 Author: Takashi Kokubun AuthorDate: 2022-09-13 10:48:31 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-13 10:48:32 +0900 Increase the timeout for make all on MinGW https://github.com/ruby/ruby/actions/runs/3041702828/jobs/4899106526#step:14:1219 commit 2e21fef6a4d10a12ef3f99b1fb9c0741a174b3cd Author: Takashi Kokubun AuthorDate: 2022-09-13 10:38:10 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-13 10:38:11 +0900 Drop synchronized event because it doesn't seem to be working. It's a bit annoying that synchronized doesn't work, but in many cases, opened and ready_for_review should be enough. As a last resort, you could close/reopen it. Also, the token scope needs to be public_repo instead of repo:status. commit 64cd097009f10e09e7e96abe3dce4c06bac43c29 Author: Takashi Kokubun AuthorDate: 2022-09-13 10:24:35 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-13 10:24:35 +0900 Tweak the glob for auto_request_review commit 9179f666fbabfe244801060d76bb95de3831c217 Author: Takashi Kokubun AuthorDate: 2022-09-13 10:17:17 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-13 10:18:17 +0900 Configure auto_request_review for YJIT team We need to use pull_request_target instead of pull_request to use secrets. pull_request_target seems to be executed from the default branch, so pushing this to master to test this. commit fcf861a138c39dbbf83091e5dd018cbf847a327b Author: Koichi Sasada AuthorDate: 2022-09-13 02:36:44 +0900 Commit: Koichi Sasada CommitDate: 2022-09-13 09:25:06 +0900 Try latest debug.gem Notes: Merged: https://github.com/ruby/ruby/pull/6362 commit 2aa8edaec701ca2d76e7be7a9b792b69574ac869 Author: David Rodríguez AuthorDate: 2022-09-09 07:05:49 +0900 Commit: git[bot] CommitDate: 2022-09-12 22:13:32 +0900 [rubygems/rubygems] Deduplicate results just once Instead of checking for uniqueness for every spec. https://github.com/rubygems/rubygems/commit/97d28c9665 commit 75d90cc8e55ec662782526094b31ada1853a161b Author: David Rodríguez AuthorDate: 2022-08-24 17:57:35 +0900 Commit: git[bot] CommitDate: 2022-09-12 22:13:31 +0900 [rubygems/rubygems] Use a single hash to keep track of prereleases https://github.com/rubygems/rubygems/commit/9d7bd177b0 commit 03d1962703a5c5eb137d25bf382861157605e6e1 Author: David Rodríguez AuthorDate: 2022-08-24 17:32:38 +0900 Commit: git[bot] CommitDate: 2022-09-12 22:13:30 +0900 [rubygems/rubygems] Remove unnecessary sorting Already done by the gem version promoter. https://github.com/rubygems/rubygems/commit/aae2cc9fe0 commit dce73c8616eb2e91cb0330c9b32f3edf8e771a67 Author: David Rodríguez AuthorDate: 2022-08-24 17:17:04 +0900 Commit: git[bot] CommitDate: 2022-09-12 22:13:30 +0900 [rubygems/rubygems] Simplify instantiating the gem version promoter https://github.com/rubygems/rubygems/commit/c4e2737f2c commit 6a21d196ba774f219956ede5d4cf276b1af433c4 Author: David Rodríguez AuthorDate: 2022-08-24 17:05:20 +0900 Commit: git[bot] CommitDate: 2022-09-12 22:13:29 +0900 [rubygems/rubygems] Let specs be sorted just once by the gem version promoter https://github.com/rubygems/rubygems/commit/3cea25a39d commit 8d2bcc88ffe603290099d626cab40afcc834a12f Author: David Rodríguez AuthorDate: 2022-08-24 15:51:47 +0900 Commit: git[bot] CommitDate: 2022-09-12 22:13:29 +0900 [rubygems/rubygems] This sorting seems unnecessary too https://github.com/rubygems/rubygems/commit/823cb1fef9 commit a4860e043e073e9caa2494284df4af10ca6550da Author: David Rodríguez AuthorDate: 2022-08-24 15:39:00 +0900 Commit: git[bot] CommitDate: 2022-09-12 22:13:28 +0900 [rubygems/rubygems] Remove unnecessary spec sorting Specs in a SpecSet with the same name are only sorted by platform priority when they are read. No need to sort everything eagerly. https://github.com/rubygems/rubygems/commit/aeafff52df commit acc61cbf4a6520904f8253c2ecf6b6665fe20e89 Author: Benoit Daloze AuthorDate: 2022-09-12 21:59:45 +0900 Commit: Benoit Daloze CommitDate: 2022-09-12 21:59:45 +0900 Add NEWS entry for the previous commit commit 6525b6f760ccd9612c9546b0313ab1c7e4af5e66 Author: Benoit Daloze AuthorDate: 2022-09-11 02:15:49 +0900 Commit: Benoit Daloze CommitDate: 2022-09-12 21:02:34 +0900 Remove get_actual_encoding() and the dynamic endian detection for dummy UTF-16/UTF-32 * And simplify callers of get_actual_encoding(). * See [Feature #18949]. * See https://github.com/ruby/ruby/pull/6322#issuecomment-1242758474 commit ed029e9bd42d7749fe22007e33c0f61d1dd3d792 Author: Nobuyoshi Nakada AuthorDate: 2022-09-12 19:53:10 +0900 Commit: GitHub CommitDate: 2022-09-12 19:53:10 +0900 Autoconf 2.70 or AC_PROG_CC_C99 for earlier is checking for C99 It is no longer necessary to add it to `CFLAGS`/`CPPFLAGS` later. Furthermore, as `CPPFLAGS` is used also with C++ compiler, the option particular to C such as `-std=gnu99` results in an error. Notes: Merged: https://github.com/ruby/ruby/pull/6361 Merged-By: nobu commit 9205b8c8010f474b2d301ccc22335c9a2c4a6cae Author: Nobuyoshi Nakada AuthorDate: 2022-09-12 01:23:52 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-12 07:47:45 +0900 Revert "defs/gmake.mk: no _FORTIFY_SOURCE unless optimization" This reverts commit b8c376cb9d91854fd40f6e06f07773404899b54f, as it seems no longer needed probably. Notes: Merged: https://github.com/ruby/ruby/pull/6356 commit 684353fc03afd6e7c887b65bd18f0b3aeb98101c Author: Jeremy Bopp AuthorDate: 2022-09-11 23:08:14 +0900 Commit: GitHub CommitDate: 2022-09-11 23:08:14 +0900 [Win32] Negative length `IO#sysread` Raise `ArgumentError` in `IO#sysread` on Windows when given a negative length. Fixes [Bug #18880] Notes: Merged: https://github.com/ruby/ruby/pull/6354 Merged-By: nobu commit 472e7b8518fbde98be3f0a06192a6695697bf879 Author: Takashi Kokubun AuthorDate: 2022-09-11 15:39:32 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-11 15:39:40 +0900 MJIT: Use the built-in PACK_MAP 106744107b made this possible. commit 106744107b485a371ed788fe590c6ce778de16df Author: Takashi Kokubun AuthorDate: 2022-09-05 16:06:43 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-11 15:30:49 +0900 [ruby/fiddle] Fix PACK_MAP for unsigned types (https://github.com/ruby/fiddle/pull/110) https://github.com/ruby/fiddle/commit/4a71246645ccff001292c9d80b855b2ef5bf06c1 commit 7232f264df41ae58b126a2915eacfd85882ef6a4 Author: Takashi Kokubun AuthorDate: 2022-09-11 10:14:56 +0900 Commit: GitHub CommitDate: 2022-09-11 10:14:56 +0900 Remove -j from MinGW test-all MinGW CI has been crashing too often. Now that we don't have slow test_mjit in MinGW, I'd like to see if not using parallel test workers fixes the problem. commit aa8a3b2358fbdc176c6bcfbcfd3ed1646d287d62 Author: Takashi Kokubun AuthorDate: 2022-09-11 08:59:27 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-11 09:09:05 +0900 MJIT: Do not hang after forking with threads First, rb_mjit_fork should call rb_thread_atfork to stop threads after fork in the child process. Unfortunately, we cannot use rb_fork_ruby to prevent this kind of mistakes because MJIT needs special handling of waiting_pid and mjit_pause/resume. Second, mjit_waitpid_finished should be checked regardless of trap_interrupt. It doesn't seem like the flag is not set when SIGCHLD is handled for an MJIT child process. commit 14bcf69c9c36875c7956d0ec8c04bfeaec514dd1 Author: Benoit Daloze AuthorDate: 2022-09-03 19:46:57 +0900 Commit: Benoit Daloze CommitDate: 2022-09-11 02:02:15 +0900 Deprecate Encoding#replicate * See [Feature #18949]. commit c7225971036afbf552673efbe25bc76d77ea6fe2 Author: Nobuyoshi Nakada AuthorDate: 2022-09-10 17:19:14 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-10 20:50:37 +0900 [MSWin] Get rid of single quotes in sed command lines GnuWin32 sed strips only double quotes, but not single quotes, and dies: ``` sed: -e expression #1, char 1: unknown command: `'' ``` commit 92b907d12d6de6f74f1efa6d8cd4fed8fa50763e Author: Benoit Daloze AuthorDate: 2022-09-03 22:47:49 +0900 Commit: Benoit Daloze CommitDate: 2022-09-10 20:14:18 +0900 Enable deprecation warnings for test-all * So deprecated methods/constants/functions are dealt with early, instead of many tests breaking suddenly when removing a deprecated method/constant/function. * Follows https://bugs.ruby-lang.org/issues/17591 Notes: Merged: https://github.com/ruby/ruby/pull/6321 commit 5e39b3b844d5601541deb7cb0648d88cc6fdc080 Author: John Hawthorn AuthorDate: 2022-09-09 13:51:39 +0900 Commit: John Hawthorn CommitDate: 2022-09-10 12:29:40 +0900 YJIT: Branch directly when nil? is known from types Notes: Merged: https://github.com/ruby/ruby/pull/6350 commit d3191843909208477ada3b82db00fb6204696479 Author: John Hawthorn AuthorDate: 2022-09-06 07:20:08 +0900 Commit: John Hawthorn CommitDate: 2022-09-10 12:29:40 +0900 YJIT: Branch directly when truthyness is known Notes: Merged: https://github.com/ruby/ruby/pull/6350 commit 79f50b9d02b228aba2d8887422f00767046051a6 Author: S-H-GAMELINKS AuthorDate: 2022-09-10 02:00:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-10 09:32:51 +0900 Using is_broken_string function Notes: Merged: https://github.com/ruby/ruby/pull/6346 commit 518301883edee12218657c77ba977e2bde1b17d0 Author: Lars Kanis AuthorDate: 2022-09-10 02:32:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-10 09:32:27 +0900 Fix parallel build on MINGW When the build is running with a base ruby then generating `x64-ucrt-ruby320.rc` could fail due to a missing dependency to `x64-mingw-ucrt-fake.rb`. This commit adds this dependency. A failing build looks like so: ``` generating x64-mingw-ucrt-fake.rb generating x64-ucrt-ruby320.rc ../snapshot-master/win32/resource.rb:in `require': cannot load such file -- ./x64-mingw-ucrt-fake (LoadError) make: *** [GNUmakefile:57: x64-ucrt-ruby320.rc] Error 1 make: *** Waiting for unfinished jobs.... linking miniruby.exe x64-mingw-ucrt-fake.rb updated ``` Notes: Merged: https://github.com/ruby/ruby/pull/6347 commit 5b5c627d37c1773dd280e0f14d9510f8fa8db04f Author: Maxime Chevalier-Boisvert AuthorDate: 2022-09-10 07:41:19 +0900 Commit: GitHub CommitDate: 2022-09-10 07:41:19 +0900 YJIT: eliminate redundant mov in csel/cmov on x86 (#6348) * Eliminate redundant mov in csel/cmov. Translate mov reg,0 into xor * Fix x86 asm test * Remove dbg!() * xor optimization unsound because it resets flags Notes: Merged-By: maximecb commit 848037cadd63091d5c39d06cd5d49aeee2258b4e Author: Kevin Newton AuthorDate: 2022-09-10 00:37:41 +0900 Commit: GitHub CommitDate: 2022-09-10 00:37:41 +0900 Better offsets (#6315) * Introduce InstructionOffset for AArch64 There are a lot of instructions on AArch64 where we take an offset from PC in terms of the number of instructions. This is for loading a value relative to the PC or for jumping. We were usually accepting an A64Opnd or an i32. It can get confusing and inconsistent though because sometimes you would divide by 4 to get the number of instructions or multiply by 4 to get the number of bytes. This commit adds a struct that wraps an i32 in order to keep all of that logic in one place. It makes it much easier to read and reason about how these offsets are getting used. * Use b instruction when the offset fits on AArch64 Notes: Merged-By: maximecb commit b350053ae47dc4653ecb85f64360cf6eafba6323 Author: David Rodríguez AuthorDate: 2022-09-08 06:01:03 +0900 Commit: git[bot] CommitDate: 2022-09-09 19:38:52 +0900 [rubygems/rubygems] Fix resolution on non-musl platforms Gems without specific platform were being preferred over matching platform specific gems. https://github.com/rubygems/rubygems/commit/37b95b9159 commit cfe10e482e0657195cadf01f0be72e11b7fb62b4 Author: Nobuyoshi Nakada AuthorDate: 2022-09-09 18:58:07 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-09 18:58:07 +0900 [DOC] Update `Struct#new` behavior with `keyword_init: true` commit aff6534e32b5e46036808ed0579d31a8dbad8190 Author: Kazuki Yamaguchi AuthorDate: 2022-09-08 22:12:02 +0900 Commit: Kazuki Yamaguchi CommitDate: 2022-09-09 16:03:20 +0900 Avoid unnecessary copying when removing the leading part of a string Remove the superfluous str_modify_keep_cr() call from rb_str_update(). It ends up calling either rb_str_drop_bytes() or rb_str_splice_0(), which already does checks if necessary. The extra call makes the string "independent". This is not always wanted, in other words, it can keep the same shared root when merely removing the leading part of a shared string. Notes: Merged: https://github.com/ruby/ruby/pull/6336 commit 9faa9ced9640d23fc5dc1efd635f6b8ebc1a3ceb Author: Nobuyoshi Nakada AuthorDate: 2022-09-09 14:13:42 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-09 15:47:24 +0900 Support sub-library in builtin-loader Previously, it was supported in prelude.c, but has not followed up the builtin-loader system. Notes: Merged: https://github.com/ruby/ruby/pull/6344 commit 56e5210cdeda685b5948148b7ea5c72eac0b5e06 Author: Aaron Patterson AuthorDate: 2022-09-09 15:19:23 +0900 Commit: GitHub CommitDate: 2022-09-09 15:19:23 +0900 More robust macro parser (#6343) I want to use more complicated macros with MJIT. For example: ``` # define SHAPE_MASK (((unsigned int)1 << SHAPE_BITS) - 1) ``` This commit adds a simple recursive descent parser that produces an AST and a small visitor that converts the AST to Ruby. Notes: Merged-By: k0kubun commit be560332484c8893bec004f1250e48edcd4720e0 Author: Nobuyoshi Nakada AuthorDate: 2022-09-09 11:52:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-09 14:23:39 +0900 Move RDoc `--`/`++` directives to comments commit 2dcaeb75ff0e0a2fbafc4df0df9d7be119235415 Author: Nobuyoshi Nakada AuthorDate: 2022-09-09 11:51:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-09 14:20:47 +0900 Built-in function table sentinels do not need names commit db0e0dad1171456253ebd899e7e878823923d3d8 Author: Kazuki Tsujimoto AuthorDate: 2022-09-09 14:00:27 +0900 Commit: Kazuki Tsujimoto CommitDate: 2022-09-09 14:00:27 +0900 Fix unexpected "duplicated key name" error in paren-less one line pattern matching [Bug #18990] commit 59eadf3d25b0f53e7570f98f1801737af642f328 Author: Nobuyoshi Nakada AuthorDate: 2022-09-09 11:35:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-09 11:36:15 +0900 Ignore EACCES on Windows commit 35cfc9a3bb0078c297eb70520216ad228f2083e1 Author: Kevin Newton AuthorDate: 2022-09-09 06:09:50 +0900 Commit: GitHub CommitDate: 2022-09-09 06:09:50 +0900 Remove as many unnecessary moves as possible (#6342) This commit does a bunch of stuff to try to eliminate as many unnecessary mov instructions as possible. First, it introduces the Insn::LoadInto instruction. Previously when we needed a value to go into a specific register (like in Insn::CCall when we're putting values into the argument registers or in Insn::CRet when we're putting a value into the return register) we would first load the value and then mov it into the correct register. This resulted in a lot of duplicated work with short live ranges since they basically immediately we unnecessary. The new instruction accepts a destination and does not interact with the register allocator at all, making it much more efficient. We then use the new instruction when we're loading values into argument registers for AArch64 or X86_64, and when we're returning a value from AArch64. Notably we don't do it when we're returning a value from X86_64 because everything can be accomplished with a single mov anyway. A couple of unnecessary movs were also present because when we called the split_load_opnd function in a lot of split passes we were loading all registers and instruction outputs. We no longer do that. This commit also makes it so that UImm(0) passes through the Insn::Store split without attempting to be loaded, which allows it can take advantage of the zero register. So now instead of mov-ing 0 into a register and then calling store, it just stores XZR. Notes: Merged-By: maximecb commit e4f5296f065110fa83eb450d3a861253e76e534f Author: Nobuyoshi Nakada AuthorDate: 2022-03-31 09:39:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-09 01:33:53 +0900 No longer bundle external library sources commit 28030f7b543299b3f5af41a3c9cf445d23820d26 Author: YO4 AuthorDate: 2022-09-07 22:45:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-09 00:45:56 +0900 eliminate magic number Notes: Merged: https://github.com/ruby/ruby/pull/6328 commit 81e7573a64b0544da7172966b88e797033b1eae6 Author: YO4 AuthorDate: 2022-09-03 01:03:10 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-09 00:45:56 +0900 win32.c additional fix: is_readable_console classic console(conhost.exe) reports an input with ALT+NUMPAD as VK_MENU, KeyUp, and uChar!=0. additional fix for #5634 Notes: Merged: https://github.com/ruby/ruby/pull/6328 commit 7a849e1903f3943351773190a1e39e0445b55204 Author: YO4 AuthorDate: 2022-09-03 00:53:09 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-09 00:45:56 +0900 win32.c fix: is_readable_console UnicodeChar with lower byte == 0 has dropped accidentaly this is additional fix for #5634 Notes: Merged: https://github.com/ruby/ruby/pull/6328 commit e2ccb316b437104cd1734c378970d34f5305966d Author: Nobuyoshi Nakada AuthorDate: 2022-09-05 20:23:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-08 23:01:07 +0900 [Bug #5317] Use `rb_off_t` instead of `off_t` Get rid of the conflict with system-provided small `off_t`. Notes: Merged: https://github.com/ruby/ruby/pull/6329 commit 55fef084dac843caf155f03077773704b36e139e Author: Nobuyoshi Nakada AuthorDate: 2022-09-05 20:17:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-08 23:01:07 +0900 [Win32] Remove dead code using `chsize` Already using `rb_w32_truncate` and `rb_w32_ftruncate`, and `HAVE_FTRUNCATE` has been added 14 years ago. Notes: Merged: https://github.com/ruby/ruby/pull/6329 commit b7fa78b0f3c42d698aff7d6003d839febcbb4740 Author: Jean Boussier AuthorDate: 2022-09-08 21:07:43 +0900 Commit: Jean Boussier CommitDate: 2022-09-08 22:02:21 +0900 vm_objtostring: skip method lookup for T_STRING receivers We don't need it, and in string interpolation context that's the common case. Notes: Merged: https://github.com/ruby/ruby/pull/6334 commit cd1724bddeac5dd4c01ab0a2d527110fff9cf5f9 Author: Jean Boussier AuthorDate: 2022-09-08 19:43:03 +0900 Commit: Jean Boussier CommitDate: 2022-09-08 22:02:21 +0900 rb_str_concat_literals: use rb_str_buf_append That's about 1.30x faster. Notes: Merged: https://github.com/ruby/ruby/pull/6334 commit e0cd466ae71cd483b73d28128df1a02dd52fcb92 Author: David Rodríguez AuthorDate: 2022-09-08 19:10:34 +0900 Commit: git[bot] CommitDate: 2022-09-08 20:44:35 +0900 [rubygems/rubygems] Fix unused variable warning https://github.com/rubygems/rubygems/commit/ca8d47e53a commit bcf82b7c26a88a2521715a38990f0ab081001190 Author: Nobuyoshi Nakada AuthorDate: 2022-09-08 15:36:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-08 18:22:47 +0900 Process token IDs from id.def without id.h Fixes id.h error during updating ripper.c by `make after-update`. While it used to update id.h in the build directory, but was trying to update ripper.c in the source directory. In principle, files in the source directory can or should not depend on files in the build directory. commit a977c663123f7256f51201ed8390dc84adf63cf6 Author: Nobuyoshi Nakada AuthorDate: 2022-09-08 15:25:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-08 18:18:56 +0900 Generate token ID indexes in id.def Separate the logic accross the tables from the template view for id.h. commit 7400628cb054a9a9651d69411a100fc9d518099f Author: Xin Li AuthorDate: 2022-09-08 17:37:37 +0900 Commit: GitHub CommitDate: 2022-09-08 17:37:37 +0900 [Bug #18997] Don't define ruby_qsort when POSIX qsort_r is available The current code would define ruby_qsort as a wrapper of qsort_s when it is available. When both qsort_s and POSIX (GNU) qsort_r are available, we should call qsort_r directly instead, and the qsort_s wrapper is redundant. Notes: Merged: https://github.com/ruby/ruby/pull/6332 Merged-By: nobu commit 78af05ba0f29d1fc290dc24a6a5fb645386e7d62 Author: rm155 AuthorDate: 2021-07-28 01:47:31 +0900 Commit: git[bot] CommitDate: 2022-09-08 14:31:42 +0900 [ruby/forwardable] Freeze VERSION and FORWARDABLE_VERSION to improve Ractor-compliance https://github.com/ruby/forwardable/commit/c91f41f4fa commit 70e6be2b055d78d3c475368d744c423564597f6e Author: rm155 AuthorDate: 2021-07-20 10:48:33 +0900 Commit: git[bot] CommitDate: 2022-09-08 14:09:06 +0900 [ruby/ipaddr] Improve Ractor-compliance https://github.com/ruby/ipaddr/commit/73461724e5 commit e76a550876356093a0e48bd540ae80daafedcba0 Author: Nobuyoshi Nakada AuthorDate: 2022-09-06 20:22:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-08 13:41:02 +0900 [MSWin] Fix for non-Windows (cygwin/msys) BASERUBY Notes: Merged: https://github.com/ruby/ruby/pull/6331 commit 26c4230404b62475813c50561751487735d6bbdd Author: Nobuyoshi Nakada AuthorDate: 2022-09-06 18:57:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-08 13:41:02 +0900 [MSWin] Disable rubygems of BASERUBY Notes: Merged: https://github.com/ruby/ruby/pull/6331 commit 332d29df5342996ce153e65c3096f1b9027afe01 Author: Nobuyoshi Nakada AuthorDate: 2022-09-08 11:49:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-08 11:52:16 +0900 [DOC] non-positive `base` in `Kernel#Integer` and `String#to_i` commit 24fd2f73d0835eea534225a6381551d591764002 Author: David Rodríguez AuthorDate: 2022-09-07 14:13:04 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-08 11:25:03 +0900 Resync Bundler & RubyGems Notes: Merged: https://github.com/ruby/ruby/pull/6330 commit 2d57447ae80e0b0895d6d22d606391b48516ba93 Author: Nobuyoshi Nakada AuthorDate: 2022-09-07 19:07:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-07 19:07:24 +0900 Fix missing replacement in 1f91dcdab3b commit 1f91dcdab3b530dde93fa29fba8bf60683cd8056 Author: Nobuyoshi Nakada AuthorDate: 2022-09-06 15:15:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-07 14:33:25 +0900 Define BOOTSTRAPRUBY from HAVE_BASERUBY commit cac0dcfbffe630a0c763392358ca745007ae854d Author: Takashi Kokubun AuthorDate: 2022-09-07 14:26:29 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-07 14:26:58 +0900 Fix typo I meant the other one. Otherwise this option doesn't make sense. commit 496bdf01e25cb13f0b676d0f23f47bb04907b1f6 Author: Takashi Kokubun AuthorDate: 2022-09-07 10:46:49 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-07 14:14:01 +0900 Adjust pch_status for --mjit=pause to let mjit_add_iseq_to_process work commit f0661bf3a04a3edfe157462f87e2c588dca955ad Author: Takashi Kokubun AuthorDate: 2022-09-07 10:40:22 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-07 10:40:23 +0900 Skip early mjit_add_iseq_to_process on --mjit=pause commit e6b47f2fb077d1a3bcef9100846b633989a93cfe Author: Nobuyoshi Nakada AuthorDate: 2022-09-07 10:27:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-07 10:37:01 +0900 Now Psych uses the proleptic Gregorian calendar commit f24c65ea7e68d97e92e5ccdb0e1a95c017dc5ebf Author: Takashi Kokubun AuthorDate: 2022-09-07 10:25:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-07 10:25:46 +0900 Skip calling check_unit_queue with mjit_opts.custom fixing the behavior of b726c06e7eeafff52e368179dbe79a11b1aff975 commit 6a43245e6cda89eddd105f5a6e0182a7229657af Author: Nobuyoshi Nakada AuthorDate: 2022-09-06 15:13:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-07 10:08:24 +0900 Use BOOTSTRAPRUBY_COMMAND instead of fake.rb directly commit 3a575d13d55751c6b5f34d26a8d87a4c449ddaeb Author: Nobuyoshi Nakada AuthorDate: 2022-09-06 13:45:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-07 10:08:23 +0900 Ensure BASERUBY when cross-compiling commit 1b034d66f529d662b0ae61cba1fb8622dac3169c Author: Chad Wilson AuthorDate: 2022-09-04 01:18:15 +0900 Commit: git[bot] CommitDate: 2022-09-07 09:51:57 +0900 [ruby/psych] Bump snakeyaml from 1.28 to 1.31 Resolves CVE-2022-25857, among other fixes. https://github.com/ruby/psych/commit/918cd25d37 commit cbdde8e0c574f19e170c3de05dd0bbd276acb741 Author: Nobuyoshi Nakada AuthorDate: 2022-08-09 09:22:53 +0900 Commit: git[bot] CommitDate: 2022-09-07 09:44:14 +0900 [ruby/psych] Dump Date/DateTime as proleptic Gregorian date as well as Time Fix ruby/psych#572 https://github.com/ruby/psych/commit/92304269bc commit bfa6d0f6d75f375e4055fb7f5af8194aa1de5947 Author: Hiroshi SHIBATA AuthorDate: 2022-09-07 09:41:28 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-07 09:41:28 +0900 fixup 8cd6f2a0872e74c6cc089d2a4f8140483080c67a we should handle ensure block when omit this test commit d5752f73d2288f5ccce0ff6015d929227b914588 Author: Takashi Kokubun AuthorDate: 2022-09-07 06:21:00 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-07 06:21:13 +0900 Add another method for debugging commit 4c1f6750f2c333be2adf7ceab644598b230606d2 Author: Antonio Paulino AuthorDate: 2022-08-30 04:00:07 +0900 Commit: git[bot] CommitDate: 2022-09-07 06:18:58 +0900 [rubygems/rubygems] Fix: Gem info bug with version flag https://github.com/rubygems/rubygems/commit/e4cee1f975 commit 87ef90909b7656aaf8bb968376b879f9aa207a0b Author: Takashi Kokubun AuthorDate: 2022-09-07 05:54:37 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-07 05:55:55 +0900 Drop an unused method for debugging and add another useful one instead. commit 51022b8e06ae81daa8a84a1122f329119ed95d31 Author: Nobuyoshi Nakada AuthorDate: 2022-09-07 00:04:28 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-07 00:04:28 +0900 Exit status macros need sys/wait.h on FreeBSD commit 1f77cc3894d42b6c063ce640b27ae5bb24bc8b55 Author: David Rodríguez AuthorDate: 2022-09-06 13:46:21 +0900 Commit: git[bot] CommitDate: 2022-09-06 17:11:47 +0900 [rubygems/rubygems] Fix `set` not being found when running specs on dev rubies https://github.com/rubygems/rubygems/commit/c5b2960388 commit c664264c0713861e55c82b2dced9cc37977392ad Author: David Rodríguez AuthorDate: 2022-09-05 14:05:44 +0900 Commit: git[bot] CommitDate: 2022-09-06 17:11:47 +0900 [rubygems/rubygems] Add `syntax_suggest` to exemption list in setup specs https://github.com/rubygems/rubygems/commit/f9a51e4380 commit 29bc3e0daf7fcf49a7a37afc0a2eeb62f567800a Author: Hiroshi SHIBATA AuthorDate: 2022-09-06 16:24:55 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-06 16:27:12 +0900 omit random failure in bootstraptest with freebsd http://rubyci.s3.amazonaws.com/freebsd13/ruby-master/log/20220902T063002Z.fail.html.gz commit 8cd6f2a0872e74c6cc089d2a4f8140483080c67a Author: Hiroshi SHIBATA AuthorDate: 2022-09-06 16:02:06 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-06 16:27:12 +0900 omit random failure tests with FreeBSD http://rubyci.s3.amazonaws.com/freebsd13/ruby-master/log/20220906T043002Z.fail.html.gz http://rubyci.s3.amazonaws.com/freebsd13/ruby-master/log/20220905T103002Z.fail.html.gz commit 03ae415d500ba6fa0d990971485bab52d5e2f5a7 Author: Takashi Kokubun AuthorDate: 2022-09-06 16:22:43 +0900 Commit: GitHub CommitDate: 2022-09-06 16:22:43 +0900 Fix typo commit 3f9125aaba7432ab96926f98619297991a40f3bf Author: Takashi Kokubun AuthorDate: 2022-09-06 16:09:29 +0900 Commit: GitHub CommitDate: 2022-09-06 16:09:29 +0900 Update c_32.rb commit 4214023309ec68f49b30d8a1ee691b05ce75e287 Author: Takashi Kokubun AuthorDate: 2022-09-06 15:59:05 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-06 15:59:08 +0900 Run mjit-bindgen again I'm thinking about Ruby builtin code instead of doing this. It'll be hopefully more portable and easier because the same C code could handle both 32bit and 64bit. commit b726c06e7eeafff52e368179dbe79a11b1aff975 Author: Takashi Kokubun AuthorDate: 2022-09-06 13:31:07 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-06 15:52:02 +0900 Allow hooking a different method after --mjit=pause The interface is similar to RubyVM::ISeq.translate; it's used if defined. Same as --mjit=pause, this is an undocumented feature for MJIT experiments. commit 341b40bd0c2228a7759852b82af1fb11c15751e6 Author: Takashi Kokubun AuthorDate: 2022-09-06 12:57:24 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-06 15:50:14 +0900 Cache RubyVM::MJIT constants for performance commit 5b3bd91fcba7224e9ece54c862dc96461cf4bf79 Author: Takashi Kokubun AuthorDate: 2022-09-06 12:33:51 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-06 15:45:10 +0900 Add an option to lazily boot MJIT for experiments You may use `RUBYOPT=--mjit=pause irb` to play with RubyVM::MJIT::C, control the boot timing of MJIT, or customize the implementation while paused. It's an undocumented feature for such experiments. commit f6925fab853ffc1872038f33d93e4e5c5379b4db Author: Takashi Kokubun AuthorDate: 2022-09-06 11:43:46 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-06 15:42:02 +0900 Do not fork the process on --mjit-wait fork is for parallel compilation, but --mjit-wait cancels it. It's more useful to not fork it for binding.irb, debugging, etc. commit f4dbfa0f04448386a662611682adf6b2219089a4 Author: Takashi Kokubun AuthorDate: 2022-09-06 15:40:12 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-06 15:40:13 +0900 Skip test_redefinition_mismatch on trunk-mjit for now Investigating: http://ci.rvm.jp/logfiles/brlog.trunk-mjit.20220906-025646 which is not immediately reproducible on my laptop. commit 2657d8efb9d38761c1e09f54fadea41fcc08d090 Author: Hiroshi SHIBATA AuthorDate: 2022-09-06 10:40:56 +0900 Commit: git[bot] CommitDate: 2022-09-06 10:41:20 +0900 [ruby/set] Bump version to 1.0.3 https://github.com/ruby/set/commit/e2419f2d30 commit 63ed61e322178eebb425b7a9ad7f84dc52ef6c6f Author: Takashi Kokubun AuthorDate: 2022-09-06 00:37:07 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-06 00:39:37 +0900 Deal with MJIT_FORCE_ENABLE miniruby http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/4225469 commit 27eb7158ee2f51902f4585a20cfbc9705c6b332d Author: Takashi Kokubun AuthorDate: 2022-09-06 00:23:53 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-06 00:26:34 +0900 Workaround unused variable warning by builtin ``` :43: warning: assigned but unused variable - iseq_addr :48: warning: assigned but unused variable - ci_addr :53: warning: assigned but unused variable - ci_addr :58: warning: assigned but unused variable - ci_addr :63: warning: assigned but unused variable - ci_addr :64: warning: assigned but unused variable - cc_addr :65: warning: assigned but unused variable - iseq_addr :75: warning: assigned but unused variable - operands_addr :80: warning: assigned but unused variable - compiled_body_addr :81: warning: assigned but unused variable - captured_body_addr :87: warning: assigned but unused variable - body_addr :88: warning: assigned but unused variable - is_entries_addr :100: warning: assigned but unused variable - opes_addr :110: warning: assigned but unused variable - cc_entries_addr ``` It's clearly a false positive. Until we fix builtin itself, I'd like to suppress this. commit 6bc6c8d03184e29cc72df42d6487e39817d2ed1b Author: David Rodríguez AuthorDate: 2022-09-05 15:54:22 +0900 Commit: git[bot] CommitDate: 2022-09-05 21:21:15 +0900 [rubygems/rubygems] Remove no longer needed `fiddle` hacks RubyInstaller has released patch versions backporting their changes to not load `fiddle` on boot, so all these are no longer necessary. https://github.com/rubygems/rubygems/commit/05a307deb2 commit a8a7c9d05d2f9a4f49b43a42d8430faa37c4a4c6 Author: Nobuyoshi Nakada AuthorDate: 2022-09-05 18:21:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-05 19:36:21 +0900 [DOC] [Bug #17120] Fix match-reset `\K` commit 113581d288496f8f3e60851b76b751c081c87213 Author: Hiroshi SHIBATA AuthorDate: 2022-09-05 19:05:23 +0900 Commit: git[bot] CommitDate: 2022-09-05 19:05:45 +0900 [ruby/set] Set version to 1.0.3.dev for fixing rubygems/bundler tests https://github.com/ruby/set/commit/40dda15d7f commit 915cbdb226ebc618f78df05527e82de392aa4152 Author: Takashi Kokubun AuthorDate: 2022-09-05 18:02:13 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-05 18:02:17 +0900 Stop testing MJIT on s390x It didn't work either. http://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20220905T080003Z.fail.html.gz commit cb26917d1cfa6a02d5e1e951ebec4e9c886902cf Author: Takashi Kokubun AuthorDate: 2022-09-05 17:17:12 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-05 17:25:00 +0900 Drop Solaris support for MJIT I tried to debug: http://rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20220905T070005Z.fail.html.gz but I don't have sudo privilege to install dependencies such as xz on that machine. Thus I can't extract a prebuilt libclang binary. Anyway, if we find out ABI is different from x86_64 / aarch64, we'd like to have sparc CI associated to GitHub to run `make mjit-bindgen`, but we can't. Supporting this could be too hard, so I'm leaving it for now. commit 06eb9af8c0d6f415f96a81d4af5c7f8fe3c14ebc Author: Takashi Kokubun AuthorDate: 2022-09-05 17:06:37 +0900 Commit: GitHub CommitDate: 2022-09-05 17:06:37 +0900 Add mjit-bindgen workflow (#6327) Notes: Merged-By: k0kubun commit c2986f7d28539ed81085272f17c2ce53435a06d1 Author: Takashi Kokubun AuthorDate: 2022-09-05 16:26:24 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-05 16:27:49 +0900 Fix warnings from private_constant `private_constant *constants` seems to be warned for some reason commit d77c037a16e524acf3804f484b6d2c231e3c3880 Author: Takashi Kokubun AuthorDate: 2022-09-05 15:25:26 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-05 15:25:35 +0900 Automatically detect 64bit platforms commit 967fe334bb7f503788816df475970b8b0c3ffb3e Author: Takashi Kokubun AuthorDate: 2022-09-05 15:22:51 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-05 15:23:03 +0900 s390x seems like a 64bit architecture commit 3eca1e438db6fabaa7cd5e5a7120da147ac0ec26 Author: Hiroshi SHIBATA AuthorDate: 2022-09-05 09:15:30 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-05 14:37:12 +0900 Merge https://github.com/rubygems/rubygems/commit/16c3535413afebcdbab7582c6017c27b5da8a8dc Notes: Merged: https://github.com/ruby/ruby/pull/6326 commit 3767c6a90d8970f9b39e9ed116a7b9bbac3f9f26 Author: Takashi Kokubun AuthorDate: 2022-09-05 13:53:46 +0900 Commit: GitHub CommitDate: 2022-09-05 13:53:46 +0900 Ruby MJIT (#6028) Notes: Merged-By: k0kubun commit 277498e2a2b62b564e3d39ca54aa15b6e8a2c41a Author: Takashi Kokubun AuthorDate: 2022-09-05 13:44:52 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-05 13:45:13 +0900 Attempt to fix test-bundler f7cf641469161c3770b58f79e08e312512212aa8 broke spec/bundler/install/gems/resolving_spec.rb:356. This line seems to impact that test, so I slightly modified the implementation for that spec's case. commit 45fe7f757522ed7d1d3ec754da59d41d45dd6bab Author: Mike Dalessio AuthorDate: 2022-09-04 02:30:07 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-05 11:43:14 +0900 [rubygems/rubygems] Feature: `bundle add` supports `--path` option https://github.com/rubygems/rubygems/commit/32bee01fbe commit f7cf641469161c3770b58f79e08e312512212aa8 Author: David Rodríguez AuthorDate: 2022-05-09 17:40:23 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-05 11:43:14 +0900 [rubygems/rubygems] Fix resolution hanging on musl platforms After recent musl support was added, Bundler started hanging in musl platforms. I identified the issue where valid candidates were being filtered out because their platform was specified as a string, and thus `Gem::Platform.match_spec?` which under the hood ends up calling `Gem::Platform#===` would return `nil`, because it does not support comparing platforms to strings. In particular, `Bundler::EndpointSpecification`'s platform coming from the API was not instantiated as a `Gem::Platform`, hence the issue. Also, this spec surfaced another issue where a bug corrected in `Gem::Platform#match_platforms` had not been yet backported to Bundler. So this commit also backports that to get the spec green across RubyGems versions. Finally, the fix in `Bundler::EndpointSpecification` made a realworld spec start failing. This spec was faking out `rails-4.2.7.1` requirement on Bundler in the `Gemfile.lock` file to be `>= 1.17, < 3` when the real requirement is `>= 1.17, < 2`. Due to the bug in `Bundler::EndpointSpecification`, the real requirement provided by the compact index API (recorded with VCR) was being ignored, and the `Gemfile.lock` fake requirement was being used, which made the spec pass. This is all expected, and to fix the issue I changed the spec to be really realworld and don't fake any Bundler requirements. https://github.com/rubygems/rubygems/commit/faf4ef46bc commit 1420333455ba335f46887ee7a06c4ee95faa37ad Author: Nobuyoshi Nakada AuthorDate: 2022-09-05 11:25:42 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-05 11:25:42 +0900 Fix fake.rb expansion from preprocessed version.h commit 85a483169f8381bec08ff2c9a9fc66167fc8a84a Author: Nobuyoshi Nakada AuthorDate: 2022-09-05 11:09:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-05 11:16:20 +0900 Use cross compiling settings as fake.rb for snapshots commit 68a092a4691efc8aba9a8ae7b27c2ad51c840bf9 Author: Nobuyoshi Nakada AuthorDate: 2022-09-05 11:00:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-05 11:16:20 +0900 Set fake.rb variables by command line arguments Then fallbacks to preprocessed version.h. commit f6d569b7c0ae7cb5e08534330cdf94572a12e869 Author: Takashi Kokubun AuthorDate: 2022-09-05 10:21:56 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-05 10:22:25 +0900 Call appropriate hooks on MJIT's fork This takes care of signal_self_pipe and other things. commit 76664905a589416739a13241e7b8535d78984723 Author: Nobuyoshi Nakada AuthorDate: 2022-09-04 23:49:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-04 23:59:55 +0900 Ignore fake.rb for snapshot commit bbe5ec78463f8d6ef2e1a3571f17357a3d9ec8e4 Author: Jean Boussier AuthorDate: 2022-09-04 16:44:59 +0900 Commit: Jean Boussier CommitDate: 2022-09-04 18:16:11 +0900 rb_int_range_last: properly handle non-exclusive range [Bug #18994] Notes: Merged: https://github.com/ruby/ruby/pull/6324 commit cfa40e225adb30b777ef50d9d8dc15a51e3d2797 Author: Takashi Kokubun AuthorDate: 2022-09-04 12:01:50 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-04 12:01:51 +0900 Prefer stdbool for MJIT options same motivation as d6f21b308bcff03e82f8b3dbf11a852ce111b3b3 commit 45004bba6b4fa22429b1c45f13444a894874c41e Author: Nobuyoshi Nakada AuthorDate: 2022-09-03 22:24:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-04 02:07:11 +0900 fake.rb needs id.h commit 0111dc5b79a8cfe81f467cfcf589dd4042e0384c Author: Nobuyoshi Nakada AuthorDate: 2022-09-03 23:47:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-03 23:47:46 +0900 [DOC] Escape backqoute method not to be converted to smart quotes commit baf050100d44ffb10afb345543db4a6b20f1b285 Author: Nobuyoshi Nakada AuthorDate: 2022-09-03 23:26:07 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-03 23:26:07 +0900 [DOC] Remove extra page-dir prefix to fix broken link commit fe865c5262bb2daea64f488b9247780e5fae7ac7 Author: Burdette Lamar AuthorDate: 2022-09-03 22:36:44 +0900 Commit: GitHub CommitDate: 2022-09-03 22:36:44 +0900 [DOC] Enhanced RDoc for Time (#6320) Treats: #yday #dst? #zone #to_a #strftime Notes: Merged-By: BurdetteLamar commit 2767cb282531be10c6393d3d7c48fcdd2935ca4d Author: Nobuyoshi Nakada AuthorDate: 2022-09-03 21:57:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-03 21:57:17 +0900 Now fake.rb is needed to prepare sources commit a01271c1c46079cb6f7f32051f1253cf3d9bca6b Author: Nobuyoshi Nakada AuthorDate: 2022-09-03 21:37:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-03 21:37:24 +0900 BOOTSTRAPRUBY needs fake.rb when cross-compiling commit 7c67d0fd79a3cffe857587fa3cf576b611023840 Author: Nobuyoshi Nakada AuthorDate: 2022-09-02 23:41:41 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-03 19:25:29 +0900 Make sources by BASERUBY if available instead of miniruby commit 8f13d75a8c959abab6964a47c99e333fdce3201c Author: Nobuyoshi Nakada AuthorDate: 2022-09-03 03:31:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-03 19:20:03 +0900 Generate the prelude sources by common-srcs commit 6f5305e0d2b4711b186ece8160716c7f9439ea8d Author: Nobuyoshi Nakada AuthorDate: 2022-09-03 01:08:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-03 19:20:03 +0900 Exclude LIBPATHENV wrapper from PREP commit 21a5da3c4c803987c48bc9ca588948c50715631a Author: Nobuyoshi Nakada AuthorDate: 2022-09-03 03:21:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-03 19:20:03 +0900 Check if MSys shell can run a command with a drive letter commit d8f81ffdff668b457339885c15d7cee785ad38be Author: Nobuyoshi Nakada AuthorDate: 2022-09-03 14:45:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-03 19:20:03 +0900 builtin.c includes mini_builtin.c when cross-compiling commit 652a624891eae34c3ba7b60eeb5419f0434f8e5e Author: Nobuyoshi Nakada AuthorDate: 2022-09-03 15:10:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-03 19:19:55 +0900 miniruby may not be built when cross-compiling commit c4f2f2ef2b1ad430deeaca9fd23bf433bc63160b Author: Nobuyoshi Nakada AuthorDate: 2022-09-03 16:20:58 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-03 18:42:42 +0900 Reuse macros defined in Makefile.in commit bc5b9be1ee44817614bc8311e671fc79ca730625 Author: Nobuyoshi Nakada AuthorDate: 2022-09-02 22:41:07 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-03 15:01:05 +0900 Move duplicate dependencies commit c8c90e459e37632fee74718d77c63c22814268f7 Author: Burdette Lamar AuthorDate: 2022-09-03 04:11:53 +0900 Commit: GitHub CommitDate: 2022-09-03 04:11:53 +0900 Enhanced RDoc for Time [DOC] (#6319) Notes: Merged-By: BurdetteLamar commit 5044832fec85514b69c0fcb3524efd2e3e435087 Author: Nobuyoshi Nakada AuthorDate: 2022-09-02 22:11:12 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-02 22:11:12 +0900 `w_bigfixnum` is used only for large FIXNUM commit 0d2422cf63ff330e372613894995e762d122e6b7 Author: Hiroshi SHIBATA AuthorDate: 2022-09-02 14:26:17 +0900 Commit: git[bot] CommitDate: 2022-09-02 16:09:51 +0900 [ruby/reline] Workaround for padding width with Alacritty on macOS https://github.com/ruby/reline/commit/fb4136c8a7 commit 7ff50ee35c01dbd8d21e395261290890a669de82 Author: Hiroshi SHIBATA AuthorDate: 2022-09-02 14:25:51 +0900 Commit: git[bot] CommitDate: 2022-09-02 16:09:50 +0900 [ruby/reline] Added some of abstruct methods for cursor https://github.com/ruby/reline/commit/f5fa30d595 commit 740d530bb007f48ed53aa71f341f201745327c39 Author: Hiroshi SHIBATA AuthorDate: 2022-09-02 15:30:46 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-02 15:30:46 +0900 Added doc about `test-syntax-suggest` commit e7a8e3e91f817171176c8b8294f33e5acd3354e2 Author: Hiroshi SHIBATA AuthorDate: 2022-09-02 15:25:46 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-02 15:25:54 +0900 Added entries about test-bundler-parallel and BUNDLER_SPECS commit b5cf3564471af6e11760bf381251f918cdcd7398 Author: Nobuyoshi Nakada AuthorDate: 2022-08-31 13:20:40 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-02 14:33:23 +0900 Consider Complex from Complex cases The assertions that "an argument of a Complex constructor must not be a Complex" may not hold for some Numeric objects. Notes: Merged: https://github.com/ruby/ruby/pull/6317 commit 9212d963070612e669c40e5fde7954f19d648002 Author: Nobuyoshi Nakada AuthorDate: 2022-08-31 11:01:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-02 14:33:23 +0900 [Bug #18937] Coerce non-real non-Numeric into Complex at comparisons Notes: Merged: https://github.com/ruby/ruby/pull/6317 commit a9b59e24f49f669f6ad2f3238c4c518027a7f72d Author: Nobuyoshi Nakada AuthorDate: 2022-08-31 10:59:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-02 14:33:23 +0900 Turn `f_zero_p` to `bool` Notes: Merged: https://github.com/ruby/ruby/pull/6317 commit e896b338605914df70c1c34274f5147dff6f71a3 Author: Takashi Kokubun AuthorDate: 2022-09-02 12:05:49 +0900 Commit: GitHub CommitDate: 2022-09-02 12:05:49 +0900 Test --enable-yjit on aarch64 as well (#6313) Notes: Merged-By: k0kubun commit fb5fa84f83529c8769df3fff00a59180d6485bc3 Author: Takashi Kokubun AuthorDate: 2022-09-02 12:05:13 +0900 Commit: GitHub CommitDate: 2022-09-02 12:05:13 +0900 Remove workarounds for slow compilation on Cirrus (#6310) Remove workarounds for slow compilation Notes: Merged-By: k0kubun commit 9b48edd9322e7e0f6453303a62a83caad40a9fed Author: Kevin Newton AuthorDate: 2022-09-02 11:14:23 +0900 Commit: GitHub CommitDate: 2022-09-02 11:14:23 +0900 Allow comparing against 64-bit immediates on x86 (#6314) Notes: Merged-By: maximecb commit fc2d9fedc2cc21f25608034518d75a8337301e9a Author: John Hawthorn AuthorDate: 2022-08-26 07:01:27 +0900 Commit: John Hawthorn CommitDate: 2022-09-02 09:36:20 +0900 Use getblockparamproxy with branch A common pattern when the block is an explicit parameter is to branch based on the block parameter instead of using `block_given?`, for example `block.call if block`. This commit checks in the peephole optimizer for that case and uses the getblockparamproxy optimization, which avoids allocating a proc for simple cases, whenever a getblockparam instruction is followed immediately by branchif or branchunless. ./miniruby --dump=insns -e 'def foo(&block); 123 if block; end' == disasm: # (catch: FALSE) local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: 0, kw: -1@-1, kwrest: -1]) [ 1] block@0 0000 getblockparamproxy block@0, 0 ( 1)[LiCa] 0003 branchunless 8 0005 putobject 123 0007 leave [Re] 0008 putnil 0009 leave [Re] Notes: Merged: https://github.com/ruby/ruby/pull/6286 commit 1cc97412cd8168d897b1b361c8fa2cf792a51729 Author: John Hawthorn AuthorDate: 2022-07-27 10:19:44 +0900 Commit: John Hawthorn CommitDate: 2022-09-02 07:20:49 +0900 Remove rb_iseq_each Notes: Merged: https://github.com/ruby/ruby/pull/6187 commit 679ef34586e7a43151865cb7f33a3253d815f7cf Author: John Hawthorn AuthorDate: 2022-08-11 02:35:48 +0900 Commit: John Hawthorn CommitDate: 2022-09-02 07:20:49 +0900 New constant caching insn: opt_getconstant_path Previously YARV bytecode implemented constant caching by having a pair of instructions, opt_getinlinecache and opt_setinlinecache, wrapping a series of getconstant calls (with putobject providing supporting arguments). This commit replaces that pattern with a new instruction, opt_getconstant_path, handling both getting/setting the inline cache and fetching the constant on a cache miss. This is implemented by storing the full constant path as a null-terminated array of IDs inside of the IC structure. idNULL is used to signal an absolute constant reference. $ ./miniruby --dump=insns -e '::Foo::Bar::Baz' == disasm: #@-e:1 (1,0)-(1,13)> (catch: FALSE) 0000 opt_getconstant_path ( 1)[Li] 0002 leave The motivation for this is that we had increasingly found the need to disassemble the instructions between the opt_getinlinecache and opt_setinlinecache in order to determine the constant we are fetching, or otherwise store metadata. This disassembly was done: * In opt_setinlinecache, to register the IC against the constant names it is using for granular invalidation. * In rb_iseq_free, to unregister the IC from the invalidation table. * In YJIT to find the position of a opt_getinlinecache instruction to invalidate it when the cache is populated * In YJIT to register the constant names being used for invalidation. With this change we no longe need disassemly for these (in fact rb_iseq_each is now unused), as the list of constant names being referenced is held in the IC. This should also make it possible to make more optimizations in the future. This may also reduce the size of iseqs, as previously each segment required 32 bytes (on 64-bit platforms) for each constant segment. This implementation only stores one ID per-segment. There should be no significant performance change between this and the previous implementation. Previously opt_getinlinecache was a "leaf" instruction, but it included a jump (almost always to a separate cache line). Now opt_getconstant_path is a non-leaf (it may raise/autoload/call const_missing) but it does not jump. These seem to even out. Notes: Merged: https://github.com/ruby/ruby/pull/6187 commit 7064d259bc20050d467874e5622082c29529a2d3 Author: Takashi Kokubun AuthorDate: 2022-09-02 06:12:24 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-02 06:12:24 +0900 Update NEWS.md for YJIT commit 064944c9029fae0552f120ea586f4f83ce206ec6 Author: Takashi Kokubun AuthorDate: 2022-09-02 05:38:38 +0900 Commit: GitHub CommitDate: 2022-09-02 05:38:38 +0900 Stop using a callee-saved register for scratch0 on aarch64 (#6312) [Bug #18985] * Callee-save x22 for aarch64 * Just use a caller-saved register * Update yjit/src/backend/arm64/mod.rs Co-authored-by: Alan Wu Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged-By: k0kubun commit 4144abee42f4ebd73c98d772e3b2530598e584c8 Author: Takashi Kokubun AuthorDate: 2022-09-02 03:55:39 +0900 Commit: GitHub CommitDate: 2022-09-02 03:55:39 +0900 Let --yjit-dump-disasm=all dump ocb code as well (#6309) * Let --yjit-dump-disasm=all dump ocb code as well * Use an enum instead * Add a None Option to DumpDisasm (#444) * Add a None Option to DumpDisasm * Update yjit/src/asm/mod.rs Co-authored-by: Maxime Chevalier-Boisvert * Fix a build failure * Use only a single name * Only None will be a disabled case * Fix cargo test * Fix --yjit-dump-disasm=all to print outlined cb Co-authored-by: Jimmy Miller Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged-By: k0kubun commit 462a8be5112f8c4e621d106304ac617ebcf39eb0 Author: Nobuyoshi Nakada AuthorDate: 2022-09-01 19:54:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-01 20:57:30 +0900 VCS#revision_header: Make arguments optional commit f67ab7f30c837ce4b9c2ae39d7c189413fac6dff Author: Imir Kiyamov AuthorDate: 2022-05-20 22:32:11 +0900 Commit: git[bot] CommitDate: 2022-09-01 19:47:39 +0900 [ruby/did_you_mean] Fixed correction duplicates in VariableNameChecker https://github.com/ruby/did_you_mean/commit/c3fc412f6f commit 55b1600987413949fe39507f703d2f51dab56eb6 Author: Nobuyoshi Nakada AuthorDate: 2022-08-31 19:56:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-01 18:45:09 +0900 Update revision.h in packages using `VCS#revision_header` commit ee09f75a6ba2c485260f07eb7d9382850def56bf Author: Nobuyoshi Nakada AuthorDate: 2022-08-31 19:51:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-01 18:01:40 +0900 Extract `VCS#revision_header` commit 762fca9b12b9cfb0159404c95ee4275100169c17 Author: Nobuyoshi Nakada AuthorDate: 2022-08-31 21:53:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-09-01 18:01:40 +0900 Prefer `File` class methods to write a string commit f3becd73e30b4049abfe29cba1bfe57ec8e78f65 Author: Hiroshi SHIBATA AuthorDate: 2022-09-01 17:02:52 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-01 17:02:55 +0900 Ignore test libraries like assert_ractor from did_you_mean commit 59e8569cf938e0e449fd649b564da995ffb67470 Author: Nobuyoshi Nakada AuthorDate: 2022-09-01 14:14:46 +0900 Commit: git[bot] CommitDate: 2022-09-01 16:36:16 +0900 [ruby/reline] Support dumb terminal The "dumb" terminal is considered only on MSys tty now. However, the `TERM` feature has been used on many Unix-like systems for decades, not MSys specific. https://github.com/ruby/reline/commit/53fd51ab62 commit f229b36087f1b387d77af8f3fa50f9bffd2fd44e Author: Hiroshi SHIBATA AuthorDate: 2022-09-01 16:15:51 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-09-01 16:15:51 +0900 Fix test fail with assert_ractor outside of ruby/ruby repo Revert 806583c093ecc2d67830f0a8f0d94decf0ed71e5 commit aa5c1a048385f31307165bd88e2eced89c8298a1 Author: なつき AuthorDate: 2022-09-01 02:33:04 +0900 Commit: git[bot] CommitDate: 2022-09-01 15:01:40 +0900 [rubygems/rubygems] Support non gnu libc arm-linux-eabi platforms https://github.com/rubygems/rubygems/commit/fcf62799f2 commit aded6971ad37a75e4eb0493159c19c94971e80e4 Author: なつき AuthorDate: 2022-08-31 14:08:45 +0900 Commit: git[bot] CommitDate: 2022-09-01 15:01:40 +0900 [rubygems/rubygems] Support non gnu libc arm-linux-eabi platforms https://github.com/rubygems/rubygems/commit/394d7a6fc9 commit 941e9be0d9c44db5932386152b42f0fd44079420 Author: Mau Magnaguagno AuthorDate: 2022-02-22 20:47:20 +0900 Commit: git[bot] CommitDate: 2022-09-01 14:01:37 +0900 [ruby/reline] Remove loose operation in Dialog#render_each_dialog https://github.com/ruby/reline/commit/a6d1c917ce commit a0d2320f30109bbfcb36d3ece1c67cad2f08541c Author: Takashi Kokubun AuthorDate: 2022-09-01 09:16:29 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-01 09:16:29 +0900 Add a document about YJIT's Rust version commit 811ca75f3bdea4fb6d8271d848f3b79f20432880 Author: Nobuyoshi Nakada AuthorDate: 2022-08-31 18:37:07 +0900 Commit: Takashi Kokubun CommitDate: 2022-09-01 07:09:22 +0900 Remove -j option Close https://github.com/ruby/ruby/pull/6307 Co-authored-by: Takashi Kokubun commit d41be1ac37a91f901a0030bfd10979240621db4e Author: Burdette Lamar AuthorDate: 2022-09-01 06:36:22 +0900 Commit: GitHub CommitDate: 2022-09-01 06:36:22 +0900 [DOC] Enhanced RDoc for Time (#6308) More on timezones. Notes: Merged-By: BurdetteLamar commit be55b77cc75fe36b484a3feb6ad4178630d73242 Author: Kevin Newton AuthorDate: 2022-09-01 04:44:26 +0900 Commit: GitHub CommitDate: 2022-09-01 04:44:26 +0900 Better b.cond usage on AArch64 (#6305) * Better b.cond usage on AArch64 When we're lowering a conditional jump, we previously had a bit of a complicated setup where we could emit a conditional jump to skip over a jump that was the next instruction, and then write out the destination and use a branch register. Now instead we use the b.cond instruction if our offset fits (not common, but not unused either) and if it doesn't we write out an inverse condition to jump past loading the destination and branching directly. * Added an inverse fn for Condition (#443) Prevents the need to pass two params and potentially reduces errors. Co-authored-by: Jimmy Miller Co-authored-by: Maxime Chevalier-Boisvert Co-authored-by: Jimmy Miller Notes: Merged-By: maximecb commit 32a059151507876de804adbfbf4926937333e091 Author: Nobuyoshi Nakada AuthorDate: 2017-08-30 23:23:38 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-31 18:00:45 +0900 Move macros from version.h to version.c Moved the contents of `ruby_description` and `ruby_copyright` which are never used in the other places. commit 2b967cd4b73425681877c247e5731353e171a3ef Author: Nobuyoshi Nakada AuthorDate: 2017-08-30 22:49:53 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-31 17:56:31 +0900 Let fake.rb allow newlines in expanded strings commit 576bdec03f0d58847690a0607c788ada433ce60f Author: Nobuyoshi Nakada AuthorDate: 2022-08-30 18:12:08 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-31 17:27:59 +0900 [Bug #18973] Promote US-ASCII to ASCII-8BIT when adding 8-bit char Notes: Merged: https://github.com/ruby/ruby/pull/6306 commit 9dc60653db186b1ae9400ed75b413a07728ce6ff Author: Nobuyoshi Nakada AuthorDate: 2022-08-30 14:16:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-31 17:27:59 +0900 Extract `update_coderange` macro Which restarts scanning the code range in unscanned part. Notes: Merged: https://github.com/ruby/ruby/pull/6306 commit dc66f7246abd06e2e5d6e9b8c02403b05885283e Author: Nobuyoshi Nakada AuthorDate: 2022-08-31 15:24:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-31 15:31:48 +0900 Scripts under libexec may not be considered to be placed in bin commit 08c3d08a18b29c46156ca3370c682c03696448a7 Author: Nobuyoshi Nakada AuthorDate: 2022-08-31 15:23:50 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-31 15:31:47 +0900 `ruby_init_setproctitle` declaration has moved to internal/missing.h commit 739380c97d2c6440da0d5ae07f9291b1e8cde1b2 Author: Jean Boussier AuthorDate: 2022-08-20 18:25:54 +0900 Commit: git[bot] CommitDate: 2022-08-31 12:37:49 +0900 [ruby/net-protocol] Improve BufferedIO performance `BufferedIO` is a bit inefficient for reading large responses because it use the classic `buffer.slice!` technique which cause a lot of unnecessary string copying. This is particularly visible on line based protocol when reading line by line. Instead of repeatedly shifting the string, we can keep track of which offset we're at, to know how many bytes are left in the buffer. This change also open the door to further optimization by increasing the buffer size, as previously `slice!` would get slower the larger the buffer is. Benchmark results: ``` === 1k === Warming up -------------------------------------- 1k 1.234k i/100ms 1k opt 1.283k i/100ms Calculating ------------------------------------- 1k 12.615k (± 0.9%) i/s - 64.168k in 5.086995s 1k opt 12.856k (± 0.9%) i/s - 65.433k in 5.090051s Comparison: 1k: 12615.2 i/s 1k opt: 12856.0 i/s - 1.02x (± 0.00) faster === 10k === Warming up -------------------------------------- 10k 1.165k i/100ms 10k opt 1.269k i/100ms Calculating ------------------------------------- 10k 11.550k (± 2.4%) i/s - 58.250k in 5.046378s 10k opt 12.736k (± 1.0%) i/s - 64.719k in 5.081969s Comparison: 10k: 11550.3 i/s 10k opt: 12736.3 i/s - 1.10x (± 0.00) faster === 100k === Warming up -------------------------------------- 100k 809.000 i/100ms 100k opt 926.000 i/100ms Calculating ------------------------------------- 100k 8.054k (± 3.0%) i/s - 40.450k in 5.028299s 100k opt 9.286k (± 2.2%) i/s - 47.226k in 5.088841s Comparison: 100k: 8053.6 i/s 100k opt: 9285.5 i/s - 1.15x (± 0.00) faster === 1M === Warming up -------------------------------------- 1M 249.000 i/100ms 1M opt 315.000 i/100ms Calculating ------------------------------------- 1M 2.448k (± 2.5%) i/s - 12.450k in 5.089744s 1M opt 3.119k (± 2.6%) i/s - 15.750k in 5.053772s Comparison: 1M: 2447.8 i/s 1M opt: 3118.8 i/s - 1.27x (± 0.00) faster ``` Profiling before (1MB responses): ``` ================================== Mode: wall(1000) Samples: 5276 (0.00% miss rate) GC: 394 (7.47%) ================================== TOTAL (pct) SAMPLES (pct) FRAME 1622 (30.7%) 1622 (30.7%) IO#wait_readable 777 (14.7%) 777 (14.7%) IO#read_nonblock 365 (6.9%) 365 (6.9%) (sweeping) 2705 (51.3%) 364 (6.9%) Net::BufferedIO#rbuf_fill 264 (5.0%) 264 (5.0%) String#index 223 (4.2%) 223 (4.2%) String#sub 221 (4.2%) 221 (4.2%) String#slice! 185 (3.5%) 185 (3.5%) String#split 108 (2.0%) 108 (2.0%) IO#write_nonblock 101 (1.9%) 101 (1.9%) String#downcase 66 (1.3%) 66 (1.3%) Net::BufferedIO#LOG 57 (1.1%) 57 (1.1%) String#count 51 (1.0%) 51 (1.0%) String#to_s 391 (7.4%) 50 (0.9%) Net::HTTPGenericRequest#write_header 50 (0.9%) 50 (0.9%) String#capitalize 49 (0.9%) 49 (0.9%) Array#join 47 (0.9%) 47 (0.9%) String#b 106 (2.0%) 36 (0.7%) Net::HTTPHeader#set_field 34 (0.6%) 34 (0.6%) Module#=== 33 (0.6%) 33 (0.6%) String#[] 140 (2.7%) 29 (0.5%) Net::BufferedIO#write0 29 (0.5%) 29 (0.5%) (marking) 281 (5.3%) 27 (0.5%) Net::BufferedIO#rbuf_consume 1195 (22.6%) 25 (0.5%) Net::HTTPResponse#read_body 1024 (19.4%) 25 (0.5%) Net::HTTPResponse.each_response_header 86 (1.6%) 24 (0.5%) Net::HTTPHeader#set_field 23 (0.4%) 23 (0.4%) Net::HTTP#proxy_uri 51 (1.0%) 23 (0.4%) Net::HTTPHeader#initialize_http_header 2225 (42.2%) 22 (0.4%) Net::BufferedIO#readuntil 20 (0.4%) 20 (0.4%) Regexp#=== ``` Profiling after (1MB responses): ``` ================================== Mode: wall(1000) Samples: 15180 (0.00% miss rate) GC: 1688 (11.12%) ================================== TOTAL (pct) SAMPLES (pct) FRAME 4534 (29.9%) 4534 (29.9%) IO#read_nonblock 10650 (70.2%) 3944 (26.0%) Net::HTTPOpt::BufferedIOOpt#rbuf_fill 2101 (13.8%) 2101 (13.8%) IO#wait_readable 1442 (9.5%) 1442 (9.5%) (sweeping) 360 (2.4%) 360 (2.4%) String#sub 312 (2.1%) 312 (2.1%) String#split 265 (1.7%) 265 (1.7%) String#bytesize 246 (1.6%) 246 (1.6%) (marking) 151 (1.0%) 151 (1.0%) IO#write_nonblock 125 (0.8%) 125 (0.8%) String#downcase 116 (0.8%) 116 (0.8%) String#index 113 (0.7%) 113 (0.7%) Module#=== 162 (1.1%) 89 (0.6%) Net::HTTPOpt::BufferedIOOpt#rbuf_consume_all_shareable! 158 (1.0%) 65 (0.4%) Net::HTTPHeader#set_field 63 (0.4%) 63 (0.4%) String#capitalize 63 (0.4%) 63 (0.4%) BasicObject#equal? 58 (0.4%) 58 (0.4%) Regexp#match 58 (0.4%) 58 (0.4%) String#[] 449 (3.0%) 56 (0.4%) Net::HTTPGenericRequest#write_header 53 (0.3%) 53 (0.3%) String#to_s 52 (0.3%) 52 (0.3%) Net::HTTPOpt::BufferedIOOpt#LOG 52 (0.3%) 52 (0.3%) String#count 44 (0.3%) 44 (0.3%) String#byteslice 44 (0.3%) 44 (0.3%) Array#join 1096 (7.2%) 42 (0.3%) Net::HTTPResponse.each_response_header 2617 (17.2%) 40 (0.3%) Net::HTTPOpt::BufferedIOOpt#readuntil 132 (0.9%) 30 (0.2%) Net::HTTPOpt::BufferedIOOpt#rbuf_consume 28 (0.2%) 28 (0.2%) Regexp#=== 27 (0.2%) 27 (0.2%) Net::HTTP#proxy_uri 8862 (58.4%) 27 (0.2%) Net::HTTPResponse#read_body ```` Benchmark code: ```ruby require "fileutils" DIR = "/tmp/www" FileUtils.mkdir_p(DIR) HOST = "127.0.0.1" PORT = 8080 CONF = <<~EOS daemon off; worker_processes 2; events { worker_connections 128; } http { server_tokens off; charset utf-8; server { server_name localhost; listen #{HOST}:#{PORT}; keepalive_requests 10000000; keepalive_timeout 3600s; error_page 500 502 503 504 /50x.html; location / { root #{DIR}; } } } EOS File.write(File.join(DIR, "1k.txt"), 'a' * 1024) File.write(File.join(DIR, "10k.txt"), 'a' * 1024 * 10) File.write(File.join(DIR, "100k.txt"), 'a' * 1024 * 100) File.write(File.join(DIR, "1M.txt"), 'a' * 1024 * 1024) File.write(File.join(DIR, "nginx.conf"), CONF) require "benchmark/ips" require "net/http" nginx_pid = Process.spawn('nginx', '-c', File.join(DIR, "nginx.conf")) module Net class HTTPOpt < HTTP class BufferedIOOpt < ::Net::BufferedIO #:nodoc: internal use only def initialize(io, read_timeout: 60, write_timeout: 60, continue_timeout: nil, debug_output: nil) @io = io @read_timeout = read_timeout @write_timeout = write_timeout @continue_timeout = continue_timeout @debug_output = debug_output @rbuf = ''.b @rbuf_offset = 0 end attr_reader :io attr_accessor :read_timeout attr_accessor :write_timeout attr_accessor :continue_timeout attr_accessor :debug_output def inspect "#<#{self.class} io=#{@io}>" end def eof? @io.eof? end def closed? @io.closed? end def close @io.close end # # Read # public def read(len, dest = ''.b, ignore_eof = false) LOG "reading #{len} bytes..." read_bytes = 0 begin while read_bytes + rbuf_size < len if s = rbuf_consume_all_shareable! read_bytes += s.bytesize dest << s end rbuf_fill end s = rbuf_consume(len - read_bytes) read_bytes += s.bytesize dest << s rescue EOFError raise unless ignore_eof end LOG "read #{read_bytes} bytes" dest end def read_all(dest = ''.b) LOG 'reading all...' read_bytes = 0 begin while true if s = rbuf_consume_all_shareable! read_bytes += s.bytesize dest << s end rbuf_fill end rescue EOFError ; end LOG "read #{read_bytes} bytes" dest end def readuntil(terminator, ignore_eof = false) offset = @rbuf_offset begin until idx = @rbuf.index(terminator, offset) offset = @rbuf.bytesize rbuf_fill end return rbuf_consume(idx + terminator.bytesize - @rbuf_offset) rescue EOFError raise unless ignore_eof return rbuf_consume end end def readline readuntil("\n").chop end private BUFSIZE = 1024 * 16 def rbuf_fill tmp = @rbuf_empty ? @rbuf : nil case rv = @io.read_nonblock(BUFSIZE, tmp, exception: false) when String @rbuf_empty = false if rv.equal?(tmp) @rbuf_offset = 0 else @rbuf << rv rv.clear end return when :wait_readable (io = @io.to_io).wait_readable(@read_timeout) or raise Net::ReadTimeout.new(io) # continue looping when :wait_writable # OpenSSL::Buffering#read_nonblock may fail with IO::WaitWritable. # http://www.openssl.org/support/faq.html#PROG10 (io = @io.to_io).wait_writable(@read_timeout) or raise Net::ReadTimeout.new(io) # continue looping when nil raise EOFError, 'end of file reached' end while true end def rbuf_flush if @rbuf_empty @rbuf.clear @rbuf_offset = 0 end nil end def rbuf_size @rbuf.bytesize - @rbuf_offset end # Warning: this method may share the buffer to avoid # copying. The caller must no longer use the returned # string once rbuf_fill has been called again def rbuf_consume_all_shareable! @rbuf_empty = true buf = if @rbuf_offset == 0 @rbuf else @rbuf.byteslice(@rbuf_offset..-1) end @rbuf_offset = @rbuf.bytesize buf end def rbuf_consume(len = nil) if @rbuf_offset == 0 && (len.nil? || len == @rbuf.bytesize) s = @rbuf @rbuf = ''.b @rbuf_offset = 0 @rbuf_empty = true elsif len.nil? s = @rbuf.byteslice(@rbuf_offset..-1) @rbuf = ''.b @rbuf_offset = 0 @rbuf_empty = true else s = @rbuf.byteslice(@rbuf_offset, len) @rbuf_offset += len @rbuf_empty = @rbuf_offset == @rbuf.bytesize rbuf_flush end @debug_output << %Q[-> #{s.dump}\n] if @debug_output s end # # Write # public def write(*strs) writing { write0(*strs) } end alias << write def writeline(str) writing { write0 str + "\r\n" } end private def writing @written_bytes = 0 @debug_output << '<- ' if @debug_output yield @debug_output << "\n" if @debug_output bytes = @written_bytes @written_bytes = nil bytes end def write0(*strs) @debug_output << strs.map(&:dump).join if @debug_output orig_written_bytes = @written_bytes strs.each_with_index do |str, i| need_retry = true case len = @io.write_nonblock(str, exception: false) when Integer @written_bytes += len len -= str.bytesize if len == 0 if strs.size == i+1 return @written_bytes - orig_written_bytes else need_retry = false # next string end elsif len < 0 str = str.byteslice(len, -len) else # len > 0 need_retry = false # next string end # continue looping when :wait_writable (io = @io.to_io).wait_writable(@write_timeout) or raise Net::WriteTimeout.new(io) # continue looping end while need_retry end end # # Logging # private def LOG_off @save_debug_out = @debug_output @debug_output = nil end def LOG_on @debug_output = @save_debug_out end def LOG(msg) return unless @debug_output @debug_output << msg + "\n" end end BufferedIO = BufferedIOOpt # Unchanged from ruby 3.1.1, only allow to lookup the mofidied BufferedIO def connect if use_ssl? # reference early to load OpenSSL before connecting, # as OpenSSL may take time to load. @ssl_context = OpenSSL::SSL::SSLContext.new end if proxy? then conn_addr = proxy_address conn_port = proxy_port else conn_addr = conn_address conn_port = port end D "opening connection to #{conn_addr}:#{conn_port}..." begin s = Socket.tcp conn_addr, conn_port, @local_host, @local_port, connect_timeout: @open_timeout rescue => e e = Net::OpenTimeout.new(e) if e.is_a?(Errno::ETIMEDOUT) #for compatibility with previous versions raise e, "Failed to open TCP connection to " + "#{conn_addr}:#{conn_port} (#{e.message})" end s.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1) D "opened" if use_ssl? if proxy? plain_sock = BufferedIO.new(s, read_timeout: @read_timeout, write_timeout: @write_timeout, continue_timeout: @continue_timeout, debug_output: @debug_output) buf = "CONNECT #{conn_address}:#{@port} HTTP/#{HTTPVersion}\r\n" buf << "Host: #{@address}:#{@port}\r\n" if proxy_user credential = ["#{proxy_user}:#{proxy_pass}"].pack('m0') buf << "Proxy-Authorization: Basic #{credential}\r\n" end buf << "\r\n" plain_sock.write(buf) HTTPResponse.read_new(plain_sock).value # assuming nothing left in buffers after successful CONNECT response end ssl_parameters = Hash.new iv_list = instance_variables SSL_IVNAMES.each_with_index do |ivname, i| if iv_list.include?(ivname) value = instance_variable_get(ivname) unless value.nil? ssl_parameters[SSL_ATTRIBUTES[i]] = value end end end @ssl_context.set_params(ssl_parameters) @ssl_context.session_cache_mode = OpenSSL::SSL::SSLContext::SESSION_CACHE_CLIENT | OpenSSL::SSL::SSLContext::SESSION_CACHE_NO_INTERNAL_STORE @ssl_context.session_new_cb = proc {|sock, sess| @ssl_session = sess } D "starting SSL for #{conn_addr}:#{conn_port}..." s = OpenSSL::SSL::SSLSocket.new(s, @ssl_context) s.sync_close = true # Server Name Indication (SNI) RFC 3546 s.hostname = @address if s.respond_to? :hostname= if @ssl_session and Process.clock_gettime(Process::CLOCK_REALTIME) < @ssl_session.time.to_f + @ssl_session.timeout s.session = @ssl_session end ssl_socket_connect(s, @open_timeout) if (@ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE) && @ssl_context.verify_hostname s.post_connection_check(@address) end D "SSL established, protocol: #{s.ssl_version}, cipher: #{s.cipher[0]}" end @socket = BufferedIO.new(s, read_timeout: @read_timeout, write_timeout: @write_timeout, continue_timeout: @continue_timeout, debug_output: @debug_output) @last_communicated = nil on_connect rescue => exception if s D "Conn close because of connect error #{exception}" s.close end raise end private :connect end end begin sleep 0.2 connection = Net::HTTP.start(HOST, PORT) connection.keep_alive_timeout = 3600 connection_opt = Net::HTTPOpt.start(HOST, PORT) connection_opt.keep_alive_timeout = 3600 unless connection.request_get("/100k.txt").body == connection_opt.request_get("/100k.txt").body abort("bug?") end if ARGV.first == "profile" require 'stackprof' require 'json' StackProf.run(mode: :wall, out: "/tmp/stackprof-net-http.dump", raw: true) do 40_000.times do connection.request_get("/1M.txt").body end end File.write("/tmp/stackprof-net-http.json", JSON.dump(Marshal.load(File.binread("/tmp/stackprof-net-http.dump")))) system("stackprof", "/tmp/stackprof-net-http.rb") StackProf.run(mode: :wall, out: "/tmp/stackprof-net-http-opt.dump", raw: true) do 40_000.times do connection_opt.request_get("/1M.txt").body end end File.write("/tmp/stackprof-net-http-opt.json", JSON.dump(Marshal.load(File.binread("/tmp/stackprof-net-http-opt.dump")))) system("stackprof", "/tmp/stackprof-net-http-opt.dump") else %w(1k 10k 100k 1M).each do |size| puts "=== #{size} ===" Benchmark.ips do |x| path = "/#{size}.txt" x.report("#{size}") { connection.request_get(path).body } x.report("#{size} opt") { connection_opt.request_get(path).body } x.compare!(order: :baseline) end puts end end ensure Process.kill('TERM', nginx_pid) Process.wait(nginx_pid) end ``` https://github.com/ruby/net-protocol/commit/781e400389 commit 4a4daf00afbd5f6041d2b832df10c5c389781f1a Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-31 05:04:02 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-31 06:21:43 +0900 Update .cirrus.yml Notes: Merged: https://github.com/ruby/ruby/pull/6304 commit 5dbc725f4d6b07d9d1214ae896fd3feeae8aa23b Author: Takashi Kokubun AuthorDate: 2022-08-31 05:02:26 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-31 06:21:43 +0900 Skip linking rb_yjit_icache_invalidate on cargo test Co-authored-by: Kevin Newton Notes: Merged: https://github.com/ruby/ruby/pull/6304 commit 918a658556d96aeb7bc0c8425e9095f0a22b04a1 Author: Takashi Kokubun AuthorDate: 2022-08-31 04:44:55 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-31 06:21:43 +0900 Run cargo test on Cirrus Notes: Merged: https://github.com/ruby/ruby/pull/6304 commit 497b5ee1803e67efe641671276a05831ad788898 Author: Takashi Kokubun AuthorDate: 2022-08-31 04:44:08 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-31 06:21:43 +0900 Normalize the YJIT Cirrus workflow a little Notes: Merged: https://github.com/ruby/ruby/pull/6304 commit b98653f766613dbbaed02522af26f80078361502 Author: David Rodríguez AuthorDate: 2022-08-30 17:05:18 +0900 Commit: git[bot] CommitDate: 2022-08-30 18:46:06 +0900 [rubygems/rubygems] Let `Dir.tmpdir` use the standard path We're not fully in control of this folder, even when running our own tests, because MJIT creates some temp folders there when invoking GC. This bite tests running in ruby-core when making the behavior of `FileUtils.rm_rf` more strict, because these extra files could not be removed. Since this was originally added due to some failures on systems with non standard permissions on tmp folders, but I can no longer reproduce those, I'll remove it. https://github.com/rubygems/rubygems/commit/d2f21596ee commit d6acaa4d423200a1dcd8ea62fc65fc60944f2e84 Author: Nobuyoshi Nakada AuthorDate: 2022-08-30 11:21:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-30 11:23:16 +0900 Undefine `ruby_debug_log` macro before the function definition Fix up 27173e3735ff. commit ddca3482ef53911ce732c91e715d0439d3b47514 Author: Takashi Kokubun AuthorDate: 2022-08-30 10:05:06 +0900 Commit: GitHub CommitDate: 2022-08-30 10:05:06 +0900 Check only symbol flag bits (#6301) * Check only symbol flag bits * Check all 4 bits Notes: Merged-By: maximecb commit 737402e9383332d028c1c2f26a3f1a2cd78fab0d Author: Takashi Kokubun AuthorDate: 2022-08-30 01:55:53 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:55:57 +0900 Skip a couple of chroot spec faillures I don't come up with a way to fix it right away. We'd need some experiments on a pull request. commit 1315c5aad9d31a91e494657d98f61c9d6f65d8b1 Author: Benoit Daloze AuthorDate: 2022-08-30 01:18:23 +0900 Commit: Benoit Daloze CommitDate: 2022-08-30 01:18:23 +0900 Update to ruby/spec@b8a8240 commit b5358a98e632200fdca6ac6f8bd36e448d3795aa Author: Benoit Daloze AuthorDate: 2022-08-30 01:18:20 +0900 Commit: Benoit Daloze CommitDate: 2022-08-30 01:18:20 +0900 Update to ruby/mspec@37151a0 commit d694f320e40e77ab432f4d21575251ac0ab4ab76 Author: Kevin Newton AuthorDate: 2022-08-27 08:21:45 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Fixed width immediates (https://github.com/Shopify/ruby/pull/437) There are a lot of times when encoding AArch64 instructions that we need to represent an integer value with a custom fixed width. For example, the offset for a B instruction is 26 bits, so we store an i32 on the instruction struct and then mask it when we encode. We've been doing this masking everywhere, which has worked, but it's getting a bit copy-pasty all over the place. This commit centralizes that logic to make sure we stay consistent. Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 46007b88af82d6ff22fc01edb7c74922dfa5c68a Author: Alan Wu AuthorDate: 2022-08-27 03:02:51 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 A64: Only clear icache when writing out new code (https://github.com/Shopify/ruby/pull/442) Previously we cleared the cache for all the code in the system when we flip memory protection, which was prohibitively expensive since the operation is not constant time. Instead, only clear the cache for the memory region of newly written code when we write out new code. This brings the runtime for the 30k_if_else test down to about 6 seconds from the previous 45 seconds on my laptop. Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 29e0713a1272cb63f1e3cebfab85dec2424ead0f Author: Kevin Newton AuthorDate: 2022-08-26 10:19:56 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 TBZ and TBNZ for AArch64 (https://github.com/Shopify/ruby/pull/434) Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit c2e9253893461f931ea1a59b5996db06394c009f Author: Takashi Kokubun AuthorDate: 2022-08-26 10:19:40 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Stop saying it's temp checks (https://github.com/Shopify/ruby/pull/441) Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 44c6bcff1d068a2a5d191f602efc99a28e94dbc1 Author: Kevin Newton AuthorDate: 2022-08-26 10:19:26 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 LDRH and STRH for AArch64 (https://github.com/Shopify/ruby/pull/438) Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 929a6a75eb3e3404eb8f6246a40b2cd73d0d3fed Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-26 10:06:22 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Remove ir_ssa.rs as we aren't using it and it's now outdated Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 4b7d3884dff2cd44d51d5b51f9254c4e0980a45e Author: Takashi Kokubun AuthorDate: 2022-08-26 06:05:25 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Avoid randomizing the order of test-all on arm64 (https://github.com/Shopify/ruby/pull/440) for now Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 232e43fd52e53f667c2c290cffb4afa524889f0f Author: Takashi Kokubun AuthorDate: 2022-08-26 01:18:34 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Respect RUBY_TESTOPTS on test-all (https://github.com/Shopify/ruby/pull/435) * Respect RUBY_TESTOPTS on test-all * Increase the Cirrus timeout * Increase the CSV test timeout Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 5ef048e5b1c3dd61adf782ace570bb0a1f9bb12f Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-25 04:13:08 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Update yjit.md Add VMIL paper, update supported CPUs. Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit def3ade8a809a230648cdffbf4ab066b07fe7bf1 Author: Takashi Kokubun AuthorDate: 2022-08-24 05:46:43 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Add --yjit-dump-disasm to dump every compiled code (https://github.com/Shopify/ruby/pull/430) * Add --yjit-dump-disasm to dump every compiled code * Just use get_option * Carve out disasm_from_addr * Avoid push_str with format! * Share the logic through asm.compile * This seems to negatively impact the compilation speed Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 54c7bc67a2d54311b77aca9233b23a9e7a1ca581 Author: Kevin Newton AuthorDate: 2022-08-24 02:41:22 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Various AArch64 optimizations (https://github.com/Shopify/ruby/pull/433) * When we're storing an immediate 0 value at a memory address, we can use STUR XZR, Xd instead of loading 0 into a register and then storing that register. * When we're moving 0 into an argument register, we can use MOV Xd, XZR instead of loading the value into a register first. * In the newarray instruction, we can skip looking at the stack at all if the number of values we're using is 0. Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit d433eb957bf3826e7aea97c12f0cdc9fcb9a1b43 Author: Takashi Kokubun AuthorDate: 2022-08-20 06:00:28 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Run tests with --yjit-call-threshold=1 on arm64 (https://github.com/Shopify/ruby/pull/426) Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 93c5a5f02373d9ebad3a158fd783886bc3f7bf7d Author: Noah Gibbs AuthorDate: 2022-08-19 23:31:14 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Fix and re-enable String to_s, << and unary plus (https://github.com/Shopify/ruby/pull/429) Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 29bda0ff8124ccfe660bfde43b59acd825f2d014 Author: Alan Wu AuthorDate: 2022-08-19 04:41:41 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Use shorter syntax for the same pattern (https://github.com/Shopify/ruby/pull/425) Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 932885244ecb62b22904b9d9842fb7f2be5b7d00 Author: Kevin Newton AuthorDate: 2022-08-19 04:40:15 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Better variable name, no must_use on ccall (https://github.com/Shopify/ruby/pull/424) Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit d5fe9e1d9aabacb7bafe97dbbc63b0272be84dee Author: Takashi Kokubun AuthorDate: 2022-08-19 05:00:54 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Run test-all with RUBY_YJIT_ENABLE=1 on CI (https://github.com/Shopify/ruby/pull/418) Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit f883aabc13d334771da926e632dca5758bb506c8 Author: Kevin Newton AuthorDate: 2022-08-19 04:39:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Instruction enum (https://github.com/Shopify/ruby/pull/423) * Remove references to explicit instruction parts Previously we would reference individual instruction fields manually. We can't do that with instructions that are enums, so this commit removes those references. As a side effect, we can remove the push_insn_parts() function from the assembler because we now explicitly push instruction structs every time. * Switch instructions to enum Instructions are now no longer a large struct with a bunch of optional fields. Instead they are an enum with individual shapes for the variants. In terms of size, the instruction struct was 120 bytes while the new instruction enum is 106 bytes. The bigger win however is that we're not allocating any vectors for instruction operands (except for CCall), which should help cut down on memory usage. Adding new instructions will be a little more complicated going forward, but every mission-critical function that needs to be touched will have an exhaustive match, so the compiler should guide any additions. Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit ea9ee31744a905d7bafdd064ed97f68b5b1f21fa Author: Alan Wu AuthorDate: 2022-08-19 02:10:37 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 A64 Linux reports aarach64 in RUBY_PLATFORM This should fix a version string test Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 1c67e90bdecf9aec97eb3185b237d879207db465 Author: Kevin Newton AuthorDate: 2022-08-19 02:04:11 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 More work toward instruction enum (https://github.com/Shopify/ruby/pull/421) * Operand iterators There are a couple of times when we're dealing with instructions that we need to iterate through their operands. At the moment this is relatively easy because there's an opnds field and we can work with it directly. When the instructions become enums, however, the shape of each variant will be different so we'll need an iterator to make sense of the shape. This commit introduces two new iterators that are created from an instruction. One iterates over references to each operand (for instances where they don't need to be mutable like updating live ranges) and one iterates over mutable references to each operand (for instances where you need to mutate them like loading values in arm64). Note that because iterators can't have generic items (i.e., be associated with lifetimes) the mutable iterator forces you to use the `while let Some` syntax as opposed to the for-loop like we did with instructions. This commit eliminates the last reference to insn.opnds, which is going to make it much easier to transition to an enum. * Consolidate output operand fetching Currently we always look at the .out field on instructions whenever we want to access the output operand. When the instructions become an enum, this is not going to be possible since the shape of the variants will be different. Instead, this commit introduces two functions on Insn: out_opnd() and out_opnd_mut(). These return an Option containing a reference to the output operand and a mutable reference to the output operand, respectively. This commit then uses those functions to replace all instances of accessing the output operand. For the most part this was straightforward; when we previously checked if it was Opnd::None we now check that it's None, when we assumed there was an output operand we now unwrap. Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 342459576d4dc57a4c2e92c95c5ff225bf9df763 Author: Alan Wu AuthorDate: 2022-08-19 00:00:58 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Use VALUE for callinfos that are on the heap (https://github.com/Shopify/ruby/pull/420) Yet another case of `jit_mov_gc_ptr()` being yanked out during the transition to the new backend, causing a crash after object movement. The intresting wrinkle with this one is that not all callinfos are GC'ed objects, so the old code had an implicit assumption. https://github.com/ruby/ruby/blob/b0b9f7201acab05c2a3ad92c3043a1f01df3e17f/yjit/src/codegen.rs#L4087-L4095 Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit 5114ddce3f3475aba8bead85f5fe9db774a4cc14 Author: Takashi Kokubun AuthorDate: 2022-08-18 23:49:27 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Avoid marking op_type on gen_defined (https://github.com/Shopify/ruby/pull/419) Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit a78bbef12feac4d4f5eca98718cf7418c1b8e584 Author: Takashi Kokubun AuthorDate: 2022-08-18 08:23:21 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Use VALUE for block_iseq (https://github.com/Shopify/ruby/pull/417) Co-authored-by: Alan Wu Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit e0e63b1a0142968e99c8a973907092b10f0d9b4b Author: Takashi Kokubun AuthorDate: 2022-08-18 05:43:00 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Fix a bus error on regenerate_branch (https://github.com/Shopify/ruby/pull/408) * Fix a bus error on regenerate_branch * Fix pad_size Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit b00606eb644e4ffb42b9267f7d81b352845a29ae Author: Kevin Newton AuthorDate: 2022-08-18 05:08:41 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Even more prep for instruction enum (https://github.com/Shopify/ruby/pull/413) * Mutate in place for register allocation Currently we allocate a new instruction every time when we're doing register allocation by first splitting up the instruction into its component parts, mapping the operands and the output, and then pushing all of its parts onto the new assembler. Since we don't need the old instruction, we can mutate the existing one in place. While it's not that big of a win in and of itself, it matches much more closely to what we're going to have to do when we switch the instruction from being a struct to being an enum, because it's much easier for the instruction to modify itself since it knows its own shape than it is to push a new instruction that very closely matches. * Mutate in place for arm64 split When we're splitting instructions for the arm64 backend, we map all of the operands for a given instruction when it has an Opnd::Value. We can do this in place with the existing operand instead of allocating a new vector each time. This enables us to pattern match against the entire instruction instead of just the opcode, which is much closer to matching against an enum. * Match against entire instruction in arm64_emit Instead of matching against the opcode and then accessing all of the various fields on the instruction when emitting bytecode for arm64, we should instead match against the entire instruction. This makes it much closer to what's going to happen when we switch it over to being an enum. * Match against entire instruction in x86_64 backend When we're splitting or emitting code for x86_64, we should match against the entire instruction instead of matching against just the opcode. This gets us closer to matching against an enum instead of a struct. * Reuse instructions for arm64_split When we're splitting, the default behavior was previously to split up the instruction into its component parts and then reassemble them in a new instruction. Instead, we can reuse the existing instruction. Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit c70d1471c1723f26ca54699f056887fe200c973e Author: Alan Wu AuthorDate: 2022-08-18 04:42:39 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 01:09:41 +0900 Only check lowest bit for _Bool type (https://github.com/Shopify/ruby/pull/412) * Only check lowest bit for _Bool type The `test AL, AL` got lost during porting and we were generating `test RAX, RAX` instead. The upper bits of a `_Bool` return type is unspecified and we were failing `TestClass#test_singleton_class_should_has_own_namespace` due to interpreterting the return value incorrectly. * Enable test_class for test-all on x86_64 Notes: Merged: https://github.com/ruby/ruby/pull/6289 commit d57a9f61a065418ef99fcbbb65eca4f34f33f1c8 Author: Kevin Newton AuthorDate: 2022-08-18 01:59:08 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:11 +0900 Build output operands explicitly (https://github.com/Shopify/ruby/pull/411) When we're pushing instructions onto the assembler, we previously would iterate through the instruction's operands and then assign the output operand to it through the push_insn function. This is easy when all instructions have a vector of operands, but is much more difficult when the shape differs in an enum. This commit changes it so that we explicitly define the output operand for each instruction before it gets pushed onto the assembler. This has the added benefit of changing the definition of push_insn to no longer require a mutable instruction. This paves the way to make the out field on the instructions an Option instead which is going to more accurately reflect the behavior we're going to have once we switch the instructions over to an enum instead of a struct. commit b735eb5ef39e73e2a0ea6bbdb6ff7ce41a998d63 Author: Kevin Newton AuthorDate: 2022-08-18 01:56:23 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:11 +0900 Instruction builders for backend IR (https://github.com/Shopify/ruby/pull/410) Currently we use macros to define the shape of each of the instruction building methods. This works while all of the instructions share the same fields, but is really hard to get working when they're an enum with different shapes. This is an incremental step toward a bigger refactor of changing the Insn from a struct to an enum. commit 1cf9f56c55b1a771217678843c9546e368db0af3 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-18 01:23:59 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:11 +0900 Fix issue with expandarray, add missing jl, enable tests (https://github.com/Shopify/ruby/pull/409) commit c38e9111478773a20656bfe5329cdab78dfb075b Author: Takashi Kokubun AuthorDate: 2022-08-17 04:51:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:11 +0900 Allow aarch64 to build YJIT commit 95dce1ccacb5e893bbd2bfb100c0778c5be83d47 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-17 01:00:35 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:11 +0900 Temporarily disable rb_str_concat, add CI tests (https://github.com/Shopify/ruby/pull/407) Make sure we can load the test-all runner and run test_yjit.rb commit 09c12111d42573a19e7077bd8fa7e7cb709179de Author: Noah Gibbs (and/or Benchmark CI) AuthorDate: 2022-08-12 19:35:52 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:11 +0900 Port jit_rb_str_concat to new backend, re-enable cfunc lookup (https://github.com/Shopify/ruby/pull/402) commit 5a76a15a0f93100c7ff6361a34b06af936cc36c6 Author: Maple Ong AuthorDate: 2022-08-16 01:54:26 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:11 +0900 YJIT: Implement concatarray in yjit (https://github.com/Shopify/ruby/pull/405) * Create code generation func * Make rb_vm_concat_array available to use in Rust * Map opcode to code gen func * Implement code gen for concatarray * Add test for concatarray * Use new asm backend * Add comment to C func wrapper commit 2f9df466546263028ece7757cb6f813800d2d6b5 Author: Alan Wu AuthorDate: 2022-08-16 00:25:49 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:11 +0900 Use bindgen for old manual extern declarations (https://github.com/Shopify/ruby/pull/404) We have a large extern block in cruby.rs leftover from the port. We can use bindgen for it now and reserve the manual declaration for just a handful of vm_insnhelper.c functions. Fixup a few minor discrepencies bindgen found between the C declaration and the manual declaration. Mostly missing `const` on the C side. commit ff3f1d15d2244dcafe5d7a748922e7c8b6b0f3bd Author: Kevin Newton AuthorDate: 2022-08-13 00:59:53 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:11 +0900 Optimize bitmask immediates (https://github.com/Shopify/ruby/pull/403) commit be730cdae5ac54a5ffd167983c3dffe50a055901 Author: Kevin Newton AuthorDate: 2022-08-12 04:46:13 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:10 +0900 AArch64 Ruby immediates (https://github.com/Shopify/ruby/pull/400) commit c022a605401ccbc591640720a28c616cbaa19931 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-12 02:26:30 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:10 +0900 Fix bugs in gen_opt_getinlinecache commit cb15886e612e17685e606f8b4f04301026f18b46 Author: Zack Deveau AuthorDate: 2022-08-12 01:49:35 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:10 +0900 Port opt_getinlinecache to the new backend (https://github.com/Shopify/ruby/pull/399) commit dca5e74aa17bd315ff83cffbdbba3f7c641174ac Author: Takashi Kokubun AuthorDate: 2022-08-12 01:12:44 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:10 +0900 Fix test_rubyoptions.rb for arm64 (https://github.com/Shopify/ruby/pull/396) commit 471de2ab78ef75c7f22f80c77460e16e2356e190 Author: Noah Gibbs AuthorDate: 2022-08-12 01:11:23 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:10 +0900 Enable skipdata on Capstone to allow embedded data without early stop to disasm (https://github.com/Shopify/ruby/pull/398) commit 7f4ab24f2b99c87874a5540a55026ea5a3d43d3e Author: Kevin Newton AuthorDate: 2022-08-11 21:32:06 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:10 +0900 Op::Xor for backend IR (https://github.com/Shopify/ruby/pull/397) commit 4d811d7a2b92d110e3e70cb77e5f499acfa7112a Author: Alan Wu AuthorDate: 2022-08-11 06:22:55 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:10 +0900 Fix code invalidation while OOM and OOM simulation (https://github.com/Shopify/ruby/pull/395) `YJIT.simulate_oom!` used to leave one byte of space in the code block, so our test didn't expose a problem with asserting that the write position is in bounds in `CodeBlock::set_pos`. We do the following when patching code: 1. save current write position 2. seek to middle of the code block and patch 3. restore old write position The bounds check fails on (3) when the code block is already filled up. Leaving one byte of space also meant that when we write that byte, we need to fill the entire code region with trapping instruction in `VirtualMem`, which made the OOM tests unnecessarily slow. Remove the incorrect bounds check and stop leaving space in the code block when simulating OOM. commit ee1697ee0727c29fc61c88ccb6036aa763d2d2b6 Author: Takashi Kokubun AuthorDate: 2022-08-11 06:01:21 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:10 +0900 Port opt_aref and opt_aset to the new backend IR (https://github.com/Shopify/ruby/pull/387) * Port opt_aref and opt_aset to the new backend IR * Recompute memory operands commit b54643d13ac4194f05151a366e9980350efec829 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-11 05:38:42 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:10 +0900 Handle out of memory tests (https://github.com/Shopify/ruby/pull/393) commit df84832c758e3dcb360f18335c2c93dcc90344aa Author: Takashi Kokubun AuthorDate: 2022-08-11 05:29:01 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:10 +0900 Port getblockparamproxy and getblockparam (https://github.com/Shopify/ruby/pull/394) commit e5969f8587dd80367347356e11ddcf3976439d1c Author: Takashi Kokubun AuthorDate: 2022-08-11 05:09:23 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:10 +0900 Port invokesuper to the new backend IR (https://github.com/Shopify/ruby/pull/391) commit ca2afba4a7162ca9bbaa12891da5d55f81752d23 Author: Takashi Kokubun AuthorDate: 2022-08-11 05:05:59 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:09 +0900 Port the remaining method types in opt_send_without_block (https://github.com/Shopify/ruby/pull/390) commit 8c45b8a989fea4c74d68c464a55aa54e9144994a Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-11 02:37:49 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:09 +0900 Update asm comments for gen_send_iseq commit 6b9cec78a18ae1788c8c939c705b85bd0a6efc3a Author: Noah Gibbs AuthorDate: 2022-08-11 00:13:22 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:09 +0900 Port cfunc lookup, plus simpler cfunc generators. (https://github.com/Shopify/ruby/pull/388) This port does *not* create invalidation regions to ensure minimum invalidatable block sizes, and so it does not port the to_s generator. commit cad35fb25c4300a53ad33d833d4595c2bdd30e00 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-10 05:03:39 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:09 +0900 Try to run make -j in CI backend tests (https://github.com/Shopify/ruby/pull/386) commit 1cafb1a7a67c776018656a5461965cf15d22b220 Author: Takashi Kokubun AuthorDate: 2022-08-10 03:48:23 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:09 +0900 Prefer asm.store over asm.mov (https://github.com/Shopify/ruby/pull/385) * Prefer asm.store over asm.mov * Reverse a couple of unsure changes * Revert changes that don't work commit 3f42028e3e7df7d476e71cc995608e26208e3ae0 Author: Kevin Newton AuthorDate: 2022-08-05 04:29:31 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:09 +0900 Iterator (https://github.com/Shopify/ruby/pull/372) * Iterator * Use the new iterator for the X86 backend split * Use iterator for reg alloc, remove forward pass * Fix up iterator usage on AArch64 * Update yjit/src/backend/ir.rs Co-authored-by: Maxime Chevalier-Boisvert * Various PR feedback for iterators for IR * Use a local mutable reference for a64_split * Move tests from ir.rs to tests.rs in backend * Fix x86 shift instructions live range calculation * Iterator * Use the new iterator for the X86 backend split * Fix up x86 iterator usage * Fix ARM iterator usage * Remove unintentionally duplicated tests commit 49c9f893f863108f741b6b6535dc53126733ded0 Author: Takashi Kokubun AuthorDate: 2022-08-10 02:01:20 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:09 +0900 Port expandarray to the new backend IR (https://github.com/Shopify/ruby/pull/376) * Port expandarray to the new backend IR * More use of into() * Break out live ranges * Refactor the code further * Reuse registers more commit 668b99b43b26868e3cddc41de2025841522acc3b Author: Takashi Kokubun AuthorDate: 2022-08-10 01:16:27 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:09 +0900 Port gen_send_iseq to the new backend IR (https://github.com/Shopify/ruby/pull/381) * Port gen_send_iseq to the new backend IR * Replace occurrences of 8 by SIZEOF_VALUE Co-authored-by: Maxime Chevalier-Boisvert Co-authored-by: Maxime Chevalier-Boisvert commit 32d9eef5626118b5848cdbe9fe8f17da043d781c Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-09 23:32:24 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:09 +0900 Enable test_literal.rb and test_ractor.rb on arm commit cd7506593ad6bd92dd330ba969e76ff8a1f5ee31 Author: Kevin Newton AuthorDate: 2022-08-09 23:28:19 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:09 +0900 Fix tests on yjit_backend_ir for AArch64 backend (https://github.com/Shopify/ruby/pull/383) commit b8846dd2f8042fc13a0f5ae17e2e2a6f400074dd Author: Kevin Newton AuthorDate: 2022-08-09 23:27:21 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:08 +0900 Load mem displacement when necessary on AArch64 (https://github.com/Shopify/ruby/pull/382) * LDR instruction for AArch64 * Split loads in arm64_split when memory address displacements do not fit commit 85d6d76e41b0c2cec64e3726d8218467954f5ee6 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-09 07:42:42 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:08 +0900 Enable test_insns.rb on arm commit a5ea577cc6fc43c5bd5beaef3f6175832a55268a Author: Kevin Newton AuthorDate: 2022-08-09 06:37:03 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:08 +0900 Update flags for data processing on ARM (https://github.com/Shopify/ruby/pull/380) * Update flags for data processing on ARM * Update yjit/src/backend/arm64/mod.rs Co-authored-by: Maxime Chevalier-Boisvert commit a3757842752e78a5f53b5dfcdcf9601c037f8c76 Author: Alan Wu AuthorDate: 2022-08-09 03:49:46 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:08 +0900 Use new assembler to support global invalidation on A64 Previously, we patched in an x64 JMP even on A64, which resulted in invalid machine code. Use the new assembler to generate a jump instead. Add an assert to make sure patches don't step on each other since it's less clear cut on A64, where the size of the jump varies depending on its placement relative to the target. Fixes a lot of tests that use `set_trace_func` in `test_insns.rb`. PR: https://github.com/Shopify/ruby/pull/379 commit 726a4519550fd9191833e482122e3c7bf9a468be Author: Takashi Kokubun AuthorDate: 2022-08-09 00:27:54 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:08 +0900 Port invokebuiltin* insns to the new backend IR (https://github.com/Shopify/ruby/pull/375) * Port invokebuiltin* insns to the new backend IR * Fix the C_ARG_OPNDS check boundary commit 46822ee13f4fb8d590c3bd6c66aab71566d68dfe Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-06 06:09:22 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:08 +0900 Enable btests now passing on arm (https://github.com/Shopify/ruby/pull/378) commit 8278d722907dc134e9a3436d5542d7dc168d8925 Author: Kevin Newton AuthorDate: 2022-08-06 05:52:23 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:08 +0900 Left and right shift for IR (https://github.com/Shopify/ruby/pull/374) * Left and right shift for IR * Update yjit/src/backend/x86_64/mod.rs Co-authored-by: Alan Wu Co-authored-by: Maxime Chevalier-Boisvert commit 8fffff536db7d603c6caef80d11c0926d59b1001 Author: Alan Wu AuthorDate: 2022-08-06 03:41:55 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:08 +0900 More concise csel with Into commit 2429635bc724c953bd653a9202c5e1768f61d254 Author: Takashi Kokubun AuthorDate: 2022-08-06 03:37:51 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:08 +0900 Port send to the new backend and test it (https://github.com/Shopify/ruby/pull/373) commit ffdd09e22af4966f3d8f8ada7f9ee829ba9b9212 Author: Takashi Kokubun AuthorDate: 2022-08-06 03:13:01 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:08 +0900 Port opt_eq and opt_neq to the new backend (https://github.com/Shopify/ruby/pull/371) * Port opt_eq and opt_neq to the new backend * Just use into() outside Co-authored-by: Alan Wu * Use C_RET_OPND to share the register * Revert "Use C_RET_OPND to share the register" This reverts commit 99381765d0008ff0f03ea97c6c8db608a2298e2b. Co-authored-by: Alan Wu commit 2b85295d2845ee7ebefe04bcdda48970694ff0ad Author: Takashi Kokubun AuthorDate: 2022-08-06 02:47:35 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:07 +0900 Port objtostring to the new backend (https://github.com/Shopify/ruby/pull/369) commit e06c86fada92cf81cdc8e5cf4f0792ae701eb2e0 Author: Zack Deveau AuthorDate: 2022-08-06 02:32:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:07 +0900 Port opt_str_uminus to new backend IR (https://github.com/Shopify/ruby/pull/370) commit db22a560a49b4ad82430b6bec7feaf2a4a3bfe19 Author: Zack Deveau AuthorDate: 2022-08-05 22:18:34 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:07 +0900 Port gen_opt_str_freeze to new backend IR (https://github.com/Shopify/ruby/pull/366) commit 0a680912e960c66b9894cd8b04ecdc819a531727 Author: Noah Gibbs AuthorDate: 2022-08-06 01:03:06 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:07 +0900 x86 TEST should do a load for mem opnds first (https://github.com/Shopify/ruby/pull/368) commit 7908eabf6f639cf7ec84714418b6b1aa28825af7 Author: Takashi Kokubun AuthorDate: 2022-08-06 00:58:08 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:07 +0900 Port setivar to the new backend IR (https://github.com/Shopify/ruby/pull/362) * Port setivar to the new backend IR * Add a few more setivar test cases * Prefer const_ptr Co-authored-by: Maxime Chevalier-Boisvert commit a55a3f8ad1104870d7a92f6d296325a415ed6910 Author: Takashi Kokubun AuthorDate: 2022-08-06 00:47:09 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:07 +0900 Port opt_minus, opt_or, and opt_and to the new IR (https://github.com/Shopify/ruby/pull/364) * Port opt_minus, opt_or, and opt_and to the new IR * Fix the Op::Or issue with push_insn * Prefer asm.store for clarity commit dcb6fc16e54b83f9653bbab68ec1770b301952a0 Author: Takashi Kokubun AuthorDate: 2022-08-06 00:21:52 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:07 +0900 Port opt_mod to the new backend IR (https://github.com/Shopify/ruby/pull/363) commit e24037267f5912814dff463bccc618deacefd529 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-06 00:05:20 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:07 +0900 Add Opnd::None error message to x86 backend as well commit d131b410259bef45757e4bec02c9c62c88033fc8 Author: Noah Gibbs AuthorDate: 2022-08-05 23:26:07 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:07 +0900 Fix to float guard in jit_guard_known_klass to use the correct output operand. (https://github.com/Shopify/ruby/pull/365) commit 74527a764d42ebf9e7f780915dc9d73e760ed168 Author: Takashi Kokubun AuthorDate: 2022-08-05 05:58:07 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:07 +0900 Port send-only insns and write tests (https://github.com/Shopify/ruby/pull/360) commit b024b18f56df7e18bc744905f6d2e3888fc3900f Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-05 05:46:36 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:06 +0900 Fix block invalidation with new backend. Enable more btests on x86 (https://github.com/Shopify/ruby/pull/359) commit d63b3e43bd0a2dac5447855e3fae2c3de3499e53 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-05 05:47:35 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:06 +0900 Enable test_thread.rb on arm, now working commit ddee4d3af8859d30e3714ac544828d5b76027093 Author: Alan Wu AuthorDate: 2022-08-04 07:25:01 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:06 +0900 Opnd::Value fixes (https://github.com/Shopify/ruby/pull/354) * Fix asm.load(VALUE) - `>` didn't track that the value is a value - `Iterator::map` doesn't evaluate the closure you give it until you call `collect`. Use a for loop instead so we put the gc offsets into the compiled block properly. * x64: Mov(mem, VALUE) should load the value first Tripped in codegen for putobject now that we are actually feeding `Opnd::Value` into the backend. * x64 split: Canonicallize VALUE loads * Update yjit/src/backend/x86_64/mod.rs commit 4539c21367cf63e34afe4f14656779d33883647b Author: Takashi Kokubun AuthorDate: 2022-08-05 03:47:53 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:06 +0900 Port gen_send_cfunc to the new backend (https://github.com/Shopify/ruby/pull/357) * Port gen_send_cfunc to the new backend * Remove an obsoleted test * Add more cfunc tests * Use csel_e instead and more into() Co-authored-by: Maxime Chevalier-Boisvert * Add a missing lea for build_kwargs * Split cfunc test cases Co-authored-by: Maxime Chevalier-Boisvert commit c91a44cba49c8164982f241c00dc7c6418a4757b Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-05 03:29:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:06 +0900 Fix forward_pass usage in arm backend following John's PR commit 24ddc07d6ee02620b8be7b4defd903897bb97845 Author: John Hawthorn AuthorDate: 2022-08-05 02:12:25 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:06 +0900 Fix live_ranges idx calculation (https://github.com/Shopify/ruby/pull/353) forward_pass adjusts the indexes of our opnds to reflect the new instructions as they are generated in the forward pass. However, we were using the old live_ranges array, for which the new indexes are incorrect. This caused us to previously generate an IR which contained unnecessary trivial load instructions (ex. mov rax, rax), because it was looking at the wrong lifespans. Presumably this could also cause bugs because the lifespan of the incorrectly considered operand idx could be short. We've added an assert which would have failed on the previous trivial case (but not necessarily all cases). Co-authored-by: Matthew Draper commit fe172aac0465160ec5a02c687ab1dc6ade2c090a Author: Takashi Kokubun AuthorDate: 2022-08-05 01:02:09 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:06 +0900 Convert getinstancevariable to new backend IR (https://github.com/Shopify/ruby/pull/352) * Convert getinstancevariable to new backend IR * Support mem-based mem * Use more into() * Add tests for getivar * Just load obj_opnd to a register * Apply another into() * Flip the nil-out condition * Fix duplicated counts of side_exit commit a95422a69167baba0e4d086b234ad5316d3c39fe Author: Kevin Newton AuthorDate: 2022-08-04 23:31:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:06 +0900 Binary OR instruction for the IR (https://github.com/Shopify/ruby/pull/355) commit 9db2ca723cac60c2d65865a4851c13cac58ff6a3 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-03 04:36:27 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:06 +0900 Add 1 more allocatable reg on arm commit ca68ccdaddb6930f2d6dc9172a8653bcfb340afd Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-03 04:12:04 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:06 +0900 Fix C call reg alloc bug reported by Noah & Kokubun commit 0823260546f5fd749c3e1e9afadc29f4c6072ef1 Author: Kevin Newton AuthorDate: 2022-08-03 02:44:17 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:05 +0900 Implement iterators and double-linked list for IR SSA commit a75a6f7d7a1a2f876c76d1c0f3f56781221c3f68 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-03 03:27:50 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:05 +0900 Remove empty lines commit dea42385440c7abc332d8fda04dbec0f33364baa Author: Zack Deveau AuthorDate: 2022-08-03 02:09:51 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:05 +0900 Port gen_concatstring to new backend IR (https://github.com/Shopify/ruby/pull/350) * Port gen_concatstring to new backend IR * Update yjit/src/codegen.rs Co-authored-by: Maxime Chevalier-Boisvert commit 330c9e98506d421778c8f2581a23ba44e4663e06 Author: Takashi Kokubun AuthorDate: 2022-08-02 12:39:31 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:05 +0900 Port anytostring, intern, and toregexp (https://github.com/Shopify/ruby/pull/348) * Port anytostring, intern, and toregexp * Port getspecial to the new backend (#349) PR: https://github.com/Shopify/ruby/pull/349 commit 16307adf8f0cde3a9383e6c7e39fc718ebc89b42 Author: Takashi Kokubun AuthorDate: 2022-08-02 12:06:53 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:05 +0900 Port only ATTRSET of opt_send_without_block (https://github.com/Shopify/ruby/pull/351) commit 45da6974500070872a2b20fafe2b50bc1dce1052 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-02 05:12:51 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:05 +0900 Push first pass at SSA IR sketch commit a674b8d8a13c9dbffb92dbcab7ff297a8b99591b Author: Takashi Kokubun AuthorDate: 2022-08-02 02:34:15 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:05 +0900 Port class variable instructions (https://github.com/Shopify/ruby/pull/346) commit 1446e22aeba09c55227c56b9c2f6cb90facc9512 Author: Takashi Kokubun AuthorDate: 2022-08-02 02:16:01 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:05 +0900 Port setglobal to the new backend (https://github.com/Shopify/ruby/pull/347) commit 869b0ba6e00168d739830af766c3abb0dec01f12 Author: Alan Wu AuthorDate: 2022-07-29 00:08:30 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:05 +0900 Minor cleanups (https://github.com/Shopify/ruby/pull/345) * Move allocation into Assembler::pos_marker We wanted to do this to begin with but didn't because we were confused about the lifetime parameter. It's actually talking about the lifetime of the references that the closure captures. Since all of our usages capture no references (they use `move`), it's fine to put a `+ 'static` here. * Use optional token syntax for calling convention macro * Explicitly request C ABI on ARM It looks like the Rust calling convention for functions are the same as the C ABI for now and it's unlikely to change, but it's easy for us to be explicit here. I also tried saying `extern "aapcs"` but that unfortunately doesn't work. commit 6ab71a8598c6eece25975ca262eb880462e47b06 Author: Zack Deveau AuthorDate: 2022-07-28 03:31:41 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:05 +0900 Port gen_checktype to the new IR assembler backend (https://github.com/Shopify/ruby/pull/343) commit 4b1ab009c4ceea2232d1c71a1af7bf1a04af2165 Author: Noah Gibbs AuthorDate: 2022-07-28 01:42:52 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:05 +0900 Port the YJIT defined opcode; fix C_ARG_REGS (https://github.com/Shopify/ruby/pull/342) commit b2d255ad3cb34262494df3c55352215dcbd4d881 Author: Alan Wu AuthorDate: 2022-07-27 02:14:06 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:04 +0900 A64: Fix off by one in offset encoding for BL (https://github.com/Shopify/ruby/pull/344) * A64: Fix off by one in offset encoding for BL It's relative to the address of the instruction not the end of it. * A64: Fix off by one when encoding B It's relative to the start of the instruction not the end. * A64: Add some tests for boundary offsets commit 2d9b98f9bc918b1161d308c5d202fcb3be01de07 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-26 04:22:25 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:04 +0900 Fix a bug in the x86 backend wrt large integer values, enable more tests commit c9a947e5d81088907f774ddfbcd274a88ba7d8ff Author: Noah Gibbs AuthorDate: 2022-07-25 23:38:09 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:04 +0900 Port and test checkkeyword (https://github.com/Shopify/ruby/pull/339) commit 8617bac950fbee712e621f79bf96ca30fa9aa2ec Author: Alan Wu AuthorDate: 2022-07-23 07:02:24 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:04 +0900 Fix IncrCounter on ARM The order of operands to LDADDAL were flipped and the destination pointer was dereferenced instead of passed as an address. commit e131b217cfa9f29a0677e65cf573494279eda8a5 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-23 05:25:37 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:04 +0900 Test --yjit-stats in our CI workflows commit 813df1f27aa52a3050d90dab23bc72093da00e6c Author: Alan Wu AuthorDate: 2022-07-23 05:24:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:04 +0900 Add LiveReg IR instruction to fix stats leave exit code (https://github.com/Shopify/ruby/pull/341) It allows for reserving a specific register and prevents the register allocator from clobbering it. Without this `./miniruby --yjit-stats --yjit-callthreshold=1 -e0` was crashing because the counter incrementing code was clobbering RAX incorrectly. commit 133ad38777db991e20a1feba1acbfe5d97cc2fa0 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-23 05:13:29 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:04 +0900 Fix CI workflows commit 13e5b56a5d8f36815fb9aa3834d82a54b69e087a Author: Kevin Newton AuthorDate: 2022-07-23 05:06:37 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:04 +0900 Fixes (https://github.com/Shopify/ruby/pull/340) * Fix conditional jumps to label * Bitmask immediates cannot be u64::MAX commit f593b2c6db622de6f973e4e847e959855c341a25 Author: Kevin Newton AuthorDate: 2022-07-23 03:01:21 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:04 +0900 Fixes for AArch64 (https://github.com/Shopify/ruby/pull/338) * Better splitting for Op::Add, Op::Sub, and Op::Cmp * Split stores if the displacement is too large * Use a shifted immediate argument * Split all places where shifted immediates are used * Add more tests to the cirrus workflow commit 96303342e417cb2e5980d3e3f0909d32bf004431 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-23 01:26:59 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:04 +0900 Enable more btests commit 4024553d131012c313d08b4939f3596b6044c077 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-23 01:21:19 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:03 +0900 Add ifdef to clear cache commit 7e22ec7439211d43aea850a4e849f37e631ed131 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-23 01:18:21 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:03 +0900 Clear the icache on arm commit b1ed4d9b947e650dda7bfb9578652d4edb2608b4 Author: Noah Gibbs AuthorDate: 2022-07-23 01:08:35 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:03 +0900 Port and test duparray and splatarray (https://github.com/Shopify/ruby/pull/337) * Port duparray opcode * Port and test splatarray commit e9f9b8f43b2afdc437ab1b8ab883bab0525a3f43 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-23 01:01:24 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:03 +0900 Fix bug with opt_lt, csel on x86 commit 477c2df3fad22271958b92bdfafbae7155fbebb4 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-22 06:06:01 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:03 +0900 Work on opt_lt, fix x86 backend bug in cmp() commit 70e117d512636465d8dc2094b22dd6535602050a Author: Kevin Newton AuthorDate: 2022-07-22 05:25:21 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:03 +0900 Fixes (https://github.com/Shopify/ruby/pull/336) * Fix bitmask encoding to u32 * Fix splitting for Op::And to account for bitmask immediate commit e9a2effd74a3c1a40bd82e75ac24e8570ba57364 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-22 03:53:33 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:03 +0900 Enable more btests in the CI workflows (https://github.com/Shopify/ruby/pull/334) * Enable more btests in the CI workflows * Update workflows commit 76b05ba9e8f72ce98057d3817f6f353c9e62a892 Author: Kevin Newton AuthorDate: 2022-07-22 03:48:44 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:03 +0900 Better splitting for Op::Test on AArch64 (https://github.com/Shopify/ruby/pull/335) commit b1dbc5f1a683e4727f463c0a5a3e0195e5c2cc7f Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-22 01:43:54 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:03 +0900 Fix crash in newhash ccall commit 8605efdd942d2a6b139abe66503427683e5dcad3 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-22 01:31:31 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:03 +0900 Fix corrupted X29 causing segfault, thanks Alan! commit 85872eecddf0e5a13ba2218bb2068e99d5ce1313 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-21 05:43:19 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:03 +0900 Port over newrange commit 8d2560f1f533c078ed23d71084129ce13ba33abf Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-21 05:35:14 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:02 +0900 Port over setlocal and getglobal commit 8259813bc30497986974633202f3052353295f95 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-21 04:58:31 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:02 +0900 Temporarily simplify code for emit_conditional_jump to fix a bug commit f833d75bee13ecb485db1591898cb871b24a2991 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-21 03:50:00 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:02 +0900 Refactor YJIT branches to use PosMarker (https://github.com/Shopify/ruby/pull/333) * Refactor defer_compilation to use PosMarker * Port gen_direct_jump() to use PosMarker * Port gen_branch, branchunless * Port over gen_jump() * Port over branchif and branchnil * Fix use od record_boundary_patch_point in jump_to_next_insn commit f5f58d82834cf84fe15dd1b28754923404a9fc75 Author: Noah Gibbs AuthorDate: 2022-07-20 23:56:13 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:02 +0900 Update disasm to work on ARM (https://github.com/Shopify/ruby/pull/331) commit cbf7a7cd23e03c47274ed2755ef5ba1ca099bd50 Author: Noah Gibbs AuthorDate: 2022-07-20 23:54:39 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:02 +0900 Fix dupn (https://github.com/Shopify/ruby/pull/330) * get_dupn was allocating and throwing away an Assembler object instead of using the one passed in * Uncomment remaining tests in codegen.rs, which seem to work now commit 90137f519459764a78ae8eb777e3f396f7cffd98 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-20 23:43:14 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:02 +0900 Implement PosMarker instruction (https://github.com/Shopify/ruby/pull/328) * Implement PosMarker instruction * Implement PosMarker in the arm backend * Make bindgen run only for clang image * Fix if-else in cirrus CI file * Add missing semicolon * Try removing trailing semicolon * Try to fix shell/YAML syntax Co-authored-by: Alan Wu commit 4ae2c744ac6b5b84f2bfebb9046c0c364863d7a4 Author: Kevin Newton AuthorDate: 2022-07-20 06:44:39 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:02 +0900 A lot of fixes coming from our pairing session (https://github.com/Shopify/ruby/pull/329) * Move to/from SP on AArch64 * Consolidate loads and stores * Implement LDR post-index and LDR pre-index for AArch64 * Implement STR post-index and STR pre-index for AArch64 * Module entrypoints for LDR pre/post -index and STR pre/post -index * Use STR (pre-index) and LDR (post-index) to implement push/pop * Go back to using MOV for to/from SP commit c9484fe0c1f2897521d08780a66fab89e5e2f5b1 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-20 04:26:06 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:02 +0900 Fix push/pop and frame setup/teardown with Kevin & Alan commit b3cd7a9cd3ab5f66f70bd530761358d1710377aa Author: Noah Gibbs AuthorDate: 2022-07-20 02:23:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:02 +0900 Fix some of the codegen.rs tests (https://github.com/Shopify/ruby/pull/327) commit f09fd032d86a4e73f9434919a4d0814129b40539 Author: Kevin Newton AuthorDate: 2022-07-20 01:14:26 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:02 +0900 Assert not the same register in AArch64 commit db84d2921fc2ae1397c75cbf5d6752dd10f94219 Author: Kevin Newton AuthorDate: 2022-07-20 01:10:23 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:01 +0900 BLR instruction for AArch64 (https://github.com/Shopify/ruby/pull/325) commit fd97f8ebc7f22df7e3a7bf05c5d9328946cb539e Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-20 00:45:46 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:01 +0900 Use frame_setup() and frame_teardown() commit 10d50031e66cc19ebe7e10ce80c1d8bd8b745399 Author: Kevin Newton AuthorDate: 2022-07-20 00:37:03 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:01 +0900 AArch64 frames (https://github.com/Shopify/ruby/pull/324) commit e907aaa3fe87a4aacb808d10042425703c059825 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-19 04:50:17 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:01 +0900 ADR fixes for LeaLabel and calls commit f9e24ca8dd5e498cd768eaf65bc07acdb268f175 Author: Kevin Newton AuthorDate: 2022-07-16 05:24:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:01 +0900 Conditionals (https://github.com/Shopify/ruby/pull/323) * CSEL on AArch64 * Implement various Op::CSel* instructions commit 0da253e72cc80c1dbf8517f5217b59a64ec0f44e Author: Kevin Newton AuthorDate: 2022-07-16 05:14:55 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:01 +0900 Port print_int to the new backend (https://github.com/Shopify/ruby/pull/321) * Port print_int to the new backend * Tests for print_int and print_str commit bf7277b518d5ab634ee708f54fbb8735a8eafdbc Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-16 05:21:35 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:01 +0900 Update cirrus workflow commit c83198911a82c8dc6196fcfca073eb78822982f4 Author: Kevin Newton AuthorDate: 2022-07-16 05:06:53 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:01 +0900 Fix jumps (https://github.com/Shopify/ruby/pull/322) commit 7787ef29fedb6d638893434c323db6ea85d85640 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-16 03:32:57 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:01 +0900 Add --yjit-dump-insns test to Cirrus Arm workflow commit 95e5c5227c0492ed33fa41f31a698bf320d2b437 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-16 02:49:38 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:01 +0900 Fix bug with LeaLabel on x86, add CI test commit 34ec89252bf4bf1c841a82be4183a3dc40046355 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-16 02:25:49 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:00 +0900 Fix comment typo commit 160e29b9e5c9419e3275d4bd6de09c9c4f242602 Author: Kevin Newton AuthorDate: 2022-07-16 02:25:26 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:00 +0900 Port print_str to new backend (https://github.com/Shopify/ruby/pull/318) * ADR and ADRP for AArch64 * Implement Op::Jbe on X86 * Lera instruction * Op::BakeString * LeaPC -> LeaLabel * Port print_str to the new backend * Port print_value to the new backend * Port print_ptr to the new backend * Write null-terminators in Op::BakeString * Fix up rebase issues on print-str port * Add back in panic for X86 backend for unsupported instructions being lowered * Fix target architecture commit 6c5008959925d2768e9495a5601b5245784bc87f Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-15 05:51:01 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:00 +0900 Port newhash, add tests for newhash, duphash commit a1ea018fd67c38bf24c0ebfdc75e994953c29644 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-15 04:57:58 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:00 +0900 Add extra assertion in new_label for Kevin commit 5e834195fd71652939c54b15952e269a6f172853 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-15 03:52:57 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:00 +0900 Exclude X0 (C_RET_REG) from allocatable registers on arm (https://github.com/Shopify/ruby/pull/319) * Exclude X0 (C_RET_REG) from allocatable registers on arm * Add another small test snippett commit 159566fef91b010d8e236151bdbc77993f77c15f Author: Kevin Newton AuthorDate: 2022-07-15 00:10:58 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:00 +0900 Op::CPushAll and Op::CPopAll (https://github.com/Shopify/ruby/pull/317) Instructions for pushing all caller-save registers and the flags so that we can implement dump_insns. commit ac77d151d6ef2848a709ff832424fca9cbb66ac6 Author: Kevin Newton AuthorDate: 2022-07-14 23:35:09 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:00 +0900 Assert that the # of bytes matches for label refs (https://github.com/Shopify/ruby/pull/316) commit 15c6aacd399b2bc7fb5ee2d6422451c4eb47941f Author: Kevin Newton AuthorDate: 2022-07-14 05:48:55 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:00 +0900 Encode MRS and MSR for AArch64 (https://github.com/Shopify/ruby/pull/315) commit 8d743e965e6bf95ea1649839fc1fe2429564c2d9 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-13 06:04:09 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:00 +0900 Fix compile errors on arm on the CI (https://github.com/Shopify/ruby/pull/313) * Fix compile errors on arm on the CI * Fix typo commit 6e5382780f4c6cdb7eef945898448639071969fc Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-13 04:28:54 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:00 +0900 Port over putstring commit 86606e01ee984cd9aebdcc68c0b5025604fb5184 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-21 04:00:42 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:47:00 +0900 Port over setlocal_wc0 commit b45b29fdbf43ea6043c1df041372842a07f5b3a8 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-13 03:59:31 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:59 +0900 Port gen_getlocal() commit 38c2fb8a90172bcaabc153016f0a43b92a921d9c Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-13 02:40:59 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:59 +0900 Port YJIT New Backend Temp Checks to Cirrus (https://github.com/Shopify/ruby/pull/312) Co-authored-by: Jean Boussier commit 8864691bde2560ef440c4a8dac16b2c661faa228 Author: Kevin Newton AuthorDate: 2022-07-12 06:51:58 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:59 +0900 Better label refs (https://github.com/Shopify/ruby/pull/310) Previously we were using a `Box` to support patching the code when jumping to labels. We needed to do this because some of the closures that were being used to patch needed to capture local variables (on both X86 and ARM it was the type of condition for the conditional jumps). To get around that, we can instead use const generics since the condition codes are always known at compile-time. This means that the closures go from polymorphic to monomorphic, which means they can be represented as an `fn` instead of a `Box`, which means they can fall back to a plain function pointer. This simplifies the storage of the `LabelRef` structs and should hopefully be a better default going forward. commit e1f3f038e93d5b36ed6e6a15feac478bf3cfe1fa Author: Kevin Newton AuthorDate: 2022-07-09 05:35:51 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:59 +0900 Fix jumps (https://github.com/Shopify/ruby/pull/309) * Jumps for A64 should be in # of instructions * More splitting for Arm64 https://github.com/Shopify/ruby/pull/309 commit 6773832ab9cad3c7bcb3b93ef85a4bcfc9b3a4e3 Author: Kevin Newton AuthorDate: 2022-07-09 02:01:21 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:59 +0900 More Arm64 lowering/backend work (https://github.com/Shopify/ruby/pull/307) * More Arm64 lowering/backend work * We now have encoding support for the LDR instruction for loading a PC-relative memory location * You can now call add/adds/sub/subs with signed immediates, which switches appropriately based on sign * We can now load immediates into registers appropriately, attempting to keep the minimal number of instructions: * If it fits into 16 bytes, we use just a single movz. * Else if it can be encoded into a bitmask immediate, we use a single mov. * Otherwise we use a movz, a movk, and then optionally another one or two movks. * Fixed a bunch of code to do with the Op::Load opcode. * We now handle GC-offsets properly for Op::Load by skipping around them with a jump instruction. (This will be made better by constant pools in the future.) * Op::Lea is doing what it's supposed to do now. * Fixed a bug in the backend tests to do with not using the result of an Op::Add. * Fix the remaining tests for Arm64 * Move split loads logic into each backend commit 0551115912fd6682187dd501275096fdb7570084 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-08 05:39:39 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:59 +0900 Add #[must_use] annotations to asm instructions commit ab2fa6ebddc13679452ad9f0fc3a7b630a1cbe3a Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-08 05:28:17 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:59 +0900 Add a backend test with a load of a GC'd VALUE commit 580f26959eb31d523ac21d640e21ddbe70779512 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-08 01:35:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:59 +0900 Get started on branchunless port commit 65019ed60c635b34337ea35978e931d09ab0181b Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-07 23:49:59 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:59 +0900 Get codegen for deferred compilation working commit aab53e2868f7b1a28915f181e0875b990c07b8c9 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-07 04:09:08 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:59 +0900 Add test for direct jump to a code pointer commit 7a9b581e0896d4aa7a037da90c837b830213c8e8 Author: Kevin Newton AuthorDate: 2022-07-06 05:04:19 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:58 +0900 Arm64 progress (https://github.com/Shopify/ruby/pull/304) * Get initial wiring up * Split IncrCounter instruction * Breakpoints in Arm64 * Support for ORR * MOV instruction encodings * Implement JmpOpnd and CRet * Add ORN * Add MVN * PUSH, POP, CCALL for Arm64 * Some formatting and implement Op::Not for Arm64 * Consistent constants when working with the Arm64 SP * Allow OR-ing values into the memory buffer * Test lowering Arm64 ADD * Emit unconditional jumps consistently in Arm64 * Begin emitting conditional jumps for A64 * Back out some labelref changes * Remove label API that no longer exists * Use a trait for the label encoders * Encode nop * Add in nops so jumps are the same width no matter what on Arm64 * Op::Jbe for CodePtr * Pass src_addr and dst_addr instead of calculated offset to label refs * Even more jump work for Arm64 * Fix up jumps to use consistent assertions * Handle splitting Add, Sub, and Not insns for Arm64 * More Arm64 splits and various fixes * PR feedback for Arm64 support * Split up jumps and conditional jump logic commit b272c57f27628ab114206c777d5b274713d31079 Author: Kevin Newton AuthorDate: 2022-06-23 01:27:59 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:58 +0900 LSL, LSR, B.cond (https://github.com/Shopify/ruby/pull/303) * LSL and LSR * B.cond * Move A64 files around to make more sense * offset -> byte_offset for bcond commit d9163280782086b57119abc9478580a6b3efd2c3 Author: Alan Wu AuthorDate: 2022-06-22 08:41:06 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:58 +0900 Conscise IR disassembly (https://github.com/Shopify/ruby/pull/302) The output from `dbg!` was too verbose. For `test_jo` the output went from 37 lines to 5 lines. The added index helps parsing InsnOut indicies. Samples: ``` test backend::tests::test_jo ... [src/backend/ir.rs:589] &self = Assembler 000 Load(Mem64[Reg(3) + 8]) -> Out64(0) 001 Sub(Out64(0), 1_i64) -> Out64(1) 002 Load(Out64(1)) -> Out64(2) 003 Add(Out64(2), Mem64[Reg(3)]) -> Out64(3) 004 Jo() target=CodePtr(CodePtr(0x5)) -> Out64(4) 005 Mov(Mem64[Reg(3)], Out64(3)) -> Out64(5) test backend::tests::test_reuse_reg ... [src/backend/ir.rs:589] &self = Assembler 000 Load(Mem64[Reg(3)]) -> Out64(0) 001 Add(Out64(0), 1_u64) -> Out64(1) 002 Load(Mem64[Reg(3) + 8]) -> Out64(2) 003 Add(Out64(2), 1_u64) -> Out64(3) 004 Add(Out64(1), 1_u64) -> Out64(4) 005 Add(Out64(1), Out64(4)) -> Out64(5) 006 Store(Mem64[Reg(3)], Out64(4)) -> Out64(6) 007 Store(Mem64[Reg(3) + 8], Out64(5)) -> Out64(7) ``` commit 0a96a3918970f1852e1bd691c826c904bccd60b8 Author: Alan Wu AuthorDate: 2022-06-22 07:15:10 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:58 +0900 Delete dbg!() calls commit f1b188143b0255cef498ce4fb7a331daca64e063 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-22 06:01:26 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:58 +0900 Fix backend transform bug, add test commit 4c0a440b1828fd1cc1dba24ae1d0a384e98859aa Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-22 00:30:08 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:58 +0900 Port over duphash and newarray commit 2eba6aef724f20162bd650d535be876aa4a19964 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-22 00:05:20 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:58 +0900 Port over get_branch_target() commit 4254174ca76d8e64db29fbcbcfc99a81e2d50211 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-21 05:06:39 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:58 +0900 Port over setn commit 24db233fc70799642aad09be9170da61332ff010 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-21 04:50:42 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:58 +0900 Add jo insn and test for jo commit 8bb7421d8e222fdae6b51049993efc46cf494f15 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-21 04:34:14 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:58 +0900 Port topn, adjuststack, most of opt_plus commit d0204e51e270a1dacdfa3ae775892840b0e7b192 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-21 04:12:22 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:58 +0900 Port guard_two_fixnums commit 00ad14f8c92c7b3e305c015b9d4352f1b0c30d5a Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-21 03:55:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:57 +0900 Port gen_full_cfunc_return commit b89d878ea61d2883838fdd466c6f432134ae1860 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-21 03:50:29 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:57 +0900 Port getlocal_WC0 commit 4c7d7080d2fdd07d84de63231618a090fa5addad Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-21 02:13:46 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:57 +0900 Port over gen_putspecialobject commit c5ae52630f9a362579608f27cfbd7a1f08c4d77f Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-21 02:02:20 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:57 +0900 Port gen_putself, log what can't be compiled in --yjit-dump-insns commit 27dd43bbc52eb2040d46370fb0170d4d420223e1 Author: Kevin Newton AuthorDate: 2022-06-18 06:26:13 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:57 +0900 TST, CMP, AND/ANDS with registers (https://github.com/Shopify/ruby/pull/301) * Add TST instruction and AND/ANDS entrypoints for immediates * TST/AND/ANDS for registers * CMP instruction commit 57e64f70c0af7a19b4cf68462ea2467286f4e9cb Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-21 00:50:10 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:57 +0900 Make sure allocated reg size in bits matches insn out size commit eb4c7b4ea55c5a4c593bea4bba9aa1e9093b3447 Author: Kevin Newton AuthorDate: 2022-06-17 03:28:51 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:57 +0900 AND/ANDS for A64 (https://github.com/Shopify/ruby/pull/300) commit 67de662c4419d4d115f40f8d3ed0c295b581dcf0 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-17 04:34:17 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:57 +0900 Add Opnd.rm_num_bits() method commit 084d4bb19228eed3e89663a2d24ab3accaa1a4ee Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-17 04:25:27 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:57 +0900 Implement X86Reg::sub_reg() method commit 4932a6ef755ae4cc473666c8757f7c51ac8c2902 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-17 00:20:54 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:57 +0900 Fix small bug in x86_split commit b8fc9909bfa18677d5ad2cb2535ca1f0537216e5 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-16 05:30:40 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:56 +0900 Get rid of temporary context methods commit 40ac79ada89953f5ed9e36bdb5b3d0d3ae8d8f3e Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-16 05:17:15 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:56 +0900 Add bitwise and to x86 backend commit abea8c8983aef411f7e6a2afbfbc25e31b2f5486 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-16 05:16:33 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:56 +0900 Add stores to one of the tests commit 1923842b3dd97cf00d1511b7962a509dd650f06b Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-16 05:07:38 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:56 +0900 Move backend tests to their own file commit 59b818ec8757348e3f7fa463ace36489c5ec75ac Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-16 03:13:04 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:56 +0900 Add support for using InsnOut as memory operand base commit 401521ca14da1b740be9004cc4a344925dbf5fff Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-16 02:24:21 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:56 +0900 Rename transform_insns to forward_pass commit ae9bcfec8c237266e324fc1ae6a7a28390045b7e Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-16 02:03:20 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:56 +0900 Add assert commit e743e3bf20a38d44888383393823b8776c2d1e90 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-15 05:32:54 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:56 +0900 Remove unused code, add backend asm test commit 4dbc1e1d825b4a50e3847de788da0ab6a8d860ae Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-15 05:02:43 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:56 +0900 Port bitwise not, gen_check_ints() commit 9d18e6c300eacfdf11e166326156677e56fc6392 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-15 04:50:48 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:56 +0900 Port gen_code_for_exit_from_stub() commit e72dab304e423ad8c98656c146d52f6a8fa4a2c2 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-15 04:45:41 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:55 +0900 Add atomic counter increment instruction commit 27fcab995e6dde19deb91dc6e291bdb72100af68 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-15 02:41:53 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:55 +0900 Get side exits working, get miniruby to boot with threshold=1 commit c10e018e1c2dd3351af1f40f9b20ea23cfeace36 Author: Kevin Newton AuthorDate: 2022-06-14 06:16:33 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:55 +0900 LDADDAL, STUR, BL (https://github.com/Shopify/ruby/pull/299) * LDADDAL instruction * STUR * BL instruction * Remove num_bits from imm and uimm * Tests for imm_fits_bits and uimm_fits_bits * Reorder arguments to LDADDAL commit 1daa5942b83ede3e504f9952a1f705b763e59893 Author: Kevin Newton AuthorDate: 2022-06-09 04:19:53 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:55 +0900 MOVK, MOVZ, BR (https://github.com/Shopify/ruby/pull/296) * MOVK instruction * More tests for the A64 entrypoints * Finish testing entrypoints * MOVZ * BR instruction commit 0000984fed1be885ad51845477f4e475d1b07fab Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-10 05:29:55 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:55 +0900 Port over putnil, putobject, and gen_leave() * Remove x86-64 dependency from codegen.rs * Port over putnil and putobject * Port over gen_leave() * Complete port of gen_leave() * Fix bug in x86 instruction splitting commit d75c346c1cb5d67fd4c6582274a3ff4f1450af15 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-10 04:40:27 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:55 +0900 Port gen_leave_exit(), add support for labels to backend commit ea9abe547da383f30bd0afe73c6693ed1ff68765 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-09 05:09:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:55 +0900 Add cpush and cpop IR instructions commit 77383b3958a90c3e6c257e3c4431fed54a9de10b Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-09 04:01:13 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:55 +0900 Add conditional jumps commit b63f8bb45619c891ce45466031012c0a48defefe Author: Kevin Newton AuthorDate: 2022-06-08 03:20:43 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:55 +0900 LDUR (https://github.com/Shopify/ruby/pull/295) * LDUR * Fix up immediate masking * Consume operands directly * Consistency and cleanup * More consistency and entrypoints * Cleaner syntax for masks * Cleaner shifting for encodings commit 71770ceee5c515d97dad1a0088008561106d141d Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-08 23:30:10 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:55 +0900 Map comments in backend commit c2fdec93a9d533e9e9eaabd96b6bf5210b211abf Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-08 05:57:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:55 +0900 First pass at porting gen_entry_prologue() commit 03ed50310d772e555f819a4b321e4d6593161233 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-08 05:27:10 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:54 +0900 Have Assembler::compile() return a list of GC offsets commit 26ba0a454c1d08df0afacca2786330198a1daee0 Author: Kevin Newton AuthorDate: 2022-06-08 02:37:49 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:54 +0900 RET A64 instructions (https://github.com/Shopify/ruby/pull/294) commit e22134277b81124ba2ce4cf3e08ad0983c0432c9 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-08 04:22:06 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:54 +0900 Remove x86_64 dependency in core.rs commit 3133540be79a511c79c3876df40ad25c912ecc79 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-08 02:38:47 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:54 +0900 Progress on codegen.rs port commit a1b8c947380716a5ffca2b1888a6310e8132b00c Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-16 02:10:13 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:54 +0900 * Arm64 Beginnings (https://github.com/Shopify/ruby/pull/291) * Initial setup for aarch64 * ADDS and SUBS * ADD and SUB for immediates * Revert moved code * Documentation * Rename Arm64* to A64* * Comments on shift types * Share sig_imm_size and unsig_imm_size commit 39dd8b2dfbb50aab7731466b57c39eaf96e66996 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-07 06:57:07 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:54 +0900 Add test for lea and ret. Fix codegen for lea and ret. commit 04e2ccede4e992a6e0d18ed506d76625ee7da8a3 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-06-07 04:54:22 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:54 +0900 Change codegen.rs to use backend Assembler directly commit 7c83a904a49a8ba3a1b78474a6d51a7a32178a4a Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-26 04:05:54 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:54 +0900 Implement gc offset logic commit efb45acb2932dd8ebd60853584370ca75653cdf8 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-25 05:30:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:54 +0900 Load GC Value operands into registers commit a88fc48b3a61b63aa1c2f4b05981e0d8726e2b9e Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-25 04:44:46 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:54 +0900 Add CCall IR insn, implement gen_swap() commit 0032b02045af081df30f35b508b6b790e44fcdc2 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-25 01:03:21 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:53 +0900 Add gen_dupn commit 872940e215dd571c45e9c30d96fa7b9f61dc0442 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-20 05:51:47 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:53 +0900 Add test with register reuse commit 151cc55baa8d73969a57228d3a18458e5fe663ed Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-20 05:17:09 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:53 +0900 Fix issue with load, gen_dup commit 1b2ee62149d5fa8d8cbe2097f9fd7a3af31989c2 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-20 04:01:20 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:53 +0900 Implement target-specific insn splitting with Kevin. Add tests. commit 564f9503603ae261561193f69f1fbdef6a140aa1 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-20 02:32:56 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:53 +0900 Make assembler methods public, sketch gen_dup with new backend commit 99cfbdca6b7c2dd167137e7256cc861961969ffd Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-20 01:26:20 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:53 +0900 Fix bug with asm.comment() commit 75c995b0d10515568ccfe8f67be1bd3bbcbb4b69 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-19 05:00:45 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:53 +0900 Bias register allocator to reuse first operand commit 369911d31de0446dbee805a5e4ddd5691518e6ff Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-19 03:41:43 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:53 +0900 Add dbg!() for Assembler. Fix regalloc issue. commit a2aa289594352db98b893aae716cebae0556a20e Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-19 00:36:55 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:53 +0900 Function to map from Opnd => X86Opnd commit e9cc17dcc9a365d59330b8c37baeafed5d75a519 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-18 06:31:36 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:46:53 +0900 Start work on platform-specific codegen commit a3d8e20ceaa934b56383c368f8c3838384f71a73 Author: Kevin Newton AuthorDate: 2022-05-17 03:48:28 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:37:49 +0900 Split insns (https://github.com/Shopify/ruby/pull/290) * Split instructions if necessary * Add a reusable transform_insns function * Split out comments labels from transform_insns * Refactor alloc_regs to use transform_insns commit 2b7d4f277d120229fca4cc9665b44ef1e5cbf7e7 Author: Kevin Newton AuthorDate: 2022-05-14 03:55:01 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:37:49 +0900 IR register allocation PR: https://github.com/Shopify/ruby/pull/289 commit 7753b6b8b6a011d048a6b3aaf912d1dad7995b7b Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-14 04:58:36 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:37:49 +0900 Removed String opnd so that we can derive Copy for Opnd commit 5021f26b4ba270b2fc36a6fce7b4d54bb65b7062 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-13 03:31:17 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:37:49 +0900 Complete sketch for guard_object_is_heap commit 884cbaabd9c15cdc85809cf713c1be755ea70cf7 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-13 03:16:09 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:37:49 +0900 Change push insn macros commit 92e9d1e66186d41a01f6116d1993fbfd66fdf1a6 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-13 03:05:48 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:37:48 +0900 Switch IR to use Option commit 96e5f9def0121a7ee4f1557b25dade7bdb558df8 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-13 02:55:49 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:37:48 +0900 Add macro to define ops commit 909d214708d87e1dab618a04b4780dd926c721ca Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-12 05:45:15 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:37:48 +0900 Progress on IR sketch commit 2ffaa377c212279e4a8bf1da8ac65a00dcdadd53 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-12 04:17:44 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-30 00:37:48 +0900 WIP backend IR sketch commit 4ee1a687768338a1928014fc6042c320a1a1af3e Author: Benoit Daloze AuthorDate: 2022-08-29 22:36:29 +0900 Commit: Benoit Daloze CommitDate: 2022-08-29 22:36:29 +0900 Update to ruby/spec@d01709f commit a319d3cfdc1afef8497321fee7f690052b16739c Author: Benoit Daloze AuthorDate: 2022-08-29 22:32:48 +0900 Commit: Benoit Daloze CommitDate: 2022-08-29 22:32:48 +0900 Run specs with CHECK_LEAKS=true * To ensure these issues are noticed early. commit 4bc782ed87d05d251d1656ca08e176f8bb56a448 Author: Yusuke Endoh AuthorDate: 2022-08-29 20:23:51 +0900 Commit: Yusuke Endoh CommitDate: 2022-08-29 20:23:51 +0900 Revert "Chect what remains in TMPDIR" This reverts commit 7bdb999d0f28c7bb9d7a35ca775e405674527e5f. I think I confirmed the mechanism. GCC (invoked by MJIT) creates a temporary file in TMPDIR, which prevents rm_rf from removing the directory. commit 78748a5de2146d00696698340d745bba3ec66496 Author: S.H AuthorDate: 2022-08-29 14:42:19 +0900 Commit: GitHub CommitDate: 2022-08-29 14:42:19 +0900 Introduce `usage_analysis_clear` Notes: Merged: https://github.com/ruby/ruby/pull/6274 Merged-By: nobu commit 7bdb999d0f28c7bb9d7a35ca775e405674527e5f Author: Yusuke Endoh AuthorDate: 2022-08-29 12:50:47 +0900 Commit: Yusuke Endoh CommitDate: 2022-08-29 12:50:47 +0900 Check what remains in TMPDIR I guess it has a shared library file created by MJIT, but I want to make sure the fact. commit 41a275c89ac8064f18d995251b9fb3349a24273b Author: Hiroshi SHIBATA AuthorDate: 2022-08-29 09:52:09 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-29 09:52:09 +0900 Support main branch for syntax_suggest commit 055fc7b14dc375089b454cc7eaebeb78f9f3efaa Author: Jeremy Evans AuthorDate: 2022-08-29 06:57:36 +0900 Commit: Jeremy Evans CommitDate: 2022-08-29 06:57:36 +0900 Fix comment in timev.rb commit aecc3b12528e1b02d24bcd5df746e93aa04ba211 Author: Burdette Lamar AuthorDate: 2022-08-29 06:49:51 +0900 Commit: GitHub CommitDate: 2022-08-29 06:49:51 +0900 [DOC] Enhanced RDoc for Time (#6294) Notes: Merged-By: BurdetteLamar commit 8799c912052f8bb957a65edd103e0064cac94598 Author: shields AuthorDate: 2022-08-28 22:40:02 +0900 Commit: git[bot] CommitDate: 2022-08-29 00:33:15 +0900 [rubygems/rubygems] Add platform :windows as a shortcut for all Windows platforms https://github.com/rubygems/rubygems/commit/f3c49ad3f7 commit ace2eee544378eb03ea95b95c89434508325e8c8 Author: Nobuyoshi Nakada AuthorDate: 2022-08-28 09:29:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-28 09:29:24 +0900 [Bug #18963] Separate string contents by here document terminator Notes: Merged: https://github.com/ruby/ruby/pull/6292 commit 111b69e8a009f469356a723183b651626dbaa8c4 Author: Takashi Kokubun AuthorDate: 2022-08-28 07:47:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-28 07:47:18 +0900 Pass wait: false to avoid a timeout commit a797ded8e2637de91dd4dd5b54bed515f6cda08a Author: spaette AuthorDate: 2022-08-28 06:09:55 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-28 06:42:55 +0900 typos Notes: Merged: https://github.com/ruby/ruby/pull/6290 commit 95d2d7920c97d0502ebed4ba439177325ad05e57 Author: Takashi Kokubun AuthorDate: 2022-08-28 04:05:41 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-28 04:05:45 +0900 Try to prevent the failure of FileUtils.rm_rf commit 458d49a04ab7ce8a61be11fbaf341ee252b8253a Author: Takashi Kokubun AuthorDate: 2022-08-28 02:21:23 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-28 02:22:30 +0900 Ignore rm -rf failure http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/4213386 It's failing with: rm: cannot remove '/tmp/ruby/v3/build/trunk-mjit/tmp/test_rubygems_20220827-13666-ii8lcp': Directory not empty rm: cannot remove '/tmp/ruby/v3/build/trunk-mjit/tmp/test_rubygems_20220827-13666-fy77y1': Directory not empty I'd like to make sure the following `ENV.replace` is called and see if there's any other issues. commit 381d8e43ce33378345a834b3e554e977f157351a Author: Aleksandr Varnin <10187586+cmrd-senya@users.noreply.github.com> AuthorDate: 2022-08-25 01:09:10 +0900 Commit: git[bot] CommitDate: 2022-08-28 02:04:14 +0900 [rubygems/rubygems] Bundler: make to_lock consistent between Gem::Dependency and Bundler::Dependency https://github.com/rubygems/rubygems/commit/971d57cf5a commit 13d2225c460cfc3daa679acb89433289527a844f Author: Takashi Kokubun AuthorDate: 2022-08-27 15:32:01 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-27 15:35:45 +0900 Try rm -rf instead of FileUtils.rm_rf FileUtils.rm_rf started to randomly fail on http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker since around https://github.com/ruby/fileutils/pull/99. commit d6f21b308bcff03e82f8b3dbf11a852ce111b3b3 Author: Takashi Kokubun AuthorDate: 2022-08-26 15:00:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-26 15:00:19 +0900 Convert catch_except_t to stdbool catch_excep_t is a field that exists for MJIT. In the process of rewriting MJIT in Ruby, I added API to convert 1/0 of _Bool to true/false, and it seemed confusing and hard to maintain if you don't use _Bool for *_p fields. commit 098a3cfaa7afe40e023e589c92124bac18e207c3 Author: Hiroshi SHIBATA AuthorDate: 2022-08-26 11:25:10 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-26 12:15:47 +0900 Fixed typo Notes: Merged: https://github.com/ruby/ruby/pull/6287 commit 1cbee173bef4ce8dfb779e367b75a05f9777cea6 Author: Hiroshi SHIBATA AuthorDate: 2022-08-26 11:18:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-26 12:15:47 +0900 Sync examples and cli from syntax_suggest Notes: Merged: https://github.com/ruby/ruby/pull/6287 commit 3a2bc849541a38fe0050bd6b522adf6fedbc29f5 Author: Hiroshi SHIBATA AuthorDate: 2022-08-26 11:15:01 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-26 12:15:47 +0900 Added test-syntax-suggest to CI Notes: Merged: https://github.com/ruby/ruby/pull/6287 commit 5e4d1f9908fc09d0d9a451fd7e385af5ef0d7007 Author: Hiroshi SHIBATA AuthorDate: 2022-08-26 11:13:26 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-26 12:15:47 +0900 Skip examples to need installed ruby exe Notes: Merged: https://github.com/ruby/ruby/pull/6287 commit 8dfc077f7016715f33b4818ad3e6770d557356a1 Author: Hiroshi SHIBATA AuthorDate: 2022-08-26 11:10:15 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-26 12:15:47 +0900 Added syntax_suggest cli and resolve failing exapmle with it Notes: Merged: https://github.com/ruby/ruby/pull/6287 commit bd1b1eeb0e528da983e76216d459a1d61aa026cb Author: Hiroshi SHIBATA AuthorDate: 2022-08-26 10:49:11 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-26 12:15:47 +0900 ruby-prof is now optional Notes: Merged: https://github.com/ruby/ruby/pull/6287 commit 9c2af0a171cb362ba3b1eb116b6fdb060cb62d2c Author: Hiroshi SHIBATA AuthorDate: 2022-08-26 10:42:44 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-26 12:15:47 +0900 added test-syntax-suggest and prepare tasks Notes: Merged: https://github.com/ruby/ruby/pull/6287 commit 0d9f4ea0d45f6577a4a13f898e981958a1f039c6 Author: Hiroshi SHIBATA AuthorDate: 2022-08-19 15:37:45 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-26 12:15:47 +0900 Import spec examples from ruby/syntax_suggest Notes: Merged: https://github.com/ruby/ruby/pull/6287 commit 3504be1bc13235407e01f55d3df6fe0b4cb5ba9e Author: Jun Aruga AuthorDate: 2022-08-26 03:11:34 +0900 Commit: git[bot] CommitDate: 2022-08-26 09:57:02 +0900 [ruby/irb] Require RDoc in `input-method.rb` again in a limited scope. RDoc is implemented as soft dependency in IRB. See how the rdoc is required in the files. I reverted the commit below. ``` $ grep -ril rdoc lib/ lib/irb/cmd/help.rb lib/irb/completion.rb lib/irb/easter-egg.rb lib/irb/input-method.rb ``` --- Revert "Remove `require` in signal handler to avoid ThreadError" This reverts commit https://github.com/ruby/irb/commit/5f749c613c89. https://github.com/ruby/irb/commit/b24852058f commit 21cac42385e1a116d287e155e461453b830640d2 Author: Jeremy Evans AuthorDate: 2022-05-27 02:37:01 +0900 Commit: Jeremy Evans CommitDate: 2022-08-26 05:36:17 +0900 Raise ArgumentError for IO.foreach with limit of 0 Makes behavior consistent with IO.readlines. Fixes [Bug #18767] Notes: Merged: https://github.com/ruby/ruby/pull/5954 commit 881bc2a1765e7c19ab389c53841adc5ac329f1aa Author: Takashi Kokubun AuthorDate: 2022-08-26 03:36:04 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-26 03:37:39 +0900 Skip running a DRb test on MinGW It hangs even after a retry https://github.com/ruby/ruby/runs/7966439530?check_suite_focus=true We contacted GitHub Suppport about this before, and we concluded that the problem is on our end. Unfortunately we don't have a bandwidth to fix this MinGW problem, so until we get to work on it, this should be just skipped to avoid a sporadic CI timeout. commit af9fa16c96284f61b595a8f994926533fd51fd3b Author: Takashi Kokubun AuthorDate: 2022-08-26 03:31:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-26 03:31:16 +0900 Make sure super is called and fix teardown commit 52560a92631e7b327365383e7ce83c80fcfafc05 Author: Takashi Kokubun AuthorDate: 2022-08-26 03:07:23 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-26 03:11:16 +0900 Skip flaky mkmf tests on AppVeyor It seems like TestMkmfTryConstant started to randomly fail, maybe related to 96562a517d3373466ec306b5f821a41f4758d2a6 or 073f3b7e0ad94657c04573983affb9d66e6bff2c. Some of them seem to have failed even after retries, so it feels like there's a bug in the implementation, which leaves an unrecoverable situation. https://ci.appveyor.com/project/ruby/ruby/builds/44559958/job/7uub5bmkvy4pwwl8 https://ci.appveyor.com/project/ruby/ruby/builds/44579924/job/n81xmb2mqs6no7dm https://ci.appveyor.com/project/ruby/ruby/builds/44558471/job/s4qwymmlxmfjjd35 Until we figure out what it is, I'd like to stabilize the CI by not running it. commit 8706b74b902db70c5c00c8008a0f0b045381eb7e Author: Burdette Lamar AuthorDate: 2022-08-26 03:02:18 +0900 Commit: GitHub CommitDate: 2022-08-26 03:02:18 +0900 [DOC] Enhanced RDoc for Time (#6277) Deletes the :include: files in doc/time, which became no longer workable when @nobu pointed out that some (but not all) creator methods accept string values as well as integer-like values. Changes to methods: Time.utc Time.local Time.at Time.new Notes: Merged-By: BurdetteLamar commit b2d0f788694c680d2abf695358e42d819b11b2ec Author: Jean Boussier AuthorDate: 2022-08-25 16:28:07 +0900 Commit: Jean Boussier CommitDate: 2022-08-26 00:49:50 +0900 Fix private methods reported as protected when called via Symbol#to_proc Ref: bfa6a8ddc84fffe0aef5a0f91b417167e124dbbf Ref: [Bug #18826] Notes: Merged: https://github.com/ruby/ruby/pull/6284 commit c069f50401583ca0d021869b104e2eb9df2cfa6a Author: Nobuyoshi Nakada AuthorDate: 2022-08-25 23:50:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-26 00:07:19 +0900 [DOC] Tell RDoc aliases of singleton class Since RDoc C parser cannot capture aliases which are using an expression other than a single variable as the class, use an intermediate variable for the singleton class. commit ad8774f8e537a3ad73ce56bd12e75c85271f93a3 Author: David Rodríguez AuthorDate: 2022-08-25 05:54:33 +0900 Commit: git[bot] CommitDate: 2022-08-25 23:39:02 +0900 [rubygems/rubygems] Fix another regression for sorbet Recently a changed was introduced to update the resolver platforms after it has been created, in order to remove the "ruby" platform from it if it's to be removed from the lockfile. However, it did not update the `@resolving_only_for_ruby` instance variable in that case, so the resolver was not properly doing the right thing anymore. To fix this, I tweaked the code to restore not changing resolver platforms after the resolver has been instantiated. https://github.com/rubygems/rubygems/commit/8fbc30a1d0 commit f5f81bb777bb1dbf8da3f976136733e65b026fef Author: Jeremy Evans AuthorDate: 2022-08-25 06:15:41 +0900 Commit: Jeremy Evans CommitDate: 2022-08-25 06:15:41 +0900 Update Module#instance_methods documentation for visibility changes/aliases Requested by matz in comment on #18435. commit 28a3434634a0116a6f2b9e2df0bcbbfb0cfbd28b Author: Aaron Patterson AuthorDate: 2022-08-24 05:23:40 +0900 Commit: Aaron Patterson CommitDate: 2022-08-25 02:54:27 +0900 Disable Ractor check on 32bit architectures Ractor verification requires storing the ractor id in the top 32 bits of the object header. Unfortunately 32 bit machines only have 32 bits in the object header. The verification code has a 32 bit left shift which doesn't work on i686 and will clobber existing flags. This commit disables the verification code on i686 since i686 will crash if it's enabled. Co-Authored-By: John Hawthorn Co-Authored-By: Jemma Issroff Notes: Merged: https://github.com/ruby/ruby/pull/6279 commit b4be3c00c5737649166db676278fd28f768a5e3c Author: Noah Gibbs AuthorDate: 2022-07-29 00:45:08 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-25 02:42:45 +0900 add --yjit-dump-iseqs param (https://github.com/Shopify/ruby/pull/332) Notes: Merged: https://github.com/ruby/ruby/pull/6278 commit 0ad9cc16966c2e56f0fe7e5992edf76033d3a83f Author: David Rodríguez AuthorDate: 2022-08-04 20:03:29 +0900 Commit: git[bot] CommitDate: 2022-08-24 17:59:15 +0900 [rubygems/rubygems] Backport non-gnu libc on linux platform matching to Bundler https://github.com/rubygems/rubygems/commit/703373b41f Co-authored-by: Loic Nageleisen commit 314b76a567e84f3ef245e84e844bdd4aaaad4f2a Author: Yusuke Endoh AuthorDate: 2022-08-24 10:36:17 +0900 Commit: Yusuke Endoh CommitDate: 2022-08-24 10:36:17 +0900 test/-ext-/eval/test_eval.rb: Prevent "assigned but unused variable" commit 60c900f452327b9b5c82b1e2a8d1d9f88ce8a9b7 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-08-23 02:42:38 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-24 06:27:49 +0900 Add @k0kubun to CODEOWNERS for YJIT commit 46c3a93982d0b81668668a65c10bc3670a488d8a Author: Vít Ondruch AuthorDate: 2022-08-23 17:41:28 +0900 Commit: git[bot] CommitDate: 2022-08-23 18:01:35 +0900 [ruby/irb] Drop hard dependency on RDoc. This has been introduced in https://github.com/ruby/irb/commit/026700499dfd, but it seems that this is just be mistake, otherwise the later handling of `LoadError` would not be needed. https://github.com/ruby/irb/commit/54c8df06ff commit 983115cf3c8f75b1afbe3274f02c1529e1ce3a81 Author: Yusuke Endoh AuthorDate: 2022-07-26 21:31:27 +0900 Commit: git[bot] CommitDate: 2022-08-23 16:52:41 +0900 [ruby/fileutils] FileUtils.rm* methods swallows only Errno::ENOENT when force is true ... instead of any StandardError. To behave like the standard `rm` command, it should only ignore exceptions about not existing files, not every exception. This should make debugging some errors easier, because the expectation is that `rm -rf` will succeed if and only if, all given files (previously existent or not) are removed. However, due to this exception swallowing, this is not always the case. From the `rm` man page > COMPATIBILITY > > The rm utility differs from historical implementations in that the -f > option only masks attempts to remove non-existent files instead of > masking a large variety of errors. https://github.com/ruby/fileutils/commit/fa65d676ec Co-Authored-By: David Rodríguez commit 96562a517d3373466ec306b5f821a41f4758d2a6 Author: Yusuke Endoh AuthorDate: 2022-07-26 21:23:47 +0900 Commit: git[bot] CommitDate: 2022-08-23 16:52:40 +0900 [ruby/fileutils] Narrow the scope of ensure The ensure in postorder_traverse was added for [Bug #6756]. The intention was to try to delete the parent directory if it failed to get the children. (It may be possible to delete the directory if it is empty.) However, the ensure region rescue'ed not only "failure to get children" but also "failure to delete each child". Thus, the following raised Errno::ENOTEMPTY, but we expect it to raise Errno::EACCES. ``` $ mkdir foo $ touch foo/bar $ chmod 555 foo $ ruby -rfileutils -e 'FileUtils.rm_rf("foo")' ``` This changeset narrows the ensure region so that it rescues only "failure to get children". https://github.com/ruby/fileutils/commit/ec5d3b84ea commit 073f3b7e0ad94657c04573983affb9d66e6bff2c Author: Yusuke Endoh AuthorDate: 2022-07-26 21:17:30 +0900 Commit: git[bot] CommitDate: 2022-08-23 16:52:39 +0900 [ruby/fileutils] Fix the test permission of "test_rm_rf" The test was added for [Bug #6756]. The ticket insisted `FileUtils.rm_rf` should delete an empty directory even if its permission is 000. However, the test tried to delete a directory with permission 700. https://github.com/ruby/fileutils/commit/d6c2ab2c01 commit 7c784f0a6775c09960ee4ec1b9a680aae30aced7 Author: Takuya Noguchi AuthorDate: 2022-08-23 13:11:47 +0900 Commit: git[bot] CommitDate: 2022-08-23 15:33:34 +0900 [rubygems/rubygems] Bundler: avoid use of "can not" in spec literals Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/73b5cf9bd1 commit 22a416a3bbdcd868ad20f51ac690bef9f85303e7 Author: Takuya Noguchi AuthorDate: 2022-08-23 12:26:36 +0900 Commit: git[bot] CommitDate: 2022-08-23 14:28:47 +0900 [rubygems/rubygems] Bundler: update the link suggested on error with the new one Also typo is fixed. Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/9c1ea52ddf commit 9f6fcfcd7f74d5537f7631837e425fd4b61c0400 Author: Hiroshi SHIBATA AuthorDate: 2022-08-23 14:04:09 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-23 14:04:15 +0900 Ubuntu 18.04 in GHA is deprecated from Aug 8,2022 https://github.com/actions/runner-images/issues/6002 commit 892fe9bbbaa8b1c286d8d5404eb707ad4288a274 Author: Hiroshi SHIBATA AuthorDate: 2022-08-23 12:49:46 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-23 12:49:46 +0900 omit all assertions at TestIO_Console#test_intr when running with FreeBSD commit 545c2b0047309e3a94745cea95d36d44f2223276 Author: Takashi Kokubun AuthorDate: 2022-08-23 11:28:57 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-23 11:28:58 +0900 Fix an inconsistent include guard macro I was thinking about making it internal/mjit.h, but didn't. commit c1ecc498e4b879c85ee9ea7bfb3cf496777b6fcc Author: Hiroshi SHIBATA AuthorDate: 2022-08-23 09:34:32 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-23 10:45:57 +0900 Use rbs HEAD for https://github.com/ruby/rbs/pull/1090 Notes: Merged: https://github.com/ruby/ruby/pull/6268 commit f69244cee8c01d82e94d38032c82be684f37808a Author: Hiroshi SHIBATA AuthorDate: 2022-08-22 11:52:51 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-23 10:45:57 +0900 Merge rubygems/bundler HEAD Pick from https://github.com/rubygems/rubygems/commit/6b3a5a9ab0453463381a8164efb6298ea9eb776f Notes: Merged: https://github.com/ruby/ruby/pull/6268 commit 4790d0accdb745f9d8e605fd42eab712e4ebf834 Author: David Rodríguez AuthorDate: 2022-08-19 06:28:26 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-23 10:45:57 +0900 [rubygems/rubygems] Fix conservative update downgrading top level gems When `--conservative` is passed, explicit unlocks are set for top level gems via `@unlock[:gems]`, so that only those particular gems are allowed to be updated. When we compute the "base resolve" from the lockfile (the set of gems whose versions should be kept pinned by the resolver), we always exclude gems explicitly unlocked through `@unlock[:gems]` from it. This is done by the `converge_specs` method. However, the `converge_specs` method is also used for figuring out additional lower bound requirements from the lockfile. But in this case, even if gems are explicitly unlock in `@unlock[:gems]`, we still want to add the additional requirement, so that gems are not downgraded by the resolver. So the solution is to move the line filtering out gems in `@unlock[:gems]` from the `converged_specs` method out of that method, so that it only applies for computing the "base resolve", but not the addtional lower bound requirements. https://github.com/rubygems/rubygems/commit/405119bd7b Notes: Merged: https://github.com/ruby/ruby/pull/6268 commit c21c9a29eead43364e6347c0ce2f468d26391b1b Author: David Rodríguez AuthorDate: 2022-08-09 18:39:03 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-23 10:45:57 +0900 [rubygems/rubygems] Refactor building metadata dependencies https://github.com/rubygems/rubygems/commit/fa60f1fe43 Notes: Merged: https://github.com/ruby/ruby/pull/6268 commit a9509068db84d6a86a718b5ae931b8d65fc15272 Author: David Rodríguez AuthorDate: 2022-08-09 06:48:02 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-23 10:45:57 +0900 [rubygems/rubygems] Make `compact_index_api_missing` server more strict The compact index should not request any marshaled gemspecs whatsoever. https://github.com/rubygems/rubygems/commit/6dbd44d0c0 Notes: Merged: https://github.com/ruby/ruby/pull/6268 commit 29c443fedc0d3692cb52241318abb0de619ae178 Author: David Rodríguez AuthorDate: 2022-08-09 05:03:55 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-23 10:45:57 +0900 [rubygems/rubygems] Remove unnecessary mixin inclusion It's already included by the parent. https://github.com/rubygems/rubygems/commit/3ffe389c44 Notes: Merged: https://github.com/ruby/ruby/pull/6268 commit b30fc03e924235207edb009be2108226e4c8efc6 Author: David Rodríguez AuthorDate: 2022-08-09 04:39:49 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-23 10:45:57 +0900 [rubygems/rubygems] Centralize loading `Bundler::MatchPlatform` mixin It's explicitly loaded when monkeypatching RubyGems, which we do very early. So neither autoloading it, nor explicitly loading it anywhere else is necessary. https://github.com/rubygems/rubygems/commit/fbc7a57161 Notes: Merged: https://github.com/ruby/ruby/pull/6268 commit 6465a5331a2e5a0361e566b9c55f5314271a4df9 Author: Nobuyoshi Nakada AuthorDate: 2022-08-23 09:04:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-23 09:04:57 +0900 [DOC] Remove extra page-dir prefix commit 59f27445eaf1f28b4c9769bbfd13e3a4bffa17da Author: David Rodríguez AuthorDate: 2022-08-05 23:16:34 +0900 Commit: git[bot] CommitDate: 2022-08-23 05:50:23 +0900 [rubygems/rubygems] Implement extra rules for libc versioning https://github.com/rubygems/rubygems/commit/7e976d790a commit 492e70c7b4303ffea8f8c07797e1696b90ce1d01 Author: David Rodríguez AuthorDate: 2022-08-05 20:24:24 +0900 Commit: git[bot] CommitDate: 2022-08-23 05:50:22 +0900 [rubygems/rubygems] Fix `gem install` still choosing musl incorrectly https://github.com/rubygems/rubygems/commit/1b9f7f50a5 commit 06ae78f8fb7156e0f0c732fb797343b0c6921a5c Author: David Rodríguez AuthorDate: 2022-08-05 20:24:14 +0900 Commit: git[bot] CommitDate: 2022-08-23 05:50:22 +0900 [rubygems/rubygems] Remove unnecessary variables https://github.com/rubygems/rubygems/commit/b5e0c683d9 commit 9819283044b6955f4e3b464e6a99196e84ed107a Author: David Rodríguez AuthorDate: 2022-08-04 20:02:18 +0900 Commit: git[bot] CommitDate: 2022-08-23 05:50:21 +0900 [rubygems/rubygems] Handle non-gnu libc on linux platforms in RubyGems Attempting to install a gem published as both *-linux and *-linux-musl results in the incorrect gem being picked up, causing build failures due to binary incompatibility. This is caused by the `nil` wildcard swallowing the libc information upon version comparison. Handle the linux case by performing only non-wildcard equality on the version and asserting 'gnu' and nil equivalence, while preserving the current behaviour for other OSes. https://github.com/rubygems/rubygems/commit/9eead86abc Co-authored-by: Loic Nageleisen commit f254b673f89c12c42538d84b431116cf5ed0cde7 Author: Loic Nageleisen AuthorDate: 2020-11-24 21:55:10 +0900 Commit: git[bot] CommitDate: 2022-08-23 05:50:20 +0900 [rubygems/rubygems] Test platform parsing stability On past versions there were observed cases of inconsistencies when some platforms were re-parsed. Ensure that a platform's string representation parses again in a platform object equal to the original. https://github.com/rubygems/rubygems/commit/6da35ee93c commit 615f79be3cef210c26b967f06979ed464bf9e178 Author: Loic Nageleisen AuthorDate: 2020-11-24 21:52:13 +0900 Commit: git[bot] CommitDate: 2022-08-23 05:50:20 +0900 [rubygems/rubygems] Test platform's version-ness consistently The symmetry with the "for command line" case is made more apparent. https://github.com/rubygems/rubygems/commit/ab85d3558f commit aeac8b6c3a48279ffe138f3be6ae62208f43f5b3 Author: Burdette Lamar AuthorDate: 2022-08-23 03:17:05 +0900 Commit: GitHub CommitDate: 2022-08-23 03:17:05 +0900 [DOC] Addition to section 'Related Methods' (#6271) Addition to section 'Related Methods': suggests adding differentiators to the names of related methods. Notes: Merged-By: BurdetteLamar commit b8d142e733b5fc8810f53a45a7107414e6ae567c Author: Burdette Lamar AuthorDate: 2022-08-23 01:21:36 +0900 Commit: GitHub CommitDate: 2022-08-23 01:21:36 +0900 [DOC] Enhanced RDoc for Time (#6267) Treats: #utc #getlocal #getutc #ctime #to_s #inspect Notes: Merged-By: BurdetteLamar commit f99904341e0c376450113f0c37cb1b65d5b62bf3 Author: Nobuyoshi Nakada AuthorDate: 2022-08-22 23:14:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-22 23:15:30 +0900 [DOC] Remove extra page-dir prefix commit 13d31331c87f6fc0a8d43135be67090cd4c810c3 Author: S.H AuthorDate: 2022-08-22 18:52:36 +0900 Commit: GitHub CommitDate: 2022-08-22 18:52:36 +0900 Reuse `nonlocal_var` patterns Notes: Merged: https://github.com/ruby/ruby/pull/6263 Merged-By: nobu commit d5f50463c2b5c5263aa45c58f3f4ec73de8868d5 Author: Nobuyoshi Nakada AuthorDate: 2022-08-22 12:21:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-22 12:26:43 +0900 [Bug #18937] Coerce non-Numeric into Complex at comparisons commit d0b17a4d203b0838e2290bcc52a647e045596b59 Author: Hiroshi SHIBATA AuthorDate: 2022-08-22 12:06:23 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-22 12:23:38 +0900 Adjust space-width for help message commit 6afb4f0a28cbb798b709a8215fe0ac99221333f2 Author: Hiroshi SHIBATA AuthorDate: 2022-08-22 12:05:46 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-22 12:23:38 +0900 Added help entry for test-bundler-parallel commit 3d6baad7fac8c73cef8c82fe946757cf289c704c Author: Hiroshi SHIBATA AuthorDate: 2022-08-22 11:40:38 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-22 11:40:38 +0900 Added syntax_suggest entry to NEWS commit 70f69f85395f5735429cd45136d7de2742f08b72 Author: David Rodríguez AuthorDate: 2022-08-02 03:35:37 +0900 Commit: git[bot] CommitDate: 2022-08-22 10:12:25 +0900 [ruby/fileutils] Fix mkdir_p hanging on Windows when trying to create a file on a offline drive https://github.com/ruby/fileutils/commit/9cc6a082d7 commit 9f3140a42e3542dce565a27135dceeb135a4e691 Author: Takashi Kokubun AuthorDate: 2022-08-22 03:34:20 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-22 03:35:40 +0900 Remove mjit_exec benchmarks Now that mjit_exec doesn't exist, those files feel old. I'll probably change how I benchmark it when I add benchmarks for it again. commit a60507f616a7f5beb4aef99aa56f6b964c16880d Author: Takashi Kokubun AuthorDate: 2022-08-22 03:30:32 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-22 03:33:06 +0900 Rename mjit_compile.c to mjit_compiler.c I'm planning to introduce mjit_compiler.rb, and I want to make this consistent with it. Consistency with compile.c doesn't seem important for MJIT anyway. commit 936327a51915d6a39086f65ea1b8e5c5c4ade78f Author: Burdette Lamar AuthorDate: 2022-08-22 01:36:36 +0900 Commit: GitHub CommitDate: 2022-08-22 01:36:36 +0900 [DOC] Enhanced RDoc for Time (#6255) Treats: #utc #hash #localtime Notes: Merged-By: BurdetteLamar commit b043dd9c5dd7b5c46580e49ad38b49d5cb5beaf1 Author: Nobuyoshi Nakada AuthorDate: 2022-08-21 20:06:39 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-21 20:06:39 +0900 Check the room including the space to fill commit 0cc989696e9a7d0386773d23aa64de8fc04ea9fe Author: Nobuyoshi Nakada AuthorDate: 2021-07-01 06:38:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-21 20:01:27 +0900 Add invalid hexadecimal float tests commit 560941e711bed8e8cdd0183b76d9e2057cce6806 Author: David Rodríguez AuthorDate: 2022-08-19 21:03:43 +0900 Commit: git[bot] CommitDate: 2022-08-21 17:54:11 +0900 [rubygems/rubygems] Fix edge case where `bundler/inline` unintentionally skips install If the application has the `no_install` setting set for `bundle package`, then `bundler/inline` would silently skip installing any gems. https://github.com/rubygems/rubygems/commit/7864f49b27 commit b87ddd7538220e9782274281356fd55bfd29078b Author: David Rodríguez AuthorDate: 2022-08-20 03:35:26 +0900 Commit: git[bot] CommitDate: 2022-08-21 17:53:40 +0900 [rubygems/rubygems] Fix `bundle platform` crash when there's a lockfile with no Ruby locked https://github.com/rubygems/rubygems/commit/49fc54e87d commit f6d4d73abd986fbd89918fa8bbbb82746ee08371 Author: Nobuyoshi Nakada AuthorDate: 2022-08-21 14:04:52 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-21 14:04:52 +0900 Use `rb_fork` to suppress deprecated-declarations warnings commit ddf96b7693639e354e95b4d0c6021586968a5a5f Author: Takashi Kokubun AuthorDate: 2022-08-21 10:35:36 +0900 Commit: GitHub CommitDate: 2022-08-21 10:35:36 +0900 Drop mswin support of MJIT (#6265) The current MJIT relies on SIGCHLD and fork(2) to be performant, and it's something mswin can't offer. You could run Linux MJIT on WSL instead. [Misc #18968] Notes: Merged-By: k0kubun commit dc8d70e4615cdf12378322fbcd4396486270ddbe Author: Takashi Kokubun AuthorDate: 2022-08-21 08:33:03 +0900 Commit: GitHub CommitDate: 2022-08-21 08:33:03 +0900 Execute MJIT in a forked Ruby process (#6264) [Misc #18968] Notes: Merged-By: k0kubun commit 209631a45f9682dedf718f4b4a140efe7d21a6fc Author: Benoit Daloze AuthorDate: 2022-08-15 23:01:33 +0900 Commit: Benoit Daloze CommitDate: 2022-08-20 20:44:00 +0900 Consider resolved-through-zsuper methods equal for compatibility * Fixes https://bugs.ruby-lang.org/issues/18751 Notes: Merged: https://github.com/ruby/ruby/pull/6242 commit 8212aab81a77a2a91fb7c1681b4968171193b48f Author: Jeremy Evans AuthorDate: 2021-12-28 02:39:15 +0900 Commit: Benoit Daloze CommitDate: 2022-08-20 20:44:00 +0900 Make Object#method and Module#instance_method not skip ZSUPER methods Based on https://github.com/jeremyevans/ruby/commit/c95e7e5329140f640b6497905485761f3336d967 Among other things, this fixes calling visibility methods (public?, protected?, and private?) on them. It also fixes #owner to show the class the zsuper method entry is defined in, instead of the original class it references. For some backwards compatibility, adjust #parameters and #source_location, to show the parameters and source location of the method originally defined. Also have the parameters and source location still be shown by #inspect. Clarify documentation of {Method,UnboundMethod}#owner. Add tests based on the description of https://bugs.ruby-lang.org/issues/18435 and based on https://github.com/ruby/ruby/pull/5356#issuecomment-1005298809 Fixes [Bug #18435] [Bug #18729] Co-authored-by: Benoit Daloze Notes: Merged: https://github.com/ruby/ruby/pull/6242 commit b32a3f1275a8c7748f2134492ce3c532f277d261 Author: Nobuyoshi Nakada AuthorDate: 2022-08-20 16:25:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-20 16:25:30 +0900 [Bug #18964] Add test for `rb_econv_append` commit 485019c2bd02794b484500c78919b0d1230e4a84 Author: Takashi Kokubun AuthorDate: 2022-08-20 15:57:17 +0900 Commit: GitHub CommitDate: 2022-08-20 15:57:17 +0900 Rename mjit_exec to jit_exec (#6262) * Rename mjit_exec to jit_exec * Rename mjit_exec_slowpath to mjit_check_iseq * Remove mjit_exec references from comments Notes: Merged-By: k0kubun commit fc5382d46524bdf901efc8d15ef9faf14bea3ad1 Author: S-H-GAMELINKS AuthorDate: 2022-08-15 19:40:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-20 12:25:01 +0900 Reuse rb_class_new_instance_kw function Notes: Merged: https://github.com/ruby/ruby/pull/6241 commit 01e8d393bc06d8658ce04a042766cc8c0b5c108b Author: nick evans AuthorDate: 2022-04-03 22:54:18 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-20 12:24:37 +0900 Fix gdb incompatibilies in rp_class, rb_ps_vm Other changes are needed to bring .gdbinit up-to-date with current ruby. It looks like lldb is the preferred approach now, and that config *is* being kept up-to-date. Still, this might be helpful to someone? Notes: Merged: https://github.com/ruby/ruby/pull/6246 commit 6f3857f6a7b3cd6bd7e62e4efdbb1b841544e053 Author: Jeremy Evans AuthorDate: 2021-06-19 08:05:15 +0900 Commit: Jeremy Evans CommitDate: 2022-08-20 12:23:36 +0900 Support Encoding::Converter newline: :lf and :lf_newline options Previously, newline: :lf was accepted but ignored. Where it should have been used was commented out code that didn't work, but unlike all other invalid values, using newline: :lf did not raise an error. This adds support for newline: :lf and :lf_newline, for consistency with newline: :cr and :cr_newline. This is basically the same as universal_newline, except that it only affects writing and not reading due to RUBY_ECONV_NEWLINE_DECORATOR_WRITE_MASK. Add tests for the File.open :newline option while here. Fixes [Bug #12436] Notes: Merged: https://github.com/ruby/ruby/pull/4590 commit 1a2f99275be28fb0e8ff4cfc0165966e99898d70 Author: Nobuyoshi Nakada AuthorDate: 2022-08-19 23:53:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-20 10:06:40 +0900 [Bug #18958] format string must be ASCII compatible Notes: Merged: https://github.com/ruby/ruby/pull/6260 commit 43e8d9a0509e1961c406fedb2c168a6ec2359fdc Author: Nobuyoshi Nakada AuthorDate: 2022-08-19 23:39:52 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-20 10:06:40 +0900 Check if encoding capable object before check if ASCII compatible Notes: Merged: https://github.com/ruby/ruby/pull/6260 commit d2483393cbcb4dcfa0000fa8166bb7fa7ed9f7b4 Author: Nobuyoshi Nakada AuthorDate: 2022-08-20 01:43:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-20 10:06:16 +0900 [Bug #18956] Negative codepoints are invalid characters Notes: Merged: https://github.com/ruby/ruby/pull/6259 commit 8f4a53d0517a99e57060211a3efe2d7a9d5d06b2 Author: Takashi Kokubun AuthorDate: 2022-08-20 06:45:51 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-20 06:45:51 +0900 Ignore fc4acf8cae on git blame commit fc4acf8cae82e5196186d3278d831f2438479d91 Author: Takashi Kokubun AuthorDate: 2022-08-20 06:42:50 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-20 06:44:08 +0900 Make benchmark indentation consistent Related to https://github.com/Shopify/yjit-bench/pull/109 commit 1ef49de83483e6f78bfe9c795a473ccfb29db150 Author: Nobuyoshi Nakada AuthorDate: 2022-08-20 01:04:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-20 03:57:13 +0900 [Bug #18955] format single character for `%c` Notes: Merged: https://github.com/ruby/ruby/pull/6258 commit ce384ef5a95b809f248e089c1608e60753dabe45 Author: Nobuyoshi Nakada AuthorDate: 2022-08-20 00:16:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-20 03:57:13 +0900 [Bug #18955] Check length of argument for `%c` in proper encoding Notes: Merged: https://github.com/ruby/ruby/pull/6258 commit 4177f60eedd71b846d9a86889fd46071ecdb0158 Author: Kaíque Kandy Koga AuthorDate: 2022-08-19 02:54:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-19 22:18:36 +0900 Write interface instead of interfact Notes: Merged: https://github.com/ruby/ruby/pull/6254 commit 6bcb473d9cf00c113587a9fbb7605a2fe110862c Author: Yusuke Endoh AuthorDate: 2022-08-19 18:33:33 +0900 Commit: git[bot] CommitDate: 2022-08-19 18:34:15 +0900 [ruby/error_highlight] Apply ErrorHighlight::CoreExt to TypeError and ArgumentError https://github.com/ruby/error_highlight/commit/defcaf1beb commit 17d0e5bee7f15ad4e32266afc194cf6c65976236 Author: Hiroshi SHIBATA AuthorDate: 2022-08-19 13:20:17 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-19 13:20:20 +0900 syntax_suggest moved to under the ruby organization. commit bd0fe26b81a62f7ee79c3b125c118d54ee81728a Author: Nobuyoshi Nakada AuthorDate: 2022-08-19 10:20:13 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-19 10:20:52 +0900 [DOC] Fix "military timezone" Not only `J` is called military timezone. commit 490af8dbdb66263f29d0b4e43752fbb298b94862 Author: schneems AuthorDate: 2022-07-27 05:21:09 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-19 10:02:24 +0900 Sync SyntaxSuggest ``` $ tool/sync_default_gems.rb syntax_suggest ``` Notes: Merged: https://github.com/ruby/ruby/pull/5859 commit a50df1ab0eb312e5cdcf010d2c1b362ec41f3c59 Author: schneems AuthorDate: 2022-07-27 05:16:21 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-19 10:02:24 +0900 Setup SyntaxSuggest as default gem Adds the `syntax_suggest` syntax error display tool to Ruby through the same mechanism as `error_highlight` and `did_you_mean`. Reference ticket: https://bugs.ruby-lang.org/issues/18159 close #4845 ## What is syntax_suggest? When a syntax error is raised by requiring a file, dead_end will use a combination of indentation and lexing to identify the problem. > Note: Previously this tool was named `dead_end`. ## Known issues - SyntaxSearch's approach of showing syntax errors only works through integration with `require`, `load`, `autoload`, and `require_relative` (since it monkeypatches them to detect syntax errors). It does not work with direct Ruby file invocations https://github.com/zombocom/dead_end/issues/31. - This causes failure in the test suite (test_expected_backtrace_location_when_inheriting_from_basic_object_and_including_kernel) and confusion when inspecting backtraces if there's a different error when trying to require a file such as measuring memory (https://github.com/zombocom/syntax_suggest/issues/124#issuecomment-1006705016). - Discussed fix. We previously talked about opening up `SyntaxError` to be monkeypatched in the same way that other gems hook into `NoMethodError`. This is currently not possible and requires development work. When we last talked about it at RubyKaigi Nobu expressed an ability to make such a change. Notes: Merged: https://github.com/ruby/ruby/pull/5859 commit 3541f32951fecdfea76ef6de028d50ba58cb07b9 Author: S-H-GAMELINKS AuthorDate: 2022-06-06 23:13:55 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-19 09:51:06 +0900 Reuse opt_nl rule Notes: Merged: https://github.com/ruby/ruby/pull/5977 commit f09536175853d883130c2e54a1d418b497890462 Author: S-H-GAMELINKS AuthorDate: 2022-06-29 21:59:39 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-19 09:47:43 +0900 Repalce to NIL_P macro Notes: Merged: https://github.com/ruby/ruby/pull/6073 commit 35c794b26d406c39f90e188e3884003fe6aca532 Author: Nobuyoshi Nakada AuthorDate: 2022-08-18 18:31:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-19 03:05:53 +0900 Fixed by [Bug #18964] Notes: Merged: https://github.com/ruby/ruby/pull/6253 commit 99116da7f05633697177c09cf4de5080028d77f8 Author: Nobuyoshi Nakada AuthorDate: 2022-08-17 16:10:51 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-19 03:05:53 +0900 Scan the code range of the last added portion Notes: Merged: https://github.com/ruby/ruby/pull/6253 commit f34280ec6b684eeb21ef3336c7002e1a83dcfd2c Author: Nobuyoshi Nakada AuthorDate: 2022-08-17 17:41:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-19 03:05:53 +0900 Scan the code range of the formatted portion Notes: Merged: https://github.com/ruby/ruby/pull/6253 commit b26aec9daa03a4f3da225e9e4f7a43e916928712 Author: Matt Valentine-House AuthorDate: 2022-07-14 02:14:44 +0900 Commit: Peter Zhu CommitDate: 2022-08-19 02:25:32 +0900 [ci-skip][Feature #18910][lldb] New directory structure Push the newly refactored lldb files into a sub-directory so that we're not cluttering up the misc directory Notes: Merged: https://github.com/ruby/ruby/pull/6129 commit a4ef2f16728b4b1eb49cc3aded26219cabdfa7e7 Author: Matt Valentine-House AuthorDate: 2022-07-13 21:19:41 +0900 Commit: Peter Zhu CommitDate: 2022-08-19 02:25:32 +0900 [ci-skip][Feature #18910][lldb] Port rclass_ext to new LLDB Framework Notes: Merged: https://github.com/ruby/ruby/pull/6129 commit 281bcc8e64accac2d3ab465abde4962de725857d Author: Matt Valentine-House AuthorDate: 2022-07-13 21:18:45 +0900 Commit: Peter Zhu CommitDate: 2022-08-19 02:25:32 +0900 [ci-skip][Feature #18910][lldb] Port heap_page command to new LLDB framework Notes: Merged: https://github.com/ruby/ruby/pull/6129 commit f1ccfa0c2c200c9443fbfc3f1ac3acbdd3e35559 Author: Matt Valentine-House AuthorDate: 2022-07-13 21:18:03 +0900 Commit: Peter Zhu CommitDate: 2022-08-19 02:25:32 +0900 [ci-skip][Feature #18910][lldb] Provide class framework for lldb commands `lldb_cruby.py` manages lldb custom commands using functions. The file is a large list of Python functions, and an init handler to map some of the Python functions into the debugger, to enable execution of custom logic during a debugging session. Since LLDB 3.7 (September 2015) there has also been support for using python classes rather than bare functions, as long as those classes implement a specific interface. This PR Introduces some more defined structure to the LLDB helper functions by switching from the function based implementation to the class based one, and providing an auto-loading mechanism by which new functions can be loaded. The intention behind this change is to make working with the LLDB helpers easier, by reducing code duplication, providing a consistent structure and a clearer API for developers. The current function based approach has some advantages and disadvantages Advantages: - Adding new code is easy. - All the code is self contained and searchable. Disadvantages: - No visible organisation of the file contents. This means - Hard to tell which functions are utility functions and which are available to you in a debugging session - Lots of code duplication within lldb functions - Large files quickly become intimidating to work with - for example, `lldb_disasm.py` was implemented as a seperate Python module because it was easier to start with a clean slate than add significant amounts of code to `lldb_cruby.py` This PR attempts, to fix the disadvantages of the current approach and maintain, or enhance, the benefits. The new structure of a command looks like this; ``` class TestCommand(RbBaseCommand): # program is the keyword the user will type in lldb to execute this command program = "test" # help_string will be displayed in lldb when the user uses the help functions help_string = "This is a test command to show how to implement lldb commands" # call is where our command logic will be implemented def call(self, debugger, command, exe_ctx, result): pass ``` If the command fulfils the following criteria it will then be auto-loaded when an lldb session is started: - The package file must exist inside the `commands` directory and the filename must end in `_command.py` - The package must implement a class whose name ends in `Command` - The class inherits from `RbBaseCommand` or at minimum a class that shares the same interface as `RbBaseCommand` (at minimum this means defining `__init__` and `__call__`, and using `__call__` to call `call` which is defined in the subclasses). - The class must have a class variable `package` that is a String. This is the name of the command you'll call in the `lldb` debugger. Notes: Merged: https://github.com/ruby/ruby/pull/6129 commit d903e7672637d5a834847820a4e18b00ee30f380 Author: Nobuyoshi Nakada AuthorDate: 2022-08-18 23:42:53 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-19 01:28:31 +0900 Allow strings in assert_pattern_list Notes: Merged: https://github.com/ruby/ruby/pull/6252 commit 2652b0da6bc1463fc7968d71a6f8897459370514 Author: Nobuyoshi Nakada AuthorDate: 2022-08-19 00:16:44 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-19 00:16:44 +0900 Harden SizedQueue#push timeout test commit 7c1ed470976f3488dd655e092ec1015d6b2f8310 Author: Nobuyoshi Nakada AuthorDate: 2022-08-18 23:33:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-18 23:38:56 +0900 Add tests for assert_pattern_list commit c53667691a52bcaea4314974201c53dfc282cd95 Author: Nobuyoshi Nakada AuthorDate: 2022-08-18 23:25:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-18 23:25:05 +0900 [DOC] `offset` argument of Regexp#match commit b0b9f7201acab05c2a3ad92c3043a1f01df3e17f Author: Jean Boussier AuthorDate: 2022-07-25 17:21:38 +0900 Commit: Jean Boussier CommitDate: 2022-08-18 17:09:08 +0900 rb_str_resize: Only clear coderange on truncation If we are expanding the string or only stripping extra capacity then coderange won't change, so clearing it is wasteful. Notes: Merged: https://github.com/ruby/ruby/pull/6178 commit fe61cad7490da8a879597f851f4a89856d44838e Author: Jean Boussier AuthorDate: 2022-07-27 00:40:00 +0900 Commit: Jean Boussier CommitDate: 2022-08-18 17:07:37 +0900 Implement SizedQueue#push(timeout: sec) [Feature #18944] If both `non_block=true` and `timeout:` are supplied, ArgumentError is raised. Notes: Merged: https://github.com/ruby/ruby/pull/6207 commit b3718edee28d5155ebc383d17ab58867e20f4aa2 Author: git[bot] AuthorDate: 2022-08-18 16:04:23 +0900 Commit: git[bot] CommitDate: 2022-08-18 16:04:23 +0900 Update bundled gems list at 2022-08-18 commit 725626d8905fe1ac4a2cf1c3e2db6412bf8f381f Author: Nobuyoshi Nakada AuthorDate: 2022-08-18 11:37:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-18 14:57:08 +0900 [Bug #18964] Update the code range of appended portion Notes: Merged: https://github.com/ruby/ruby/pull/6250 commit 2a55c61ee77df55e8715809958ea0439f3918cf2 Author: Yusuke Endoh AuthorDate: 2022-08-18 11:35:17 +0900 Commit: Yusuke Endoh CommitDate: 2022-08-18 12:46:24 +0900 ext/pty/extconf.rb: Try libutil only on OpenBSD icc now seems to provide libutil.so that is not related to pty. This extconf.rb wrongly finds it and adds `-lutil`, but `ruby -rpty` fails because it cannot find libutil.so on the runtime. http://rubyci.s3.amazonaws.com/icc-x64/ruby-master/log/20220815T210005Z.fail.html.gz ``` Exception raised: <#> ``` This change makes extconf.rb check libutil only on OpenBSD. Notes: Merged: https://github.com/ruby/ruby/pull/6249 commit b4539dba7ae85de192b6d0114e3edf70a4cf6ae6 Author: Jemma Issroff AuthorDate: 2022-08-18 02:24:50 +0900 Commit: Aaron Patterson CommitDate: 2022-08-18 02:26:28 +0900 Added vm setivar benchmark from yjit-bench Notes: Merged: https://github.com/ruby/ruby/pull/6247 commit b4daf6e28e4e0291e8c4c90d4ec7c0a00f715965 Author: Peter Zhu AuthorDate: 2022-08-17 22:38:11 +0900 Commit: Peter Zhu CommitDate: 2022-08-17 23:54:28 +0900 Fix flaky test for GC thrashing GC could be in an intermediate state after creating the objects, so we should finish GC by running a minor GC. Notes: Merged: https://github.com/ruby/ruby/pull/6245 commit ddb81b9307f7114fcb37f6fcc37b7692b1a40cb4 Author: Nobuyoshi Nakada AuthorDate: 2022-08-17 17:39:40 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-17 17:40:59 +0900 Extract common code from `rb_enc_vsprintf` and `rb_str_vcatf` commit 72adee6e36249b39460913ce54ca9296bea80225 Author: Nobuyoshi Nakada AuthorDate: 2022-08-14 15:33:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-17 15:23:01 +0900 Update dependencies Notes: Merged: https://github.com/ruby/ruby/pull/6239 commit b880576e595adab0e5ed0a25369ec7035c2cbfc1 Author: Nobuyoshi Nakada AuthorDate: 2022-08-14 00:13:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-17 15:23:01 +0900 yjit.h is not necessary for all sources using mjit.h Notes: Merged: https://github.com/ruby/ruby/pull/6239 commit 81fbc8d5531be5e61f639c2ee4509017b5e010a0 Author: Nobuyoshi Nakada AuthorDate: 2022-08-13 23:50:00 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-17 15:23:01 +0900 Move `mjit_exec` to vm.c Notes: Merged: https://github.com/ruby/ruby/pull/6239 commit ac890ec0624e3d8a44d85d67127bc94322caa34e Author: Nobuyoshi Nakada AuthorDate: 2022-08-17 00:52:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-17 00:58:56 +0900 Make date in installed gemspec files stable Set `date` member to `RUBY_RELEASE_DATE` instead of the date at the build time, to make installed files reproducible. commit cc443f6cde287944e00ab5d9b6ad868b3d9fc9db Author: Nobuyoshi Nakada AuthorDate: 2022-08-17 00:48:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-17 00:58:56 +0900 Refactor `RbInstall::Specs::FileCollector` - Split into `Ext` and `Lib` classes. - `Ext#files` should not include built extension libraries. - `Ext#files` should include scripts under its own `lib`. - `Lib#files` should be prefixed with `lib/`. commit b7577b4d9e0fd92522fc30e10fe712e245adee8c Author: Nobuyoshi Nakada AuthorDate: 2022-08-17 00:45:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-17 00:45:27 +0900 The tzdata 2022c removed Amsterdam Mean Time commit 3850113e20b8c031529fc79de7202f61604425dd Author: Jean Boussier AuthorDate: 2022-06-09 19:07:58 +0900 Commit: git[bot] CommitDate: 2022-08-16 19:12:03 +0900 [ruby/cgi] Implement `CGI.url_encode` and `CGI.url_decode` [Feature #18822] Ruby is somewhat missing an RFC 3986 compliant escape method. https://github.com/ruby/cgi/commit/c2729c7f33 commit 0608a9a08693286a7d84845a216927ff2e3c9951 Author: John Hawthorn AuthorDate: 2022-08-16 08:14:12 +0900 Commit: GitHub CommitDate: 2022-08-16 08:14:12 +0900 Optimize Marshal dump/load for large (> 31-bit) FIXNUM (#6229) * Optimize Marshal dump of large fixnum Marshal's FIXNUM type only supports 31-bit fixnums, so on 64-bit platforms the 63-bit fixnums need to be represented in Marshal's BIGNUM. Previously this was done by converting to a bugnum and serializing the bignum object. This commit avoids allocating the intermediate bignum object, instead outputting the T_FIXNUM directly to a Marshal bignum. This maintains the same representation as the previous implementation, including not using LINKs for these large fixnums (an artifact of the previous implementation always allocating a new BIGNUM). This commit also avoids unnecessary st_lookups on immediate values, which we know will not be in that table. * Fastpath for loading FIXNUM from Marshal bignum * Run update-deps Notes: Merged-By: jhawthorn commit e49db0f760722bf44ed2c5b31f67d929e9156dbe Author: Penelope Phippen AuthorDate: 2022-08-16 04:45:51 +0900 Commit: Aaron Patterson CommitDate: 2022-08-16 07:41:35 +0900 Do not clone method entries when bind_call is used I noticed that this site unconditionally clones the method entry, which means that `bind_call` always allocates a `T_IMEMO`. While this clone is necessary for `bind`, it is not necessary for `bind_call`. I work at Stripe, and the sorbet_runtime gem uses bind call as part of it's [call validation](https://github.com/sorbet/sorbet/blob/master/gems/sorbet-runtime/lib/types/private/methods/call_validation.rb#L157) so this can save us a lot of allocations. This patch adds a `clone` parameter to `convert_umethod_to_method_components`, which then controls whether or not we do this cloning. This patch passed Stripe CI and works in our QA environment. I reviewed it with @tenderlove to talk about correctness also. Notes: Merged: https://github.com/ruby/ruby/pull/6244 commit 4e66b3f47b2ad0d6cca1f2227dd38fdf117c0d3c Author: Peter Zhu AuthorDate: 2022-08-15 22:35:49 +0900 Commit: git[bot] CommitDate: 2022-08-16 02:48:04 +0900 [ruby/rdoc] [DOC] Remove duplicated line in RDoc::MarkupReference https://github.com/ruby/rdoc/commit/488f89aee4 commit ee864beb7c6730083da656b55f4a9eeaed78bfa8 Author: Nobuyoshi Nakada AuthorDate: 2022-08-16 02:05:12 +0900 Commit: GitHub CommitDate: 2022-08-16 02:05:12 +0900 Simplify around `USE_YJIT` macro (#6240) * Simplify around `USE_YJIT` macro - Use `USE_YJIT` macro only instead of `YJIT_BUILD`. - An intermediate macro `YJIT_SUPPORTED_P` is no longer used. * Bail out if YJIT is enabled on unsupported platforms Notes: Merged-By: maximecb commit 0264424d58e0eb3ff6fc42b7b4164b6e3b8ea8ca Author: Peter Zhu AuthorDate: 2022-08-15 22:14:35 +0900 Commit: Peter Zhu CommitDate: 2022-08-15 23:00:03 +0900 Add test for GC thrashing of young object creation This test will prevent performance regressions like [Bug #18929]. Notes: Merged: https://github.com/ruby/ruby/pull/6243 commit 8d40ede2e005439cbc84abfd50c98932a33448f4 Author: Burdette Lamar AuthorDate: 2022-08-15 22:16:13 +0900 Commit: git[bot] CommitDate: 2022-08-15 22:16:23 +0900 [ruby/date] [DOC] Enhanced intro for Date (https://github.com/ruby/date/pull/72) https://github.com/ruby/date/commit/59a6673221 commit e77c8397c21d77901891bd7e65dfba6478b9b6c7 Author: David Rodríguez AuthorDate: 2022-08-12 03:32:38 +0900 Commit: git[bot] CommitDate: 2022-08-15 17:42:16 +0900 [rubygems/rubygems] Fix Ruby platform incorrectly removed on `bundle update` https://github.com/rubygems/rubygems/commit/0d321c9e3a commit 89aa09afaf77920fd748aefaba99fe4b0f19e684 Author: Jeremy Evans AuthorDate: 2021-08-07 07:36:33 +0900 Commit: git[bot] CommitDate: 2022-08-15 14:11:52 +0900 [ruby/rinda] Handle situations where IPv4 multicast is not available Fixes [Bug #13864] https://github.com/ruby/rinda/commit/3cd620f38c commit cb12d7c71bb5b5ef4ebfc7a2008f66dd8410ccd2 Author: Nobuyoshi Nakada AuthorDate: 2022-08-14 19:25:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-14 19:45:55 +0900 Update dependencies commit a58a429f8b85d9a68a9439ba58c76996750946da Author: Nobuyoshi Nakada AuthorDate: 2022-08-14 01:02:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-14 14:42:10 +0900 Silent configure does not output cached configurations commit 0617cba197cdff626ee9c74cece480df31d384ef Author: Nobuyoshi Nakada AuthorDate: 2022-08-13 11:23:47 +0900 Commit: GitHub CommitDate: 2022-08-13 11:23:47 +0900 [DOC] Add the link to [Feature #18809] commit fa65800ee54961e04acf65c54a84abb9c0f6210b Author: Burdette Lamar AuthorDate: 2022-08-13 09:00:10 +0900 Commit: git[bot] CommitDate: 2022-08-13 09:00:18 +0900 [ruby/rdoc] [DOC] Enhances text about escapes (https://github.com/ruby/rdoc/pull/917) https://github.com/ruby/rdoc/commit/c40bac829c commit e44445596fb8ba70a2a9fc602458bfe10d493146 Author: Nobuyoshi Nakada AuthorDate: 2022-08-12 23:51:55 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-12 23:51:55 +0900 Preserve each column positions in gems/bundled_gems commit b1799267bf39bbca58a160c00c1581a694ca6ad9 Author: Nobuyoshi Nakada AuthorDate: 2022-08-12 22:07:32 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-12 22:07:32 +0900 Bundle unreleased debug commit 77fdb3a47d420eb66761d50db2244a10b1d7272a Author: S-H-GAMELINKS AuthorDate: 2022-08-09 13:22:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-12 16:59:30 +0900 Introduce with_warn_vsprintf macro Notes: Merged: https://github.com/ruby/ruby/pull/6225 commit b2205cd45c64c8aaaa19d71836522d8aaac324d5 Author: Nobuyoshi Nakada AuthorDate: 2022-07-14 17:39:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-12 16:57:56 +0900 Short-circuit `Process._fork` Notes: Merged: https://github.com/ruby/ruby/pull/6139 commit 844a0edbae6e74293e3d0cb1ceeeb66a4371d06d Author: Nobuyoshi Nakada AuthorDate: 2022-08-11 22:24:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-12 15:58:18 +0900 [Bug #18962] Do not read again once reached EOF `Ripper::Lexer#parse` re-parses the source code with syntax errors when `raise_errors: false`. Co-Authored-By: tompng Notes: Merged: https://github.com/ruby/ruby/pull/6233 commit 803a07263001e5466bba0f53fcc85784f4b5c686 Author: Kouhei Yanagita AuthorDate: 2022-07-22 12:05:16 +0900 Commit: Yusuke Endoh CommitDate: 2022-08-12 15:57:52 +0900 Improve performance of Integer#ceildiv This patch is suggested by nobu. Benchmark result: ``` require 'benchmark' n = 10 ** 7 Benchmark.bm do |x| x.report("Fixnum/Fixnum") { a, b = 5, 2; n.times { a.ceildiv(b) } } x.report("Bignum/Bignum") { a, b = 10**100, 10**99 - 1; n.times { a.ceildiv(b) } } x.report("Bignum/Fixnum") { a, b = 10**100, 3; n.times { a.ceildiv(b) } } end ``` Original: ``` user system total real Fixnum/Fixnum 3.340009 0.043029 3.383038 ( 3.384022) Bignum/Bignum 8.229500 0.118543 8.348043 ( 8.349574) Bignum/Fixnum 8.328971 0.097842 8.426813 ( 8.426952) ``` Improved: ``` user system total real Fixnum/Fixnum 0.699140 0.000961 0.700101 ( 0.700199) Bignum/Bignum 5.076165 0.083160 5.159325 ( 5.159360) Bignum/Fixnum 5.548684 0.115372 5.664056 ( 5.666735) ``` Notes: Merged: https://github.com/ruby/ruby/pull/5965 commit 24e33b84b5adb29d1d2f541acfba65e225b91b55 Author: Kouhei Yanagita AuthorDate: 2022-07-21 18:57:13 +0900 Commit: Yusuke Endoh CommitDate: 2022-08-12 15:57:52 +0900 Remove Numeric#ceildiv Notes: Merged: https://github.com/ruby/ruby/pull/5965 commit 4165fd0e763439421296fbc95d754ad53e6ae84f Author: Kouhei Yanagita AuthorDate: 2022-05-27 15:46:46 +0900 Commit: Yusuke Endoh CommitDate: 2022-08-12 15:57:52 +0900 Add Numeric#ceildiv and Integer#ceildiv Notes: Merged: https://github.com/ruby/ruby/pull/5965 commit cd1a0b3caaa5446e9258c192cf483b6dfe8d7819 Author: Nobuyoshi Nakada AuthorDate: 2022-07-12 16:44:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-12 15:57:25 +0900 Stop defining `RUBY_ABI_VERSION` if released versions As commented in include/ruby/internal/abi.h, since teeny versions of Ruby should guarantee ABI compatibility, `RUBY_ABI_VERSION` has no role in released versions of Ruby. Notes: Merged: https://github.com/ruby/ruby/pull/6231 commit a201cfd0cdb9f613f687dc6fee1908ec54e63c72 Author: Nobuyoshi Nakada AuthorDate: 2022-08-12 13:36:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-12 15:56:30 +0900 Add missing `rb_enc_iscntrl` Notes: Merged: https://github.com/ruby/ruby/pull/6235 commit 9a11d50dc7542cda4fc21352807df9f86b0d1093 Author: Nobuyoshi Nakada AuthorDate: 2022-08-12 10:18:38 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-12 15:56:30 +0900 [DOC] Use `true`/`false` for `@retval`s which are `bool` Notes: Merged: https://github.com/ruby/ruby/pull/6235 commit a3a6d2d9a390697dfd0ae9f808cb301680a6f24a Author: Nobuyoshi Nakada AuthorDate: 2022-08-12 13:40:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-12 15:55:40 +0900 No bundled gems to be installed from gem now Notes: Merged: https://github.com/ruby/ruby/pull/6234 commit 04815ea968ebef616cfdb316840158f6c87a7277 Author: Nobuyoshi Nakada AuthorDate: 2022-08-12 13:38:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-12 15:55:40 +0900 All extensions in bundled gems are built by build-ext now `RbInstall::GemInstaller#build_extensions` has nothing to do. Notes: Merged: https://github.com/ruby/ruby/pull/6234 commit d9f1b8baa3a21b2a65af7fcab6a45c30b3f9efee Author: Yusuke Endoh AuthorDate: 2022-08-12 14:04:04 +0900 Commit: git[bot] CommitDate: 2022-08-12 14:04:41 +0900 [ruby/error_highlight] Add a note about the current limitation of ErrorHighlight.spot https://github.com/ruby/error_highlight/commit/489ce80a62 commit 5e3e4bc9840160f2a6f85cba2e05279d7668b014 Author: Burdette Lamar AuthorDate: 2022-08-12 05:08:57 +0900 Commit: git[bot] CommitDate: 2022-08-12 05:09:02 +0900 [ruby/rdoc] Mods to section Text Markup (https://github.com/ruby/rdoc/pull/916) https://github.com/ruby/rdoc/commit/5506d4d67e commit 8a3f401b24e1b5f3e3a0f44c568a3e66ed595d42 Author: Burdette Lamar AuthorDate: 2022-08-12 01:43:39 +0900 Commit: git[bot] CommitDate: 2022-08-12 01:43:43 +0900 [ruby/rdoc] Improvements to Text Markup examples (https://github.com/ruby/rdoc/pull/915) https://github.com/ruby/rdoc/commit/d00ddfe57c commit 49517b3bb436456407e0ee099c7442f3ab5ac53d Author: Jeremy Evans AuthorDate: 2021-02-27 05:14:48 +0900 Commit: Jeremy Evans CommitDate: 2022-08-12 00:47:29 +0900 Fix inspect for unicode codepoint 0x85 This is an inelegant hack, by manually checking for this specific code point in rb_str_inspect. Some testing indicates that this is the only code point affected. It's possible a better fix would be inside of lower-level encoding code, such that rb_enc_isprint would return false and not true for codepoint 0x85. Fixes [Bug #16842] Notes: Merged: https://github.com/ruby/ruby/pull/4229 commit c361cf44c03275405989022054d7c20efcc2a2ce Author: Burdette Lamar AuthorDate: 2022-08-11 22:51:04 +0900 Commit: git[bot] CommitDate: 2022-08-11 22:51:09 +0900 [ruby/rdoc] [DOC] Make example formats explicit and consistent (https://github.com/ruby/rdoc/pull/913) https://github.com/ruby/rdoc/commit/7e6ef6c855 commit cfb9624460a295e4e1723301486d89058c228e07 Author: Jeremy Evans AuthorDate: 2022-08-11 19:16:49 +0900 Commit: GitHub CommitDate: 2022-08-11 19:16:49 +0900 Fix Array#[] with ArithmeticSequence with negative steps (#5739) * Fix Array#[] with ArithmeticSequence with negative steps Previously, Array#[] when called with an ArithmeticSequence with a negative step did not handle all cases correctly, especially cases involving infinite ranges, inverted ranges, and/or exclusive ends. Fixes [Bug #18247] * Add Array#slice tests for ArithmeticSequence with negative step to test_array Add tests of rb_arithmetic_sequence_beg_len_step C-API function. * Fix ext/-test-/arith_seq/beg_len_step/depend * Rename local variables * Fix a variable name Co-authored-by: Kenta Murata <3959+mrkn@users.noreply.github.com> Notes: Merged-By: mrkn commit 32d1ce96e09773e809d575c17b916012d88d6ffc Author: Nobuyoshi Nakada AuthorDate: 2022-08-11 17:42:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-11 17:45:57 +0900 Fix race conditions when cleaning extensions Clean built directories by `make distclean`, and then clean leftover makefiles for skipped extensions. commit 0c9803b0fdfd17981bd9f59767adab0207c3a74d Author: Nobuyoshi Nakada AuthorDate: 2022-08-11 17:09:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-11 17:45:39 +0900 The "gems" build directory was rename as ".bundle" commit 26054c74619d36b2781e872fad15a1a0bfab1be1 Author: Nobuyoshi Nakada AuthorDate: 2022-08-11 15:21:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-11 17:43:46 +0900 Fix paths of exts.mk to clean exts.mk files are one level under the top of extension directories. commit 74d95744bdb9cf47b8fa07b9a9938c323658d9b9 Author: Nobuyoshi Nakada AuthorDate: 2022-08-11 11:02:28 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-11 11:34:52 +0900 Add `--enable-devel` configure option Since `RUBY_DEVEL` in cppflags has no effect in the configure script and makefiles. Notes: Merged: https://github.com/ruby/ruby/pull/6230 commit 9fc401b689e64dde5fc7cc56c734d5cddd6aa6e1 Author: Burdette Lamar AuthorDate: 2022-08-11 06:18:27 +0900 Commit: git[bot] CommitDate: 2022-08-11 06:18:39 +0900 [ruby/rdoc] Treat text markup (italic, bold, monofont) as blocks (https://github.com/ruby/rdoc/pull/911) https://github.com/ruby/rdoc/commit/dc88f1b425 commit ff42e2359bdbf37e1721a82b4cfd95b31f494f3f Author: Jeremy Evans AuthorDate: 2022-06-04 10:15:56 +0900 Commit: Jeremy Evans CommitDate: 2022-08-11 05:02:52 +0900 Revert "Add {Method,UnboundMethod}#{public?,private?,protected?}" This reverts commit 27278150685e738f84105d09843d3ba371146c7a and 58dc8bf8f15df9a33d191074e8a5d4946a3d59d5. Visibility is an attribute of the method entry in a class, not an attribute of the Method object. Fixes [#18729] Fixes [#18751] Fixes [#18435] Notes: Merged: https://github.com/ruby/ruby/pull/5974 commit bfa6a8ddc84fffe0aef5a0f91b417167e124dbbf Author: Jeremy Evans AuthorDate: 2022-08-11 05:02:19 +0900 Commit: GitHub CommitDate: 2022-08-11 05:02:19 +0900 Only allow procs created by Symbol#to_proc to call public methods Fixes [Bug #18826] Co-authored-by: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/6018 Merged-By: jeremyevans commit 26bed71959f74a5aa7fea5608d09cc3a708b4068 Author: Burdette Lamar AuthorDate: 2022-08-11 03:40:50 +0900 Commit: GitHub CommitDate: 2022-08-11 03:40:50 +0900 [DOC] Adding a few standards-based formats (#6227) Notes: Merged-By: BurdetteLamar commit a661aac9a76cbe93f445507c90dcbab5f3f3196d Author: Soutaro Matsumoto AuthorDate: 2022-08-10 23:01:49 +0900 Commit: GitHub CommitDate: 2022-08-10 23:01:49 +0900 Bundle unreleased RBS (#6228) Notes: Merged-By: soutaro commit 1b32a4c7bb2e1ceb456b191ca88289d3c3d73dd7 Author: Yusuke Endoh AuthorDate: 2022-08-10 21:50:48 +0900 Commit: git[bot] CommitDate: 2022-08-10 21:51:51 +0900 [ruby/error_highlight] Bump version https://github.com/ruby/error_highlight/commit/6edf0a0a5d commit 3a58009066049f9af09ea3171cecab88ba0d9f1c Author: Yusuke Endoh AuthorDate: 2022-08-10 21:17:04 +0900 Commit: git[bot] CommitDate: 2022-08-10 21:19:10 +0900 [ruby/error_highlight] Make backtrace_location keyword work We had to keep backtrace_location before opts is overwritten. https://github.com/ruby/error_highlight/commit/2735e4681a commit 99e7fa5b3718d61d61427c67d244ec50b9eb8578 Author: Yusuke Endoh AuthorDate: 2022-08-10 18:36:59 +0900 Commit: git[bot] CommitDate: 2022-08-10 18:37:13 +0900 [ruby/error_highlight] Make ErrorHighlight.spot accept Exception (https://github.com/ruby/error_highlight/pull/25) ... and move things from core_ext.rb to base.rb. This will confine CRuby-dependent things to ErrorHighlight.spot. https://github.com/ruby/error_highlight/commit/22d1dd7824 commit 1139bc8c20d243b17f159d6c6518df17fcf887fe Author: git[bot] AuthorDate: 2022-08-10 16:05:11 +0900 Commit: git[bot] CommitDate: 2022-08-10 16:05:11 +0900 Update bundled gems list at 2022-08-10 commit b7e492fa9e0444ceb9e56eda3d30fe7a13f0c6b1 Author: Jeremy Evans AuthorDate: 2022-07-21 10:24:06 +0900 Commit: Jeremy Evans CommitDate: 2022-08-10 14:19:46 +0900 Regen YJIT bindings Notes: Merged: https://github.com/ruby/ruby/pull/6158 commit 9363b0423a0269272eff2e243d4b55bc8d135430 Author: Jeremy Evans AuthorDate: 2022-07-21 07:09:20 +0900 Commit: Jeremy Evans CommitDate: 2022-08-10 14:19:46 +0900 Optimize duparray/expandarray -> putobject/expandarray There's no point in making a copy of an array just to expand it. Saves an unnecessary array allocation in the multiple assignment case, with a 35-84% improvement in affected cases in benchmark/masgn.yml. Notes: Merged: https://github.com/ruby/ruby/pull/6158 commit fc4b4f2e8db3d68b80b9c7580c40a0165736006c Author: Jeremy Evans AuthorDate: 2022-07-21 06:06:28 +0900 Commit: Jeremy Evans CommitDate: 2022-08-10 14:19:46 +0900 Expand newarray/expandarray optimization for unequal operands This optimizes unbalanced multiple assignment cases such as: ```ruby a.b, c.d = e, f, g a.b, c.d, e.f = g, h ``` Previously, this would use: ``` newarray(3) expandarray(2, 0) newarray(2) expandarray(3, 0) ``` These would both allocate arrays. This switches to opt_reverse with either pop or putnil: ``` pop opt_reverse(2) putnil opt_reverse(3) ``` This avoids an unnecessary array allocation, and results in a 35-76% performance increase in these types of unbalanced cases (tested with benchmark/masgn.yml). Notes: Merged: https://github.com/ruby/ruby/pull/6158 commit 7922fd65e30fb9f011b939dead38cda94a7e2721 Author: Jeremy Evans AuthorDate: 2022-07-21 05:13:47 +0900 Commit: Jeremy Evans CommitDate: 2022-08-10 14:19:46 +0900 Update multiple assignment benchmarks to include non-literal array cases This allows them to show the effect of the previous newarray/expandarray to swap/opt_reverse optimization. This shows an 35-83% performance improvement in the four multiple assignment benchmarks that use this optimization. Notes: Merged: https://github.com/ruby/ruby/pull/6158 commit 5089b6acc7b57605823704d28c82e286f49661e6 Author: Jeremy Evans AuthorDate: 2022-07-21 04:28:48 +0900 Commit: Jeremy Evans CommitDate: 2022-08-10 14:19:46 +0900 Add peephole optimizer for newarray(X)/expandarray(X, 0) -> opt_reverse(X) This renames the reverse instruction to opt_reverse, since now it is only added by the optimizer. Then it uses as a more general form of swap. This optimizes multiple assignment in the popped case with more than two elements. Notes: Merged: https://github.com/ruby/ruby/pull/6158 commit d9167491db220756df159048348f006619df28c1 Author: Jeremy Evans AuthorDate: 2022-07-21 04:24:50 +0900 Commit: Jeremy Evans CommitDate: 2022-08-10 14:19:46 +0900 Revert "Remove reverse VM instruction" This reverts commit 5512353d97250e85c13bf10b9b32e750478cf474. Notes: Merged: https://github.com/ruby/ruby/pull/6158 commit 9f8abd28babf1ab84093fe0cc97f8d42cf62286c Author: Jeremy Evans AuthorDate: 2022-07-21 04:16:24 +0900 Commit: Jeremy Evans CommitDate: 2022-08-10 14:19:46 +0900 Add peephole optimizer for newarray(2)/expandarray(2, 0) -> swap An optimization for multiple assignment in the popped case to avoid array allocation was lost in my fix to make multiple assignment follow left-to-right evaluation (50c54d40a81bb2a4794a6be5f1861152900b4fed). Before, in the two element case, swap was used. Afterward, newarray(2) and expandarray(2, 0) were used, which is the same as swap, with the addition of an unnecessary allocation. Because this issue is not specific to multiple assignment, and the multiple assignment code is complex enough as it is, this updates the peephole optimizer to do the newarray(2)/expandarray(2, 0) -> swap conversion. A more general optimization pass for newarray(X)/expandarray(X, 0) -> reverse(X) will follow, but that requires readding the reverse instruction. Notes: Merged: https://github.com/ruby/ruby/pull/6158 commit 357352af5ee37bf31ba4468ee242ea5a10158461 Author: Jeremy Evans AuthorDate: 2021-10-20 04:59:39 +0900 Commit: Jeremy Evans CommitDate: 2022-08-10 14:13:17 +0900 Do not enable RUBY_DEVEL by RUBY_PATCHLEVEL This makes RUBY_DEVEL not enabled automatically. It still can be enabled manually. Test manually using RUBY_DEVEL in CI. Implements [Feature #17468] Notes: Merged: https://github.com/ruby/ruby/pull/4993 commit ff07e5c264c82f73b0368dd0bc2ae39f78678519 Author: Nobuyoshi Nakada AuthorDate: 2022-08-09 02:15:10 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-09 20:11:48 +0900 Skip poisoned regions Poisoned regions cannot be accessed without unpoisoning outside gc.c. Specifically, debug.gem is terminated by AddressSanitizer. ``` SUMMARY: AddressSanitizer: use-after-poison iseq_collector.c:39 in iseq_i ``` commit 44264b4fee1e208e759710c39271186ff9856b40 Author: Hiroshi SHIBATA AuthorDate: 2022-08-09 11:16:07 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-09 12:05:19 +0900 Merge rubygems/bundler HEAD. Pick from https://github.com/rubygems/rubygems/commit/dfbb5a38114640e0d8d616861607f3de73ee0199 Notes: Merged: https://github.com/ruby/ruby/pull/6224 commit f8936b3341376948112e31f9e9b0cb3ad6e91e7c Author: Takashi Kokubun AuthorDate: 2022-08-09 11:02:28 +0900 Commit: Takashi Kokubun CommitDate: 2022-08-09 11:02:30 +0900 Remove documentation about dev dev is Shopify's internal tool that doesn't work if you use Intel Homebrew on M1 (or rbenv, btw). Now that we maintain this outside Shopify's repository, we should stop talking about it here. commit 79fdf9712dea4943a15c4ef34348b1a159b62f4a Author: Nobuyoshi Nakada AuthorDate: 2022-08-09 03:07:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-09 03:09:33 +0900 Tentatively exclude the test that triggers ruby/psych#572 commit 9c13a6ce5ff1f83489d9df65a5c7745efe16c8a4 Author: Alexander Momchilov AuthorDate: 2022-07-23 05:16:04 +0900 Commit: git[bot] CommitDate: 2022-08-09 01:33:34 +0900 [ruby/psych] Raise specific error when an anchor isn't defined https://github.com/ruby/psych/commit/98fbd5247a commit 4b9cdf4e1cbb87c4f81edef472c586cd321e924e Author: Alexander Momchilov AuthorDate: 2022-07-23 05:09:38 +0900 Commit: git[bot] CommitDate: 2022-08-09 01:33:33 +0900 [ruby/psych] Update to squiggly heredocs in the file https://github.com/ruby/psych/commit/42b43de997 commit 38ea6b30dc409b43e4ac0758eeb352eecfb0d1da Author: Alexander Momchilov AuthorDate: 2022-07-23 05:09:26 +0900 Commit: git[bot] CommitDate: 2022-08-09 01:33:32 +0900 [ruby/psych] Add test for missing anchor https://github.com/ruby/psych/commit/5f08137ae6 commit ea1efdf32faf2cf35f6db1ec426c277bfa8f0461 Author: Alexander Momchilov AuthorDate: 2022-07-23 05:09:13 +0900 Commit: git[bot] CommitDate: 2022-08-09 01:33:31 +0900 [ruby/psych] Add test for anchor reuse The spec calls this a "reuse" of an anchor https://yaml.org/spec/1.2.2/#71-alias-nodes https://github.com/ruby/psych/commit/57e3b70a56 commit 54219ae8c46bc431782caf01142883ce7e8b970b Author: Alexander Momchilov AuthorDate: 2022-07-22 04:07:39 +0900 Commit: git[bot] CommitDate: 2022-08-09 01:32:47 +0900 [ruby/psych] Raise specific error when aliases are not enabled https://github.com/ruby/psych/commit/0c11ddcf46 commit 71f89c287459d5ca313d0b1a16b7a743e0d71b8b Author: Alexander Momchilov AuthorDate: 2022-07-27 23:19:37 +0900 Commit: git[bot] CommitDate: 2022-08-09 01:31:24 +0900 [ruby/psych] Don't hardcode expected alias names https://github.com/ruby/psych/commit/b9ab19094f commit 0b7cfdca09651f2eae5cd0e8ae4efed5033493f2 Author: Alexander Momchilov AuthorDate: 2022-07-23 05:45:03 +0900 Commit: git[bot] CommitDate: 2022-08-09 01:31:23 +0900 [ruby/psych] Test that recursive refs dump as aliases https://github.com/ruby/psych/commit/d9f7289190 commit c851bced390204d6624e58c47941f34d0858b352 Author: Alexander Momchilov AuthorDate: 2022-07-23 04:49:05 +0900 Commit: git[bot] CommitDate: 2022-08-09 01:31:22 +0900 [ruby/psych] Clarify tests about parsing aliases https://github.com/ruby/psych/commit/0bc30cb4cb commit 5c9ce5475736756891238a3e3fe58190b0f84f0c Author: Nobuyoshi Nakada AuthorDate: 2022-08-08 23:58:09 +0900 Commit: git[bot] CommitDate: 2022-08-08 23:59:12 +0900 [ruby/date] bump up to 3.2.3 https://github.com/ruby/date/commit/dff37b3dd1 commit e07d450deae500422b7693a30c75c5b1567601a2 Author: Nobuyoshi Nakada AuthorDate: 2022-08-08 22:43:56 +0900 Commit: git[bot] CommitDate: 2022-08-08 23:50:17 +0900 [ruby/date] Fix Time#to_datetime before calendar reform Time is always in the proleptic Gregorian calendar. Also DateTime#to_time should convert to the Gregorian calendar first, before extracting its components. https://bugs.ruby-lang.org/issues/18946#change-98527 https://github.com/ruby/date/commit/b2aee75248 commit 43239b23b48a6c3fde6bdc4b9cc568bedac161b2 Author: Nobuyoshi Nakada AuthorDate: 2022-08-08 23:26:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-08 23:48:13 +0900 [Bug #18946] New tests for fixed Time/DateTime conversions commit e0dfa5967e7063da8b65dc3c062ef4652e246e34 Author: Nobuyoshi Nakada AuthorDate: 2022-08-08 23:08:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-08 23:48:09 +0900 [Bug #18946] Use Gregorian dates to test commit a24c607e30b5a74ef53e9a2c1e630dea46151a84 Author: Peter Zhu AuthorDate: 2022-08-08 22:26:07 +0900 Commit: Peter Zhu CommitDate: 2022-08-08 22:26:07 +0900 [DOC] Fix formatting issue in Enumerable commit 1cb77f23046dbfd14703241e82bed2bcd69bf6a1 Author: Jean Boussier AuthorDate: 2022-08-08 18:14:05 +0900 Commit: Jean Boussier CommitDate: 2022-08-08 22:15:33 +0900 Update IO::Buffer#get_value benchmark - The method was renamed from `get` to `get_value` - Comparing to `String#unpack` isn't quite equivalent, `unpack1` is closer. - Use frozen_string_literal to avoid allocating a format string every time. - Use `N` format which is equivalent to `:U32` (`uint_32_t` big-endian). - Disable experimental warnings to not mess up the output. Notes: Merged: https://github.com/ruby/ruby/pull/6221 commit 289d219758336e1e1d8afe36255fe06079d8daeb Author: Nobuyoshi Nakada AuthorDate: 2022-08-08 21:13:52 +0900 Commit: git[bot] CommitDate: 2022-08-08 21:14:10 +0900 [ruby/date] [DOC] Fix about calendars difference https://github.com/ruby/date/commit/0ae93e26aa commit 1607c6d2814cc4f71aa65bc273d745f28514e735 Author: Burdette Lamar AuthorDate: 2022-08-06 03:06:03 +0900 Commit: Peter Zhu CommitDate: 2022-08-08 09:42:31 +0900 [DOC] New doc about Julian/Gregorian (#70) commit 5beb75ce8dac1964f88dc82f4216892bf4256aed Author: Nobuyoshi Nakada AuthorDate: 2022-08-08 00:32:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-08 01:12:49 +0900 [ruby/rdoc] Allow multiple footnotes without in-between blank lines https://github.com/ruby/ruby/commit/e4e054e3ce40 used four footnotes without blank lines. And the ChangeLog generated from that commit resulted in ``undefined method `parts' for nil`` error. For now, let a footnote terminated by the next footnote mark. Also refined the error message when undefined footnote is used. https://github.com/ruby/rdoc/commit/a7f290130b commit 23a84d53c682e8db1d9d5b9b33fc20dc475179c2 Author: Burdette Lamar AuthorDate: 2022-08-07 21:07:12 +0900 Commit: git[bot] CommitDate: 2022-08-07 21:07:23 +0900 [ruby/rdoc] [DOC] Removes remaining old Markup Reference (https://github.com/ruby/rdoc/pull/910) https://github.com/ruby/rdoc/commit/4e44c9c6cf commit e5e6b87e265b95620821f7abac56b5ab90d4c1fd Author: Nobuyoshi Nakada AuthorDate: 2022-08-06 20:56:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-07 18:25:10 +0900 Create temporary file exclusively and clean commit 03f86565a69687b335d16d873e2b1f35cb356bec Author: Nobuyoshi Nakada AuthorDate: 2022-08-07 17:57:52 +0900 Commit: GitHub CommitDate: 2022-08-07 17:57:52 +0900 Silent backtrace from cve_2019_8325_spec.rb Since the change at f310ac1cb2964f635f582862763b2155aacf2c12 to show the backtraces by default, this test started to show the backtraces. As the backtraces are not the subject of this test, silence them by using Gem::SilentUI. Notes: Merged: https://github.com/ruby/ruby/pull/6220 Merged-By: nobu commit 0bb5525eb2966b5821eb714c898b1c9c33221660 Author: Nobuyoshi Nakada AuthorDate: 2022-08-07 17:01:22 +0900 Commit: GitHub CommitDate: 2022-08-07 17:01:22 +0900 Fix files for gemspec files direct-under lib Collected `files` lacked `lib` prefix. Notes: Merged: https://github.com/ruby/ruby/pull/6219 Merged-By: nobu commit f2423be49d6f1b6ae42f542c43b8b02d5115dc0c Author: Nobuyoshi Nakada AuthorDate: 2022-08-07 14:46:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-07 14:46:59 +0900 Duplicate libruby self path When LOAD_RELATIVE, as `sopath` is truncated to the prefix path, make the duplicate before it. Also make `rb_libruby_selfpath` frozen and hidden. commit 591ee9d068de174460f0e6fe81b36e7625b90f6c Author: Nobuyoshi Nakada AuthorDate: 2022-08-07 13:09:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-07 13:09:46 +0900 [DOC] Add return values of rb_enc_mbcput commit e545cfad20eccf72f0b7d02660ceb56ec0f1dcf7 Author: Nobuyoshi Nakada AuthorDate: 2022-08-07 00:02:38 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-07 00:02:38 +0900 Stop using casted `rb_syswait` as `proc_syswait` The argument of `rb_syswait` is now `rb_pid_t` which may differ from `int`. Also it is an undefined behavior to take the result of casted void function (in `rb_protect`). commit f245b425af2e560a85edac85ad4426a04b01e4de Author: Nobuyoshi Nakada AuthorDate: 2022-08-06 23:53:13 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-06 23:56:44 +0900 Fix the sizes comparison `proc_syswait` will be called with a `VALUE` argument. commit 466a760e1807e629d0ec9f9ebf160d3c3f649d04 Author: David Rodríguez AuthorDate: 2022-08-04 02:03:50 +0900 Commit: git[bot] CommitDate: 2022-08-06 15:41:46 +0900 [rubygems/rubygems] Fix yanked gems being unintentionally update when other gems are unlocked This is a regression from a change intended to raise errors when user puts a gem under an incorrect source in the Gemfile by mistake. To fix the issue, we revert the change that caused it and implement it in a different way that restores the resolver independency from real specifications. Now it deals only with names and versions and does not try to materialize anything into real specifications before resolving. https://github.com/rubygems/rubygems/commit/d2bf1b86eb commit 8dd63b89d97a0ab149288f2e46d814fb60cb3ba5 Author: David Rodríguez AuthorDate: 2022-01-18 07:01:01 +0900 Commit: git[bot] CommitDate: 2022-08-06 15:41:46 +0900 [rubygems/rubygems] Move comment where the actual replacement happens https://github.com/rubygems/rubygems/commit/d60acdf80d commit 4ea521f6c7a288d985775ab0a380620db865fac4 Author: David Rodríguez AuthorDate: 2022-01-18 06:34:32 +0900 Commit: git[bot] CommitDate: 2022-08-06 15:41:45 +0900 [rubygems/rubygems] Remove unclear comment https://github.com/rubygems/rubygems/commit/3a843c1ac7 commit af40af45b28a9576d5ae6a46d9678c0e3d6be005 Author: David Rodríguez AuthorDate: 2022-01-18 05:47:32 +0900 Commit: git[bot] CommitDate: 2022-08-06 15:41:45 +0900 [rubygems/rubygems] Extract `SourceList#get_with_fallback` https://github.com/rubygems/rubygems/commit/9dbc4757a8 commit 27173e3735ff509dc8d9cc9b410baff84adf57dc Author: Nobuyoshi Nakada AuthorDate: 2022-07-28 16:50:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-06 10:52:00 +0900 Allow `RUBY_DEBUG_LOG` format to be empty GCC warns of empty format strings, perhaps because they have no effects in printf() and there are better ways than sprintf(). However, ruby_debug_log() adds informations other than the format, this warning is not the case. commit c433d36b5bd0b6a649a0c4112a9868bd5190cbc6 Author: Alan Wu AuthorDate: 2022-08-04 00:12:18 +0900 Commit: Alan Wu CommitDate: 2022-08-06 03:34:08 +0900 Test that File.read defaults to text mode Co-authored-by: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/6212 commit ca8daf70fa7045aa1e505514497d1ac4720a6b16 Author: Alan Wu AuthorDate: 2022-08-03 23:48:43 +0900 Commit: Alan Wu CommitDate: 2022-08-06 03:34:08 +0900 [DOC] Mention Windows text mode EOF marker interpretation I don't think this is super well known so it's worth mentioning as it can be a pitfall. See: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/fopen-wfopen?view=msvc-170 Co-authored-by: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/6212 commit f1057393da7a98e447ee7679db69aeec8f4d1650 Author: Alan Wu AuthorDate: 2022-08-03 23:47:12 +0900 Commit: Alan Wu CommitDate: 2022-08-06 03:34:08 +0900 [DOC] Clarify that `IO.read` uses text mode See: https://bugs.ruby-lang.org/issues/18882#note-13 [Bug #18882] Notes: Merged: https://github.com/ruby/ruby/pull/6212 commit 412da2c2213ccf52254467b8c1816b34f1179493 Author: Burdette Lamar AuthorDate: 2022-08-06 03:05:38 +0900 Commit: GitHub CommitDate: 2022-08-06 03:05:38 +0900 Sync new doc in Date (#6215) Notes: Merged-By: BurdetteLamar commit 2f0d9e74c82c12d253ac808b636385ba27a4b115 Author: Nobuyoshi Nakada AuthorDate: 2022-08-05 17:21:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-05 20:46:53 +0900 Get rid of `-C` option for very old `git` Notes: Merged: https://github.com/ruby/ruby/pull/6214 commit 74817f3d37bb7153385f682f75e37713c4c8009d Author: Ivo Anjo AuthorDate: 2022-08-05 18:40:48 +0900 Commit: GitHub CommitDate: 2022-08-05 18:40:48 +0900 [DOC] Process._fork does not get called by Process.daemon As discussed in [Bug #18911], I'm adding some documentation to `Process._fork` to clarify that it is not expected to cover calls to `Process.daemon`. [Bug #18911]: https://bugs.ruby-lang.org/issues/18911 Co-authored-by: Yusuke Endoh Notes: Merged: https://github.com/ruby/ruby/pull/6170 Merged-By: nobu commit f310ac1cb2964f635f582862763b2155aacf2c12 Author: David Rodríguez AuthorDate: 2022-08-03 17:47:40 +0900 Commit: git[bot] CommitDate: 2022-08-05 16:37:03 +0900 [rubygems/rubygems] Include backtrace with crashes by default https://github.com/rubygems/rubygems/commit/3cc3bfd371 commit 5a9db23734e76c2915f1ccb8f87e992bc831598b Author: David Rodríguez AuthorDate: 2022-08-03 00:45:28 +0900 Commit: git[bot] CommitDate: 2022-08-05 16:36:42 +0900 [rubygems/rubygems] Automatically remove "ruby" from lockfile if incomplete https://github.com/rubygems/rubygems/commit/69d0b4e10b commit 73f0573cb3be4e1c7e315ee61833f3c9c3252be9 Author: Nobuyoshi Nakada AuthorDate: 2022-08-05 09:55:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-05 09:55:49 +0900 Ignore revision to test unless HAVE_GIT Notes: Merged: https://github.com/ruby/ruby/pull/6203 commit 8fae120912b01a95b90d1c4e2fb9e7b41ba0f511 Author: Nobuyoshi Nakada AuthorDate: 2022-08-05 01:03:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-05 09:53:18 +0900 Clone upstream gem repositories for test Notes: Merged: https://github.com/ruby/ruby/pull/6203 commit 57911712011e285d76cf8132dd080b5727f43bf3 Author: Nobuyoshi Nakada AuthorDate: 2022-08-04 17:30:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-05 09:52:20 +0900 Load gemspec file at that directory Gemspec files generated by old bundler run `git` without changing the working directory. Or some gemspec files expect an owned file at the top exists ath the current working directory. Notes: Merged: https://github.com/ruby/ruby/pull/6203 commit 661536ab168ab99e1dae31d661ff4807e7734ae4 Author: Nobuyoshi Nakada AuthorDate: 2022-08-04 17:03:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-05 09:52:12 +0900 Copy from cloned gem sources in parallel Notes: Merged: https://github.com/ruby/ruby/pull/6203 commit 44a0a66559ee4a03a84c27feca05e9b1b0f59df8 Author: Nobuyoshi Nakada AuthorDate: 2022-07-31 00:04:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-05 09:44:18 +0900 Move to tool/lib/bundled_gem.rb Notes: Merged: https://github.com/ruby/ruby/pull/6203 commit 41516b35418d6108c75d9f2190a846ded6a47108 Author: Nobuyoshi Nakada AuthorDate: 2022-07-30 21:12:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-05 09:44:18 +0900 Extract bundled gems by BASERUBY Notes: Merged: https://github.com/ruby/ruby/pull/6203 commit 6a8f1a9e5cd1c9c2b3c6925d8d3fa76a29dabf73 Author: Nobuyoshi Nakada AuthorDate: 2022-07-30 21:08:00 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-05 09:44:18 +0900 Copy from bundled gem source for test Notes: Merged: https://github.com/ruby/ruby/pull/6203 commit 87d8d25796df3865b5a0c9069c604e475a28027f Author: Nobuyoshi Nakada AuthorDate: 2022-08-05 02:40:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-05 09:39:47 +0900 Use configured GIT commit 70b60d24b9c3859a859853ddb2e17c603bd3485b Author: John Hawthorn AuthorDate: 2022-07-29 08:41:46 +0900 Commit: John Hawthorn CommitDate: 2022-08-05 06:48:47 +0900 Fix inconsistency with opt_aref_with opt_aref_with is an optimized instruction for accessing a Hash using a non-frozen string key (ie. from a file without frozen_string_literal). It attempts to avoid allocating the string, and instead silently using a frozen string (hash string keys are always fstrings). Because this is just an optimization, it should be invisible to the user. However, previously this optimization was could be seen via hashes with default procs. For example, previously: h = Hash.new { |h, k| k.frozen? } str = "foo" h[str] # false h["foo"] # true when optimizations enabled This commit checks that the Hash doesn't have a default proc when using opt_aref_with. Notes: Merged: https://github.com/ruby/ruby/pull/6196 commit 1e7a2415a4c69aa64c9c2a561197bf9cfc5a91f8 Author: Noah Gibbs AuthorDate: 2022-08-05 01:19:14 +0900 Commit: GitHub CommitDate: 2022-08-05 01:19:14 +0900 YJIT: Allow str-concat arg to be any string subtype, not just rb_cString (#6205) Allow str-concat arg to be any string subtype, not just rb_cString Notes: Merged-By: maximecb commit 7f5f9d19c54d3d5e0c2b2947785d8821b752641d Author: John Hawthorn AuthorDate: 2022-08-05 00:18:24 +0900 Commit: GitHub CommitDate: 2022-08-05 00:18:24 +0900 YJIT: Add known_* helpers for Type (#6208) * YJIT: Add known_* helpers for Type This adds a few helpers to Type which all return Options representing what is known, from a Ruby perspective, about the type. This includes: * known_class_of: If known, the class represented by this type * known_value_type: If known, the T_ value type * known_exact_value: If known, the exact VALUE represented by this type (currently this is only available for true/false/nil) * known_truthy: If known, whether or not this value evaluates as true (not false or nil) The goal of this is to abstract away the specifics of the mappings between types wherever possible from the codegen. For example previously by introducing Type::CString as a more specific version of Type::TString, uses of Type::TString in codegen needed to be updated to check either case. Now by using known_value_type, at least in theory we can introduce new types with minimal (if any) codegen changes. I think rust's Option type allows us to represent this uncertainty fairly well, and should help avoid mistakes, and the matching using this turned out pretty cleanly. * YJIT: Use known_value_type for checktype * YJIT: Use known_value_type for T_STRING check * YJIT: Use known_class_of in guard_known_klass * YJIT: Use known truthyness in jit_rb_obj_not * YJIT: Rename known_class_of => known_class Notes: Merged-By: maximecb commit c84d0538be3b5f6739c6968f3bb1b8e4abe8eadf Author: David Rodríguez AuthorDate: 2022-08-04 17:57:15 +0900 Commit: git[bot] CommitDate: 2022-08-05 00:09:18 +0900 [rubygems/rubygems] Fix unused variable warning ``` /Users/deivid/Code/rubygems/rubygems/test/rubygems/test_gem_resolver_installer_set.rb:55: warning: assigned but unused variable - a_1_local ``` https://github.com/rubygems/rubygems/commit/9ea4534800 commit 6b2fc33ae231594eb69f93c493e2c314931b0990 Author: Jean Boussier AuthorDate: 2022-08-04 17:37:46 +0900 Commit: Jean Boussier CommitDate: 2022-08-04 18:48:31 +0900 thread_sync.c: pass proper argument to queue_sleep in rb_szqueue_push When I removed the SizeQueue#push timeout from my PR, I forgot to update the `queue_sleep` parameters to be a `queue_sleep_arg`. Somehow this worked on most archs, but on Solaris/Sparc it would legitimately crash when trying to access the `timeout` and `end` members of the struct. Notes: Merged: https://github.com/ruby/ruby/pull/6213 commit 00f411c58ac6105f135ff4501ea5bd1d691fcc32 Author: Yuta Saito AuthorDate: 2022-07-30 20:26:57 +0900 Commit: Yuta Saito CommitDate: 2022-08-04 16:29:22 +0900 Add `-bundle_loader` to mjit compilation args on macOS Notes: Merged: https://github.com/ruby/ruby/pull/6193 commit 184fd94d7e8023d7720be985089bae00c4bdfa2b Author: Yuta Saito AuthorDate: 2022-07-30 18:32:38 +0900 Commit: Yuta Saito CommitDate: 2022-08-04 16:29:22 +0900 Resolve abi symbols from libruby.dylib when available Notes: Merged: https://github.com/ruby/ruby/pull/6193 commit 6d8b9a9d619821b722273d93cdc4645ae2e23ede Author: Yuta Saito AuthorDate: 2022-07-30 17:25:12 +0900 Commit: Yuta Saito CommitDate: 2022-08-04 16:29:22 +0900 Resolve abi symbol references from miniruby to avoid circular deps Adding `ruby` to `PREP` causes the following circular dependencies because `PREP` is used as a prerequisite by some targets required to build `ruby` target itself. ``` make: Circular .rbconfig.time <- ruby dependency dropped. make: Circular builtin_binary.inc <- ruby dependency dropped. make: Circular ext/extinit.c <- ruby dependency dropped. make: Circular ruby <- ruby dependency dropped. ``` Adding a new Make variable like `EXTPREP` only for exts may be also reasonable, but it would introduce another complexity into our build system. `-bundle_loader` doesn't care that link-time and run-time loader executables are different as long as bound symbols are provided, so it's ok to resolve from miniruby to simplify our build. Notes: Merged: https://github.com/ruby/ruby/pull/6193 commit e5a3f232563139fdf15660d54aeaec112ffc2349 Author: Alan Wu AuthorDate: 2022-07-30 02:54:27 +0900 Commit: Yuta Saito CommitDate: 2022-08-04 16:29:22 +0900 Use $(bindir) for path to executable in mkmf For the macOS -bundle_loader linker option, we need a path to the Ruby exectuable. $(RUBY) is not necessarily a path since it could be a command line invocation. That happens during build with runruby.rb and can happen post installation if the user passes the --ruby option to a extconf.rb. Use $(bindir) to locate the executable instead. Before installation, $(bindir) doesn't exist, so we need to be able to override $(BUILTRUBY) in such situations so test-spec and bundled extensions could build. Use a new mkmf global, $builtruby, to do this; set it in fake.rb and in extmk.rb. Our build system is quite complex... Notes: Merged: https://github.com/ruby/ruby/pull/6193 commit c69582a5401ac7b6e59b87a8bcc8636c27eb923e Author: Alan Wu AuthorDate: 2022-07-30 03:18:26 +0900 Commit: Yuta Saito CommitDate: 2022-08-04 16:29:22 +0900 Quote $(BUILTRUBY) so paths with spaces work Notes: Merged: https://github.com/ruby/ruby/pull/6193 commit 50d81bfbc19d9b2e3d4be511c26c3dff317e2f8e Author: Yuta Saito AuthorDate: 2022-07-28 17:19:28 +0900 Commit: Yuta Saito CommitDate: 2022-08-04 16:29:22 +0900 Link ext bundles with bundle loader option for newer ld64 ld64 shipped with Xcode 14 emits a warning when using `-undefined dynamic_lookup`. ``` ld: warning: -undefined dynamic_lookup may not work with chained fixups ``` Actually, `-undefined dynamic_lookup` doesn't work when: 1. Link a *shared library* with the option 2. Link it with a program that uses the chained-fixup introduced from macOS 12 and iOS 15 because `-undefined dynamic_lookup` uses lazy-bindings and they won't be bound while dyld fixes-up by traversing chained-fixup info. However, we build exts as *bundles* and they are loaded only through `dlopen`, so it's safe to use `-undefined dynamic_lookup` in theory. So the warning produced by ld64 is false-positive, and it results failure of option checking in configuration. Therefore, it would be an option to ignore the warning during our configuration. On the other hand, `-undefined dynamic_lookup` is already deprecated on all darwin platforms except for macOS, so it's good time to get rid of the option. ld64 also provides `-bundle_loader ` option, which allows to resolve symbols defined in the executable symtab while linking. It behaves almost the same with `-undefined dynamic_lookup`, but it makes the following changes: 1. Require that unresolved symbols among input objects must be defined in the executable. 2. Lazy symbol binding will lookup only the symtab of the bundle loader executable. (`-undefined dynamic_lookup` lookups all symtab as flat namespace) This patch adds `-bundle_loader $(RUBY)` when non-EXTSTATIC configuration by assuming ruby executable can be linked before building exts. See "New Features" subsection under "Linking" section for chained fixup https://developer.apple.com/documentation/xcode-release-notes/xcode-13-release-notes Notes: Merged: https://github.com/ruby/ruby/pull/6193 commit 542040fb8375ffd74096ae0615a33bbc90524cb3 Author: David Rodríguez AuthorDate: 2022-08-02 17:27:42 +0900 Commit: git[bot] CommitDate: 2022-08-04 13:36:45 +0900 [rubygems/rubygems] Warn dangling symlinks https://github.com/rubygems/rubygems/commit/425b78637f commit 0591780a74f9893038d5d794a958621189953e8a Author: David Rodríguez AuthorDate: 2022-08-02 18:25:51 +0900 Commit: git[bot] CommitDate: 2022-08-04 13:36:44 +0900 [rubygems/rubygems] Extract entry.full_name to a variable https://github.com/rubygems/rubygems/commit/3973773005 commit b54f26b7048fc8dd103e7da5cf8f8dd73feb10d0 Author: tompng AuthorDate: 2022-08-02 04:10:45 +0900 Commit: git[bot] CommitDate: 2022-08-04 08:37:03 +0900 [ruby/irb] shortcut colorize_code to speedup pretty_print https://github.com/ruby/irb/commit/8a074a6904 commit 4406cb1bf10e34757d9877b3b12d4b0c294c22fb Author: Jean Boussier AuthorDate: 2022-08-03 16:46:21 +0900 Commit: Jean Boussier CommitDate: 2022-08-03 17:59:13 +0900 Harden Queue#pop timeout tests They occasionaly fail with; ``` FLeaked thread: TestThreadQueue#test_queue_pop_timeout: # .Finished thread: TestThreadQueue#test_deny_pushers: # ... Retrying... 1) Failure: TestThreadQueue#test_sized_queue_pop_timeout [/Users/runner/work/ruby/ruby/src/test/ruby/test_thread_queue.rb:157]: <#> expected but was . 2) Failure: TestThreadQueue#test_queue_pop_timeout [/Users/runner/work/ruby/ruby/src/test/ruby/test_thread_queue.rb:124]: <#> expected but was . ``` I'm hoping joining for longer should help avoid this. Notes: Merged: https://github.com/ruby/ruby/pull/6210 commit 851b3aa7dde489502f517cc1ad9d31d9a3056197 Author: David Rodríguez AuthorDate: 2022-08-02 00:11:20 +0900 Commit: git[bot] CommitDate: 2022-08-03 16:33:53 +0900 [rubygems/rubygems] Fix `bundle outdated --strict` It should be an alias of `--filter-strict`. `--update-strict` is essentially a dummy option with no special behavior associated and should be deprecated. https://github.com/rubygems/rubygems/commit/ec1e5d83c8 commit 35c65e7ba6b4aa8bc80aaca8429a48c4eb923b89 Author: David Rodríguez AuthorDate: 2022-08-01 23:41:31 +0900 Commit: git[bot] CommitDate: 2022-08-03 16:33:52 +0900 [rubygems/rubygems] Fix conservative updates regardless of `--strict` https://github.com/rubygems/rubygems/commit/c9a1d69a8d commit 71794a75db5d3da810146da106baf7eb5e86f745 Author: Hiroshi SHIBATA AuthorDate: 2022-08-03 12:24:38 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-03 13:14:10 +0900 Merge rubygems/bundler HEAD Pick from https://github.com/rubygems/rubygems/commit/8331e63263081a6aa690d8025d2957f30c4e814a Notes: Merged: https://github.com/ruby/ruby/pull/6209 commit 8a1be433e8cac6ca5ded095f6fefbdc1009102b9 Author: Thomas Winsnes AuthorDate: 2022-08-02 09:23:34 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-03 11:04:31 +0900 [ruby/bigdecimal] Updated to use the correct spec for muilti license https://github.com/ruby/bigdecimal/commit/13165b29b8 commit f33b2ae918aff36518540244ac57e7f9c4de4af9 Author: Thomas Winsnes AuthorDate: 2022-08-02 09:22:22 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-08-03 11:04:20 +0900 Updated to use multiple licenses Co-authored-by: Hiroshi SHIBATA commit 4f00ee8d470f4ad5040c0df4cac2cf802b3cbdaf Author: Ilya Dyakonov AuthorDate: 2022-08-01 17:54:21 +0900 Commit: git[bot] CommitDate: 2022-08-03 06:56:36 +0900 [rubygems/rubygems] fix platform matching for index specs https://github.com/rubygems/rubygems/commit/f087f1b590 commit 20936eb3a95f3564e565f59228a35453ae94eee3 Author: David Rodríguez AuthorDate: 2022-08-01 16:56:39 +0900 Commit: git[bot] CommitDate: 2022-08-03 06:56:18 +0900 [rubygems/rubygems] Warn (rather than crash) when setting `nil` specification versions https://github.com/rubygems/rubygems/commit/a4ba1a4d97 commit eaf6189fe59ac4839d3a04bf7f9552fc22f09471 Author: Burdette Lamar AuthorDate: 2022-08-03 05:17:50 +0900 Commit: git[bot] CommitDate: 2022-08-03 05:17:55 +0900 [ruby/date] Enhanced RDoc (https://github.com/ruby/date/pull/69) Treats: ::_strptime ::strptime Adds 'Related' entry to some methods' doc. https://github.com/ruby/date/commit/a6c2129273 commit d8ea3a20fa7db0a670cde9c90d62fc5187217a23 Author: Burdette Lamar AuthorDate: 2022-08-03 02:28:03 +0900 Commit: git[bot] CommitDate: 2022-08-03 02:28:12 +0900 [ruby/date] [DOC] Enhanced RDoc for parser methods (https://github.com/ruby/date/pull/68) Treats: ::_httpdate ::_iso8601 ::_jisx0301 ::_parse ::_rfc2822 ::_rfc3339 ::_xmlschema ::httpdate ::iso8601 ::jisx0301 ::parse ::rfc2822 ::rfc3339 ::xmlschema https://github.com/ruby/date/commit/24bdab600a commit e4e054e3ce409f1c1d04bf7cd75aa9238e205d52 Author: Aaron Patterson AuthorDate: 2022-08-02 06:24:12 +0900 Commit: Aaron Patterson CommitDate: 2022-08-03 01:04:04 +0900 Speed up setting the backref match object This patch speeds up setting the backref match object by avoiding some memcopies. Take the following code for example: ```ruby "hello world" =~ /hello/ p $~ ``` When the RE matches the string, we have to set the Match object in the backref global. So we would allocate a match object[^1] and use `rb_reg_region_copy`[^2] to make a deep copy of the stack allocated `re_registers` struct[^3] in to the newly created Ruby object. This could possibly trigger GC[^4], and would allocate new memory. This patch makes a shallow copy of the `re_registers` struct on to the Match object allowing the match object to manage the `re_registers` pointer and also avoiding some calls to `xmalloc` and some manual memcopy. Benchmark looks like this: ```ruby require "benchmark/ips" def test_re thing thing =~ /hello/ end Benchmark.ips do |x| x.report("re hit") do test_re "hello world" end x.report("re miss") do test_re "world" end end ``` Before this patch: ``` $ ruby -v test.rb ruby 3.2.0dev (2022-07-27T22:29:00Z master 4ad69899b7) [arm64-darwin21] Ignoring bcrypt-3.1.16 because its extensions are not built. Try: gem pristine bcrypt --version 3.1.16 Warming up -------------------------------------- re hit 345.401k i/100ms re miss 673.584k i/100ms Calculating ------------------------------------- re hit 3.452M (± 0.5%) i/s - 17.270M in 5.002535s re miss 6.736M (± 0.4%) i/s - 34.353M in 5.099593s ``` After this patch: ``` $ ./ruby -v test.rb ruby 3.2.0dev (2022-08-01T21:24:12Z less-memcpy 0ff2a56606) [arm64-darwin21] Warming up -------------------------------------- re hit 419.578k i/100ms re miss 673.251k i/100ms Calculating ------------------------------------- re hit 4.201M (± 0.7%) i/s - 21.398M in 5.093593s re miss 6.716M (± 0.4%) i/s - 33.663M in 5.012756s ``` Matches get faster and misses maintain the same speed [^1]: https://github.com/ruby/ruby/blob/24204d54ab730791bfbd0cd66b8e12f0bd62ca5d/re.c#L1737 [^2]: https://github.com/ruby/ruby/blob/24204d54ab730791bfbd0cd66b8e12f0bd62ca5d/re.c#L1738 [^3]: https://github.com/ruby/ruby/blob/24204d54ab730791bfbd0cd66b8e12f0bd62ca5d/re.c#L1686 [^4]: https://github.com/ruby/ruby/blob/24204d54ab730791bfbd0cd66b8e12f0bd62ca5d/re.c#L981 Notes: Merged: https://github.com/ruby/ruby/pull/6206 commit da00243dfe745cba3b176112fe8245c23e6f1635 Author: Peter Zhu AuthorDate: 2022-08-01 06:03:19 +0900 Commit: Peter Zhu CommitDate: 2022-08-02 22:40:53 +0900 [DOC] Specify ways to run bootstrap tests Notes: Merged: https://github.com/ruby/ruby/pull/6194 commit f70b26af47f4f4e851e1a16d2c13951485272325 Author: David Rodríguez AuthorDate: 2022-08-02 20:23:24 +0900 Commit: git[bot] CommitDate: 2022-08-02 21:57:52 +0900 [rubygems/rubygems] Array is already uniq, no need to deduplicate it https://github.com/rubygems/rubygems/commit/3212ae14b7 commit b81858cf6f22b1a3c9a56e8e867c3a9efc189408 Author: Takuya Noguchi AuthorDate: 2022-08-02 14:24:22 +0900 Commit: git[bot] CommitDate: 2022-08-02 18:35:38 +0900 [rubygems/rubygems] Fix arguments for bundle-config(1) docs Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/3e62ca776d commit e3aabe93aae87a60ba7b8f1a0fd590534647e352 Author: Jean Boussier AuthorDate: 2022-07-27 00:40:00 +0900 Commit: Jean Boussier CommitDate: 2022-08-02 18:04:28 +0900 Implement Queue#pop(timeout: sec) [Feature #18774] As well as `SizedQueue#pop(timeout: sec)` If both `non_block=true` and `timeout:` are supplied, ArgumentError is raised. Notes: Merged: https://github.com/ruby/ruby/pull/6185 commit ec3f59309e3f08339c4c76a6881901580801d6cd Author: Nobuyoshi Nakada AuthorDate: 2022-07-20 19:19:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-08-02 16:40:12 +0900 [Bug #17767] Now `ENV.clone` raises `TypeError` as well as `ENV.dup` One year ago, the former method has been deprecated while the latter has become an error. Then the 3.1 released, it is enough time to make also the former an error. Notes: Merged: https://github.com/ruby/ruby/pull/6155 commit 3e4fedca4e0b068908137d44bcf5a567cb8445d0 Author: David Rodríguez AuthorDate: 2022-07-30 17:07:45 +0900 Commit: git[bot] CommitDate: 2022-08-02 16:10:19 +0900 [rubygems/rubygems] Preserve the previous behavior of raising an error when in frozen mode https://github.com/rubygems/rubygems/commit/6e35a6edfe commit bc90090672450a4ba3ba1025fbbad8991ee84b0e Author: David Rodríguez AuthorDate: 2022-07-31 04:41:49 +0900 Commit: git[bot] CommitDate: 2022-08-02 16:10:18 +0900 [rubygems/rubygems] Check for errors in error stream https://github.com/rubygems/rubygems/commit/7b0f7804f2 commit f4f681463f71c2fc63e1a07f36f2665f2b9db002 Author: David Rodríguez AuthorDate: 2022-07-23 15:44:47 +0900 Commit: git[bot] CommitDate: 2022-08-02 16:10:18 +0900 [rubygems/rubygems] Don't discard candidates matching ruby metadata Do dependency filtering and materialization in one step. Before, dependency filtering would not consider ruby metadata so it would discard variants that end up not being materializable in the end. https://github.com/rubygems/rubygems/commit/0c0d40d417 Co-authored-by: Ian Ker-Seymer commit 9189c2d5efa94131050df4994c801fb187d7b43d Author: David Rodríguez AuthorDate: 2022-07-30 05:09:51 +0900 Commit: git[bot] CommitDate: 2022-08-02 16:10:17 +0900 [rubygems/rubygems] Materializing for resolution already filters platforms https://github.com/rubygems/rubygems/commit/9f4ba9ebb0 commit 8c98f7be577389f01a90c7a39d693173d432e9e2 Author: David Rodríguez AuthorDate: 2022-07-30 05:39:38 +0900 Commit: git[bot] CommitDate: 2022-08-02 16:10:17 +0900 [rubygems/rubygems] Remove unnecessary local variable https://github.com/rubygems/rubygems/commit/a997210473 commit 5487e76374c5ee247b0f5a2867a6dc1319d98e0e Author: David Rodríguez AuthorDate: 2022-07-30 04:17:59 +0900 Commit: git[bot] CommitDate: 2022-08-02 16:10:16 +0900 [rubygems/rubygems] Prefer reverse+find to select+last https://github.com/rubygems/rubygems/commit/ffb161bb69 commit bc0de1e16250ecb4e8278ec64de86fbc049c5e63 Author: David Rodríguez AuthorDate: 2022-07-23 20:47:58 +0900 Commit: git[bot] CommitDate: 2022-08-02 16:10:16 +0900 [rubygems/rubygems] Only need to filter platforms when materialization is not strict https://github.com/rubygems/rubygems/commit/9d878cbda0 commit 91b9bd62347dbb0971904593a11320d64076a1ac Author: David Rodríguez AuthorDate: 2022-07-25 18:14:06 +0900 Commit: git[bot] CommitDate: 2022-08-02 16:10:15 +0900 [rubygems/rubygems] This should go through the standard source search logic https://github.com/rubygems/rubygems/commit/087e3e4e3b commit 35e508d13e6d936af7725ccf9ac15deb69e35257 Author: David Rodríguez AuthorDate: 2022-07-24 03:56:17 +0900 Commit: git[bot] CommitDate: 2022-08-02 16:10:14 +0900 [rubygems/rubygems] Refactor materialization conditions https://github.com/rubygems/rubygems/commit/08e1554fb6 commit ed9bbfd7594f655702461067e3dc8106eec52385 Author: David Rodríguez AuthorDate: 2022-07-23 18:58:53 +0900 Commit: git[bot] CommitDate: 2022-08-02 16:10:14 +0900 [rubygems/rubygems] Fix incorrect force_ruby_platform propagation It was just working by chance. (cherry picked from commit https://github.com/rubygems/rubygems/commit/16b2d6bfe893) https://github.com/rubygems/rubygems/commit/8f922d980f commit 7cc5a657eed1a537b33b7b2ec71fdb5ad9323950 Author: David Rodríguez AuthorDate: 2022-07-23 16:19:34 +0900 Commit: git[bot] CommitDate: 2022-08-02 16:10:13 +0900 [rubygems/rubygems] Remove unnecessary special case for Bundler https://github.com/rubygems/rubygems/commit/2777e79b8e commit 6ec8f684aa1ff6182b4be3fc67b2fa5bad3f0bec Author: David Rodríguez AuthorDate: 2022-07-15 05:22:54 +0900 Commit: git[bot] CommitDate: 2022-08-02 16:10:13 +0900 [rubygems/rubygems] Move some logic to `LazySpecification#__materialize__` https://github.com/rubygems/rubygems/commit/5e100df7c9 commit 13305bf0c9a03f24b5ab667784ff1dc1f10b3d9f Author: David Rodríguez AuthorDate: 2022-08-01 18:47:15 +0900 Commit: git[bot] CommitDate: 2022-08-01 23:14:23 +0900 [rubygems/rubygems] Fix crash when running `bundle outdated` in debug mode Previously it would crash like this: ```` $ /Users/deivid/.asdf/installs/ruby/3.1.2/bin/ruby -I/Users/deivid/Code/rubygems/rubygems/bundler/spec -r/Users/deivid/Code/rubygems/rubygems/bundler/spec/support/artifice/fail.rb -r/Users/deivid/Code/rubygems/rubygems/bundler/spec/support/hax.rb /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle outdated --patch --strict --filter-patch Running `bundle outdated --filter-patch --patch --strict` with bundler 2.4.0.dev Found changes from the lockfile, re-resolving dependencies because bundler is unlocking Using a local server, bundler won't use the CompactIndex API Fetching source index from file:///Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/remote4/ Resolving dependencies... --- ERROR REPORT TEMPLATE ------------------------------------------------------- ``` RuntimeError: LazySpecification has not been materialized yet (calling :loaded_from []) /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/lazy_specification.rb:147:in `method_missing' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:214:in `gem_column_for' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:174:in `block in print_gems_table' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:173:in `map' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:173:in `print_gems_table' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/outdated.rb:123:in `run' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:420:in `outdated' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:31:in `dispatch' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:25:in `start' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/exe/bundle:48:in `block in ' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/exe/bundle:36:in `' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:25:in `load' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:25:in `
' ``` ```` https://github.com/rubygems/rubygems/commit/23c46f3b57 commit 5c13adb746ad7d0f829809ee833e4fdde1238e68 Author: David Rodríguez AuthorDate: 2022-08-01 18:46:49 +0900 Commit: git[bot] CommitDate: 2022-08-01 23:14:22 +0900 [rubygems/rubygems] Fix comment incorrectly copied from another spec https://github.com/rubygems/rubygems/commit/9be5eae9cf commit 5bbba76489628f4509495ebf4ba0a7aad4c0b560 Author: Koichi Sasada AuthorDate: 2022-07-29 16:02:10 +0900 Commit: Koichi Sasada CommitDate: 2022-08-01 17:48:05 +0900 respect current frame of `rb_eval_string` `self` is nearest Ruby method's `self`. If there is no ruby frame, use toplevel `self` (`main`). https://bugs.ruby-lang.org/issues/18780 Notes: Merged: https://github.com/ruby/ruby/pull/6199 commit c69ad738dc7c713df547a51607917ca78df6b793 Author: Wolf AuthorDate: 2022-07-30 03:12:39 +0900 Commit: Yusuke Endoh CommitDate: 2022-08-01 10:36:36 +0900 Initialize node_id In some causes node_id might have been left uninitialized leading to undefined behavior on access. So always set it to -1, so we have *some* valid value in there. Notes: Merged: https://github.com/ruby/ruby/pull/6202 commit b0e6d07ce49da4ffc84f3a1f1717b2e096e8b513 Author: Takuya Noguchi AuthorDate: 2022-07-31 20:11:46 +0900 Commit: git[bot] CommitDate: 2022-08-01 01:31:24 +0900 [rubygems/rubygems] Update bundle-platform(1) man Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/1c3736f5af commit 4efbeb11905534289a6b4a4bc4779859a9c6c6a6 Author: Burdette Lamar AuthorDate: 2022-07-31 03:18:29 +0900 Commit: git[bot] CommitDate: 2022-07-31 03:18:45 +0900 [ruby/date] Enhanced RDoc (https://github.com/ruby/date/pull/67) Treats: ::httpdate #to_date #to_time #to_datetime In behalf of ::httpdate, I've introduced section "Argument limit" that can be pointed to by various Date methods (similar to existing section "Argument start"). This will involve 8 already-enhanced methods plus 8 more not yet done. https://github.com/ruby/date/commit/00326ff99c commit d050f162a7fa04ccb699fa25ef22cd18be4d7c42 Author: Akinori MUSHA AuthorDate: 2022-07-29 14:00:29 +0900 Commit: Akinori MUSHA CommitDate: 2022-07-30 20:05:14 +0900 Mention Enumerator.product/Enumerator::Product in the NEWS.md Notes: Merged: https://github.com/ruby/ruby/pull/6197 commit 1a73a6cdd2068b815430b775fe25186dab693faa Author: Akinori MUSHA AuthorDate: 2022-07-29 13:56:54 +0900 Commit: Akinori MUSHA CommitDate: 2022-07-30 20:05:14 +0900 Implement Enumerator::Product and Enumerator.product [Feature #18685] Notes: Merged: https://github.com/ruby/ruby/pull/6197 commit f28287d34c03f472ffe90ea262bdde9affd4b965 Author: Nobuyoshi Nakada AuthorDate: 2022-07-30 17:24:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-30 17:24:43 +0900 [ruby/io-nonblock] Revert tab expansion commit 48b09aae7ec5632209229dcc294dd0d75a93a17f Author: Nobuyoshi Nakada AuthorDate: 2022-07-30 16:36:07 +0900 Commit: git[bot] CommitDate: 2022-07-30 16:41:19 +0900 [ruby/digest] Revert tab-expansion in external files https://github.com/ruby/digest/commit/5ca2b5b91e commit af265d73fb2726fcd405d86d37d28bbf03de3b04 Author: Nobuyoshi Nakada AuthorDate: 2022-07-30 01:18:04 +0900 Commit: git[bot] CommitDate: 2022-07-30 11:04:11 +0900 [ruby/rdoc] Fix blockquote with word in verbatim https://github.com/ruby/rdoc/commit/75eee668a5 commit 0e85586ecc983ebb4541cd046949428d1ef5d635 Author: John Hawthorn AuthorDate: 2022-07-30 07:07:06 +0900 Commit: John Hawthorn CommitDate: 2022-07-30 08:32:14 +0900 Add --enable-yjit=dev_nodebug configure option Notes: Merged: https://github.com/ruby/ruby/pull/6105 commit fbd24793cb7be2429edafcf11d7dd4a7d11f5c95 Author: John Hawthorn AuthorDate: 2022-07-07 14:14:25 +0900 Commit: John Hawthorn CommitDate: 2022-07-30 08:32:14 +0900 Add --enable-yjit=stats configure option Notes: Merged: https://github.com/ruby/ruby/pull/6105 commit 53175643ef826775d0a51fc48fdd79a4cf01dc70 Author: Burdette Lamar AuthorDate: 2022-07-30 04:50:56 +0900 Commit: git[bot] CommitDate: 2022-07-30 04:51:10 +0900 [ruby/date] [DOC] Enhanced RDoc (https://github.com/ruby/date/pull/66) Treats: #=== #to_s #inspect #strftme #asctime #iso3601 #rfc3339 #rfc2822 #httpdate #jisx0301 https://github.com/ruby/date/commit/aed66fedf6 commit 030050cdfa9ae65cbbcd0f708aa2459e0ef17c3a Author: David Rodríguez AuthorDate: 2022-07-25 05:32:34 +0900 Commit: git[bot] CommitDate: 2022-07-30 04:24:25 +0900 [rubygems/rubygems] Make `--standalone` play nice with `--local` I'm not sure if using relative paths in the generated script is best for this case, since it makes the script not movable, but that can be improved later. https://github.com/rubygems/rubygems/commit/7f5bdbb842 commit b515fdcc32a6a7d484c73f090fa2a58a8662e6ca Author: David Rodríguez AuthorDate: 2022-07-25 04:58:13 +0900 Commit: git[bot] CommitDate: 2022-07-30 04:24:24 +0900 [rubygems/rubygems] No need to set anything at all unless standalone is given https://github.com/rubygems/rubygems/commit/d695c8da3e commit f78e46d404f156cc05066c4d895fd6bdef4aec7c Author: Burdette Lamar AuthorDate: 2022-07-29 23:40:12 +0900 Commit: git[bot] CommitDate: 2022-07-29 23:40:26 +0900 [ruby/rdoc] Add block quotes (https://github.com/ruby/rdoc/pull/907) Also adjusts which blocks may be nested. https://github.com/ruby/rdoc/commit/dde1860441 commit 62849b337988268b4209c58b6de02d0002c78988 Author: Hiroshi SHIBATA AuthorDate: 2022-07-29 17:07:36 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-29 19:10:10 +0900 Keep gitignore for libyaml source with psych Notes: Merged: https://github.com/ruby/ruby/pull/6200 commit 4e886d2adeaa3ae8a408fa549f19f203b82d9550 Author: Hiroshi SHIBATA AuthorDate: 2022-07-29 17:06:18 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-29 19:10:10 +0900 Update parser-text.rb with https://github.com/ruby/racc/commit/4ecc13c9cbd4663268c34b0a5c99cf5307de7c60 Notes: Merged: https://github.com/ruby/ruby/pull/6200 commit b2cc74a50dd492e95bd76252046c25495f06a586 Author: Ethan AuthorDate: 2021-10-21 05:53:18 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-29 19:10:10 +0900 [flori/json] test parsing of unicode, mixing literal characters with escaped https://github.com/flori/json/commit/82fe866da2 Notes: Merged: https://github.com/ruby/ruby/pull/6200 commit 66b52f046f3e4c5d24781a142f9633e07c42d6d9 Author: Jean Boussier AuthorDate: 2021-05-20 19:40:04 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-29 19:10:10 +0900 [flori/json] Stop including the parser source __LINE__ in exceptions It makes testing for JSON errors very tedious. You either have to use a Regexp or to regularly update all your assertions when JSON is upgraded. https://github.com/flori/json/commit/de9eb1d28e Notes: Merged: https://github.com/ruby/ruby/pull/6200 commit 4bf97a8ec45e63f4d60a4146b8f99bd629c1f629 Author: Luka Dornhecker AuthorDate: 2022-05-23 00:47:26 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-29 19:10:10 +0900 fix typo in Time#xmlschema documentation Notes: Merged: https://github.com/ruby/ruby/pull/6200 commit 419ad1e13e6287d0b7a6ba1dfeb485d2f889bf9e Author: konsolebox AuthorDate: 2022-06-09 20:43:24 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-29 19:10:10 +0900 [ruby/optparse] Also accept '-' as an optional argument (https://github.com/ruby/optparse/pull/35) https://github.com/ruby/optparse/commit/f2b8318631 Notes: Merged: https://github.com/ruby/ruby/pull/6200 commit 3725454161b55681e5b4ec3b7ca23a4126e23736 Author: Hiroshi SHIBATA AuthorDate: 2022-07-29 15:47:02 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-29 19:10:10 +0900 Merge ruby/fileutils from https://github.com/ruby/fileutils/commit/332025bc0299254f97a06d64e580f60fea4e7125 Notes: Merged: https://github.com/ruby/ruby/pull/6200 commit d1e726cce727fab7083993eb75237472a462cd72 Author: Takuya Noguchi AuthorDate: 2022-07-28 10:30:02 +0900 Commit: git[bot] CommitDate: 2022-07-29 19:06:49 +0900 [rubygems/rubygems] Fix dead links to deprecated bundle-package(1) with bundler-cache(1) Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/9c2e80a10f commit def1d44aa193fb7640a78d864810734bba786e6d Author: Takuya Noguchi AuthorDate: 2022-07-28 17:39:16 +0900 Commit: git[bot] CommitDate: 2022-07-29 16:31:06 +0900 [rubygems/rubygems] Add package/pack aliases to man pages for cache Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/1685e3a9dc commit bfd09b1116bcc747bab922b23c7322e4ec66c2c2 Author: Hiroshi SHIBATA AuthorDate: 2022-07-29 14:59:56 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-29 15:46:15 +0900 Merge rubygems master from https://github.com/rubygems/rubygems/commit/446cc57a7ccdf1924deb291be9571219e7ba8523 Notes: Merged: https://github.com/ruby/ruby/pull/6198 commit f29f1d22c3d62b72b8943eefb384cd7a52251ea1 Author: Nobuyoshi Nakada AuthorDate: 2022-07-29 09:10:36 +0900 Commit: git[bot] CommitDate: 2022-07-29 09:21:33 +0900 [ruby/rdoc] Fix formatting blockquote in verbatim Reported at https://github.com/ruby/rdoc/pull/907#discussion_r932505816 https://github.com/ruby/rdoc/commit/86384ac7f9 commit 0d68286be93b2c7e588e42849ead0526ff55126c Author: Takashi Kokubun AuthorDate: 2022-07-29 08:12:46 +0900 Commit: Takashi Kokubun CommitDate: 2022-07-29 08:12:46 +0900 Revert "Try reproducing the MinGW hang on time command (#6168)" This reverts commit bee5089d6789401f265f87b2f23f1bd7ec63cec8. Looking at https://github.com/ruby/ruby/runs/7564065637?check_suite_focus=true, we concluded that the ruby process for test-all is stuck before exit when this issue reproduces. However, because of our limited bandwidth to support MinGW, we're not investigating this, and therefore we need to keep skipping tests that hang on this environment. commit c348f5a91c6c5b4a90082d1e64312b4fb0dc7abc Author: Burdette Lamar AuthorDate: 2022-07-29 06:36:54 +0900 Commit: git[bot] CommitDate: 2022-07-29 06:37:10 +0900 [ruby/date] [DOC] Enhanced RDoc for <=> (https://github.com/ruby/date/pull/65) https://github.com/ruby/date/commit/0cdbaa92e9 commit c56e957decab0dd1f6aa2f4daba5d3d082c7782b Author: Burdette Lamar AuthorDate: 2022-07-29 01:06:30 +0900 Commit: git[bot] CommitDate: 2022-07-29 01:06:34 +0900 [ruby/rdoc] Link from RDoc::Markup to RDoc::MarkupReference (https://github.com/ruby/rdoc/pull/906) Recently new RDoc::MarkupReference replaces Markup Reference in RDoc::Markup (which was always the goal). https://github.com/ruby/rdoc/commit/825be7eaf4 commit ab08a43ec5ab7a8d82c980dc1eefc9e5d71e926d Author: Matthew Draper AuthorDate: 2022-07-29 00:38:07 +0900 Commit: GitHub CommitDate: 2022-07-29 00:38:07 +0900 YJIT: Teach getblockparamproxy to handle the no-block case without exiting (#6191) Teach getblockparamproxy to handle the no-block case without exiting Co-authored-by: John Hawthorn Co-authored-by: John Hawthorn Notes: Merged-By: maximecb commit 18b1e5e6dbef9bb0c265e57e1267840d7c13cd88 Author: Burdette Lamar AuthorDate: 2022-07-28 23:50:37 +0900 Commit: git[bot] CommitDate: 2022-07-28 23:50:49 +0900 [ruby/rdoc] [DOC] Add some links in intro; delimit rendered HTML output. (https://github.com/ruby/rdoc/pull/904) https://github.com/ruby/rdoc/commit/c02645364f commit 90cf767d158db06312a82c468a2bbf37f63bcb7a Author: Nobuyoshi Nakada AuthorDate: 2022-07-28 09:10:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-28 23:46:07 +0900 Fix format-pedantic warnings commit 94c3d528e7d1dc86ecafc6b992f16d062a17f015 Author: Nobuyoshi Nakada AuthorDate: 2022-07-28 00:31:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-28 23:46:07 +0900 Fix conversion of `rb_ractor_id()` commit c38ad2aeb55aadd4a697f9541efac1fe30fd6891 Author: Nobuyoshi Nakada AuthorDate: 2022-07-28 00:25:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-28 23:46:06 +0900 Fix format specifier for `rb_ractor_id()` commit 229cf263df8ae5020b959724b26ac7ecc5e7e122 Author: Peter Zhu AuthorDate: 2022-07-28 03:05:31 +0900 Commit: Peter Zhu CommitDate: 2022-07-28 23:02:12 +0900 Lock the VM for rb_gc_writebarrier_unprotect When using Ractors, rb_gc_writebarrier_unprotect requries a VM lock since it modifies the bitmaps. Notes: Merged: https://github.com/ruby/ruby/pull/6192 commit 1c16645216b6db04ccb1144e6f7e085e1e0a6132 Author: Peter Zhu AuthorDate: 2022-07-28 00:26:31 +0900 Commit: Peter Zhu CommitDate: 2022-07-28 23:02:12 +0900 Make array slices views rather than copies Before this commit, if the slice fits in VWA, it would make a copy rather than a view. This is slower as it requires a memcpy of the contents. Notes: Merged: https://github.com/ruby/ruby/pull/6192 commit 2375afb8d6fd218cd9083749d87a7a59946d8938 Author: Peter Zhu AuthorDate: 2022-07-28 00:18:29 +0900 Commit: Peter Zhu CommitDate: 2022-07-28 23:02:12 +0900 Refactor gc_ref_update_array Notes: Merged: https://github.com/ruby/ruby/pull/6192 commit 3eade599194dac960bc5b81c3f1bcff4a460b959 Author: Hiroshi SHIBATA AuthorDate: 2022-07-28 19:45:15 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-28 19:45:15 +0900 Skip randomly failing tests with FreeBSD 12 commit d448ecc7b11274e2e5d924a42693788141fad753 Author: Hiroshi SHIBATA AuthorDate: 2022-07-28 19:25:52 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-28 19:25:52 +0900 Fix the missing brackets commit 202ce7de01e051fca01c683833e4294d79ef87bb Author: Hiroshi SHIBATA AuthorDate: 2022-07-28 19:14:01 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-28 19:14:01 +0900 test_io_console.rbL399 is also randomly failing same as bfc697f1e26f1406c45ec7309ca0d4c0b5ecedd6 commit 98e01c991433a6785fac3d750114b5b3cb70710d Author: Hiroshi SHIBATA AuthorDate: 2022-07-28 19:10:24 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-28 19:10:24 +0900 Also skip the failing test similar with a343952d195a324dd4563318d8f88b167316ce5d commit 2b9374768f9f93129e5c4b7aaedfa785d041cbb1 Author: Nobuyoshi Nakada AuthorDate: 2022-07-28 09:17:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-28 16:05:48 +0900 `RUBY_DEBUG_LOG2` should filter against the given `file` commit bee5089d6789401f265f87b2f23f1bd7ec63cec8 Author: Takashi Kokubun AuthorDate: 2022-07-28 13:29:14 +0900 Commit: GitHub CommitDate: 2022-07-28 13:29:14 +0900 Try reproducing the MinGW hang on time command (#6168) to see if it really exits correctly. GitHub Support asked me to confirm the command is exiting correctly. Notes: Merged-By: k0kubun commit 5d5c1d0fbdf18b1fc4d5b74499ddba532adb6bc6 Author: Nobuyoshi Nakada AuthorDate: 2022-07-28 01:42:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-28 09:06:42 +0900 Suppress use-after-free warning by gcc-12 commit 431fdc9200ce28fcd10efb96fda869bb874fb2d0 Author: Nobuyoshi Nakada AuthorDate: 2022-07-28 09:02:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-28 09:02:23 +0900 [DOC] Cross references for `ARGF` commit 4ad69899b7db1e384665dec090d5cdc0c3b3c9b2 Author: Jeremy Evans AuthorDate: 2022-07-28 07:29:00 +0900 Commit: Jeremy Evans CommitDate: 2022-07-28 07:29:00 +0900 Fix documentation for ARGF.inplace_mode{,=} The value affects the name of the backup file created, not the name of the file modified (as the file is modified in place). Fixes [Bug #18920] commit 6582df26dcdef5dab01242b4d97d9b242e959860 Author: Benoit Daloze AuthorDate: 2022-07-28 00:18:25 +0900 Commit: Benoit Daloze CommitDate: 2022-07-28 00:18:25 +0900 Update to ruby/spec@cbfaf51 commit 44f42413e6c3c2b487a03b53bf6cacbb83ac285b Author: Benoit Daloze AuthorDate: 2022-07-28 00:18:23 +0900 Commit: Benoit Daloze CommitDate: 2022-07-28 00:18:23 +0900 Update to ruby/mspec@290e36a commit 70a9328b791f46a16e0f2d85db28b893a6ceed5b Author: Matt Valentine-House AuthorDate: 2022-07-27 21:18:25 +0900 Commit: Peter Zhu CommitDate: 2022-07-27 22:16:04 +0900 [ci-skip]Document how to run an individual bootstrap test Notes: Merged: https://github.com/ruby/ruby/pull/6190 commit 64c8291c7e7b6c5e1357c48ab4edb0f434ef1739 Author: Nobuyoshi Nakada AuthorDate: 2022-07-27 14:11:50 +0900 Commit: git[bot] CommitDate: 2022-07-27 21:05:10 +0900 [ruby/pathname] Fix `autoload` of `FileUtils` Should not be `Pathname::FileUtils`. https://github.com/ruby/pathname/commit/d1eb366e73 commit 464f73a5f0c1042bfefdd367b330cbdcafffca95 Author: Nobuyoshi Nakada AuthorDate: 2022-07-27 17:36:45 +0900 Commit: GitHub CommitDate: 2022-07-27 17:36:45 +0900 Do not load library files from repository only for test What we want to test should be the bundled and to be installed files, but not the upstream. Notes: Merged: https://github.com/ruby/ruby/pull/6188 Merged-By: nobu commit 8154b176dee18284772d58c817851bd988e58742 Author: Hiroshi SHIBATA AuthorDate: 2022-07-27 14:17:19 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-27 14:17:19 +0900 Manually sync with https://github.com/ruby/date/pull/64 commit c3d9849df9759caf298e4d0edca1e59f16e153d1 Author: moe AuthorDate: 2022-07-25 20:40:04 +0900 Commit: git[bot] CommitDate: 2022-07-27 05:39:40 +0900 [rubygems/rubygems] Add ignore_funding_requests config flag https://github.com/rubygems/rubygems/commit/ab302f72c9 commit 64f9f7d855a0367c4518e9a2a4cd26e0d0344856 Author: Burdette Lamar AuthorDate: 2022-07-27 05:06:52 +0900 Commit: git[bot] CommitDate: 2022-07-27 05:06:56 +0900 [ruby/rdoc] [DOC] Clarifications for directives (https://github.com/ruby/rdoc/pull/903) - Former section "Directives in Trailing Comments" is reworked. The important thing about a directive is what it does, not whether it's trailing or stand-alone. Therefore I've worked the directives in the former section into the appropriate sections, based on function. - Each directive is now explicitly marked as trailing or stand-alone. - C-code directives are mentioned only for those directives that actually appear in our ruby/ruby C files, which are :startdoc:, :stopdoc:, :enddoc:, :include:, and :call-seq:. What effect, if any, other directives have in C, I'm not sure about. https://github.com/ruby/rdoc/commit/b00978bfa5 commit b4ae144e19ea5d784dfd0ed7d486c7f533d58f01 Author: David Rodríguez AuthorDate: 2022-07-23 17:25:22 +0900 Commit: git[bot] CommitDate: 2022-07-27 04:56:34 +0900 [rubygems/rubygems] Don't use Pathname for creating extension dir Not sure why, but I run into the following flaky test failure ```` (...) Invoking `/Users/deivid/.asdf/installs/ruby/3.1.2/bin/ruby -I/Users/deivid/Code/rubygems/rubygems/bundler/spec -r/Users/deivid/Code/rubygems/rubygems/bundler/spec/support/artifice/fail.rb -r/Users/deivid/Code/rubygems/rubygems/bundler/spec/support/hax.rb /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/bin/bundle install` failed with output: ---------------------------------------------------------------------- --- ERROR REPORT TEMPLATE ------------------------------------------------------- ``` NameError: constant Pathname::FileUtils not defined FileUtils.mkpath(@path, mode: mode) ^^^^^^^^^ /Users/deivid/.asdf/installs/ruby/3.1.2/lib/ruby/3.1.0/pathname.rb:585:in `mkpath' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/shared_helpers.rb:103:in `filesystem_access' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/rubygems_gem_installer.rb:78:in `build_extensions' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/rubygems_gem_installer.rb:28:in `install' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/source/rubygems.rb:207:in `install' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/installer/gem_installer.rb:54:in `install' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/installer/parallel_installer.rb:186:in `do_install' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/installer/parallel_installer.rb:177:in `block in worker_pool' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/worker.rb:62:in `apply_func' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/worker.rb:57:in `block in process_queue' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/worker.rb:54:in `loop' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/worker.rb:54:in `process_queue' /Users/deivid/Code/rubygems/rubygems/bundler/tmp/4/gems/system/gems/bundler-2.4.0.dev/lib/bundler/worker.rb:91:in `block (2 levels) in create_threads' (...) ``` Whatever it was, this small change should fix it. https://github.com/rubygems/rubygems/commit/71d7503ce4 commit 6a69807576b911dd9d5a81befe08a7c3bb870b85 Author: David Rodríguez AuthorDate: 2021-11-18 00:45:50 +0900 Commit: git[bot] CommitDate: 2022-07-27 03:08:36 +0900 [rubygems/rubygems] Completely drop base parameter from index This parameter was coupling the concept of lockfile with the index. I don't think it's necessary. Also I believe it's causing some flaky test failures, which might leak into realworld issues. They are like this: ```` Invoking `/opt/hostedtoolcache/Ruby/3.0.4/x64/bin/ruby -I/home/runner/work/rubygems/rubygems/bundler/spec -r/home/runner/work/rubygems/rubygems/bundler/spec/support/artifice/fail.rb -r/home/runner/work/rubygems/rubygems/bundler/spec/support/hax.rb /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle lock` failed with output: ---------------------------------------------------------------------- --- ERROR REPORT TEMPLATE ------------------------------------------------------- ``` NoMethodError: undefined method `identifier' for #, @authors=["no one"], @bindir="bin", @cert_chain=[], @dependencies=[], @executables=[], @extensions=[], @extra_rdoc_files=[], @files=[], @licenses=[], @metadata={}, @platform="ruby", @rdoc_options=[], @require_paths=["lib"], @required_ruby_version=#=", #]]>, @required_rubygems_version=#=", #]]>, @requirements=[], @rubygems_version="3.2.33", @specification_version=4, @test_files=[], @new_platform="ruby", @full_name="win32-process-0.8.3", @has_rdoc=true, @license=["MIT"] win32-process-0.8.3> /home/runner/work/rubygems/rubygems/bundler/tmp/rubygems/lib/rubygems/specification.rb:2116:in `method_missing' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/remote_specification.rb:115:in `method_missing' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/lazy_specification.rb:34:in `eql?' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/index.rb:189:in `eql?' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/index.rb:189:in `search_by_dependency' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/index.rb:96:in `local_search' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/index.rb:64:in `unsorted_search' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/index.rb:60:in `search' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:179:in `results_for' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:113:in `search_for' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:216:in `block in sort_dependencies' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:207:in `each' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:207:in `sort_by' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:207:in `sort_dependencies' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb:60:in `block in sort_dependencies' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb:77:in `with_no_such_dependency_error_handling' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb:59:in `sort_dependencies' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:754:in `push_state_for_requirements' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:744:in `require_nested_dependencies_for' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:727:in `activate_new_spec' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:684:in `attempt_to_activate' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:254:in `process_topmost_state' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb:182:in `resolve' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb:43:in `resolve' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:50:in `start' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/resolver.rb:24:in `resolve' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/definition.rb:480:in `reresolve' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/definition.rb:283:in `resolve' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/definition.rb:181:in `resolve_remotely!' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli/lock.rb:53:in `run' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:674:in `lock' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:31:in `dispatch' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/cli.rb:25:in `start' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/exe/bundle:48:in `block in ' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.4.0.dev/exe/bundle:36:in `' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:23:in `load' /home/runner/work/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:23:in `
' ``` ```` I think the issue is that now we eagerly materialize some base specifications before resolving in order to give better errors if user specified an incorrect source in the Gemfile. This means that the key for the index hash will have heterogeneous specification objects (some LazySpecification, some real Specification), and `LazySpecification#eql?` is incompatible with that. By dropping the base parameter from the index, we should no longer have these heterogenous objects as hash keys. https://github.com/rubygems/rubygems/commit/dc179d41c3 commit 36d0c71acef5e80384c13f9b43419318d2127306 Author: Jemma Issroff AuthorDate: 2022-05-25 23:17:04 +0900 Commit: Aaron Patterson CommitDate: 2022-07-27 01:39:31 +0900 Refactored poisoning and unpoisoning freelist to simpler API commit 33f9e8f4ea451d33d789d9345599657347d92e96 Author: Peter Zhu AuthorDate: 2022-07-27 01:31:47 +0900 Commit: Peter Zhu CommitDate: 2022-07-27 01:31:47 +0900 Add doc/rdoc directory to .document Adding the doc/rdoc directory to .document will allow files in that directory to be included in the documentation. commit 163e3f075f71342fa5897beedf771e3e878876de Author: David Rodríguez AuthorDate: 2022-07-26 01:22:56 +0900 Commit: git[bot] CommitDate: 2022-07-27 01:04:11 +0900 [rubygems/rubygems] Use main as default branch for Bundler specs https://github.com/rubygems/rubygems/commit/482077d185 commit 4325e90205aa4cd0ea031df1b5e6334bfd9c7e51 Author: Peter Zhu AuthorDate: 2022-07-25 23:47:49 +0900 Commit: Peter Zhu CommitDate: 2022-07-26 22:12:09 +0900 Use rb_ary_hidden_new for rb_ary_hidden_new_fill Notes: Merged: https://github.com/ruby/ruby/pull/6180 commit efb91ff19b739b759f40af2673f942e80d212857 Author: Peter Zhu AuthorDate: 2022-07-25 23:40:45 +0900 Commit: Peter Zhu CommitDate: 2022-07-26 22:12:09 +0900 Rename rb_ary_tmp_new to rb_ary_hidden_new rb_ary_tmp_new suggests that the array is temporary in some way, but that's not true, it just creates an array that's hidden and not on the transient heap. This commit renames it to rb_ary_hidden_new. Notes: Merged: https://github.com/ruby/ruby/pull/6180 commit 3f70aa6504d4c63a3cc928c52d6cf88dafffb40d Author: Peter Zhu AuthorDate: 2022-07-25 23:29:10 +0900 Commit: Peter Zhu CommitDate: 2022-07-26 22:12:09 +0900 Remove ary_discard ary_discard should not be used as it should be handled by the GC. The only user of ary_discard is rb_ary_product, which doesn't neeed to use ary_discard. Notes: Merged: https://github.com/ruby/ruby/pull/6180 commit 456e1d1eaa9bb11adaed1acde488d7da3c88704b Author: Nobuyoshi Nakada AuthorDate: 2022-07-26 19:42:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-26 21:12:58 +0900 Try the tag without "v" prefix to checkout upstream repositories commit 9a8f6e392fbd9c145566ae18fa2128ef96369430 Author: Kevin Menard AuthorDate: 2022-07-26 10:04:03 +0900 Commit: Jean Boussier CommitDate: 2022-07-26 16:03:44 +0900 Cheaply derive code range for String#b return value The result of String#b is a string with an ASCII_8BIT/BINARY encoding. That encoding is ASCII-compatible and has no byte sequences that are invalid for the encoding. If we know the receiver's code range, we can derive the resulting string's code range without needing to perform a full code range scan. Notes: Merged: https://github.com/ruby/ruby/pull/6183 commit 9e6d07f3462d29f340114650da9f13a36b866d5f Author: Hiroshi SHIBATA AuthorDate: 2022-07-26 13:43:48 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-26 14:38:17 +0900 Merge rubygems/bundler HEAD Merge from https://github.com/rubygems/rubygems/commit/2af2520b4a7ab1c6eb1fdc3d2ef4d8c062d96ad7 Notes: Merged: https://github.com/ruby/ruby/pull/6184 commit b404a5f106d13e25708c163c91e117b2e106b70c Author: Hiroshi SHIBATA AuthorDate: 2022-07-26 13:41:51 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-26 13:42:37 +0900 8fa66467de is broken with rubygems/rubygems and flori/json. Revert "Fix sync_default_gems.rb to use absolute path" This reverts commit 8fa66467de82f787ead9dd901ad06694c79d88dc. commit 649bfbe00d8032fa2c0536e596a284f69926e87f Author: Ivo Anjo AuthorDate: 2022-07-11 22:51:44 +0900 Commit: Yusuke Endoh CommitDate: 2022-07-26 10:43:44 +0900 Fix `rb_profile_frames` output includes dummy main thread frame The `rb_profile_frames` API did not skip the two dummy frames that each thread has at its beginning. This was unlike `backtrace_each` and `rb_ec_parcial_backtrace_object`, which do skip them. This does not seem to be a problem for non-main thread frames, because both `VM_FRAME_RUBYFRAME_P(cfp)` and `rb_vm_frame_method_entry(cfp)` are NULL for them. BUT, on the main thread `VM_FRAME_RUBYFRAME_P(cfp)` was true and thus the dummy thread was still included in the output of `rb_profile_frames`. I've now made `rb_profile_frames` skip this extra frame (like `backtrace_each` and friends), as well as add a test that asserts the size and contents of `rb_profile_frames`. Fixes [Bug #18907] () Notes: Merged: https://github.com/ruby/ruby/pull/6114 commit cc29b43c7a8079c0c9e308f049390dfaab5acbd9 Author: Burdette Lamar AuthorDate: 2022-07-26 06:31:33 +0900 Commit: git[bot] CommitDate: 2022-07-26 06:31:36 +0900 [ruby/rdoc] Move section Directives into section Blocks (https://github.com/ruby/rdoc/pull/901) https://github.com/ruby/rdoc/commit/e48e07ef53 commit ba098fa151bd842215d4840107b57fc0253c7ecf Author: Peter Zhu AuthorDate: 2022-07-26 04:51:08 +0900 Commit: Peter Zhu CommitDate: 2022-07-26 05:29:14 +0900 Sync RDoc Notes: Merged: https://github.com/ruby/ruby/pull/6182 commit 8fa66467de82f787ead9dd901ad06694c79d88dc Author: Peter Zhu AuthorDate: 2022-07-26 04:49:11 +0900 Commit: Peter Zhu CommitDate: 2022-07-26 05:29:14 +0900 Fix sync_default_gems.rb to use absolute path Notes: Merged: https://github.com/ruby/ruby/pull/6182 commit 43c11f6c4973e5e79043c90faee1ffc2019becc2 Author: Burdette Lamar AuthorDate: 2022-07-26 04:58:41 +0900 Commit: GitHub CommitDate: 2022-07-26 04:58:41 +0900 For rdoc, copy doc/rdoc to doc/ (#6181) Notes: Merged-By: BurdetteLamar commit 63330ae4ac4b153f2ef370a5d25e93231e15f064 Author: Jemma Issroff AuthorDate: 2022-05-27 04:39:07 +0900 Commit: Aaron Patterson CommitDate: 2022-07-26 04:08:58 +0900 Change ROBJECT_TRANSIENT_FLAG to use FL_USER2 Notes: Merged: https://github.com/ruby/ruby/pull/5956 commit 979368b47c20293a0e8311d23832d6e8db0d6b3c Author: Takuya Noguchi AuthorDate: 2022-07-25 19:58:02 +0900 Commit: git[bot] CommitDate: 2022-07-25 21:37:13 +0900 [rubygems/rubygems] Bundler: add deprecation notice of viz to man Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/0e1cbfa598 commit 31a5586d1e007d04cfa10548d9bfb42b2787a7a0 Author: Jean Boussier AuthorDate: 2022-07-22 00:08:51 +0900 Commit: Jean Boussier CommitDate: 2022-07-25 21:18:52 +0900 rb_str_buf_append: add a fast path for ENC_CODERANGE_VALID If the RHS has valid encoding, and both strings have the same encoding, we can use the fast path. However we need to update the LHS coderange. ``` compare-ruby: ruby 3.2.0dev (2022-07-21T14:46:32Z master cdbb9b8555) [arm64-darwin21] built-ruby: ruby 3.2.0dev (2022-07-25T07:25:41Z string-concat-vali.. 11a2772bdd) [arm64-darwin21] warming up... | |compare-ruby|built-ruby| |:-------------------|-----------:|---------:| |binary_concat_7bit | 554.816k| 556.460k| | | -| 1.00x| |utf8_concat_7bit | 556.367k| 555.101k| | | 1.00x| -| |utf8_concat_UTF8 | 412.555k| 556.824k| | | -| 1.35x| ``` Notes: Merged: https://github.com/ruby/ruby/pull/6163 commit f61dd38e5c85abc8c403851b1cbc3d3b04b67dbb Author: Nobuyoshi Nakada AuthorDate: 2022-07-25 18:43:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-25 18:50:08 +0900 Wait the test thread to sleep Revert "Synchronize the test thread sleep" This reverts commit 307835fe314fea6e946a8c9b25bb3912680ed7d1. commit 307835fe314fea6e946a8c9b25bb3912680ed7d1 Author: Nobuyoshi Nakada AuthorDate: 2022-07-25 12:01:09 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-25 12:01:09 +0900 Synchronize the test thread sleep Notes: Merged: https://github.com/ruby/ruby/pull/6176 commit b30b727c243ad009a7f8435b559b466418874140 Author: Nobuyoshi Nakada AuthorDate: 2022-07-25 00:01:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-25 09:18:36 +0900 Fix format specifier `uintptr_t` is not always `unsigned long`, but can be casted to void pointer safely. commit 91c05b34cd9ca9120c4a5e5e9fe772f2f0d1f6a3 Author: Nobuyoshi Nakada AuthorDate: 2022-07-17 08:56:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-25 08:50:07 +0900 Bundled gems test needs `prepare-gems` `prepare-gems` downloads and extracts the bundled gems, and these gems are built by `build-exts` now. Notes: Merged: https://github.com/ruby/ruby/pull/6175 commit b291c972fa36e05107d13eea25cc445db4b4bec3 Author: Nobuyoshi Nakada AuthorDate: 2022-07-16 02:08:06 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-25 08:50:07 +0900 Use built bundled gems in test-bundled-gems Notes: Merged: https://github.com/ruby/ruby/pull/6175 commit 6af7212004c0b98f09350b53a032f94f3a1e666c Author: Nobuyoshi Nakada AuthorDate: 2022-07-24 22:19:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-24 22:32:07 +0900 Make extensions under `Gem.extension_api_version` directory Notes: Merged: https://github.com/ruby/ruby/pull/6174 commit e0a7e5e13141a06103673b9d4ff21ca864ec38f9 Author: Nobuyoshi Nakada AuthorDate: 2022-07-24 16:35:38 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-24 16:36:33 +0900 Kill bundled gem tests when interrupted Notes: Merged: https://github.com/ruby/ruby/pull/6173 commit 1cd487d785a415c68be30498f5fbff33b9e5b7e6 Author: Kaíque Kandy Koga AuthorDate: 2022-07-24 08:47:40 +0900 Commit: Jeremy Evans CommitDate: 2022-07-24 08:57:09 +0900 [DOC] IO#eof Use IO#eof? instead of I#eof? Notes: Merged: https://github.com/ruby/ruby/pull/6172 commit 721d154e2f81c65bd7f1bfd9eff6759b015b123e Author: Nobuyoshi Nakada AuthorDate: 2022-07-23 21:42:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-23 21:42:05 +0900 Remove duplicate code for internal arrays Internal arrays are now created hidden from the start. commit 98a8a496bab077b22290dd25d7f8453d1e73a1ac Author: Peter Zhu AuthorDate: 2022-07-23 04:44:32 +0900 Commit: Peter Zhu CommitDate: 2022-07-23 04:44:32 +0900 Use rb_ary_tmp_new only for internal arrays rb_ary_tmp_new sets the klass to 0, so it should only be used for internal arrays. commit 244bda7efd507657ada6f18e800d852d1a1569f4 Author: Ashley Ellis Pierce AuthorDate: 2022-07-23 02:11:52 +0900 Commit: git[bot] CommitDate: 2022-07-23 03:42:59 +0900 [rubygems/rubygems] Display mfa warnings on gem signin https://github.com/rubygems/rubygems/commit/4dc77b7099 Co-authored-by: Jenny Shen commit e199ae3edcead0271c6da3410eb02acd927739b7 Author: Peter Zhu AuthorDate: 2022-07-23 00:04:43 +0900 Commit: Peter Zhu CommitDate: 2022-07-23 02:29:21 +0900 Remove reference counting for all frozen arrays The RARRAY_LITERAL_FLAG was added in commit 5871ecf956711fcacad7c03f2aef95115ed25bc4 to improve CoW performance for array literals by not keeping track of reference counts. This commit reverts that commit and has an alternate implementation that is more generic for all frozen arrays. Since frozen arrays cannot be modified, we don't need to set the RARRAY_SHARED_ROOT_FLAG and we don't need to do reference counting. Notes: Merged: https://github.com/ruby/ruby/pull/6171 commit d77633a6952dc081b4901daf903b064fb8e26c24 Author: Takuya Noguchi AuthorDate: 2022-07-22 20:18:00 +0900 Commit: git[bot] CommitDate: 2022-07-23 00:24:37 +0900 [rubygems/rubygems] Bundler: update command example in bundle-exec(1) Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/28bf5c8b33 commit b3be03074066f0c8ff87942a8dd68578f480f27b Author: st0012 AuthorDate: 2022-07-21 19:15:39 +0900 Commit: git[bot] CommitDate: 2022-07-22 23:34:49 +0900 [ruby/reline] Rename dialog_pointer_* to dialog_highlight_* "Pointer" is not what we usually use to describe a selected item. "Highlight" is a more common word for the scenario so we should use it instead. https://github.com/ruby/reline/commit/b4279d1557 commit 8f7e18882269ef3747312a390b06f02f7e2c98eb Author: Yusuke Endoh AuthorDate: 2022-07-22 16:57:25 +0900 Commit: Yusuke Endoh CommitDate: 2022-07-22 23:10:24 +0900 Add "rb_" prefixes to toplevel enum definitions ... as per ko1's request. Notes: Merged: https://github.com/ruby/ruby/pull/6169 commit e763b1118ba1fada81d37da558f9d8e4da99f144 Author: Yusuke Endoh AuthorDate: 2022-07-22 16:49:08 +0900 Commit: Yusuke Endoh CommitDate: 2022-07-22 23:10:24 +0900 Move enum definitions out of struct definition Notes: Merged: https://github.com/ruby/ruby/pull/6169 commit c6734edc345c04d887e9183672f32f1d953c41d2 Author: Takuya Noguchi AuthorDate: 2022-07-22 16:58:34 +0900 Commit: git[bot] CommitDate: 2022-07-22 21:01:45 +0900 [rubygems/rubygems] Remove bundle show from obsolete commands Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/6c07c9427b commit a4e890b93e826b923175f4eb9b05823e82fb1fb1 Author: Nobuyoshi Nakada AuthorDate: 2022-07-22 12:27:21 +0900 Commit: git[bot] CommitDate: 2022-07-22 21:01:31 +0900 [rubygems/rubygems] Use `SystemExit#status` as `exit_code` No reasons to manage separately. https://github.com/rubygems/rubygems/commit/8ede5c886e commit 55c771c302f94f1d1d95bf41b42459b4d2d1c337 Author: Hiroshi SHIBATA AuthorDate: 2022-07-22 14:40:48 +0900 Commit: git[bot] CommitDate: 2022-07-22 16:24:29 +0900 [rubygems/rubygems] rubygems.rb is required by gem_runner.rb https://github.com/rubygems/rubygems/commit/503f763865 commit fe770716978e0f53ebfbd4ce18834ba512da6914 Author: Hiroshi SHIBATA AuthorDate: 2022-07-22 14:36:00 +0900 Commit: git[bot] CommitDate: 2022-07-22 16:24:29 +0900 [rubygems/rubygems] Removed needless value assignment https://github.com/rubygems/rubygems/commit/5825c4c2e8 commit 5904895cf5923559186859ff2183dfb386577058 Author: Takuya Noguchi AuthorDate: 2022-07-21 06:49:20 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-22 12:09:04 +0900 Add .git-blame-ignore-revs Signed-off-by: Takuya Noguchi commit d7ffd3fea402239b16833cc434404a7af82d44f3 Author: Takuya Noguchi AuthorDate: 2022-07-17 17:08:51 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-22 12:07:23 +0900 RubyGems: Enable Style/StringLiterals cop Signed-off-by: Takuya Noguchi commit 388c4e1076ac5a58d5008abc8e0a8d017698875a Author: Akinori MUSHA AuthorDate: 2020-10-22 03:46:18 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-22 12:06:05 +0900 Make Gem::SystemExitException properly exit with a given code The cause was in how Gem::SystemExitException initializes itself. It didn't pass an exit code to the super method. See the document of SystemExit.new() for details. Notes: Merged: https://github.com/ruby/ruby/pull/6167 commit 6b749968103e2e91f4d8d2957900ac9ac06cf2ee Author: Kenyon Ralph AuthorDate: 2019-01-18 17:24:30 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-22 12:06:05 +0900 bin/gem: remove initial empty line Notes: Merged: https://github.com/ruby/ruby/pull/6167 commit b4876c8e5f3753c15eb43ee2872b7c0a914456ff Author: Hiroshi SHIBATA AuthorDate: 2019-01-04 14:26:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-22 12:06:05 +0900 Removed needless condition for old versions of Ruby. Notes: Merged: https://github.com/ruby/ruby/pull/6167 commit 1ed7ab29b3149f7f6b85ce89aa91d95cd12345b6 Author: bronzdoc AuthorDate: 2018-11-20 02:55:22 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-22 12:06:05 +0900 Enable Style/MultilineIfThen in Rubocop Notes: Merged: https://github.com/ruby/ruby/pull/6167 commit 3b67c161cd6b5f7f4fac134c51f414599da9e7e0 Author: David Rodríguez AuthorDate: 2018-11-14 07:17:34 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-22 12:06:05 +0900 Remove trailing blank lines Notes: Merged: https://github.com/ruby/ruby/pull/6167 commit 030c41bf557870cfdff9c818e8684451cac78163 Author: John Labovitz AuthorDate: 2016-11-03 23:21:57 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-22 12:06:05 +0900 Improve user-facing messages by consistent casing of Ruby/RubyGems (when it referred to the general concept and not a path), single-spacing between sentences, and a few other small issues. Notes: Merged: https://github.com/ruby/ruby/pull/6167 commit c6aa65430fbb94651f4d15e2a976f59b5475ca19 Author: Nobuyoshi Nakada AuthorDate: 2022-07-22 10:41:44 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-22 10:41:44 +0900 Get rid of magic numbers Notes: Merged: https://github.com/ruby/ruby/pull/6166 commit cf7d07570f50ef9c16007019afcff11ba6500d70 Author: Nobuyoshi Nakada AuthorDate: 2022-07-22 09:54:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-22 09:56:48 +0900 Dump non-ASCII char as unsigned Non-ASCII code may be negative on platforms plain char is signed. Notes: Merged: https://github.com/ruby/ruby/pull/6166 commit 7223c0da152114c84e1c4261a282faaea21646fb Author: Jeremy Evans AuthorDate: 2022-05-27 04:22:42 +0900 Commit: Jeremy Evans CommitDate: 2022-07-22 04:55:24 +0900 Do not chomp trailing line separator IO#each with nil separator and chomp nil separator means no sepator, so chomp should not remove a line separator. Partially Fixes [Bug #18770] Notes: Merged: https://github.com/ruby/ruby/pull/6164 commit 3a5ea7c688b5c029ee8f69d84f49bc10b817714e Author: Peter Zhu AuthorDate: 2022-07-22 04:49:26 +0900 Commit: Peter Zhu CommitDate: 2022-07-22 04:49:26 +0900 Remove unused variable in array.c array.c:460:14: warning: unused variable 'len' [-Wunused-variable] long len = ARY_HEAP_LEN(ary); commit 9d862011e82b04bf21b26ebe4b472e8ef801dfef Author: Peter Zhu AuthorDate: 2022-07-22 04:16:06 +0900 Commit: Peter Zhu CommitDate: 2022-07-22 04:17:59 +0900 Remove check for shared root arrays All shared root arrays should not be on the transient heap. ary_make_shared evacuates arrays from the transient heap when creating shared roots. commit f0ae583a3d64d3a9d94a193cb999d87b32c8b87b Author: Jean byroot Boussier AuthorDate: 2022-07-22 02:55:02 +0900 Commit: Jean Boussier CommitDate: 2022-07-22 02:56:08 +0900 Revert "objspace_dump.c: skip dumping method name if not pure ASCII" This reverts commit 79406e3600862bbb6dcdd7c5ef8de1978e6f916c. Notes: Merged: https://github.com/ruby/ruby/pull/6165 commit 79406e3600862bbb6dcdd7c5ef8de1978e6f916c Author: Jean Boussier AuthorDate: 2022-07-21 21:50:44 +0900 Commit: Jean Boussier CommitDate: 2022-07-22 01:43:45 +0900 objspace_dump.c: skip dumping method name if not pure ASCII Sidekiq has a method named `❨╯°□°❩╯︵┻━┻`which corrupts heap dumps. Normally we could just dump is as is since it's valid UTF-8 and need no escaping. But our code to escape control characters isn't UTF-8 aware so it's more complicated than it seems. Ultimately since the overwhelming majority of method names are pure ASCII, it's not a big loss to just skip it. Notes: Merged: https://github.com/ruby/ruby/pull/6161 commit 3ff53c8e04ecc91e0190de6d5950ecce2a2ea188 Author: Peter Zhu AuthorDate: 2022-07-21 23:53:28 +0900 Commit: Peter Zhu CommitDate: 2022-07-22 00:49:24 +0900 Remove macOS 10.15 from CI macOS 10.15 is deprecated on GitHub Actions and will have periodic brownouts. See actions/virtual-environments#5583. Notes: Merged: https://github.com/ruby/ruby/pull/6162 commit 203f179ce7d1bde0befb8d12148aa392ad45ac56 Author: Jeremy Evans AuthorDate: 2022-07-22 00:29:50 +0900 Commit: Jeremy Evans CommitDate: 2022-07-22 00:29:50 +0900 Revert "Do not chomp trailing line separator IO#each with nil separator and chomp" This reverts commit 04f86ad0b5d2fe4711ff300d855228a6aed55f33. This is causing CI issues, reverting for now. commit 12ac8971a394118a57640299f654e46e763093fa Author: Jeremy Evans AuthorDate: 2022-06-21 07:51:05 +0900 Commit: Jeremy Evans CommitDate: 2022-07-22 00:28:05 +0900 Do not have class/module keywords look up ancestors of Object Fixes case where Object includes a module that defines a constant, then using class/module keyword to define the same constant on Object itself. Implements [Feature #18832] Notes: Merged: https://github.com/ruby/ruby/pull/6048 commit 04f86ad0b5d2fe4711ff300d855228a6aed55f33 Author: Jeremy Evans AuthorDate: 2022-05-27 04:22:42 +0900 Commit: Jeremy Evans CommitDate: 2022-07-22 00:13:40 +0900 Do not chomp trailing line separator IO#each with nil separator and chomp nil separator means no sepator, so chomp should not remove a line separator. Partially Fixes [Bug #18770] Notes: Merged: https://github.com/ruby/ruby/pull/5959 commit 423b41cba77719b4f62aa530593ad36a990f7c74 Author: Jeremy Evans AuthorDate: 2022-05-27 05:25:22 +0900 Commit: Jeremy Evans CommitDate: 2022-07-22 00:02:32 +0900 Make String#each_line work correctly with paragraph separator and chomp Previously, it was including one newline when chomp was used, which is inconsistent with IO#each_line behavior. This makes behavior consistent with IO#each_line, chomping all paragraph separators (multiple consecutive newlines), but not single newlines. Partially Fixes [Bug #18768] Notes: Merged: https://github.com/ruby/ruby/pull/5960 commit cdbb9b8555b4ddcc4c557f25ad785cae6209478d Author: Peter Zhu AuthorDate: 2022-07-21 02:29:34 +0900 Commit: Peter Zhu CommitDate: 2022-07-21 23:46:32 +0900 [Bug #18929] Fix heap creation thrashing in GC Before this commit, if we don't have enough slots after sweeping but had pages on the tomb heap, then the GC would frequently allocate and deallocate pages. This is because after sweeping it would set allocatable pages (since there were not enough slots) but free the pages on the tomb heap. This commit reuses pages on the tomb heap if there's not enough slots after sweeping. Notes: Merged: https://github.com/ruby/ruby/pull/6156 commit 804b073573eb180f12e77a0e3840f04d6eac86aa Author: Nobuyoshi Nakada AuthorDate: 2022-07-21 19:52:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-21 22:32:33 +0900 Update common sources including id.h after update Notes: Merged: https://github.com/ruby/ruby/pull/6159 commit f954c5dae4c144207bd366cbc832d08930882b23 Author: Jean Boussier AuthorDate: 2022-07-21 20:16:16 +0900 Commit: Jean Boussier CommitDate: 2022-07-21 22:06:50 +0900 string.c: use str_enc_fastpath in TERM_LEN Not having to fetch the rb_encoding save a significant amount of time. Additionally, even when we have to fetch it, we can do it faster using `ENCODING_GET` rather than `rb_enc_get`. ``` compare-ruby: ruby 3.2.0dev (2022-07-19T08:41:40Z master cb9fd920a3) [arm64-darwin21] built-ruby: ruby 3.2.0dev (2022-07-21T11:16:16Z faster-buffer-conc.. 4f001f0748) [arm64-darwin21] warming up... | |compare-ruby|built-ruby| |:---------------------|-----------:|---------:| |binary_concat_utf8 | 510.580k| 565.600k| | | -| 1.11x| |binary_concat_binary | 512.653k| 571.483k| | | -| 1.11x| |utf8_concat_utf8 | 511.396k| 566.879k| | | -| 1.11x| ``` Notes: Merged: https://github.com/ruby/ruby/pull/6160 commit 80672b2d0e0f8e3c43446f5833b1a3491460e215 Author: Peter Zhu AuthorDate: 2022-07-21 04:47:49 +0900 Commit: Peter Zhu CommitDate: 2022-07-21 22:02:45 +0900 Add comment in array.c about flags Notes: Merged: https://github.com/ruby/ruby/pull/6157 commit d67fcdcc9fec1b842f0f221d4bada32bdbb7220a Author: Peter Zhu AuthorDate: 2022-07-21 04:34:42 +0900 Commit: Peter Zhu CommitDate: 2022-07-21 22:02:45 +0900 Add RARRAY_SHARED_FLAG Notes: Merged: https://github.com/ruby/ruby/pull/6157 commit 1c9acb6bb1822f9d914b40dcea0b3ead849165cd Author: Peter Zhu AuthorDate: 2022-07-21 04:30:19 +0900 Commit: Peter Zhu CommitDate: 2022-07-21 22:02:45 +0900 Refactor macros of array.c Move some macros in array.c to internal/array.h so that other files can also access these macros. Notes: Merged: https://github.com/ruby/ruby/pull/6157 commit 4798a4fec213ce8a73a2d0d1c4ba879fb216ca3a Author: Peter Zhu AuthorDate: 2022-07-21 03:49:16 +0900 Commit: Peter Zhu CommitDate: 2022-07-21 22:02:45 +0900 Remove unused internal macros in rarray.h Notes: Merged: https://github.com/ruby/ruby/pull/6157 commit 86b29ef8773c7ff5eaf398e16ffb3ddcb8e37074 Author: Nobuyoshi Nakada AuthorDate: 2022-07-21 11:45:22 +0900 Commit: git[bot] CommitDate: 2022-07-21 11:45:48 +0900 [ruby/digest] Ignore test_ractor.rb on non-Ractor ruby https://github.com/ruby/digest/commit/352b8c1636 commit 4a7ecc1bd9135916fd4ca246a47926c32ce72508 Author: Nobuyoshi Nakada AuthorDate: 2022-07-21 09:57:53 +0900 Commit: git[bot] CommitDate: 2022-07-21 09:58:46 +0900 [ruby/digest] Find an available digest algorithm to test https://github.com/ruby/digest/commit/8844716793 commit 1341dea7711ae80aa4c232503fbb5a1be48b648b Author: Aaron Patterson AuthorDate: 2022-07-13 08:42:14 +0900 Commit: Aaron Patterson CommitDate: 2022-07-21 05:45:55 +0900 Prevent the stack from being marked twice This commit prevents the stack from being marked twice: once via the Fiber, and once via the Thread. It introduces an assertion to assert that the ec on the thread is the same as the ec on the Fiber being marked via the thread. Notes: Merged: https://github.com/ruby/ruby/pull/6123 commit 32e406d6d3c3ded9160298c4475c1aa188360b07 Author: Daniel Colson AuthorDate: 2022-07-03 09:28:39 +0900 Commit: John Hawthorn CommitDate: 2022-07-21 02:38:44 +0900 Ensure _id2ref finds symbols with the correct type Prior to this commit it was possible to call `ObjectSpace._id2ref` with an offset static symbol object_id and get back a new, incorrectly tagged symbol: ``` > sensible_sym = ObjectSpace._id2ref(:a.object_id) => :a > nonsense_sym = ObjectSpace._id2ref(:a.object_id + 40) => :a > sensible_sym == nonsense_sym => false ``` `nonsense_sym` ends up tagged with `RUBY_ID_INSTANCE` instead of `RB_ID_LOCAL`. That means we can do silly things like: ``` > foo = Object.new > foo.instance_variable_set(:a, 123) (irb):2:in `instance_variable_set': `a' is not allowed as an instance variable name (NameError) > foo.instance_variable_set(ObjectSpace._id2ref(:a.object_id + 40), 123) => 123 > foo.instance_variables => [:a] ``` This was happening because `get_id_entry` ignores the tag bits when looking up the symbol. So `rb_id2str(symid)` would return a value and then we'd continue on with the nonsense `symid`. This commit prevents the situation by checking that the `symid` actually matches what we get back from `get_id_entry`. Now we get a `RangeError` for the nonsense id: ``` > ObjectSpace._id2ref(:a.object_id) => :a > ObjectSpace._id2ref(:a.object_id + 40) (irb):1:in `_id2ref': 0x000000000013f408 is not symbol id value (RangeError) ``` Co-authored-by: John Hawthorn Notes: Merged: https://github.com/ruby/ruby/pull/6147 commit 5871ecf956711fcacad7c03f2aef95115ed25bc4 Author: Peter Zhu AuthorDate: 2022-07-20 00:15:05 +0900 Commit: Peter Zhu CommitDate: 2022-07-21 02:13:56 +0900 Add RARRAY_LITERAL_FLAG for array literals Array created as literals during iseq compilation don't need a reference count since they can never be modified. The previous implementation would mutate the hidden array's reference count, causing copy-on-write invalidation. This commit adds a RARRAY_LITERAL_FLAG for arrays created through rb_ary_literal_new. Arrays created with this flag do not have reference count stored and just assume they have infinite number of references. Co-authored-by: Jean Boussier Notes: Merged: https://github.com/ruby/ruby/pull/6151 commit 660b1e973c8d9ea09667a853a2777a1b8b5a2a58 Author: John Hawthorn AuthorDate: 2022-07-21 01:31:40 +0900 Commit: GitHub CommitDate: 2022-07-21 01:31:40 +0900 YJIT: Skip setlocal WB check for immediate values (#6122) Write barriers may be required when VM_ENV_FLAG_WB_REQUIRED is set, however write barriers only affect heap objects being written. If we know an immediate value is being written we can skip this check. Notes: Merged-By: maximecb commit 6140edb5df29bc9362ded379d6e2e72e4584d07a Author: Noah Gibbs AuthorDate: 2022-07-20 23:48:58 +0900 Commit: GitHub CommitDate: 2022-07-20 23:48:58 +0900 Match +YJIT in Ruby desc when testing segv (#6141) In test_bug_reporter and test_rubyoptions we intentionally test child processes that cause SEGV. We run them with YJIT if the parent uses YJIT so that the text description matches the parent RUBY_DESCRIPTION. Notes: Merged-By: maximecb commit 86d061294d3cc1656e18d0e1fd4b4f290da16944 Author: Peter Zhu AuthorDate: 2022-07-20 04:51:39 +0900 Commit: Peter Zhu CommitDate: 2022-07-20 21:40:31 +0900 [Bug #18928] Fix crash in WeakMap In wmap_live_p, if is_pointer_to_heap returns false, then the page is either in the tomb or has already been freed, so the object is dead. In this case, wmap_live_p should return false. Notes: Merged: https://github.com/ruby/ruby/pull/6152 commit fa5724cca97a22006c64bb382c3894e608c63c9e Author: David Rodríguez AuthorDate: 2022-07-16 20:17:58 +0900 Commit: git[bot] CommitDate: 2022-07-20 19:55:34 +0900 [rubygems/rubygems] Fix `ruby setup.rb --destdir /foo` modifying global specs Running a command like that is actually removing any previous default bundler specs in the default RubyGems installation (outside of destdir). It should instead only modify destdir. https://github.com/rubygems/rubygems/commit/5ed275383c commit fae0d60120e8ab58b0130cbb30acf28aab733552 Author: David Rodríguez AuthorDate: 2022-07-18 20:39:06 +0900 Commit: git[bot] CommitDate: 2022-07-20 19:55:34 +0900 [rubygems/rubygems] Refactor destdir checks https://github.com/rubygems/rubygems/commit/ca956c0de2 commit fcfb3ce371f9050ba857d9cfb8af6c14a8570f70 Author: David Rodríguez AuthorDate: 2022-07-16 20:38:14 +0900 Commit: git[bot] CommitDate: 2022-07-20 19:55:33 +0900 [rubygems/rubygems] More cleanup https://github.com/rubygems/rubygems/commit/6012800a20 commit bdef3c73fe3792de59ecf681d2dcfcc8f62422b1 Author: David Rodríguez AuthorDate: 2022-07-16 20:31:24 +0900 Commit: git[bot] CommitDate: 2022-07-20 19:55:33 +0900 [rubygems/rubygems] Unify common logic https://github.com/rubygems/rubygems/commit/e5434be14c commit cbaf58d45564c17135595b549d4a0369f0e5a008 Author: Takuya Noguchi AuthorDate: 2022-07-17 22:07:09 +0900 Commit: git[bot] CommitDate: 2022-07-20 19:45:08 +0900 [rubygems/rubygems] Bundler: update primary source in man 5 gemfile Specifying multiple primary sources in top-level was deprecated in Bundler 1.13. As Bundler CLI uses primary source instead of global, "global source" is replaced with "primary source". Co-authored-by: David Rodríguez Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/1dd1753f6e commit 472740de4184c214dfaaf6189fe3bb1b17a15ecc Author: Nobuyoshi Nakada AuthorDate: 2022-07-20 17:39:54 +0900 Commit: GitHub CommitDate: 2022-07-20 17:39:54 +0900 Fix free objects count condition Free objects have `T_NONE` as the builtin type. A pointer to a valid array element will never be `NULL`. Notes: Merged: https://github.com/ruby/ruby/pull/6153 Merged-By: nobu commit c0aa8ee947c06f063d98761c53ea539eb726edb4 Author: David Rodríguez AuthorDate: 2022-07-20 01:45:59 +0900 Commit: git[bot] CommitDate: 2022-07-20 03:03:33 +0900 [rubygems/rubygems] Fix casing typo when resetting `RbConfig::CONFIG["ENABLE_SHARED"]` https://github.com/rubygems/rubygems/commit/3d1ae0050b commit 8f1759143533d2b772efd5184ba02738f66fe1fc Author: Nobuyoshi Nakada AuthorDate: 2022-07-19 20:24:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-20 00:23:38 +0900 [Bug #18905] Check symbol name types more strictly Notes: Merged: https://github.com/ruby/ruby/pull/6149 commit 631b34ef95cdcc6cb21eaae339176bd2b63a9bca Author: Takuya Noguchi AuthorDate: 2022-07-19 21:44:51 +0900 Commit: git[bot] CommitDate: 2022-07-19 23:51:47 +0900 [rubygems/rubygems] Bundler: change error/warning message for multiple global sources Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/316564b8fc commit cb9fd920a31c8090fae0b1183be9483e17dc3e96 Author: Jean Boussier AuthorDate: 2022-07-19 16:13:19 +0900 Commit: Jean Boussier CommitDate: 2022-07-19 17:41:40 +0900 str_buf_cat: preserve coderange when going through fastpath rb_str_modify clear the coderange, which in this case isn't necessary. ``` compare-ruby: ruby 3.2.0dev (2022-07-12T15:01:11Z master 71aec68566) [arm64-darwin21] built-ruby: ruby 3.2.0dev (2022-07-19T07:17:01Z faster-buffer-conc.. 3cad62aab4) [arm64-darwin21] warming up... | |compare-ruby|built-ruby| |:---------------------|-----------:|---------:| |binary_concat_utf8 | 360.617k| 605.091k| | | -| 1.68x| |binary_concat_binary | 446.650k| 605.053k| | | -| 1.35x| |utf8_concat_utf8 | 454.166k| 597.311k| | | -| 1.32x| ``` ``` | |compare-ruby|built-ruby| |:-----------|-----------:|---------:| |erb_render | 1.790M| 2.045M| | | -| 1.14x| ``` Notes: Merged: https://github.com/ruby/ruby/pull/6120 commit 0ae8dbbee0631721e820e29d0a613485cdcb3507 Author: Jean Boussier AuthorDate: 2022-06-29 17:35:41 +0900 Commit: Jean Boussier CommitDate: 2022-07-19 17:41:40 +0900 rb_str_buf_append: fastpath to str_buf_cat If the LHS is ASCII compatible and the RHS is 7BIT we can directly concat without being concerned about anything else. Benchmark: ``` compare-ruby: ruby 3.2.0dev (2022-07-12T15:01:11Z master 71aec68566) [arm64-darwin21] built-ruby: ruby 3.2.0dev (2022-07-13T10:13:53Z faster-buffer-conc.. a04c10476d) [arm64-darwin21] warming up... | |compare-ruby|built-ruby| |:---------------------|-----------:|---------:| |binary_append_utf8 | 385.315k| 573.663k| | | -| 1.49x| |binary_append_binary | 446.579k| 574.898k| | | -| 1.29x| |utf8_append_utf8 | 430.936k| 573.394k| | | -| 1.33x| ``` Note that in the benchmark, the RHS always have a precomputed coderange. So the benchmark never enter the slowpath of having to scan the RHS. However it's extremly likely that we'll end up scanning it anyway in rb_enc_cr_str_buf_cat Notes: Merged: https://github.com/ruby/ruby/pull/6120 commit ee1d2b276abbf6b03d862952a949302672a470a9 Author: Nobuyoshi Nakada AuthorDate: 2022-07-19 16:50:00 +0900 Commit: git[bot] CommitDate: 2022-07-19 17:33:44 +0900 [ruby/fileutils] Add an octal prefix to clarify to be octal https://github.com/ruby/fileutils/commit/332025bc02 Co-Authored-By: David Rodríguez commit d084585f01b57727a5778f2f6723b89c6d98a9d4 Author: Jean Boussier AuthorDate: 2022-07-13 18:54:08 +0900 Commit: Jean Boussier CommitDate: 2022-07-19 15:48:56 +0900 Rename ENCINDEX_ASCII to ENCINDEX_ASCII_8BIT Otherwise it's way too easy to confuse it with US_ASCII. Notes: Merged: https://github.com/ruby/ruby/pull/6127 commit 85ea46730deff70172a9f50172f0011a7401f371 Author: Jemma Issroff AuthorDate: 2022-07-19 04:38:12 +0900 Commit: Aaron Patterson CommitDate: 2022-07-19 06:06:30 +0900 Separate TS_IVC and TS_ICVARC in is_entries buffers This allows us to treat cvar caches differently than ivar caches. Notes: Merged: https://github.com/ruby/ruby/pull/6148 commit ecff3349953e17491630ef7b68c5ac6b095d39bf Author: Jemma Issroff AuthorDate: 2022-06-06 23:48:42 +0900 Commit: Aaron Patterson CommitDate: 2022-07-19 04:44:01 +0900 Extract vm_ic_entry API to mimic vm_cc behavior Notes: Merged: https://github.com/ruby/ruby/pull/5978 commit a1c0aa7701cdf0fa58ef7ba215507aa221dc4062 Author: Peter Zhu AuthorDate: 2022-07-18 23:49:28 +0900 Commit: Peter Zhu CommitDate: 2022-07-18 23:49:28 +0900 Remove unused variable in array.c vshared is no longer used. commit fd0902bfcd3cd564434aadfd40657f2a916d47a2 Author: David Rodríguez AuthorDate: 2022-07-18 21:34:55 +0900 Commit: git[bot] CommitDate: 2022-07-18 23:24:38 +0900 [rubygems/rubygems] Move fileutils require to be even more lazy If directories are already created (the common case), fileutils won't be required at all. https://github.com/rubygems/rubygems/commit/63a9b94fc9 commit dd362a786af7f5131844652fa85a07539b4da9b8 Author: Peter Zhu AuthorDate: 2022-07-16 06:39:21 +0900 Commit: git[bot] CommitDate: 2022-07-18 22:36:57 +0900 [ruby/rdoc] Fix call-seq for aliased method with similar names deduplicate_call_seq has a bug that skips call-seq for methods where the alias is a prefix of the method name. For example, if the alias name is "each" and the current method name is "each_line", then deduplicate_call_seq will skip all call-seq for "each_line" since it will believe that it is for the alias. https://github.com/ruby/rdoc/commit/1148988ccc commit a74634de106df63fb39a7077561657bb61a0bc97 Author: David Rodríguez AuthorDate: 2022-07-16 19:09:54 +0900 Commit: git[bot] CommitDate: 2022-07-18 19:07:55 +0900 [rubygems/rubygems] Fix upgrading RubyGems with a customized `Gem.default_dir` https://github.com/rubygems/rubygems/commit/16d01f9486 commit 01560e1c53ce2e1fcf3cdc2480c6f75ca7c6f0a6 Author: David Rodríguez AuthorDate: 2021-11-19 21:13:19 +0900 Commit: git[bot] CommitDate: 2022-07-18 19:07:47 +0900 [rubygems/rubygems] Improve error message when gems cannot be found Include the source of each gem. https://github.com/rubygems/rubygems/commit/a0bed2fb79 commit 68903df6f6fc548f3bf68fb09ee8b2495dcd28f0 Author: Nobuyoshi Nakada AuthorDate: 2022-07-18 00:59:27 +0900 Commit: GitHub CommitDate: 2022-07-18 00:59:27 +0900 [Bug #18922] Normalize time at 24:00:00 UTC Notes: Merged: https://github.com/ruby/ruby/pull/6146 Merged-By: nobu commit 64cff780051adf95a0f1799baddec98ae23e8add Author: Nobuyoshi Nakada AuthorDate: 2022-07-17 16:05:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-17 19:57:48 +0900 `Gem.unpack` extracts gems so able to execute Creates simple bin stubs to load the extracted executable files. After only extracted under `gems` directory, the gems are considered installed but the executable scripts are not found. Also the second argument is now the parent of the previous second and third arguments. Notes: Merged: https://github.com/ruby/ruby/pull/6145 commit fab8f3bde6e4d1ac78aa63e4768452b3da0f955e Author: Yuta Saito AuthorDate: 2022-07-17 03:21:15 +0900 Commit: git[bot] CommitDate: 2022-07-17 19:44:51 +0900 [rubygems/rubygems] Stop using `/dev/null` for silent ui for WASI platform WASI doesn't guarantee that `/dev/null` is present. So without this patch, we needed to mount host's `/dev` directory to WASI guest process to avoid `ENOTCAPABLE` error while `require "bundler/setup"` https://github.com/rubygems/rubygems/commit/e9187ab61f commit 5081d0dd5c366ebaee084fd67289bebe23ddb152 Author: Takuya Noguchi AuthorDate: 2022-07-17 16:48:35 +0900 Commit: git[bot] CommitDate: 2022-07-17 18:27:00 +0900 [rubygems/rubygems] bundler: fix typo in inline RuboCop config Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/e11f5a143b commit ef2d673052ebc0c1d450c15286bc8fdee5381383 Author: David Rodríguez AuthorDate: 2022-07-16 03:18:40 +0900 Commit: git[bot] CommitDate: 2022-07-17 17:47:23 +0900 [rubygems/rubygems] Show a proper error if extension dir is not writable Instead of showing the bug report template. https://github.com/rubygems/rubygems/commit/0c8b6f7dd5 commit 3cfc3fcf96a414fc1a966eacc57a282aa2580547 Author: David Rodríguez AuthorDate: 2022-07-16 04:34:51 +0900 Commit: git[bot] CommitDate: 2022-07-17 17:47:22 +0900 [rubygems/rubygems] Unify some common code https://github.com/rubygems/rubygems/commit/972e8ff965 commit 14f52cfce53711fda7f144b70c2d3d8b04b709e2 Author: David Rodríguez AuthorDate: 2022-07-16 04:32:35 +0900 Commit: git[bot] CommitDate: 2022-07-17 17:47:22 +0900 [rubygems/rubygems] Don't call `#build_extensions` at all if there are no extensions https://github.com/rubygems/rubygems/commit/5ecc0e0b31 commit d20886dd225e07fe14347398c2c0913f3e11d22a Author: Nobuyoshi Nakada AuthorDate: 2022-07-17 10:30:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-17 10:30:56 +0900 Create build-only gemspec files only if having an extension commit d010eba2f42f6a1ddae77d4822e5681523d561db Author: Nobuyoshi Nakada AuthorDate: 2022-07-17 10:18:08 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-17 10:18:08 +0900 Fix tests for ABI incompatible binary error messags commit 50cfecd0155236a3120c5f78b779b058867cb46d Author: Nobuyoshi Nakada AuthorDate: 2022-07-17 08:59:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-17 09:01:33 +0900 Show ABI incompatible binary path commit 5ae83151b16858083e6443fadc76e7fde0ff1199 Author: Nobuyoshi Nakada AuthorDate: 2022-07-11 23:04:56 +0900 Commit: git[bot] CommitDate: 2022-07-16 19:33:16 +0900 [rubygems/rubygems] Drop support for old `Gem::Specification` versions `specification_version` method was added before RubyGems 1.0, and `add_runtime_dependency` method was before 1.2. These seem aged enough to remove. https://github.com/rubygems/rubygems/commit/92770c5cd9 commit 6c1d7dab52b9bd26cbb624634b4acb86ba37aa7f Author: Nobuyoshi Nakada AuthorDate: 2022-07-16 17:58:52 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-16 17:58:52 +0900 Fix conversion from absolute path to relative path commit c093e7d64545640c8f2e7bb3eb24e3f9e24fb1c5 Author: Nobuyoshi Nakada AuthorDate: 2022-07-16 16:37:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-16 16:38:03 +0900 Avoid to symlink under symlink commit 5101671cbc008230cae7b5c2190b2f6938a19f74 Author: Nobuyoshi Nakada AuthorDate: 2022-07-16 15:28:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-16 15:28:05 +0900 Disable parallel built in test-bundled-gems commit b536ac2cd085a7f14b91959c1a8e8d7db43f1c4a Author: Nobuyoshi Nakada AuthorDate: 2022-07-16 11:22:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-16 11:26:15 +0900 test-bundled-gems.rb needs `+` with GNU make This script runs `make` internally, and sub-`make`s need the environment variable for the job server when compiling in parallel. commit 78d2be69b500e4552e0e75fdefd26606a0506009 Author: Nobuyoshi Nakada AuthorDate: 2022-07-14 11:59:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-16 10:11:42 +0900 Move copying/linking extra files to Makefile so removed by `clean` commit f375280d5a9d2a1da0a0432a9e9fe7ffed910d50 Author: Jemma Issroff AuthorDate: 2022-07-16 04:18:30 +0900 Commit: Aaron Patterson CommitDate: 2022-07-16 05:39:02 +0900 Add benchmarks for setting / getting ivars on generics Notes: Merged: https://github.com/ruby/ruby/pull/6144 commit aed1539ec59ab8048b2fb64a7364d106acbaf30a Author: Noah Gibbs AuthorDate: 2022-07-16 02:52:47 +0900 Commit: GitHub CommitDate: 2022-07-16 02:52:47 +0900 YJIT: Add send unit tests (#6143) Add send unit tests for YJIT Notes: Merged-By: maximecb commit 36ca0e58b600f3338ad4880d77c8c7fbc8f51460 Author: st0012 AuthorDate: 2022-06-28 22:39:56 +0900 Commit: git[bot] CommitDate: 2022-07-16 02:30:23 +0900 [ruby/reline] Use color name instead of code (integer) in dialog color APIs As pointed out in the [comment](https://github.com/ruby/reline/pull/413#issuecomment-1168033973), the code is actually a control sequence and not only for colors. To make the dialog color APIs safer to use, we should restrict its usages and extract away the bg/fg concept from the input. So in this commit, I made these changes: 1. The dialog_*_bg/fg_color APIs only takes and returns color names (symbol): - :black - :red - :green - :yellow - :blue - :magenta - :cyan - :white 2. Add additional dialog_*_bg/fg_color_sequence APIs to access the raw code. https://github.com/ruby/reline/commit/b32a977766 commit 280b805d040fa537d5a459b40d4bfa6d49700905 Author: Peter Zhu AuthorDate: 2022-07-15 05:45:03 +0900 Commit: Peter Zhu CommitDate: 2022-07-15 23:30:50 +0900 [DOC] Fix documentation for ARGF#readlines [Bug #18909] Notes: Merged: https://github.com/ruby/ruby/pull/6137 commit c53439294e390595c88c6f3094021ffc7c0147e1 Author: Jemma Issroff AuthorDate: 2022-07-15 23:12:51 +0900 Commit: Peter Zhu CommitDate: 2022-07-15 23:29:42 +0900 Fixes ivar benchmarks to not depend on object allocation Prior to this change, we were measuring object allocation as well as setting instance variables within ivar benchmarks. With this change, we now only measure setting instance variables within ivar benchmarks. Notes: Merged: https://github.com/ruby/ruby/pull/6142 commit 7424ea184f9d67c1c7f3ee97494ed3bd1aa60833 Author: Peter Zhu AuthorDate: 2022-07-11 23:09:39 +0900 Commit: Peter Zhu CommitDate: 2022-07-15 22:21:07 +0900 Implement Objects on VWA This commit implements Objects on Variable Width Allocation. This allows Objects with more ivars to be embedded (i.e. contents directly follow the object header) which improves performance through better cache locality. Notes: Merged: https://github.com/ruby/ruby/pull/6117 commit 7fda741f6e67b809b08423f0d4e903c078da2eed Author: Takuya Noguchi AuthorDate: 2022-07-15 10:26:54 +0900 Commit: git[bot] CommitDate: 2022-07-15 18:45:38 +0900 [rubygems/rubygems] Use https protocol for URLs for config mirror example.org is used mirror URL as an example, not to make access to a (potential) third-party domain. Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/31230f850c commit 8e451d1083cb07ad974365f99b4f01742e4759c8 Author: Takuya Noguchi AuthorDate: 2022-07-15 10:49:57 +0900 Commit: git[bot] CommitDate: 2022-07-15 17:32:05 +0900 [rubygems/rubygems] Fix wrong information about default RubyGems source Also fix regression from rubygems/rubygems PR 3056 https://my.diffend.io/gems/rubygems-update/1.3.5/1.3.6/page/4#d2h-514986 https://my.diffend.io/gems/rubygems-update/2.0.0/2.0.2/page/2#d2h-514986 Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/06b1e9ebc5 commit 6c2cad835a0d7d73a00a5048babb113c4afa388b Author: Takashi Kokubun AuthorDate: 2022-07-15 13:53:41 +0900 Commit: Takashi Kokubun CommitDate: 2022-07-15 14:54:20 +0900 MJIT: Share rb_mjit_unit through mjit_unit.h mjit_compile.c should be able to access this more easily. Notes: Merged: https://github.com/ruby/ruby/pull/6140 commit ed8c21bbd5071b52d0d0612eadbdad8fe192e974 Author: Yuta Saito AuthorDate: 2022-07-15 02:32:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-15 13:14:31 +0900 Ensure symlinks to bundled gem with exts have parent dir When configuring with `--disable-rpath` and `--static-linked-ext` (e.g. building for WASI), `extmk.rb` doesn't build exts under bundled gems, and `.bundle/gems/#{gemname}-#{ver}` are not created due to no call of `extmake`. b2491783986084770f6f97552f27b868622730cf starts creating symlink at `.bundle/gems/#{gemname}-#{ver}/lib`, but the parent dir is not created, so configuration aginst debug and rbs gems were failed. Notes: Merged: https://github.com/ruby/ruby/pull/6136 commit 439d31bc777a6f9c9354dbe9a82495a9b4fa04ae Author: Takashi Kokubun AuthorDate: 2022-07-15 12:34:46 +0900 Commit: GitHub CommitDate: 2022-07-15 12:34:46 +0900 MJIT: Merge mjit_worker.c back to mjit.c (#6138) Since #6006, we no longer avoid executing GC on mjit_worker.c and thus there's no need to carefully change how we write code whether you're in mjit.c or mjit_worker.c anymore. Notes: Merged-By: k0kubun commit 3f962a20b9295f8b3e8a1a8cfba31ffdec8f8887 Author: Takashi Kokubun AuthorDate: 2022-07-15 06:12:31 +0900 Commit: Takashi Kokubun CommitDate: 2022-07-15 06:12:33 +0900 Avoid SEGV on capture_cc_entries commit c8748942f1f94cd1e06ed778f2ac7e2b0ab7728c Author: Peter Zhu AuthorDate: 2022-07-15 05:37:47 +0900 Commit: Peter Zhu CommitDate: 2022-07-15 05:37:47 +0900 [DOC] Fix typo in documentation for IO#readlines commit 4813443837d76e27eb293f1928bda7a47b9e8f3f Author: Jeremy Evans AuthorDate: 2022-07-15 05:28:58 +0900 Commit: Jeremy Evans CommitDate: 2022-07-15 05:28:58 +0900 Fix language describing protected methods Fixes [Bug #18887] commit 509d0a92994e9b1ef497dbf84ed9e5faa1c8680d Author: Karl Anderson AuthorDate: 2021-10-28 16:53:52 +0900 Commit: git[bot] CommitDate: 2022-07-15 01:39:42 +0900 [ruby/psych] Fix infinite loop bug after YAML_MEMORY_ERROR (psych issue #440) https://github.com/ruby/psych/commit/6c56700fb2 commit 1df9b6c39040f21a26aa8879a6966c92a298b40d Author: Matt Valentine-House AuthorDate: 2022-07-14 07:12:53 +0900 Commit: Aaron Patterson CommitDate: 2022-07-15 00:25:37 +0900 Get the insns_address_table from the vm_exec_core module table... Notes: Merged: https://github.com/ruby/ruby/pull/6134 commit 673759328ca2ff46cc37989dd81c59fe3518e426 Author: Nobuyoshi Nakada AuthorDate: 2022-07-14 15:17:35 +0900 Commit: git[bot] CommitDate: 2022-07-14 21:02:02 +0900 [ruby/bigdecimal] Remove checks for `struct RRational` and `struct RComplex` These are used to see only if `RRATIONAL` and `RCOMPLEX` are available, however, these two are macros and can be checked with `#ifdef` directly. https://github.com/ruby/bigdecimal/commit/175bbacd43 commit 8b64e8f2ed5833570bd1f46683d2b96c7c98413a Author: Nobuyoshi Nakada AuthorDate: 2022-07-08 22:29:23 +0900 Commit: git[bot] CommitDate: 2022-07-14 17:13:52 +0900 [ruby/set] Get rid of use of `Gem::Version` When retrying in ruby's test, it seems possible that `Gem` is not loaded. ``` 1) Error: TC_Set_Builtin#test_to_set: NameError: uninitialized constant TC_Set_Builtin::Gem /export/home/chkbuild/chkbuild-gcc/tmp/build/20220708T070011Z/ruby/test/test_set.rb:844:in `should_omit?' /export/home/chkbuild/chkbuild-gcc/tmp/build/20220708T070011Z/ruby/test/test_set.rb:869:in `test_to_set' 2) Error: TC_Set_Builtin#test_Set: NameError: uninitialized constant TC_Set_Builtin::Gem /export/home/chkbuild/chkbuild-gcc/tmp/build/20220708T070011Z/ruby/test/test_set.rb:844:in `should_omit?' /export/home/chkbuild/chkbuild-gcc/tmp/build/20220708T070011Z/ruby/test/test_set.rb:849:in `test_Set' ``` This is by `Gem::Version` only, just compare as array of integers instead. https://github.com/ruby/set/commit/cde0a4bbc7 commit 025677560a477c5d54f6a199447b4c92f367cd39 Author: Nobuyoshi Nakada AuthorDate: 2022-07-14 09:52:57 +0900 Commit: git[bot] CommitDate: 2022-07-14 16:26:47 +0900 [ruby/un] Support `FileUtils.cp_lr` https://github.com/ruby/un/commit/e976ad8a7c commit 7c58c55c11e60822b04413ae08856427b0cc1f6c Author: Olle Jonsson AuthorDate: 2022-07-13 20:52:26 +0900 Commit: git[bot] CommitDate: 2022-07-14 16:21:25 +0900 [ruby/timeout] gemspec: Drop unused directives "executables" This gem exposes no executables. https://github.com/ruby/timeout/commit/70be2bd48a commit 76de7a92b90e216c6645e93a3a034bc2f4257b03 Author: David Rodríguez AuthorDate: 2022-07-12 19:33:12 +0900 Commit: git[bot] CommitDate: 2022-07-14 15:06:09 +0900 [rubygems/rubygems] Fix misleading error if compact index cannot be copied Previously if `~/.bundle/cache/compact_index/rubygems.org.*/version` were owned by root with read-only access, `bundle install` would fail with a misleading error message. For example: ``` There was an error while trying to write to `/tmp/bundler-compact-index-20220711-1823-npllre/versions`. It is likely that you need to grant write permissions for that path. ``` This happened because the EACCESS error was caught by `SharedHelpers.filesystem_access`, which makes it look like the target directory is at fault instead of the source. We can't simply drop this guard because that causes the opposite problem: the permission error appears to come from the source instead of the target, since `CompactIndexClient::Cache#lines` also wraps read access errors. Instead, bring a minimal implementation of `FileUtils.cp` and nest calls to `SharedHelpers.filesystem_access` properly. https://github.com/rubygems/rubygems/commit/320822c070 Co-authored-by: Stan Hu commit 9d900620cafc379f527ee04a338f3a7f5daf6962 Author: Nobuyoshi Nakada AuthorDate: 2022-07-13 23:50:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-14 09:00:13 +0900 Set `GEM_PATH` environment variable in runruby.rb Notes: Merged: https://github.com/ruby/ruby/pull/6130 commit 416cba90c1610f54dafd91234de9ec74d73ae22c Author: Nobuyoshi Nakada AuthorDate: 2022-07-13 22:17:18 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-14 09:00:13 +0900 Try to install also gemspec files under gem directories Gemspec files having extension libraries are placed under each gem directories now. Notes: Merged: https://github.com/ruby/ruby/pull/6130 commit b2491783986084770f6f97552f27b868622730cf Author: Nobuyoshi Nakada AuthorDate: 2022-07-13 20:15:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-14 09:00:13 +0900 Install gems `lib` directory to build path Notes: Merged: https://github.com/ruby/ruby/pull/6130 commit a2c66f52f402cb58372e271226f3341065561e53 Author: Nobuyoshi Nakada AuthorDate: 2022-07-13 18:58:32 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-14 09:00:13 +0900 Make dependency-free gemspec files The default gems have not been installed yet in the build directory, bundled gems depending on them can not work. As those dependencies should be usable there even without rubygems, make temporary gemspec files without the dependencies, and use them in the build directory. Notes: Merged: https://github.com/ruby/ruby/pull/6130 commit e1a4e44f14482814a0540ae0a4b31d858ff56f53 Author: Nobuyoshi Nakada AuthorDate: 2022-07-13 17:47:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-14 09:00:13 +0900 Extract gemspec files to each gem directories Since extension libraries can not be built in the source directory, rubygems warns gems have extension libraries as the extensions are not built. To order to suppress this warnings, extract such gemspec files under each gem directories instead of the common `specifications` directory. Notes: Merged: https://github.com/ruby/ruby/pull/6130 commit 8c74eaa08d25355560550787e38da079f1929abf Author: David Rodríguez AuthorDate: 2022-07-14 02:10:47 +0900 Commit: git[bot] CommitDate: 2022-07-14 04:47:58 +0900 [rubygems/rubygems] Fix `gem update --system` crash while regenerating binstubs Since a few commits ago, we no longer call `Gem::Specification.reset` after each invocation of `Gem::Installer#install`. This means we don't call it when the default Bundler is installed during `gem update --system`. This causes no issues until the end of the upgrade process when: * The previous default Bundler spec is removed from disk. * All specification stubs are turned into real specifications by loading them from disk. But the one for Bundler no longer exists so materializes to `nil` and regenerating binstubs crashes like this: ``` Bundler 2.4.0.dev installed RubyGems 3.4.0.dev installed Regenerating binstubs ERROR: While executing gem ... (NoMethodError) undefined method `platform' for nil:NilClass /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/pristine_command.rb:116:in `block in execute' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/specification.rb:981:in `block in each' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/specification.rb:980:in `each' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/specification.rb:980:in `each' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/pristine_command.rb:116:in `map' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/pristine_command.rb:116:in `each' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/pristine_command.rb:116:in `select' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/pristine_command.rb:116:in `execute' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/command.rb:323:in `invoke_with_build_args' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/command.rb:301:in `invoke' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/setup_command.rb:604:in `regenerate_binstubs' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/commands/setup_command.rb:183:in `execute' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/command.rb:323:in `invoke_with_build_args' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/command_manager.rb:185:in `process_args' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/command_manager.rb:149:in `run' /Users/deivid/Code/rubygems/rubygems/lib/rubygems/gem_runner.rb:51:in `run' setup.rb:33:in `
' ``` We fix it by more carefully managing the removal of the previous default Bundler gem. https://github.com/rubygems/rubygems/commit/9989f6d5af commit 664c23db79dd0d500a834ef0ec8da443d95ddfd6 Author: Jean Boussier AuthorDate: 2022-07-14 01:49:27 +0900 Commit: Jean Boussier CommitDate: 2022-07-14 02:39:31 +0900 GVL Instrumentation: remove the EXITED count assertion It's very flaky for some unknown reason. Something we have an extra EXITED event. I suspect some other test is causing this. Notes: Merged: https://github.com/ruby/ruby/pull/6133 commit 081bd061a8c0109fac91210b0f3689384df6fc61 Author: Burdette Lamar AuthorDate: 2022-07-14 00:44:22 +0900 Commit: GitHub CommitDate: 2022-07-14 00:44:22 +0900 [DOC] Correct call-seq directive in string.c (#6131) Correct call-seq directive in string.c Notes: Merged-By: BurdetteLamar commit d5c5fcb80a432e2078139c460230dc7952216c35 Author: Nobuyoshi Nakada AuthorDate: 2022-05-11 19:26:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-13 22:14:30 +0900 Bundled gem extensions are out of scope of update-deps commit 8290d76647f8db9df6d18c654d723b14cf0b3507 Author: Jean Boussier AuthorDate: 2022-07-13 20:48:21 +0900 Commit: git[bot] CommitDate: 2022-07-13 21:16:15 +0900 [ruby/timeout] Give a name to the background thread https://github.com/ruby/timeout/commit/5594ae2f4d commit 268269687c8747eb0bb67b09025b7ff7f495eba6 Author: Jean Boussier AuthorDate: 2022-07-13 20:13:33 +0900 Commit: Jean Boussier CommitDate: 2022-07-13 21:13:41 +0900 thread/test_instrumentation_api: cleanup all existing threads in setup We saw the following failure: ``` TestThreadInstrumentation#test_thread_instrumentation [/tmp/ruby/v3/src/trunk-random3/test/-ext-/thread/test_instrumentation_api.rb:25]: Expected 0..3 to include 4. ``` Which shouldn't happen unless somehow there was a leaked thread. Notes: Merged: https://github.com/ruby/ruby/pull/6128 commit c4e2973733c03525ca42f0aecca6f2d834b88a70 Author: Yusuke Endoh AuthorDate: 2022-07-13 02:17:23 +0900 Commit: Yusuke Endoh CommitDate: 2022-07-13 16:09:11 +0900 Fix a typo (thanks @Maumagnaguagno !) Notes: Merged: https://github.com/ruby/ruby/pull/6119 commit 1fe6c926036b3e6956865b56fba52ed242488e42 Author: Yusuke Endoh AuthorDate: 2022-07-12 13:50:04 +0900 Commit: Yusuke Endoh CommitDate: 2022-07-13 16:09:11 +0900 Specify usable escape sequences in Exception#detailed_message An error message is primarily rendered in a terminal emulator, but is also shown in a browser by converting it to a HTML fragment. However, the conversion would be unreasonably difficult if the message includes any escape sequence (such as cursor move or screen clear). This change adds a guideline about escape sequences in `Exception#detailed_message`: * Use widely-supported escape sequences: bold, underline, and basic eight foreground colors (except white and black). * Make the message readable if all escape sequences are ignored. Notes: Merged: https://github.com/ruby/ruby/pull/6119 commit 156da55c164e5463edf15bae05021b7d1477e4de Author: Koichi Sasada AuthorDate: 2022-07-13 14:51:05 +0900 Commit: Koichi Sasada CommitDate: 2022-07-13 15:46:19 +0900 debug.gem 1.6.1 Notes: Merged: https://github.com/ruby/ruby/pull/6126 commit 437a5ae9d6d60bd1972641167a98204007bd1c0b Author: Hiroshi SHIBATA AuthorDate: 2022-07-13 12:56:36 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-07-13 14:11:55 +0900 Merge RubyGems and Bundler master Notes: Merged: https://github.com/ruby/ruby/pull/6124 commit e3a988a29c2cfa4a7e2e045d82989a7342955be8 Author: Burdette Lamar AuthorDate: 2022-07-13 10:49:24 +0900 Commit: GitHub CommitDate: 2022-07-13 10:49:24 +0900 [DOC] Revisions for call-seq in doc guidelines (#6121) Splits certain guidelines for singleton and instance method. Calls for instance method to not prefix anything (like RDoc itself for a Ruby-coded instance method); e.g.: count -> integer, not array.count,. <=> other -> integer or nil, not hash <=> other -> integer or nil. Groups previous guidelines into Arguments, Block, Return types, Aliases. Notes: Merged-By: BurdetteLamar commit de51bbcb544651fb499dd4cc757a2bf6f3b439cf Author: Aaron Patterson AuthorDate: 2022-07-12 04:40:34 +0900 Commit: Aaron Patterson CommitDate: 2022-07-13 08:07:41 +0900 Use VM Lock when mutating waiting threads list `rb_thread_wait_for_single_fd` needs to mutate the `waiting_fds` list that is stored on the VM. We need to delete the FD from the list before returning, and deleting from the list requires a VM lock (because the list is a global). [Bug #18816] [ruby-core:108771] Co-Authored-By: Alan Wu Notes: Merged: https://github.com/ruby/ruby/pull/6116 commit 59c6b7b7abefdf8bc93d7117a3893d581f3a6c90 Author: Eileen M. Uchitelle AuthorDate: 2022-07-13 05:40:49 +0900 Commit: GitHub CommitDate: 2022-07-13 05:40:49 +0900 Speed up --yjit-trace-exits code (#6106) In a small script the speed of this feature isn't really noticeable but on Rails it's very noticeable how slow this can be. This PR aims to speed up two parts of the functionality. 1) The Rust exit recording code Instead of adding all samples as we see them to the yjit_raw_samples and yjit_line_samples, we can increment the counter on the ones we've seen before. This will be faster on traces where we are hitting the same stack often. In a crude measurement of booting just the active record base test (`test/cases/base_test.rb`) we found that this improved the speed by 1 second. This also results in a smaller marshal dump file which sped up the test boot time by 4 seconds with trace exits on. 2) The Ruby parsing code Previously we were allocating new arrays using `shift` and `each_with_index`. This change avoids allocating new arrays by using an index. This change saves us the most amount of time, gaining 11 seconds. Before this change the test boot time took 62 seconds, after it took 47 seconds. This is still too long but it's a step closer to faster functionality. Next we're going to tackle allowing you to collect trace exits for a specific instruction. There is also some potential slowness in the GC code that I'd like to take a second look at. Co-authored-by: Aaron Patterson Co-authored-by: Aaron Patterson Notes: Merged-By: maximecb commit 8c1808151f4c1b44e8b0fe935c571f05b2641b8b Author: Kevin Backhouse AuthorDate: 2022-07-13 03:48:10 +0900 Commit: GitHub CommitDate: 2022-07-13 03:48:10 +0900 Fix some UBSAN false positives (#6115) * Fix some UBSAN false positives. * ruby tool/update-deps --fix Notes: Merged-By: jhawthorn commit 8309b1366c3307ab8d9cda5b61b91540cf6cc8aa Author: Burdette Lamar AuthorDate: 2022-07-13 03:21:32 +0900 Commit: GitHub CommitDate: 2022-07-13 03:21:32 +0900 [DOC] Enhanced RDoc for Time (#6118) Treats: ::utc ::local #to_i #to_f #to_r #usec #nsec #subsec #<=> #eql? Notes: Merged-By: BurdetteLamar commit dcbb94d5b9b4a7d0bfde5ba9a5da1ada643a31b7 Author: Nobuyoshi Nakada AuthorDate: 2022-07-12 23:59:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-13 00:00:46 +0900 Move timestamps directory for bundled gems commit 3aee94fb91b9511d142fe79e07606f23576fcaba Author: Burdette Lamar AuthorDate: 2022-07-12 22:57:20 +0900 Commit: git[bot] CommitDate: 2022-07-12 22:57:25 +0900 [ruby/date] [DOC] Enhanced RDoc (https://github.com/ruby/date/pull/63) Treats: #next #<< #>> #next_month #prev_month #next_year #prev_year #step #upto #downto https://github.com/ruby/date/commit/4246441a35 commit 067a5f1a0024ebd270f363cd440147da9dc176b5 Author: Matt Valentine-House AuthorDate: 2022-07-07 22:17:39 +0900 Commit: Peter Zhu CommitDate: 2022-07-12 21:50:33 +0900 [Feature #18901] Don't run size pool move tests without VWA Notes: Merged: https://github.com/ruby/ruby/pull/6099 commit 214ed4cbc6f33675230602dd09268b436da96f7d Author: Matt Valentine-House AuthorDate: 2022-06-09 23:59:08 +0900 Commit: Peter Zhu CommitDate: 2022-07-12 21:50:33 +0900 [Feature #18901] Support size pool movement for Arrays This commit enables Arrays to move between size pools during compaction. This can occur if the array is mutated such that it would fit in a different size pool when embedded. The move is carried out in two stages: 1. The RVALUE is moved to a destination heap during object movement phase of compaction 2. The array data is re-embedded and the original buffer free'd if required. This happens during the update references step Notes: Merged: https://github.com/ruby/ruby/pull/6099 commit 0f8a0c5f371b0886e8e31e35a9095bc9843de27c Author: Nobuyoshi Nakada AuthorDate: 2022-07-10 13:01:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-12 19:43:11 +0900 Refactor tests for ThreadInstrumentation counters * Extracted some assertions. * Assert counter values should be positive. Notes: Merged: https://github.com/ruby/ruby/pull/6111 commit a6e2f3fd8d98e511e4e2011bc1a45ba1bd9144a1 Author: Nobuyoshi Nakada AuthorDate: 2022-07-10 13:01:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-12 19:43:11 +0900 Use `IO.popen` to fork and exit the child process without cleanup Notes: Merged: https://github.com/ruby/ruby/pull/6111 commit 8b98b9e274ea0a749044e044ee03ee1095aa75d0 Author: Nobuyoshi Nakada AuthorDate: 2022-07-12 16:30:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-12 17:13:57 +0900 Check only whether `RUBY_DEVEL` is defined commit ba8f3d2c6c5b2386a9fe36b12089ad4e4120859a Author: Takashi Kokubun AuthorDate: 2022-07-12 16:07:13 +0900 Commit: Takashi Kokubun CommitDate: 2022-07-12 16:07:38 +0900 MJIT: Add assertions for mjit_capture_cc_entries to investigate SEGVs in it commit e99e1f0f3fdb497ef1a82c55f59f30d46ca4728a Author: git[bot] AuthorDate: 2022-07-12 16:03:23 +0900 Commit: git[bot] CommitDate: 2022-07-12 16:03:23 +0900 Update bundled gems list at 2022-07-12 commit cbcc92f7888a7e2425edf57ee82d992c6cbb4f78 Author: Takashi Kokubun AuthorDate: 2022-07-12 15:49:11 +0900 Commit: Takashi Kokubun CommitDate: 2022-07-12 15:49:13 +0900 MJIT: s/assert/VM_ASSERT/ include/ruby/assert.h sets NDEBUG by default. As MJIT CI uses -DVM_CHECK_MODE, using only VM_ASSERT might be more helpful. commit 66dfcbed376489193ad5afeb5da384ddc1f9c849 Author: Burdette Lamar AuthorDate: 2022-07-12 00:04:58 +0900 Commit: git[bot] CommitDate: 2022-07-12 00:05:15 +0900 [ruby/irb] [DOC] Include updated help message (https://github.com/ruby/irb/pull/377) * Include updated help message https://github.com/ruby/irb/commit/ff129f3794 commit 702d4d773f7352629725c5c5d6d34d16889773bb Author: Burdette Lamar AuthorDate: 2022-07-12 00:02:27 +0900 Commit: git[bot] CommitDate: 2022-07-12 00:02:41 +0900 [ruby/date] [DOC] Enhanced RDoc (https://github.com/ruby/date/pull/62) Minor edits to 11 methods' documentation. https://github.com/ruby/date/commit/00bb7f6648 commit a871fc4d86e857b4c580604d2654877135484896 Author: Yusuke Endoh AuthorDate: 2022-07-11 14:53:12 +0900 Commit: Yusuke Endoh CommitDate: 2022-07-11 23:38:37 +0900 Fix a regression of b2e58b02aec73f9c350bf109c021c180fc699ccc At that commit, I fixed a wrong conditional expression that was always true. However, that seemed to have caused a regression. [Bug #18906] This change removes the condition to make the code always enabled. It had been enabled until that commit, albeit unintentionally, and even if it is enabled it only consumes a tiny bit of memory, so I believe it is harmless. [Bug #18906] Notes: Merged: https://github.com/ruby/ruby/pull/6112 commit 2733c049674298cbc2130689a0a40013f3458755 Author: st0012 AuthorDate: 2022-06-28 22:08:50 +0900 Commit: git[bot] CommitDate: 2022-07-11 22:19:44 +0900 [ruby/reline] Add tests for top-level dialog color APIs https://github.com/ruby/reline/commit/347a468c59 commit 6423d32e3be76df346ea2051e1cbba220f36c9c0 Author: Matt Valentine-House AuthorDate: 2022-07-08 06:32:35 +0900 Commit: Peter Zhu CommitDate: 2022-07-11 22:00:03 +0900 Replace use of double_heap in tests with expand_heap Notes: Merged: https://github.com/ruby/ruby/pull/6107 commit a6dd859affc42b667279e513bb94fb75cfb133c1 Author: Matt Valentine-House AuthorDate: 2022-07-08 05:52:05 +0900 Commit: Peter Zhu CommitDate: 2022-07-11 22:00:03 +0900 Add expand_heap option to GC.verify_compaction_references In order to reliably test compaction we need to be able to move objects between size pools. In order for this to happen there must be pages in a size pool into which we can allocate. The existing implementation of `double_heap` only doubled the existing number of pages in the heap, so if a size pool had a low number of pages (or 0) it's not guaranteed that enough space will be created to move objects into that size pool. This commit deprecates the `double_heap` option and replaces it with `expand_heap` instead. expand heap will expand each heap by enough pages to hold a number of slots defined by `GC_HEAP_INIT_SLOTS` or by `heap->total_pags` whichever is larger. If both `double_heap` and `expand_heap` are present, a deprecation warning will be shown for `double_heap` and the `expand_heap` behaviour will take precedence Given that this is an API intended for debugging and testing GC compaction I'm not concerned about the extra memory usage or time taken to create the pages. However, for completeness: Running the following `test.rb` and using `time` on my Macbook Pro shows the following memory usage and time impact: pp "RSS (kb): #{`ps -o rss #{Process.pid}`.lines.last.to_i}" GC.verify_compaction_references(double_heap: true, toward: :empty) pp "RSS (kb): #{`ps -o rss #{Process.pid}`.lines.last.to_i}" ❯ time make run ./miniruby -I./lib -I. -I.ext/common -r./arm64-darwin21-fake ./test.rb "RSS (kb): 24000" :251: warning: double_heap is deprecated and will be removed "RSS (kb): 25232" ________________________________________________________ Executed in 124.37 millis fish external usr time 82.22 millis 0.09 millis 82.12 millis sys time 28.76 millis 2.61 millis 26.15 millis ❯ time make run ./miniruby -I./lib -I. -I.ext/common -r./arm64-darwin21-fake ./test.rb "RSS (kb): 24000" "RSS (kb): 49040" ________________________________________________________ Executed in 150.13 millis fish external usr time 103.32 millis 0.10 millis 103.22 millis sys time 35.73 millis 2.59 millis 33.14 millis Notes: Merged: https://github.com/ruby/ruby/pull/6107 commit fae568edbe61f816237aab230ced2ecc07135c45 Author: Takashi Kokubun AuthorDate: 2022-07-11 15:58:18 +0900 Commit: Takashi Kokubun CommitDate: 2022-07-11 15:58:19 +0900 Use NO_JIT_DESCRIPTION only when needed Apparently 203801566a186b7b1cbe899a06d0832923a1bdf9 broke YJIT's CI. commit 203801566a186b7b1cbe899a06d0832923a1bdf9 Author: Takashi Kokubun AuthorDate: 2022-07-11 15:01:09 +0900 Commit: Takashi Kokubun CommitDate: 2022-07-11 15:10:36 +0900 Fix #5872 for MJIT GitHub Actions If you run tests with RUN_OPTS=--mjit, the test fixes in https://github.com/ruby/ruby/pull/5872 don't work. commit da21a2c388852205e325b71b6400b7dd351146bb Author: Nobuyoshi Nakada AuthorDate: 2022-07-11 13:38:24 +0900 Commit: git[bot] CommitDate: 2022-07-11 13:43:15 +0900 [ruby/rdoc] `RubyVM` is implementation dependent https://github.com/ruby/rdoc/commit/aaeb5ce1ce commit b564ef3698a76cabeb41b3085fab1258ac07c8cb Author: Nobuyoshi Nakada AuthorDate: 2022-07-11 13:34:15 +0900 Commit: git[bot] CommitDate: 2022-07-11 13:43:14 +0900 [ruby/rdoc] Fix the known classes more https://github.com/ruby/rdoc/commit/9f47234e0e commit 86df6f4bb3b380ad536b102675d7fa452b01549f Author: Nobuyoshi Nakada AuthorDate: 2022-07-11 13:04:11 +0900 Commit: git[bot] CommitDate: 2022-07-11 13:14:06 +0900 [ruby/rdoc] Fix an exception class name https://github.com/ruby/rdoc/commit/87301da71b commit 5137af633eddd2f5b71f73be0f07cf7899930da9 Author: Burdette Lamar AuthorDate: 2022-07-10 23:51:27 +0900 Commit: git[bot] CommitDate: 2022-07-10 23:51:41 +0900 [ruby/date] Enhanced RDoc (https://github.com/ruby/date/pull/61) Omit private aliases from Rdoc. https://github.com/ruby/date/commit/48f9180663 commit ec09ba58d11f9679dade7df1973b60b1f6ebcaf3 Author: Nobuyoshi Nakada AuthorDate: 2022-07-10 17:56:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-10 17:56:36 +0900 Extract `atomic_inc_wraparound` function commit b1b8172328e384008bd17431335f512536c297f8 Author: Nobuyoshi Nakada AuthorDate: 2022-07-06 09:39:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-10 13:11:07 +0900 Add `asan_unpoisoning_object` to execute the block with unpoisoning Notes: Merged: https://github.com/ruby/ruby/pull/6092 commit ec303e49afeee9f6070d06f55650bbd373c33dd6 Author: Nobuyoshi Nakada AuthorDate: 2022-07-06 00:23:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-10 13:11:07 +0900 Split `rb_raw_obj_info` Notes: Merged: https://github.com/ruby/ruby/pull/6092 commit 233054a609a36cc441d26f9064bc3d16ff83b686 Author: Nobuyoshi Nakada AuthorDate: 2022-07-07 00:28:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-10 13:11:06 +0900 Cycle `obj_info_buffers_index` atomically Notes: Merged: https://github.com/ruby/ruby/pull/6092 commit a006dcb73f105085eb2237c294a1618bd80c26a5 Author: Nobuyoshi Nakada AuthorDate: 2022-07-06 00:59:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-10 13:07:40 +0900 `APPEND_S` for no conversion formats Notes: Merged: https://github.com/ruby/ruby/pull/6092 commit 2bf0313561304506cf3cceba6ef4c66a6f2c09b0 Author: Nobuyoshi Nakada AuthorDate: 2022-07-05 22:55:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-10 13:03:22 +0900 Rewrite `APPENDF` using variadic arguments Notes: Merged: https://github.com/ruby/ruby/pull/6092 commit 51025a901309eefa8ae81ff386bd078f14707b70 Author: Nobuyoshi Nakada AuthorDate: 2022-07-05 22:39:08 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-10 13:03:22 +0900 Use `size_t` for `rb_raw_obj_info` Notes: Merged: https://github.com/ruby/ruby/pull/6092 commit fbe3651466c2b552e19fe8fae73dfc18278433d9 Author: Nobuyoshi Nakada AuthorDate: 2022-07-05 22:22:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-10 13:03:22 +0900 Use `asan_unpoison_object_temporary` Notes: Merged: https://github.com/ruby/ruby/pull/6092 commit b16f44ad4f61e7827878d9f164d1a53414e80ea4 Author: Nobuyoshi Nakada AuthorDate: 2022-07-06 00:57:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-10 13:03:21 +0900 Get rid of static buffer in `obj_info` Notes: Merged: https://github.com/ruby/ruby/pull/6092 commit 1150a54afe98171657869bd2eafd82fda59893b1 Author: Nobuyoshi Nakada AuthorDate: 2022-04-06 21:54:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-09 19:00:56 +0900 Use `File::PATH_SEPARATOR` for the portability commit 949c3afb48d2afd02c2bfa569e29f6a3a48c1607 Author: Nobuyoshi Nakada AuthorDate: 2022-07-09 14:29:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-09 15:26:32 +0900 [ruby/openssl] Skip a new test when old OpenSSL It does not raise an error when setting an invalid value to SSLContext ciphers on Ubuntu 18.04. https://github.com/ruby/openssl/commit/8c96a69b0d commit 2725c5dbe0b8c9da3d8fb69d552c7af2dfa4a5b5 Author: Jeremy Evans AuthorDate: 2022-07-09 04:52:40 +0900 Commit: Jeremy Evans CommitDate: 2022-07-09 13:08:19 +0900 Fix invalid mkdir detection on OpenBSD This was broken by 67e54ce4081abaa16774b93ccd33ccbd1d6c6531, which resulted in " -d" being used as the mkdir_p program. I think this is because $ac_install_sh has been set to '' at the point it is used. There's probably a better way to fix this, but this should allow the OpenBSD CI to continue to work until a better fix is in place. Notes: Merged: https://github.com/ruby/ruby/pull/6110 commit e9ec6893d2186588b590540020660fdd76cc13ad Author: Burdette Lamar AuthorDate: 2022-07-09 01:05:52 +0900 Commit: git[bot] CommitDate: 2022-07-09 01:06:08 +0900 [ruby/date] [DOC] Enhanced RDoc (https://github.com/ruby/date/pull/59) Minor changes (mostly doc-guide compliance) to 18 or so of simpler methods (getters). https://github.com/ruby/date/commit/00e37ba2b4 commit 86768f1d4c102ff82321fdae2e2f2e278d57f3c7 Author: Peter Zhu AuthorDate: 2022-04-14 03:55:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 23:18:24 +0900 [ruby/openssl] Fix formatting in docs The + tag can only be used for single words. For multiple words the tag has to be used. https://github.com/ruby/openssl/commit/cf2f019c3e commit 4d6a29320dcd758c21944983da28b54037c200da Author: Jarek Prokop AuthorDate: 2022-04-12 16:44:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 23:18:22 +0900 [ruby/openssl] Let OpenSSL choose the digest if digest for Openssl::OCSP::BasicResponse#sign is nil. https://github.com/ruby/openssl/commit/27efcd7e1c commit 7a5a90e05351262593ca6e4c1c6b8e797d8ab9c9 Author: Jarek Prokop AuthorDate: 2022-04-12 16:44:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 23:18:20 +0900 [ruby/openssl] Let OpenSSL choose the digest if digest for Openssl::OCSP::Request#sign is nil. https://github.com/ruby/openssl/commit/a1f6cbc261 commit def445303a93c69dd16a9b849b9171d4e89c6dc5 Author: Jeremy Evans AuthorDate: 2022-03-26 05:50:10 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 23:18:18 +0900 [ruby/openssl] Fix test of cipher name to pass in LibreSSL 3.4 LibreSSL 3.5 switched the cipher naming to match OpenSSL. https://github.com/ruby/openssl/commit/bf198278bd commit b5efef37942aa4c2b5e2ec2ab0b231ccd38cbe7a Author: Jeremy Evans AuthorDate: 2022-03-26 05:39:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 23:18:16 +0900 [ruby/openssl] Fix operator precedence in OSSL_OPENSSL_PREREQ and OSSL_LIBRESSL_PREREQ https://github.com/ruby/openssl/commit/b02815271f commit aee36dd7880316a647ac2b3da98c2c1a14bf41c6 Author: Jeremy Evans AuthorDate: 2022-03-26 05:11:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 23:18:14 +0900 [ruby/openssl] Fix build with LibreSSL 3.5 https://github.com/ruby/openssl/commit/e25fb0d0d8 commit 09daf78fb59a8b280887ad1120a57776b5d82e17 Author: twkmd12 <95775763+twkmd12@users.noreply.github.com> AuthorDate: 2022-02-01 18:12:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 23:18:11 +0900 [ruby/openssl] Add 'ciphersuites=' method to allow setting of TLSv1.3 cipher suites along with some unit tests (https://github.com/ruby/openssl/pull/493) Add OpenSSL::SSL::SSLContext#ciphersuites= method along with unit tests. https://github.com/ruby/openssl/commit/12250c7cef commit 0bf2dfa6ac52b8c98116b2dba1225f9da12eb42f Author: Stefan Kaes AuthorDate: 2022-01-04 21:28:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 23:18:09 +0900 [ruby/openssl] ignore pkgconfig when any openssl option is specified https://github.com/ruby/openssl/commit/b23fa75aa3 commit 01025a0055bb5fe1a9a161e86cbd58c8fa2350ae Author: Jeremy Evans AuthorDate: 2022-01-05 04:32:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 23:18:07 +0900 [ruby/openssl] Skip optional wildcard SAN tests on LibreSSL 3.5.0+ RFC 6066 states how some wildcard SAN entries MAY be handled, but it does not say they MUST be handled. LibreSSL 3.5.0 only handles suffix wildcard SANs, not prefix wildcard SANs, or interior wildcard SANs, so return early from the wildcard SAN tests on LibreSSL 3.5.0. Fixes https://github.com/ruby/openssl/pull/471 https://github.com/ruby/openssl/commit/717d7009d6 commit 58e7205c82ad07b949302589e89aad388519c01d Author: Nobuyoshi Nakada AuthorDate: 2022-07-08 19:04:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 19:10:18 +0900 See the environment variable and then check if JIT options conflict commit 7bab7883093df12048c4535b59b04e73f3b3b4ad Author: Nobuyoshi Nakada AuthorDate: 2022-07-08 15:59:25 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 15:59:25 +0900 Simplify BLSR code And suppress unary minus operator to unsigned type warnings by VC. Notes: Merged: https://github.com/ruby/ruby/pull/6108 commit 9958ed61bc0f0156f5ed9fd8f058d964d84cac19 Author: Nobuyoshi Nakada AuthorDate: 2022-07-08 12:11:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 12:11:56 +0900 Use `roomof` macro The masking is not only unnecessary but works only when the masking value is a power of 2. Also suppress unary minus operator to unsigned type warnings. Notes: Merged: https://github.com/ruby/ruby/pull/6108 commit 4a2662ae8b9f64346af82551fdd6756e7497e2f1 Author: Nobuyoshi Nakada AuthorDate: 2022-07-08 11:20:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 11:31:51 +0900 [Bug #18890] Suppress warnings and fix the message ``` test/ruby/test_parse.rb:1384: warning: assigned but unused variable - obj test/ruby/test_pattern_matching.rb:1162: warning: unused literal ignored test/ruby/test_pattern_matching.rb:1165: warning: unused literal ignored test/ruby/test_pattern_matching.rb:1161: warning: assigned but unused variable - a test/ruby/test_pattern_matching.rb:1164: warning: assigned but unused variable - b ``` And a newline should be significant here. commit f1c15f3e941192b2230035ce2aab29c3d6970fca Author: Nobuyoshi Nakada AuthorDate: 2022-07-08 10:41:53 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 10:55:44 +0900 Relax assertion condition for thread local counters Recently `TestThreadInstrumentation#test_join_counters` often fails as ``` <[1, 1, 1]> expected but was <[2, 2, 2]>. ``` Probably it seems that the thread is suspended more than once. There may be no guarantee that the subject thread never be suspended more than once. commit cf991337fbfb197bee9c5b2d081e3a8615b39486 Author: Nobuyoshi Nakada AuthorDate: 2022-07-08 10:41:19 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 10:55:44 +0900 Make a local symbol static commit 3cf2c2e4a111f621c3c23029a55edebf00bbe1b0 Author: Aaron Patterson AuthorDate: 2022-07-01 02:38:48 +0900 Commit: Aaron Patterson CommitDate: 2022-07-08 03:56:25 +0900 Remove ISEQ_MARKABLE_ISEQ flag We don't need this flag anymore. We have all the info we need via the bitmap and the is_entries list. Notes: Merged: https://github.com/ruby/ruby/pull/6084 commit 621e5c568af8881c58eb3c271e01fba5fe76a6a3 Author: Burdette Lamar AuthorDate: 2022-07-08 03:47:55 +0900 Commit: git[bot] CommitDate: 2022-07-08 03:48:09 +0900 [ruby/date] Enhanced RDoc (https://github.com/ruby/date/pull/58) Brings a dozen call-seq schemas into compliance with the doc guide. Adds links to section "Argument start" where needed. Revises (minorly) ::today. Otherwise, does not disturb existing text. https://github.com/ruby/date/commit/9aec11df50 commit 55c5bf27f5afd4bc107456d740ab5e13850ffa1e Author: Burdette Lamar AuthorDate: 2022-07-08 03:15:32 +0900 Commit: git[bot] CommitDate: 2022-07-08 03:15:47 +0900 [ruby/irb] Additions/revisions to help-message (https://github.com/ruby/irb/pull/370) Changed: Added text to options that said just 'same as ruby -whatever'. Added defaults. Removed an errant tab. https://github.com/ruby/irb/commit/dfe454cc33 commit 65ae2bb2e045aa8b668d3c30515f5a6cb3eb68ad Author: Jean Boussier AuthorDate: 2022-07-07 23:28:43 +0900 Commit: Jean Boussier CommitDate: 2022-07-08 02:49:25 +0900 Thread#value: handle threads killed by a fork [Bug #18902] When a thread is killed because we forked, the `value` if left to `Qundef`. Returning it woudl crash the VM. Notes: Merged: https://github.com/ruby/ruby/pull/6103 commit 7dd0a2258880e433b98267ffd95dd4271c7bbf05 Author: David Rodríguez AuthorDate: 2022-07-07 16:57:27 +0900 Commit: git[bot] CommitDate: 2022-07-08 02:22:35 +0900 [rubygems/rubygems] Fix `simulate_windows` helper It should also set the proper class variable so that `Gem.win_platform?` returns true. https://github.com/rubygems/rubygems/commit/0fbf6904d1 commit c8b3bd45cc3cae93ae701333202416838ee6a00c Author: Peter Zhu AuthorDate: 2022-07-07 22:32:43 +0900 Commit: Peter Zhu CommitDate: 2022-07-08 02:14:41 +0900 Fix extconf.rb for OpenSSL 3 without $warnflags On Windows with OpenSSL 3, the gem fails to compile with the following error message: ruby/src/ext/openssl/extconf.rb:188: undefined method \`sub!' for nil:NilClass This is because $warnflags is nil. Notes: Merged: https://github.com/ruby/ruby/pull/6102 commit 4d8f12ba3806c735692429f1920a757024a935cc Author: Matt Valentine-House AuthorDate: 2022-07-07 23:48:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-08 01:07:19 +0900 Fix macro redefinition warning for MacOS Introduced by 7f64989e5c913ef7624e084badd1a43ce65b3ccc ./internal.h:110:9: warning: 'memcpy' macro redefined [-Wmacro-redefined] ^ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/secure/_string.h:62:9: note: previous definition is here ^ 1 warning generated. Notes: Merged: https://github.com/ruby/ruby/pull/6104 commit 587d2d199b3f783d03266d42d066949f8a4824d3 Author: Jean Boussier AuthorDate: 2022-07-07 22:20:35 +0900 Commit: Jean Boussier CommitDate: 2022-07-08 00:49:00 +0900 thread_pthread.c: call SUSPENDED event when entering native_sleep [Bug #18900] Thread#join and a few other codepaths are using native sleep as a way to suspend the current thread. So we should call the relevant hook when this happen, otherwise some thread may transition directly from `RESUMED` to `READY`. Notes: Merged: https://github.com/ruby/ruby/pull/6101 commit 61c7ae4d27d44b19b39fa240cf7edda2eeefc92d Author: Nobuyoshi Nakada AuthorDate: 2022-06-15 11:25:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-07 22:39:59 +0900 Gather heap page size conditions combination When similar combination of conditions are separated in two places, it is harder to make sure the conditional blocks match each other. Notes: Merged: https://github.com/ruby/ruby/pull/6100 commit f36859869f31a4cf10805cc620ee6338b66558d1 Author: Peter Zhu AuthorDate: 2022-07-07 06:30:36 +0900 Commit: Peter Zhu CommitDate: 2022-07-07 22:39:28 +0900 Improve error message for segv in read_barrier_handler If the page_body is a null pointer, then read_barrier_handler will crash with an unrelated message. This commit improves the error message. Before: test.rb:1: [BUG] Couldn't unprotect page 0x0000000000000000, errno: Cannot allocate memory After: test.rb:1: [BUG] read_barrier_handler: segmentation fault at 0x14 Notes: Merged: https://github.com/ruby/ruby/pull/6096 commit d6c98626da706fe5399a2a13f4a934c27c8f4c7b Author: Peter Zhu AuthorDate: 2022-07-07 06:04:22 +0900 Commit: Peter Zhu CommitDate: 2022-07-07 22:39:28 +0900 Fix crash in compaction due to unlocked page The page of src could be partially compacted, so it may contain T_MOVED. Sweeping a page may read objects on this page, so we need to lock the page. Notes: Merged: https://github.com/ruby/ruby/pull/6096 commit d7c5a6d49ba7fe62f7d2bf538be813234db20783 Author: Peter Zhu AuthorDate: 2022-07-07 06:00:13 +0900 Commit: Peter Zhu CommitDate: 2022-07-07 22:39:28 +0900 Fix typo in gc_compact_move The page we're sweeping is on the destination heap `dheap`, not the source heap `heap`. Notes: Merged: https://github.com/ruby/ruby/pull/6096 commit 7f64989e5c913ef7624e084badd1a43ce65b3ccc Author: 卜部昌平 AuthorDate: 2022-07-06 09:18:28 +0900 Commit: 卜部昌平 CommitDate: 2022-07-07 22:10:53 +0900 do not define our own version of memcpy The (sole) use of memcpy in our public header is now replaced to directly call ruby_nonempty_memcpy, and the previous definition of memcpy is now internal-only. [Bug#18893] Notes: Merged: https://github.com/ruby/ruby/pull/6098 commit 8794cc62899c6447fa4451489b9e308e2a890595 Author: Nobuyoshi Nakada AuthorDate: 2021-12-29 19:41:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-07 15:06:10 +0900 Tentatively put macOS CIs back with adding macOS 12 commit 67e54ce4081abaa16774b93ccd33ccbd1d6c6531 Author: Nobuyoshi Nakada AuthorDate: 2022-07-07 13:20:10 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-07 15:06:10 +0900 Fallback `mkdir_p` to `as_mkdir_p` Assume `mkdir -p` to be race-free on recent systems. And we do not provide install-sh anyway. commit cd948429223223f5e299626a4695ab30e43de2ea Author: Nobuyoshi Nakada AuthorDate: 2022-07-02 20:58:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-07 11:33:07 +0900 [Bug #18892] Reset `ARGF.lineno` after reading shebang Notes: Merged: https://github.com/ruby/ruby/pull/6097 commit 7ba5c0633c228b75581c102796a484b6bf515022 Author: Burdette Lamar AuthorDate: 2022-07-07 07:04:47 +0900 Commit: git[bot] CommitDate: 2022-07-07 07:05:01 +0900 [ruby/pstore] Emphasize keys instead of roots, values instead of objects (https://github.com/ruby/pstore/pull/7) Modifies RDoc to Emphasize keys instead of roots, values instead of objects. Code: Renames method #root? to #key? and method #roots to #keys. Aliases method #key as #root and method #keys as #roots. Adds testing for all four methods. https://github.com/ruby/pstore/commit/4436ea0891 commit 4ccaf6285f36713cbbca800a55ea0a38a5df1ccd Author: Aaron Patterson AuthorDate: 2022-07-07 05:20:53 +0900 Commit: Aaron Patterson CommitDate: 2022-07-07 05:21:37 +0900 fix lldb scripts on older lldb python commit dbb23f29cb721e11f9d07e1edefb4c65ef212d37 Author: Burdette Lamar AuthorDate: 2022-07-07 03:57:48 +0900 Commit: git[bot] CommitDate: 2022-07-07 03:58:02 +0900 [ruby/date] [DOC] Enhanced RDoc (https://github.com/ruby/date/pull/57) All things commercial. https://github.com/ruby/date/commit/9d3bc61728 commit c6b38e43b030782fcb95ed57333d69fe75863503 Author: Jean Boussier AuthorDate: 2022-06-30 22:54:26 +0900 Commit: Jean Boussier CommitDate: 2022-07-07 02:57:27 +0900 thread_pthread.c: Remove useless call to pthread_rwlock_init Notes: Merged: https://github.com/ruby/ruby/pull/6083 commit a2e0815e27e7eb35d57a5bd4c09630797e1869fc Author: Noah Gibbs (and/or Benchmark CI) AuthorDate: 2022-07-06 20:47:34 +0900 Commit: Jean Boussier CommitDate: 2022-07-07 00:25:58 +0900 Switch YJIT to using rb_str_buf_append rather than rb_str_append when encodings don't match, as discussed with byroot Notes: Merged: https://github.com/ruby/ruby/pull/6095 commit 906f7cb3e7e6de2b75dc4a4a3c09f98d8bf28388 Author: Jean Boussier AuthorDate: 2022-07-06 19:31:54 +0900 Commit: Jean Boussier CommitDate: 2022-07-07 00:25:58 +0900 vm_opt_ltlt: call rb_str_buf_append directly if RHS is a String `rb_str_concat` does a lot of type checking we can easily bypass. ``` | |compare-ruby|built-ruby| |:--------------|-----------:|---------:| |string_concat | 362.007k| 398.965k| | | -| 1.10x| ``` Notes: Merged: https://github.com/ruby/ruby/pull/6095 commit 3c61e1e77f9e501dd5ef19d6c661ceba6b84cac8 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-07-07 00:13:22 +0900 Commit: GitHub CommitDate: 2022-07-07 00:13:22 +0900 YJIT: add a counter for gc object refs in the machine code (#6089) Add a counter for gc object refs in the machine code This is to gather data for the eventual implementation of a constant pool. Notes: Merged-By: maximecb commit 5ef3c7ea2d1968c87f361b6615699b92cc6e5a9a Author: Nobuyoshi Nakada AuthorDate: 2022-07-06 18:08:31 +0900 Commit: GitHub CommitDate: 2022-07-06 18:08:31 +0900 [Bug #18898] Fallback invalid external encoding to the default Notes: Merged: https://github.com/ruby/ruby/pull/6093 Merged-By: nobu commit 53afacd0365b9bc6cd40f83149c5e4fea76a9932 Author: git[bot] AuthorDate: 2022-07-06 16:03:41 +0900 Commit: git[bot] CommitDate: 2022-07-06 16:03:41 +0900 Update bundled gems list at 2022-07-06 commit 76619bbb1198082e94716874777f282c59d2cc70 Author: Yuta Saito AuthorDate: 2022-07-06 11:14:07 +0900 Commit: Yuta Saito CommitDate: 2022-07-06 11:59:38 +0900 [wasm] get rid of workaround use of older binaryen and update to latest We no longer need to use older version of binaryen since the blocker issue has been resolved https://github.com/WebAssembly/binaryen/issues/4401 Notes: Merged: https://github.com/ruby/ruby/pull/6091 commit eaeb130b11fefe91aaf61f294ea32af76dada74f Author: Nobuyoshi Nakada AuthorDate: 2022-07-03 14:45:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-06 08:32:36 +0900 [Bug #18890] newline should be insignificant after pattern label Notes: Merged: https://github.com/ruby/ruby/pull/6087 commit 902d1a5c513ed6e49e7f577ffe7146d30798b3e9 Author: Brian Le AuthorDate: 2022-07-01 08:20:53 +0900 Commit: git[bot] CommitDate: 2022-07-06 02:59:14 +0900 [rubygems/rubygems] add message when gems are requested to be updated but they are not installed https://github.com/rubygems/rubygems/commit/27953ffe9a commit 6eab8095fa13ba6137f3807ed04188a53d587875 Author: Brian Le AuthorDate: 2022-07-01 08:20:02 +0900 Commit: git[bot] CommitDate: 2022-07-06 02:59:13 +0900 [rubygems/rubygems] output gems already up-to-date regardless if any gems were updated https://github.com/rubygems/rubygems/commit/4ec608a573 commit 5921bfc7ce91aa8079dd8ac4faf873ec911ce320 Author: Nobuyoshi Nakada AuthorDate: 2022-07-05 09:37:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-05 14:40:19 +0900 Add `--stdout-on-failure`, the reverse of `--stderr-on-failure` commit 1b34bd07c18068228188a72f94662cceac50f30e Author: Nobuyoshi Nakada AuthorDate: 2022-07-05 09:31:32 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-05 14:40:19 +0900 Separate failed output option It is unrelated to `GlobOption` at all. commit babdb158d14a626b570db6d42599f1ac2decbed3 Author: Nobuyoshi Nakada AuthorDate: 2022-07-05 13:50:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-05 13:50:45 +0900 Synchronize the test thread not to die before assertions commit 3a9ff9457a5cee72ff5b8dff844f4453fc284bed Author: Nobuyoshi Nakada AuthorDate: 2022-07-05 11:35:14 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-05 11:35:14 +0900 CI: skip the failing test only commit b5f871888eea0c4436cfe40eb44a1502661bd148 Author: Nobuyoshi Nakada AuthorDate: 2022-07-04 12:21:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-05 11:33:47 +0900 CI: skip objspace test on MinGW for now commit a070d4ccebd677a92af5e8350d89079a47fef5ee Author: Nobuyoshi Nakada AuthorDate: 2022-07-05 09:30:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-05 09:30:05 +0900 Local functions should be `static` commit f64bb67d75ae30fe9502b2adbe723eb2566ba552 Author: Burdette Lamar AuthorDate: 2022-07-05 01:59:35 +0900 Commit: git[bot] CommitDate: 2022-07-05 04:12:50 +0900 [ruby/date] Update ext/date/date_core.c https://github.com/ruby/date/commit/8eb1c780fb Co-authored-by: Peter Zhu commit 5fe86666a58c9d73570815a0860372c2ce335234 Author: BurdetteLamar AuthorDate: 2022-07-04 22:53:18 +0900 Commit: git[bot] CommitDate: 2022-07-05 04:12:49 +0900 [ruby/date] Enhanced RDoc https://github.com/ruby/date/commit/e36690f70e commit e323d8e6a20755342d008b86283511c98da04b3d Author: BurdetteLamar AuthorDate: 2022-07-04 21:44:11 +0900 Commit: git[bot] CommitDate: 2022-07-05 04:12:48 +0900 [ruby/date] Enhanced RDoc https://github.com/ruby/date/commit/dcc0742623 commit 6317cf7de8d58f719fe232d50c0a89dbde1b5927 Author: BurdetteLamar AuthorDate: 2022-07-04 05:24:38 +0900 Commit: git[bot] CommitDate: 2022-07-05 04:12:48 +0900 [ruby/date] Enhanced RDoc https://github.com/ruby/date/commit/91c632f156 commit 7212163e7ca4a49137aa31fcb86c4c1c4cdb3846 Author: BurdetteLamar AuthorDate: 2022-07-04 05:18:44 +0900 Commit: git[bot] CommitDate: 2022-07-05 04:12:47 +0900 [ruby/date] Enhanced RDoc https://github.com/ruby/date/commit/5c18ec031e commit 4ec14b63239ba00102bff64153b360dae1544c29 Author: BurdetteLamar AuthorDate: 2022-07-04 05:17:11 +0900 Commit: git[bot] CommitDate: 2022-07-05 04:12:46 +0900 [ruby/date] Enhanced RDoc https://github.com/ruby/date/commit/fd3ae275c3 commit 24c80aea0eb0d621861725428319b32236a050f8 Author: BurdetteLamar AuthorDate: 2022-07-04 05:08:46 +0900 Commit: git[bot] CommitDate: 2022-07-05 04:12:45 +0900 [ruby/date] Enhanced RDoc https://github.com/ruby/date/commit/ac25182c66 commit c90110d146fce051a56a5f4555a02c195e07df0a Author: BurdetteLamar AuthorDate: 2022-07-03 22:45:29 +0900 Commit: git[bot] CommitDate: 2022-07-05 04:12:44 +0900 [ruby/date] Enhanced RDoc https://github.com/ruby/date/commit/f9ecaad2ee commit 6324aaf3d003d96be6b779a9cd92efd6fad70457 Author: BurdetteLamar AuthorDate: 2022-07-03 22:38:05 +0900 Commit: git[bot] CommitDate: 2022-07-05 04:12:43 +0900 [ruby/date] Enhanced RDoc https://github.com/ruby/date/commit/e80fee4f30 commit 890df5f81271e031ae86775b8b8b8e4e4d4640d8 Author: Jean Boussier AuthorDate: 2022-06-29 22:21:11 +0900 Commit: Jean Boussier CommitDate: 2022-07-05 03:04:59 +0900 ObjectSpace.dump: Include string coderange I suspect that some shared pages are invalidated because some static string don't have their coderange set eagerly. So the first time they are scanned, the entire memory page is invalidated. Being able to see the coderange in `ObjectSpace` would help debug this. And in addition `dump` currently call `is_broken_string()` and `is_ascii_string()` which both end up scanning the string and assigning coderange. I think it's undesirable as `dump` should be read only. Notes: Merged: https://github.com/ruby/ruby/pull/6076 commit b92fb7869624cb58475516361505f65f4f8a24d0 Author: git[bot] AuthorDate: 2022-07-04 16:03:51 +0900 Commit: git[bot] CommitDate: 2022-07-04 16:03:51 +0900 Update bundled gems list at 2022-07-04 commit fe6245b4309c855e6aca5b786ad50a72d53d278a Author: Jeremy Evans AuthorDate: 2022-07-04 01:42:44 +0900 Commit: Jeremy Evans CommitDate: 2022-07-04 01:42:44 +0900 Fix rb_fix_mul_fix on OpenBSD/mips64 This fixes invalid and inconsistent results for the Fixnum*Fixnum case where the result of the multiplication does not fit in 64-bit on OpenBSD/mips64. For example: $ for x in 1 23; do ruby31 -e 'p(54306000000000*86400)'; done 14409380628474329524 11410664325873689790 Cases where an argument was Bignum, as well as cases where the result of the multiplication fits in 64-bit are fine: $ for x in 1 23; do ruby31 -e 'p(54306000*86400)'; done 4692038400000 4692038400000 $ for x in 1 23; do ruby31 -e 'p(5430600000000000000000*86400)'; done 469203840000000000000000000 469203840000000000000000000 This was originally discovered by running the tests for the openssl gem on OpenBSD/mips64 and having one test fail for a date far in the future. I eventually traced this to the generic multiplication issue. The underlying cause is using the int128_t type. This avoids use of the int128_t type in this case, falling back to the slower conversion code, which in the overflow case, turns the Fixnums into Bignums, then performs the multiplication. commit 62084e19305c7047b5b979d6f7f33eab1f0f267d Author: Nobuyoshi Nakada AuthorDate: 2022-07-02 23:56:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-03 00:05:53 +0900 Fix leaked global symbols for debug counter commit c617495f8e8e3ef70076fc412172b202e8808981 Author: Nobuyoshi Nakada AuthorDate: 2022-07-02 23:52:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-03 00:05:53 +0900 Fix empty call cache check for debug counter commit d8be7d463d0c0764a9fcd25bdf1c2a0a4cb215a4 Author: Nobuyoshi Nakada AuthorDate: 2022-07-02 22:41:19 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-03 00:05:53 +0900 Suppress -Wstring-concatenation This concatenation of string literals is to not empty the array initialization even if no counter is declared, but warned by clang as suspicious. commit 8c6a2cc24e6fcc49615d24e865f628a9b3606df5 Author: Nobuyoshi Nakada AuthorDate: 2022-07-02 23:24:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-03 00:05:52 +0900 Add check for USE_DEBUG_COUNTER commit 558a9244e9ac49532da99215bef6ec60c376183f Author: BurdetteLamar AuthorDate: 2022-07-01 06:16:25 +0900 Commit: git[bot] CommitDate: 2022-07-02 21:49:13 +0900 [ruby/pstore] Enhanced RDoc https://github.com/ruby/pstore/commit/cb2b9dc9a9 commit 7e8fd40c063298da6bc94ef80f4e0feae808d205 Author: BurdetteLamar AuthorDate: 2022-07-01 05:50:43 +0900 Commit: git[bot] CommitDate: 2022-07-02 21:49:13 +0900 [ruby/pstore] Enhanced RDoc https://github.com/ruby/pstore/commit/7e56730689 commit d7419354acaaad6631ed4b6f82eb90a6a37f6d96 Author: BurdetteLamar AuthorDate: 2022-07-01 05:10:42 +0900 Commit: git[bot] CommitDate: 2022-07-02 21:49:12 +0900 [ruby/pstore] Enhanced RDoc https://github.com/ruby/pstore/commit/23a7f5468f commit 6f26a6cdef9f710613cc4f9f6ba3061b01c484ac Author: BurdetteLamar AuthorDate: 2022-07-01 04:00:06 +0900 Commit: git[bot] CommitDate: 2022-07-02 21:49:11 +0900 [ruby/pstore] Enhanced RDoc https://github.com/ruby/pstore/commit/c12560e59a commit ce5aa6d4af8ea6dd4e670ea822aec57bd32f39ea Author: BurdetteLamar AuthorDate: 2022-07-01 01:49:32 +0900 Commit: git[bot] CommitDate: 2022-07-02 21:49:10 +0900 [ruby/pstore] Enhanced RDoc https://github.com/ruby/pstore/commit/117177c226 commit 2dafa0470b29abd91a2f057819c8baa4a7601de2 Author: BurdetteLamar AuthorDate: 2022-06-30 01:07:50 +0900 Commit: git[bot] CommitDate: 2022-07-02 21:49:09 +0900 [ruby/pstore] Enhanced RDoc https://github.com/ruby/pstore/commit/8f9843ef19 commit 902563a82725e6980158f35e87415ce575c591fc Author: BurdetteLamar AuthorDate: 2022-06-30 00:08:18 +0900 Commit: git[bot] CommitDate: 2022-07-02 21:49:09 +0900 [ruby/pstore] Enhanced RDoc https://github.com/ruby/pstore/commit/8de41c1eed commit 6eeb774ab145e6e04a9a33349bf01ed736421d79 Author: BurdetteLamar AuthorDate: 2022-06-29 06:25:38 +0900 Commit: git[bot] CommitDate: 2022-07-02 21:49:08 +0900 [ruby/pstore] Enhanced RDoc https://github.com/ruby/pstore/commit/c59d4a063e commit 8715ecd04b8bb4976b89913be4e790e5d15c4b74 Author: BurdetteLamar AuthorDate: 2022-06-28 03:16:58 +0900 Commit: git[bot] CommitDate: 2022-07-02 21:49:07 +0900 [ruby/pstore] Enhanced RDoc https://github.com/ruby/pstore/commit/81a266d88c commit 7b78aba53aa0b34800bfd96e9e278258d2a890c8 Author: David Rodríguez AuthorDate: 2022-06-30 18:55:15 +0900 Commit: git[bot] CommitDate: 2022-07-02 19:41:02 +0900 [rubygems/rubygems] Account for default gems not having remote when caching https://github.com/rubygems/rubygems/commit/b93d4de2ff commit 9101269e948d838c916ea8342b8e6edce2e0957c Author: David Rodríguez AuthorDate: 2022-06-30 18:54:53 +0900 Commit: git[bot] CommitDate: 2022-07-02 19:41:02 +0900 [rubygems/rubygems] Move rubygems source specific logic to rubygems source https://github.com/rubygems/rubygems/commit/6aa4c422a7 commit 0f06b8fa3eb4387882adb949c311203d78628833 Author: Nobuyoshi Nakada AuthorDate: 2022-07-02 11:11:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-02 14:46:38 +0900 Relax `not_before` limit Use the value as similar as other tests below. Trying to fix sporadic “not yet valid” failures on some CIs. Notes: Merged: https://github.com/ruby/ruby/pull/6085 commit 829d7266049745e822c7344b36a8788688552d9b Author: Nobuyoshi Nakada AuthorDate: 2022-06-30 01:09:51 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-02 09:15:20 +0900 Fallback to the default JIT only when no JIT is enabled Usually, command line options are given precedence first, environment variables next, and fall back to configuration options at last. Notes: Merged: https://github.com/ruby/ruby/pull/6080 commit 06f4ca503d7106d357eb6af9da4fdd368fbff25a Author: BurdetteLamar AuthorDate: 2022-04-24 04:45:08 +0900 Commit: git[bot] CommitDate: 2022-07-02 07:58:20 +0900 [ruby/bigdecimal] Correct indentation in Kernel#BigDecimal https://github.com/ruby/bigdecimal/commit/3ede8860a6 commit 8f5ad74e406feb9097eb0704efe30ea5af2ea65b Author: Burdette Lamar AuthorDate: 2022-07-02 05:25:05 +0900 Commit: GitHub CommitDate: 2022-07-02 05:25:05 +0900 [DOC] New page for strftime formats (#6074) This new page would be linked from method strftime in Time, Date, and DateTime, replacing the text there. Notes: Merged-By: BurdetteLamar commit 3cf001811950608908b5d092c673572c5357fbbd Author: Nobuyoshi Nakada AuthorDate: 2022-07-01 18:15:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-01 20:55:29 +0900 CI: Add conditions for `test_task` on MinGW commit e0c6e288f0fe4c285dd4e16283835fffaf72e18a Author: Masataka Pocke Kuwabara AuthorDate: 2022-07-01 15:53:04 +0900 Commit: GitHub CommitDate: 2022-07-01 15:53:04 +0900 Specify RBS commit hash to fix test failure on test-bundled-gems (#6082) Update RBS to v2.6.0 and specify RBS commit hash to fix test failure on test-bundled-gems Notes: Merged-By: pocke commit c684b1aa26c51d9163eec06890e990b430dc34c5 Author: Nobuyoshi Nakada AuthorDate: 2022-07-01 09:08:25 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-07-01 09:08:25 +0900 Fix TODO in stringio/truncate_spec.rb commit 5df20a5da57bfce736a6fd7de26c1110e3154b44 Author: Koichi Sasada AuthorDate: 2022-07-01 01:45:39 +0900 Commit: Koichi Sasada CommitDate: 2022-07-01 01:45:39 +0900 stop CI failures. 302f353fd9223d020e48495eaa7a03ce5d539409 seems break the rubyspec. @nobu please check it. commit 302f353fd9223d020e48495eaa7a03ce5d539409 Author: Nobuyoshi Nakada AuthorDate: 2022-07-01 00:49:36 +0900 Commit: git[bot] CommitDate: 2022-07-01 00:52:29 +0900 [ruby/stringio] Fix the result of `StringIO#truncate` so compatible with `File` https://github.com/ruby/stringio/commit/16847fea32 commit b6f6fc6e870d00e5151647f3f14eaa16b8fe145b Author: Dave Schwantes AuthorDate: 2022-06-30 23:26:46 +0900 Commit: GitHub CommitDate: 2022-06-30 23:26:46 +0900 YJIT: Refactor gen_opt_mod (#6078) Refactor gen_opt_mod in YJIT Notes: Merged-By: maximecb commit 2366e14976cd875e0b98321eb339d23016268b72 Author: Dave Schwantes AuthorDate: 2022-06-30 23:24:34 +0900 Commit: GitHub CommitDate: 2022-06-30 23:24:34 +0900 YJIT: Handle 0 total_exits YJIT Status Display (#6079) handle case in YJIT stats where 0 exits causes NaN in the display Notes: Merged-By: maximecb commit b0c639f249165d759596f9579fa985cb30533de6 Author: David Rodríguez AuthorDate: 2022-06-30 16:53:33 +0900 Commit: git[bot] CommitDate: 2022-06-30 18:55:44 +0900 [rubygems/rubygems] Fix unintended double spaces in DSL documentation https://github.com/rubygems/rubygems/commit/b1826876d0 commit 8eb5198ccc7e32a2963325e4f8131f23a495635b Author: Yusuke Endoh AuthorDate: 2022-06-30 17:19:34 +0900 Commit: git[bot] CommitDate: 2022-06-30 18:53:20 +0900 [rubygems/rubygems] Prevent a warning: `*' interpreted as argument prefix http://rubyci.s3.amazonaws.com/ubuntu2004-arm/ruby-master/log/20220630T063003Z.log.html.gz ``` [19606/21662] TestAst#test_not_cared:test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb(none):18: warning: `*' interpreted as argument prefix (none):19: warning: `*' interpreted as argument prefix = 0.00 s ``` https://github.com/rubygems/rubygems/commit/c98f9326e8 commit 7dfaa617a44d28e8b04eafb7d1af2a8da26f5b26 Author: Nobuyoshi Nakada AuthorDate: 2022-06-30 17:04:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-30 17:56:04 +0900 Use `matrix.arch` separated from `matrix.configure` Statically determined value should be set statically. commit f4d70e1cd80d6c70753a34f69c650f2ba70d67f8 Author: Nobuyoshi Nakada AuthorDate: 2022-06-30 16:04:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-30 16:51:39 +0900 Make `FEATURE_SET_P` macro to include `FEATURE_BIT` commit 982cda9a3e908c7ab49632c46f4b1e3c0219f9f2 Author: Nobuyoshi Nakada AuthorDate: 2022-06-26 18:39:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-30 16:31:51 +0900 [Bug #18877] Let `lex_ctxt` not to eat escaped whitespace Notes: Merged: https://github.com/ruby/ruby/pull/6065 commit 4b1f337ef20ad31bc79c36c6e97e97817a013962 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-06-30 15:36:34 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-06-30 15:36:34 +0900 Add more check to debug failures commit a5420b6fc13ede3ed96cd3196265e7919f1146d1 Author: Koichi Sasada AuthorDate: 2022-06-30 11:45:13 +0900 Commit: Koichi Sasada CommitDate: 2022-06-30 13:50:13 +0900 use latest debug.gem If `XDG_RUNTIME_DIR` is available, test-bundled-gems fails with old debug.gem tests. Notes: Merged: https://github.com/ruby/ruby/pull/6081 commit cfc8d7eaec9cd56bcbae0389a1739495bdc58098 Author: Aaron Patterson AuthorDate: 2022-06-25 08:37:53 +0900 Commit: Aaron Patterson CommitDate: 2022-06-30 09:07:42 +0900 Use iseq bitmap when updating references This allows us to delete the disassembly code path for reference updating. Notes: Merged: https://github.com/ruby/ruby/pull/6062 commit 8d157bc80614be1b222ca2158d211399c40d151c Author: Aaron Patterson AuthorDate: 2022-06-28 08:30:32 +0900 Commit: Aaron Patterson CommitDate: 2022-06-30 08:21:48 +0900 Move function to `static inline` so we don't have leaked globals This function shouldn't leak and is only needed during instruction assembly Notes: Merged: https://github.com/ruby/ruby/pull/6069 commit e3ab525f699b5191db70ef095b3d110890441940 Author: Aaron Patterson AuthorDate: 2022-06-28 06:31:15 +0900 Commit: Aaron Patterson CommitDate: 2022-06-30 08:21:48 +0900 Fix ISeq dump / load in array cases We need to dump relative offsets for inline storage entries so that loading iseqs as an array works as well. This commit also has some minor refactoring to make computing relative ISE information easier. This should fix the iseq dump / load as array tests we're seeing fail in CI. Co-Authored-By: John Hawthorn Notes: Merged: https://github.com/ruby/ruby/pull/6069 commit 66eb58d6bd50dd3ad8691fcc8eb72ad4d45bc04c Author: Peter Zhu AuthorDate: 2022-06-30 03:04:04 +0900 Commit: Peter Zhu CommitDate: 2022-06-30 04:11:53 +0900 Refactor tests for moving strings with compaction Notes: Merged: https://github.com/ruby/ruby/pull/6077 commit 95bfea664841a707bfa1db35bb78474693f6228c Author: David Rodríguez AuthorDate: 2022-06-30 01:05:22 +0900 Commit: git[bot] CommitDate: 2022-06-30 04:11:17 +0900 [rubygems/rubygems] Use modern style hashes in Gemfile DSL docs https://github.com/rubygems/rubygems/commit/3f83236c02 commit 118e3edc32c9d1768cd4f33ca18f2c40ce9ae333 Author: Noah Gibbs AuthorDate: 2022-06-30 01:49:46 +0900 Commit: GitHub CommitDate: 2022-06-30 01:49:46 +0900 Add a check-yjit-bindgen-unused target. Add to CI. (#6066) This fails if there are any unused rust-bindgen "allow" entries. For that target we turn on Rust warnings (there are a lot) and grep for the ones that correspond to unused allow entries. I've added check-yjit-bindgen-unused as a dependency of check-yjit-bindings, so unused allow entries will now fail CI. This change also removes our single unused allow entry (VM_CALL.*) which was known to be bad. Notes: Merged-By: maximecb commit bd8ed1f904969f853e747aaa1b942657908a3b00 Author: Nobuyoshi Nakada AuthorDate: 2022-06-29 20:10:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-29 20:10:29 +0900 Do not call `exit()` directly commit 685efac05983dee44ce2d96c24f2fcb96a0aebe2 Author: Nobuyoshi Nakada AuthorDate: 2022-06-29 14:13:15 +0900 Commit: GitHub CommitDate: 2022-06-29 14:13:15 +0900 [Bug #18884] `class` cannot be just followed by modifiers Notes: Merged: https://github.com/ruby/ruby/pull/6064 Merged-By: nobu commit 3051d4bc2a3aa5f0df93503f6a137c47a9114717 Author: Ian Ker-Seymer AuthorDate: 2022-06-29 08:17:04 +0900 Commit: git[bot] CommitDate: 2022-06-29 09:53:14 +0900 [rubygems/rubygems] Support ruby 2.3 and 2.4 https://github.com/rubygems/rubygems/commit/3a9205df36 commit 50e576292b26010470f55e6cc89a0cec680f92d1 Author: Ian Ker-Seymer AuthorDate: 2022-06-29 06:33:45 +0900 Commit: git[bot] CommitDate: 2022-06-29 09:53:14 +0900 [rubygems/rubygems] Upgrade rb-sys to 0.9.14 https://github.com/rubygems/rubygems/commit/c9adf3ef1c commit a16de43f23c0ca160ee3bf3c8655a6ebb586e8fe Author: David Rodríguez AuthorDate: 2022-06-22 21:24:19 +0900 Commit: git[bot] CommitDate: 2022-06-29 03:25:46 +0900 [rubygems/rubygems] Add `gem env user_gemhome` and `gem env user_gemdir` https://github.com/rubygems/rubygems/commit/14d3f80df6 commit f0fab24241d69d1a89ab764b34cfe74807b1b2d3 Author: David Rodríguez AuthorDate: 2022-06-22 21:15:05 +0900 Commit: git[bot] CommitDate: 2022-06-29 03:25:46 +0900 [rubygems/rubygems] Add missing test for user installation directory https://github.com/rubygems/rubygems/commit/5ab8aa2a45 commit 1098fdf890d66d624560c4150fb403eff2e2e464 Author: David Rodríguez AuthorDate: 2022-06-22 21:11:06 +0900 Commit: git[bot] CommitDate: 2022-06-29 03:25:45 +0900 [rubygems/rubygems] Also document `gem env` argument aliases https://github.com/rubygems/rubygems/commit/6d841ccbd4 commit 7a33d3df6a2c0a9929722ccefad1f3b3a9d88263 Author: David Rodríguez AuthorDate: 2022-06-22 21:10:35 +0900 Commit: git[bot] CommitDate: 2022-06-29 03:25:45 +0900 [rubygems/rubygems] Document better names for `gem env` arguments I think `gem env home` and `gem env path` read very nice. https://github.com/rubygems/rubygems/commit/b89da79456 commit 59273ff6e2648ff9aefe894820b355083345ba4e Author: Burdette Lamar AuthorDate: 2022-06-29 00:39:44 +0900 Commit: git[bot] CommitDate: 2022-06-29 00:39:59 +0900 [ruby/fileutils] [DOC] Changes to examples (https://github.com/ruby/fileutils/pull/96) * Changes to examples https://github.com/ruby/fileutils/commit/346a71b2cb commit a415a3de05e0b61fbed44d5ecba4497d8f096351 Author: st0012 AuthorDate: 2022-06-29 00:17:07 +0900 Commit: git[bot] CommitDate: 2022-06-29 00:23:18 +0900 [ruby/irb] Properly reset USE_COLORIZE after changing it in tests Some context tests assigns USE_COLORIZE to false and never change it back. This can potentially affect other tests' result as the default should be nil (activated) instead. https://github.com/ruby/irb/commit/986eb16ece commit 69337a65b2bd3e5bc0260f76221620e94248c8af Author: Tomas Volf AuthorDate: 2022-06-24 17:31:07 +0900 Commit: git[bot] CommitDate: 2022-06-28 23:31:33 +0900 [rubygems/rubygems] Fix test_install_location_extra_slash on alpine Under POSIX behavior of leading // is implementation defined. Musl does preserve it in realpath, glibc does not. That means the test was failing when executed on alpine linux. Original issue #508 was about // in the path, not about leading ones. When executed in such environment, the test will still test what it should when the explicit mangling of the path is not done. Fixes https://github.com/rubygems/rubygems/pull/5652 https://github.com/rubygems/rubygems/commit/0fa7373bf6 commit 7d211c93af2253c5f5a4eb988a362f3220965980 Author: st0012 AuthorDate: 2022-06-28 22:47:28 +0900 Commit: git[bot] CommitDate: 2022-06-28 22:57:17 +0900 [ruby/irb] Color.colorable? needs to consider the condition when irb is not loaded ruby/debug uses `irb/color` selectively: https://github.com/ruby/debug/blob/0ac22406bb8f65bc76f9f5576a00c729cac693af/lib/debug/color.rb#L4 And in that case, `IRB.conf` won't be defined. So Color.colorable? needs to consider that. This also fixes the Ruby trunk CI. https://github.com/ruby/irb/commit/b2cd07e795 commit 44c1316293f80abaa0e76b3818322544b9372a97 Author: Stan Lo AuthorDate: 2022-06-28 22:30:36 +0900 Commit: git[bot] CommitDate: 2022-06-28 22:30:42 +0900 [ruby/irb] Centralize coloring control (https://github.com/ruby/irb/pull/374) * Use colorable: argument as the only coloring control * Centalize color controling logic at Color.colorable? There are 2 requirements for coloring output: 1. It's supported on the platform 2. The user wants it: `IRB.conf[:USE_COLORIZE] == true` Right now we check 1 and 2 separately whenever we colorize things. But it's error-prone because while 1 is the default of `colorable` parameter, 2 always need to manually checked. When 2 is overlooked, it causes issues like https://github.com/ruby/irb/pull/362 And there's 0 case where we may want to colorize even when the user disables it. So I think we should merge 2 into `Color.colorable?` so it can be automatically picked up. * Add tests for all inspect modes * Simplify inspectors' coloring logic * Replace use_colorize? with Color.colorable? * Remove Context#use_colorize cause it's redundant https://github.com/ruby/irb/commit/1c53023ac4 commit 5ccdcd81685cfedd31344690fdb0fd9fc001e3ca Author: Nobuyoshi Nakada AuthorDate: 2022-06-28 20:18:32 +0900 Commit: git[bot] CommitDate: 2022-06-28 21:24:59 +0900 [ruby/rdoc] Remove dead code https://github.com/ruby/rdoc/commit/f727854bd5 commit 5e66525e4156c27c625a529f1803d08d15e20fb7 Author: Nobuyoshi Nakada AuthorDate: 2022-06-28 20:15:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-28 20:19:05 +0900 [DOC] Document `Process::Tms` commit 131422ceea4e1970e68907c337976b898a797d8a Author: Nobuyoshi Nakada AuthorDate: 2022-06-28 19:40:27 +0900 Commit: git[bot] CommitDate: 2022-06-28 20:17:30 +0900 [ruby/rdoc] Support attributes defined by `rb_struct_define` https://github.com/ruby/rdoc/commit/854b370763 commit 98bf8c83fa4d5d36544a3d7a335a759de6529ab6 Author: Nobuyoshi Nakada AuthorDate: 2022-06-28 15:40:32 +0900 Commit: git[bot] CommitDate: 2022-06-28 15:49:05 +0900 [ruby/rdoc] Refinement is added since ruby 3.1 https://github.com/ruby/rdoc/commit/c051eb90d1 commit 51be2cf6d23466e173ad66eac9a4b3ae32097cc4 Author: Nobuyoshi Nakada AuthorDate: 2022-06-28 14:29:12 +0900 Commit: git[bot] CommitDate: 2022-06-28 14:51:49 +0900 [ruby/rdoc] Parse also InitVM-prefixed functions Initialization depending on VM is separated. https://github.com/ruby/rdoc/commit/030d10fccd commit 5da31b62b0c193c5d574ddba79f321b6802c0753 Author: Noah Gibbs (and/or Benchmark CI) AuthorDate: 2022-06-13 22:53:09 +0900 Commit: Aaron Patterson CommitDate: 2022-06-28 01:26:18 +0900 Make sure string-operation assertions happen inside a method to be sure YJIT will JIT them. Notes: Merged: https://github.com/ruby/ruby/pull/6014 commit 0fab06f3c33999d7366036440dbc7ce6d16ac792 Author: Noah Gibbs (and/or Benchmark CI) AuthorDate: 2022-06-14 00:17:06 +0900 Commit: Aaron Patterson CommitDate: 2022-06-28 01:25:57 +0900 Separate Type::String into Type::CString and Type::TString. Also slightly broaden the cases where << on two strings will generate specialised code rather than a plain method call. Notes: Merged: https://github.com/ruby/ruby/pull/6022 commit f9f85a513b9b6580dcff03872391cf387d0105b5 Author: David Rodríguez AuthorDate: 2022-06-26 04:40:34 +0900 Commit: git[bot] CommitDate: 2022-06-27 23:35:45 +0900 [rubygems/rubygems] Print error messages just once in verbose mode When running a command with the `--verbose` flag that ends up raising a `BundlerError`, Bundler will unnecessarily print the error twice. This commit fixes the issue by removing the duplicate logging. https://github.com/rubygems/rubygems/commit/689004a164 commit 8c6c3e30f3a86ba0b697a0d99efe8ff4585c4a42 Author: pocari AuthorDate: 2022-06-27 22:28:34 +0900 Commit: git[bot] CommitDate: 2022-06-27 22:28:49 +0900 [ruby/reline] Enable to change the background color of dialogs. (https://github.com/ruby/reline/pull/413) https://github.com/ruby/reline/commit/bd49537964 commit b6b9a6190def53aa53ac816a51034fa1c96ed70b Author: Nobuyoshi Nakada AuthorDate: 2022-06-27 13:17:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-27 17:52:13 +0900 Check availability of `utimensat` on macOS commit 6ba52647c3d2b3a0060e0b0edc95f46c77a11944 Author: Nobuyoshi Nakada AuthorDate: 2022-06-27 17:30:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-27 17:38:07 +0900 mac: Remove debug option from MJIT_DEBUGFLAGS Not to generate .dSYM directories by MJIT runs, which are left in large numbers after each test. commit f83c5de6d54c5c6384effde51c02b34d798e5056 Author: David Rodríguez AuthorDate: 2022-06-27 02:08:25 +0900 Commit: git[bot] CommitDate: 2022-06-27 17:03:24 +0900 [rubygems/rubygems] Improve error message when `operating_system.rb` fails to load Show an absolute path instead of an unhelpful relative path. https://github.com/rubygems/rubygems/commit/f1eed36e2f commit 232e2f598103c8eda37d08913665b72b6f787e3f Author: Takashi Kokubun AuthorDate: 2022-06-27 13:00:03 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-27 13:00:04 +0900 Skip TupleSpaceProxyTest on MINGW64 too It wasn't specific to UCRT64 https://github.com/ruby/ruby/runs/7062992464 commit c3eb0437f2454ef59aa605366bbd3901892f0071 Author: Jeremy Evans AuthorDate: 2022-06-27 04:39:16 +0900 Commit: Jeremy Evans CommitDate: 2022-06-27 04:39:16 +0900 Fix Process.clock_gettime specs on OpenBSD commit fc8020c68eb9f640185a1bce322eba6605bde151 Author: Nobuyoshi Nakada AuthorDate: 2022-06-27 00:20:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-27 01:08:46 +0900 [Bug #18879] Fix macOS version detections macOS's AvailabilityMacros.h does not contain macros for future versions. If a version macro is not defined, consider only earlier versions to be targeted. commit 49d59215506a30c8a11766627f7af0cdfe0de9d4 Author: Alan Wu AuthorDate: 2022-06-26 22:24:22 +0900 Commit: Alan Wu CommitDate: 2022-06-26 22:24:22 +0900 Fix Rinda test teardown for omitted tests New test failures on MINGW appeared after c2e37c8ff7da395f33fae546d9ae9e2408fc9236. 1) Error: Rinda::TupleSpaceProxyTest#test_00_template: NoMethodError: undefined method `stop_service' for nil:NilClass D:/a/ruby/ruby/src/test/rinda/test_rinda.rb:516:in `teardown' 2) Error: Rinda::TupleSpaceProxyTest#test_ruby_talk_264062: NoMethodError: undefined method `stop_service' for nil:NilClass D:/a/ruby/ruby/src/test/rinda/test_rinda.rb:516:in `teardown' Teardown happens even when the test is omitted. See: https://github.com/ruby/ruby/runs/7058984522 commit d3d5ef0cca160fca538c7f556c5a6e08df5847e6 Author: Benoit Daloze AuthorDate: 2022-06-26 21:50:14 +0900 Commit: Benoit Daloze CommitDate: 2022-06-26 21:50:14 +0900 Update to ruby/spec@ab32a1a commit f616e816372d14e605879d2e43c7fbdda29ef837 Author: Benoit Daloze AuthorDate: 2022-06-26 21:50:13 +0900 Commit: Benoit Daloze CommitDate: 2022-06-26 21:50:13 +0900 Update to ruby/mspec@78b5d86 commit 2085201176775c1c0b6fd0c4791dbdad6d68c37f Author: Alan Wu AuthorDate: 2022-06-26 21:22:44 +0900 Commit: Alan Wu CommitDate: 2022-06-26 21:36:10 +0900 YJIT: Undef YJIT_SUPPORTED_P for hygiene YJIT_BUILD is more relevant outside of YJIT. commit c2e37c8ff7da395f33fae546d9ae9e2408fc9236 Author: Takashi Kokubun AuthorDate: 2022-06-26 15:36:11 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-26 15:36:14 +0900 Try skipping TupleSpaceProxyTest on MinGW UCRT64 As you all know, MinGW UCRT64 CI has randomly got stuck despite its "Finished tests" output. Looking at the logs closely, it seems like all of the recent such reproductions end with the following output: ``` Retrying hung up testcases... [ 1/14] Rinda::TupleSpaceProxyTest#test_ruby_talk_264062 = 0.21 s [ 2/14] Rinda::TupleSpaceProxyTest#test_00_template = 0.01 s [ 3/14] Rinda::TupleSpaceProxyTest#test_inp_rdp = 0.00 s [ 4/14] Rinda::TupleSpaceProxyTest#test_core_03_notify = 0.01 s [ 5/14] Rinda::TupleSpaceProxyTest#test_00_renewer = 0.01 s [ 6/14] Rinda::TupleSpaceProxyTest#test_cancel_02 = 0.11 s [ 7/14] Rinda::TupleSpaceProxyTest#test_00_DRbObject = 0.00 s [ 8/14] Rinda::TupleSpaceProxyTest#test_core_02 = 0.11 s [ 9/14] Rinda::TupleSpaceProxyTest#test_core_01 = 0.11 s [10/14] Rinda::TupleSpaceProxyTest#test_remote_array_and_hash = 0.01 s [11/14] Rinda::TupleSpaceProxyTest#test_00_tuple = 0.00 s [12/14] Rinda::TupleSpaceProxyTest#test_take_bug_8215 = 0.41 s [13/14] Rinda::TupleSpaceProxyTest#test_cancel_01 = 0.11 s [14/14] Rinda::TupleSpaceProxyTest#test_symbol_tuple = 0.01 s Finished tests in 719.252845s, 29.4292 tests/s, 3838.7154 assertions/s. 21167 tests, 2761007 assertions, 0 failures, 0 errors, 708 skips ``` https://github.com/ruby/ruby/runs/7057789554 While it seems to be retried successfully, given that it hungs up once and this appears all the time, this test class seems a bit suspicious. To check if it's related, let me try disabling this for now. commit 0e5f9afff6051d209d032abac23ec961d5d52d48 Author: Nobuyoshi Nakada AuthorDate: 2022-06-26 15:21:22 +0900 Commit: git[bot] CommitDate: 2022-06-26 15:23:33 +0900 [ruby/irb] Set prompt mode explictly Fix https://github.com/ruby/irb/pull/353 https://github.com/ruby/irb/commit/7db93f9326 commit a2b3f2014cf15daa4b608b82a8432b46a13c0e54 Author: Nobuyoshi Nakada AuthorDate: 2022-06-26 15:09:56 +0900 Commit: git[bot] CommitDate: 2022-06-26 15:23:32 +0900 [ruby/irb] Require stringio to use StringIO https://github.com/ruby/irb/commit/e024ab716b commit e0bfdb23af3f182d7605a6ac3c93b07001d9045c Author: Peter Jones AuthorDate: 2022-03-25 05:48:27 +0900 Commit: git[bot] CommitDate: 2022-06-26 14:40:48 +0900 [ruby/irb] Ensure stdout is a TTY before calling winsize When outputting a (possibly truncated) value, IRB will query the window size. However, if IRB was piped to another process, stdout will no longer be a TTY and will not support the `winsize` method. This fix ensure that stdout is a TTY. https://github.com/ruby/irb/commit/125de5eeea commit a782d76fbecd5d7cac0574eb6b994be5a4f9f8fd Author: David Rodríguez AuthorDate: 2022-06-22 03:21:14 +0900 Commit: git[bot] CommitDate: 2022-06-26 11:16:11 +0900 [rubygems/rubygems] Fix pending Bundler specs When testing under the ruby/ruby setup, mkmf.rb needs to the `$extout` global variable set properly. This is because, in this particular case, the `ruby.h` header needed to compile extensions is constructed from `$(extout)/include($arch)/ruby/config.h` but `$extout` is not set by default. I tried to fix this in mkmf.rb itself but I couldn't figure it. But setting it externally to workaround the issue fixes the specs, so I'll start with that. Also setting it externally causes issues when running specs upstream against Ruby 2.3 (I guess because of some difference with Ruby 2.3 mkmf.rb implementation). So I'm avoiding doing it on Ruby 2.3 to woraround that. https://github.com/rubygems/rubygems/commit/d782984585 commit 56809537a46417d4c0f93de9ea9fc9a623ea83f1 Author: Tomas Volf AuthorDate: 2022-06-24 16:21:47 +0900 Commit: git[bot] CommitDate: 2022-06-26 11:15:43 +0900 [rubygems/rubygems] Clean up temporary directory after generate_index --update While generate_index did clean up temporary directory, when running with --update flag, that did not happen and the temporary directory was left behind. This commit fixes that and modifies tests in order to make sure this is not reintroduced later on. Fixes https://github.com/rubygems/rubygems/pull/5635. https://github.com/rubygems/rubygems/commit/9fa34dc329 commit f159bbd17da88a7f456e0ec7fbf7890135d456a3 Author: Nobuyoshi Nakada AuthorDate: 2022-06-25 19:05:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-25 19:09:06 +0900 Prevent accidental use of assert_raises commit d2166c09b08fc144123e5a7eef69b8921bfced35 Author: Samuel Williams AuthorDate: 2022-06-18 15:03:51 +0900 Commit: Samuel Williams CommitDate: 2022-06-25 18:17:13 +0900 Copy `IO#wait*` methods from `io-wait` gem to `io.c`. Notes: Merged: https://github.com/ruby/ruby/pull/6036 commit 50e13870bffa3561be13faa31c3fcba6b6d1aceb Author: Nobuyoshi Nakada AuthorDate: 2022-06-25 18:10:38 +0900 Commit: git[bot] CommitDate: 2022-06-25 18:10:46 +0900 [ruby/io-wait] Bump up https://github.com/ruby/io-wait/commit/0fa6e3f7ba commit d281347abbbe7f3b588646977a21b8f929aaa5bb Author: Samuel Williams AuthorDate: 2022-06-25 17:12:21 +0900 Commit: git[bot] CommitDate: 2022-06-25 17:12:26 +0900 [ruby/io-wait] Fix usage of `assert_raises` -> `assert_raise`. (https://github.com/ruby/io-wait/pull/20) https://github.com/ruby/io-wait/commit/c5c6abbb5c commit f9c8d8088378981385f6acd18d2fe9fedcd7ab85 Author: Samuel Williams AuthorDate: 2022-06-25 16:21:37 +0900 Commit: git[bot] CommitDate: 2022-06-25 16:21:54 +0900 [ruby/io-wait] Don't add `IO#wait*` methods when `RUBY_IO_WAIT_METHODS` is defined by Ruby. (https://github.com/ruby/io-wait/pull/19) * Fix return value compatibility with Ruby 2.x. * Don't add `IO#wait*` methods in Ruby 3.2+. https://github.com/ruby/io-wait/commit/54c504d089 commit 2b4a1ad58429c69483160ca86eaaeb544218818e Author: Shannon Skipper AuthorDate: 2022-06-25 04:12:22 +0900 Commit: Samuel Williams CommitDate: 2022-06-25 08:29:08 +0900 Fix a variable name typo in the docs Notes: Merged: https://github.com/ruby/ruby/pull/6060 commit d7cc380666058dab967a8b4f96782967ce3efc0d Author: Jean Boussier AuthorDate: 2022-06-24 18:30:59 +0900 Commit: Jean Boussier CommitDate: 2022-06-25 07:05:00 +0900 iseq.c: Use ntz_intptr for faster bitmap scan Notes: Merged: https://github.com/ruby/ruby/pull/6059 commit 87e2e3f383fde65a034d3fe5a1cf9c5e2de6950b Author: Aaron Patterson AuthorDate: 2022-06-25 06:08:36 +0900 Commit: Aaron Patterson CommitDate: 2022-06-25 07:04:00 +0900 Dump inline storage partition information to binary format ISeqs loaded from binary were breaking because the storage partition calculation had bugs in it. Specifically it couldn't take in to account the case when inline storage was overallocated (for example when we allocate inline storage for an instruction but peephole optimization eliminates that instruction). `RUBY_ISEQ_DUMP_DEBUG=to_binary make test-all` would break, and this patch fixes it Notes: Merged: https://github.com/ruby/ruby/pull/6061 commit 12a5fa408bd318f8fb242e86beb225f2dcae8df9 Author: David Rodríguez AuthorDate: 2022-06-23 18:22:36 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-06-24 10:52:02 +0900 Sync RubyGems & Bundler with upstream repo Notes: Merged: https://github.com/ruby/ruby/pull/6054 commit 333754ace8ae9bc5d2dfb4aee160fcfa0f38350d Author: Alan Wu AuthorDate: 2022-06-24 09:27:02 +0900 Commit: Alan Wu CommitDate: 2022-06-24 09:27:02 +0900 YJIT: Add regression test for local type tracking The test in [1] was removed because it stopped working when we limited the power of Kernel#binding in [2]. However, the underlying issue could still be reproduced using blocks. Add back a regression test. I tested the test by commenting out the fix from [1]. [1]: 54c91042ed61a869d4a66fc089b21f56d165265f [2]: 343ea9967e4a6b279eed6bd8e81ad0bdc747f254 commit 0b58059f15d8ec7bd9dbe1638a77b4a531b0df25 Author: Aaron Patterson AuthorDate: 2022-06-24 08:02:42 +0900 Commit: Aaron Patterson CommitDate: 2022-06-24 08:52:00 +0900 Free bitmap buffer if it's not used If the iseqs don't have any objects in them that need marking, then immediately free the bitmap buffer Notes: Merged: https://github.com/ruby/ruby/pull/6058 commit 8d63a0470392f3b5810941bdf36f23d2122df16a Author: Aaron Patterson AuthorDate: 2022-06-24 07:46:53 +0900 Commit: Aaron Patterson CommitDate: 2022-06-24 08:52:00 +0900 Flatten bitmap when there is only one element We can avoid allocating a bitmap when the number of elements in the iseq is fewer than the size of an iseq_bits_t Notes: Merged: https://github.com/ruby/ruby/pull/6058 commit eb1a84a9c328acf3f77249617115208eacf396cd Author: Alan Wu AuthorDate: 2022-06-24 07:12:25 +0900 Commit: Alan Wu CommitDate: 2022-06-24 07:12:25 +0900 When YJIT is not built, hide options and use MJIT for --jit YJIT is now a build-time opt-in so on platforms that YJIT could support it could still be unavailable due to user discretion. Use MJIT for --jit and don't display YJIT related command line options in --help when YJIT is not included in the build. commit 1ccdb1a25103ee8ea23ff92ebc3d03990f098f17 Author: Aaron Patterson AuthorDate: 2022-06-23 08:27:58 +0900 Commit: Aaron Patterson CommitDate: 2022-06-24 06:01:46 +0900 Update vm_core.h Co-authored-by: Tomás Coêlho <36938811+tomascco@users.noreply.github.com> Notes: Merged: https://github.com/ruby/ruby/pull/6053 commit e23540e5666664e23f2adecdc2cc591f3ff6fe2f Author: Aaron Patterson AuthorDate: 2022-06-18 07:28:14 +0900 Commit: Aaron Patterson CommitDate: 2022-06-24 06:01:46 +0900 Speed up ISeq by marking via bitmaps and IC rearranging This commit adds a bitfield to the iseq body that stores offsets inside the iseq buffer that contain values we need to mark. We can use this bitfield to mark objects instead of disassembling the instructions. This commit also groups inline storage entries and adds a counter for each entry. This allows us to iterate and mark each entry without disassembling instructions Since we have a bitfield and grouped inline caches, we can mark all VALUE objects associated with instructions without actually disassembling the instructions at mark time. [Feature #18875] [ruby-core:109042] Notes: Merged: https://github.com/ruby/ruby/pull/6053 commit b180ffa62270dc32bb69167822b4c698def5c8f7 Author: Nobuyoshi Nakada AuthorDate: 2022-06-23 22:51:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-23 22:52:45 +0900 Fix warnings by old gcc * Use PRIxSIZE instead of "z" * Fix sign-compare warning * Suppress unused-but-set-variable warning commit 41cdf9b11457992f49f1252db83de4280456679e Author: Nobuyoshi Nakada AuthorDate: 2022-06-23 20:30:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-23 22:52:45 +0900 Show flags instead of `-s` option in `GNUMAKEFLAGS` commit 961543945ff9ba0a4744ec4038349318cae78c9e Author: Nobuyoshi Nakada AuthorDate: 2022-06-22 20:20:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-23 22:52:45 +0900 Suppress notes for old gcc commit 2f7c0f656ea42f9ad2ca3c1fbfabcff98ce59ee3 Author: Nobuyoshi Nakada AuthorDate: 2022-06-22 19:38:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-23 22:52:45 +0900 Pass LDFLAGS via environment variable commit 6f229da2c07aec3441078248d7fd2fe844e8bc92 Author: David Rodríguez AuthorDate: 2022-06-22 01:45:45 +0900 Commit: git[bot] CommitDate: 2022-06-23 18:17:37 +0900 [rubygems/rubygems] Fix standalone script generation for statically linked dev ruby https://github.com/rubygems/rubygems/commit/4d0d7b3c97 commit 4f5eb48dead5c82b966c1fdebc890cf9d3010d86 Author: David Rodríguez AuthorDate: 2022-06-22 03:02:17 +0900 Commit: git[bot] CommitDate: 2022-06-23 18:17:08 +0900 [rubygems/rubygems] Fix `bundle package --no-install` no longer skipping install This is a regression from https://github.com/rubygems/rubygems/commit/cf749f8ffabd. The funny thing is that we have a spec for this feature, so it was unclear how we regressed here. It turns out there was a bug in one of our negative matchers checking that gems ARE NOT included in a bundle. This commit fixes the bug in the negative matcher and reverts https://github.com/rubygems/rubygems/commit/cf749f8ffabd (with a slightly simpler diff). https://github.com/rubygems/rubygems/commit/3f9a4ff32a commit c25c1d4e54c51594cbc6a6d51ae79885bea7a7b3 Author: Nobuyoshi Nakada AuthorDate: 2022-06-23 16:45:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-23 16:45:05 +0900 Non-void functions must return value commit 2361a1a53e93ededcf99289650124cf7a2b064d4 Author: Nobuyoshi Nakada AuthorDate: 2022-06-23 16:02:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-23 16:42:57 +0900 Get rid of a nasal demon On platforms not having `typeof`, `ccan_container_off_var()` macro subtracts the pointer variable from the member address pointed by that variable. commit 744d17ff6c33b09334508e8110007ea2a82252f5 Author: Alan Wu AuthorDate: 2021-07-09 07:23:39 +0900 Commit: Alan Wu CommitDate: 2022-06-22 21:30:39 +0900 Fix infinite loop when b_return TracePoint throws Previously, we didn't pop the frame that runs the TracePoint hook for b_return events for blocks running as methods (bmethods). In case the hook raises, that formed an infinite loop during stack unwinding in hook_before_rewind(). [Bug #18060] Notes: Merged: https://github.com/ruby/ruby/pull/4638 commit e6f92cada1cf8026d0dc6dbd11867ba9a994f4d6 Author: Nobuyoshi Nakada AuthorDate: 2022-06-16 01:15:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-22 18:32:22 +0900 Refactor compilations workflow Now some entries need multiple variables for customization, and only one environment variable per entry is not enough. To solve it, dccfff943c3e has introduced overriding variables by `env` key for each entries. This commit uses `env` keys for the other environment variables too, instead of appending to `$GITHUB_ENV`. Notes: Merged: https://github.com/ruby/ruby/pull/6051 commit 812354ace4933a94979cde8e88348e8ab0abac30 Author: Takuya Noguchi AuthorDate: 2022-06-22 11:40:13 +0900 Commit: git[bot] CommitDate: 2022-06-22 13:40:21 +0900 [rubygems/rubygems] Bundler: fix man page for bundle-add Follows up https://github.com/rubygems/bundler/pull/5610 Signed-off-by: Takuya Noguchi https://github.com/rubygems/rubygems/commit/0c4df2b8ca commit 0c1f64396fe351bb47e7ce46354da3eb98d41d40 Author: John Hawthorn AuthorDate: 2022-06-16 13:58:16 +0900 Commit: John Hawthorn CommitDate: 2022-06-22 10:33:51 +0900 Skip protected ancestry guard for FCALLs in YJIT Notes: Merged: https://github.com/ruby/ruby/pull/5643 commit 9312f4bf62224cc0a11175cb6f9b7d0dd840a491 Author: John Hawthorn AuthorDate: 2022-03-12 04:48:02 +0900 Commit: John Hawthorn CommitDate: 2022-06-22 10:33:51 +0900 Allow method caching of protected FCALLs Notes: Merged: https://github.com/ruby/ruby/pull/5643 commit a580dd77377c87754b437efb1a02cccc1554dafd Author: John Hawthorn AuthorDate: 2022-06-17 05:28:39 +0900 Commit: John Hawthorn CommitDate: 2022-06-22 10:33:51 +0900 Don't check protected method ancestry on fcall If we are making an FCALL, we know we are calling a method on self. This is the same check made for private method visibility, so it should also guarantee we can call a protected method. Notes: Merged: https://github.com/ruby/ruby/pull/5643 commit 87a560a0570adf51bd37f9d3da5086db3e3f27a0 Author: Jemma Issroff AuthorDate: 2022-06-22 05:12:27 +0900 Commit: Aaron Patterson CommitDate: 2022-06-22 10:16:10 +0900 Add T_STRUCT to lldb inspect helper Notes: Merged: https://github.com/ruby/ruby/pull/6052 commit fdd1102550d375be4302ac8d2e081797de00a205 Author: Burdette Lamar AuthorDate: 2022-06-22 02:23:06 +0900 Commit: git[bot] CommitDate: 2022-06-22 02:23:10 +0900 [ruby/fileutils] Clarify difference between cp_r and install (https://github.com/ruby/fileutils/pull/95) https://github.com/ruby/fileutils/commit/94a599e69f commit 1f067e775d8629ac3b33f96dd885d5f996e787f3 Author: Benoit Daloze AuthorDate: 2022-06-22 01:40:28 +0900 Commit: Benoit Daloze CommitDate: 2022-06-22 01:40:28 +0900 Clarify documentation of Kernel#require_relative commit 2e81fd764b9046389f432181b5b3a3192621bde7 Author: Burdette Lamar AuthorDate: 2022-06-21 23:16:20 +0900 Commit: git[bot] CommitDate: 2022-06-21 23:16:24 +0900 [ruby/fileutils] Correct method references for secure removal (https://github.com/ruby/fileutils/pull/93) https://github.com/ruby/fileutils/commit/42c9685826 commit 1002998c6df5a5cc4b9dd42bee371797a131ee44 Author: Burdette Lamar AuthorDate: 2022-06-21 22:42:27 +0900 Commit: git[bot] CommitDate: 2022-06-21 22:42:39 +0900 [ruby/fileutils] [DOC] Adding 'Related' (https://github.com/ruby/fileutils/pull/92) https://github.com/ruby/fileutils/commit/fc3cc28397 commit 15769832b2375b6ac8dfaa3887e3ac9462f87584 Author: Hiroshi SHIBATA AuthorDate: 2022-06-21 20:43:42 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-06-21 20:43:42 +0900 Added readline wrapper entries under the doc directory commit a9db5be0cac1e02806b6634831cda958182eaabe Author: Hiroshi SHIBATA AuthorDate: 2022-06-21 20:41:05 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-06-21 20:41:12 +0900 Added error_highlight entries under the doc directory commit 441cfa966c719c6b1d1c70fcb50d589ea4a25dfd Author: Hiroshi SHIBATA AuthorDate: 2022-06-21 20:38:42 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-06-21 20:38:42 +0900 Added reline entry to standard_library doc commit 641a73290963854308880e98b7037967d668e1ba Author: git[bot] AuthorDate: 2022-06-21 16:05:34 +0900 Commit: git[bot] CommitDate: 2022-06-21 16:05:34 +0900 Update bundled gems list at 2022-06-21 commit 7ef67bf9a22ebc1c85530a71a1f61e83aeae1ecd Author: 卜部昌平 AuthorDate: 2022-06-21 13:07:46 +0900 Commit: 卜部昌平 CommitDate: 2022-06-21 15:30:54 +0900 [CI] add gcc-12 Notes: Merged: https://github.com/ruby/ruby/pull/6050 commit a0b24f592614262c08a3a4cb07cf0c847389d0a3 Author: Nobuyoshi Nakada AuthorDate: 2022-06-21 12:08:48 +0900 Commit: git[bot] CommitDate: 2022-06-21 12:13:47 +0900 [ruby/io-wait] Remove redundant forward declarations These were needed before prototype declarations were used. https://github.com/ruby/io-wait/commit/35f016833a commit f44547c99913093b397e15a0240b7bce3f7c53ca Author: Yusuke Endoh AuthorDate: 2022-06-13 15:47:19 +0900 Commit: Yusuke Endoh CommitDate: 2022-06-21 11:32:02 +0900 regparse.c: Suppress false-positive warnings of GCC 12.1 http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20220613T030003Z.log.html.gz ``` regparse.c:264:15: warning: array subscript 56 is outside array bounds of ‘Node[1]’ {aka ‘struct _Node[1]’} [-Warray-bounds] ``` and ``` /usr/include/bits/string_fortified.h:29:10: warning: ‘__builtin_memcpy’ pointer overflow between offset 32 and size [9223372036854775792, 9223372036854775807] [-Warray-bounds] ``` Notes: Merged: https://github.com/ruby/ruby/pull/6013 commit 596f4b0d3ab8bc2559a52396d3a29ce62e6a3694 Author: Jeremy Evans AuthorDate: 2022-06-21 07:17:23 +0900 Commit: Jeremy Evans CommitDate: 2022-06-21 07:56:28 +0900 Document that Regexp#source does not retain lexer escapes Related to [Feature #18838] Notes: Merged: https://github.com/ruby/ruby/pull/6047 commit eed24b5ee002449a9fe83e221336142416e0b315 Author: Jun Aruga AuthorDate: 2022-06-20 22:34:32 +0900 Commit: Samuel Williams CommitDate: 2022-06-21 06:38:52 +0900 .github/workflows/compilers.yml: annocheck: Fix gaps and notes test. This commit fixes on the annocheck gaps and notes tests on Ubuntu focal on CI. Added the gcc `-Wa,--generate-missing-build-notes=yes` flag. See the links below. * -Wa,option: . * --generate-missing-build-notes=yes: . Notes: Merged: https://github.com/ruby/ruby/pull/6045 commit 31b2cd38c5dcf4a0c51ca56ecdddf7461b8ac86c Author: Chris Seaton AuthorDate: 2022-06-15 00:08:36 +0900 Commit: Alan Wu CommitDate: 2022-06-21 06:18:29 +0900 Include JIT information in crash reports Since enabling YJIT or MJIT drastically changes what could go wrong at runtime, it's good to be front and center about whether they are enabled when dumping a crash report. Previously, `RUBY_DESCRIPTION` and the description printed when crashing can be different when a JIT is on. Introduce a new internal data global, `rb_dynamic_description`, and set it to be the same as `RUBY_DESCRIPTION` during initialization; use it when crashing. * version.c: Init_ruby_description(): Initialize and use `rb_dynamic_description`. * error.c: Change crash reports to use `rb_dynamic_description`. * ruby.c: Call `Init_ruby_description()` earlier. Slightly more work for when we exit right after printing the description but that was deemed acceptable. * include/ruby/version.h: Talk about how JIT info is not in `ruby_description`. * test/-ext-/bug_reporter/test_bug_reporter.rb: Remove handling for crash description being different from `RUBY_DESCRIPTION`. * test/ruby/test_rubyoptions.rb: ditto Co-authored-by: Nobuyoshi Nakada Co-authored-by: Alan Wu Notes: Merged: https://github.com/ruby/ruby/pull/5872 commit 5ca2335802b281f9a38b1d9b73b146b94ed0eed3 Author: Peter Zhu AuthorDate: 2022-06-20 22:37:52 +0900 Commit: git[bot] CommitDate: 2022-06-20 22:42:30 +0900 [ruby/irb] [DOC] Fix formatting in docs https://github.com/ruby/irb/commit/3ddc89e38c commit 2d4a41df6bef7a67784c680550591d5b883853fe Author: Stan Lo AuthorDate: 2022-06-20 22:27:12 +0900 Commit: git[bot] CommitDate: 2022-06-20 22:27:30 +0900 [ruby/irb] Commands should respect `USE_COLORIZE` config (https://github.com/ruby/irb/pull/362) https://github.com/ruby/irb/commit/534688dfc4 commit c46824d0945c95172951a904f09c774b99a4deb3 Author: Jean Boussier AuthorDate: 2022-06-20 20:03:39 +0900 Commit: Jean Boussier CommitDate: 2022-06-20 20:03:39 +0900 test_instrumentation_api.rb: Allow one less exit I suspect that sometimes on CI the last thread is prempted before eaching the exit hook causing the test to flake. I can't find a good way to force it to run. commit 4a6facc2d683d1dbb67ded8a9f4d7cd10a9fd8ad Author: Nobuyoshi Nakada AuthorDate: 2022-06-20 13:35:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-20 19:35:12 +0900 [Feature #18788] [DOC] String options to `Regexp.new` Co-Authored-By: Janosch Müller Notes: Merged: https://github.com/ruby/ruby/pull/6039 commit 883d13dc4127b5fde617b584ebb89714eac19965 Author: Nobuyoshi Nakada AuthorDate: 2022-06-19 15:43:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-20 19:35:12 +0900 [Feature #18788] Spec for options as `String` to `Regexp.new` Co-Authored-By: Janosch Müller Notes: Merged: https://github.com/ruby/ruby/pull/6039 commit 1e9939dae24db232d6f3693630fa37a382e1a6d7 Author: Nobuyoshi Nakada AuthorDate: 2022-06-16 18:53:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-20 19:35:12 +0900 [Feature #18788] Support options as `String` to `Regexp.new` `Regexp.new` now supports passing the regexp flags not only as an `Integer`, but also as a `String. Unknown flags raise errors. Notes: Merged: https://github.com/ruby/ruby/pull/6039 commit 39dc455b511614ee8a1911c0ba6445a0307d5e4f Author: Nobuyoshi Nakada AuthorDate: 2022-06-19 15:41:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-20 19:35:12 +0900 Spec update for warnning suspicious flag to `Regexp.new` Notes: Merged: https://github.com/ruby/ruby/pull/6039 commit ab2a43265cfdda288d1baaa29936fd408c2a42bc Author: Nobuyoshi Nakada AuthorDate: 2022-05-24 16:51:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-20 19:35:12 +0900 Warn suspicious flag to `Regexp.new` Now second argument should be `true`, `false`, `nil` or Integer. This flag is confused with third argument some times. Notes: Merged: https://github.com/ruby/ruby/pull/6039 commit a58611dfb1bfc74fb1a51a9cd0ca8ac690c2f1f4 Author: Nobuyoshi Nakada AuthorDate: 2022-05-24 16:48:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-20 19:35:12 +0900 Allow to just warn as bool expected, without an exception Notes: Merged: https://github.com/ruby/ruby/pull/6039 commit 15db2e9496703d76b2d785a9e2a1554833706e06 Author: Yusuke Endoh AuthorDate: 2022-06-20 19:25:11 +0900 Commit: Yusuke Endoh CommitDate: 2022-06-20 19:25:11 +0900 Prevent a warning "possibly useless use of a literal in void context" commit f8b6d4f4d1b0eb0b3220fc83f157bd33ddcc5d4e Author: Jun Aruga AuthorDate: 2022-06-20 17:46:24 +0900 Commit: Jun Aruga CommitDate: 2022-06-20 19:08:25 +0900 .github/workflows/compilers.yml: Skip gaps test on annocheck 10.76. This commit is to skip a failure with annocheck 10.76 on the annocheck test case on the CI. Previously The test worked with annocheck 10.73. The issue was reported at . > Hardened: ruby: MAYB: test: gaps because no notes found > Hardened: ruby: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-gaps.html It seems that the annocheck added the gaps test at 10.76. Maybe the upstream commit is below. The annocheck is a part of the annobin project: https://sourceware.org/annobin/ ``` $ git clone git://sourceware.org/git/annobin.git $ git show 61184ae1180a134bfbbd125e9fe339baedd67c18 commit 61184ae1180a134bfbbd125e9fe339baedd67c18 Author: Nick Clifton Date: Mon Jun 13 16:56:46 2022 +0100 Annocheck: Add TEST_GAPS. Add MAYB for TEST_NOTES if DWARF info could not be found ... ``` Notes: Merged: https://github.com/ruby/ruby/pull/6043 commit 7f8a91571561206e880909461b063753e7e01d7e Author: Nobuyoshi Nakada AuthorDate: 2022-06-20 12:53:41 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-20 18:39:50 +0900 [DOC] Refine Regexp.new argument descriptions commit 914c26eab32b4664e981c7c604d1f17a56b10e28 Author: Nobuyoshi Nakada AuthorDate: 2022-06-20 17:47:44 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-20 17:47:44 +0900 [DOC] Regexp timeout is float or nil commit 078db98da42444b3cdbd0f391b680ba8193299fd Author: Yusuke Endoh AuthorDate: 2022-06-20 17:39:58 +0900 Commit: Yusuke Endoh CommitDate: 2022-06-20 17:39:58 +0900 Prevent a warning "Expected ... to define AutoloadTest but it didn't" related: [Bugs #18813] and eca31d24d606a73def3674938112dc3c5b79c445 commit 8d689294d033d59f211a6d2c2da72b34ce53c4e5 Author: citrusmoose AuthorDate: 2022-06-17 04:13:17 +0900 Commit: git[bot] CommitDate: 2022-06-20 16:04:47 +0900 [rubygems/rubygems] Fix extension paths in generated standalone script The paths for extensions of gems would contain the hardcoded ruby version on which the extension was built. This will replace it with runtime ruby version like the parent version directory. It will make the standalone script compatible between different ruby version installations. https://github.com/rubygems/rubygems/commit/a9dae93d5d commit 150bd6e2427a8a6178aa5f8ebc39ce6e59601e1f Author: Soutaro Matsumoto AuthorDate: 2022-06-20 11:44:47 +0900 Commit: GitHub CommitDate: 2022-06-20 11:44:47 +0900 Bundle RBS 2.5.1 (#6041) * Bundle RBS 2.5.1 Notes: Merged-By: soutaro commit cd3a5cd0e33f7b2495c5b3421e7f1d124de8c343 Author: Nobuyoshi Nakada AuthorDate: 2022-06-20 02:32:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-20 09:26:11 +0900 [DOC] Fixed omissions in Regexp.new arguments commit aeab4058784c86df47a455ffdb08714b337d0209 Author: Josh Nichols AuthorDate: 2022-05-14 06:22:54 +0900 Commit: git[bot] CommitDate: 2022-06-20 02:34:41 +0900 [rubygems/rubygems] Improve performance of Bundler::SpecSet#for by using hash lookup of handled deps I was looking at (yet another) flamegraph in speedscope, and used the 'left hand heavy' and was shocked to realize that 0.5s of the 1.7s is spent in DepProxy#name. This method _only_ delegates the name to an underlying spec, so it's not complex at all. It seems to be of how often this line ends up calling it: next if handled.any?{|d| d.name == dep.name && (match_current_platform || d.__platform == dep.__platform) } || dep.name == "bundler" The `handled` array is built up as dependencies are handled, so this get slower as more dependencies are installed. This change changes how `handled` is track. Instead of just an array, I've tried using a Hash, with the key being a dep's name, and the value being a list of deps with that name. This means it's constant time to find the dependencies with the same name. I saw a drop from 1.7s to 1.0s against master, and from 0.95s to 0.24s when used with https://github.com/rubygems/rubygems/pull/5533 https://github.com/rubygems/rubygems/commit/844dac30d4 commit da362fee59b2bff30eb8d63ee15724f5c3aac957 Author: Nobuyoshi Nakada AuthorDate: 2022-06-19 23:33:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-19 23:33:26 +0900 Scale the time to wait native threads to run hook commit 4aebbf44e9032750bee074092a4386fc664ea866 Author: Nobuyoshi Nakada AuthorDate: 2022-06-19 23:32:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-19 23:32:47 +0900 Remove unnecessary `*` before the function name commit 5f8c73405ec9c5a642b208b23bf1b55b8e8f2045 Author: Nobuyoshi Nakada AuthorDate: 2022-06-19 10:59:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-19 11:06:43 +0900 [ruby/etc] [DOC] Markup constant path names https://github.com/ruby/etc/commit/6c9a0b4e5d commit 504728307069d49994541c91769bc90444a4fce5 Author: Nobuyoshi Nakada AuthorDate: 2022-06-19 11:05:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-19 11:05:31 +0900 Skip CIs if the head commit message contains '[DOC]' commit ea387583225f924885f9846d93f6112eb0316bd0 Author: Nobuyoshi Nakada AuthorDate: 2022-06-19 10:45:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-19 10:46:50 +0900 [ruby/etc] [DOC] Markup string literals https://github.com/ruby/etc/commit/a8801e07d1 commit cc67a11768f3be7be081a2e52f38ac02374d7ae1 Author: Nobuyoshi Nakada AuthorDate: 2022-06-19 10:43:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-19 10:46:48 +0900 [ruby/etc] [DOC] Fix reference to different module https://github.com/ruby/etc/commit/ea51739974 commit c594370c6e78de1aa001c16ec0327b4575ccd559 Author: Nobuyoshi Nakada AuthorDate: 2022-06-19 10:26:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-19 10:46:47 +0900 [ruby/etc] [DOC] Update System-dependent feature macros are automatically detected by extconf.rb, and are not used by users. https://github.com/ruby/etc/commit/e7343b4e69 commit eca31d24d606a73def3674938112dc3c5b79c445 Author: Jean Boussier AuthorDate: 2022-06-18 17:29:52 +0900 Commit: Jean Boussier CommitDate: 2022-06-18 21:49:02 +0900 [Bug #18813] Warn when autoload has to lookup in parent namespace This is a verbose mode only warning. Notes: Merged: https://github.com/ruby/ruby/pull/6038 commit e77d2c296e101a8c2d2d503b082214faa783b5d6 Author: Nobuyoshi Nakada AuthorDate: 2022-06-17 23:33:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-18 13:15:02 +0900 Disable maybe-uninitialized warning for gcc 4 It often shows false positive warnings (at least in 4.8). Newer versions work well and we can check correct warnings. commit cab10a2c505f9fa7296f0a0d780d07827ea02b36 Author: Nobuyoshi Nakada AuthorDate: 2022-06-18 10:20:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-18 10:20:46 +0900 Extract `protect_page_body` to fix mismatched braces commit 4b7c4bb92e6c760c721fa27351f7845b39a18e37 Author: Alan Wu AuthorDate: 2022-06-18 07:13:19 +0900 Commit: Alan Wu CommitDate: 2022-06-18 07:13:19 +0900 tool/extlibs.rb: Use Exception#message for older rubies This script runs with BASERUBY, which can be as old as 2.2.x. Exception#full_message is new in 2.5.0. I saw a NoMethodError on the AppVeyor CI where BASERUBY is 2.4.6: https://ci.appveyor.com/project/ruby/ruby/builds/43870654/job/kae4uo2xbhuhqmdw#L121 commit 566c5447aedbb03f55b4dc12381b432b84f9039c Author: John Hawthorn AuthorDate: 2022-06-18 03:26:51 +0900 Commit: John Hawthorn CommitDate: 2022-06-18 04:17:19 +0900 YJIT: Use binwrite to write exit locations Notes: Merged: https://github.com/ruby/ruby/pull/6035 commit 05ffc037ad15560cb2c683682c5bc374156571d7 Author: KJ Tsanaktsidis AuthorDate: 2022-05-23 08:30:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-18 00:10:16 +0900 Disable Mach exception handlers when read barriers in place The GC compaction mechanism implements a kind of read barrier by marking some (OS) pages as unreadable, and installing a SIGBUS/SIGSEGV handler to detect when they're accessed and invalidate an attempt to move the object. Unfortunately, when a debugger is attached to the Ruby interpreter on Mac OS, the debugger will trap the EXC_BAD_ACCES mach exception before the runtime can transform that into a SIGBUS signal and dispatch it. Thus, execution gets stuck; any attempt to continue from the debugger re-executes the line that caused the exception and no forward progress can be made. This makes it impossible to debug either the Ruby interpreter or a C extension whilst compaction is in use. To fix this, we disable the EXC_BAD_ACCESS handler when installing the SIGBUS/SIGSEGV handlers, and re-enable them once the compaction is done. The debugger will still trap on the attempt to read the bad page, but it will be trapping the SIGBUS signal, rather than the EXC_BAD_ACCESS mach exception. It's possible to continue from this in the debugger, which invokes the signal handler and allows forward progress to be made. Notes: Merged: https://github.com/ruby/ruby/pull/5991 commit 7f05f7378d3dea53796338346970faa5594aa8ed Author: Nobuyoshi Nakada AuthorDate: 2022-06-17 23:27:16 +0900 Commit: GitHub CommitDate: 2022-06-17 23:27:16 +0900 Reuse an interned string Repeating to intern the same string is just redundant, as interned strings for the same content are always the same object until it gets collected. Notes: Merged: https://github.com/ruby/ruby/pull/6034 Merged-By: nobu commit 2790bddda6e8ad49298de8bc71921f39e7390f26 Author: Peter Zhu AuthorDate: 2022-06-17 22:44:17 +0900 Commit: Peter Zhu CommitDate: 2022-06-17 22:44:17 +0900 Remove unused function declaration iseq_alloc is not used in compile.c. It is also a static function declared in iseq.c so it's not accessible in compile.c. commit 9327b6f2221ef05c496e65ecce86722ea47a7c3b Author: Burdette Lamar AuthorDate: 2022-06-17 22:36:20 +0900 Commit: git[bot] CommitDate: 2022-06-17 22:36:26 +0900 [ruby/fileutils] [DOC] Revisions for module-level doc (https://github.com/ruby/fileutils/pull/90) * Revisions for module-level doc https://github.com/ruby/fileutils/commit/dcbad90a1f commit c34a5469c8d53029a5f3cdde0ca855e47a92c7d7 Author: Jean Boussier AuthorDate: 2022-06-17 17:09:02 +0900 Commit: Jean Boussier CommitDate: 2022-06-17 22:11:10 +0900 Debug TestThreadInstrumentation It previously failed with: ``` 1) Failure: TestThreadInstrumentation#test_thread_instrumentation_fork_safe [/home/runner/work/ruby/ruby/src/test/-ext-/thread/test_instrumentation_api.rb:50]: <5> expected but was <4>. ``` Suggesting one `EXIT` event wasn't fired or processed. Adding an assetion on `Thead#status` may help figure out what is wrong. Notes: Merged: https://github.com/ruby/ruby/pull/6032 commit 78425d7e74887b57ee15e6b8933bd3878db6a888 Author: David Rodríguez AuthorDate: 2022-06-16 03:54:29 +0900 Commit: git[bot] CommitDate: 2022-06-17 17:05:52 +0900 [rubygems/rubygems] Unset ENV set by official Ruby docker images So that it does not interfere with our specs. https://github.com/rubygems/rubygems/commit/1029714e21 commit 1e8bf48fd5e9cdfba5d86a39426458111a433d09 Author: David Rodríguez AuthorDate: 2022-06-15 17:19:14 +0900 Commit: git[bot] CommitDate: 2022-06-17 17:05:21 +0900 [rubygems/rubygems] Bring TODO message up to date https://github.com/rubygems/rubygems/commit/e07dba0923 commit 5450b409fc917327373adb573bc5df5948f4202c Author: David Rodríguez AuthorDate: 2022-06-14 23:47:55 +0900 Commit: git[bot] CommitDate: 2022-06-17 17:05:20 +0900 [rubygems/rubygems] Remove part of comment that fell out of date https://github.com/rubygems/rubygems/commit/272ac23aa8 commit 8855b68f970b34be4b39006b404391d06163573a Author: David Rodríguez AuthorDate: 2022-06-14 22:26:37 +0900 Commit: git[bot] CommitDate: 2022-06-17 17:05:20 +0900 [rubygems/rubygems] Don't modify RbConfig at all when building extensions Instead, pass sitearchdir and sitelibdir directly to `make`. This also removes the need to create and use the siteconf file at all when generating makefiles. https://github.com/rubygems/rubygems/commit/dea41fa2dc commit 1aaeff8e36777e4ea0ac0917e3ddc7da573c1c32 Author: David Rodríguez AuthorDate: 2022-06-15 17:14:23 +0900 Commit: git[bot] CommitDate: 2022-06-17 17:05:19 +0900 [rubygems/rubygems] Remove unnecessary condition This variable can't be falsy. https://github.com/rubygems/rubygems/commit/b838f9a6f0 commit 5a385677f366fa093dc35ad69045bf183603427c Author: David Rodríguez AuthorDate: 2022-06-14 22:26:08 +0900 Commit: git[bot] CommitDate: 2022-06-17 17:05:19 +0900 [rubygems/rubygems] No need to change `RbConfig::CONFIG` at all Only `RbConfig::MAKEFILE_CONFIG` is actually used. https://github.com/rubygems/rubygems/commit/b767cc0929 commit b6c1e1158d71b533b255ae7a2731598455918071 Author: Jean Boussier AuthorDate: 2022-06-15 21:37:41 +0900 Commit: Jean Boussier CommitDate: 2022-06-17 16:08:26 +0900 GVL Instrumentation API: add STARTED and EXITED events [Feature #18339] After experimenting with the initial version of the API I figured there is a need for an exit event to cleanup instrumentation data. e.g. if you record data in a {thread_id -> data} table, you need to free associated data when a thread goes away. Notes: Merged: https://github.com/ruby/ruby/pull/6029 commit 420f3ced4d25c0e81d06f3186c8cfdc509326268 Author: S-H-GAMELINKS AuthorDate: 2022-05-01 23:13:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-17 12:02:50 +0900 Using is_ascii_string to check encoding Notes: Merged: https://github.com/ruby/ruby/pull/5867 commit 51a3ebf4ec6182ee516992dc761950d19a7b697b Author: S-H-GAMELINKS AuthorDate: 2022-06-14 21:49:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-17 11:59:49 +0900 Using RBOOL in cmp_between func Notes: Merged: https://github.com/ruby/ruby/pull/6017 commit 1dfe007e1696128ff0d3ec78e54d3406073f7727 Author: Jeremiah Gowdy AuthorDate: 2022-06-17 02:29:28 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-17 11:58:10 +0900 Update configure.ac Co-authored-by: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/6025 commit f3b54d5fc236d01c0e34650b797820e4b09e2a41 Author: Jeremiah Gowdy AuthorDate: 2022-06-16 02:31:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-17 11:58:10 +0900 Add branch protection to aarch64 targets Notes: Merged: https://github.com/ruby/ruby/pull/6025 commit 2c190863239bee3f54cfb74b16bb6ea4cae6ed20 Author: Nobuyoshi Nakada AuthorDate: 2022-06-16 23:43:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-17 10:47:16 +0900 Suppress code unused unless GC_CAN_COMPILE_COMPACTION commit e46292197fd917d0a450c30e8341c1872e6aab19 Author: Alan Wu AuthorDate: 2022-06-17 05:34:14 +0900 Commit: Alan Wu CommitDate: 2022-06-17 05:34:14 +0900 Fix spec version guard Follow up for 278fefb96294adf9d27a78f919c714a31b65ef58 commit ae163cae6b3f01e0fb827e0a18d5889f9703617f Author: John Hawthorn AuthorDate: 2022-05-28 05:47:06 +0900 Commit: John Hawthorn CommitDate: 2022-06-17 05:24:48 +0900 Allow calling protected methods from refinements Previously protected methods on refinements could never be called because they were seen as being "defined" on the hidden refinement ICLASS. This commit updates calling refined protected methods so that they are considered to be defined on the original class (the one being refined). This ended up using the same behaviour that was used to check whether a call to super was allowed, so I extracted that into a method. [Bug #18806] Notes: Merged: https://github.com/ruby/ruby/pull/5966 commit cd5cafa4a380e2459862b6e99ff0c381362ef1be Author: Nobuyoshi Nakada AuthorDate: 2022-06-14 12:27:25 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-17 01:48:52 +0900 Respect the encoding of the source [Bug #18827] Do not override the input string encoding at the time of preparation, the source encoding is not determined from the input yet. Notes: Merged: https://github.com/ruby/ruby/pull/6015 commit 278fefb96294adf9d27a78f919c714a31b65ef58 Author: Nobuyoshi Nakada AuthorDate: 2021-12-03 23:13:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-17 01:22:24 +0900 ENV.merge! support multile arguments [Feature #18279] Notes: Merged: https://github.com/ruby/ruby/pull/5207 commit 51835135a0586f439f581beece13df20100123f0 Author: Jemma Issroff AuthorDate: 2022-06-16 04:18:55 +0900 Commit: Aaron Patterson CommitDate: 2022-06-17 00:48:08 +0900 Added tests for setting ivars on frozen objs Notes: Merged: https://github.com/ruby/ruby/pull/6021 commit c49fde351fb215d8f9fc2f82893a4469692f2e98 Author: Jemma Issroff AuthorDate: 2022-06-15 23:18:17 +0900 Commit: Aaron Patterson CommitDate: 2022-06-17 00:48:08 +0900 Adding more clone tests, and adding dup tests Notes: Merged: https://github.com/ruby/ruby/pull/6021 commit af425b6d66ba2c2c034b65c7b48dd752c8216267 Author: Jemma Issroff AuthorDate: 2022-06-17 00:01:22 +0900 Commit: Aaron Patterson CommitDate: 2022-06-17 00:47:19 +0900 Added vm_ivar benchmark for initializing an embedded obj Notes: Merged: https://github.com/ruby/ruby/pull/6030 commit 0ab2bca11c91a15d6538658cb436a686aeb35612 Author: Burdette Lamar AuthorDate: 2022-06-16 23:56:33 +0900 Commit: git[bot] CommitDate: 2022-06-16 23:56:37 +0900 [ruby/fileutils] [DOC] Small tweaks (https://github.com/ruby/fileutils/pull/89) https://github.com/ruby/fileutils/commit/13ab96439b commit c310691dd8087eac5153b3c778ea898dcf387b57 Author: Shishir Joshi AuthorDate: 2022-06-16 20:16:47 +0900 Commit: git[bot] CommitDate: 2022-06-16 23:35:27 +0900 [ruby/net-http] Make `Net::HTTPHeader#content_range` return nil on non-byte units * Returning nil from the `content_range` method instead of raising an error when the unit in the content-range header is not "bytes". Fix https://bugs.ruby-lang.org/issues/11450 https://github.com/ruby/net-http/commit/0b5030dd86 Co-Authored-By: Nobuyoshi Nakada commit 79eaaf2d0b641710613f16525e4b4c439dfe854e Author: Peter Zhu AuthorDate: 2022-06-15 04:54:16 +0900 Commit: Peter Zhu CommitDate: 2022-06-16 23:18:46 +0900 Include runtime checks for compaction support Commit 0c36ba53192c5a0d245c9b626e4346a32d7d144e changed GC compaction methods to not be implemented when not supported. However, that commit only does compile time checks (which currently only checks for WASM), but there are additional compaction support checks during run time. This commit changes it so that GC compaction methods aren't defined during run time if the platform does not support GC compaction. [Bug #18829] Notes: Merged: https://github.com/ruby/ruby/pull/6019 commit 52d42e702375446746164a0251e1a10bce813b78 Author: Peter Zhu AuthorDate: 2022-06-15 03:37:21 +0900 Commit: Peter Zhu CommitDate: 2022-06-16 23:18:46 +0900 Rename GC_COMPACTION_SUPPORTED Naming this macro GC_COMPACTION_SUPPORTED is misleading because it only checks whether compaction is supported at compile time. [Bug #18829] Notes: Merged: https://github.com/ruby/ruby/pull/6019 commit 2223eb082afa6d05321b69df783d4133b9aacba6 Author: Nobuyoshi Nakada AuthorDate: 2022-06-16 22:10:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-16 22:10:59 +0900 Revert "HTTPHeader.content_range throws error on non-byte units" This reverts commit 63546bfc1581d4abec2a0d846106a1c0afc0efa9. commit 1cc64a5514309920c48874bbccc87102b69c2abf Author: Nobuyoshi Nakada AuthorDate: 2022-06-16 19:52:51 +0900 Commit: git[bot] CommitDate: 2022-06-16 21:43:53 +0900 [ruby/racc] Fix flag to `Regexp.new` Probably intended to pass encoding "none". https://github.com/ruby/racc/commit/65cd26efd8 commit 714a4942fdb1e71ce38032a9f4bab10855a4bea8 Author: Alan Wu AuthorDate: 2022-06-16 20:20:20 +0900 Commit: GitHub CommitDate: 2022-06-16 20:20:20 +0900 Remove unused and accidentally public rb_str_shared_root_p() This function was added to a public header in [1] probably unintentionally since it's not used anywhere, exposes implementation details, and isn't related to the goals of that pull request. [1]: 56cc3e99b6b9ec004255280337f6b8353f5e5b06 Notes: Merged: https://github.com/ruby/ruby/pull/6023 Merged-By: XrXr commit 63546bfc1581d4abec2a0d846106a1c0afc0efa9 Author: Shishir Joshi AuthorDate: 2022-06-16 20:16:47 +0900 Commit: GitHub CommitDate: 2022-06-16 20:16:47 +0900 HTTPHeader.content_range throws error on non-byte units * Added a nil check in Net::HTTPHeader#initialize_http_header for keys in the header that do not have any value * Returning nil from the content_range method instead of raising an error when the unit in the content-range header is not bytes * Modified initialize_http_header to match trunk fix [Bug #11450] fix https://github.com/ruby/ruby/pull/1018 Notes: Merged-By: nurse commit 8ef312fc5bfa9c585a917dc006eeb7f2cad1b73f Author: Takashi Kokubun AuthorDate: 2022-06-16 16:47:16 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-16 16:47:16 +0900 MJIT: Consider compaction on CC failure commit 30ca4a826350e169353bd01f1d67bc0fe87247b5 Author: Takashi Kokubun AuthorDate: 2022-06-16 14:10:54 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-16 14:10:54 +0900 MJIT: Remove free_compiling_iseqs from mswin commit b5079794fd8be0552e758d8b0713f7e633610214 Author: Takashi Kokubun AuthorDate: 2022-06-16 14:09:37 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-16 14:09:38 +0900 MJIT: Handle compaction units on stop_worker commit 66f0ce34f12ed710c97aad30b083017c73f399ad Author: Takashi Kokubun AuthorDate: 2022-06-16 13:58:00 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-16 13:58:00 +0900 MJIT: Get rid of obsoleted compiling_iseqs commit 1ffc6c43f696fc18f1d3b52b09a2ef0dd00ac09c Author: Takashi Kokubun AuthorDate: 2022-06-16 13:32:29 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-16 13:32:30 +0900 MJIT: Deal with mjit_free_iseq on mjit_notify_waitpid commit 332985c1788ea438ae87830386fde49677cc6e14 Author: Takashi Kokubun AuthorDate: 2022-06-16 09:18:19 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-16 09:18:19 +0900 MJIT: Fix test_jit_failure for mswin commit 15a6dd56e08dddea9201c072567986368e1c508e Author: Takashi Kokubun AuthorDate: 2022-06-16 08:50:45 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-16 08:50:47 +0900 MJIT: Handle C compiler failures commit 17d260a87fd0cb4433d29c21f3a69ea963c64056 Author: John Hawthorn AuthorDate: 2022-06-15 15:52:20 +0900 Commit: John Hawthorn CommitDate: 2022-06-16 08:07:29 +0900 Restore rb_exec_recursive_outer This was a public method, so we should probably keep it. Notes: Merged: https://github.com/ruby/ruby/pull/6027 commit 5310147bb826424059f258b76b37bebdc0abbc63 Author: Takashi Kokubun AuthorDate: 2022-06-16 07:57:27 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-16 07:57:30 +0900 MJIT: Handle JIT failure properly commit 1e8fed2d2a3c42e007c830648a5f6427b99283d0 Author: Burdette Lamar AuthorDate: 2022-06-16 05:56:36 +0900 Commit: git[bot] CommitDate: 2022-06-16 05:56:39 +0900 [ruby/fileutils] [DOC] More on paths and lists (https://github.com/ruby/fileutils/pull/88) https://github.com/ruby/fileutils/commit/ba3ae2430d commit a327ce8b07e8778b838a5b82939bea9409cfa9f5 Author: Takashi Kokubun AuthorDate: 2022-06-16 02:57:37 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-16 02:57:38 +0900 Remove unused rb_thread_create_mjit_thread follow up https://github.com/ruby/ruby/pull/6006 commit 23459e4dbb736b28873a85637d141f77167cacee Author: Takashi Kokubun AuthorDate: 2022-06-16 02:19:33 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-16 02:52:37 +0900 Move RubyVM::MJIT to builtin Ruby just less C code to maintain commit 1162523bae926cfa6128043b635e28c14b732754 Author: Takashi Kokubun AuthorDate: 2022-06-16 01:40:54 +0900 Commit: GitHub CommitDate: 2022-06-16 01:40:54 +0900 Remove MJIT worker thread (#6006) [Misc #18830] Notes: Merged-By: k0kubun commit d154d5d281c76eb5780ab20709584b782166c855 Author: Jemma Issroff AuthorDate: 2022-06-15 22:25:07 +0900 Commit: Aaron Patterson CommitDate: 2022-06-16 01:04:11 +0900 Add imemo types to global namespace in lldb helpers Notes: Merged: https://github.com/ruby/ruby/pull/6020 commit bb12aa4d15077071faae5e7b3a4c864699474169 Author: Nobuyoshi Nakada AuthorDate: 2022-06-15 15:25:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-15 22:17:23 +0900 Remove unnecessary condition `no_blockarg` is called for non-null `node` only. commit d417c1ddc51c521ccc7b85c6cc9410470949e3f7 Author: David Rodríguez AuthorDate: 2022-06-15 19:42:12 +0900 Commit: git[bot] CommitDate: 2022-06-15 21:10:55 +0900 [rubygems/rubygems] Revert "Support running specs with asdf version manager" This reverts commit https://github.com/rubygems/rubygems/commit/4b2d09af5bc7. https://github.com/rubygems/rubygems/commit/90ca7a7163 commit e09bdc11ec74272eb9165b777fea43bbb99ae8bf Author: David Rodríguez AuthorDate: 2022-05-20 22:04:04 +0900 Commit: git[bot] CommitDate: 2022-06-15 18:14:21 +0900 [rubygems/rubygems] Support running specs with asdf version manager The `asdf-ruby` plugin sets `RUBYLIB` to require some code to reshim after installing gems. This interferes with our specs. Reset that, but leave any "internal" entries in places, because the ruby-core test setup also uses RUBYLIB. https://github.com/rubygems/rubygems/commit/4b2d09af5b commit daf086c0e13434827a8329e2f5e8b286e267b55e Author: git[bot] AuthorDate: 2022-06-15 16:01:39 +0900 Commit: git[bot] CommitDate: 2022-06-15 16:01:39 +0900 Update bundled gems list at 2022-06-15 commit 46706e7808b897703f759d4d96b65fdf4b2bf9d0 Author: Takashi Kokubun AuthorDate: 2022-06-15 14:40:49 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-15 14:42:09 +0900 MJIT: Add a test for Process.waitall handling commit 788a5e14faee9a2a9b32afa9326b7b91a46def33 Author: Burdette Lamar AuthorDate: 2022-06-15 05:42:23 +0900 Commit: git[bot] CommitDate: 2022-06-15 05:42:26 +0900 [ruby/fileutils] [DOC] More on cp_r (https://github.com/ruby/fileutils/pull/87) * More on cp_r https://github.com/ruby/fileutils/commit/82a2b62578 commit 9357e310fb420bab7092a665be7875272820e2a3 Author: Alan Wu AuthorDate: 2022-06-15 01:05:33 +0900 Commit: git[bot] CommitDate: 2022-06-15 01:05:51 +0900 [ruby/psych] Fix libyaml download failure rescue under miniruby I tried to build Ruby on a system without libyaml today and realized that my attempt from doesn't fix the error in . I still got the same `LoadError` from `digest` which stopped the build. Since `LoadError` is not a `StandardError`, a plain `rescue` doesn't catch it. Catch `LoadError` explicitly instead and reduce the scope of the `begin` block. I tested this change in a Ruby build on macOS without libyaml installed and confirmed that `make` continues with a warning instead of aborting: *** Following extensions are not compiled: psych: Could not be configured. It will not be installed. ... This should address . https://github.com/ruby/psych/commit/251289ba83 commit 9f09397bfe6762bf19ef47b2f60988e49b80560d Author: Alan Wu AuthorDate: 2022-06-14 23:23:13 +0900 Commit: GitHub CommitDate: 2022-06-14 23:23:13 +0900 YJIT: On-demand executable memory allocation; faster boot (#5944) This commit makes YJIT allocate memory for generated code gradually as needed. Previously, YJIT allocates all the memory it needs on boot in one go, leading to higher than necessary resident set size (RSS) and time spent on boot initializing the memory with a large memset(). Users should no longer need to search for a magic number to pass to `--yjit-exec-mem` since physical memory consumption should now more accurately reflect the requirement of the workload. YJIT now reserves a range of addresses on boot. This region start out with no access permission at all so buggy attempts to jump to the region crashes like before this change. To get this hardening at finer granularity than the page size, we fill each page with trapping instructions when we first allocate physical memory for the page. Most of the time applications don't need 256 MiB of executable code, so allocating on-demand ends up doing less total work than before. Case in point, a simple `ruby --yjit-call-threshold=1 -eitself` takes about half as long after this change. In terms of memory consumption, here is a table to give a rough summary of the impact: | Peak RSS in MiB | -eitself example | railsbench once | | :-------------: | ---------------: | --------------: | | before | 265 | 377 | | after | 11 | 143 | | no YJIT | 10 | 101 | A new module is introduced to handle allocation bookkeeping. `CodePtr` is moved into the module since it has a close relationship with the new `VirtualMemory` struct. This new interface has a slightly smaller surface than before in that marking a region as writable is no longer a public operation. Notes: Merged-By: maximecb commit 9b9cc8ad34fdecdede439f14c027c5eefef5541e Author: Burdette Lamar AuthorDate: 2022-06-14 22:52:18 +0900 Commit: git[bot] CommitDate: 2022-06-14 22:52:22 +0900 [ruby/fileutils] [DOC] More on paths and lists (https://github.com/ruby/fileutils/pull/86) * More on paths and lists https://github.com/ruby/fileutils/commit/c3d92d34f4 commit 1a70973f7557af33bfca6e2edc5cd302937425a4 Author: Nobuyoshi Nakada AuthorDate: 2022-06-14 18:28:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-14 20:41:41 +0900 ripper: Check if anonymous parameters defined [Bug #18828] Notes: Merged: https://github.com/ruby/ruby/pull/6016 commit 048f14221cc8498ea8e5e339b6744288788a0303 Author: Nobuyoshi Nakada AuthorDate: 2022-06-14 10:21:55 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-14 10:21:55 +0900 Add placeholder to let braces match commit 56cc3e99b6b9ec004255280337f6b8353f5e5b06 Author: Matt Valentine-House AuthorDate: 2022-04-06 17:55:23 +0900 Commit: Aaron Patterson CommitDate: 2022-06-14 02:11:27 +0900 Move String RVALUES between pools And re-embed any strings that can now fit inside the slot they've been moved to Notes: Merged: https://github.com/ruby/ruby/pull/5986 commit f8502a26990c652a2c3c1131614230fec446ab25 Author: Takashi Kokubun AuthorDate: 2022-06-14 01:28:28 +0900 Commit: GitHub CommitDate: 2022-06-14 01:28:28 +0900 Drop MinGW support of MJIT (#6012) [Feature #18824] Notes: Merged-By: k0kubun commit 9a381c240c4a0daa2d00a40cf98eefd035a31c66 Author: Burdette Lamar AuthorDate: 2022-06-14 00:39:41 +0900 Commit: git[bot] CommitDate: 2022-06-14 00:39:44 +0900 [ruby/fileutils] [DOC] Clarify path arguments (https://github.com/ruby/fileutils/pull/85) https://github.com/ruby/fileutils/commit/5f9ef9ddc8 commit 753da6deca34eb7d5d61a26cf66b014ad77ad51d Author: Burdette Lamar AuthorDate: 2022-06-13 21:11:32 +0900 Commit: git[bot] CommitDate: 2022-06-13 21:11:45 +0900 [ruby/fileutils] [DOC] Enhanced Rdoc (https://github.com/ruby/fileutils/pull/84) Treats: ::chown_R ::touch ::commands ::options ::have_option? ::options_of ::collect_method https://github.com/ruby/fileutils/commit/5df0324f52 commit b1397e96dacfed3dec3fb962e3b3ee9032ac137f Author: st0012 AuthorDate: 2022-06-13 17:17:38 +0900 Commit: git[bot] CommitDate: 2022-06-13 19:33:15 +0900 [ruby/reline] Revert "Merge pull request #441 from nevans/workaround-linker-script-so" This reverts commit https://github.com/ruby/reline/commit/4ccf128ffa18, reversing changes made to https://github.com/ruby/reline/commit/a2651419e9a0. https://github.com/ruby/reline/commit/51053138a4 commit a80f5c536598157da83f8de8f328d03207801c43 Author: Jun Aruga AuthorDate: 2022-05-18 21:24:18 +0900 Commit: Jun Aruga CommitDate: 2022-06-13 19:12:18 +0900 Enable "make annocheck" on platforms other than Linux. The annocheck supports ELF format binaries compiled for any OS and for any architecture. It can work in not only Linux but also FreeBSD and Solaris. It is designed to be independent of the host OS and the architecture. Even in Mac, as the binaries are Mach-O foramt, the annocheck fails correctly with the message. e.g. Test binaries compiled for Mac OSX 10.13.6 (target_os: darwin17) in Fedora 35. ``` $ cat /etc/fedora-release Fedora release 35 (Thirty Five) $ file ruby ruby: Mach-O 64-bit x86_64 executable, flags: $ annocheck ruby annocheck: Version 10.66. annocheck: Warning: ruby: is not an ELF format file. ``` See for details. Notes: Merged: https://github.com/ruby/ruby/pull/5916 commit b2e58b02aec73f9c350bf109c021c180fc699ccc Author: Yusuke Endoh AuthorDate: 2022-06-13 12:14:03 +0900 Commit: Yusuke Endoh CommitDate: 2022-06-13 15:22:32 +0900 compile.c (add_adjust_info): Remove `insns_info_index > 0` ... because insns_info_index could not be zero here. Also it adds an invariant check for that. This change will prevent the following warning of GCC 12.1 http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20220613T000004Z.log.html.gz ``` compile.c:2230:39: warning: array subscript 2147483647 is outside array bounds of ‘struct iseq_insn_info_entry[2147483647]’ [-Warray-bounds] 2230 | insns_info[insns_info_index-1].line_no != adjust->line_no) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ ``` Notes: Merged: https://github.com/ruby/ruby/pull/6008 commit 5060c9d852be4b99d773ec1d94e0ec08ac4299b7 Author: Yusuke Endoh AuthorDate: 2022-06-13 14:03:57 +0900 Commit: Yusuke Endoh CommitDate: 2022-06-13 15:18:28 +0900 cont.c: prevent a warning of GCC 12.1 ... by assigning a dummy value to the allocated stack. http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20220613T000004Z.log.html.gz ``` cont.c: In function ‘cont_restore_0.constprop’: cont.c:1489:28: warning: ‘*sp’ may be used uninitialized [-Wmaybe-uninitialized] 1489 | space[0] = *sp; | ^~~ ``` Also it adds some comments about the hack of dummy stack allocation. Notes: Merged: https://github.com/ruby/ruby/pull/6010 commit 425a46131a029390cd693242e621f6632c76cc42 Author: Samuel Williams AuthorDate: 2022-06-13 12:33:54 +0900 Commit: Samuel Williams CommitDate: 2022-06-13 13:12:18 +0900 Handle case where write result is zero. Notes: Merged: https://github.com/ruby/ruby/pull/6009 commit d9ccb6b372f830fe4aab89460bb4b6147cfd924f Author: Nobuyoshi Nakada AuthorDate: 2022-02-05 18:18:48 +0900 Commit: git[bot] CommitDate: 2022-06-13 12:17:04 +0900 [ruby/reline] Check the ambiguous char width only on tty It sent the char to check even to non-tty, e.g., pipe. This causes `unknown command: "\xE2\x96\xBDstart ` warnings on ruby's parallel test on Windows, where non-standard FDs cannot be passed to child processes. https://github.com/ruby/reline/commit/0d373647fb commit abc828bc67ff42ddb42f5bd034cec185d6b8821d Author: Yusuke Endoh AuthorDate: 2022-06-13 10:38:32 +0900 Commit: Yusuke Endoh CommitDate: 2022-06-13 10:38:51 +0900 Prevent a "warning: `*' interpreted as argument prefix" commit 670de7162872bf2bb6076163c0f633e2f5fe3e7d Author: Yusuke Endoh AuthorDate: 2022-06-13 10:37:26 +0900 Commit: Yusuke Endoh CommitDate: 2022-06-13 10:37:26 +0900 Prevent a warning: assigned but unused variable - out http://rubyci.s3.amazonaws.com/ubuntu1804/ruby-master/log/20220613T003003Z.log.html.gz ``` /home/chkbuild/chkbuild/tmp/build/20220613T003003Z/ruby/test/ruby/test_yjit_exit_locations.rb:96: warning: assigned but unused variable - out /home/chkbuild/chkbuild/tmp/build/20220613T003003Z/ruby/test/ruby/test_yjit_exit_locations.rb:96: warning: assigned but unused variable - err /home/chkbuild/chkbuild/tmp/build/20220613T003003Z/ruby/test/ruby/test_yjit_exit_locations.rb:96: warning: assigned but unused variable - status ``` commit d0bf31e6cffa7537ed4b69a86c58b285433143f7 Author: David Rodríguez AuthorDate: 2022-03-27 20:19:49 +0900 Commit: git[bot] CommitDate: 2022-06-12 02:02:20 +0900 [rubygems/rubygems] Don't on gemspecs with invalid `require_paths`, just warn These gemspecs already work most of the times. When they are installed normally, the require_paths in the gemspec stub line becomes actually correct, and the incorrect value in the real gemspec is ignored. It only becomes an issue in standalone mode. In Ruby 3.2, `Kernel#=~` has been removed, and that means that it becomes harder for us to gracefully deal with this error in standalone mode, because it now happens earlier due to calling `Array#=~` for this invalid gemspec (since require_paths is incorrectly an array of arrays). The easiest way to fix this is to actually make this just work instead by automatically fixing the issue when reading the packaged gemspec. https://github.com/rubygems/rubygems/commit/d3f2fe6d26 commit 7f9eb888a3f86e286b5bc51705716b22ad02854c Author: David Rodríguez AuthorDate: 2022-03-26 17:34:25 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:28 +0900 [rubygems/rubygems] Reuse package from the installer for extracting the specification Previously we would instantiate two different packages and extract the specification from the package twice for each gem installed. We can reuse the installer for this so that we just need to do it once. https://github.com/rubygems/rubygems/commit/e454f850b1 commit 965c314e34d05b196c8e079f868e79633076ad4c Author: David Rodríguez AuthorDate: 2022-06-09 18:22:45 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:27 +0900 [rubygems/rubygems] Move security exception handling to the only place using it https://github.com/rubygems/rubygems/commit/ba975b3b7f commit bf8dc36e40168737da5009d20ab1902557e58935 Author: David Rodríguez AuthorDate: 2022-06-09 18:06:32 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:27 +0900 [rubygems/rubygems] Swapping should not raise any errors https://github.com/rubygems/rubygems/commit/600a9ac658 commit 6292b36529c06c730d452c2bf2f18a82b02062bb Author: David Rodríguez AuthorDate: 2022-06-09 08:04:54 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:26 +0900 [rubygems/rubygems] Remove unclear comment This is the explanation of why we do the swapping, not of why we download the gem. https://github.com/rubygems/rubygems/commit/1a25eb7e7b commit 52cc76d134e963a9943d0379f5bc2991a01f7d1e Author: David Rodríguez AuthorDate: 2022-06-09 05:29:37 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:26 +0900 [rubygems/rubygems] `Gem::Specification.loaded_from` is already set by the installer https://github.com/rubygems/rubygems/commit/796eebfdbf commit 22c97ab8ae2b13b3048d7edee223272640dbda59 Author: David Rodríguez AuthorDate: 2022-04-06 17:32:01 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:25 +0900 [rubygems/rubygems] Refactor some more duplicated logic https://github.com/rubygems/rubygems/commit/9bd389e1b6 commit 95f5194b3c37497ae9ed2a1b2ae5b7729ee063ff Author: David Rodríguez AuthorDate: 2022-03-26 20:37:10 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:25 +0900 [rubygems/rubygems] Move `no_install` setting check to a more sensible place It's only related to the `bundle cache` command, so it should be checked there. https://github.com/rubygems/rubygems/commit/cf749f8ffa commit 3f69774b76067932015dff40d4fd38e9fdfae9ff Author: David Rodríguez AuthorDate: 2022-03-26 20:25:12 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:24 +0900 [rubygems/rubygems] No need to redownload if package already there https://github.com/rubygems/rubygems/commit/285ccbc07e commit a9077af75be7f71e02150343c1172287a4ad05fd Author: David Rodríguez AuthorDate: 2022-06-09 08:19:45 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:24 +0900 [rubygems/rubygems] No need to overwrite path when there's a remote https://github.com/rubygems/rubygems/commit/d86fb2c316 commit 870e5a39d59d574f92676db17555869fed5d9afb Author: David Rodríguez AuthorDate: 2022-03-26 18:00:42 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:24 +0900 [rubygems/rubygems] Remove another unnecessary require https://github.com/rubygems/rubygems/commit/04e6a5ae31 commit 692fec4e727e5635ba03cdae4a08ce5f0d3c953b Author: David Rodríguez AuthorDate: 2022-06-09 05:08:44 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:23 +0900 [rubygems/rubygems] Simplify `Gem::Security::Exception` handling These days all these errors are raised as `Gem::Security::Exception` so there's no need to do any matching on the exception message. https://github.com/rubygems/rubygems/commit/bd3403da57 commit 572f3240fea870b8848a3e13eb8a8b9f2c45d800 Author: David Rodríguez AuthorDate: 2022-03-26 16:59:06 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:23 +0900 [rubygems/rubygems] Remove unnecessary require The `security_policies` method already requires it. https://github.com/rubygems/rubygems/commit/d19b088f2f commit 4a758496804b23da24b85dd85ea81b40b5da9ce6 Author: David Rodríguez AuthorDate: 2022-03-26 04:58:13 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:22 +0900 [rubygems/rubygems] Remove unnecessary `spec.remote` guard It's checked before calling the method already. https://github.com/rubygems/rubygems/commit/4eb00e9586 commit d5288c8aad5b3de8ac48305b43b983ea30a0535d Author: David Rodríguez AuthorDate: 2022-03-26 04:57:43 +0900 Commit: git[bot] CommitDate: 2022-06-11 18:43:22 +0900 [rubygems/rubygems] Refactor ambiguous gems check https://github.com/rubygems/rubygems/commit/a00c79a4da commit 7e1788e180cdcb370ac85152842e14eaf482dd59 Author: Jaeson Lauritzen <80929711+auricbot@users.noreply.github.com> AuthorDate: 2022-06-11 14:22:16 +0900 Commit: GitHub CommitDate: 2022-06-11 14:22:16 +0900 fix typo in dir documentation (#6002) Notes: Merged-By: k0kubun commit 52da90aceefd9f8de06666796f6a2d484ca18036 Author: John Hawthorn AuthorDate: 2022-06-11 01:43:05 +0900 Commit: John Hawthorn CommitDate: 2022-06-11 06:48:21 +0900 Make method id explicit in rb_exec_recursive_outer Previously, because opt_aref and opt_aset don't push a frame, when they would call rb_hash to determine the hash value of the key, the initial level of recursion would incorrectly use the method id at the top of the stack instead of "hash". This commit replaces rb_exec_recursive_outer with rb_exec_recursive_outer_mid, which takes an explicit method id, so that we can make the hash calculation behave consistently. rb_exec_recursive_outer was documented as being internal, so I believe this should be okay to change. Notes: Merged: https://github.com/ruby/ruby/pull/6004 commit f4747958e546a5d3f2c0033b19c6ad69ce7278b1 Author: John Hawthorn AuthorDate: 2022-06-09 07:21:42 +0900 Commit: John Hawthorn CommitDate: 2022-06-11 06:48:21 +0900 Add mid argument to exec_recursive Notes: Merged: https://github.com/ruby/ruby/pull/6004 commit 44b3daa0d7784319b42a12066f793bfa5fe2b3a1 Author: Burdette Lamar AuthorDate: 2022-06-11 06:41:13 +0900 Commit: git[bot] CommitDate: 2022-06-11 06:41:27 +0900 [ruby/fileutils] Enhanced RDoc (https://github.com/ruby/fileutils/pull/83) Treats ::chmod_R and ::chown. https://github.com/ruby/fileutils/commit/df4ac84bef commit fc484be5e5a1e9fcdc74871106dbe13ba533b745 Author: Jemma Issroff AuthorDate: 2022-06-11 04:19:53 +0900 Commit: Aaron Patterson CommitDate: 2022-06-11 05:47:42 +0900 Add assertion for embedded to embedded ivar copy Notes: Merged: https://github.com/ruby/ruby/pull/6003 commit 9ed9cc9852a7cf12c71114c3c65b239c7af1518b Author: Noah Gibbs AuthorDate: 2022-06-11 02:52:43 +0900 Commit: GitHub CommitDate: 2022-06-11 02:52:43 +0900 Add tests for a variety of string-subclass operations (#5999) This way YJIT has to match CRuby for each of them. Remove unused string_p() Rust function Notes: Merged-By: maximecb commit e777ac9161f6d772ab2930a037ecb07789be4fe5 Author: Noah Gibbs AuthorDate: 2022-06-11 01:29:26 +0900 Commit: GitHub CommitDate: 2022-06-11 01:29:26 +0900 Don't return a value from jit_guard_known_klass. We never return anything but true at this point and we don't usually check the returned value. (#6000) Notes: Merged-By: maximecb commit 1e528e8cbef3231e1ffd908c9e1fb90b6b14173c Author: Koichi Sasada AuthorDate: 2022-06-10 15:40:12 +0900 Commit: Koichi Sasada CommitDate: 2022-06-10 23:56:49 +0900 small fix on `setup_debug_log()` * print `ruby_debug_log_mode` at first. * show filters when `ruby_debug_log_mode` is not "disabled". Notes: Merged: https://github.com/ruby/ruby/pull/5996 commit c54f4264c281b2392a540042f894bb85c240007b Author: Eileen M. Uchitelle AuthorDate: 2022-06-10 23:12:58 +0900 Commit: GitHub CommitDate: 2022-06-10 23:12:58 +0900 Remove duplicated rb_yjit_get_stats (#5997) `rb_yjit_get_stats` is defined twice in yjit.c, it only needs to be defined once. Notes: Merged-By: maximecb commit e75cb61d4645b9833b14a0cc4190cceffc9b6551 Author: Alan Wu AuthorDate: 2021-07-15 08:44:26 +0900 Commit: Koichi Sasada CommitDate: 2022-06-10 10:10:27 +0900 Fix nested bmethod TracePoint and memory leak df317151a5b4e0c5a30fcc321a9dc6abad63f7ed removed the code to free rb_hook_list_t, so repeated targeting of the same bmethod started to leak the hook list. You can observe how the maximum memory use scales with input size in the following script with `/usr/bin/time -v`. ```ruby o = Object.new o.define_singleton_method(:foo) {} trace = TracePoint.new(:return) {} bmethod = o.method(:foo) ARGV.first.to_i.times { trace.enable(target:bmethod){} } 4.times {GC.start} ``` After this change the maximum doesn't grow as quickly. To plug the leak, check whether the hook list is already allocated when enabling the targeting TracePoint for the bmethod. This fix also allows multiple TracePoints to target the same bmethod, similar to other valid TracePoint targets. Finally, free the rb_hook_list_t struct when freeing the method definition it lives on. Freeing in the GC is a good way to avoid lifetime problems similar to the one fixed in df31715. [Bug #18031] Notes: Merged: https://github.com/ruby/ruby/pull/4651 commit cedc36ec577530b23497a9ace74fc3a8e0c66bdf Author: Takashi Kokubun AuthorDate: 2022-06-10 08:17:25 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-10 08:17:26 +0900 Remove a leftover require I thought about using it in 2931957d6ff16b5c095f6e8095384c98130133ad once and then ended up not using it. commit e69e47f8d62456f85f70d52f736a23eab504f8b4 Author: Eileen M. Uchitelle AuthorDate: 2022-06-10 06:59:41 +0900 Commit: GitHub CommitDate: 2022-06-10 06:59:41 +0900 Fix exit locations test (#5995) I originally added the check for RubyVM::YJIT.trace_exit_locations_enabled? to fix errors when these tests run without the stats feature enabled. However I forgot that this will never be true when this test is booting, so nothing was running when the stats feature is turned on. Instead I've decided to make a new hash in the dump file and check if exit locations are enabled there. If they aren't enabled we return early to avoid checking for keys that won't exit in the dumped exit locations. I chose to add this additional enabled check because empty exit locations might not indicate that stats isn't enabled, it could mean the feature is entirely broken. I do want these tests to fail if stats are on and nothing was collected. Followup to #5970 Notes: Merged-By: maximecb commit c2468fd88b977b1c0015fe7f49a822df1d07ea6f Author: Burdette Lamar AuthorDate: 2022-06-10 05:03:21 +0900 Commit: git[bot] CommitDate: 2022-06-10 05:03:33 +0900 [ruby/fileutils] Enhanced RDoc (https://github.com/ruby/fileutils/pull/82) Treats ::chmod; adds Pathname usage to ::install. https://github.com/ruby/fileutils/commit/9db4cb129c commit adcfd6969070c3c51b35221d183728bbde8b8539 Author: Alexander Ilyin AuthorDate: 2022-06-10 03:40:21 +0900 Commit: GitHub CommitDate: 2022-06-10 03:40:21 +0900 [DOC] Fix markup for `String` (#5984) * Add missing space for `String#start_with?`. * Add missing pluses for `String#tr` and `Methods for Converting to New String` label. * Move quote into the tag for `Whitespace in Strings` label. Notes: Merged-By: BurdetteLamar commit 473ee328c5be01ac6bb29659afcbe3361664bf68 Author: Eileen M. Uchitelle AuthorDate: 2022-06-10 01:59:39 +0900 Commit: GitHub CommitDate: 2022-06-10 01:59:39 +0900 Add ability to trace exit locations in yjit (#5970) When running with `--yjit-stats` turned on, yjit can inform the user what the most common exits are. While this is useful information it doesn't tell you the source location of the code that exited or what the code that exited looks like. This change intends to fix that. To use the feature, run yjit with the `--yjit-trace-exits` option, which will record the backtrace for every exit that occurs. This functionality requires the stats feature to be turned on. Calling `--yjit-trace-exits` will automatically set the `--yjit-stats` option. Users must call `RubyVM::YJIT.dump_exit_locations(filename)` which will Marshal dump the contents of `RubyVM::YJIT.exit_locations` into a file based on the passed filename. *Example usage:* Given the following script, we write to a file called `concat_array.dump` the results of `RubyVM::YJIT.exit_locations`. ```ruby def concat_array ["t", "r", *x = "u", "e"].join end 1000.times do concat_array end RubyVM::YJIT.dump_exit_locations("concat_array.dump") ``` When we run the file with this branch and the appropriate flags the stacktrace will be recorded. Note Stackprof needs to be installed or you need to point to the library directly. ``` ./ruby --yjit --yjit-call-threshold=1 --yjit-trace-exits -I/Users/eileencodes/open_source/stackprof/lib test.rb ``` We can then read the dump file with Stackprof: ``` ./ruby -I/Users/eileencodes/open_source/stackprof/lib/ /Users/eileencodes/open_source/stackprof/bin/stackprof --text concat_array.dump ``` Results will look similar to the following: ``` ================================== Mode: () Samples: 1817 (0.00% miss rate) GC: 0 (0.00%) ================================== TOTAL (pct) SAMPLES (pct) FRAME 1001 (55.1%) 1001 (55.1%) concatarray 335 (18.4%) 335 (18.4%) invokeblock 178 (9.8%) 178 (9.8%) send 140 (7.7%) 140 (7.7%) opt_getinlinecache ...etc... ``` Simply inspecting the `concatarray` method will give `SOURCE UNAVAILABLE` because the source is insns.def. ``` ./ruby -I/Users/eileencodes/open_source/stackprof/lib/ /Users/eileencodes/open_source/stackprof/bin/stackprof --text concat_array.dump --method concatarray ``` Result: ``` concatarray (nonexistent.def:1) samples: 1001 self (55.1%) / 1001 total (55.1%) callers: 1000 ( 99.9%) Object#concat_array 1 ( 0.1%) Gem.suffixes callees (0 total): code: SOURCE UNAVAILABLE ``` However if we go deeper to the callee we can see the exact source of the `concatarray` exit. ``` ./ruby -I/Users/eileencodes/open_source/stackprof/lib/ /Users/eileencodes/open_source/stackprof/bin/stackprof --text concat_array.dump --method Object#concat_array ``` ``` Object#concat_array (/Users/eileencodes/open_source/rust_ruby/test.rb:1) samples: 0 self (0.0%) / 1000 total (55.0%) callers: 1000 ( 100.0%) block in
callees (1000 total): 1000 ( 100.0%) concatarray code: | 1 | def concat_array 1000 (55.0%) | 2 | ["t", "r", *x = "u", "e"].join | 3 | end ``` The `--walk` option is recommended for this feature as it make it easier to traverse the tree of exits. *Goals of this feature:* This feature is meant to give more information when working on YJIT. The idea is that if we know what code is exiting we can decide what areas to prioritize when fixing exits. In some cases this means adding prioritizing avoiding certain exits in yjit. In more complex cases it might mean changing the Ruby code to be more performant when run with yjit. Ultimately the more information we have about what code is exiting AND why, the better we can make yjit. *Known limitations:* * Due to tracing exits, running this on large codebases like Rails can be quite slow. * On complex methods it can still be difficult to pinpoint the exact cause of an exit. * Stackprof is a requirement to to view the backtrace information from the dump file. Co-authored-by: Aaron Patterson Co-authored-by: Aaron Patterson Notes: Merged-By: maximecb commit 27eb36596a65d6bca44b4420ca6526175bf1b431 Author: Jeremy Evans AuthorDate: 2022-05-27 02:45:36 +0900 Commit: Jeremy Evans CommitDate: 2022-06-10 00:22:06 +0900 Stop ignoring 4th positional argument to IO.#{foreach,readlines} Fixes [Bug #18771] Notes: Merged: https://github.com/ruby/ruby/pull/5953 commit 940c8b093de1d903b67b7d80cc33f698a5debf1c Author: xtkoba <69125751+xtkoba@users.noreply.github.com> AuthorDate: 2021-04-30 23:03:02 +0900 Commit: Yusuke Endoh CommitDate: 2022-06-09 20:43:41 +0900 Skip `NULL` values from `dladdr(3)` Fixes [Bug #17810] Notes: Merged: https://github.com/ruby/ruby/pull/4438 commit 4e21b19a61aadd785df1d731d79265fef16fb7c8 Author: Jean Boussier AuthorDate: 2022-06-08 22:44:32 +0900 Commit: git[bot] CommitDate: 2022-06-09 18:58:49 +0900 [ruby/timeout] Keep a private reference to `Process.clock_gettime` `timeout 0.3.0` broke our test suite because we have some tests that stubs `Process.clock_gettime` making it return a value in the past, causing `Timeout` to trigger almost immediately. I beleive it wasn't a problem before because it was relying on `Process.sleep`. https://github.com/ruby/timeout/commit/e5911a303e commit bda4d91f0599a8e2d278bc13660a5576d4ced353 Author: Yusuke Endoh AuthorDate: 2022-02-28 16:56:30 +0900 Commit: Yusuke Endoh CommitDate: 2022-06-09 18:21:39 +0900 doc/case_mapping.rdoc: Fix references for case mapping The chart (https://www.unicode.org/charts/case) that is currently referred seems to be wrong. Also, use the "latest" redirect and add titles of the section and table. [Bug #18590] Notes: Merged: https://github.com/ruby/ruby/pull/5607 commit 90b240d1274b8597e02f94cb644da3aa137241b6 Author: Takashi Kokubun AuthorDate: 2022-06-09 14:38:50 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-09 14:39:18 +0900 Fix MJIT's ISEQ_BODY macro usage at 5f10bd634fb commit 2931957d6ff16b5c095f6e8095384c98130133ad Author: Takashi Kokubun AuthorDate: 2022-06-09 12:47:40 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-09 13:19:03 +0900 MJIT: Ignore existence of .bundle.dSYM on macOS We could fix it, but removing files in the directory recursively is tedious in C and --mjit-debug is not a concern for users. We have TestMJITDebug for detecting linker problems that are ignored by -O. It's not really for maintaining --mjit-debug itself. commit 67a9845a7a447ddfe0f21a8ce9ab0a8309c7e2d7 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-06-09 09:30:56 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-06-09 09:35:08 +0900 Fix compile error ``` compiling ../debug.c ../debug.c:452:1: error: conflicting types for 'ruby_debug_log_filter' ruby_debug_log_filter(const char *func_name, const char *file_name) ^ ../vm_debug.h:87:6: note: previous declaration is here bool ruby_debug_log_filter(const char *func_name); ^ 1 error generated. make: *** [debug.o] Error 1 ``` commit 9b7208fca16e6eb1c4c5938dad2417db49c941d0 Author: Burdette Lamar AuthorDate: 2022-06-09 05:37:57 +0900 Commit: git[bot] CommitDate: 2022-06-09 05:38:09 +0900 [ruby/fileutils] [DOC] Enhanced RDoc (https://github.com/ruby/fileutils/pull/81) https://github.com/ruby/fileutils/commit/b9d5a79e38 commit da883af42a2569cf449a7115148c41f05cd856a8 Author: Takashi Kokubun AuthorDate: 2022-06-09 02:49:00 +0900 Commit: GitHub CommitDate: 2022-06-09 02:49:00 +0900 MJIT: Directly compile .c to .so (#5987) I'm planning to redesign the MJIT worker pipeline, and this allows you to simplify the implementation and let it run efficiently except for MinGW. Notes: Merged-By: k0kubun commit 5a4f997b2e8e819ed40731cd769826112072a9d4 Author: Koichi Sasada AuthorDate: 2022-06-08 16:14:20 +0900 Commit: Koichi Sasada CommitDate: 2022-06-09 01:51:19 +0900 func: and file: prefix for `RUBY_DEBUG_LOG_FILTER` `RUBY_DEBUG_LOG_FILTER` specified only function names but this patch also check file names for each log events. If you specify `file:` or `func:` prefix, it's only filter file names or func names (otherwize check both). foo # show log when file or func names are mached with foo func:foo # show log when func name matches foo file:foo # show log when file name matches foo -file:foo,func:bar # show log when file name does not contains foo # and func name matches bar Notes: Merged: https://github.com/ruby/ruby/pull/5988 commit 8d57336360497e94403a71bd13de8faa76f1dbcb Author: Peter Zhu AuthorDate: 2022-06-09 00:05:53 +0900 Commit: Peter Zhu CommitDate: 2022-06-09 01:09:19 +0900 Fix major GC thrashing Only growth heaps are allowed to start major GCs. Before this patch, growth heaps are defined as size pools that freed more slots than had empty slots (i.e. there were more dead objects that empty space). But if the size pool is relatively stable and tightly packed with mostly old objects and has allocatable pages, then it would be incorrectly classified as a growth heap and trigger major GC. But since it's stable, it would not use any of the allocatable pages and forever be classified as a growth heap, causing major GC thrashing. This commit changes the definition of growth heap to require that the size pool to have no allocatable pages. Notes: Merged: https://github.com/ruby/ruby/pull/5993 commit d1b6c8a1cc7b7c578ba2461a1cf279f87d76d302 Author: Peter Zhu AuthorDate: 2022-06-09 00:25:31 +0900 Commit: Peter Zhu CommitDate: 2022-06-09 00:25:31 +0900 Fix compilation error when USE_RVARGC=0 force_major_gc_count was not defined when USE_RVARGC=0. commit fafe68185c1c39949d69754cfac5a15c3438ec08 Author: Peter Zhu AuthorDate: 2022-06-08 23:03:00 +0900 Commit: Peter Zhu CommitDate: 2022-06-08 23:03:00 +0900 Add key force_major_gc_count to GC.stat_heap force_major_gc_count is the number of times the size pool forced major GC to run. commit a07acbe417fe0e24e3bdbcfadeb678e1cb9c6f9d Author: Burdette Lamar AuthorDate: 2022-06-08 21:34:47 +0900 Commit: git[bot] CommitDate: 2022-06-08 21:35:00 +0900 [ruby/fileutils] File trees (https://github.com/ruby/fileutils/pull/80) Adds a note about file tree examples. https://github.com/ruby/fileutils/commit/65ac65067a commit 6a6531d3e0d39d44f80947672e701d2d7d6dd406 Author: Alexander Ilyin AuthorDate: 2022-06-08 17:04:18 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-06-08 17:49:56 +0900 Update "Reporting Issues" link in the README This link is broken. Notes: Merged: https://github.com/ruby/ruby/pull/5989 commit 790825db446c304cb2887f17e0f2a3abda4351a2 Author: Takashi Kokubun AuthorDate: 2022-06-08 13:30:22 +0900 Commit: Takashi Kokubun CommitDate: 2022-06-08 13:30:28 +0900 Update the help message on /benchmark I wanted to point out there's --output=all. commit ccfbcc730230fddeab6d7f8820c9d232117a07fd Author: Nobuyoshi Nakada AuthorDate: 2022-06-08 11:55:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-08 11:55:21 +0900 [DOC] RDoc now accepts other than magic numbers at `rb_attr` commit bf4684d9992615b84781f0f688624c95e0ecaadb Author: Peter Zhu AuthorDate: 2022-06-08 03:15:59 +0900 Commit: Peter Zhu CommitDate: 2022-06-08 03:15:59 +0900 Remove duplicated prototype in header file rb_imemo_new is defined again later in the file. commit 19c6aaca939e1d42030d171bc0e8f2098dc7f535 Author: Jean Boussier AuthorDate: 2022-06-08 00:18:50 +0900 Commit: Jean Boussier CommitDate: 2022-06-08 01:15:55 +0900 thread_pthread.c: trigger THREAD_EVENT_READY when going through the fast path. Notes: Merged: https://github.com/ruby/ruby/pull/5985 commit 1598c9458a3ac8e0e4c179317a4e5bba506e3367 Author: Noah Gibbs AuthorDate: 2022-06-08 00:20:57 +0900 Commit: GitHub CommitDate: 2022-06-08 00:20:57 +0900 Add special-case code for the String unary plus operator (#5982) Notes: Merged-By: maximecb commit deff9e2699c46075c3bb9b9e1bf9f721a12a2ca3 Author: Daniel Berger AuthorDate: 2022-06-06 14:46:01 +0900 Commit: git[bot] CommitDate: 2022-06-07 23:18:31 +0900 [rubygems/rubygems] Remove unnecessary string concatenation https://github.com/rubygems/rubygems/commit/81ccb3ab89 commit c4bf24ee4672cc24a9355a08eb9afd3dbb073be5 Author: Peter Zhu AuthorDate: 2022-06-07 04:41:59 +0900 Commit: Peter Zhu CommitDate: 2022-06-07 22:56:20 +0900 Remove while loop over heap_prepare Having a while loop over `heap_prepare` makes the GC logic difficult to understand (it is difficult to understand when and why `heap_prepare` yields a free page). It is also a source of bugs and can cause an infinite loop if `heap_page` never yields a free page. Notes: Merged: https://github.com/ruby/ruby/pull/5907 commit f50432fba850fd163be07a8c7062517eb7ba6e97 Author: David Rodríguez AuthorDate: 2022-06-07 17:46:30 +0900 Commit: git[bot] CommitDate: 2022-06-07 21:04:53 +0900 [rubygems/rubygems] Relax performance spec limit https://github.com/rubygems/rubygems/commit/eab417d0ce commit b1e6e58cd1393bf85ae14b82fe2f944192dc336e Author: Jean Boussier AuthorDate: 2022-06-07 17:51:28 +0900 Commit: Jean Boussier CommitDate: 2022-06-07 20:19:34 +0900 Refactor TestThreadInstrumentation to investigate CI flakiness `test_thread_instrumentation_fork_safe` has been failing occasionaly on Ubuntu and Arch. At this stage we're not sure why, all we know is that the child exit with status 1. I suspect that something entirely unrelated cause the forked children to fail on exit, so by using `exit!(0)` and doing assertions in the parent I hope to be resilient to that. Notes: Merged: https://github.com/ruby/ruby/pull/5983 commit f075be3dcb4b82b89496d1820002bf3d80f653ef Author: Yusuke Endoh AuthorDate: 2022-06-07 17:40:03 +0900 Commit: git[bot] CommitDate: 2022-06-07 17:40:19 +0900 [ruby/error_highlight] Use Exception#detailed_message instead of overriding #message (https://github.com/ruby/error_highlight/pull/24) See https://bugs.ruby-lang.org/issues/18564. Ref: https://github.com/ruby/did_you_mean/pull/177 https://github.com/ruby/error_highlight/commit/671b7c61b2 commit 11b9dd8ccb26a091b99230640494540ad0cc4e48 Author: Hiroshi SHIBATA AuthorDate: 2022-06-07 15:24:48 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-06-07 15:24:48 +0900 Manually merged https://github.com/ruby/did_you_mean/pull/177 commit b9f030954a8a1572032f3548b39c5b8ac35792ce Author: Yusuke Endoh AuthorDate: 2022-06-07 11:50:58 +0900 Commit: Yusuke Endoh CommitDate: 2022-06-07 11:52:44 +0900 Revert "error.c: Let Exception#inspect inspect its message" This reverts commit 9d927204e7b86eb00bfd07a060a6383139edf741. Notes: Merged: https://github.com/ruby/ruby/pull/5981 commit 9d927204e7b86eb00bfd07a060a6383139edf741 Author: Yusuke Endoh AuthorDate: 2021-11-30 16:27:12 +0900 Commit: Yusuke Endoh CommitDate: 2022-06-07 11:07:09 +0900 error.c: Let Exception#inspect inspect its message ... only when the message string has a newline. `p StandardError.new("foo\nbar")` now prints `#' instead of: # [Bug #18170] Notes: Merged: https://github.com/ruby/ruby/pull/4857 commit dbfb3b1917dbe89816ffeea6046d2743c32bf6b6 Author: Nobuyoshi Nakada AuthorDate: 2022-06-07 09:18:35 +0900 Commit: git[bot] CommitDate: 2022-06-07 10:42:10 +0900 [ruby/rdoc] Allow boolean arguments to `rb_attr` and `rb_define_attr` Currently only literal `0` and `1` are accepted as `read`/`write` flags. This patch allows other boolean arguments, C macros (`FALSE`/`TRUE`), Ruby `VALUE`s (`Qfalse`/`Qtrue`), and C99 `bool`s (`false`/`true`), as well. https://github.com/ruby/rdoc/commit/169dc02e3c commit cfcf33f1270f78c5fb928d7a0927e6be02ec8900 Author: Jun Aruga AuthorDate: 2022-05-24 23:00:53 +0900 Commit: Jun Aruga CommitDate: 2022-06-07 07:25:19 +0900 .github/workflows/compilers.yml: annocheck: Fix a linker flag to pass MJIT tests. Set the linker flag `-Wl,-z,now` properly. Co-authored-by: Takashi Kokubun Fixes [Bug #18781] Notes: Merged: https://github.com/ruby/ruby/pull/5938 commit ec3542229b29ec93062e9d90e877ea29d3c19472 Author: Jeremy Evans AuthorDate: 2022-06-07 05:50:03 +0900 Commit: GitHub CommitDate: 2022-06-07 05:50:03 +0900 Ignore invalid escapes in regexp comments Invalid escapes are handled at multiple levels. The first level is in parse.y, so skip invalid unicode escape checks for regexps in parse.y. Make rb_reg_preprocess and unescape_nonascii accept the regexp options. In unescape_nonascii, if the regexp is an extended regexp, when "#" is encountered, ignore all characters until the end of line or end of regexp. Unfortunately, in extended regexps, you can use "#" as a non-comment character inside a character class, so also parse "[" and "]" specially for extended regexps, and only skip comments if "#" is not inside a character class. Handle nested character classes as well. This issue doesn't just affect extended regexps, it also affects "(#?" comments inside all regexps. So for those comments, scan until trailing ")" and ignore content inside. I'm not sure if there are other corner cases not handled. A better fix would be to redesign the regexp parser so that it unescaped during parsing instead of before parsing, so you already know the current parsing state. Fixes [Bug #18294] Co-authored-by: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/5721 Merged-By: jeremyevans commit c85d1cda86d75ee2c3f7b42f22c543409cb5a186 Author: Jeremy Evans AuthorDate: 2022-03-12 14:43:47 +0900 Commit: Jeremy Evans CommitDate: 2022-06-07 03:12:55 +0900 Fix Module#const_source_location for autoload constants with direct requires If an autoload exists for a constant, but the path for the autoload was required, const_source_location would return [false, 0] instead of the actual file and line. This fixes it by setting the appropriate file and line in rb_const_set, and saving the file and line in const_tbl_update before they get reset by current_autoload_data. Fixes [Bug #18624] Notes: Merged: https://github.com/ruby/ruby/pull/5646 commit 653e517eefaa0c4f2710b30b4dff9a9dad7b9d6a Author: Noah Gibbs AuthorDate: 2022-06-07 02:47:24 +0900 Commit: GitHub CommitDate: 2022-06-07 02:47:24 +0900 Use bindgen to import Ruby constants wherever possible. (#5943) Constants that can't be imported via bindgen should have a comment saying why not. Notes: Merged-By: maximecb commit c5475f42694eff35465c3332e0182c0611ca5918 Author: Jeremy Evans AuthorDate: 2022-04-22 11:46:17 +0900 Commit: Jeremy Evans CommitDate: 2022-06-07 01:59:22 +0900 Fix Range#cover? returning true for beginless ranges of different types Previously `(2..).cover?("2"..)` was false, but `(..2).cover?(.."2")` was true. This changes it so both are false, treating beginless ranges the same as endless ranges in regards to type checks. This also adds documentation to #cover? to describe behavior with beginless and endless ranges, testing each documentation example, which is how this bug was found. Fixes [Bug #18155] Notes: Merged: https://github.com/ruby/ruby/pull/5831 commit 7cda7fbbdc14f4262afaa94cdeb5a5987f1eb01a Author: Jeremy Evans AuthorDate: 2022-06-07 01:57:32 +0900 Commit: GitHub CommitDate: 2022-06-07 01:57:32 +0900 Add Module#undefined_instance_methods Implements [Feature #12655] Co-authored-by: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/5733 Merged-By: jeremyevans commit b737998d25f1379117fbf11a578462e6ba12037e Author: Burdette Lamar AuthorDate: 2022-06-07 00:37:18 +0900 Commit: git[bot] CommitDate: 2022-06-07 00:37:31 +0900 [ruby/fileutils] [DOC] Enhanced RDoc for FileUtils (https://github.com/ruby/fileutils/pull/78) Treats: ::rm ::rm_f ::rm_r ::rm_rf ::remove_entry_secure https://github.com/ruby/fileutils/commit/ce2a438d75 commit 6fc16e748ee3a95d0134c180c6f33d947163f3d7 Author: Alexander Ilyin AuthorDate: 2022-06-06 23:16:36 +0900 Commit: git[bot] CommitDate: 2022-06-07 00:06:56 +0900 [ruby/open-uri] [DOC] Fix markup for `URI.open` * Add missing slash. https://github.com/ruby/open-uri/commit/40023e63da commit 66a9e452bbbb69e5a653d078839b222b92034cb6 Author: Nobuyoshi Nakada AuthorDate: 2022-06-06 21:19:24 +0900 Commit: git[bot] CommitDate: 2022-06-06 21:19:45 +0900 [ruby/rdoc] Use runnable command as DUMMY_PAGER https://github.com/ruby/rdoc/commit/fec1ab2e41 commit ba383188279cd30abbb826f45af775fed3266221 Author: David Rodríguez AuthorDate: 2022-06-03 16:49:59 +0900 Commit: git[bot] CommitDate: 2022-06-06 18:36:31 +0900 [rubygems/rubygems] Unify loading `Gem::Requirement` It was being explicitly required from `Gem::Specification` but also a strange autoload was set for it at `Gem::Version`. The autoload was non standard because it should've been done in the `Gem` module, not in `Gem::Specification`, since that's where the constant is expected to get defined. Doing this might get deprecated in the future, and it was not being effective anyways due to the explicit require. Unify everything with an `autoload` at the right place. https://github.com/rubygems/rubygems/commit/174ea3e24c commit f4173ff2fada676940d358e97b2c3e55ff183ec7 Author: Hiroshi SHIBATA AuthorDate: 2022-06-06 18:19:15 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-06-06 18:19:15 +0900 debug is the bundled gems, not default gems commit 4bc7cef866dc4e4e5c2d94cdd65dd24cc7b7555d Author: Pavel Rosický AuthorDate: 2021-09-24 07:33:36 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-06-06 18:13:01 +0900 [ruby/cgi] jruby support https://github.com/ruby/cgi/commit/93326fb622 commit 5d014bcb61cbc443be6e6bd722573bf9e482a9be Author: Yusuke Endoh AuthorDate: 2022-06-06 12:52:15 +0900 Commit: Yusuke Endoh CommitDate: 2022-06-06 12:52:15 +0900 Use `sleep 0.5` for tests of GVL instrumentation API The tests fail randomly on some platforms. http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20220605T213004Z.fail.html.gz http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20220605T210003Z.fail.html.gz ``` [15737/21701] TestThreadInstrumentation#test_thread_instrumentation_fork_safe/home/chkbuild/chkbuild/tmp/build/20220605T213004Z/ruby/tool/lib/test/unit/assertions.rb:109:in `assert': Expected 0 to be nonzero?. (Test::Unit::AssertionFailedError) ``` The failures seem to depend on context switches. I suspect `sleep 0.05` is too short, so this change tries to extend the wait time. commit a56a7119ac903bf8db870b43d05952e80302622e Author: Nobuyoshi Nakada AuthorDate: 2022-06-06 11:16:18 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-06 11:30:26 +0900 Remove useless assignment always overridden commit d8790ecd04a31e377967fe9cbdfb815cae16e81a Author: nick evans AuthorDate: 2022-06-06 02:33:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-06 11:30:13 +0900 Export RbConfig::CONFIG["COROUTINE_TYPE"] THREAD_MODEL is exported already, so this matches that. Exporting this is simpler than inspecting configure_args and arch and matching that up with a specific configure.ac. Fix GH-5976 commit ed2dd17294162f996eec15c4c35d2688ed529629 Author: Nobuyoshi Nakada AuthorDate: 2022-06-05 14:21:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-05 14:21:01 +0900 Use RBOOL commit 5460675bbc5b56b422fce686493f87927620b8df Author: Nobuyoshi Nakada AuthorDate: 2022-06-04 20:32:23 +0900 Commit: git[bot] CommitDate: 2022-06-04 20:32:27 +0900 [ruby/rdoc] Use command array form of `IO.popen` always So that an exception raises by non-existent command, not via shell. https://github.com/ruby/rdoc/commit/fd94dce69d commit 9a7be959b1bf9a43e3436246a29db3a4d0f3f352 Author: Nobuyoshi Nakada AuthorDate: 2022-06-04 16:14:26 +0900 Commit: git[bot] CommitDate: 2022-06-04 16:42:10 +0900 [ruby/rdoc] Remove `RDoc::RI::Driver#in_path?` https://github.com/ruby/rdoc/commit/83051403d6 commit d4c7e4d5bb96a3b04b6e64a0e358be4381531827 Author: Nobuyoshi Nakada AuthorDate: 2022-06-04 16:13:36 +0900 Commit: git[bot] CommitDate: 2022-06-04 16:42:09 +0900 [ruby/rdoc] Enable pager tests https://github.com/ruby/rdoc/commit/ce63794fde commit 323acd263aff3cc29786a55d4604f240a9cbab46 Author: Nobuyoshi Nakada AuthorDate: 2022-06-04 14:39:07 +0900 Commit: git[bot] CommitDate: 2022-06-04 16:42:08 +0900 [ruby/rdoc] Stop checking if pager command found `IO.popen` does that job. https://github.com/ruby/rdoc/commit/3bbbc5ac84 commit 76479de159591a9e1dad256d908368c9dd17dad9 Author: Nobuyoshi Nakada AuthorDate: 2022-06-04 16:21:35 +0900 Commit: git[bot] CommitDate: 2022-06-04 16:40:19 +0900 [ruby/rdoc] Remove never used win32console https://github.com/ruby/rdoc/commit/47a1aef447 commit e4fe3473027393aa084f4e6b2a01c29ec8281f99 Author: Alan Wu AuthorDate: 2022-03-30 02:38:55 +0900 Commit: Alan Wu CommitDate: 2022-06-04 02:50:32 +0900 Prevent printing crash report in a loop In the event that we are crashing due to a corrupt Ruby stack, we might re-enter rb_vm_bugreport() due to failed assertions in rb_backtrace_print_as_bugreport() or SDR(). In these cases we were printing the bug report ad infinitum with unbounded recusion. I seem to run into this every once in a while and the amount of log it prints out is pretty distracting. On CI environments it makes the log output unnecessarily big. Let's fix this. Notes: Merged: https://github.com/ruby/ruby/pull/5731 commit 9125374726fbf68c05ee7585d4a374ffc5efc5db Author: Jean Boussier AuthorDate: 2022-01-28 01:12:22 +0900 Commit: Jean Boussier CommitDate: 2022-06-03 22:13:33 +0900 [Feature #18339] GVL Instrumentation API Ref: https://bugs.ruby-lang.org/issues/18339 Design: - This tries to minimize the overhead when no hook is registered. It should only incur an extra unsynchronized boolean check. - The hook list is protected with a read-write lock as to cause contention when some hooks are registered. - The hooks MUST be thread safe, and MUST NOT call into Ruby as they are executed outside the GVL. - It's simply a noop on Windows. API: ``` rb_internal_thread_event_hook_t * rb_internal_thread_add_event_hook(rb_internal_thread_event_callback callback, rb_event_flag_t internal_event, void *user_data); bool rb_internal_thread_remove_event_hook(rb_internal_thread_event_hook_t * hook); ``` You can subscribe to 3 events: - READY: called right before attempting to acquire the GVL - RESUMED: called right after successfully acquiring the GVL - SUSPENDED: called right after releasing the GVL. The hooks MUST be threadsafe, as they are executed outside of the GVL, they also MUST NOT call any Ruby API. Notes: Merged: https://github.com/ruby/ruby/pull/5500 commit d142eff6586de0018c9442129201b03c826f2a1e Author: Nobuyoshi Nakada AuthorDate: 2021-02-06 13:04:29 +0900 Commit: git[bot] CommitDate: 2022-06-03 20:25:12 +0900 [ruby/nkf] Constified invariant tables https://github.com/ruby/nkf/commit/b386ddc11c commit a4721ec6cdd32b9c23a009e7390fefa1d9148ffd Author: Kouhei Yanagita AuthorDate: 2022-05-28 06:04:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-03 14:35:47 +0900 [DOC] Fix documentation of Numeric#div: Complex does not have #div Notes: Merged: https://github.com/ruby/ruby/pull/5964 commit 1b44fcf22205dd9f1c6beb5e83ab3c98374ad1e4 Author: Nobuyoshi Nakada AuthorDate: 2022-06-03 14:10:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-03 14:10:30 +0900 [DOC] Mention the case to autoload already defined constant commit 5342fcb67fbefeea28d2c2f6820d89f6ef3caffb Author: Nobuyoshi Nakada AuthorDate: 2022-06-03 14:09:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-03 14:09:11 +0900 [DOC] Subjects of `autoload` are not restricted to modules commit 4eb140b0e4ca53aac704394cfdf3e0da27c2b3c7 Author: David Rodríguez AuthorDate: 2022-06-02 19:12:21 +0900 Commit: git[bot] CommitDate: 2022-06-02 22:23:42 +0900 [rubygems/rubygems] Remove redundant bitwise AND https://github.com/rubygems/rubygems/commit/a20bac7924 commit eb5a01970ffd7a84029cf7d541c942418a2d8f44 Author: David Rodríguez AuthorDate: 2022-06-02 19:08:05 +0900 Commit: git[bot] CommitDate: 2022-06-02 22:23:42 +0900 [rubygems/rubygems] Add test cases from SHA1 RFC and improve test failure message I found that the current test cases did not cover the bitwise AND performed on modified words after each iteration (https://github.com/rubygems/rubygems/blob/7e5765a66c9fe5187b167f619f34db5db121f2df/bundler/lib/bundler/digest.rb#L50) https://github.com/rubygems/rubygems/commit/c8de819fee commit 1d924ae410c4183d0c064c4ed13877b49833d038 Author: David Rodríguez AuthorDate: 2022-06-02 17:31:34 +0900 Commit: git[bot] CommitDate: 2022-06-02 19:30:48 +0900 [rubygems/rubygems] Remove leftover debugging puts https://github.com/rubygems/rubygems/commit/7c6f15040d commit af90433876556d84809ef5ae82f9161aaf9ce69f Author: Nobuyoshi Nakada AuthorDate: 2022-06-02 16:03:55 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-02 16:05:35 +0900 Typedef built-in function types commit b96a3a6fd2093e1dbea5491c002da515652dd347 Author: Nobuyoshi Nakada AuthorDate: 2022-06-02 15:32:00 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-02 15:32:00 +0900 Move `GC.verify_compaction_references` [Bug #18779] Define `GC.verify_compaction_references` as a built-in ruby method, according to GC compaction support via `GC::OPTS`. Notes: Merged: https://github.com/ruby/ruby/pull/5972 commit 9108db961dc24615d3fd1093d95521e53f41e61c Author: Nobuyoshi Nakada AuthorDate: 2022-05-09 17:15:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-02 10:29:53 +0900 Fix the condition when a new buffer is needed without GMP commit 689b5ae75277ddfc01e1e7b5a3c5ce393b2d1d19 Author: Nobuyoshi Nakada AuthorDate: 2022-05-27 11:27:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-06-02 10:12:34 +0900 Split YJIT rules for CODEOWNERS commit 9d18661e1de053a9fecae7f4ab4ed41300537cec Author: Noah Gibbs AuthorDate: 2022-06-01 23:22:08 +0900 Commit: GitHub CommitDate: 2022-06-01 23:22:08 +0900 Revert incorrect string-guard optimisation. (#5969) Also add jhawthorn's test to for this bug. Fix String#to_s invalidation test Notes: Merged-By: maximecb commit 1177665e6224f8491db82997c8774e9485564e41 Author: Ellen Marie Dash AuthorDate: 2022-04-01 08:44:31 +0900 Commit: git[bot] CommitDate: 2022-06-01 19:01:18 +0900 [rubygems/rubygems] Fix `bundle remove` by invalidating cached `Bundle.defintion`. Prior to this commit, `bundle add GEM_NAME` updated the lockfile, but `bundle remove GEM_NAME` left GEM_NAME in the lockfile. By invalidating the cached `Bundle.definition`, the existing code handles that without a problem. https://github.com/rubygems/rubygems/commit/aa0794d6a9 commit 0a6b9924bd1b45bd8ad29b1eb3c8a65835f5864d Author: David Rodríguez AuthorDate: 2022-05-31 04:48:49 +0900 Commit: git[bot] CommitDate: 2022-06-01 17:07:35 +0900 [rubygems/rubygems] Fix generated standalone script for default gems The installer is actually rewriting the spec's full gem path to be the one of the newly installed gem, however the accessor was not properly working for `StubSpecification` instances, and default gems are always of this type, because they are always present locally. Fix the accessor to properly update the underlying full specification. https://github.com/rubygems/rubygems/commit/efa41babfa commit f5b88d93ae58dd8a956782f08a435e452f5eba12 Author: David Rodríguez AuthorDate: 2022-05-31 04:46:47 +0900 Commit: git[bot] CommitDate: 2022-06-01 17:07:34 +0900 [rubygems/rubygems] Remove code that seems unnecessary This change was never covered with a spec, and we have recently covered the case of partially deleted gems with specs and it works fine (installation is "auto-healed"). https://github.com/rubygems/rubygems/commit/6e66ee4235 commit 8381c568e70519e6902302cbe2b421742759f341 Author: David Rodríguez AuthorDate: 2022-03-22 22:21:59 +0900 Commit: git[bot] CommitDate: 2022-06-01 17:06:52 +0900 [rubygems/rubygems] Restore ability to load old marshalled gemspec that use `YAML::PrivateType` This issue was not detected because when all traces of old YAML parser and emitter `Syck` were removed, this null-type.gemspec.rz marshalled gemspec was updated to no longer load `YAML::Syck::PrivateType` but load `Psych::PrivateType` instead. However, realworld old marshalled gemspecs still use the `YAML::PrivateType` constant, so this commit replaces the gemspec to be the real pry-0.4.7 marshalled gemspec, so that it catches this issue. https://github.com/rubygems/rubygems/commit/51b330b8d2 commit 89ec3def74cb66e520b027e766e4874a82ddb528 Author: David Rodríguez AuthorDate: 2022-03-22 22:12:47 +0900 Commit: git[bot] CommitDate: 2022-06-01 17:06:52 +0900 [rubygems/rubygems] Improve null private type test This test is making sure that RubyGems is able to load old marshalled gemspecs that include a field loading `YAML::PrivateType` instances in the `rubyforge_project` field instead of `nil` due to a bug in old YAML emitters. At some point, the `rubyforge_project` field was removed and this test was updated to just check another field. However, in the realworld other fields do not have this issue and the marshalled gemspec we use for testing still has this issue in the field reserved for the `rubyforge_project` field. So I think updating the test to check other field was not correct. Instead, since the `rubyforge_project` field is now ignored, we no longer need to worry about any conversion in this field. The only thing we care about is that the marshal loading still works (which requires that the constant is at least defined). So this commit updates the test to make this more clear. https://github.com/rubygems/rubygems/commit/cddfacf6d4 commit ebb534801f7032476fa069be11ee1e52f54819f5 Author: David Rodríguez AuthorDate: 2022-03-22 21:52:19 +0900 Commit: git[bot] CommitDate: 2022-06-01 17:06:51 +0900 [rubygems/rubygems] Remove no longer needed `Psych::PrivateType` cleanup This old bug used to affect the `rubyforge_project` field in serialized gemspecs. However, this field has been removed and it's no longer present in marshaled loaded gemspecs. So, while the constant is still present in these marshalled gemspecs and we still need to make sure it exists, we no longer need to clean it up from the loaded data. https://github.com/rubygems/rubygems/commit/09df18e522 commit fd83b8887f78b6e7746a3986a2e075663341d17e Author: David Rodríguez AuthorDate: 2022-05-31 16:49:50 +0900 Commit: git[bot] CommitDate: 2022-06-01 00:14:31 +0900 [rubygems/rubygems] Skip duplicated dependency warning for gemspec dev deps Generally this warning is skipped for gemspec development dependencies. I think because it's common to override them in the Gemfile to change the source, for example. But the order of conditions was not correct and the warning was still being printed in one case. https://github.com/rubygems/rubygems/commit/da9d1d6a3f commit e2b421d679d7ebd2c7d6b44a96c8353b81e447b9 Author: David Rodríguez AuthorDate: 2022-05-29 23:47:22 +0900 Commit: git[bot] CommitDate: 2022-05-31 16:13:52 +0900 [rubygems/rubygems] Give better conflict resolution advice This alternative really uses only the Gemfile, and can never end up being absurd, because it will never be suggested when there's no lockfile, and it suggests deleting the lockfile. https://github.com/rubygems/rubygems/commit/5d154dd50e commit 9241d75a615f652dee45bc999524cc3c6ede8c5d Author: Jemma Issroff AuthorDate: 2022-05-31 12:50:39 +0900 Commit: GitHub CommitDate: 2022-05-31 12:50:39 +0900 Add information from doc/hacking.md and doc/make_cheatsheet.md back i… (#5963) Add information from doc/hacking.md and doc/make_cheatsheet.md back into contributing docs Notes: Merged-By: peterzhu2118 commit 0cae30e1d3d782d11dd413d6c713bf60c79ddc67 Author: Hiroshi SHIBATA AuthorDate: 2022-05-31 11:40:38 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-31 11:40:38 +0900 Skip failing test with freebsd commit 31bd79dda3d26956976e68ff1c2f8c376c7e9ea5 Author: Jakub Kulík AuthorDate: 2022-05-31 07:30:57 +0900 Commit: GitHub CommitDate: 2022-05-31 07:30:57 +0900 Add yjit.o to DTRACE_DEPENDENT_OBJS In principle, we have a DTrace probe in yjit.c, so yjit.o should be in DTRACE_DEPENDENT_OBJS for DTRACE_REBUILD=yes builds. This commit adds to the list. In practice DTRACE_REBUILD=yes implies the system has a Solaris-like DTrace and YJIT doesn't support those systems. YJIT_OBJ expands to nothing, and yjit.c isn't compiled. I tested on OmniOS v11 r151034m with: $ ../src/configure --with-out-ext=psych MAKE=gmake AR=ar debugflags=-g $ gmake -j It builds before and after this change. [Bug #18480] Notes: Merged: https://github.com/ruby/ruby/pull/5891 Merged-By: XrXr commit a687756284187887835aa345adc89b2718054e4a Author: Alan Wu AuthorDate: 2022-04-30 07:54:16 +0900 Commit: Alan Wu CommitDate: 2022-05-31 02:54:22 +0900 Fix use-after-free with interacting TracePoints `vm_trace_hook()` runs global hooks before running local hooks. Previously, we read the local hook list before running the global hooks which led to use-after-free when a global hook frees the local hook list. A global hook can do this by disabling a local TracePoint, for example. Delay local hook list loading until after running the global hooks. Issue discovered by Jeremy Evans in GH-5862. [Bug #18730] Notes: Merged: https://github.com/ruby/ruby/pull/5865 commit c50c9d40511c52594f4d9db909339a7b036e3478 Author: Burdette Lamar AuthorDate: 2022-05-31 02:29:54 +0900 Commit: git[bot] CommitDate: 2022-05-31 02:30:07 +0900 [ruby/fileutils] [DOC] Enhanced RDoc (https://github.com/ruby/fileutils/pull/77) Treats: ::copy_entry ::copy_file ::copy_stream ::mv https://github.com/ruby/fileutils/commit/d6d7e5330d commit a78f003c30dde0a303eb15fc073bc6c57df1cfc2 Author: Hiroshi SHIBATA AuthorDate: 2022-05-30 18:40:26 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-30 18:40:31 +0900 Skip failing test with freebsd commit d6684f063bc53e3cab025bd39526eca3b480b5e7 Author: David Rodríguez AuthorDate: 2022-05-29 01:37:41 +0900 Commit: git[bot] CommitDate: 2022-05-30 17:43:12 +0900 [rubygems/rubygems] Fix crash when commenting out a mirror in configuration https://github.com/rubygems/rubygems/commit/2d99277328 commit ea31c5bcd1bc1a019a6aee2b3f3b16813d7ff96d Author: David Rodríguez AuthorDate: 2022-05-28 03:46:42 +0900 Commit: git[bot] CommitDate: 2022-05-30 17:42:39 +0900 [rubygems/rubygems] Fix crash when installing gems with symlinks If BUNDLE_PATH is configured to a symlinked path, installing gems with symlinks would crash with an error like this: ``` Gem::Package::SymlinkError: installing symlink 'man/man0/README.markdown' pointing to parent path /usr/home/stevewi/srv/mail/lib/tools/.vendor/ruby/3.1.0/gems/binman-5.1.0/README.markdown of /srv/mail/lib/tools/.vendor/ruby/3.1.0/gems/binman-5.1.0 is not allowed ``` This commit fixes the problem by changing the bundle path to be the realpath of the configured value, right after we're sure the path has been created. https://github.com/rubygems/rubygems/commit/3cd3dd142a commit 0d7d8f3777b4521b2e83d81c0f830941bfba7b9c Author: David Rodríguez AuthorDate: 2022-05-28 06:09:29 +0900 Commit: git[bot] CommitDate: 2022-05-30 17:42:38 +0900 [rubygems/rubygems] No need to use `FileUtils` to create symlinks https://github.com/rubygems/rubygems/commit/70ff7cee9f commit 7001e34323e37a4cb07ee077bf1efb30e438bed2 Author: David Rodríguez AuthorDate: 2022-05-28 06:06:15 +0900 Commit: git[bot] CommitDate: 2022-05-30 17:42:37 +0900 [rubygems/rubygems] Fix failing spec on Windows https://github.com/rubygems/rubygems/commit/8e68c57457 commit 0a974e4700e123af507257a8252ac5b1f76e8c10 Author: David Rodríguez AuthorDate: 2022-05-28 04:08:14 +0900 Commit: git[bot] CommitDate: 2022-05-30 17:42:37 +0900 [rubygems/rubygems] Remove seemingly unnecessary code https://github.com/rubygems/rubygems/commit/f5dd5204ca commit 79761427913e70344ace2d129183ee998bcc22ac Author: Nobuyoshi Nakada AuthorDate: 2022-05-30 14:16:03 +0900 Commit: git[bot] CommitDate: 2022-05-30 14:48:45 +0900 [ruby/stringio] Fix extracting encoding names in the fallback code https://github.com/ruby/stringio/commit/0fe2e0c1e5 commit d3e986d9ab9a880b58a0b4fc68dadc2b10f4cf12 Author: Nobuyoshi Nakada AuthorDate: 2022-05-30 13:46:31 +0900 Commit: git[bot] CommitDate: 2022-05-30 14:48:44 +0900 [ruby/stringio] Accept external and internal encodings pair Fix https://github.com/ruby/stringio/pull/16 https://github.com/ruby/stringio/commit/c8a69e80d2 commit 4cc880e994d18fcf4a82974acbdcfa5f7431a306 Author: Hiroshi SHIBATA AuthorDate: 2022-05-30 14:28:27 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-30 14:28:32 +0900 Also skip failing test with freebsd 12 commit 12e34a42769780ff9bda98c6a5db1ce621389915 Author: Jeremy Evans AuthorDate: 2022-05-30 13:25:05 +0900 Commit: Jeremy Evans CommitDate: 2022-05-30 13:25:05 +0900 Update rubyspec for stringio bug fix commit 609d73e8925f807786686caf635178bb1de74256 Author: Jeremy Evans AuthorDate: 2022-05-27 07:01:44 +0900 Commit: git[bot] CommitDate: 2022-05-30 13:10:46 +0900 [ruby/stringio] Fix handling of chomp with paragraph separator Try to mirror IO behavior, where chomp takes out the entire paragraph separators between entries, but does not chomp a single line separator at the end of the string. Partially Fixes [Bug #18768] https://github.com/ruby/stringio/commit/a83ddbb7f0 commit 7e3920f0d9875765fc337daf21a3b47d8c51f8cc Author: Jeremy Evans AuthorDate: 2022-05-30 12:56:13 +0900 Commit: git[bot] CommitDate: 2022-05-30 13:01:18 +0900 [ruby/stringio] Update ext/stringio/stringio.c https://github.com/ruby/stringio/commit/1edc88587e Co-authored-by: Nobuyoshi Nakada commit adaaf12857ce41d35b282e3fb5aa330934ce45c6 Author: Jeremy Evans AuthorDate: 2022-05-27 04:17:55 +0900 Commit: git[bot] CommitDate: 2022-05-30 13:01:17 +0900 [ruby/stringio] Ignore chomp keyword for nil separator nil separator means no separator at all, so nothing should be chomped. Partial fix for Ruby [Bug #18770] https://github.com/ruby/stringio/commit/feaa2ec631 commit 1f82269f4e1bf037e3e5504c6071b905f26fec6f Author: Jeremy Evans AuthorDate: 2022-05-27 07:22:28 +0900 Commit: git[bot] CommitDate: 2022-05-30 12:55:47 +0900 [ruby/stringio] Fix each with multiple character string and chomp Previously, this could result in an infinite loop. Always update the e pointer in this case, setting w when chomping so the chomped data is not included in the output. Fixes [Bug #18769] https://github.com/ruby/stringio/commit/4bf64d5130 commit bb6357cddd5af2c244348e96388a10f7cc6f25b4 Author: Nobuyoshi Nakada AuthorDate: 2021-11-16 17:39:32 +0900 Commit: git[bot] CommitDate: 2022-05-30 12:51:37 +0900 [ruby/stringio] Fix expanding size at ungetc/ungetbyte https://github.com/ruby/stringio/commit/a35268a3ac commit 11793f897ce40e833d69d5cd76c13e08a611bcd9 Author: Nobuyoshi Nakada AuthorDate: 2022-05-28 15:52:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-30 12:03:57 +0900 Reduce duplicate replacements Reduce duplicate replacements so that reflect macros in command lines consitently. So that reflect macros in command lines. Others than `nmake` have no problems with nested expansions. commit cc6371869402ed1e1ef13d51bf1f9409378111e9 Author: Hiroshi SHIBATA AuthorDate: 2022-05-30 10:53:45 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-30 10:53:45 +0900 Skip failing test with freebsd commit 899c90cf8a5243911987a6d2fa5f21e0cfbbe7dc Author: Alan Wu AuthorDate: 2022-05-30 02:43:02 +0900 Commit: GitHub CommitDate: 2022-05-30 02:43:02 +0900 YJIT: Relax minimum Rust version requirement to 1.58.1 We want to make it convenient for people to build YJIT and Rust version 1.58.1 or above is available on Ubuntu Jammy, Debian testing, and Fedora 36 through the usual package manager on those systems. This saves the need to install `rustup` for some people. Our code is already 1.58.1 compatible so this commit simply tweaks CI to make sure that we keep supporting that version. We still test against the latest Rust version in `--enable-yjit=dev` builds through the Rust version available in GitHub's CI image. Rust versions older than 1.58.1 might build YJIT today, but we might make incompatible changes in the future. Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged: https://github.com/ruby/ruby/pull/5951 Merged-By: XrXr commit 08b82e6b40b1dbbff20ba609d7d5eb8106a2d346 Author: David Rodríguez AuthorDate: 2022-05-29 22:30:44 +0900 Commit: git[bot] CommitDate: 2022-05-30 00:27:43 +0900 [rubygems/rubygems] Ignore `Errno::EROFS` errors when creating `bundler.lock` Apparently old versions of MacOS would set `GEM_HOME` to a `/System` folder, and trying to create a file there raises `Errno::EROFS`. We ignore the error. Any permission issues should be better handled further down the line. https://github.com/rubygems/rubygems/commit/ef90c071d0 commit 373dabe00a71214e12702ff1ccda88f865b504c4 Author: David Rodríguez AuthorDate: 2022-05-29 20:51:13 +0900 Commit: git[bot] CommitDate: 2022-05-29 22:19:35 +0900 [rubygems/rubygems] Ignore `Errno::EPERM` errors when creating `bundler.lock` This kind of error can happen when setting `GEM_HOME` to a path under MacOS System Integrity Protection. We ignore the error. Any permission issues should be better handled further down the line. https://github.com/rubygems/rubygems/commit/174cb66863 commit 8038d5e40a079d60dfcf7cab1155528959760c28 Author: Burdette Lamar AuthorDate: 2022-05-29 04:20:00 +0900 Commit: GitHub CommitDate: 2022-05-29 04:20:00 +0900 Revert flawed doc for slice_after, slice_when, and chunk_while (#5952) Restores doc for the methods that were cited in https://bugs.ruby-lang.org/issues/18765. Notes: Merged-By: BurdetteLamar commit 6e3295e554aff8e48ff0a5a7aad587dce6d5bb29 Author: David Rodríguez AuthorDate: 2022-05-26 19:53:32 +0900 Commit: git[bot] CommitDate: 2022-05-28 19:22:54 +0900 [rubygems/rubygems] Make code to find target update version easier to follow https://github.com/rubygems/rubygems/commit/a7f81cc7ee commit e9c4e37f1f5c227aedd3d77b02d7591edc7897d2 Author: David Rodríguez AuthorDate: 2022-05-26 19:44:33 +0900 Commit: git[bot] CommitDate: 2022-05-28 19:22:53 +0900 [rubygems/rubygems] Remove unnecessary name and platform filter It's already done before. https://github.com/rubygems/rubygems/commit/49d28cfde5 commit e78c1ddb1ed9b55550c13d0a7f1e84f62f987230 Author: David Rodríguez AuthorDate: 2022-05-25 20:33:20 +0900 Commit: git[bot] CommitDate: 2022-05-28 19:22:15 +0900 [rubygems/rubygems] Fix rubygems update when non default `--install-dir` is configured https://github.com/rubygems/rubygems/commit/9f3b21192d commit 6b0131db6f029f3e472d00deb2134d45ad4dde3a Author: Samuel Williams AuthorDate: 2022-05-28 11:42:02 +0900 Commit: Samuel Williams CommitDate: 2022-05-28 12:44:18 +0900 Make `Kernel#p` completely uninterruptible. Notes: Merged: https://github.com/ruby/ruby/pull/5419 commit 753d30550368e4447b75bb7d1ed3d2703554ee01 Author: Samuel Williams AuthorDate: 2022-05-10 10:22:09 +0900 Commit: Samuel Williams CommitDate: 2022-05-28 12:44:18 +0900 Tidy up usage of write_lock. Notes: Merged: https://github.com/ruby/ruby/pull/5419 commit 1589ac6291d6bf9caa8f237c6d143dd26526b579 Author: Samuel Williams AuthorDate: 2022-05-09 20:44:44 +0900 Commit: Samuel Williams CommitDate: 2022-05-28 12:44:18 +0900 Improve handling of zero length writes. Notes: Merged: https://github.com/ruby/ruby/pull/5419 commit 4efccd28e4b257fb1c8f97781d0b5b1c42c1d9fa Author: Samuel Williams AuthorDate: 2022-05-09 19:36:33 +0900 Commit: Samuel Williams CommitDate: 2022-05-28 12:44:18 +0900 Improve consistency of `io_binwritev_internal` implementaiton. Notes: Merged: https://github.com/ruby/ruby/pull/5419 commit ac499bb511e88faa1e9a8566c6fd4821abb17457 Author: Samuel Williams AuthorDate: 2022-05-09 19:21:47 +0900 Commit: Samuel Williams CommitDate: 2022-05-28 12:44:18 +0900 Improve error handling in `finish_writeconv`. Notes: Merged: https://github.com/ruby/ruby/pull/5419 commit c6cd9e180e01f3c0c3258fae87cd55f5e9a219d4 Author: Samuel Williams AuthorDate: 2022-05-09 19:21:07 +0900 Commit: Samuel Williams CommitDate: 2022-05-28 12:44:18 +0900 Better handling of `error`. Notes: Merged: https://github.com/ruby/ruby/pull/5419 commit 585e97142d4df1e27633afaf98ba589512215c58 Author: machty AuthorDate: 2022-01-16 23:44:41 +0900 Commit: Samuel Williams CommitDate: 2022-05-28 12:44:18 +0900 Always allocate write_lock Notes: Merged: https://github.com/ruby/ruby/pull/5419 commit 216593f59b49fc7f59ed991ae3feaa1ad233ce75 Author: Samuel Williams AuthorDate: 2022-01-09 15:46:42 +0900 Commit: Samuel Williams CommitDate: 2022-05-28 12:44:18 +0900 Add IO write throughput/locking overhead benchmark. Notes: Merged: https://github.com/ruby/ruby/pull/5419 commit 15ebfe28493560f8368fc9a2fe7d9b5913051b84 Author: Samuel Williams AuthorDate: 2022-01-09 07:41:20 +0900 Commit: Samuel Williams CommitDate: 2022-05-28 12:44:18 +0900 Make `io_binwritev` atomic. Notes: Merged: https://github.com/ruby/ruby/pull/5419 commit ce23cfa5182bb53e8b6555fb6a5b2846cd559922 Author: Samuel Williams AuthorDate: 2022-01-08 21:47:51 +0900 Commit: Samuel Williams CommitDate: 2022-05-28 12:44:18 +0900 Make `io_binwrite` atomic. Notes: Merged: https://github.com/ruby/ruby/pull/5419 commit 8a13a2e8d1361bdab5d4bc1d75cf07b804a982c0 Author: Jemma Issroff AuthorDate: 2022-05-27 04:36:41 +0900 Commit: Aaron Patterson CommitDate: 2022-05-28 05:45:47 +0900 RCLASS uses FLUSER bits 0 through 3 Notes: Merged: https://github.com/ruby/ruby/pull/5955 commit ac405dc214b336a34a763bf12dfc3baa540cb440 Author: Jemma Issroff AuthorDate: 2022-05-27 04:42:42 +0900 Commit: Aaron Patterson CommitDate: 2022-05-28 05:45:33 +0900 Add more information to lldb dump_page helper Notes: Merged: https://github.com/ruby/ruby/pull/5957 commit fc184ca1f789ce6a89e83b9247b6bd172af7c659 Author: John Hawthorn AuthorDate: 2022-02-07 06:48:09 +0900 Commit: John Hawthorn CommitDate: 2022-05-28 05:38:40 +0900 Only check class ancestors for ivar in memory_view rb_class_get_superclass returns the immediate SUPER, including T_ICLASS. rb_ivar_lookup isn't implemented for T_ICLASS so it uses the default behaviour, which always returns Qnil. This commit avoids checking T_ICLASS for ivars. Notes: Merged: https://github.com/ruby/ruby/pull/5663 commit 8b4d2a50148b9944dd2d1d2d6ebe7b09874ddfdd Author: Kouhei Yanagita AuthorDate: 2022-05-27 20:18:54 +0900 Commit: GitHub CommitDate: 2022-05-27 20:18:54 +0900 [DOC] Fix typo in documentation Notes: Merged: https://github.com/ruby/ruby/pull/5962 Merged-By: nobu commit 6778d321a7fa0ec56e3e02b6f3739a035c7ef41a Author: David Rodríguez AuthorDate: 2022-05-25 18:03:33 +0900 Commit: git[bot] CommitDate: 2022-05-27 17:26:22 +0900 [rubygems/rubygems] Show better error when previous installation fails to be removed Instead of guessing on the culprit. We actually have a helper, `Bundler.rm_rf`, with exactly the behavior that we want: * Allow the passed folder to not exist. * No exception swallowing other than that. https://github.com/rubygems/rubygems/commit/5fa3e6f04a commit 45177129a75c5bfd03933b82076e8dc49acc500f Author: Nobuyoshi Nakada AuthorDate: 2022-05-24 20:26:18 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-27 15:08:30 +0900 Support old Mac OS X SDK and gcc Follow up of https://github.com/ruby/ruby/pull/5927 `pthread_threadid_np()` is not even be declared in outdated SDKs. Also, the `__API_AVAILABLE` macro does not work on gcc, which does not support the [availability] attribute of clang, so an additional weak symbol declaration is required to check for weakly linked symbols. [availability]: https://clang.llvm.org/docs/AttributeReference.html#availability commit a04d8c951393060f613853dc3c44afb090f63e1b Author: Jemma Issroff AuthorDate: 2022-05-27 07:40:34 +0900 Commit: GitHub CommitDate: 2022-05-27 07:40:34 +0900 Remove trailing comma from FL_USER3 (#5958) Notes: Merged-By: k0kubun commit 33fdff3c300cbc2e37f1a0819418be313848754d Author: Jemma Issroff AuthorDate: 2022-05-24 02:57:40 +0900 Commit: Aaron Patterson CommitDate: 2022-05-27 04:09:04 +0900 Remove unused RMODULE_INCLUDED_INTO_REFINEMENT flag Notes: Merged: https://github.com/ruby/ruby/pull/5932 commit adc709adb8c7fbe83a20b7c9b554856c98346a4b Author: John Hawthorn AuthorDate: 2022-05-27 03:54:15 +0900 Commit: GitHub CommitDate: 2022-05-27 03:54:15 +0900 Don't attempt to read ivars on T_ICLASS in struct (#5664) Notes: Merged-By: jhawthorn commit ba88787087b0d979f806e6b58cfbc3886d942968 Author: Noah Gibbs (and/or Benchmark CI) AuthorDate: 2022-05-26 01:31:38 +0900 Commit: Alan Wu CommitDate: 2022-05-27 02:06:47 +0900 Use bindgen to import CRuby constants for YARV instruction bytecodes Notes: Merged: https://github.com/ruby/ruby/pull/5948 commit bd472ef36f22de176a886cbe789480e84990b82b Author: Samuel Williams AuthorDate: 2022-05-26 21:39:05 +0900 Commit: Samuel Williams CommitDate: 2022-05-26 22:04:28 +0900 Show ASAN_OPTIONS in hacking guide. Notes: Merged: https://github.com/ruby/ruby/pull/5950 commit 46cf3bf33345c0dadb4ac8d79fe9e388cb9602a2 Author: S-H-GAMELINKS AuthorDate: 2022-05-24 23:19:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-26 19:55:05 +0900 Using TZMODE_SET_LOCALTIME macro Notes: Merged: https://github.com/ruby/ruby/pull/5937 commit 2556e15d7520913119175c8166b1f9d17eb33415 Author: Samuel Williams AuthorDate: 2022-05-26 12:06:21 +0900 Commit: Samuel Williams CommitDate: 2022-05-26 13:51:53 +0900 Remove unnecessary ignore warnings. Notes: Merged: https://github.com/ruby/ruby/pull/5947 commit 946e3bbdc293693e667ad056885a27e6955a895f Author: Samuel Williams AuthorDate: 2022-05-26 09:44:01 +0900 Commit: Samuel Williams CommitDate: 2022-05-26 11:20:59 +0900 Simplify the autoload require logic. Notes: Merged: https://github.com/ruby/ruby/pull/5945 commit 012eb9b70d77bfd93208131e2ae83fc63840e3c3 Author: Burdette Lamar AuthorDate: 2022-05-26 07:08:14 +0900 Commit: git[bot] CommitDate: 2022-05-26 07:08:26 +0900 [ruby/fileutils] [DOC] Enhanced RDoc for copy_entry (https://github.com/ruby/fileutils/pull/76) https://github.com/ruby/fileutils/commit/27a3c376c7 commit d875445e8a8b073298e8b3db177d1a5e78c92893 Author: Samuel Williams AuthorDate: 2022-05-25 20:12:54 +0900 Commit: Samuel Williams CommitDate: 2022-05-25 21:17:30 +0900 Fix GC race condition in autoload. Notes: Merged: https://github.com/ruby/ruby/pull/5941 commit cd6f87eefc35922d21a1889e038c9f50f229004f Author: Nobuyoshi Nakada AuthorDate: 2022-05-25 19:50:36 +0900 Commit: git[bot] CommitDate: 2022-05-25 19:50:47 +0900 [ruby/timeout] Set the flag surely before return https://github.com/ruby/timeout/commit/f3a31abdfb commit 952ff7fbb3d1d4e9f13a4124016cb805c3a06a51 Author: Samuel Williams AuthorDate: 2022-05-25 16:49:51 +0900 Commit: Samuel Williams CommitDate: 2022-05-25 18:50:53 +0900 Fix out of bounds read. Notes: Merged: https://github.com/ruby/ruby/pull/5940 commit 86602484a28fe345d9d164fe33d765d5e2791c58 Author: Samuel Williams AuthorDate: 2022-05-25 15:13:04 +0900 Commit: Samuel Williams CommitDate: 2022-05-25 18:50:53 +0900 Ensure we retain the main fiber stack bounds. Notes: Merged: https://github.com/ruby/ruby/pull/5940 commit 983f2688db3cb856589b5bab5d09147d0a180be5 Author: Nobuyoshi Nakada AuthorDate: 2022-05-25 18:47:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-25 18:48:01 +0900 Hack to avoid leak checker commit e77e233935007c418acdcac13de0e76e3b514fb0 Author: Nobuyoshi Nakada AuthorDate: 2022-05-25 18:47:16 +0900 Commit: git[bot] CommitDate: 2022-05-25 18:47:26 +0900 [ruby/timeout] Hack to avoid leak checker https://github.com/ruby/timeout/commit/9a9b03b44c commit fde4519af8762fccc8488d1972d984a1c44691f4 Author: Hiroshi SHIBATA AuthorDate: 2022-05-25 17:55:14 +0900 Commit: git[bot] CommitDate: 2022-05-25 18:08:01 +0900 [ruby/timeout] Bump version to 0.3.0 https://github.com/ruby/timeout/commit/f69f954a94 commit 9a8fc4e04cc85b640c9ca569fe680850adc877fc Author: Samuel Williams AuthorDate: 2022-05-25 07:51:28 +0900 Commit: Samuel Williams CommitDate: 2022-05-25 12:24:24 +0900 Tidy up redundant returns. Notes: Merged: https://github.com/ruby/ruby/pull/5926 commit 42bcc629fba518215c844488223bc279006a4fa2 Author: Samuel Williams AuthorDate: 2022-05-21 21:32:41 +0900 Commit: Samuel Williams CommitDate: 2022-05-25 12:24:24 +0900 Retain reference to blocking fibers. Notes: Merged: https://github.com/ruby/ruby/pull/5926 commit 901525b1079ac02da0122a76d8e4c3546a7f80f6 Author: Samuel Williams AuthorDate: 2022-05-19 20:03:49 +0900 Commit: Samuel Williams CommitDate: 2022-05-25 12:24:24 +0900 Add support for address sanitizer for amd64 and arm64. Notes: Merged: https://github.com/ruby/ruby/pull/5926 commit d020334e9ee6d978bbed09ce96a03a6d6d2490a6 Author: nicholas a. evans AuthorDate: 2022-04-07 07:31:48 +0900 Commit: git[bot] CommitDate: 2022-05-25 06:34:28 +0900 [ruby/reline] Workaround libncurses.so as a linker script This maybe isn't probably isn't the best approach, but it will allow `Fiddle::Terminfo.curses_dl` to work. I documented more details about this in an issue on fiddle: https://github.com/ruby/fiddle/issues/107 It is probably better to deal with it there. But this is workaround is simpler. FYI: `reline` itself seems to be working just fine for me _without_ loading ncurses. But I wanted to be able to use `Reline::Terminfo` for my own projects. :) https://github.com/ruby/reline/commit/fd4bdb35e2 commit 0c36ba53192c5a0d245c9b626e4346a32d7d144e Author: Mike Dalessio AuthorDate: 2022-05-24 06:31:14 +0900 Commit: Aaron Patterson CommitDate: 2022-05-25 01:40:03 +0900 Define unsupported GC compaction methods as rb_f_notimplement Fixes [Bug #18779] Define the following methods as `rb_f_notimplement` on unsupported platforms: - GC.compact - GC.auto_compact - GC.auto_compact= - GC.latest_compact_info - GC.verify_compaction_references This change allows users to call `GC.respond_to?(:compact)` to properly test for compaction support. Previously, it was necessary to invoke `GC.compact` or `GC.verify_compaction_references` and check if those methods raised `NotImplementedError` to determine if compaction was supported. This follows the precedent set for other platform-specific methods. For example, in `process.c` for methods such as `Process.fork`, `Process.setpgid`, and `Process.getpriority`. Notes: Merged: https://github.com/ruby/ruby/pull/5934 commit 0de1495f358e9b892dfa63d4b74f59b1d2903703 Author: Mike Dalessio AuthorDate: 2022-05-24 04:40:22 +0900 Commit: Aaron Patterson CommitDate: 2022-05-25 01:40:03 +0900 Move compaction-related methods into gc.c These methods are removed from gc.rb and added to gc.c: - GC.compact - GC.auto_compact - GC.auto_compact= - GC.latest_compact_info - GC.verify_compaction_references This is a prefactor to allow setting these methods to `rb_f_notimplement` in a followup commit. Notes: Merged: https://github.com/ruby/ruby/pull/5934 commit 9fdef28687fba5e01d0ee6a2422dba9dd0f7d1b9 Author: David Rodríguez AuthorDate: 2022-05-24 22:23:13 +0900 Commit: git[bot] CommitDate: 2022-05-25 01:17:59 +0900 [rubygems/rubygems] Show exception cause in bug report template https://github.com/rubygems/rubygems/commit/84b163e804 commit ae09fffbff4320455f7a2a260814416be4b0999a Author: Burdette Lamar AuthorDate: 2022-05-25 00:38:02 +0900 Commit: git[bot] CommitDate: 2022-05-25 00:38:14 +0900 [ruby/fileutils] [DOC] Enhanced RDoc for ::cp_r (https://github.com/ruby/fileutils/pull/75) https://github.com/ruby/fileutils/commit/a4da433443 commit 633608ebd4cbdeea562dc4c608495134965a19a9 Author: David Rodríguez AuthorDate: 2022-05-24 19:18:38 +0900 Commit: git[bot] CommitDate: 2022-05-24 21:24:57 +0900 [rubygems/rubygems] Fix crash when printing resolution conflicts on metadata requirements https://github.com/rubygems/rubygems/commit/b69e1e9374 commit 08cee2bf804d22dc51002b0df023aea7ec044d8d Author: Koichi Sasada AuthorDate: 2022-05-24 16:39:45 +0900 Commit: Koichi Sasada CommitDate: 2022-05-24 17:50:49 +0900 altstack is native thread's attr Move th->altstack to th->nt->altstack. Notes: Merged: https://github.com/ruby/ruby/pull/5936 commit 78785fb99041521fc5da01ffa6ab3f4f3936ce06 Author: Nobuyoshi Nakada AuthorDate: 2022-05-24 17:23:23 +0900 Commit: git[bot] CommitDate: 2022-05-24 17:23:42 +0900 [ruby/date] Constify gperf-generated table https://github.com/ruby/date/commit/6d7ab08ffc commit 62e08d4b844a3f4f7a6dadc6083cd0585485931b Author: Koichi Sasada AuthorDate: 2022-05-24 15:06:30 +0900 Commit: Koichi Sasada CommitDate: 2022-05-24 16:28:07 +0900 remove `DEBUG_OUT()` macro This macro is no longer used ([GH-5933]). Notes: Merged: https://github.com/ruby/ruby/pull/5935 commit d2033d0f06f6962031c51187c73e6bec8cae6e9b Author: Nobuyoshi Nakada AuthorDate: 2022-05-24 12:17:19 +0900 Commit: GitHub CommitDate: 2022-05-24 12:17:19 +0900 [WASM] System initialization has no stack rewinding code to Asyncify Notes: Merged: https://github.com/ruby/ruby/pull/5929 Merged-By: nobu commit 2d1e7dfc36d048003ec2cb09b30f850032fd9c42 Author: Koichi Sasada AuthorDate: 2022-05-24 04:06:03 +0900 Commit: Koichi Sasada CommitDate: 2022-05-24 10:06:51 +0900 remove `-DTHREAD_DEBUG` rule (but it was already commented out) Notes: Merged: https://github.com/ruby/ruby/pull/5933 commit 4111028a5cc229c314c2b93271d205206b207088 Author: Koichi Sasada AuthorDate: 2022-05-24 03:58:18 +0900 Commit: Koichi Sasada CommitDate: 2022-05-24 10:06:51 +0900 use `RUBY_DEBUG_LOG` instead of `thread_debug` `thread_debug()` was introduced to print debug messages on `THREAD_DEBUG > 0` but `RUBY_DEBUG_LOG()` is more controllable. Notes: Merged: https://github.com/ruby/ruby/pull/5933 commit f3235ac09582c764086da28245a86753a100ba58 Author: Koichi Sasada AuthorDate: 2022-05-24 03:57:06 +0900 Commit: Koichi Sasada CommitDate: 2022-05-24 10:06:51 +0900 add `rb_th_serial()` `rb_th_serial(th)` returns th's serial for debug print purpose. Notes: Merged: https://github.com/ruby/ruby/pull/5933 commit d9984f39d32f4cd692a35f4d803f7754ea262805 Author: Koichi Sasada AuthorDate: 2022-05-24 02:56:59 +0900 Commit: Koichi Sasada CommitDate: 2022-05-24 10:06:51 +0900 remove `NON_SCALAR_THREAD_ID` support `NON_SCALAR_THREAD_ID` shows `pthread_t` is non-scalar (non-pointer) and only s390x is known platform. However, the supporting code is very complex and it is only used for deubg print information. So this patch removes the support of `NON_SCALAR_THREAD_ID` and make the code simple. Notes: Merged: https://github.com/ruby/ruby/pull/5933 commit 741ac503309f32b5c39073f46a205c99a31d4b0e Author: Koichi Sasada AuthorDate: 2022-05-24 04:54:26 +0900 Commit: Koichi Sasada CommitDate: 2022-05-24 10:06:51 +0900 `native_tls_get()`' should not check results caller should check the result of `native_tls_get()`. Notes: Merged: https://github.com/ruby/ruby/pull/5933 commit 9c9c217045179869faf6caa7271bcb2e7c2e252c Author: Burdette Lamar AuthorDate: 2022-05-24 07:57:48 +0900 Commit: git[bot] CommitDate: 2022-05-24 07:57:52 +0900 [ruby/fileutils] [DOC] Enhanced RDoc for ::cp (https://github.com/ruby/fileutils/pull/74) https://github.com/ruby/fileutils/commit/956b345ceb commit 80ad0e751f4c9aa13a581b61b348c34ede7f3956 Author: Jemma Issroff AuthorDate: 2022-05-06 04:10:36 +0900 Commit: Aaron Patterson CommitDate: 2022-05-24 03:04:34 +0900 Remove unnecessary module flag, add module assertions to other module flags Notes: Merged: https://github.com/ruby/ruby/pull/5930 commit 37ccf91bfb73a225cc60413645788ea55e5e852a Author: Koichi Sasada AuthorDate: 2022-05-24 01:44:17 +0900 Commit: Koichi Sasada CommitDate: 2022-05-24 02:22:41 +0900 cleanup by `RUBY_DEBUG_LOG2` and `VM_ASSERT` Notes: Merged: https://github.com/ruby/ruby/pull/5931 commit 08b2f22c27bc83e326e6c28eba5bb19c21f04191 Author: Burdette Lamar AuthorDate: 2022-05-24 01:17:07 +0900 Commit: git[bot] CommitDate: 2022-05-24 01:17:11 +0900 [ruby/fileutils] Enhanced RDoc for ::ln_sf and ::link_entry (https://github.com/ruby/fileutils/pull/73) https://github.com/ruby/fileutils/commit/ff49055f8a commit bc7f59957f0c8b4378b8fe29deeb9f641e82db20 Author: Nobuyoshi Nakada AuthorDate: 2022-05-23 22:32:50 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-23 22:34:10 +0900 Make internal function `rb_main` static commit 479884d5962518caa3345fb5c7bf22a26ad56a97 Author: Burdette Lamar AuthorDate: 2022-05-23 22:00:21 +0900 Commit: git[bot] CommitDate: 2022-05-23 22:00:33 +0900 [ruby/fileutils] [DOC] Enhanced RDoc for ::ln_s (https://github.com/ruby/fileutils/pull/72) https://github.com/ruby/fileutils/commit/db612c5e22 commit 663915ddf414e5a4dcb9f981449c1f9f79f1eada Author: Yusuke Endoh AuthorDate: 2022-05-23 18:45:39 +0900 Commit: git[bot] CommitDate: 2022-05-23 20:51:17 +0900 [rubygems/rubygems] Support the change of did_you_mean about Exception#detailed_message I am asking did_you_mean to use Exception#detailed_message to add "Did you mean?" suggestion instead of overriding #message method. https://github.com/ruby/did_you_mean/pull/177 Unfortunately, the change will affect Gem::UnknownCommandError, which excepts did_you_mean to override #message method. This PR absorbs the change of did_you_mean. Gem::CommandManager now calls #detailed_message method to get a message string with "Did you mean?" suggestion from an exception. https://github.com/rubygems/rubygems/commit/8f104228d3 commit 4cf155e0075849bfd7e3f731b3432e274ab09629 Author: Nobuyoshi Nakada AuthorDate: 2022-05-21 01:22:54 +0900 Commit: git[bot] CommitDate: 2022-05-23 18:23:22 +0900 [ruby/net-http] [DOC] Get rid of a RDoc bug RDoc overrides class name by the assigned name unexpectedly when assigned using a qualified class path. https://github.com/ruby/net-http/commit/a7bded0407 commit 0293f8ca8e1fbe8e4202c2d211bb11f4e0ffa5fd Author: Yusuke Endoh AuthorDate: 2022-05-23 17:33:03 +0900 Commit: Yusuke Endoh CommitDate: 2022-05-23 17:33:52 +0900 Prevent a warning: `*' interpreted as argument prefix commit 9134e761407eed2cc10893d53291f81b8270dee3 Author: Nobuyoshi Nakada AuthorDate: 2022-05-23 11:04:42 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-23 11:04:43 +0900 Support old Mac OS X `pthread_threadid_np` is available since Mac OS X 10.6, use `pthread_mach_thread_np` on older systems. commit 218e8bdcb0f52e83ef295eb1661d9b1494fbbbf4 Author: Nobuyoshi Nakada AuthorDate: 2022-05-22 16:49:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-22 16:49:48 +0900 Disable usage of TLS unless available Thread-local storage is supported since Mac OS X 10.7. Enable TLS only when the target version is enough. commit e79983a44885db24b82f25e6fc29def347dd1a9f Author: Nobuyoshi Nakada AuthorDate: 2022-05-22 15:26:42 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-22 15:26:42 +0900 Check if thread-local storage is supported on macOS We need thread-local storage on Clang, since 319afed20fba. commit 009a51466885422f9d15c728f0e39a51908f58df Author: Nobuyoshi Nakada AuthorDate: 2022-05-22 14:18:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-22 14:18:27 +0900 Revert broken thread_pthread.c in 539459abda3 commit 539459abda3f4e086ca060620dee2586ebfed873 Author: Sergey Fedorov AuthorDate: 2022-05-22 12:02:03 +0900 Commit: GitHub CommitDate: 2022-05-22 12:02:03 +0900 Ruby31: add support for Darwin ppc/ppc64 (#5927) * add coroutines for ppc & ppc64 * fix universal coroutine to include ppc & ppc64 * add powerpc*-darwin to configure.ac * fix thread_pthread for older systems Notes: Merged-By: ioquatix commit 7e52533104f1b67c06c817384416fe011a25eaaf Author: Nobuyoshi Nakada AuthorDate: 2022-05-21 22:58:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-21 22:58:45 +0900 No fallback to default values commit 6ba394ce30e88a502ea90dc23b6626f89441ac4b Author: git[bot] AuthorDate: 2022-05-21 16:07:14 +0900 Commit: git[bot] CommitDate: 2022-05-21 16:07:14 +0900 Update bundled gems list at 2022-05-21 commit 8b2ff2acddd2a39a69f3f61f5fdd5437e762c47c Author: Takashi Kokubun AuthorDate: 2022-05-21 13:34:46 +0900 Commit: Takashi Kokubun CommitDate: 2022-05-21 13:34:47 +0900 Make the test class naming consistent forgot to commit this in ead96e7b44b98bef4896d836239345012821f1d2 commit ead96e7b44b98bef4896d836239345012821f1d2 Author: Takashi Kokubun AuthorDate: 2022-05-21 13:31:00 +0900 Commit: Takashi Kokubun CommitDate: 2022-05-21 13:32:55 +0900 Rename test_jit to test_mjit to avoid confusion with YJIT commit aef36bb9333bdafcc5af44dcd77942656f52b802 Author: Burdette Lamar AuthorDate: 2022-05-21 08:55:43 +0900 Commit: git[bot] CommitDate: 2022-05-21 08:55:57 +0900 [ruby/fileutils] Enhanced RDoc for #cp_lr (https://github.com/ruby/fileutils/pull/71) https://github.com/ruby/fileutils/commit/39772bccca commit 6c7e2617d169417674859d0fed55acb19bec4a15 Author: ydah <13041216+ydah@users.noreply.github.com> AuthorDate: 2022-05-21 06:24:41 +0900 Commit: git[bot] CommitDate: 2022-05-21 08:47:53 +0900 [ruby/optparse] Fix typo in documentation - "hypnen" -> "hyphen" - "hadler" -> "handler" https://github.com/ruby/optparse/commit/e70e689ded commit 50bad7159a8e1f9846f37421c941f6fa8f087591 Author: Noah Gibbs AuthorDate: 2022-05-21 08:39:37 +0900 Commit: GitHub CommitDate: 2022-05-21 08:39:37 +0900 Special-case jit_guard_known_class for strings. This can remove (#5920) runtime guard-checks for String#to_s, making some blocks too short to invalidate later. Add NOPs in those cases to reserve space. Notes: Merged-By: maximecb commit a97fbc108bd23e669a27356be83c1a515d469af0 Author: Koichi Sasada AuthorDate: 2022-05-20 18:00:49 +0900 Commit: Koichi Sasada CommitDate: 2022-05-21 08:35:04 +0900 extend `RUBY_DEBUG_LOG_FILTER` to reject words support reject words with `-word` like RUBY_DEBUG_LOG_FILTER=-foo,-bar,baz,boo`. Notes: Merged: https://github.com/ruby/ruby/pull/5924 commit 3bceae0fad495312493f8c627da27b0b0701a54d Author: Yudai Takada <13041216+ydah@users.noreply.github.com> AuthorDate: 2022-05-21 06:45:46 +0900 Commit: GitHub CommitDate: 2022-05-21 06:45:46 +0900 Fix typo in README (#5925) "iteretor" -> "iterator" Notes: Merged-By: k0kubun commit 65122d09d515c9183e643d5f7f31d24251b149ed Author: Jean Boussier AuthorDate: 2022-02-21 20:17:02 +0900 Commit: Jean Boussier CommitDate: 2022-05-21 03:31:59 +0900 [Feature #18595] Alias String#-@ as String#dedup Notes: Merged: https://github.com/ruby/ruby/pull/5583 commit 8fa9e168beefbb95415321632cff64e717efdc5b Author: Nobuyoshi Nakada AuthorDate: 2022-05-20 23:02:10 +0900 Commit: git[bot] CommitDate: 2022-05-21 00:41:54 +0900 [ruby/net-http] Make the recommended name formal `HTTPServerException` is the name deprecated since years ago. https://github.com/ruby/net-http/commit/b3028fef5a commit 4146fd284b3c3995cf6638b239625c530c6da875 Author: Hiroshi SHIBATA AuthorDate: 2022-05-20 19:48:21 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 19:48:28 +0900 Rewrite with assert_ractor for multiple ractor environment commit a080651f4625207dc847962cff3a6fc6a7da4810 Author: Nobuyoshi Nakada AuthorDate: 2022-05-09 15:57:09 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-20 19:05:35 +0900 Disable GMP by -DUSE_GMP=0 commit b6649797ee8cc15330c2c050ba33d09859048996 Author: Hiroshi SHIBATA AuthorDate: 2022-05-20 18:52:28 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 18:53:16 +0900 Picked the missing test file from https://github.com/ruby/did_you_mean/commit/8faba54b2d3ec9aa570691775f143801308c5b2f commit bcc9451bbff6cd4e136339f195a9ef381df4e9a2 Author: Hiroshi SHIBATA AuthorDate: 2022-05-20 18:45:14 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 18:45:14 +0900 Merge JRuby implementation for stringio and io-wait commit c83ec3aba72aeb50df3b3188b6a009e93f11494a Author: Hiroshi SHIBATA AuthorDate: 2022-05-20 18:36:01 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 18:36:01 +0900 Merge https://github.com/ruby/pathname/pull/8 for pathname commit bcdbfe4b6e09c0076571addd1d0dd3421bde146d Author: ima1zumi AuthorDate: 2022-04-12 22:20:49 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 17:49:15 +0900 [ruby/reline] Require Ruby >= 2.6 fix https://github.com/ruby/reline/pull/428 https://github.com/ruby/reline/commit/dae9eca323 commit 1d9f2a450410e57c5d7fbfe078872a95eb3ec82a Author: Nobuyoshi Nakada AuthorDate: 2019-10-31 01:09:18 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 17:49:15 +0900 [ruby/racc] Show diffs https://github.com/ruby/racc/commit/0b679e2f69 commit 104fb83ccd23b132e88d259a4f70c46649dad608 Author: Nobuyoshi Nakada AuthorDate: 2022-04-21 17:46:26 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 17:49:14 +0900 [ruby/io-nonblock] Remove unnecessary files from the gem https://github.com/ruby/io-nonblock/commit/3850a4c7ac commit 0dfd5d19f3f98b596ad524e4369086fc031065cd Author: Nobuyoshi Nakada AuthorDate: 2022-04-21 17:03:11 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 17:49:14 +0900 [ruby/io-nonblock] Rename `io_nonblock_mode` and extract `set_fcntl_flags` https://github.com/ruby/io-nonblock/commit/22f08574df commit 589f1c1d55433cbff3e8c8dab471fa8f88371ae8 Author: Burdette Lamar AuthorDate: 2022-05-07 03:07:49 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 17:49:14 +0900 [ruby/tempfile] Enhanced RDoc for ::new and ::create (https://github.com/ruby/tempfile/pull/10) https://github.com/ruby/tempfile/commit/a5e53aa82a commit 6923dd932bd8115eeeed49e3624e31305a3679ea Author: Olle Jonsson AuthorDate: 2022-05-07 00:30:21 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 17:49:14 +0900 [ruby/tempfile] Drop unused gemspec directives This gem exposes no executables. https://github.com/ruby/tempfile/commit/07fde5fe14 commit 9245b28d34c373e2b17dfeaf62613d46080bb61d Author: Florian Frank AuthorDate: 2022-05-16 21:20:48 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 17:49:13 +0900 [flori/json] Bump version to 2.6.2 https://github.com/flori/json/commit/5de358f655 commit a15d0e267a8a429cf2a2a4358080666ee2260526 Author: Andrew Bromwich AuthorDate: 2022-04-20 21:30:35 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 17:49:13 +0900 [flori/json] Fix parser bug for empty string allocation When `HAVE_RB_ENC_INTERNED_STR` is enabled it is possible to pass through a null pointer to `rb_enc_interned_str` resulting in a segfault Fixes https://github.com/flori/json/pull/495 https://github.com/flori/json/commit/b59368a8c2 commit 767f3904ee2a15575c292d89578de7669f169346 Author: Hiroshi SHIBATA AuthorDate: 2021-12-02 16:42:41 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 17:49:13 +0900 [flori/json] Doc: Improve documentation on JSON#parse and JSON#parse! https://github.com/flori/json/commit/75ada77b96 Co-authored-by: Bruno Gomes da Silva commit a37051ef3b455a808b32d72561d50b8610d917ce Author: Charles Oliver Nutter AuthorDate: 2021-12-02 00:13:13 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 17:49:13 +0900 [flori/json] Remove unknown keyword arg from DateTime.parse This snuck in while addding tests for the `create_additions` feature. Caught by JRuby when we added the `limit` option to the Date/DateTime parsing methods, which causes this to be rejected as an unknown keyword. https://github.com/flori/json/commit/b1007dff66 commit 37ea07d59be53bd447d2d87d9cd56f94d41a40dd Author: Koichi Sasada AuthorDate: 2022-05-20 16:04:10 +0900 Commit: Koichi Sasada CommitDate: 2022-05-20 17:37:59 +0900 setup vm->main_ractor before `Init_native_thread()` Notes: Merged: https://github.com/ruby/ruby/pull/5922 commit eab99b1d4b61fb85d994534826922f96cd14ae58 Author: Koichi Sasada AuthorDate: 2022-05-20 15:47:20 +0900 Commit: Koichi Sasada CommitDate: 2022-05-20 17:37:46 +0900 `rb_thread_t::serial` for debug `rb_thread_t::serial` is auto-incremented serial number for threads and it can overflow, it means the serial is not a ID for each thread, it is only for debug print. `RUBY_DEBUG_LOG` shows this information. Also skip EC related information if EC is NULL. This patch enable to use `RUBY_DEBUG_LOG` without setup EC. Notes: Merged: https://github.com/ruby/ruby/pull/5921 commit aeea88174d88264469b406003765c7efdcd53edf Author: Hiroshi SHIBATA AuthorDate: 2022-05-20 17:15:15 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 17:32:19 +0900 Merge RubyGems and Bundler HEAD https://github.com/rubygems/rubygems/commit/125415593ead9ab69a9f0bb5392c9d7ec61b1f51 commit bd8df25cdc8e0e94cbc2eacc492a764e6b90833c Author: Jean byroot Boussier AuthorDate: 2022-01-21 19:04:56 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-20 17:32:18 +0900 [ruby/did_you_mean] Fix `frozen_string_literal is ignored after any tokens` warning. (https://github.com/ruby/did_you_mean/pull/172) ``` did_you_mean/formatters/verbose_formatter.rb:5: warning: `frozen_string_literal' is ignored after any tokens ``` https://github.com/ruby/did_you_mean/commit/531760f323 commit ec7b42eb774222b31f6621413d3b7714f049cfb2 Author: David Rodríguez AuthorDate: 2022-05-20 17:23:45 +0900 Commit: GitHub CommitDate: 2022-05-20 17:23:45 +0900 [DOC] Add a note to clarify binary flags to `IO.new` Try to make it more clear that the `File::BINARY` integer flag, and the `b` string suffix are not equivalent. Notes: Merged: https://github.com/ruby/ruby/pull/5923 Merged-By: nobu commit 6850e3c42ec85c49cc359539ca5f37831935ae74 Author: David Rodríguez AuthorDate: 2022-05-10 17:58:26 +0900 Commit: git[bot] CommitDate: 2022-05-20 07:05:19 +0900 [rubygems/rubygems] Fix locale dependent spec failure https://github.com/rubygems/rubygems/commit/1fd818743e commit b8a268e293f89338c9ad5af8cf8e9e350c112c72 Author: Takashi Kokubun AuthorDate: 2022-05-20 00:52:52 +0900 Commit: GitHub CommitDate: 2022-05-20 00:52:52 +0900 YJIT: Add opt_succ (#5919) Notes: Merged-By: maximecb commit 3d6fd162a469f9bfa4afc696ef8b8d8536a38507 Author: Daisuke Fujimura (fd0) AuthorDate: 2022-04-16 12:41:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-19 17:15:30 +0900 Undefine RUBY_DLN_CHECK_ABI on cygwin Notes: Merged: https://github.com/ruby/ruby/pull/5810 commit 61a54d51801a3bc1f829c32ea0688dc18bcad81f Author: Nobuyoshi Nakada AuthorDate: 2022-05-19 17:07:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-19 17:07:56 +0900 [DOC] Re-markup as Markdown commit ee3b61a44fe73dc577f84d27a1de5dfca548a04e Author: Hiroshi SHIBATA AuthorDate: 2022-05-19 15:48:27 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-19 15:48:28 +0900 Removed subversion section because there is no active branch for svn. commit 75fcfb14169db9de7842eba0201b86a37e58a074 Author: Benoit Daloze AuthorDate: 2022-05-15 20:51:57 +0900 Commit: git[bot] CommitDate: 2022-05-19 07:19:42 +0900 [ruby/timeout] Remove redundant done? check * It's already checked inside #interrupt. https://github.com/ruby/timeout/commit/5f43254f81 commit 240ac9eaa8d3dab8f7dd5f29f67c7ee8d4d05d86 Author: Benoit Daloze AuthorDate: 2022-05-15 20:49:31 +0900 Commit: git[bot] CommitDate: 2022-05-19 07:19:41 +0900 [ruby/timeout] Synchronize all accesses to @done * So it is trivially correct. * Performance seems the same overall. https://github.com/ruby/timeout/commit/5e0d8e1637 commit 354cd6f210c966327b1adffc0b81990827b77a0d Author: Benoit Daloze AuthorDate: 2022-05-15 20:43:29 +0900 Commit: git[bot] CommitDate: 2022-05-19 07:19:40 +0900 [ruby/timeout] Handle Timeout + fork and add test for it https://github.com/ruby/timeout/commit/4baee63b9b commit 89fbec224d8e1fa35e82bf2712c5a5fd3dc06b83 Author: Benoit Daloze AuthorDate: 2022-05-12 23:20:56 +0900 Commit: git[bot] CommitDate: 2022-05-19 07:19:39 +0900 [ruby/timeout] Reimplement Timeout.timeout with a single thread and a Queue https://github.com/ruby/timeout/commit/2bafc458f1 commit 97c12c5f692d176278dd6445a751788568b54e4d Author: Nobuyoshi Nakada AuthorDate: 2022-05-17 23:55:32 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-18 14:33:00 +0900 Clean intermediate object files Notes: Merged: https://github.com/ruby/ruby/pull/5914 commit 9a0f5a8edc9c1a7b3d1f85fb1c02e137520cfe1a Author: Nobuyoshi Nakada AuthorDate: 2022-05-17 23:47:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-18 14:33:00 +0900 Verbose mode on libyjit merge Notes: Merged: https://github.com/ruby/ruby/pull/5914 commit 9b3ed5a23fba68d364f5e2eea654fd75ce0ea0db Author: Nobuyoshi Nakada AuthorDate: 2022-05-17 18:41:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-18 14:33:00 +0900 Extract YJIT_LIBS directly without copying Notes: Merged: https://github.com/ruby/ruby/pull/5914 commit 3db8db8a329d6bcc46b5aaf41571309a489540c7 Author: Nobuyoshi Nakada AuthorDate: 2022-05-17 12:40:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-18 14:33:00 +0900 `AR` does not need the absolute path Still use `find` to get rid of potential ARGV limit overflow, since rustc-genrated object file names are mangled and very long. Notes: Merged: https://github.com/ruby/ruby/pull/5914 commit c478a3c0a9179298b5ae332268e1e94ff9c912bd Author: Kaíque Kandy Koga AuthorDate: 2022-05-18 11:32:13 +0900 Commit: GitHub CommitDate: 2022-05-18 11:32:13 +0900 [DOC] Use `make gdb-ruby` and `make lldb-ruby` in doc/contributing/building_ruby.md Notes: Merged: https://github.com/ruby/ruby/pull/5908 Merged-By: nobu commit 6b6d7df39db2447dd675b2558aab69d351f2ff56 Author: Hiroshi SHIBATA AuthorDate: 2022-05-16 19:42:54 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-18 10:03:48 +0900 [ruby/psych] Prepare to develop 5.0.0 https://github.com/ruby/psych/commit/c3b5183f42 commit 3ec066334ce60d7695051c8c40df73343860ec35 Author: MSP-Greg AuthorDate: 2022-03-30 00:10:01 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-18 10:03:47 +0900 [ruby/psych] [CI] Add/update 'rake install', update Psych version for Ruby 3.1 gem install https://github.com/ruby/psych/commit/2fa5e190b5 commit e658da94086893034c0bafa050f36751b206a48a Author: Kouhei Yanagita AuthorDate: 2022-05-17 18:47:41 +0900 Commit: git[bot] CommitDate: 2022-05-18 07:12:29 +0900 [ruby/irb] Fix documents for .irbrc path https://github.com/ruby/irb/commit/af99c01b0d commit 11af23ee923858fbcec18f2d1365296fdfe24dc2 Author: Samuel Williams AuthorDate: 2022-05-17 20:44:14 +0900 Commit: GitHub CommitDate: 2022-05-17 20:44:14 +0900 Move feature deletion from GC mark to `autoload_delete`. (#5912) Notes: Merged-By: ioquatix commit 60d45b2ee86a80e248c3bff0c90c981ed2168ac3 Author: Samuel Williams AuthorDate: 2022-05-17 16:12:36 +0900 Commit: GitHub CommitDate: 2022-05-17 16:12:36 +0900 Restore implicit relationship between `autoload_const` and `autoload_data` during GC. (#5911) Notes: Merged-By: ioquatix commit 2411f0ad8cf608d6aae221ce4d803b5c5271795a Author: Nobuyoshi Nakada AuthorDate: 2022-05-17 12:11:18 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-17 12:14:32 +0900 Set `target_os` for a7577dbfd3ea53cccf7aaf94208069784ad17791 commit f2dc97294086c31604a45ee350c4fa5d51762f45 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-05-16 23:40:24 +0900 Commit: git[bot] CommitDate: 2022-05-16 23:43:04 +0900 [ruby/set] Fix a typo https://github.com/ruby/set/commit/71a876ae81 commit f626998c4fa62973cac3a027597f97cdacd0d3c5 Author: Samuel Williams AuthorDate: 2022-05-16 21:50:02 +0900 Commit: GitHub CommitDate: 2022-05-16 21:50:02 +0900 Delete autoload data from global features after autoload has completed. (#5910) * Update naming of critical section assertions macros. * Improved locking for autoload. Notes: Merged-By: ioquatix commit a7577dbfd3ea53cccf7aaf94208069784ad17791 Author: Nobuyoshi Nakada AuthorDate: 2022-05-16 17:56:32 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-16 19:27:37 +0900 `annobin` works only when targeting Fedora And hopefully for other Linux. Since it is not run on the build os, `TEST_RUNNABLE` is not suitable for this case. commit 641c3830df8177b38fcfca33d3a0ece8a2c1e7d2 Author: David Rodríguez AuthorDate: 2022-05-13 22:56:50 +0900 Commit: git[bot] CommitDate: 2022-05-16 17:24:14 +0900 [rubygems/rubygems] Use `Array#concat` in `SpecSet#for` to save memory On `rails/rails` repository Gemfile, running the following script ``` # script.rb require "bundler/setup" ``` #### Before ``` ➜ rails git:(main) ✗ BUNDLER_VERSION=2.4.0.dev ruby-memory-profiler --pretty --no-detailed --allocated-strings=0 --retained-strings=0 script.rb Total allocated: 24.37 MB (207937 objects) Total retained: 2.98 MB (34152 objects) ``` #### After ``` ➜ rails git:(main) ✗ BUNDLER_VERSION=2.4.0.dev ruby-memory-profiler --pretty --no-detailed --allocated-strings=0 --retained-strings=0 script.rb Total allocated: 22.27 MB (206856 objects) Total retained: 2.98 MB (34152 objects) ``` https://github.com/rubygems/rubygems/commit/2ea2523afd Co-authored-by: Josh Nichols commit c380aac19d097f1d38d2299fe3f64567b42fb55d Author: David Rodríguez AuthorDate: 2022-05-13 18:26:20 +0900 Commit: git[bot] CommitDate: 2022-05-16 17:24:14 +0900 [rubygems/rubygems] Improve `bundler/setup` performance again On a different patch, it was noticed Ngam Pham that we are calling `LazySpecification#hash` many times, and simply memoizing that led to a very considerable performance improvement in his app. I noticed though that we shouldn't be calling `LazySpecification#hash` that many times, and I located the culprit at `SpecSet#for` where we were deduplicating the partial aggregated result on every iteration. It is enough to do it just once at the end. This leads on a 12% speedup on Rails repository Gemfile vs the previous 8% I was getting from memoizing `LazySpecification#hash`. Also, after this patch memoizing `LazySpecification#hash` has no effect in performance anymore. https://github.com/rubygems/rubygems/commit/68d00a9edd Co-authored-by: Ngan Pham commit dccfff943c3ea9defd91647cfa3fd8714041bb5a Author: Jun Aruga AuthorDate: 2022-05-10 23:34:08 +0900 Commit: Jun Aruga CommitDate: 2022-05-16 17:10:16 +0900 Add `make test-annocheck` to detect security issues. * Note that as the annocheck binary package is not available on Ubuntu, and it is working in progress in Debian, the script uses Fedora container, and it requires docker or podman command. https://www.debian.org/devel/wnpp/itp.en.html https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926470 * .github/workflows/compilers.yml: Add "gcc-11 annocheck" case. To pass the CI, set `TEST_ANNOCHECK_OPTS: "--skip-pie --skip-notes"` for now. See . * Skip MJIT tests in case of annocheck case. The MJIT tests fail in the annocheck case. See . Notes: Merged: https://github.com/ruby/ruby/pull/5900 commit 774b9e27ae22ff54daef434827c449050c89c951 Author: Nobuyoshi Nakada AuthorDate: 2022-05-13 16:01:36 +0900 Commit: git[bot] CommitDate: 2022-05-16 12:24:10 +0900 [ruby/racc] [DOC] Remove stale `Object::ParseError` documentation https://github.com/ruby/racc/commit/4ecc13c9cb commit 32de6097b2b5d8394b3a1399e13d309444697954 Author: Samuel Williams AuthorDate: 2022-05-15 13:07:12 +0900 Commit: GitHub CommitDate: 2022-05-15 13:07:12 +0900 Fix various autoload race conditions. (#5898) * Add RUBY_VM_CRITICAL_SECTION for detecting unexpected context switch. * Prevent race between GC mark and autoload setup. * Protect race on autoload state. * Avoid potential race condition when allocating `autoload_featuremap`. * Add NEWS entry for autoload fixes. Notes: Merged-By: ioquatix commit 48002ff1877e2fedb5d3893eec4ea633b87ea22f Author: Burdette Lamar AuthorDate: 2022-05-14 22:38:09 +0900 Commit: git[bot] CommitDate: 2022-05-14 22:38:22 +0900 [ruby/fileutils] [DOC] Enhanced RDoc for #ln (https://github.com/ruby/fileutils/pull/69) Enhanced RDoc for #ln https://github.com/ruby/fileutils/commit/79fc67f03f Co-authored-by: Peter Zhu commit 708e839dee57bc5ef8f5b21fb4fa620e89caeb52 Author: Matt Valentine-House AuthorDate: 2022-05-14 04:24:05 +0900 Commit: Peter Zhu CommitDate: 2022-05-14 05:26:41 +0900 Fix compiler warning when USE_RVARGC=0 Notes: Merged: https://github.com/ruby/ruby/pull/5909 commit 9639dc91d936a637db56c19664a46c024059bc40 Author: Burdette Lamar AuthorDate: 2022-05-14 05:02:05 +0900 Commit: git[bot] CommitDate: 2022-05-14 05:02:18 +0900 [ruby/logger] [DOC] Enhanced RDoc for Logger (https://github.com/ruby/logger/pull/77) Enhanced RDoc for Logger https://github.com/ruby/logger/commit/c601ed0370 Co-authored-by: Peter Zhu commit 09c72f41ceeb6933e3b1da4eb581c4c22e9f1b89 Author: Peter Zhu AuthorDate: 2022-05-13 22:32:18 +0900 Commit: Peter Zhu CommitDate: 2022-05-13 23:47:50 +0900 Print function name in backtrace when available If we don't have `saddr` but have `sname` we should output `sname`. Notes: Merged: https://github.com/ruby/ruby/pull/5906 commit 55ba41440543ed10748a2ed2bdc77b6553bf0b7b Author: Burdette Lamar AuthorDate: 2022-05-13 04:42:33 +0900 Commit: git[bot] CommitDate: 2022-05-13 22:52:59 +0900 [ruby/logger] Update lib/logger.rb https://github.com/ruby/logger/commit/a5a2f2da4a Co-authored-by: Peter Zhu commit 1f1283b927addb8b55c4133716b291e0f237df38 Author: Burdette Lamar AuthorDate: 2022-05-13 03:21:20 +0900 Commit: git[bot] CommitDate: 2022-05-13 22:52:58 +0900 [ruby/logger] Update lib/logger.rb https://github.com/ruby/logger/commit/e6f2c64fc6 Co-authored-by: Peter Zhu commit 45a92cc4fe2dddff6d628bae6521094542abd338 Author: Burdette Lamar AuthorDate: 2022-05-13 03:21:06 +0900 Commit: git[bot] CommitDate: 2022-05-13 22:52:57 +0900 [ruby/logger] Update lib/logger.rb https://github.com/ruby/logger/commit/3dc5a8d7a4 Co-authored-by: Peter Zhu commit 00635f8d414f60b291d46f8ebd1d93d03c7bab1f Author: Burdette Lamar AuthorDate: 2022-05-13 03:20:24 +0900 Commit: git[bot] CommitDate: 2022-05-13 22:52:56 +0900 [ruby/logger] Update lib/logger.rb https://github.com/ruby/logger/commit/98919e09e5 Co-authored-by: Peter Zhu commit 2427a11b35fc8682c550dab968e3bc99412d0806 Author: Burdette Lamar AuthorDate: 2022-05-12 23:49:12 +0900 Commit: git[bot] CommitDate: 2022-05-13 22:52:55 +0900 [ruby/logger] Update lib/logger.rb https://github.com/ruby/logger/commit/073a892ad9 Co-authored-by: Olle Jonsson commit b9311e646e8b6aa9d4f576506456ee50c5444029 Author: Burdette Lamar AuthorDate: 2022-05-12 23:48:51 +0900 Commit: git[bot] CommitDate: 2022-05-13 22:52:55 +0900 [ruby/logger] Update lib/logger.rb https://github.com/ruby/logger/commit/6d91281f7f Co-authored-by: Olle Jonsson commit e36a794f1a274213d1d2ec30690fa9bbcecd78e7 Author: Burdette Lamar AuthorDate: 2022-05-12 23:48:36 +0900 Commit: git[bot] CommitDate: 2022-05-13 22:52:54 +0900 [ruby/logger] Update lib/logger.rb https://github.com/ruby/logger/commit/34c0ba8baa Co-authored-by: Olle Jonsson commit 90d8b7219e26135cb1003ebfc5884f132ba39867 Author: BurdetteLamar AuthorDate: 2022-05-12 21:27:52 +0900 Commit: git[bot] CommitDate: 2022-05-13 22:52:53 +0900 [ruby/logger] Enhanced RDoc for Logger https://github.com/ruby/logger/commit/16556d06d1 commit 4c9ddaac0df317e18665f6d07387191d457cc093 Author: David Rodríguez AuthorDate: 2022-05-11 21:17:54 +0900 Commit: git[bot] CommitDate: 2022-05-13 15:23:56 +0900 [rubygems/rubygems] Fix `Gemfile.lock` versions leaking to `bundler/inline` install output The lockfile is completely ignored in inline mode, yet the previous output would suggest it wasn't. https://github.com/rubygems/rubygems/commit/763125a745 commit 4962e5c4178b3f4dcc1444327129dbd0943bdc01 Author: David Rodríguez AuthorDate: 2022-05-11 21:17:10 +0900 Commit: git[bot] CommitDate: 2022-05-13 15:23:56 +0900 [rubygems/rubygems] Normalize parameter name The other sources use `options` which reads better. https://github.com/rubygems/rubygems/commit/a672f9d602 commit 2d1032075a4654b8b54dde96424f299f7f29f9d6 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-05-13 08:44:17 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-05-13 08:44:17 +0900 Stop `build_extensions` when DESTDIR set Try to fix `make install without root privilege` failures on snapshot CIs. example: https://github.com/ruby/actions/actions/runs/2315349280 commit ebaf56c013fa3c24bc680cd7482845b9ed30cda8 Author: Aaron Patterson AuthorDate: 2022-05-04 07:25:03 +0900 Commit: Aaron Patterson CommitDate: 2022-05-13 06:34:18 +0900 YJIT: Implement getblockparam This implements the getblockparam instruction. There are two cases we need to handle depending on whether or not VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM is set in the environment flag. When the modified flag is unset, we need to call rb_vm_bh_to_procval to get a proc from our passed block, save the proc in the environment, and set the modified flag. In the case that the modified flag is set we are able to just use the existing proc in the environment. One quirk of this is that we need to call jit_prepare_routine_call early and ensure we update PC and SP regardless of the branch taken, so that we have a consistent SP offset at the start of the next instruction. We considered using a chain guard to generate these two paths separately, but decided against it because it's very common to see both and the modified case is basically a subset of the instructions in the unmodified case. This includes tests for both getblockparam and getblockparamproxy which was previously missing a test. Notes: Merged: https://github.com/ruby/ruby/pull/5881 commit a6ce73efecfe3ded9d0c642a3309f43ad260939f Author: Stan Lo AuthorDate: 2022-05-13 03:22:00 +0900 Commit: Peter Zhu CommitDate: 2022-05-13 04:19:51 +0900 Add documentation section to README Notes: Merged: https://github.com/ruby/ruby/pull/5904 commit f07a0e79a225190e3c51d9306af3f8c515e8e41f Author: Aaron Patterson AuthorDate: 2022-05-13 04:08:35 +0900 Commit: GitHub CommitDate: 2022-05-13 04:08:35 +0900 YJIT: Fix getting the EP with registers other than RAX (#5882) Before this commit we were accidentally clobbering RAX. Additionally, since this function had RAX hardcoded then the function may not have worked with registers other than RAX. Co-authored-by: John Hawthorn Notes: Merged-By: jhawthorn commit 75223433512d46f94fba5c0cb6f585fff5e9eee7 Author: Jun Aruga AuthorDate: 2022-05-10 00:13:13 +0900 Commit: Jun Aruga CommitDate: 2022-05-12 19:36:10 +0900 .github/workflows/compilers.yml: Add configure --enable-mkmf-verbose case. Notes: Merged: https://github.com/ruby/ruby/pull/5879 commit 019cbded90ade76fdb87d02bd4d444724429fc92 Author: Jun Aruga AuthorDate: 2022-04-22 05:59:59 +0900 Commit: Jun Aruga CommitDate: 2022-05-12 19:36:10 +0900 mkmf: Add a configure option to set verbose mode (V=1 or 0) in mkmf.rb. Note this change is only for `configure.ac`, not for Windows using `win32/configure.bat`. ``` $ ./configure --help | grep mkmf --enable-mkmf-verbose enable verbose in mkmf ``` Run the following command to enable the mkmf verbose mode. ``` $ ./configure --enable-mkmf-verbose $ grep MKMF_VERBOSE config.status S["MKMF_VERBOSE"]="1" ``` In this mkmf verbose mode, when compiling a native extension, the `rake compile` prints the compiling commands such as "gcc -I. <...> path/to/file" instead of "compiling path/to/file". ``` $ git clone https://github.com/deivid-rodriguez/byebug.git $ cd byebug $ bundle install --standalone $ bundle exec rake compile ... gcc -I. <...> path/to/file ... ``` Notes: Merged: https://github.com/ruby/ruby/pull/5879 commit 40ca208a6db8d3a53cc016caab2aa8301bafdac2 Author: Benoit Daloze AuthorDate: 2021-07-28 19:00:33 +0900 Commit: git[bot] CommitDate: 2022-05-12 18:19:17 +0900 [ruby/uri] Improve URI.register_scheme tests and automatically upcase the given scheme * Also add docs and mention current limitations. * For reference, https://stackoverflow.com/a/3641782/388803 mentions the valid characters in schemes. https://github.com/ruby/uri/commit/4346daac75 commit fbebfe1697938a684f460cd28af36cf1f056513c Author: Jeremy Evans AuthorDate: 2021-03-05 07:05:18 +0900 Commit: git[bot] CommitDate: 2022-05-12 14:54:37 +0900 [ruby/uri] Add URI::Generic#decoded_#{user,password} URI::Generic#{user,password} return the encoded values, which are not that useful if you want to do authentication with them. Automatic decoding by default would break backwards compatibility. Optional automatic decoding via a keyword to URI.parse would require threading the option through at least 3 other methods, and would make semantics confusing (user= takes encoded or unencoded password?) or require more work. Thus, adding this as a separate method seemed the simplest approach. Unfortunately, URI lacks a method for correct decoding. Unlike in www form components, + in earlier parts of the URI such as the userinfo section is treated verbatim and not as an encoded space. Add URI.#{en,de}code_uri_component methods, which are almost the same as URI.#{en,de}code_www_form_component, but without the special SP => + handling. Implements [Feature #9045] https://github.com/ruby/uri/commit/16cfc4e92f commit 054ae999dc5dfcb182f407bffceec5a52ae7ff6c Author: Frank Schmitt AuthorDate: 2022-02-16 08:48:09 +0900 Commit: git[bot] CommitDate: 2022-05-12 10:06:57 +0900 [ruby/uri] Update file.rb The module here is called `URI`, so it's probably reasonable to expect a requirement for the path to be RFC3986-compliant, but on the other hand, the class is called `File`, so it might be reasonable to expect that a path produced by e.g. the `File` class would be consumable by its `build` method (this fails if the filename contains e.g. a space). https://github.com/ruby/uri/commit/ef79789b83 commit 9f9a0940ddd6dd9cec03a9e13c543cea14f8d38a Author: Alexey Mostovoy <1931904+AMurkin@users.noreply.github.com> AuthorDate: 2022-05-12 05:26:10 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-12 07:53:46 +0900 Quick markup fix Notes: Merged: https://github.com/ruby/ruby/pull/5902 commit f6cc4b9737a75bf3883bb7f86aa8acffaa1710cf Author: Kaíque Kandy Koga AuthorDate: 2022-05-12 05:32:33 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-12 07:53:17 +0900 Write Thread instead of Threade Notes: Merged: https://github.com/ruby/ruby/pull/5903 commit 019169346ab9c8ec940ebfd41c5b66347fa0f16b Author: Burdette Lamar AuthorDate: 2022-05-12 03:33:30 +0900 Commit: git[bot] CommitDate: 2022-05-12 04:11:51 +0900 [ruby/fileutils] Update lib/fileutils.rb https://github.com/ruby/fileutils/commit/4771925fee Co-authored-by: Peter Zhu commit dbca60c58d3bd34a855b10a40e8f086296efe426 Author: BurdetteLamar AuthorDate: 2022-05-12 00:48:19 +0900 Commit: git[bot] CommitDate: 2022-05-12 04:11:50 +0900 [ruby/fileutils] Enhanced RDoc for FileUtils https://github.com/ruby/fileutils/commit/a0ea474214 commit 4da0f7a7f565c252f7a031472b796410ab8d5ac1 Author: Peter Zhu AuthorDate: 2022-05-11 22:14:16 +0900 Commit: git[bot] CommitDate: 2022-05-12 02:54:14 +0900 [ruby/rdoc] Fix dead link in RDoc::Markup https://github.com/ruby/rdoc/commit/521c9ebd29 commit e88ada469976e1dad653748bd2c0bedca9e30981 Author: Noah Gibbs AuthorDate: 2022-05-12 00:20:21 +0900 Commit: GitHub CommitDate: 2022-05-12 00:20:21 +0900 Ruby shovel operator (<<) speedup. (#5896) For string concat, see if compile-time encoding of strings matches. If so, use simple buffer string concat at runtime. Otherwise, use encoding-checking string concat. Notes: Merged-By: maximecb commit c00feffb46ac646605adc277b5454e6b067e2d8a Author: Jemma Issroff AuthorDate: 2022-05-10 00:45:50 +0900 Commit: Peter Zhu CommitDate: 2022-05-11 23:59:24 +0900 Improve documentation on contributing to Ruby co-authored-by: Peter Zhu co-authored-by: Stan Lo Notes: Merged: https://github.com/ruby/ruby/pull/5899 commit becafe1efb7bf8bf5a324a6005b24e133c0f69a8 Author: BurdetteLamar AuthorDate: 2022-05-11 06:13:26 +0900 Commit: git[bot] CommitDate: 2022-05-11 23:00:04 +0900 [ruby/fileutils] Enhanced RDoc for FileUtils https://github.com/ruby/fileutils/commit/c38fd02372 commit dde9db64e08916ddc2bcb4c64de8f53a3def9e87 Author: BurdetteLamar AuthorDate: 2022-05-11 02:48:53 +0900 Commit: git[bot] CommitDate: 2022-05-11 23:00:03 +0900 [ruby/fileutils] Enhanced RDoc for FileUtils https://github.com/ruby/fileutils/commit/7b60f2d63b commit 8f1a8e68bae29bed1052d6b518e1fb4a01e53cbd Author: David Rodríguez AuthorDate: 2022-04-06 16:22:49 +0900 Commit: git[bot] CommitDate: 2022-05-11 16:55:49 +0900 [rubygems/rubygems] Fix error message on metadata mismatches Previously we were removing not installable specs. However, if those are the only ones, that would result in a bad error message. If we still choose them as a last resort, Bundler will later check metadata right before installing a give a proper error. This is a regression of https://github.com/rubygems/rubygems/commit/565549260be5 and the fix is to revert that commit. https://github.com/rubygems/rubygems/commit/bc18912257 commit c582d9862a8f9929a2b1e3392bc6c178629f4852 Author: David Rodríguez AuthorDate: 2021-11-12 20:11:42 +0900 Commit: git[bot] CommitDate: 2022-05-11 16:55:48 +0900 [rubygems/rubygems] Tweak negative expectations The follow a tweak on the yank message. https://github.com/rubygems/rubygems/commit/f6817bfe58 commit 54b1548760d3a159051247313256175904c6f36e Author: David Rodríguez AuthorDate: 2022-04-01 16:23:09 +0900 Commit: git[bot] CommitDate: 2022-05-11 16:55:47 +0900 [rubygems/rubygems] Extract a `next_ruby_minor` helper method for specs https://github.com/rubygems/rubygems/commit/66eae0ef1d commit a85cdb5a6e7d735b03eb5ae80e5ac0c5424eb259 Author: Kaíque Kandy Koga AuthorDate: 2022-05-10 13:07:16 +0900 Commit: GitHub CommitDate: 2022-05-10 13:07:16 +0900 Write have instead of have have [ci skip] Notes: Merged: https://github.com/ruby/ruby/pull/5897 Merged-By: nobu commit d0983af61c115ba2793df1a840b8a531317c5acf Author: Nobuyoshi Nakada AuthorDate: 2022-05-10 10:15:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-10 10:15:27 +0900 Fix the order of assert_eqaul and remove unused variables commit c7d2247e35bc095a0e1fb7dcca9af36d71f9408c Author: Nobuyoshi Nakada AuthorDate: 2022-04-25 18:48:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-10 09:24:28 +0900 Honor --with-thread option to enable pthread commit 40be4d4263e77b6ce31144b1f49892c11ff53bbd Author: MSP-Greg AuthorDate: 2021-12-26 03:12:21 +0900 Commit: git[bot] CommitDate: 2022-05-10 03:20:34 +0900 [ruby/psych] tr is typically 4 to 5 times faster than gsub https://github.com/ruby/psych/commit/8533be8fe7 commit 85479b34f76d5b426c2a8224d8ed6d8c2ad81ca2 Author: Peter Zhu AuthorDate: 2022-05-07 02:43:18 +0900 Commit: Peter Zhu CommitDate: 2022-05-09 21:45:24 +0900 Don't allocate new page on finish sweeping We don't need to allocate a new page in gc_sweep_finish_size_pool. It can be allocated when needed. Notes: Merged: https://github.com/ruby/ruby/pull/5885 commit e28e9c63c64fc501751ae726e31c28b83fa08b4d Author: Peter Zhu AuthorDate: 2022-05-06 23:53:48 +0900 Commit: Peter Zhu CommitDate: 2022-05-09 21:45:24 +0900 Fix heap_extend_pages when total_slots is 0 Some size pools may not have any pages/slots, so total_slots is 0. This causes a divide-by-zero in the calculation. This commit adds a special case to catch the case when total_slots is 0 and returns the number of pages for heap_init_slots. Notes: Merged: https://github.com/ruby/ruby/pull/5885 commit f7d480378adcb1452daf767d8cc6960f881f356b Author: Peter Zhu AuthorDate: 2022-05-06 22:41:05 +0900 Commit: Peter Zhu CommitDate: 2022-05-09 21:45:24 +0900 Grow size pools with no or few slots If the size pool has no or few pages/slots, then min_free_slots will be a very small number (or even 0). Then the heap won't be eligible to grow, causing GC thrashing or infinite loops. Notes: Merged: https://github.com/ruby/ruby/pull/5885 commit b3f3cb0c383408ea2a6385e6a61f68f371e83497 Author: Peter Zhu AuthorDate: 2022-05-06 22:37:21 +0900 Commit: Peter Zhu CommitDate: 2022-05-09 21:45:24 +0900 Call gc_sweep_finish_size_pool on size pools with no pages Size pools with no pages won't be swept so gc_sweep_finish_size_pool will never be called on it, but gc_sweep_finish_size_pool must be called to grow the size pool. Notes: Merged: https://github.com/ruby/ruby/pull/5885 commit 033e58cf2c6829e14fa38e0a364911361090aa83 Author: Peter Zhu AuthorDate: 2022-05-04 22:50:48 +0900 Commit: Peter Zhu CommitDate: 2022-05-09 21:45:24 +0900 Fix gc_page_sweep when last bitmap plane is not used Depending on alignment, the last bitmap plane may not used. Then it will appear as if all of the objects on that plane is unmarked, which will cause a buffer overrun when we try to free the object. This commit changes the loop to calculate the number of planes used (bitmap_plane_count). Notes: Merged: https://github.com/ruby/ruby/pull/5885 commit a41fbc2c95cc2f7ba9071aca091d8262a8f2cf60 Author: Peter Zhu AuthorDate: 2022-05-04 22:05:22 +0900 Commit: Peter Zhu CommitDate: 2022-05-09 21:45:24 +0900 Increase SIZE_POOL_COUNT to 5 Having more size pools will allow us to allocate larger objects through Variable Width Allocation. I have attached some benchmark results below. Discourse: On Discourse, we don't see much change in response times. We do see a small reduction in RSS. Branch RSS: 377.8 MB Master RSS: 396.3 MB railsbench: On railsbench, we don't see a big change in RPS or p99 performance. We see a small increase in RSS. Branch RPS: 815.38 Master RPS: 811.73 Branch p99: 1.69 ms Master p99: 1.68 ms Branch RSS: 90.6 MB Master RSS: 89.4 MB liquid: We don't see a significant change in liquid performance. Branch parse & render: 29.041 I/s Master parse & render: 29.211 I/s Notes: Merged: https://github.com/ruby/ruby/pull/5885 commit 00e5e827b19e3b385fdad0710de71d4402431318 Author: David Rodríguez AuthorDate: 2022-05-09 04:22:59 +0900 Commit: git[bot] CommitDate: 2022-05-09 21:25:23 +0900 [rubygems/rubygems] Cleanup old legacy code https://github.com/rubygems/rubygems/commit/531d6b5fee commit ecf32dbfc03c39a75fdd8a4e4dc3cb987db44516 Author: Hiroshi SHIBATA AuthorDate: 2022-05-09 18:20:08 +0900 Commit: git[bot] CommitDate: 2022-05-09 18:20:31 +0900 [ruby/net-http] Bump version to 0.2.2 https://github.com/ruby/net-http/commit/992d07cb41 commit a370eb5a6360a789b7c5249d97169f6c80e47850 Author: Hiroshi SHIBATA AuthorDate: 2022-05-09 18:02:23 +0900 Commit: git[bot] CommitDate: 2022-05-09 18:19:06 +0900 [ruby/io-wait] bump up to 0.2.3 https://github.com/ruby/io-wait/commit/f59d1d12e0 commit 30632efeaad6f5837102ff4229777e6a7cd392b9 Author: Sutou Kouhei AuthorDate: 2022-05-09 16:47:06 +0900 Commit: git[bot] CommitDate: 2022-05-09 16:47:28 +0900 [ruby/stringio] bump up to 3.0.3 https://github.com/ruby/stringio/commit/64f225bf00 commit fbbe7ac7e3256e78d01e0b92d74611927e50f867 Author: Sutou Kouhei AuthorDate: 2022-05-09 16:35:40 +0900 Commit: git[bot] CommitDate: 2022-05-09 16:36:01 +0900 [ruby/stringio] Bump version https://github.com/ruby/stringio/commit/b79152d08f commit cea34bd8082784051542131ddf8a353f5656ac88 Author: Samuel Williams AuthorDate: 2022-05-09 14:19:01 +0900 Commit: GitHub CommitDate: 2022-05-09 14:19:01 +0900 Add basic binary operators (and, or, xor, not) to `IO::Buffer`. (#5893) Notes: Merged-By: ioquatix commit df0bcb3385746e010e100dfb4e66a25dddc2c8fd Author: Yusuke Endoh AuthorDate: 2022-05-09 10:20:25 +0900 Commit: Yusuke Endoh CommitDate: 2022-05-09 10:20:25 +0900 test/fiber/test_scheduler.rb: Remove the test file from $LOADED_FEATURES to prevent the following failure on `make test-all --repeat-count=2` http://ci.rvm.jp/results/trunk-repeat20-asserts@phosphorus-docker/3957774 ``` 1) Error: TestFiberScheduler#test_autoload: NameError: uninitialized constant TestFiberSchedulerAutoload Object.const_get(:TestFiberSchedulerAutoload) ^^^^^^^^^^ ``` commit ef525b012a709077ea2797e8642fae0b61234063 Author: Samuel Williams AuthorDate: 2022-05-09 08:03:04 +0900 Commit: GitHub CommitDate: 2022-05-09 08:03:04 +0900 Explicit handling of frozen strings in `IO::Buffer#for`. (#5892) Notes: Merged-By: ioquatix commit 563f0d0a484b6c90c20e3722c066b2f053640d0b Author: Hiroshi SHIBATA AuthorDate: 2022-05-09 07:29:33 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-05-09 07:29:37 +0900 Ignore rubyspec_temp fot Git commit e2c143abf4ba5d92f7c0f7b3f425a46bee9f5dea Author: Hiroshi SHIBATA AuthorDate: 2022-05-09 07:22:13 +0900 Commit: git[bot] CommitDate: 2022-05-09 07:26:29 +0900 [ruby/getoptlong] Fixup https://github.com/ruby/getoptlong/commit/39faa7b390f0 https://github.com/ruby/getoptlong/commit/c8b3c0c00d commit f7539d5758ee5c83e6ec7792b100e830180896fd Author: Hiroshi SHIBATA AuthorDate: 2022-05-09 07:10:45 +0900 Commit: git[bot] CommitDate: 2022-05-09 07:13:55 +0900 [ruby/getoptlong] ruby/ruby used sample, not examples https://github.com/ruby/getoptlong/commit/39faa7b390 commit 25eb63fa7fa7075764cd71920eb89df193c331b0 Author: Soutaro Matsumoto AuthorDate: 2022-05-08 23:04:25 +0900 Commit: GitHub CommitDate: 2022-05-08 23:04:25 +0900 Bundle RBS 2.4.0 (#5894) Notes: Merged-By: soutaro commit fd6cef79f54bebab1a49256034687dcc01a09eab Author: Samuel Williams AuthorDate: 2022-05-08 07:22:58 +0900 Commit: GitHub CommitDate: 2022-05-08 07:22:58 +0900 Use a proper mutex for autoloading features. (#5788) Object#autoload implements a custom per-thread "mutex" for blocking threads waiting on autoloading a feature. This causes problems when used with the fiber scheduler. We swap the implementation to use a Ruby mutex which is fiber aware. Notes: Merged-By: ioquatix commit d79e0832a509fb24f4ccd41bfdff6638916c46e1 Author: Dominik Bauernfeind AuthorDate: 2022-05-04 18:16:05 +0900 Commit: git[bot] CommitDate: 2022-05-06 18:03:00 +0900 [rubygems/rubygems] Fix typo in documentation https://github.com/rubygems/rubygems/commit/800a973e00 commit 7d6de74abe56715d91be7ff27adc6c6c43ecc7c1 Author: nobuyo AuthorDate: 2022-05-04 17:48:31 +0900 Commit: git[bot] CommitDate: 2022-05-06 18:02:35 +0900 [rubygems/rubygems] Update man page for `require` option in `bundle add` command https://github.com/rubygems/rubygems/commit/08a0a5b7d1 commit cae85c528c7c8ea1dd3ba634db5ccb9e465707f7 Author: Alan Wu AuthorDate: 2022-05-06 05:30:56 +0900 Commit: Alan Wu CommitDate: 2022-05-06 06:37:07 +0900 Mark RCLASS_INCLUDER Since 4d8f76286beefbb8f7fba2479f6d0a0b4a47304c, we need to dereference the includer field on iclasses, so we need to mark it to make sure it's alive. Sometimes during compaction we crash because the field is dangling, though I have a hard time constructing such a situation. See http://ci.rvm.jp/results/trunk@ruby-iga/3947725 Notes: Merged: https://github.com/ruby/ruby/pull/5890 commit 7448afccb32f78115c05af03421984aa2f2aaf58 Author: Alan Wu AuthorDate: 2022-05-06 05:08:24 +0900 Commit: Alan Wu CommitDate: 2022-05-06 06:37:07 +0900 Fix potential GC issue while iterating over weak refs While walking over the list of subclasses for `include` and friends, we check whether the subclass is a garbage object. After the check, we allocate objects which might trigger GC and make the subclass garbage, even though before the allocation the subclass was not garbage. This is a sort of time-of-check-time-of-use issue. Fix this by saving the weak reference to a local variable, upgrading it to a strong reference while we do the allocation. It makes the code look slightly nicer even if it doesn't fix any runtime issues. Notes: Merged: https://github.com/ruby/ruby/pull/5890 commit ae96ef9cfbc0f259e0910cd013aaff6e351fad7f Author: Burdette Lamar AuthorDate: 2022-05-06 05:02:54 +0900 Commit: GitHub CommitDate: 2022-05-06 05:02:54 +0900 File rdoc (#5888) Treats: ::pipe? ::symlink? ::socket? ::blockdev? ::chardev? Notes: Merged-By: BurdetteLamar commit ac75c710cccf7adc5b12edc8d18263fef9ab3207 Author: Burdette Lamar AuthorDate: 2022-05-05 23:01:12 +0900 Commit: GitHub CommitDate: 2022-05-05 23:01:12 +0900 Link from printf methods to format spec doc (#5886) Notes: Merged-By: BurdetteLamar commit 0b625352196d782e476c8c383e61baa47ab8d3c4 Author: Akira Matsuda AuthorDate: 2022-05-05 18:01:08 +0900 Commit: git[bot] CommitDate: 2022-05-05 19:09:49 +0900 [ruby/logger] Prefer String#[0, 1] over [0..0] [0..0] internally creates an extra Array object, and so is slower and much more memory consuming https://github.com/ruby/logger/commit/20616ad34a commit 197f9e9d42559cd3219d1376414536fc471a572b Author: Burdette Lamar AuthorDate: 2022-05-05 05:04:36 +0900 Commit: GitHub CommitDate: 2022-05-05 05:04:36 +0900 [DOC] More on format specs (#5877) * Update doc/format_specifications.rdoc Co-authored-by: Peter Zhu Notes: Merged-By: BurdetteLamar commit d7df8c6964fd4ed959997e2ec7b80ddd2063c8ae Author: Jemma Issroff AuthorDate: 2022-05-05 03:33:05 +0900 Commit: Aaron Patterson CommitDate: 2022-05-05 04:49:15 +0900 Unpoison freelist when iterating over it in gc_sweep_page Notes: Merged: https://github.com/ruby/ruby/pull/5884 commit 3a31b80bea97826ae113d9ace825c6ee27c2ae31 Author: Jemma Issroff AuthorDate: 2022-05-05 03:27:35 +0900 Commit: Aaron Patterson CommitDate: 2022-05-05 04:48:49 +0900 Update lldb helper for iseq disassembly to use correct var name Notes: Merged: https://github.com/ruby/ruby/pull/5883 commit bff31b3208071d40f9e193ef0cb95fb7aa2db62c Author: Peter Zhu AuthorDate: 2022-05-04 22:24:03 +0900 Commit: Peter Zhu CommitDate: 2022-05-04 22:24:03 +0900 Remove unneeded cast `start` is of type uintptr_t so it does not need to be casted to VALUE. commit 9d61c4519c73d0294d2a41cc087ef3841e305c4c Author: David Rodríguez AuthorDate: 2022-04-28 17:20:33 +0900 Commit: git[bot] CommitDate: 2022-05-04 06:45:16 +0900 [rubygems/rubygems] Also speed up the case when nothing changed https://github.com/rubygems/rubygems/commit/fa0ac74883 commit 42538ad710da28a8b89b92dd0a2939fad795c87f Author: David Rodríguez AuthorDate: 2022-04-28 17:20:50 +0900 Commit: git[bot] CommitDate: 2022-05-04 06:45:16 +0900 [rubygems/rubygems] Fix missing space in spec https://github.com/rubygems/rubygems/commit/fabc357e70 commit 2cf4318645f81fb13f6b264369bcfe6fbd4e91b9 Author: David Rodríguez AuthorDate: 2022-04-28 17:28:31 +0900 Commit: git[bot] CommitDate: 2022-05-04 06:45:15 +0900 [rubygems/rubygems] Make looping more concise with `select` https://github.com/rubygems/rubygems/commit/c43d5f979a commit ba4ec45cf156932a5a63cd9597aa210760f4390f Author: David Rodríguez AuthorDate: 2022-04-28 07:05:22 +0900 Commit: git[bot] CommitDate: 2022-05-04 06:45:15 +0900 [rubygems/rubygems] Don't converge specs in frozen mode https://github.com/rubygems/rubygems/commit/ea09bc4680 commit 379f5a6e8ef4e6c131abbb3c635e6136e031279b Author: Alan Wu AuthorDate: 2022-05-03 07:36:43 +0900 Commit: Alan Wu CommitDate: 2022-05-04 05:48:46 +0900 Update reference for RCLASS_INCLUDER during compaction We didn't update the includer field during compaction so it could become a dangling pointer after compaction. It's only recently that we started to dereference the field, and we were only comparing the pointer before then, so the omission only recently started to cause crashes. By instrumenting object.c:833 with `rp(includer);`, you can see the includer field become `T_NONE` with the following script: ```ruby mod = Module.new do protected def foo = 1 end klass = Class.new do include Module.new def run foo end end klass.include(mod) GC.verify_compaction_references(double_heap: true, toward: :empty) klass.new.run ``` I found a crash in a private application that this patch fixes, but wasn't able to develop a small reproducer. Hence the above demo that requires instrumentation. Notes: Merged: https://github.com/ruby/ruby/pull/5880 commit cf71e5f62a28eda22d67e3b4bad30fdff766fedc Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-04 02:44:43 +0900 Commit: GitHub CommitDate: 2022-05-04 02:44:43 +0900 Add a regression test for opt_plus with unknown type (#5878) Notes: Merged-By: maximecb commit 529c98ab900e88679a21c891600b42a076486661 Author: Nobuyoshi Nakada AuthorDate: 2022-05-04 01:22:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-04 01:23:26 +0900 [DOC] mention macros for public headers commit fe7c02c7444495679ff88f957c327b2d46c8e143 Author: Peter Zhu AuthorDate: 2022-05-03 03:45:52 +0900 Commit: Peter Zhu CommitDate: 2022-05-03 22:07:39 +0900 Remove _with_gc functions in darray darray was used in YJIT which required the functions to not trigger GC. YJIT has now moved to Rust and does not use darray anymore, so we can remove the functions that don't trigger GC and only keep the ones that trigger GC. Notes: Merged: https://github.com/ruby/ruby/pull/5874 commit 35e111fd3e38ee6f44cd67b255815ef301ac5211 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-05-03 05:30:05 +0900 Commit: GitHub CommitDate: 2022-05-03 05:30:05 +0900 Fix bug identified by @noahgibbs. (#5876) Turned out to be a one-character fix :) Notes: Merged-By: maximecb commit 5f20f4deeea29641096f9863e8cdce13cca478da Author: Alan Wu AuthorDate: 2022-05-03 01:51:40 +0900 Commit: Alan Wu CommitDate: 2022-05-03 03:03:56 +0900 YJIT: Reject USE_FLONUM=0 builds at build time YJIT can't support these builds so it's better to reject with a message than to crash at runtime. Notes: Merged: https://github.com/ruby/ruby/pull/5873 commit b793245dacca942ca6842692aa9bbc06cde217fd Author: Alan Wu AuthorDate: 2022-05-03 03:00:35 +0900 Commit: GitHub CommitDate: 2022-05-03 03:00:35 +0900 [DOC] Some YJIT dependencies are no longer required The `capstone` crate on crates.io does not need `libcapstone` on the system because it builds from [source]. `gdbm` is now a separate gem (thanks for extracting it!). [source]: https://github.com/capstone-rust/capstone-rs/blob/c31409905a9fc4581133de248fcd0a66b2c37e36/capstone-sys/build.rs#L143 commit 049303eff39d654f198b441e8e5f0f5b75a25e74 Author: Nobuyoshi Nakada AuthorDate: 2022-05-03 02:37:52 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-05-03 02:37:52 +0900 [DOC] Fix links to doc pages commit 51ac3c9e80562a63bbab4b67be916a9f37b6e842 Author: Burdette Lamar AuthorDate: 2022-05-03 01:03:26 +0900 Commit: git[bot] CommitDate: 2022-05-03 01:09:33 +0900 [ruby/getoptlong] Enhanced RDoc for GetoptLong (https://github.com/ruby/getoptlong/pull/4) Detailed introductory material. https://github.com/ruby/getoptlong/commit/1544f2fb7b commit 8587bacc252e95e533d319cc58b58ec11e5561ff Author: Koichi ITO AuthorDate: 2022-05-02 23:05:01 +0900 Commit: GitHub CommitDate: 2022-05-02 23:05:01 +0900 YJIT: Remove redundant `extern crate` (#5869) Follow up https://github.com/ruby/ruby/commit/0514d81 Rust YJIT requires Rust 1.60.0 or later. So, `extern crate` looks unnecessary because it can use the following Rust 2018 edition feature: https://doc.rust-lang.org/stable/edition-guide/rust-2018/path-changes.html#no-more-extern-crate It passes the following tests. ```console % cd yjit % cargo test --features asm_comments,disasm (snip) test result: ok. 56 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ``` Notes: Merged-By: maximecb commit fef79dfa251b167480ef9ba8d17698c469c22542 Author: Burdette Lamar AuthorDate: 2022-05-02 02:26:42 +0900 Commit: GitHub CommitDate: 2022-05-02 02:26:42 +0900 Repair internal links (#5866) * Repair internal links * Minor changes to format spec Notes: Merged-By: BurdetteLamar commit 3a8d60f50388016a677f250eb4d7c8bbe9d75d7d Author: Chris Seaton AuthorDate: 2022-04-30 19:57:51 +0900 Commit: GitHub CommitDate: 2022-04-30 19:57:51 +0900 Document best-practices for writing hash methods (#5805) * Discussion is as per https://bugs.ruby-lang.org/issues/18611. Co-authored-by: Sam Bostock Notes: Merged-By: eregon commit 5c843a1a6e24aeabb3497065a362caf7b3e2d3b1 Author: Alan Wu AuthorDate: 2022-04-30 07:20:23 +0900 Commit: GitHub CommitDate: 2022-04-30 07:20:23 +0900 YJIT: Enable default rustc lints (warnings) (#5864) `rustc` performs in depth dead code analysis and issues warning even for things like unused struct fields and unconstructed enum variants. This was annoying for us during the port but hopefully they are less of an issue now. This patch enables all the unused warnings we disabled and address all the warnings we previously ignored. Generally, the approach I've taken is to use `cfg!` instead of using the `cfg` attribute and to delete code where it makes sense. I've put `#[allow(unused)]` on things we intentionally keep around for printf style debugging and on items that are too annoying to keep warning-free in all build configs. Notes: Merged-By: maximecb commit 7c039e423cb59c9e5d76df9f1dc1bf8b1a1b9a6b Author: Burdette Lamar AuthorDate: 2022-04-30 07:04:05 +0900 Commit: GitHub CommitDate: 2022-04-30 07:04:05 +0900 [DOC] Format specs (#5857) This new document would eventually replace the format spec discussion at Kernel#sprintf. Notes: Merged-By: BurdetteLamar commit fead7107abc494ef051fd26357c21a546b49c7d9 Author: Alan Wu AuthorDate: 2022-04-28 03:08:52 +0900 Commit: Alan Wu CommitDate: 2022-04-30 04:03:45 +0900 YJIT: Adopt Clippy suggestions we like This adopts most suggestions that rust-clippy is confident enough to auto apply. The manual changes mostly fix manual if-lets and take opportunities to use the `Default` trait on standard collections. Co-authored-by: Kevin Newton Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged: https://github.com/ruby/ruby/pull/5853 commit f8e4488e5e01c07cc8c139e6030a5dfca45b824c Author: Dmitry Dygalo AuthorDate: 2022-04-29 23:07:48 +0900 Commit: GitHub CommitDate: 2022-04-29 23:07:48 +0900 YJIT: Do not create `CodeBlock.asm_comments` if the `asm_comments` feature is disabled (#5863) Notes: Merged-By: maximecb commit 5741ae379b2037ad5968b6994309e1d25cda6e1a Author: Matthias Viehweger AuthorDate: 2022-04-27 15:27:31 +0900 Commit: git[bot] CommitDate: 2022-04-29 17:19:19 +0900 [rubygems/rubygems] Generalize description to account for different push servers https://github.com/rubygems/rubygems/commit/cbf13edd3a commit 3cf107fde2f3556720e9ebabefae42db93c7ef8d Author: Matthias Viehweger AuthorDate: 2022-04-27 03:48:12 +0900 Commit: git[bot] CommitDate: 2022-04-29 17:19:18 +0900 [rubygems/rubygems] Clarify description of owner-flags https://github.com/rubygems/rubygems/commit/28864b1057 commit cf45d30fd7e76359687ee32b6bae55d752b46840 Author: Yusuke Endoh AuthorDate: 2022-04-29 13:14:14 +0900 Commit: Yusuke Endoh CommitDate: 2022-04-29 13:14:47 +0900 Prevent a "warning: `*' interpreted as argument prefix" commit 99281f513cf7d4873d2f672860f80e063f98b7cb Author: Alan Wu AuthorDate: 2022-04-29 06:52:21 +0900 Commit: Alan Wu CommitDate: 2022-04-29 08:02:26 +0900 YJIT: Handle spaces in build dir path using find(1) `-exec` Previously, we relied on shell word splitting, which leads to passing the wrong arguments when there are white spaces in the path. Avoiding command substitution also makes this script more likely to work under Solaris 10, where `/bin/sh` is not POSIX compliant [1]. (Thanks you, `@znz` for fixing the syntax error in 4210ae2158b545beda908fb29e03d23994f262e3 though!) The hack from c466f270b891962518763ad299f907beac0ebf62 doesn't actually work so this commit reverts it. The shell still needs to parse through all of the code, maybe because make doesn't in fact send newlines to the shell. By the way, we also use the `-exec` option in the `ext/distclean` task. [1]: https://docs.oracle.com/cd/E26505_01/html/816-5165/sh-1.html Notes: Merged: https://github.com/ruby/ruby/pull/5860 commit 907b31d7b92fd0eb98507dca6411d07da0fecb46 Author: Aaron Patterson AuthorDate: 2022-04-28 07:37:58 +0900 Commit: Aaron Patterson CommitDate: 2022-04-29 07:14:45 +0900 Don't set LDFLAGS by default This fixes a bug where Ruby on macOS running on ARM would try to look in `/usr/local/lib` for things to link against, but the libraries in that directory are from the x86 installation of Homebrew [ruby-core:108424] Notes: Merged: https://github.com/ruby/ruby/pull/5855 commit 0eb237d99ccd0e89188446418358b56418ab7835 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-04-29 06:12:24 +0900 Commit: GitHub CommitDate: 2022-04-29 06:12:24 +0900 YJIT: replace BLOCKID_NULL with Option, more idiomatic (#5858) * YJIT: replace BLOCKID_NULL with Option, more idiomatic * Update yjit/src/core.rs Co-authored-by: Alan Wu * Update yjit/src/core.rs Co-authored-by: Alan Wu Co-authored-by: Alan Wu Notes: Merged-By: maximecb commit c416dbb3c700173d62c2d8381e3680b8aa4482ae Author: Alan Wu AuthorDate: 2022-04-28 01:23:52 +0900 Commit: Alan Wu CommitDate: 2022-04-29 00:31:22 +0900 Add missing write barriers to Array#replace Previously it made object references without using write barriers, creating GC inconsistencies. See: http://ci.rvm.jp/results/trunk-gc-asserts@phosphorus-docker/3925529 Notes: Merged: https://github.com/ruby/ruby/pull/5851 commit 0626e6f959ed740508ff2ec1f2ff4b7188fa821d Author: Hiroshi SHIBATA AuthorDate: 2022-04-28 17:48:21 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-28 19:08:49 +0900 Skip test for cargo builder Notes: Merged: https://github.com/ruby/ruby/pull/5669 commit d77b88c681878b9d9c39d2d186e020186971beb5 Author: Hiroshi SHIBATA AuthorDate: 2022-04-28 17:48:04 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-28 19:08:49 +0900 Move testing_ruby_repo into test helper Notes: Merged: https://github.com/ruby/ruby/pull/5669 commit 1056489ea3e1c3f201936666b2725bfc142bb0f2 Author: Hiroshi SHIBATA AuthorDate: 2022-04-28 17:15:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-28 19:08:49 +0900 Merge https://github.com/rubygems/rubygems/commit/3f7d0352e84b29d4a2d4cd93b31e5ebdb5f79cc6 Notes: Merged: https://github.com/ruby/ruby/pull/5669 commit cd2410f9d8c99fd0fbb232eb5f195188fbfc122f Author: David Rodríguez AuthorDate: 2022-04-07 02:32:32 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-28 19:08:49 +0900 [rubygems/rubygems] Original env is already set by common test setup https://github.com/rubygems/rubygems/commit/59449557dd Notes: Merged: https://github.com/ruby/ruby/pull/5669 commit fbb4b8d23505be46da7cd996d0c85039cf43b45a Author: David Rodríguez AuthorDate: 2022-04-07 02:01:19 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-28 19:08:49 +0900 [rubygems/rubygems] Fix test errors when `cargo` not present Currently our tests try to detect whether `cargo` is installed or not, and if not, set tests that need `cargo` as pending. However, when this happens that test `setup` method is completely skipped, meaning that the `teardown` method will blow up when trying to switch back to the original folder, since it was not set. This commit fixes that. https://github.com/rubygems/rubygems/commit/1e4c1e6492 Notes: Merged: https://github.com/ruby/ruby/pull/5669 commit 678d58c8508ec46aa270e3c5d81fc09cd0fee175 Author: Hiroshi SHIBATA AuthorDate: 2022-04-01 20:36:59 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-28 19:08:49 +0900 Merge rubygems master 1e4eda741d732ca1bd7031aef0a16c7348adf7a5 Notes: Merged: https://github.com/ruby/ruby/pull/5669 commit 479ba9a44b6beda1dce32842bcbc66b6f46a85a0 Author: David Rodríguez AuthorDate: 2022-04-01 18:39:38 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-28 19:08:49 +0900 [rubygems/rubygems] All supported rubies have `File.realpath` https://github.com/rubygems/rubygems/commit/c60ed4878c Notes: Merged: https://github.com/ruby/ruby/pull/5669 commit f4009566afed45db82cf1fe73d7a16192a89b810 Author: David Rodríguez AuthorDate: 2022-04-01 17:56:13 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-28 19:08:49 +0900 [rubygems/rubygems] Add missing `open3` requires https://github.com/rubygems/rubygems/commit/06ad654120 Notes: Merged: https://github.com/ruby/ruby/pull/5669 commit 6dc314ac6df69e29ba58dfd61dde90e85a2b47c9 Author: Hiroshi SHIBATA AuthorDate: 2022-03-16 20:52:46 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-28 19:08:49 +0900 Merge RubyGems/Bundler master https://github.com/rubygems/rubygems/commit/fe96fb6e2ac5a8b6df5e852470d11fa854301eca Notes: Merged: https://github.com/ruby/ruby/pull/5669 commit 5250210aa9f632a415e90deaac424ff69c37fb3e Author: David Rodríguez AuthorDate: 2022-04-26 21:53:55 +0900 Commit: git[bot] CommitDate: 2022-04-28 15:44:02 +0900 [rubygems/rubygems] Fix missing required rubygems version when using old APIs A while ago, we fixed resolution when using old dependency endpoints to also consider metadata dependencies, by requesting the full gemspec from the marsahaled index, which includes this information as opposed to these old APIs. This has made resolution slower, but correct, but also introduced the issue that some old marshaled gemspecs don't include the `required_rubygems_version` field because they were created with a RubyGems version that predates its addition. Use a default value in this case. https://github.com/rubygems/rubygems/commit/5dc94afcc0 Co-authored-by: Ilya Dudarenko commit 4210ae2158b545beda908fb29e03d23994f262e3 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-04-28 09:44:38 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-04-28 09:44:38 +0900 Try to fix error on Solaris https://rubyci.s3.amazonaws.com/solaris10-sunc/ruby-master/log/20220428T000004Z.fail.html.gz ``` linking static-library libruby-static.a /bin/sh: syntax error at line 8: `(' unexpected gmake: *** [Makefile:318: libruby-static.a] Error 2 exit 2 failed(make) ``` commit c466f270b891962518763ad299f907beac0ebf62 Author: Alan Wu AuthorDate: 2022-04-28 07:12:53 +0900 Commit: Alan Wu CommitDate: 2022-04-28 07:59:10 +0900 Work around shell syntax error on Solaris The shell in Solaris 10 has trouble understanding the syntax I used in YJIT's library merging script. This commit reduces the code the shell needs to parse before exiting on non-YJIT builds to hopefully fix the error on Solaris. Notes: Merged: https://github.com/ruby/ruby/pull/5854 commit cd2613b6a43bac87574dac17b8b9b813bbdc5e42 Author: Charles Oliver Nutter AuthorDate: 2022-04-28 05:55:28 +0900 Commit: git[bot] CommitDate: 2022-04-28 05:56:26 +0900 [ruby/net-http] Bump version to 0.2.1.pre1 https://github.com/ruby/net-http/commit/0017cc64c0 commit e1536a1e56cd879d296101554ec526a64cb71fd0 Author: Maxime Chevalier-Boisvert AuthorDate: 2022-04-28 02:16:42 +0900 Commit: GitHub CommitDate: 2022-04-28 02:16:42 +0900 Update yjit.md Fix configure line in YJIT build instructions commit 0514d8171590b611e3b560e8dae0adfa57c07b57 Author: Alan Wu AuthorDate: 2022-04-21 01:06:34 +0900 Commit: Alan Wu CommitDate: 2022-04-28 00:00:22 +0900 YJIT: Remove unnecessary `extern crate` declaration Thanks to suggestion from bjorn3 on GitHub. Co-authored-by: bjorn3 Notes: Merged: https://github.com/ruby/ruby/pull/5826 commit 932bfd0beb048efd22983a6de6fdf1a55e41de40 Author: Alan Wu AuthorDate: 2022-04-21 00:29:05 +0900 Commit: Alan Wu CommitDate: 2022-04-28 00:00:22 +0900 YJIT: Make add_comment() more concise Thanks to suggestions from Stranger6667 on GitHub. Co-authored-by: Dmitry Dygalo Notes: Merged: https://github.com/ruby/ruby/pull/5826 commit f90549cd38518231a6a74432fe1168c943a7cc18 Author: Alan Wu AuthorDate: 2022-04-20 03:40:21 +0900 Commit: Alan Wu CommitDate: 2022-04-28 00:00:22 +0900 Rust YJIT In December 2021, we opened an [issue] to solicit feedback regarding the porting of the YJIT codebase from C99 to Rust. There were some reservations, but this project was given the go ahead by Ruby core developers and Matz. Since then, we have successfully completed the port of YJIT to Rust. The new Rust version of YJIT has reached parity with the C version, in that it passes all the CRuby tests, is able to run all of the YJIT benchmarks, and performs similarly to the C version (because it works the same way and largely generates the same machine code). We've even incorporated some design improvements, such as a more fine-grained constant invalidation mechanism which we expect will make a big difference in Ruby on Rails applications. Because we want to be careful, YJIT is guarded behind a configure option: ```shell ./configure --enable-yjit # Build YJIT in release mode ./configure --enable-yjit=dev # Build YJIT in dev/debug mode ``` By default, YJIT does not get compiled and cargo/rustc is not required. If YJIT is built in dev mode, then `cargo` is used to fetch development dependencies, but when building in release, `cargo` is not required, only `rustc`. At the moment YJIT requires Rust 1.60.0 or newer. The YJIT command-line options remain mostly unchanged, and more details about the build process are documented in `doc/yjit/yjit.md`. The CI tests have been updated and do not take any more resources than before. The development history of the Rust port is available at the following commit for interested parties: https://github.com/Shopify/ruby/commit/1fd9573d8b4b65219f1c2407f30a0a60e537f8be Our hope is that Rust YJIT will be compiled and included as a part of system packages and compiled binaries of the Ruby 3.2 release. We do not anticipate any major problems as Rust is well supported on every platform which YJIT supports, but to make sure that this process works smoothly, we would like to reach out to those who take care of building systems packages before the 3.2 release is shipped and resolve any issues that may come up. [issue]: https://bugs.ruby-lang.org/issues/18481 Co-authored-by: Maxime Chevalier-Boisvert Co-authored-by: Noah Gibbs Co-authored-by: Kevin Newton Notes: Merged: https://github.com/ruby/ruby/pull/5826 commit f553180a86b71830a1de49dd04874b3880c5c698 Author: Burdette Lamar AuthorDate: 2022-04-27 20:00:22 +0900 Commit: GitHub CommitDate: 2022-04-27 20:00:22 +0900 [DOC] Enhanced RDoc for Kernel (#5847) Treats #Integer; fixes an error in #String. Notes: Merged-By: BurdetteLamar commit 0bab4c4addef3421f8ff1c45564f4a392b860f15 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-04-27 10:11:53 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-04-27 10:13:23 +0900 [DOC] Change URLs from git.io see https://github.blog/changelog/2022-04-25-git-io-deprecation/ commit 72628c1ccc5e7d85fe297312d740eed929ab78bb Author: Burdette Lamar AuthorDate: 2022-04-27 06:49:28 +0900 Commit: GitHub CommitDate: 2022-04-27 06:49:28 +0900 Enhanced RDoc for File (#5849) Treats: #path ::stat ::lstat #lstat ::directory? Also adds section "Example Files" that explains assumptions about example files. I'm using t.txt already, and I'm pretty sure I'll need t.dat (binary data). I don't know whether I'll need t.rus (Russian text). Notes: Merged-By: BurdetteLamar commit a8541475d1339ce242357822dd49d775645ce76d Author: John Hawthorn AuthorDate: 2022-03-05 16:31:37 +0900 Commit: John Hawthorn CommitDate: 2022-04-27 06:08:55 +0900 Faster rb_class_superclass This uses the RCLASS_SUPERCLASSES array to quickly find the next SUPERCLASS of klass which is a T_CLASS. Notes: Merged: https://github.com/ruby/ruby/pull/5850 commit bdb7345ce96c641796909abc2dbdac0d4400ca41 Author: Kaíque Kandy Koga AuthorDate: 2022-04-26 22:47:52 +0900 Commit: Jeremy Evans CommitDate: 2022-04-27 04:38:51 +0900 Use compiled instead of complied Capitalize creates Notes: Merged: https://github.com/ruby/ruby/pull/5848 commit 4a2b5102c11978b66d003ecbc8710b2f587b7322 Author: Jean Boussier AuthorDate: 2022-04-22 23:08:19 +0900 Commit: Jean Boussier CommitDate: 2022-04-26 23:12:47 +0900 Expose `rb_hash_new_capa(long)` [Feature #18683] This allows parsers and similar libraries to create Hashes of a certain capacity in advance. It's useful when the key and values are streamed, hence `bulk_insert()` can't be used. Notes: Merged: https://github.com/ruby/ruby/pull/5835 commit 5ce0d2aa354eb996cb3ca9bb944f880ff6acfd57 Author: Burdette Lamar AuthorDate: 2022-04-26 05:59:09 +0900 Commit: GitHub CommitDate: 2022-04-26 05:59:09 +0900 [DOC] Enhanced RDoc for Kernel (#5846) Treats: #Array #Hash #String Notes: Merged-By: BurdetteLamar commit f8724987db834c4672b44a55fddb779cec24422b Author: Jeremy Evans AuthorDate: 2022-04-26 05:07:35 +0900 Commit: Jeremy Evans CommitDate: 2022-04-26 05:07:35 +0900 Document beginless, endless ranges in Range class documentation commit 9e8841e592c40e65bbad410a490c05f07a87052e Author: Colin Hart AuthorDate: 2022-04-26 04:32:29 +0900 Commit: GitHub CommitDate: 2022-04-26 04:32:29 +0900 Simplify example code for Enumerable#each_with_object Notes: Merged: https://github.com/ruby/ruby/pull/5825 Merged-By: jeremyevans commit 5c61caa48154e3e43ff29ab865310aa9bdd9e83a Author: Alan Wu AuthorDate: 2022-04-26 03:30:54 +0900 Commit: GitHub CommitDate: 2022-04-26 03:30:54 +0900 Fix strict aliasing issue with call to rb_id_table_lookup() Previously, GCC 11 with -O2 LTO issues -Wmaybe-uninitialized here. Notes: Merged: https://github.com/ruby/ruby/pull/5844 Merged-By: XrXr commit 9c44b5fbc88cde1915a78265e72692e100cec16e Author: Alan Wu AuthorDate: 2022-04-26 02:30:00 +0900 Commit: Alan Wu CommitDate: 2022-04-26 03:29:19 +0900 [CI] Use -O2 on LTO builds as intended Previously, since the `optflags` environment variable was set to `-O1` and `optflags` comes after the flags appended as `CC`, we were doing LTO builds with `-O1`. Notes: Merged: https://github.com/ruby/ruby/pull/5845 commit b989c7c6ac23f0edb2348b359af9825c39e90bde Author: Alan Wu AuthorDate: 2022-04-26 03:28:39 +0900 Commit: GitHub CommitDate: 2022-04-26 03:28:39 +0900 [DOC] Move :nodoc: so rdoc finds `RbConfig.ruby` Rdoc [build] of `master` did not have this method but the reference manual [did]. [build]: https://docs.ruby-lang.org/en/master/RbConfig.html [did]: https://docs.ruby-lang.org/ja/master/class/RbConfig.html#S_RUBY Notes: Merged: https://github.com/ruby/ruby/pull/5843 Merged-By: XrXr commit 69c1145fa8832e9ba23bcd66a2552964bcb6085a Author: Burdette Lamar AuthorDate: 2022-04-26 00:07:21 +0900 Commit: GitHub CommitDate: 2022-04-26 00:07:21 +0900 [DOC] Enhanced RDoc for Math module (#5837) Revises intro. Adds "What's Here". Revises methods doc. Notes: Merged-By: BurdetteLamar commit 5701b4084e7bdcd64b6a940c95d41888734f5ca6 Author: Nobuyoshi Nakada AuthorDate: 2022-04-25 23:49:58 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-25 23:50:49 +0900 [DOC] mention assignment expression values commit 45cf4f218728a15eb36d14a6c9912086525f5e3f Author: Benoit Daloze AuthorDate: 2022-04-25 21:53:54 +0900 Commit: Benoit Daloze CommitDate: 2022-04-25 21:53:54 +0900 Update to ruby/spec@3affe1e commit 6ae81d49b52563a6720d666a6118ffa6e484f398 Author: Benoit Daloze AuthorDate: 2022-04-25 21:53:51 +0900 Commit: Benoit Daloze CommitDate: 2022-04-25 21:53:51 +0900 Update to ruby/mspec@215497e commit 4fcc7e2d7c826da8b347ca547a603ccfc7f45ce0 Author: Jean Boussier AuthorDate: 2022-04-25 17:20:45 +0900 Commit: Jean Boussier CommitDate: 2022-04-25 19:39:14 +0900 Fix ARGF#lineno to return Integer as documented [Bug #18753] Notes: Merged: https://github.com/ruby/ruby/pull/5841 commit d41bc9b68ec39b053c4794c693c351e05242ada3 Author: Burdette Lamar AuthorDate: 2022-04-25 09:41:26 +0900 Commit: GitHub CommitDate: 2022-04-25 09:41:26 +0900 More details for Rational literals (#5840) Notes: Merged-By: BurdetteLamar commit 554befbf2716db56a215b39f619cce76dd624b8e Author: S.H AuthorDate: 2022-04-25 06:06:45 +0900 Commit: GitHub CommitDate: 2022-04-25 06:06:45 +0900 Reuse `rb_proc_arity` Notes: Merged: https://github.com/ruby/ruby/pull/5823 Merged-By: jeremyevans commit 671d90eca3b8c00c73b72c3852a5103b1a17af6b Author: Tanaka Akira AuthorDate: 2022-04-24 23:16:55 +0900 Commit: Tanaka Akira CommitDate: 2022-04-24 23:16:55 +0900 add description for IO.nonblock=. commit e142bea7997eeb9c8e902089ce0a68138da8abc3 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-04-22 13:41:18 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-04-23 11:59:20 +0900 Remove unnecessary sort Because `Dir.[]` returns the sorted results since Ruby 3.0. Notes: Merged: https://github.com/ruby/ruby/pull/5832 commit ab3cb29bd9bff9c16cfb9d19cc02026998282c12 Author: Jeremy Evans AuthorDate: 2022-04-23 05:01:43 +0900 Commit: Jeremy Evans CommitDate: 2022-04-23 07:00:16 +0900 Avoid defining the same test class in multiple files Should fix issues with parallel testing sometimes not running all tests. This should be viewed skipping whitespace changes. Fixes [Bug #18731] Notes: Merged: https://github.com/ruby/ruby/pull/5839 commit c2d38a0d2d78f749fba47073b33106fd2e57767a Author: Jeremy Evans AuthorDate: 2022-04-23 06:26:26 +0900 Commit: Jeremy Evans CommitDate: 2022-04-23 06:26:26 +0900 Fix build if UBF_TIMER == UBF_TIMER_PTHREAD commit 79fa27acc452c50ae47936880f91424e729fda72 Author: Alan Wu AuthorDate: 2022-04-23 02:18:11 +0900 Commit: Alan Wu CommitDate: 2022-04-23 05:21:48 +0900 rbinstall: Also do `Gem.ruby` patching for unpacked bundled gems Pointing `Gem.ruby` to the newly installed ruby gives mkmf the right inputs to build extensions in bundled gems. Previously, this patching was only done for compressed bundled gems. This patch also prevents `tool/fake.rb` from propagating to the child process running mkmf for the native extension. The way `tool/fake.rb` changes mkmf variables using `Kernel#trace_var` created spooky action at a distance which made debugging difficult. AppVeyor Windows CI started to fail starting with 8a3663789c52ec5635194656af6b69d3d03120ee because it enabled extension building for bundled gems on mswin. This patch should address the CI failures. Notes: Merged: https://github.com/ruby/ruby/pull/5838 commit 03d21a4fb099da7c52e6591e17704c297871b7db Author: Koichi Sasada AuthorDate: 2022-04-22 21:19:03 +0900 Commit: Koichi Sasada CommitDate: 2022-04-23 03:08:27 +0900 introduce struct `rb_native_thread` `rb_thread_t` contained `native_thread_data_t` to represent thread implementation dependent data. This patch separates them and rename it `rb_native_thread` and point it from `rb_thraed_t`. Now, 1 Ruby thread (`rb_thread_t`) has 1 native thread (`rb_native_thread`). Notes: Merged: https://github.com/ruby/ruby/pull/5836 commit 702dc116c4fd8906cc65c4ac2a991a2e0df54a63 Author: Koichi Sasada AuthorDate: 2022-04-22 22:58:15 +0900 Commit: Koichi Sasada CommitDate: 2022-04-23 00:50:13 +0900 refactoring thread inits in vm.c * `th_init` accepts vm and ractor. * remove `ruby_thread_init` because it is duplicated with `th_init`. * add some comments. Notes: Merged: https://github.com/ruby/ruby/pull/5834 commit 4b14b2902abaa0e8f0d1e8282d2322f47431fa3f Author: Jeremy Evans AuthorDate: 2022-03-23 08:36:16 +0900 Commit: Jeremy Evans CommitDate: 2022-04-22 12:48:27 +0900 Uncomment code to raise LocalJumpError for yield across thread through enum Not sure if this is the correct fix. It does raise LocalJumpError in the yielding thread as you would expect, but the value yielded to the calling thread is still yielded without an exception. Fixes [Bug #18649] Notes: Merged: https://github.com/ruby/ruby/pull/5692 commit 3fa768c5c308b61677342fe2caa9c54fe3a2c3c9 Author: Hiroshi SHIBATA AuthorDate: 2022-04-22 12:11:36 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-22 12:11:36 +0900 Use https for wss test commit eab354e17b4bc21d0142564ce71ebadf4ad8486a Author: Peter Zhu AuthorDate: 2022-04-15 03:02:00 +0900 Commit: git[bot] CommitDate: 2022-04-22 12:00:14 +0900 [ruby/uri] Include RFC2396_REGEXP module directly REGEXP is defined as RFC2396_REGEXP in lib/uri/common.rb. If we include REGEXP then a broken URL is generated in rdoc for URI and URI::MailTo. https://github.com/ruby/uri/commit/ed6ded9c80 commit c94f964e3f94e9f934a3f4e73fb55f5fd2a21f08 Author: OKURA Masafumi AuthorDate: 2022-02-18 00:59:05 +0900 Commit: git[bot] CommitDate: 2022-04-22 11:59:54 +0900 [ruby/uri] Feat: Support WSS There was a file for WSS so I added one line of `require_relative` to make it work. Now `URI.parse('wss://example.com')` returns `URI::WS`. https://github.com/ruby/uri/commit/ff8a103564 commit 1c4fc0241d125879e1e5169f267f26637772f3a7 Author: Koichi Sasada AuthorDate: 2022-04-17 03:40:23 +0900 Commit: Koichi Sasada CommitDate: 2022-04-22 07:54:09 +0900 rename thread internal naming Now GVL is not process *Global* so this patch try to use another words. * `rb_global_vm_lock_t` -> `struct rb_thread_sched` * `gvl->owner` -> `sched->running` * `gvl->waitq` -> `sched->readyq` * `rb_gvl_init` -> `rb_thread_sched_init` * `gvl_destroy` -> `rb_thread_sched_destroy` * `gvl_acquire` -> `thread_sched_to_running` # waiting -> ready -> running * `gvl_release` -> `thread_sched_to_waiting` # running -> waiting * `gvl_yield` -> `thread_sched_yield` * `GVL_UNLOCK_BEGIN` -> `THREAD_BLOCKING_BEGIN` * `GVL_UNLOCK_END` -> `THREAD_BLOCKING_END` * removed * `rb_ractor_gvl` * `rb_vm_gvl_destroy` (not used) There are GVL functions such as `rb_thread_call_without_gvl()` yet but I don't have good name to replace them. Maybe GVL stands for "Greate Valuable Lock" or something like that. Notes: Merged: https://github.com/ruby/ruby/pull/5814 commit cb02324c4e5c7aae0add0a5c4e5adbf637d9acb0 Author: Akinori MUSHA AuthorDate: 2022-04-04 02:03:09 +0900 Commit: git[bot] CommitDate: 2022-04-21 17:10:19 +0900 [ruby/pathname] Implement Pathname#lutime https://github.com/ruby/pathname/commit/268cb5acff commit 3ddf6ad4d2f6dae4caa00b8c407768c7062099a0 Author: Nobuyoshi Nakada AuthorDate: 2022-04-21 16:04:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-21 16:04:36 +0900 Private local variables should shadow outer variables [Bug #18629] commit ee48c9cda6e918f8da4b23d3ff4fabf7357f4a95 Author: Nobuyoshi Nakada AuthorDate: 2022-04-21 14:16:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-21 15:14:08 +0900 [Win32] allow pipe in flock commit 4a4c1d6920c7d9fbcd2542a3462f19ccd48c02e8 Author: 卜部昌平 AuthorDate: 2022-04-20 16:05:37 +0900 Commit: GitHub CommitDate: 2022-04-20 16:05:37 +0900 [CI] resort to clang-14 (#5824) * [CI] resort to clang-14 Clang 15 + --std=c2x combination seems actively developed now. Might better wait for them to mature * also change default compiler Notes: Merged-By: shyouhei commit c506ddac6c88b14daf4a18bddf1c1e57be8d2225 Author: Hiroshi SHIBATA AuthorDate: 2022-04-20 14:13:10 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-20 14:13:10 +0900 Added assert_true and assert_false same as test-unit gem commit cf73cf5981802f2bcc30aba07914acf4286cda5a Author: Karol Bucek AuthorDate: 2022-04-20 13:01:02 +0900 Commit: git[bot] CommitDate: 2022-04-20 13:01:08 +0900 [ruby/net-http] Feature detect to make net/http usable with JRuby Handle missing session_new_cb= and do not call session_cache_mode=, as JRuby SSL does not support these methods. https://github.com/ruby/net-http/commit/3237ef4d8c commit fa2df520bcaaf3957db0489f1237311f091ac08d Author: Jean byroot Boussier AuthorDate: 2022-04-20 11:52:47 +0900 Commit: GitHub CommitDate: 2022-04-20 11:52:47 +0900 Enable C backtraces on Apple silicon (#5770) Co-authored-by: Jean Boussier Notes: Merged-By: nurse commit 90ccc5674affb64036ca86f566c8650f654fc0f6 Author: Jeremy Evans AuthorDate: 2021-03-02 05:59:21 +0900 Commit: git[bot] CommitDate: 2022-04-20 10:22:06 +0900 [ruby/net-http] Add ignore_eof access to HTTP and HTTPResponse The ignore_eof setting on HTTPResponse makes it so an EOFError is raised when reading bodies with a defined Content-Length, if the body read was truncated due to the socket be closed. The ignore_eof setting on HTTP sets the values used in responses that are created by the object. For backwards compatibility, the default is for both settings is true. However, unless you are specifically tested for and handling truncated responses, it's a good idea to set ignore_eof to false so that errors are raised for truncated responses, instead of those errors silently being ignored. Fixes [Bug #14972] https://github.com/ruby/net-http/commit/4d47e34995 commit fada4d24f9acd98f1e289913f6eea584d281fb42 Author: Nobuyoshi Nakada AuthorDate: 2022-04-19 14:01:08 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-19 14:01:08 +0900 [DOC] adjust indent commit 810b9c344a40802d7736282d86e51d48e8b336a4 Author: Tim Smith AuthorDate: 2022-04-18 13:53:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-19 08:32:37 +0900 Resolve several markedown warnings - Spaces before and after blocks. - Single spaces after sentences everywhere Signed-off-by: Tim Smith Notes: Merged: https://github.com/ruby/ruby/pull/5816 commit 4299375b9b8b49b02b3d131bfbc621cf28752fae Author: Tim Smith AuthorDate: 2022-04-18 14:08:42 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-19 08:31:41 +0900 Github -> GitHub Fix the case of GitHub in various places Signed-off-by: Tim Smith Notes: Merged: https://github.com/ruby/ruby/pull/5817 commit b41de3a1e8c36a5cc336b6f7cd3cb71126cf1a60 Author: Burdette Lamar AuthorDate: 2022-04-19 08:19:10 +0900 Commit: GitHub CommitDate: 2022-04-19 08:19:10 +0900 [DOC] Enhanced RDoc for MatchData (#5822) Treats: #to_s #named_captures #string #inspect #hash #== Notes: Merged-By: BurdetteLamar commit 6db3f7c405c995650d7ebf36bcb9a7054ce2ce24 Author: Burdette Lamar AuthorDate: 2022-04-19 05:52:07 +0900 Commit: GitHub CommitDate: 2022-04-19 05:52:07 +0900 Enhanced RDoc for MatchData (#5821) Treats: #[] #values_at Notes: Merged-By: BurdetteLamar commit 86e23529ad161643e011aa09e14c83bbdd767c63 Author: Burdette Lamar AuthorDate: 2022-04-19 04:34:40 +0900 Commit: GitHub CommitDate: 2022-04-19 04:34:40 +0900 Enhanced RDoc for MatchData (#5820) Treats: #pre_match #post_match #to_a #captures Notes: Merged-By: BurdetteLamar commit b074bc3d614cd4e783dc77e3602c424110230495 Author: Burdette Lamar AuthorDate: 2022-04-19 03:02:35 +0900 Commit: GitHub CommitDate: 2022-04-19 03:02:35 +0900 [DOC] Enhanced RDoc for MatchData (#5819) Treats: #begin #end #match #match_length Notes: Merged-By: BurdetteLamar commit 9d1dd7a9ed189475730254fbfee52f890759afaf Author: Burdette Lamar AuthorDate: 2022-04-19 01:31:30 +0900 Commit: GitHub CommitDate: 2022-04-19 01:31:30 +0900 [DOC] Enhanced RDoc for MatchData (#5818) Treats: #regexp #names #size #offset Notes: Merged-By: BurdetteLamar commit 51ea67698e36f9a0a3a3aa9a4566b6bec4b41bd3 Author: Burdette Lamar AuthorDate: 2022-04-19 00:45:29 +0900 Commit: GitHub CommitDate: 2022-04-19 00:45:29 +0900 [DOC] Enhanced RDoc for Regexp (#5815) Treats: ::new ::escape ::try_convert ::union ::last_match Notes: Merged-By: BurdetteLamar commit 08b6aacc1a14440e0f1644a05238559c6c585e38 Author: Nobuyoshi Nakada AuthorDate: 2022-04-18 18:37:09 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-18 18:37:09 +0900 Fix the wrong index of the previous component [Bug #18739] commit b0666d64176457786c854c12c79f7beae392bee0 Author: Nobuyoshi Nakada AuthorDate: 2022-04-18 17:53:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-18 17:53:05 +0900 [DOC] Use consistent terms [Bug #18680] commit c69bdcf80c1711dc3bff0037333393c844186a57 Author: Peter Zhu AuthorDate: 2022-04-14 02:30:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-18 10:29:25 +0900 [ruby/bigdecimal] Fix docs rdoc parses f[i] as a link, which results in a broken link. https://github.com/ruby/bigdecimal/commit/a18522e9ca commit 92361ad9c68d82fe7de554999b2f9de8be5821bb Author: Nobuyoshi Nakada AuthorDate: 2022-01-14 00:52:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-18 10:29:23 +0900 [ruby/bigdecimal] Adjust a local variable type to exponent https://github.com/ruby/bigdecimal/commit/70146fb6ad commit e5a852b91285ca8fca806f4cc4ab0127fbf84d14 Author: David Rodríguez AuthorDate: 2022-04-16 19:01:50 +0900 Commit: git[bot] CommitDate: 2022-04-18 09:40:07 +0900 [ruby/tsort] Small tweaks for easier vendoring Bundler vendors this file and we have some tools to automatically prepend the `Bundler::` namespace so that the vendored version does not collide with the stdlib version. However, due to how methods are defined, it's hard for our vendoring tool to do the right thing. I think this makes the code simpler and things easier for us too. https://github.com/ruby/tsort/commit/7088a7c814 commit d6238007bf9f0999c659b9150fe94c0d46aa014b Author: Nick Roma AuthorDate: 2022-04-16 01:16:55 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-18 09:18:23 +0900 Fixes grammar Notes: Merged: https://github.com/ruby/ruby/pull/5806 commit 50f3e93c809c207f73ee61e6e64c829e06f0b81b Author: Kazuhiro NISHIYAMA AuthorDate: 2022-04-17 20:57:31 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-04-17 20:57:46 +0900 Fix a typo commit be52c728899b44e063e041e4042dc0ebce9d5d68 Author: Nobuyoshi Nakada AuthorDate: 2022-04-17 18:57:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-17 18:57:26 +0900 Get rid of doubly caching commit 2c6876f811a3c08e69816861127458b967900bcd Author: Nobuyoshi Nakada AuthorDate: 2022-04-17 18:53:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-17 18:53:29 +0900 Get rid of magic numbers commit 2b4b513ef046c25c0a8d3d7b10a0566314b27099 Author: Burdette Lamar AuthorDate: 2022-04-17 05:20:03 +0900 Commit: GitHub CommitDate: 2022-04-17 05:20:03 +0900 [DOC] Enhanced RDoc for Regexp (#5812) Treats: #fixed_encoding? #hash #== #=~ #match #match? Also, in regexp.rdoc: Changes heading from 'Special Global Variables' to 'Regexp Global Variables'. Add tiny section 'Regexp Interpolation'. Notes: Merged-By: BurdetteLamar commit 7950c4eb2d132fca40d1e9383e8a7240781cc575 Author: John Hawthorn AuthorDate: 2022-04-16 07:21:10 +0900 Commit: John Hawthorn CommitDate: 2022-04-17 03:40:56 +0900 Fix class ancestry checks for duped classes Previously in some when classes were duped (specifically those with a prepended module), they would not correctly have their "superclasses" array or depth filled in. This could cause ancestry checks (like is_a? and Module comparisons) to return incorrect results. This happened because rb_mod_init_copy builds origin classes in an order that doesn't have the super linked list fully connected until it's finished. This commit fixes the previous issue by calling rb_class_update_superclasses before returning the cloned class. This is similar to what's already done in make_metaclass. Notes: Merged: https://github.com/ruby/ruby/pull/5808 commit e70e7f4ad38abb305342dd4d5a392782597d1f98 Author: David Rodríguez AuthorDate: 2022-04-16 20:53:11 +0900 Commit: git[bot] CommitDate: 2022-04-16 22:58:34 +0900 [rubygems/rubygems] Fix test issues surfaced using a stricter behavior of `FileUtils` We were trying to remove directories using `FileUtils.rm_f` which is unexpected and does not remove anything. Changing to `FileUtils.rm_rf` actually removes the directories properly. That itself showed other issues: * One test was actually removing the gem package it was about to install, since it was living in the cache folder. To fix that, avoid removing the cache folder, and only make sure the other directories are created automatically, which seems enough. * Another test was actually removing an incorrect directory. Change it to remove the right one (the one that's asserted later to have been created). https://github.com/rubygems/rubygems/commit/5538e7ff20 commit 9a20bcd5c8b5e5114783febc5168506972b1c234 Author: David Rodríguez AuthorDate: 2022-04-16 20:52:40 +0900 Commit: git[bot] CommitDate: 2022-04-16 22:58:34 +0900 [rubygems/rubygems] I don't think this is necessary https://github.com/rubygems/rubygems/commit/836f3e5aa5 commit a3ef0746ce07817845bfa9af697de53a28f599f7 Author: Nobuyoshi Nakada AuthorDate: 2022-04-16 17:13:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-16 17:13:24 +0900 Extract `pipe_readlines` method which reads from the pipeline commit b09e96341e8157a190b4c4b0ec0784be76887e0d Author: Nobuyoshi Nakada AuthorDate: 2022-04-16 16:45:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-16 16:45:46 +0900 Simplify the condition expression to ignore commits commit 492185e39c0edec8461502fc30f607ea2f035a5e Author: Nobuyoshi Nakada AuthorDate: 2022-04-16 16:26:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-16 16:45:11 +0900 Do not import any files under rakelib commit 723debc9a99a577e2da2f209c094852718a58ffa Author: BurdetteLamar AuthorDate: 2022-03-31 04:10:20 +0900 Commit: git[bot] CommitDate: 2022-04-16 15:34:34 +0900 [ruby/set] Repair format for What's Here https://github.com/ruby/set/commit/292baacb60 commit 24d7ebfa7a34b1b406b59648fad6ed068198c982 Author: Hiroshi SHIBATA AuthorDate: 2022-04-16 13:30:20 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-16 13:30:20 +0900 Revert "[ruby/stringio] Add push task to push built gems" This reverts commit 22f79ae3f749ebe31c34c22d5b8699ffd81ab341. commit 8a3663789c52ec5635194656af6b69d3d03120ee Author: Nobuyoshi Nakada AuthorDate: 2022-04-16 09:03:51 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-16 09:03:51 +0900 Fix bundled gems installation when relative loading commit ccb0572ff948aa83b7fb35143524fa8cd74864cf Author: Bobby McDonald AuthorDate: 2022-04-14 00:42:52 +0900 Commit: git[bot] CommitDate: 2022-04-16 08:23:21 +0900 [rubygems/rubygems] Add modern rubies to the platforms https://github.com/rubygems/rubygems/commit/5462322f8f commit 22f79ae3f749ebe31c34c22d5b8699ffd81ab341 Author: Sutou Kouhei AuthorDate: 2022-04-16 07:08:19 +0900 Commit: git[bot] CommitDate: 2022-04-16 07:08:41 +0900 [ruby/stringio] Add push task to push built gems https://github.com/ruby/stringio/commit/4431eefbad commit 2aca566a104ad42579be03374446fd45031ff9f6 Author: Sutou Kouhei AuthorDate: 2022-04-16 06:33:59 +0900 Commit: git[bot] CommitDate: 2022-04-16 06:34:31 +0900 [ruby/stringio] bump up to 3.0.2.pre1 https://github.com/ruby/stringio/commit/14ec9bc193 commit e021754db013ca9cd6dbd68b416425b32ee81490 Author: Burdette Lamar AuthorDate: 2022-04-16 03:31:15 +0900 Commit: GitHub CommitDate: 2022-04-16 03:31:15 +0900 [DOC] Enhanced RDoc for Regexp (#5807) Treats: #source #inspect #to_s #casefold? #options #names #named_captures Notes: Merged-By: BurdetteLamar commit 7f81f335478a3ca873f34e3bc0af6927819d3e84 Author: Nobuyoshi Nakada AuthorDate: 2022-04-15 16:40:25 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-15 17:52:10 +0900 Return `false` where sticky-bit is not provided [Bug #18734] Notes: Merged: https://github.com/ruby/ruby/pull/5804 commit 9db7d95968a832dd095eccf9cfe29255ac15b2c2 Author: Nobuyoshi Nakada AuthorDate: 2022-04-15 11:17:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-15 17:14:29 +0900 Compare predicate methods as a boolean value Notes: Merged: https://github.com/ruby/ruby/pull/5803 commit a0040af6715d85f416f1282588974e151a8164eb Author: Nobuyoshi Nakada AuthorDate: 2022-04-15 02:33:08 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-15 17:14:29 +0900 [Win32] Fix mode of character/pipe device stat [Bug #18732] Notes: Merged: https://github.com/ruby/ruby/pull/5803 commit a0eb4b14d68f77b7efa560e0c1b7d261654c586e Author: Peter Zhu AuthorDate: 2022-04-14 03:09:50 +0900 Commit: git[bot] CommitDate: 2022-04-15 16:07:11 +0900 [ruby/nkf] Fix docs rdoc parses "Z[0-3]" as a link to "0-3", this commit escapes these so that they don't become links. https://github.com/ruby/nkf/commit/269c10061b commit da1695b9260e1c87a66371b4f7f89cdfedb05d44 Author: Peter Zhu AuthorDate: 2022-04-15 00:15:57 +0900 Commit: git[bot] CommitDate: 2022-04-15 14:21:28 +0900 [ruby/optparse] Fix broken links in docs https://github.com/ruby/optparse/commit/2bea3b38c3 commit 92614111c0b175deaaba95ff3240a42e9b972b03 Author: Peter Zhu AuthorDate: 2022-04-15 02:11:57 +0900 Commit: git[bot] CommitDate: 2022-04-15 13:24:48 +0900 [ruby/rdoc] Fix links in docs www.ruby-lang.org without the leading https:// will generate an incorrect link because it will be treated as a relative link. https://github.com/ruby/rdoc/commit/28f32149b6 commit 307cb57ba6d4833cc40d29d218561e98f9a1dcb9 Author: Alan Wu AuthorDate: 2022-04-15 02:33:36 +0900 Commit: Alan Wu CommitDate: 2022-04-15 04:47:27 +0900 Fix build errors with development version of Clang Maybe not the best idea for CI stability to use development versions of Clang, but that does give us a preview of what's coming and gives us a chance to make suggestions upstream. Notes: Merged: https://github.com/ruby/ruby/pull/5799 commit 01395d84aba82cf9f9f6ac53aeb3e6f142bd8d83 Author: Burdette Lamar AuthorDate: 2022-04-15 04:25:06 +0900 Commit: GitHub CommitDate: 2022-04-15 04:25:06 +0900 More details for regexp literals (#5800) Notes: Merged-By: BurdetteLamar commit 8751c5c2672d1391c73d9dec590063d27bed7e4c Author: Akshay Birajdar AuthorDate: 2022-04-11 15:33:29 +0900 Commit: Peter Zhu CommitDate: 2022-04-14 21:52:22 +0900 [DOC] Enhance documentation for `Module#<` & `Module#>` Notes: Merged: https://github.com/ruby/ruby/pull/5784 commit 9b8ce6d34c49a869ee3fcbd87923a6414396738f Author: Koichi Sasada AuthorDate: 2022-04-14 16:52:08 +0900 Commit: Koichi Sasada CommitDate: 2022-04-14 21:22:47 +0900 fix to use `node.gvl` instead of `node.ubf` The last parameter of `ccan_list_top()` is to acquire the pointer of the top of element, so `node.ubf` is no problem. But this context it accesses gvl list, so `node.gvl` is better. Notes: Merged: https://github.com/ruby/ruby/pull/5798 commit 5397dd2e76952c5afc0d838f1d0bd53bcb0c5258 Author: Nobuyoshi Nakada AuthorDate: 2022-04-14 16:13:36 +0900 Commit: git[bot] CommitDate: 2022-04-14 16:37:14 +0900 [ruby/rdoc] Apply matching word pairs to underscore-methods Protected characters with `PROTECT_ATTR` should not have special roles. https://github.com/ruby/rdoc/commit/c318af0ea2 commit 1a2490b5640606a69e6abac5c50869b6095f0239 Author: Peter Zhu AuthorDate: 2022-04-14 05:05:37 +0900 Commit: git[bot] CommitDate: 2022-04-14 16:24:09 +0900 [rubygems/rubygems] Fix formatting in docs rdoc uses + for typewriter font rather than backticks. https://github.com/rubygems/rubygems/commit/be320f1e0c commit 295030969c84a4dc375c51902de9c7d614e4e5ba Author: Nobuyoshi Nakada AuthorDate: 2022-04-14 14:56:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-14 14:57:39 +0900 [DOC] Prefer RDOCLINK to the method name commit 2ff41e97fac1503e66554d7d410994b9d41fe0dc Author: Nobuyoshi Nakada AuthorDate: 2022-04-14 12:55:44 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-14 12:55:44 +0900 [DOC] Now underscore methods can cross-reference commit e06100d969c7f6a275e121cb1154d3947d1ebe32 Author: Nobuyoshi Nakada AuthorDate: 2022-02-10 08:13:57 +0900 Commit: git[bot] CommitDate: 2022-04-14 12:51:30 +0900 [ruby/rdoc] Allow cross references to methods including underscores As underscores are masked to "protect" from the conversion, consider also `PROTECT_ATTR` as a word character. https://github.com/ruby/rdoc/commit/db58bb5170 commit 5d45afdbbf058d82ced0b12bf9e4b2978db9f4e0 Author: Nobuyoshi Nakada AuthorDate: 2022-04-14 11:17:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-14 11:17:37 +0900 [DOC] Move the documentations of moved Symbol methods commit 3728f83b2d8e9d4705f835a572e6886a74562e8a Author: S-H-GAMELINKS AuthorDate: 2022-03-19 14:35:12 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-14 10:16:45 +0900 [DOC] Fix SymbolVariantsRelNotes link Notes: Merged: https://github.com/ruby/ruby/pull/5682 commit 59c81274aaa0ca7fd36635360f10b88aa67efa0a Author: Grant Hutchins AuthorDate: 2022-04-14 03:29:14 +0900 Commit: Peter Zhu CommitDate: 2022-04-14 04:44:36 +0900 Use correct capitalization of "NaN" in docs Notes: Merged: https://github.com/ruby/ruby/pull/5797 commit 629bad4abae141cb72a138cde9c98ad74181fbd0 Author: Stan Lo AuthorDate: 2022-04-11 06:49:59 +0900 Commit: Peter Zhu CommitDate: 2022-04-14 04:43:28 +0900 Update PTY.spawn's document Passing the optional env hash to PTY.spawn has been supported for years, but it's never documented. More info: https://bugs.ruby-lang.org/issues/12312 Notes: Merged: https://github.com/ruby/ruby/pull/5786 commit dbb227d3b6bb2e962e68d8b4991a53705fc041c1 Author: Alex Matchneer AuthorDate: 2022-04-14 04:34:49 +0900 Commit: GitHub CommitDate: 2022-04-14 04:34:49 +0900 [DOC] add missing size params in fiber scheduler.h (#5441) Notes: Merged-By: ioquatix commit dfdc03248fc01a84577e5a6094acbcaa41460144 Author: Burdette Lamar AuthorDate: 2022-04-14 03:45:18 +0900 Commit: GitHub CommitDate: 2022-04-14 03:45:18 +0900 [DOC] Enhanced RDoc for Symbol (#5796) Treats: #[] #length #empty? #upcase #downcase #capitalize #swapcase #start_with? #end_with? #encoding ::all_symbols Notes: Merged-By: BurdetteLamar commit 0579486f154e80d17521494003dcd2499ef74688 Author: Jeremy Evans AuthorDate: 2021-03-02 06:48:06 +0900 Commit: git[bot] CommitDate: 2022-04-14 00:11:26 +0900 [ruby/net-http] Update the content-length heading when decoding bodies Previously, the content-encoding header was removed and the body was modified, but the content-length header was not modified, resulting in the content-length header not matching the body length. Don't delete content-length before yielding inflate body, as that causes a switch to read the entire body instead of reading in chunks. Fixes [Bug #16672] https://github.com/ruby/net-http/commit/58284e9710 Co-authored-by: st0012 commit df1594e4b5100cef0ec0b5cf6a065f11634b26b2 Author: Nobuyoshi Nakada AuthorDate: 2022-04-13 18:36:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-13 22:55:20 +0900 Parenthize macro arguments commit aaac279de09eb1fe48b32fd95e61453f0d602ac4 Author: Peter Zhu AuthorDate: 2022-04-12 04:37:29 +0900 Commit: git[bot] CommitDate: 2022-04-13 22:25:33 +0900 [ruby/rdoc] Only parse valid URLs Only valid characters for URLs should be used for generating URLs. A list of valid characters can be found in sections 2.2 and 2.3 of IETF RFC 3986 (https://www.ietf.org/rfc/rfc3986.txt). https://github.com/ruby/rdoc/commit/2bd8fcdd4f commit 7e97ebb6eb392d90fc6e49a16620e71d398f4bdf Author: Nobuyoshi Nakada AuthorDate: 2022-04-13 09:02:32 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-13 18:33:34 +0900 Enforce literals on the second arguments commit 7e4ac434b923739b540ce21cba307c4d0515d72e Author: Kazuhiro NISHIYAMA AuthorDate: 2022-04-13 14:40:24 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-04-13 14:40:24 +0900 Skip build extensions again on cross compiling too commit 3112475469e35b522448858d23ee1651532276e7 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-04-13 13:40:57 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-04-13 13:40:57 +0900 Skip build extensions again on mswin and mingw commit 4246e102d49eae0bd1bca01fba53286ad8178d2a Author: Kazuhiro NISHIYAMA AuthorDate: 2022-04-13 11:09:23 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-04-13 11:09:23 +0900 Enabled to build extensions with the bundled gems again https://github.com/ruby/ruby/commit/cbb115213c42f15638ef119eb20c4d3106eb8b1a https://github.com/ruby/ruby/commit/5c1b76a3a55afeb07116bbd3492303c6b6cd890d commit b21026cb1a7b8b95675389aaf7c7a05f9561b426 Author: Burdette Lamar AuthorDate: 2022-04-13 07:27:18 +0900 Commit: GitHub CommitDate: 2022-04-13 07:27:18 +0900 Enhanced RDoc for Symbol (#5795) Treats: #== #inspect #name #to_s #to_sym #to_proc #succ #<=> #casecmp #casecmp? #=~ #match #match? Notes: Merged-By: BurdetteLamar commit 381475f02e6b44ae729f9403637b30c445b622e5 Author: Peter Zhu AuthorDate: 2022-04-12 22:18:41 +0900 Commit: Peter Zhu CommitDate: 2022-04-12 22:54:57 +0900 Use an empty string when building File.expand_path Allocating a string of length MAXPATHLEN and then shrinking the string is inefficient when the resulting path is short. Preallocating a large string is also a problem for Variable Width Allocation since we can't easily downsize the capacity. I ran the following benchmark: ```ruby Benchmark.ips do |x| { "empty" => "", "short" => "a/" * 10, "medium" => "a/" * 100, "long" => "a/" * 500 }.each do |name, path| x.report(name) do |times| i = 0 while i < times File.expand_path(path) i += 1 end end end end ``` On this commit: ``` empty 97.486k (± 0.7%) i/s - 492.915k in 5.056507s short 96.026k (± 2.4%) i/s - 486.489k in 5.068966s medium 86.304k (± 1.3%) i/s - 435.336k in 5.045112s long 59.395k (± 1.7%) i/s - 302.175k in 5.089026s ``` On master: ``` empty 94.138k (± 1.4%) i/s - 472.158k in 5.016590s short 92.043k (± 1.4%) i/s - 468.180k in 5.087496s medium 84.910k (± 2.3%) i/s - 425.750k in 5.017007s long 61.503k (± 2.7%) i/s - 309.723k in 5.039429s ``` Notes: Merged: https://github.com/ruby/ruby/pull/5789 commit d0a822eec524522d81ffc7da2bb1baf906b0318a Author: Nobuyoshi Nakada AuthorDate: 2021-07-01 06:39:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-12 21:30:49 +0900 Fix dtoa buffer overrun https://hackerone.com/reports/1248108 Notes: Merged: https://github.com/ruby/ruby/pull/5794 commit cf2bbcfff2985c116552967c7c4522f4630f2d18 Author: Nobuyoshi Nakada AuthorDate: 2021-06-11 00:06:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-12 20:24:14 +0900 Just free compiled pattern if no space is used https://hackerone.com/reports/1220911 Notes: Merged: https://github.com/ruby/ruby/pull/5793 commit de5aa98f396cfe900b456e78a9c451ac8a2a3e97 Author: Burdette Lamar AuthorDate: 2022-04-12 05:23:25 +0900 Commit: GitHub CommitDate: 2022-04-12 05:23:25 +0900 Correct whitespace in array.c (#5791) Notes: Merged-By: BurdetteLamar commit 7d709ceb12259b2b863a4a1f484987840d174514 Author: Burdette Lamar AuthorDate: 2022-04-12 03:49:38 +0900 Commit: GitHub CommitDate: 2022-04-12 03:49:38 +0900 Specify which core classes are convertible (#5790) Notes: Merged-By: BurdetteLamar commit 5f1f8c244da69a69ff62475be4c022f2c7e850d4 Author: Alan Wu AuthorDate: 2022-04-12 02:28:07 +0900 Commit: GitHub CommitDate: 2022-04-12 02:28:07 +0900 Fix fake.rb RUBY_DESCRIPTION faking for JITs Previously, `make test-spec` was not printing the description with +YJIT even when YJIT was indeed enabled. It was confusing on CI. `fake.rb` was changing the `RUBY_DESCRIPTION` constant incorrectly. I suppose `make test-spec` mostly needs the `mkmf` faking and not the faking of `RUBY_.*` constants, so maybe there is an opportunity to simplify in the future. Notes: Merged: https://github.com/ruby/ruby/pull/5782 Merged-By: XrXr commit ebb4378237e572ce2e888136a613c7c051439f95 Author: Jeremy Evans AuthorDate: 2022-04-12 00:17:19 +0900 Commit: git[bot] CommitDate: 2022-04-12 00:17:34 +0900 [ruby/net-http] Add HTTP#response_body_encoding for setting response body encoding This allows for the ability to opt-in to a method to set the encoding of response bodies. By setting the accessor to a String or Encoding instance, it will use the specified encoding. Setting the value of true will try to detect the encoding of the response body, either using the Content-Type header (assuming it specifies charset) or by scanning for a tag in the document that specifies the encoding. The default is false in which case no forcing of encoding will be done (same as before the patch). Implements [Feature #2567] Implements [Feature #15517] https://github.com/ruby/net-http/commit/6233e6b7c1 Co-authored-by: Yui Naruse commit 44a911a293ca6448f9e029e22492e78a1828a16b Author: Yusuke Endoh AuthorDate: 2022-04-11 10:05:16 +0900 Commit: Yusuke Endoh CommitDate: 2022-04-11 10:05:16 +0900 test/ruby/test_keyword.rb: Prevent warning: assigned but unused variable commit c789bdd31118e12446c443b204b3ab47f0ae5154 Author: Burdette Lamar AuthorDate: 2022-04-10 22:33:49 +0900 Commit: GitHub CommitDate: 2022-04-10 22:33:49 +0900 [DOC] Enhanced RDoc for Array intro (#5781) This covers the first few sections of the class doc for Array. Notes: Merged-By: BurdetteLamar commit 5b467400d220125aed9d000e258c3cc3ca505421 Author: S-H-GAMELINKS AuthorDate: 2022-04-09 16:53:13 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-09 17:43:46 +0900 [DOC]Some link prefix replace Notes: Merged: https://github.com/ruby/ruby/pull/5783 commit 70415071e82964bbd9cbf9391806ce7f396cf2a2 Author: Burdette Lamar AuthorDate: 2022-04-09 04:25:38 +0900 Commit: GitHub CommitDate: 2022-04-09 04:25:38 +0900 Fix some RDoc links (#5778) Notes: Merged-By: BurdetteLamar commit c77a31df5ed17231b2ddd213899716b900181ad2 Author: Koichi Sasada AuthorDate: 2022-04-08 16:44:03 +0900 Commit: Koichi Sasada CommitDate: 2022-04-08 21:30:32 +0900 call `const_added` after `autoload` When calling `const_added` while process in `autoload`, it can cause synchronization issue because of a thread swithcing. http://ci.rvm.jp/logfiles/brlog.trunk.20220407-152213#L489 ``` 1) Module#autoload (concurrently) raises a LoadError in each thread if the file does not exist ERROR NameError: uninitialized constant ModuleSpecs::Autoload::FileDoesNotExist ModuleSpecs::Autoload::FileDoesNotExist ^^^^^^^^^^^^^^^^^^ /tmp/ruby/v3/src/trunk/spec/ruby/core/module/autoload_spec.rb:965:in `block (5 levels) in ' ``` Notes: Merged: https://github.com/ruby/ruby/pull/5780 commit 798e21637f28d308bf0d52081fedd1a49cd1f851 Author: Koichi Sasada AuthorDate: 2022-04-08 12:29:02 +0900 Commit: Koichi Sasada CommitDate: 2022-04-08 13:31:28 +0900 sync `vm->constant_cache` On multi-ractors, `vm->constant_cache` (and so on) can be accessed in parallel so we need to synchronize the accesses to them. http://rubyci.s3.amazonaws.com/centos7/ruby-master/log/20220407T213003Z.log.html.gz#btest Notes: Merged: https://github.com/ruby/ruby/pull/5779 commit 9ca3d537b9dffba416bd37dfb25466f2cebc8510 Author: Burdette Lamar AuthorDate: 2022-04-08 04:29:04 +0900 Commit: GitHub CommitDate: 2022-04-08 04:29:04 +0900 All-in-one RDoc for class String (#5777) Notes: Merged-By: BurdetteLamar commit 16e08d53a0c78c149960b687c6ac735f21d5c405 Author: Alan Wu AuthorDate: 2022-04-07 06:29:13 +0900 Commit: Alan Wu CommitDate: 2022-04-08 01:49:28 +0900 Fix strict aliasing issue `rb_id_table_lookup()` writes to a `VALUE`, which is definitely a distinct type from `st_table *`. With LTO, the compiler is allowed by N1256 §6.5p7 to remove the output parameter write via type-based alias analysis. See also: a0a8f2abf53 Notes: Merged: https://github.com/ruby/ruby/pull/5773 commit 697eed63e81eff0e02226ceb6ab3bd2fd99000e3 Author: Nobuyoshi Nakada AuthorDate: 2022-04-07 22:27:06 +0900 Commit: git[bot] CommitDate: 2022-04-07 22:38:39 +0900 [ruby/psych] Update autoconf files bundled with yaml-2.5 https://github.com/ruby/psych/commit/e28f17ac18 commit 7b1ece9b9490a892861f2336ae41d611a06bdf2b Author: Nobuyoshi Nakada AuthorDate: 2022-04-07 19:19:13 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-07 19:19:13 +0900 Get rid of type-punning pointer casts commit 9e58c3c5195f0745ba7f125a3478046c5eb3acd7 Author: Nobuyoshi Nakada AuthorDate: 2022-04-07 19:07:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-07 19:07:24 +0900 Get rid of type aliasing commit 23090cf681cd4f92fdbe4c1bdea50ccf403ea4c6 Author: Nobuyoshi Nakada AuthorDate: 2022-04-07 17:55:51 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-07 18:01:10 +0900 Suppress an unused function commit 21f006f5f7c161fd3857f69186e810f1958bd7f0 Author: Nobuyoshi Nakada AuthorDate: 2022-04-07 15:03:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-07 15:03:24 +0900 Retrieve previously configured macros also other than `extensions` commit 5af507f527d8d83eb3e68fd8b701f7febe0b2e96 Author: Nobuyoshi Nakada AuthorDate: 2022-04-07 12:19:18 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-07 12:19:18 +0900 Update `heap_pages_deferred_final` atomically Notes: Merged: https://github.com/ruby/ruby/pull/5775 commit 0b091fdac6ceb33b7379ceddc9a49a79d0e158b2 Author: Jeremy Evans AuthorDate: 2022-04-07 11:14:03 +0900 Commit: GitHub CommitDate: 2022-04-07 11:14:03 +0900 Raise RuntimeError if Kernel#binding is called from a non-Ruby frame Check whether the current or previous frame is a Ruby frame in call_trace_func and rb_tracearg_binding before attempting to create a binding for the frame. Fixes [Bug #18487] Co-authored-by: Alan Wu Notes: Merged: https://github.com/ruby/ruby/pull/5767 Merged-By: jeremyevans commit bff12e1a9a726baef8d5d8876669a1506555ec09 Author: S-H-GAMELINKS AuthorDate: 2022-04-05 22:36:48 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-07 10:37:52 +0900 [DOC] Fix comment links Notes: Merged: https://github.com/ruby/ruby/pull/5765 commit 5c1b76a3a55afeb07116bbd3492303c6b6cd890d Author: Nobuyoshi Nakada AuthorDate: 2022-04-07 01:44:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-07 09:47:10 +0900 Install built gem extension binaries Notes: Merged: https://github.com/ruby/ruby/pull/5774 commit bb0a22a8c05994396aa316c242ff8816d8d0a259 Author: Nobuyoshi Nakada AuthorDate: 2022-04-06 22:57:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-07 09:47:10 +0900 Obey spec file locations to rubygems Notes: Merged: https://github.com/ruby/ruby/pull/5774 commit d7afaf21f2edfac8a606891868a3c4a7025267bd Author: Nobuyoshi Nakada AuthorDate: 2022-04-06 20:28:00 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-07 09:47:10 +0900 Move the target directory of bundled gems like as rubygems Notes: Merged: https://github.com/ruby/ruby/pull/5774 commit 17ce0b9b846a065065008b5fb2e9f8ad13058fa1 Author: Nobuyoshi Nakada AuthorDate: 2022-04-06 20:25:53 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-07 09:47:10 +0900 Retrieve configured gems info Notes: Merged: https://github.com/ruby/ruby/pull/5774 commit db3d111c1d1e90b400f1e737ded6a4e4bdf2cec8 Author: Nobuyoshi Nakada AuthorDate: 2022-04-05 23:24:00 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-07 09:47:10 +0900 Bundled gems are expanded under `.bundle/gems` now Notes: Merged: https://github.com/ruby/ruby/pull/5774 commit 3607657e1c613b1c1988c0a954bf03547978974f Author: S-H-GAMELINKS AuthorDate: 2022-04-06 21:50:01 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-07 09:46:05 +0900 [DOC] Fix linux kernel commit links Notes: Merged: https://github.com/ruby/ruby/pull/5768 commit 21c8b9eb99f170ca6a63fd36413dc25ed0cff3d2 Author: Alan Wu AuthorDate: 2022-04-07 07:39:27 +0900 Commit: Alan Wu CommitDate: 2022-04-07 07:39:27 +0900 Copyedit parallel test harness crash message Mea culpa. Co-authored-by: Kaíque Kandy Koga commit 16e6d7d186bc9d2ccd14bf5c18cca7f53ff9d970 Author: David Rodríguez AuthorDate: 2022-04-07 04:51:00 +0900 Commit: git[bot] CommitDate: 2022-04-07 07:22:55 +0900 [rubygems/rubygems] Set `@tempdir` as early as possible We have seen some errors during test `setup` before `@tempdir` is actually set, in particular, when instantiating `Gem::MockUI` which in turn requires `stringio`. In this case, the `teardown` method will also produce an error because it tries to remove the `@tempdir`, which has not been set, so tries to remove a `nil` directory. It results in a confusing error like ``` :85:in `require': Interrupt Error: test_bump_one_level(TestGemVersion): TypeError: no implicit conversion of nil into String C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/3.1.0/fileutils.rb:1570:in `path' from :85:in `require' C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/3.1.0/fileutils.rb:1570:in `block in fu_list' from D:/a/rubygems/rubygems/lib/rubygems/mock_gem_ui.rb:43:in `initialize' C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/3.1.0/fileutils.rb:1570:in `map' from D:/a/rubygems/rubygems/test/rubygems/helper.rb:323:in `new' C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/3.1.0/fileutils.rb:1570:in `fu_list' from D:/a/rubygems/rubygems/test/rubygems/helper.rb:323:in `setup' C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/3.1.0/fileutils.rb:616:in `rm_r' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:284:in `run_fixture_callback' C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/3.1.0/fileutils.rb:638:in `rm_rf' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:272:in `block in create_fixtures_runner' D:/a/rubygems/rubygems/test/rubygems/helper.rb:462:in `teardown' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:276:in `block in create_fixtures_runner' =============================================================================== from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:257:in `run_fixture' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/fixture.rb:292:in `run_setup' Finished in 683.0312862 seconds. from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testcase.rb:564:in `block in run' ------------------------------------------------------------------------------- from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testcase.rb:563:in `catch' 2185 tests, 5929 assertions, 0 failures, 1 errors, 28 pendings, 0 omissions, 0 notifications from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testcase.rb:563:in `run' 98.7185% passed from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:124:in `run_test' ------------------------------------------------------------------------------- from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:53:in `run' 3.20 tests/s, 8.68 assertions/sTerminate batch job (Y/N)? from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:124:in `run_test' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:53:in `run' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:124:in `run_test' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/testsuite.rb:53:in `run' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:67:in `run_suite' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:45:in `block (2 levels) in run' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:102:in `with_listener' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:41:in `block in run' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:39:in `catch' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnermediator.rb:39:in `run' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunner.rb:40:in `start_mediator' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunner.rb:25:in `start' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/ui/testrunnerutilities.rb:24:in `run' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/autorunner.rb:458:in `block in run' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/autorunner.rb:514:in `change_work_directory' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/autorunner.rb:457:in `run' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit/autorunner.rb:66:in `run' from C:/hostedtoolcache/windows/Ruby/3.1.1/x64/lib/ruby/gems/3.1.0/gems/test-unit-3.5.3/lib/test/unit.rb:518:in `block (2 levels) in ' rake aborted! Interrupt: ``` The should make this same error much cleaner if it happens again. https://github.com/rubygems/rubygems/commit/fa649d22e8 commit 399ef463f7d28efdec207d34b2357608c66ee7a6 Author: Alan Wu AuthorDate: 2022-04-07 06:03:39 +0900 Commit: Alan Wu CommitDate: 2022-04-07 07:11:43 +0900 Copyedit parallel test harness crash message Notes: Merged: https://github.com/ruby/ruby/pull/5772 commit 717b20ee305e523123bbb18d54fe8e87a78a9cb1 Author: Burdette Lamar AuthorDate: 2022-04-07 05:47:22 +0900 Commit: GitHub CommitDate: 2022-04-07 05:47:22 +0900 [DOC] Enhanced RDoc for string slices (#5769) Creates file doc/string/slices.rdoc that the string slicing methods can link to. Notes: Merged-By: BurdetteLamar commit 8197ae35f90aa1c260b5782c08827d5f52816908 Author: Soutaro Matsumoto AuthorDate: 2022-04-06 23:57:00 +0900 Commit: GitHub CommitDate: 2022-04-06 23:57:00 +0900 Bundle RBS 2.3.2 (#5762) Notes: Merged-By: soutaro commit c59488a8e3410f93a919c21a9df056f4344aac3e Author: Ashley Ellis Pierce AuthorDate: 2022-03-22 23:05:47 +0900 Commit: git[bot] CommitDate: 2022-04-06 08:55:00 +0900 [rubygems/rubygems] Use `ask_yes_no` https://github.com/rubygems/rubygems/commit/1d38e167fa commit 37a19f7f67f2e1836e981084f20ea5692b6a09d5 Author: Ashley Ellis Pierce AuthorDate: 2022-03-08 22:15:37 +0900 Commit: git[bot] CommitDate: 2022-04-06 08:54:59 +0900 [rubygems/rubygems] Extract default_host method https://github.com/rubygems/rubygems/commit/6e10e75574 commit b75b67f1136363ea54e9f79a4d63a9a355312f26 Author: Ashley Ellis Pierce AuthorDate: 2022-02-25 00:50:17 +0900 Commit: git[bot] CommitDate: 2022-04-06 08:54:59 +0900 [rubygems/rubygems] Use YAML https://github.com/rubygems/rubygems/commit/6122e8cac5 commit bb3ecdba6a48e9c82b651e74debcec1a10081126 Author: Ashley Ellis Pierce AuthorDate: 2022-02-25 00:16:32 +0900 Commit: git[bot] CommitDate: 2022-04-06 08:54:58 +0900 [rubygems/rubygems] Accomodate gem hosts without profile/me endpoint https://github.com/rubygems/rubygems/commit/31b6dcf5d3 commit 75083704bfeac2fb2a3e104389cd10ddf752b7d2 Author: Ashley Ellis Pierce AuthorDate: 2022-02-22 19:26:43 +0900 Commit: git[bot] CommitDate: 2022-04-06 08:54:58 +0900 [rubygems/rubygems] Update endpoint https://github.com/rubygems/rubygems/commit/a5a7b3ec96 commit ec09b2dba15ce4f47c98cbd5daf1bdbc1852b5e5 Author: Ashley Ellis Pierce AuthorDate: 2022-01-25 07:12:48 +0900 Commit: git[bot] CommitDate: 2022-04-06 08:54:57 +0900 [rubygems/rubygems] Remove whitespace https://github.com/rubygems/rubygems/commit/08c2d88137 commit 925d73b3eec1aa213173c24c3b784bbb7debe79e Author: Ashley Ellis Pierce AuthorDate: 2022-01-25 07:09:25 +0900 Commit: git[bot] CommitDate: 2022-04-06 08:54:56 +0900 [rubygems/rubygems] Make changes <2.6 compatible Multiple params to merge was not introduced until Ruby 2.6, so this merges the two additional params together first and then merges that with the request body https://github.com/rubygems/rubygems/commit/870f7e9a1c commit 8650811bc04d0f037a634e594501154106e6aec9 Author: Ashley Ellis Pierce AuthorDate: 2022-01-25 07:04:10 +0900 Commit: git[bot] CommitDate: 2022-04-06 08:54:56 +0900 [rubygems/rubygems] Fix lint https://github.com/rubygems/rubygems/commit/a68bfde18e commit 7bb6449fe5e90a189dd03a47b3862f9a5912705d Author: Ashley Ellis Pierce AuthorDate: 2022-01-25 06:19:15 +0900 Commit: git[bot] CommitDate: 2022-04-06 08:54:55 +0900 [rubygems/rubygems] Make mfa the default https://github.com/rubygems/rubygems/commit/0b636f6902 commit 4ae3b78c9510d5bd0cf8465bcbf125ae96a9e5bf Author: Ashley Ellis Pierce AuthorDate: 2022-01-25 06:13:20 +0900 Commit: git[bot] CommitDate: 2022-04-06 08:54:55 +0900 [rubygems/rubygems] Correct mfa level name https://github.com/rubygems/rubygems/commit/a002e351ae commit b3f1b3ccef6f61b95685690e5a8faaa3f009c25f Author: Ashley Ellis Pierce AuthorDate: 2022-01-25 05:25:28 +0900 Commit: git[bot] CommitDate: 2022-04-06 08:54:54 +0900 [rubygems/rubygems] Enable mfa on specific keys during gem signin https://github.com/rubygems/rubygems/commit/e787f7f655 commit 8ee4a82e8cfe6f39abeb60013447bdd2a3a3c61f Author: Kevin Newton AuthorDate: 2022-04-06 05:37:00 +0900 Commit: GitHub CommitDate: 2022-04-06 05:37:00 +0900 RubyVM.stat constant cache metrics (#5766) Before the new constant cache behavior, caches were invalidated by a single global variable. You could inspect the value of this variable with RubyVM.stat(:global_constant_state). This was mostly useful to verify the behavior of the VM or to test constant loading like in Rails. With the new constant cache behavior, we introduced RubyVM.stat(:constant_cache) which returned a hash with symbol keys and integer values that represented the number of live constant caches associated with the given symbol. Additionally, we removed the old RubyVM.stat(:global_constant_state). This was proven to be not very useful, so it doesn't help you diagnose constant loading issues. So, instead we added the global constant state back into the RubyVM output. However, that number can be misleading as now when you invalidate something like `Foo::Bar::Baz` you're actually invalidating 3 different lists of inline caches. This commit attempts to get the best of both worlds. We remove RubyVM.stat(:global_constant_state) like we did originally, as it doesn't have the same semantic meaning and it could be confusing going forward. Instead we add RubyVM.stat(:constant_cache_invalidations) and RubyVM.stat(:constant_cache_misses). These two metrics should provide enough information to diagnose any constant loading issues, as well as provide a replacement for the old global constant state. Notes: Merged-By: maximecb commit 2304cfa4c08a347f4df4915f88fb062cb12e4eeb Author: Alan Wu AuthorDate: 2022-04-05 04:23:42 +0900 Commit: Alan Wu CommitDate: 2022-04-06 01:57:55 +0900 Document MakeMakefile#append_cflags This method is at least 7 years old and is widely used in the wild. Since we need to support it, let's document it to make it discoverable. Add docs and move it out of the `# :stopdoc:` zone. Notes: Merged: https://github.com/ruby/ruby/pull/5760 commit 3bb70a6924ddd83f90b508b5bbc4d5629b8a41c6 Author: Jeremy Evans AuthorDate: 2022-04-05 05:14:45 +0900 Commit: Jeremy Evans CommitDate: 2022-04-05 23:35:25 +0900 Fix using anonymous block in method accepting explicit keywords Record block ID before vtable_pop, so the incorrect one doesn't override it. Fixes [Bug #18673] Notes: Merged: https://github.com/ruby/ruby/pull/5761 commit 97ce030954dab3f219779e235bee53ba408fbaca Author: Nobuyoshi Nakada AuthorDate: 2022-04-01 20:15:00 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-05 22:35:40 +0900 Load fake.rb at `BTESTRUBY` So that `mkmf` checks work from `make run`, and also remove duplicate `$(MINIRUBYOPT)` which is used in `$(MINIRUBY)`. Notes: Merged: https://github.com/ruby/ruby/pull/5747 commit d9c6f8d45c658121dcabb2e26cddb473e907d724 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-04-05 19:23:38 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-04-05 19:23:38 +0900 Try to fix NoMethodError on slow environments ``` 1) Failure: TestParallel::TestParallel#test_hungup [/home/user/ruby/tool/test/testunit/test_parallel.rb:215]: Expected /^Retrying hung up testcases\.+$/ to match "Run options: \n" + " --seed=43403\n" + " --ruby\n" + " \"./miniruby -I../lib -I. -I.ext/common ../tool/runruby.rb --extout=.ext -- --disable-gems\"\n" + " -j\n" + " t1\n" + " --worker-timeout=1\n" + "\n" + "# Running tests:\n" + "\n" + "/home/user/ruby/tool/lib/test/unit.rb:687:in `block in _run_parallel': undefined method `<' for nil:NilClass (NoMethodError)\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:538:in `block in quit_workers'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:537:in `reject!'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:537:in `quit_workers'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:687:in `_run_parallel'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:810:in `_run_suites'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:849:in `_run_suites'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1479:in `_run_anything'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1263:in `_run_anything'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1654:in `run_tests'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1641:in `block in _run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1640:in `each'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1640:in `_run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1682:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1034:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:882:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:154:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1761:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1765:in `run'\n" + "\tfrom /home/user/ruby/tool/test/testunit/tests_for_parallel/runner.rb:14:in `
'\n". ``` commit 573005983af9d3d1cfd3ad7251dad9855f3be552 Author: Benoit Daloze AuthorDate: 2022-04-05 18:54:57 +0900 Commit: Benoit Daloze CommitDate: 2022-04-05 18:54:57 +0900 Give some tips on how to find the missing ruby2_keywords commit d3f659d3f94cc8cf8315e11f5d38b4c62c7f24ae Author: Benoit Daloze AuthorDate: 2022-04-05 18:36:32 +0900 Commit: Benoit Daloze CommitDate: 2022-04-05 18:42:02 +0900 Add NEWS entry for Bug #18625 to help adding ruby2_keywords in the missing places Notes: Merged: https://github.com/ruby/ruby/pull/5684 commit 4f25207e72885a112c7b806688270241e1a9ff30 Author: Benoit Daloze AuthorDate: 2022-03-22 01:46:02 +0900 Commit: Benoit Daloze CommitDate: 2022-04-05 18:42:02 +0900 Use latest RSpec to get rspec-mocks ruby2_keywords fix Notes: Merged: https://github.com/ruby/ruby/pull/5684 commit 752c3dad989bb66e4be61911a82fed992067bdc3 Author: Jeremy Evans AuthorDate: 2022-03-12 06:49:36 +0900 Commit: Benoit Daloze CommitDate: 2022-04-05 18:42:02 +0900 Unflag a splatted flagged hash if the method doesn't use ruby2_keywords For a method such as: def foo(*callee_args) end If this method is called with a flagged hash (created by a method flagged with ruby2_keywords), this previously passed the hash through without modification. With this change, it acts as if the last hash was passed as keywords, so a call to: foo(*caller_args) where the last element of caller_args is a flagged hash, will be treated as: foo(*caller_args[0...-1], **caller_args[-1]) As a result, inside foo, callee_args[-1] is an unflagged duplicate of caller_args[-1] (all other elements of callee_args match caller_args). Fixes [Bug #18625] Notes: Merged: https://github.com/ruby/ruby/pull/5684 commit 5e7ebc7e6e626db01766294edbe41019b98b2e84 Author: Hiroshi SHIBATA AuthorDate: 2022-04-05 14:31:54 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-05 14:31:54 +0900 Ignore yaml source commit 839577d8337e70e43d0a62d56183038e2276b6fa Author: Hiroshi SHIBATA AuthorDate: 2022-04-05 14:30:47 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-04-05 14:30:47 +0900 Removed mswin patch for zlib-1.2.11 commit 1ac839dc3a70fa5dd18e67a37026234514b04b83 Author: Yusuke Endoh AuthorDate: 2022-04-05 14:07:25 +0900 Commit: Yusuke Endoh CommitDate: 2022-04-05 14:08:07 +0900 Apply timescale configuration for tests of Regexp.timeout commit 18044f4fbbfdef27b1e41c109d63c276026008c5 Author: Alan Wu AuthorDate: 2022-04-05 03:10:29 +0900 Commit: git[bot] CommitDate: 2022-04-05 08:56:21 +0900 [ruby/psych] Improve libyaml source downloading error messages People trying to build CRuby by following the instructions in its [README] have been running into [errors] due to missing `libyaml` on their system. Let's try to present a better error message when it happens. [README]: https://github.com/ruby/ruby/tree/fb5aa31e2d20ea8e1425432672f4de4c8ca2c26b#how-to-compile-and-install [errors]: https://github.com/ruby/psych/issues/552 https://github.com/ruby/psych/commit/20a633028e commit a19b2d59fc85abbb064d3923211161ba158c2fcb Author: Eric Wong AuthorDate: 2022-01-18 05:36:49 +0900 Commit: Eric Wong CommitDate: 2022-04-05 06:46:02 +0900 ruby_gc_set_params: update malloc_limit when env is set During VM startup, rb_objspace_alloc sets malloc_limit (objspace->malloc_params.limit) before ruby_gc_set_params is called, thus nullifying the effect of RUBY_GC_MALLOC_LIMIT before the initial GC run. The call sequence is as follows: main.c::main() ruby_init ruby_setup Init_BareVM rb_objspace_alloc // malloc_limit = gc_params.malloc_limit_min; ruby_options ruby_process_options process_options ruby_gc_set_params // RUBY_GC_MALLOC_LIMIT => gc_params.malloc_limit_min With ruby_gc_set_params setting malloc_limit, RUBY_GC_MALLOC_LIMIT affects the process sooner. [ruby-core:107170] commit 4a4485adbd13a75019ece34490b291da1dde8d91 Author: Burdette Lamar AuthorDate: 2022-04-05 04:18:10 +0900 Commit: GitHub CommitDate: 2022-04-05 04:18:10 +0900 Enhanced RDoc for String#index (#5759) Notes: Merged-By: BurdetteLamar commit 42000664be43f8c70322557703003b9141cfb28f Author: Kevin Newton AuthorDate: 2022-04-05 01:24:06 +0900 Commit: Jean Boussier CommitDate: 2022-04-05 03:41:05 +0900 Bring back RubyVM.stat(:global_constant_state) This was removed as part of [Feature #18589]. But some applications were relying on this behavior. So bringing this back to make it better for backward compatibility going forward. Notes: Merged: https://github.com/ruby/ruby/pull/5758 commit ea9c09a92c770e9e3cb0f5ceafd42c8407836f7e Author: Peter Zhu AuthorDate: 2022-04-02 02:31:19 +0900 Commit: Peter Zhu CommitDate: 2022-04-04 22:27:14 +0900 Disable mmap on WASM WASM does not have proper support for mmap. Notes: Merged: https://github.com/ruby/ruby/pull/5749 commit c482ee402502cee8bbea7fcb107d44de586bfc49 Author: Peter Zhu AuthorDate: 2022-04-02 02:26:07 +0900 Commit: Peter Zhu CommitDate: 2022-04-04 22:27:14 +0900 Make heap page sizes 64KiB by default Commit dde164e968e382d50b07ad4559468885cbff33ef decoupled incremental marking from page sizes. This commit changes Ruby heap page sizes to 64KiB. Doing so will have several benefits: 1. We can use compaction on systems with 64KiB system page sizes (e.g. PowerPC). 2. Larger page sizes will allow Variable Width Allocation to increase slot sizes and embed larger objects. 3. Since commit 002fa2859962f22de8afdbeece04966ea57b7da9, macOS has 64 KiB pages. Making page sizes 64 KiB will bring these systems to parity. I have attached some bechmark results below. Discourse: On Discourse, we saw much better p99 performance (e.g. for "categories" it went from 214ms on master to 134ms on branch, for "home" it went from 265ms to 251ms). We don’t see much change in p60, p75, and p90 performance. We also see a slight decrease in memory usage by 1.04x. Branch RSS: 354.9MB Master RSS: 368.2MB railsbench: On rails bench, we don’t see a big change in RPS or p99 performance. We don’t see a big difference in memory usage. Branch RPS: 826.27 Master RPS: 824.85 Branch p99: 1.67 Master p99: 1.72 Branch RSS: 88.72MB Master RSS: 88.48MB liquid: We don’t see a significant change in liquid performance. Branch parse & render: 28.653 I/s Master parse & render: 28.563 i/s Notes: Merged: https://github.com/ruby/ruby/pull/5749 commit f8455a4fafdb6c86df95142d8b1347b0e02ef3ae Author: Yusuke Endoh AuthorDate: 2022-04-04 16:36:02 +0900 Commit: Yusuke Endoh CommitDate: 2022-04-04 18:54:27 +0900 Make typeprof support RBS 2.3.0 Since RBS 2.3.0, nil? returns true or false instead of bool Notes: Merged: https://github.com/ruby/ruby/pull/5756 commit 57377e5d537c78bab4201a730cf3ab04a3085f6a Author: Nobuyoshi Nakada AuthorDate: 2022-04-01 12:38:47 +0900 Commit: git[bot] CommitDate: 2022-04-04 16:06:16 +0900 [ruby/psych] Propagate `CC` to libyaml It is needed for cross-compiling to set properly. Just `--target`/`--host`/`--build` seems insufficient on some platforms. https://github.com/ruby/psych/commit/2d00c0c203 commit de427c3ce0368ed075b09dac95f8e8a01fce8673 Author: Nobuyoshi Nakada AuthorDate: 2022-04-04 15:05:15 +0900 Commit: git[bot] CommitDate: 2022-04-04 15:05:44 +0900 [ruby/optparse] Define `inspect` and `pretty_inspect` https://github.com/ruby/optparse/commit/a3f0ec21b1 commit 4db75b6fe7453624bcb2286c4b191b49fc657f2e Author: Hartley McGuire AuthorDate: 2022-04-04 10:56:37 +0900 Commit: git[bot] CommitDate: 2022-04-04 14:14:40 +0900 [rubygems/rubygems] bump actions/checkout to 3 in bundler gem template Dependabot bumped the repo's configuration in 0c996fa but it did not bump the version in the template for `bundler gem` https://github.com/rubygems/rubygems/commit/e14980e169 commit 0b0ae583f4e25e378294df5e19a76f9fd541a6d0 Author: Burdette Lamar AuthorDate: 2022-04-04 00:09:34 +0900 Commit: GitHub CommitDate: 2022-04-04 00:09:34 +0900 [DOC] Enhanced RDoc for String (#5753) Treats: #length #bytesize Notes: Merged-By: BurdetteLamar commit f801386f0c7051085da9d6ca660642f3aa08c81e Author: Nobuyoshi Nakada AuthorDate: 2022-04-03 13:38:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-03 13:38:31 +0900 [DOC] Describe append_{c,cpp,ld}flags commit 7648bae4c86121b0b259587da11d27297c248633 Author: Jeremy Evans AuthorDate: 2022-04-03 06:50:03 +0900 Commit: git[bot] CommitDate: 2022-04-03 06:51:07 +0900 [ruby/net-http] Revert "Update the content-length heading when decoding bodies" This reverts commit https://github.com/ruby/net-http/commit/a7cb30124cf1. This is causing errors in Ruby's CI, will revert for now and try again after testing a fix with Ruby's CI. https://github.com/ruby/net-http/commit/7b852b1feb commit 7be4d900f0e14e6093c726fbc4416560fd56c931 Author: Burdette Lamar AuthorDate: 2022-04-03 04:26:49 +0900 Commit: GitHub CommitDate: 2022-04-03 04:26:49 +0900 [DOC] Enhanced RDoc for String (#5751) Adds to doc for String.new, also making it compliant with documentation_guide.rdoc. Fixes some broken links in io.c (that I failed to correct yesterday). Notes: Merged-By: BurdetteLamar commit 44d0caa1ca56b17bf0ed9e3daf446c1eaacae108 Author: Yuta Saito AuthorDate: 2022-03-17 20:05:15 +0900 Commit: Yuta Saito CommitDate: 2022-04-03 01:13:16 +0900 dir.c: refresh pathtype when emulating `IFTODT` in `glob_helper` When using `IFTODT` defined in libc, `dirent.d_type` oriented pathtype is compatible with `IFTODT(stat.st_mode)`. However they are not compatible when emulating `IFTODT`, so `glob_helper` has to stat instead of reusing dirent result by passing unknown pathtype to `glob_helper`. This is a follow-up fix of 0c90ca4dd0abbd28d7bb34b9241d93995ab9cfb7 Notes: Merged: https://github.com/ruby/ruby/pull/5680 commit 07acd6006c69370c7af4ca50221f1a8166d78e3f Author: Nobuyoshi Nakada AuthorDate: 2022-04-02 19:03:58 +0900 Commit: git[bot] CommitDate: 2022-04-02 19:34:05 +0900 [ruby/zlib] Use `z_size_t` version functions https://github.com/ruby/zlib/commit/1ce6625fff commit e73d76027e7a7e0927785c66629c18265de31901 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-04-02 19:29:03 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-04-02 19:29:03 +0900 Update bundled_gems commit 4ee71097a0557d01e5689c5edf52e508c6978571 Author: Nobuyoshi Nakada AuthorDate: 2022-04-02 19:07:45 +0900 Commit: git[bot] CommitDate: 2022-04-02 19:23:59 +0900 [ruby/zlib] Mask checksums to lower 32bits on also IL32 platforms https://github.com/ruby/zlib/commit/e1ead85113 commit 1cbdedec895070df1df96d05370cf8da084ab6fa Author: Nobuyoshi Nakada AuthorDate: 2022-04-02 16:06:11 +0900 Commit: git[bot] CommitDate: 2022-04-02 17:01:33 +0900 [ruby/zlib] Mask checksums to lower 32bits Upper bits affect the result of `crc32` in zlib 1.2.12. https://github.com/ruby/zlib/commit/9ab6d04af1 commit 729b9a85439d5cec7b73f8c0c41c4377e6ce304c Author: Nobuyoshi Nakada AuthorDate: 2022-04-02 15:05:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-04-02 15:06:12 +0900 [DOC] Fix broken links to encodings.rdoc Also prefers class name based references than file name based references. commit 81741690a0cc6a244821cf4c80030afa2bbc2565 Author: Burdette Lamar AuthorDate: 2022-04-02 10:41:04 +0900 Commit: GitHub CommitDate: 2022-04-02 10:41:04 +0900 [DOC] Main doc for encodings moved from encoding.c to doc/encodings.rdoc (#5748) Main doc for encodings moved from encoding.c to doc/encodings.rdoc Notes: Merged-By: BurdetteLamar commit 6068da8937d7e4358943f95e7450dae7179a7763 Author: Kevin Newton AuthorDate: 2022-04-01 00:04:25 +0900 Commit: Alan Wu CommitDate: 2022-04-02 03:48:22 +0900 Finer-grained constant cache invalidation (take 2) This commit reintroduces finer-grained constant cache invalidation. After 8008fb7 got merged, it was causing issues on token-threaded builds (such as on Windows). The issue was that when you're iterating through instruction sequences and using the translator functions to get back the instruction structs, you're either using `rb_vm_insn_null_translator` or `rb_vm_insn_addr2insn2` depending if it's a direct-threading build. `rb_vm_insn_addr2insn2` does some normalization to always return to you the non-trace version of whatever instruction you're looking at. `rb_vm_insn_null_translator` does not do that normalization. This means that when you're looping through the instructions if you're trying to do an opcode comparison, it can change depending on the type of threading that you're using. This can be very confusing. So, this commit creates a new translator function `rb_vm_insn_normalizing_translator` to always return the non-trace version so that opcode comparisons don't have to worry about different configurations. [Feature #18589] Notes: Merged: https://github.com/ruby/ruby/pull/5716 commit 20c190f95a28dd4e57cb96f939ff314dfb88b1f4 Author: Aaron Patterson AuthorDate: 2022-03-31 04:21:34 +0900 Commit: Alan Wu CommitDate: 2022-04-02 03:48:22 +0900 Fix up global name references in misc/lldb_disasm.py Some of the symbols had changed names and the script was no longer finding them. Notes: Merged: https://github.com/ruby/ruby/pull/5716 commit 58adb1636be32fb95173f01e448673dbae4511b0 Author: Jeremy Evans AuthorDate: 2021-03-02 06:48:06 +0900 Commit: git[bot] CommitDate: 2022-04-02 02:49:21 +0900 [ruby/net-http] Update the content-length heading when decoding bodies Previously, the content-encoding header was removed and the body was modified, but the content-length header was not modified, resulting in the content-length header not matching the body length. Fixes [Bug #16672] https://github.com/ruby/net-http/commit/a7cb30124c commit 651b832c1b574df1c6095c49d77cccf0f250aa7f Author: Matt Valentine-House AuthorDate: 2022-04-01 22:59:36 +0900 Commit: Peter Zhu CommitDate: 2022-04-01 23:52:18 +0900 extract magic number from gc_sweep_step Notes: Merged: https://github.com/ruby/ruby/pull/5746 commit fe21b7794af0cdb7ebd502e2c0da38c68fd89839 Author: Peter Zhu AuthorDate: 2022-04-01 23:26:54 +0900 Commit: Peter Zhu CommitDate: 2022-04-01 23:27:18 +0900 Use mmap for heap page allocation only Currently, rb_aligned_malloc uses mmap if Ruby heap pages can be allocated through mmap (when system heap page size <= Ruby heap page size). If Ruby heap page sizes is increased to 64KiB, then mmap will be used on systems with 64KiB system page sizes. However, the transient heap also uses rb_aligned_malloc and requires 32KiB alignment. This would break in the current implementation since it would allocate sizes through mmap that is not a multiple of the system page size. This commit adds heap_page_body_allocate which will use mmap when possible and changes rb_aligned_malloc to not use mmap (and only use posix_memalign). commit d1d48cb690fdad855da94b2a2d11721428bc06ba Author: Jeremy Evans AuthorDate: 2022-04-01 23:22:49 +0900 Commit: Jeremy Evans CommitDate: 2022-04-01 23:22:49 +0900 Revert "Raise RuntimeError if Kernel#binding is called from a non-Ruby frame" This reverts commit 343ea9967e4a6b279eed6bd8e81ad0bdc747f254. This causes an assertion failure with -DRUBY_DEBUG=1 -DRGENGC_CHECK_MODE=2 commit d8352ff3ac6960f029e3c9253f527f6e4a845645 Author: Matt Valentine-House AuthorDate: 2022-03-22 05:46:58 +0900 Commit: Peter Zhu CommitDate: 2022-04-01 21:45:52 +0900 [Feature #18619] remove FL_FROM_FREELIST Notes: Merged: https://github.com/ruby/ruby/pull/5637 commit c26a85fc968d19fc40b9aee8fb8451a08e3d26d1 Author: Matt Valentine-House AuthorDate: 2022-04-01 04:39:17 +0900 Commit: Peter Zhu CommitDate: 2022-04-01 21:45:52 +0900 [Feature #18619] Remove redundant compaction path Notes: Merged: https://github.com/ruby/ruby/pull/5637 commit 76572e5a7fc0ffde6501fd9a8c034bb621f11688 Author: Matt Valentine-House AuthorDate: 2022-01-07 07:29:03 +0900 Commit: Peter Zhu CommitDate: 2022-04-01 21:45:52 +0900 [Feature #18619] Reverse the order of compaction movement This commit changes the way compaction moves objects and sweeps pages in order to better facilitate object movement between size pools. Previously we would move the scan cursor first until we found an empty slot and then we'd decrement the compact cursor until we found something to move into that slot. We would sweep the page that contained the scan cursor before trying to fill it In this algorithm we first move the compact cursor down until we find an object to move - We then take a free page from the desired destination heap (always the same heap in this current iteration of the code). If there is no free page we sweep the page at the sweeping_page cursor, add it to the free pages, and advance the cursor to the next page, and try again. We sweep one page from each size pool in this way, and then repeat that process until all the size pools are compacted (all the cursors have met), and then we update references and sweep the rest of the heap. Notes: Merged: https://github.com/ruby/ruby/pull/5637 commit b3a05827c716bbb6a54cb6924f5840324806c42c Author: Koichi Sasada AuthorDate: 2022-04-01 14:05:00 +0900 Commit: Koichi Sasada CommitDate: 2022-04-01 14:44:08 +0900 debug.gem v1.5.0 Note that `mkmf`'s `have_func` doesn't work without installing ruby (without `make install`) and `make test-bundled-gems` does not work. So the newer test repository is specified. Notes: Merged: https://github.com/ruby/ruby/pull/5738 commit 06f94d1784c6f00ba7d21af57af0d008ad597e70 Author: Hiroshi SHIBATA AuthorDate: 2022-04-01 13:54:35 +0900 Commit: git[bot] CommitDate: 2022-04-01 13:56:47 +0900 [ruby/net-protocol] Bump version to 0.1.3 https://github.com/ruby/net-protocol/commit/9cf40af499 commit e680e63e7ea79657e06d7c4609720c6ee06442b8 Author: Nobuyoshi Nakada AuthorDate: 2022-04-01 00:45:31 +0900 Commit: git[bot] CommitDate: 2022-04-01 11:48:50 +0900 [ruby/psych] Output libyaml configure log https://github.com/ruby/psych/commit/c2e3c8579c commit 222203297966f312109e8eaa2520f2cf2f59c09d Author: Alan Wu AuthorDate: 2022-04-01 06:26:28 +0900 Commit: GitHub CommitDate: 2022-04-01 06:26:28 +0900 Remove dependency on libcapstone We have received reports of build failures due to this configuration check modifying compile flags. Since only YJIT devs use this library we can remove it to make Ruby easier to build for users. See: https://github.com/rbenv/ruby-build/discussions/1933 Notes: Merged: https://github.com/ruby/ruby/pull/5744 Merged-By: XrXr commit 056b7a86335f38618c1749674a11e838de7c3c12 Author: Burdette Lamar AuthorDate: 2022-04-01 05:09:25 +0900 Commit: GitHub CommitDate: 2022-04-01 05:09:25 +0900 [DOC] Enhanced RDoc for String (#5742) Treats: #force_encoding #b #valid_encoding? #ascii_only? #scrub #scrub! #unicode_normalized? Plus a couple of minor tweaks. Notes: Merged-By: BurdetteLamar commit bb037f6d8639b7d36ef263ca24d4117d725e71ef Author: Matt Valentine-House AuthorDate: 2022-03-26 07:04:26 +0900 Commit: Peter Zhu CommitDate: 2022-04-01 03:39:59 +0900 Remove hard-coded swept slots threshold Notes: Merged: https://github.com/ruby/ruby/pull/5720 commit 8a38419b73ec2b698dd2d0462055f3e8f2bc6252 Author: Marc-Andre Lafortune AuthorDate: 2022-04-01 00:18:22 +0900 Commit: git[bot] CommitDate: 2022-04-01 00:18:36 +0900 [ruby/ostruct] v0.5.5 https://github.com/ruby/ostruct/commit/ce879e56cf commit 87517696373cdcf38de2b11d9f2cfbe950e3ef47 Author: Charles Oliver Nutter AuthorDate: 2022-03-30 04:50:42 +0900 Commit: git[bot] CommitDate: 2022-04-01 00:16:49 +0900 [ruby/ostruct] Avoid using block_given in the presence of aliases defined?(yield) bypasses the block_given? method (or any aliases to it) and always does the right thing. https://github.com/ruby/ostruct/commit/4c38fe612e commit af2ab0dd1c899356d9ec38b052f0df0706efb8f9 Author: Nobuyoshi Nakada AuthorDate: 2022-03-31 19:29:24 +0900 Commit: git[bot] CommitDate: 2022-03-31 21:34:48 +0900 [ruby/psych] Make a static library from PIC object files On some platforms, PIC and non-PIC code are incompatible and the latter cannot be used for shared objects. https://github.com/ruby/psych/commit/5652e32733 commit 834c3b35455ed50c7ad879b3e2f807eaa9b0a328 Author: James Hill AuthorDate: 2022-03-31 09:58:39 +0900 Commit: git[bot] CommitDate: 2022-03-31 20:00:10 +0900 [rubygems/rubygems] Update bundler documentation to reflect bundle config scope changes In https://github.com/rubygems/rubygems/pull/4152 `bundle config` was changed to default to local scope (instead of global) if the command was executed from inside an application directory. Updated documentation reflects this change. https://github.com/rubygems/rubygems/commit/d92d42cae5 commit d8189ed23f02dd197453279aeee9be1785337d4f Author: Nobuyoshi Nakada AuthorDate: 2022-03-31 18:01:15 +0900 Commit: GitHub CommitDate: 2022-03-31 18:01:15 +0900 Return only captured range in `MatchData` [Bug #18670] Notes: Merged: https://github.com/ruby/ruby/pull/5740 Merged-By: nobu commit ddd83e8462db32b7403470ef92ed73ee0daef02b Author: Yusuke Endoh AuthorDate: 2022-03-31 12:52:16 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-31 12:52:16 +0900 test/date/test_date_parse.rb: relax the time limit The timeout was very strict for weak CI machines like qemu-riscv. Due to the additional overhead for Regexp.timeout=, it started failing on such machines. http://rubyci.s3.amazonaws.com/debian-riscv64/ruby-master/log/20220330T200018Z.fail.html.gz ``` 1) Error: TestDateParse#test__parse_too_long_year: Timeout::Error: execution expired ``` commit 217cea78129174bc964a94e4df547ead0d2f526a Author: Nobuyoshi Nakada AuthorDate: 2022-03-31 12:11:30 +0900 Commit: git[bot] CommitDate: 2022-03-31 12:18:28 +0900 [ruby/psych] Remove `unknown` vendor for cross-compiling tool prefix https://github.com/ruby/psych/commit/a4ffa06646 commit 663c297e34a04d0fcf12f317d7c9eb0ffbb5ef7f Author: Nobuyoshi Nakada AuthorDate: 2022-03-31 10:40:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-31 10:49:56 +0900 Remove CI configuration files from extracted bundled gems commit abfd859b139545110e1fcdd8e99575d5e0bfb4e4 Author: Nobuyoshi Nakada AuthorDate: 2022-03-31 09:49:41 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-31 10:49:55 +0900 Remove github and git related files from extracted bundled gems commit c499a4c28a62813752aeb894d68d92fcec850ac0 Author: Yusuke Endoh AuthorDate: 2022-03-31 10:07:09 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-31 10:07:09 +0900 re.c: stop a wrong warning of "flags ignored" on Regexp.new(//) [Bug #18669] commit 3a70d4cd60d0b0765d44792d226a1f2ffc38c931 Author: S-H-GAMELINKS AuthorDate: 2022-03-30 12:14:17 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-31 08:35:39 +0900 [DOC] Fix ghcr link Notes: Merged: https://github.com/ruby/ruby/pull/5734 commit 9f306618b169143237d8fad0a898f2accf0cdd28 Author: Peter Zhu AuthorDate: 2022-03-31 02:32:51 +0900 Commit: Peter Zhu CommitDate: 2022-03-31 07:08:46 +0900 [Bug #18667] Define RUBY_API_VERSION on Windows On other platforms, RUBY_SO_NAME is defined from RUBY_API_VERSION. ruby_version contains the ABI version, which is not needed. RUBY_API_VERSION is defined as MAJOR.MINOR. Notes: Merged: https://github.com/ruby/ruby/pull/5736 commit 0cb43034b416aaf28bf57ee34bc095fdcb659f33 Author: Burdette Lamar AuthorDate: 2022-03-31 04:14:36 +0900 Commit: GitHub CommitDate: 2022-03-31 04:14:36 +0900 Repair format for What's Here in Dir (#5737) Notes: Merged-By: BurdetteLamar commit ffcdbedbfb7fc37564ea046d381954eb53eaf6f9 Author: Burdette Lamar AuthorDate: 2022-03-31 03:46:24 +0900 Commit: GitHub CommitDate: 2022-03-31 03:46:24 +0900 Repaired What's Here sections for Range, String, Symbol, Struct (#5735) Repaired What's Here sections for Range, String, Symbol, Struct. Notes: Merged-By: BurdetteLamar commit 79b59fee16b33527eba348b63c9233d58e396c8c Author: Jeremy Evans AuthorDate: 2022-03-31 03:39:27 +0900 Commit: Jeremy Evans CommitDate: 2022-03-31 03:39:27 +0900 Update NEWS for proc autosplat change commit fbaadd1cfe7fbfd1b904f193f99d7c845a6ed804 Author: Jeremy Evans AuthorDate: 2022-03-31 03:03:56 +0900 Commit: GitHub CommitDate: 2022-03-31 03:03:56 +0900 Do not autosplat array in block call just because keywords accepted If the block only accepts a single positional argument plus keywords, then do not autosplat. Still autosplat if the block accepts more than one positional argument in addition to keywords. Autosplatting a single positional argument plus keywords made sense in Ruby 2, since a final positional hash could be used as keywords, but it does not make sense in Ruby 3. Fixes [Bug #18633] Notes: Merged: https://github.com/ruby/ruby/pull/5665 Merged-By: jeremyevans commit 75efbb98afe854972a1c832ec5d4d66639c41c74 Author: Nobuyoshi Nakada AuthorDate: 2022-03-30 22:51:54 +0900 Commit: git[bot] CommitDate: 2022-03-30 23:08:13 +0900 [ruby/psych] Propagate the host configuration to libyaml https://github.com/ruby/psych/commit/0e37e19707 commit dde164e968e382d50b07ad4559468885cbff33ef Author: Peter Zhu AuthorDate: 2022-03-30 02:57:09 +0900 Commit: Peter Zhu CommitDate: 2022-03-30 22:33:17 +0900 Decouple incremental marking step from page sizes Currently, the number of incremental marking steps is calculated based on the number of pooled pages available. This means that if we make Ruby heap pages larger, it would run fewer incremental marking steps (which would mean each incremental marking step takes longer). This commit changes incremental marking to run after every INCREMENTAL_MARK_STEP_ALLOCATIONS number of allocations. This means that the behaviour of incremental marking remains the same regardless of the Ruby heap page size. I've benchmarked against discourse benchmarks and did not get a significant change in response times beyond the margin of error. This is expected as this new incremental marking algorithm behaves very similarly to the previous one. Notes: Merged: https://github.com/ruby/ruby/pull/5732 commit ad808506b300435df24f12ae03338e57a056cdc6 Author: Yusuke Endoh AuthorDate: 2022-03-30 15:14:48 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-30 16:50:46 +0900 Update dependencies Notes: Merged: https://github.com/ruby/ruby/pull/5703 commit 5df2589b64127e86247de26d4db727a62764a869 Author: Yusuke Endoh AuthorDate: 2022-03-30 14:46:18 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-30 16:50:46 +0900 internal/ractor.h: Added Currently it has only one function prototype. Notes: Merged: https://github.com/ruby/ruby/pull/5703 commit 2ade40276be9f60ed06e7011b41a4c90f03e59b4 Author: Yusuke Endoh AuthorDate: 2022-03-28 15:03:17 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-30 16:50:46 +0900 re.c: raise Regexp::TimeoutError instead of RuntimeError Notes: Merged: https://github.com/ruby/ruby/pull/5703 commit 34b288f8d471e3a3d34f2a63950b483594df282f Author: Yusuke Endoh AuthorDate: 2022-03-24 17:01:30 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-30 16:50:46 +0900 doc/regexp.rdoc: Add explanation about Regexp timeout configuration Notes: Merged: https://github.com/ruby/ruby/pull/5703 commit ce87bb8bd64869c0d04026d6bca41dc6bd312a73 Author: Yusuke Endoh AuthorDate: 2022-03-24 17:00:51 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-30 16:50:46 +0900 re.c: Add `timeout` keyword for Regexp.new and Regexp#timeout Notes: Merged: https://github.com/ruby/ruby/pull/5703 commit ffc3b37f969a779f93b8f8a5b3591b4ef7de1538 Author: Yusuke Endoh AuthorDate: 2022-03-24 16:59:11 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-30 16:50:46 +0900 re.c: Add Regexp.timeout= and Regexp.timeout [Feature #17837] Notes: Merged: https://github.com/ruby/ruby/pull/5703 commit 23530d68cb04aed9c2f59a050523b0193ee2d0c1 Author: Yusuke Endoh AuthorDate: 2022-03-24 14:14:07 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-30 16:50:46 +0900 ractor.c: Add a helper function to ensure the context is a main ractor Notes: Merged: https://github.com/ruby/ruby/pull/5703 commit a94002115beaf989aec4c9b2a746ac8d19440e57 Author: Yusuke Endoh AuthorDate: 2022-03-23 18:41:36 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-30 16:50:46 +0900 thread.c: Move double2hrtime and hrtime2double to hrtime.h ... to make them available in other places than thread.c Notes: Merged: https://github.com/ruby/ruby/pull/5703 commit 42a0bed351979cb4a59c641fa5f03e49609561fd Author: Nobuyoshi Nakada AuthorDate: 2022-03-30 16:36:31 +0900 Commit: GitHub CommitDate: 2022-03-30 16:36:31 +0900 Prefix ccan headers (#4568) * Prefixed ccan headers * Remove unprefixed names in ccan/build_assert * Remove unprefixed names in ccan/check_type * Remove unprefixed names in ccan/container_of * Remove unprefixed names in ccan/list Co-authored-by: Samuel Williams Notes: Merged-By: ioquatix commit 8d27d00af514153819e44eb8e5f4f8631830ae55 Author: Nobuyoshi Nakada AuthorDate: 2022-03-30 14:38:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-30 14:38:33 +0900 Fix locations of the second argument commit 71aa43c725084ec11827330c8502acc54bf29534 Author: Nobuyoshi Nakada AuthorDate: 2022-03-19 20:29:17 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-30 11:31:04 +0900 [ruby/psych] Configure libyaml from the original source https://github.com/ruby/psych/commit/54a9ba9d10 commit 0bca029d2f848cc326681d2c324712eec96808e8 Author: Nobuyoshi Nakada AuthorDate: 2022-03-26 21:07:06 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-30 10:54:52 +0900 [DOC] Use simple references to operator methods Method references is not only able to be marked up as code, also reflects `--show-hash` option. The bug that prevented the old rdoc from correctly parsing these methods was fixed last month. commit 5d43969e921f566ba2080f83ac68b75ebccdf30b Author: Jeremy Evans AuthorDate: 2022-03-30 10:33:16 +0900 Commit: Jeremy Evans CommitDate: 2022-03-30 10:33:16 +0900 Update NEWS for TracePoint#enable target_thread default change commit 3cad54a246e6f292cc58d10ff002525edc6f404a Author: Jeremy Evans AuthorDate: 2022-02-09 01:55:49 +0900 Commit: Jeremy Evans CommitDate: 2022-03-30 10:14:33 +0900 Fix comment Notes: Merged: https://github.com/ruby/ruby/pull/5359 commit d8dfabbfe6522c495d280e6a12201c3fa88988b5 Author: Jeremy Evans AuthorDate: 2022-02-09 01:51:55 +0900 Commit: Jeremy Evans CommitDate: 2022-03-30 10:14:33 +0900 Fix spec description Co-authored-by: Benoit Daloze Notes: Merged: https://github.com/ruby/ruby/pull/5359 commit 750e18594b138465506aba9a1225b9897026a06a Author: Jeremy Evans AuthorDate: 2022-02-09 01:50:57 +0900 Commit: Jeremy Evans CommitDate: 2022-03-30 10:14:33 +0900 Update comment for TracePoint#enable Co-authored-by: Benoit Daloze Notes: Merged: https://github.com/ruby/ruby/pull/5359 commit 3c6a0033e3dc7da2898232a2efc7367ae6fc536a Author: Jeremy Evans AuthorDate: 2021-12-28 07:08:59 +0900 Commit: Jeremy Evans CommitDate: 2022-03-30 10:14:33 +0900 Avoid trace events in implementation of TracePoint#enable This is more backwards compatible, and should fix issues with power_assert. Unfortunately, it requires using a sentinel value as the default value of target_thread, instead of the more natural expression used in the original approach. Notes: Merged: https://github.com/ruby/ruby/pull/5359 commit 9c1d32a7ada794ecd0356d56f7be3cdf3982d8ac Author: Jeremy Evans AuthorDate: 2021-12-28 05:52:04 +0900 Commit: Jeremy Evans CommitDate: 2022-03-30 10:14:33 +0900 Make TracePoint#enable with block target current thread by default If TracePoint#enable is passed a block, it previously started the trace on all threads. This changes it to trace only the current thread by default. To limit the scope of the change, the current thread is only used by default if target and target_line are both nil. You can pass target_thread: nil to enable tracing on all threads, to get the previous default behavior. Fixes [Bug #16889] Notes: Merged: https://github.com/ruby/ruby/pull/5359 commit 6d3f447aecfb56f7d3edbdf9cc68e748e150d7d8 Author: Jeremy Evans AuthorDate: 2022-03-25 03:05:12 +0900 Commit: Jeremy Evans CommitDate: 2022-03-30 07:29:15 +0900 Fix multiplex backreferencs near end of string in regexp match Idea from Jirka Marsik. Fixes [Bug #18631] Notes: Merged: https://github.com/ruby/ruby/pull/5710 commit 173a6b6a802d80b8cf200308fd3653832b700b1c Author: Jeremy Evans AuthorDate: 2022-03-10 07:57:49 +0900 Commit: Jeremy Evans CommitDate: 2022-03-30 04:10:13 +0900 Make define_singleton_method always define a public method In very unlikely cases, it could previously define a non-public method starting in Ruby 2.1. Fixes [Bug #18561] Notes: Merged: https://github.com/ruby/ruby/pull/5636 commit 87123c4fc7773a33f228b7ac0aee148fa91a49af Author: Jemma Issroff AuthorDate: 2022-03-29 17:37:46 +0900 Commit: Aaron Patterson CommitDate: 2022-03-30 00:21:10 +0900 Refactor test_dump_all to make assertions about the contents of the dumped hash Notes: Merged: https://github.com/ruby/ruby/pull/5728 commit b257034ae55da80d9b3f059a7504ee78c4e70980 Author: Burdette Lamar AuthorDate: 2022-03-29 23:54:29 +0900 Commit: GitHub CommitDate: 2022-03-29 23:54:29 +0900 [DOC] Enhanced RDoc for String (#5730) Treats: #start_with? #end_with? #delete_prefix #delete_prefix! #delete_suffix #delete_suffix! Notes: Merged-By: BurdetteLamar commit c67088dbae9e61a4c07742ceee7fb46597589d95 Author: Nobuyoshi Nakada AuthorDate: 2022-03-29 18:42:00 +0900 Commit: git[bot] CommitDate: 2022-03-29 20:57:58 +0900 [ruby/psych] Try bundled libyaml source if pre-installed is unavailable https://github.com/ruby/psych/commit/f78e1dba89 commit c8e1ae4db770634693129266dea4e1d334d057c2 Author: Burdette Lamar AuthorDate: 2022-03-29 20:19:51 +0900 Commit: GitHub CommitDate: 2022-03-29 20:19:51 +0900 [DOC] Repair format of What's Here sections in object.c (#5722) * Repair format of What's Here sections in object.c Notes: Merged-By: BurdetteLamar commit 8e2a2ba0f98adb5f8b189b963a82cbc0ecea7410 Author: Hiroshi SHIBATA AuthorDate: 2022-03-29 17:45:33 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-29 19:07:12 +0900 Merge psych master https://github.com/ruby/psych/commit/c386ecb0c24eeb9693cc4ad3b1f263b2622c4f1e Notes: Merged: https://github.com/ruby/ruby/pull/5729 commit 51e98eab1f2d43f3d77f6e148b2bd07709379b8f Author: Alan Wu AuthorDate: 2022-03-29 06:00:45 +0900 Commit: GitHub CommitDate: 2022-03-29 06:00:45 +0900 Fix Ractor.receive_if + rb_vm_barrier() deadlock I have this scripts that deadlocks after about 5 minutes if I repeatedly run it with a shell loop: ```ruby $VERBOSE = nil lamb = ->(main, gc) do gc.verify_internal_consistency gc.verify_internal_consistency main << 1 gc.verify_internal_consistency gc.verify_internal_consistency main << 2 gc.verify_internal_consistency gc.verify_internal_consistency main << 3 gc.verify_internal_consistency gc.verify_internal_consistency end lamb[[], GC] lamb[[], GC] r = Ractor.new Ractor.current, GC, &lamb a = [] a << Ractor.receive_if{|msg| msg == 2} a << Ractor.receive_if{|msg| msg == 3} a << Ractor.receive_if{|msg| msg == 1} ``` Shell loop: ```shell while ./miniruby deadlock.rb; do date; done ``` Once it locks up, CTRL-C doesn't interrupt the process which led me to infer `receive_if` is looping in `ractor_receive_if()` without checking for interrupts. This can be confirmed by attaching a debugger to the deadlocked miniruby. The deadlock has one thread looping in `receive_if` and another waiting in `rb_vm_barrier()`. The barrier relies on interrupt checking to finish. Theoretically speaking the `rb_vm_barrier()` could come from one thread naturally starting GC. We found this while developing YJIT but it dead locks running with YJIT disabled. YJIT currently relies on `rb_vm_barrier()` to synchronize before changing memory protection. This diff adds an interrupt check in the loop in `Ractor#receive_if` which seems to fix the deadlock. In addition, this commit allows interrupting the following single ractor script with CTRL-C. ```shell ruby -e 'Ractor.current.send(3); Ractor.receive_if { false }' ``` Notes: Merged: https://github.com/ruby/ruby/pull/5699 Merged-By: XrXr commit 5525e47a0b5e6b6c3e13ceec4b44535feba22631 Author: Burdette Lamar AuthorDate: 2022-03-29 05:49:18 +0900 Commit: GitHub CommitDate: 2022-03-29 05:49:18 +0900 [DOC] Enhanced RDoc for String (#5726) Treats: #ljust #rjust #center #partition #rpartition Notes: Merged-By: BurdetteLamar commit 8db4f25bf4327f169902afd9ea8f4b03b65656f0 Author: Benoit Daloze AuthorDate: 2022-03-29 00:47:04 +0900 Commit: Benoit Daloze CommitDate: 2022-03-29 00:47:04 +0900 Update to ruby/spec@aaf998f commit ae650f0372e10cea4d695769b1fcdc23a76fdf17 Author: Peter Zhu AuthorDate: 2022-03-28 23:02:45 +0900 Commit: Peter Zhu CommitDate: 2022-03-28 23:02:45 +0900 Remove unneeded function declarations in gc.c commit 035b75c8f4097a48cde3cebc5db5e2efddc21546 Author: Nobuyoshi Nakada AuthorDate: 2022-03-28 17:28:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-28 17:28:01 +0900 Update zlib version to 1.2.12 commit 5568cd5a555f8318817c02e26a892826fe83bb7c Author: Nobuyoshi Nakada AuthorDate: 2022-03-28 17:02:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-28 17:02:02 +0900 Fix a missing comma commit 152bb3c0b4ccfd9d335f0b3d6a349b9566c6da9c Author: Nobuyoshi Nakada AuthorDate: 2022-03-28 16:56:40 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-28 17:01:28 +0900 Use m4 comments outside macros in m4 files commit 2cb3efffcf4e000c35d5b43574bfdecdc8a12e37 Author: Nobuyoshi Nakada AuthorDate: 2022-03-28 16:56:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-28 16:56:15 +0900 Extract RUBY_REQUIRE_FUNCS commit 282baa694320bbe385693902dfde0bdf93a532b8 Author: Nobuyoshi Nakada AuthorDate: 2022-03-28 15:03:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-28 15:03:41 +0900 [DOC] Move the entry for [Feature #18571] commit c3555e3da4146068b0fede6af26212637ac2cd1d Author: Hiroshi SHIBATA AuthorDate: 2022-03-28 10:43:10 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-28 10:43:10 +0900 Added entry of Psych changes for #18571 commit d52cf1013f974ed00502caac624e8094b777385d Author: Burdette Lamar AuthorDate: 2022-03-28 04:45:14 +0900 Commit: GitHub CommitDate: 2022-03-28 04:45:14 +0900 [DOC] Enhanced RDoc for String (#5724) Treats: #scan #hex #oct #crypt #ord #sum Notes: Merged-By: BurdetteLamar commit ca85f16a7dc50145a61998c5caed2d49ef48b73c Author: Yusuke Endoh AuthorDate: 2022-03-25 17:33:30 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-27 19:34:07 +0900 ext/psych/extconf.rb: Fail when libyaml is unavailable When libyaml is not installed, make fails with the following cryptic message: ``` gmake[2]: Entering directory '/home/chkbuild/chkbuild-crossruby/tmp/build/20220325T045825Z/ruby/ext/psych' gmake[2]: *** No rule to make target 'yaml/yaml.h', needed by 'psych.o'. Stop. gmake[2]: Leaving directory '/home/chkbuild/chkbuild-crossruby/tmp/build/20220325T045825Z/ruby/ext/psych' ``` I think it should give up building psych with a clear message. Notes: Merged: https://github.com/ruby/ruby/pull/5713 commit 1b0f05168d802c92b1b5f870954cf503dad6e3b1 Author: Nobuyoshi Nakada AuthorDate: 2022-03-27 11:24:06 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-27 11:24:06 +0900 [DOC] Fix references to unary operator commit e699e2d9bff14e3de1323d8d263cd3d04f4d9128 Author: Burdette Lamar AuthorDate: 2022-03-27 02:42:44 +0900 Commit: GitHub CommitDate: 2022-03-27 02:42:44 +0900 Enhanced RDoc for String (#5723) Treats: #lstrip #lstrip! #rstrip #rstrip! #strip #strip! Adds section Whitespace in Strings. Notes: Merged-By: BurdetteLamar commit 300f4677c93fb7ce312bba27e50b0af51ce8ba2e Author: Nobuyoshi Nakada AuthorDate: 2022-03-26 21:07:06 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-26 21:13:16 +0900 [DOC] Use simple references to operator methods Method references is not only able to be marked up as code, also reflects `--show-hash` option. The bug that prevented the old rdoc from correctly parsing these methods was fixed last month. commit 4acc757d04234d0b128429c152a1ccd96a817cf3 Author: Hiroshi SHIBATA AuthorDate: 2022-03-26 07:37:39 +0900 Commit: git[bot] CommitDate: 2022-03-26 07:49:52 +0900 [ruby/psych] Added condition for macOS homebrew https://github.com/ruby/psych/commit/a876de5a82 Co-authored-by: David Rodríguez commit f79765abe8dc3eb0a58c5a9dd7e91922e4aca1fa Author: Jeremy Evans AuthorDate: 2022-03-26 06:33:24 +0900 Commit: Jeremy Evans CommitDate: 2022-03-26 06:33:24 +0900 Update NEWS for {Kernel,TracePoint}#binding change commit 7f93b7dc88b25328dadbc4637a03d5d7bb3195d1 Author: Burdette Lamar AuthorDate: 2022-03-26 05:43:46 +0900 Commit: GitHub CommitDate: 2022-03-26 05:43:46 +0900 [DOC] Fix formatting for What's Here in IO (#5719) * Fix formatting for What's Here in IO * Repair formatting in What's Heres in numeric.c * Fix formatting for What's Here in IO Notes: Merged-By: BurdetteLamar commit 1a002d9ade6e2c78650bbf1894ad7c4138bc808d Author: Burdette Lamar AuthorDate: 2022-03-26 03:48:21 +0900 Commit: GitHub CommitDate: 2022-03-26 03:48:21 +0900 Fix formatting errors in What's Here for Array, Hash, ENV (#5718) Notes: Merged-By: BurdetteLamar commit d0b7df81535a0201a17adc74d6731253cd70689e Author: Burdette Lamar AuthorDate: 2022-03-26 02:16:37 +0900 Commit: GitHub CommitDate: 2022-03-26 02:16:37 +0900 Fix formatting of What's Here for File (#5717) Notes: Merged-By: BurdetteLamar commit f918f6e4e74541a184a15762a8593fb3f1b9614d Author: Burdette Lamar AuthorDate: 2022-03-26 00:52:06 +0900 Commit: GitHub CommitDate: 2022-03-26 00:52:06 +0900 [DOC] Repair format and links in What's Here sections (#5711) * Repair format and links in What's Here for Comparable and Array * Repair format for What's Here in enum.c Notes: Merged-By: BurdetteLamar commit 69967ee64eac9ce65b83533a566d69d12a6046d0 Author: Nobuyoshi Nakada AuthorDate: 2022-03-25 20:29:09 +0900 Commit: GitHub CommitDate: 2022-03-25 20:29:09 +0900 Revert "Finer-grained inline constant cache invalidation" This reverts commits for [Feature #18589]: * 8008fb7352abc6fba433b99bf20763cf0d4adb38 "Update formatting per feedback" * 8f6eaca2e19828e92ecdb28b0fe693d606a03f96 "Delete ID from constant cache table if it becomes empty on ISEQ free" * 629908586b4bead1103267652f8b96b1083573a8 "Finer-grained inline constant cache invalidation" MSWin builds on AppVeyor have been crashing since the merger. Notes: Merged: https://github.com/ruby/ruby/pull/5715 Merged-By: nobu commit 7ee26740e41f99d3da37df36b956237fbf36868e Author: Hiroshi SHIBATA AuthorDate: 2022-03-25 20:12:43 +0900 Commit: git[bot] CommitDate: 2022-03-25 20:27:58 +0900 [ruby/readline-ext] Removed the duplicated dependencies https://github.com/ruby/readline-ext/commit/324d324427 commit 033d979640ba7b2b62739a8f93e9b4eb3a88045a Author: Hiroshi SHIBATA AuthorDate: 2022-03-24 18:01:25 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-25 09:53:07 +0900 Disabled cross compile for unknown errors with psych build Notes: Merged: https://github.com/ruby/ruby/pull/5693 commit 0292a34c9c7741ab1fd4d174a6ff5ff04d42583a Author: Hiroshi SHIBATA AuthorDate: 2022-03-24 14:38:10 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-25 09:53:07 +0900 Removed libyaml object files from depends Notes: Merged: https://github.com/ruby/ruby/pull/5693 commit bfdceab31305f81579d514ab8c7982229d3ced45 Author: Hiroshi SHIBATA AuthorDate: 2022-03-23 20:24:57 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-25 09:53:07 +0900 Try to remove yaml sources from depend Notes: Merged: https://github.com/ruby/ruby/pull/5693 commit 829754b32959672468d43ec723b8671d7fff5041 Author: Hiroshi SHIBATA AuthorDate: 2022-03-23 17:21:21 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-25 09:53:07 +0900 Added libyaml-dev into BASERUBY check Notes: Merged: https://github.com/ruby/ruby/pull/5693 commit 8e3fbf943236aa3c78c8320f8ab11944e1c861de Author: Hiroshi SHIBATA AuthorDate: 2022-03-23 17:06:15 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-25 09:53:07 +0900 Merge psych master: Removed the bundled libyaml Notes: Merged: https://github.com/ruby/ruby/pull/5693 commit 465edb96f08e9405b861559c3f7cea3691be5a77 Author: Burdette Lamar AuthorDate: 2022-03-25 09:40:58 +0900 Commit: GitHub CommitDate: 2022-03-25 09:40:58 +0900 [DOC] Enhanced RDoc for String (#5707) Treated: #chomp #chomp! #chop #chop! Notes: Merged-By: BurdetteLamar commit 343ea9967e4a6b279eed6bd8e81ad0bdc747f254 Author: Jeremy Evans AuthorDate: 2022-02-18 03:24:01 +0900 Commit: Jeremy Evans CommitDate: 2022-03-25 04:31:07 +0900 Raise RuntimeError if Kernel#binding is called from a non-Ruby frame Check whether the current or previous frame is a Ruby frame in call_trace_func before attempting to create a binding for the frame. Fixes [Bug #18487] Co-authored-by: Alan Wu Notes: Merged: https://github.com/ruby/ruby/pull/5567 commit 8008fb7352abc6fba433b99bf20763cf0d4adb38 Author: Kevin Newton AuthorDate: 2022-03-18 01:38:43 +0900 Commit: Aaron Patterson CommitDate: 2022-03-25 01:14:38 +0900 Update formatting per feedback Co-authored-by: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/5433 commit 8f6eaca2e19828e92ecdb28b0fe693d606a03f96 Author: Kevin Newton AuthorDate: 2022-03-10 11:21:21 +0900 Commit: Aaron Patterson CommitDate: 2022-03-25 01:14:38 +0900 Delete ID from constant cache table if it becomes empty on ISEQ free Co-authored-by: John Hawthorn Notes: Merged: https://github.com/ruby/ruby/pull/5433 commit 629908586b4bead1103267652f8b96b1083573a8 Author: Kevin Newton AuthorDate: 2021-11-25 00:31:23 +0900 Commit: Aaron Patterson CommitDate: 2022-03-25 01:14:38 +0900 Finer-grained inline constant cache invalidation Current behavior - caches depend on a global counter. All constant mutations cause caches to be invalidated. ```ruby class A B = 1 end def foo A::B # inline cache depends on global counter end foo # populate inline cache foo # hit inline cache C = 1 # global counter increments, all caches are invalidated foo # misses inline cache due to `C = 1` ``` Proposed behavior - caches depend on name components. Only constant mutations with corresponding names will invalidate the cache. ```ruby class A B = 1 end def foo A::B # inline cache depends constants named "A" and "B" end foo # populate inline cache foo # hit inline cache C = 1 # caches that depend on the name "C" are invalidated foo # hits inline cache because IC only depends on "A" and "B" ``` Examples of breaking the new cache: ```ruby module C # Breaks `foo` cache because "A" constant is set and the cache in foo depends # on "A" and "B" class A; end end B = 1 ``` We expect the new cache scheme to be invalidated less often because names aren't frequently reused. With the cache being invalidated less, we can rely on its stability more to keep our constant references fast and reduce the need to throw away generated code in YJIT. Notes: Merged: https://github.com/ruby/ruby/pull/5433 commit 5f10bd634fb6ae8f74a4ea730176233b0ca96954 Author: Peter Zhu AuthorDate: 2022-03-24 04:19:48 +0900 Commit: Peter Zhu CommitDate: 2022-03-24 23:03:51 +0900 Add ISEQ_BODY macro Use ISEQ_BODY macro to get the rb_iseq_constant_body of the ISeq. Using this macro will make it easier for us to change the allocation strategy of rb_iseq_constant_body when using Variable Width Allocation. Notes: Merged: https://github.com/ruby/ruby/pull/5698 commit 4c4a1e2035e08a627e71efd41d66549f233840dc Author: Marc-Andre Lafortune AuthorDate: 2022-03-24 21:38:11 +0900 Commit: git[bot] CommitDate: 2022-03-24 21:38:26 +0900 [ruby/ostruct] v0.5.4 https://github.com/ruby/ostruct/commit/fe19de4644 commit ad5754162bddfd0ce2f11bd7fc7fce90ba6bf7ed Author: Marc-Andre Lafortune AuthorDate: 2022-01-30 08:13:45 +0900 Commit: git[bot] CommitDate: 2022-03-24 21:37:14 +0900 [ruby/ostruct] Avoid aliasing `block_given?` for JRuby [Fixes https://github.com/ruby/ostruct/pull/40] https://github.com/ruby/ostruct/commit/14d04ff694 commit 2ec82dd361dff18b6899ef47d9b9ab4f71f94432 Author: Hiroshi SHIBATA AuthorDate: 2022-03-24 20:31:57 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-24 20:31:57 +0900 Added dependabot configuration for actions dependencies commit 39606a774e2bbafd30dae9c4be1b6baf8b85b9a0 Author: David Rodríguez AuthorDate: 2022-03-23 23:19:02 +0900 Commit: git[bot] CommitDate: 2022-03-24 20:22:00 +0900 [rubygems/rubygems] Maybe this is now fixed https://github.com/rubygems/rubygems/commit/d9c442e54c commit e6c1db1d8a95d3eb52759414660d005a6d109cda Author: Nobuyoshi Nakada AuthorDate: 2022-03-24 19:08:18 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-24 19:08:43 +0900 [DOC] Refine flip-flop commit 8dc357fa94781a5bb5cd11ba390927704284024c Author: Yusuke Endoh AuthorDate: 2022-03-24 12:04:10 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-24 13:23:24 +0900 Add Yuta Saito (katei) as the platform maintainer of WebAssembly/WASI Notes: Merged: https://github.com/ruby/ruby/pull/5702 commit 1bb9e42fa5e4ea1b87ae35cb7de2baef5e1b15f1 Author: Nobuyoshi Nakada AuthorDate: 2022-03-19 22:44:28 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-24 13:16:13 +0900 extlibs.rb: Add fallback `Colorize` To get rid of an unnecessary dependency for the case using in other repositories. Notes: Merged: https://github.com/ruby/ruby/pull/5701 commit 9ed6875f9310be737ceca9b3034bbb34f1498068 Author: Nobuyoshi Nakada AuthorDate: 2022-03-19 22:42:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-24 13:16:13 +0900 extlibs.rb: Enclose `Vars` in `ExtLibs` class To get rid of an unnecessary top-level constant for the case using as a library. Notes: Merged: https://github.com/ruby/ruby/pull/5701 commit 247f8ecfa441b120ad8cb43fa1f3a96145814cd1 Author: Nobuyoshi Nakada AuthorDate: 2022-03-18 22:11:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-24 13:16:13 +0900 extlibs.rb: Extract ExtLibs#process For the case using this script as a library. - `ExtLibs#process` reads and processes an extlibs file. - `ExtLibs#process_under` processes all extlibs files under the given directory. - `Extlibs.run` parses `ARGV` and lets an instance process the directories. Notes: Merged: https://github.com/ruby/ruby/pull/5701 commit 9112cf4ae7f7ea8ab33c282aa02eec812421aeab Author: Yusuke Endoh AuthorDate: 2022-03-24 01:57:34 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-24 09:47:22 +0900 regint.h: Reduce the frequency of rb_thread_check_ints edc8576a65b7082597d45a694434261ec3ac0d9e checks interrupt at every backtrack, which brought significant overhead. This change makes the check only once every 128 backtracks. Notes: Merged: https://github.com/ruby/ruby/pull/5697 commit 1357b14750275d2f2d13896688064e1a243007dd Author: Nobuyoshi Nakada AuthorDate: 2022-03-24 08:59:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-24 08:59:24 +0900 Now all extension libraries must consider the ABI header commit cccfd6535065e3b57d84257782f9d3b1ff5bd77c Author: Nobuyoshi Nakada AuthorDate: 2022-03-24 08:34:57 +0900 Commit: GitHub CommitDate: 2022-03-24 08:34:57 +0900 [DOC] Remove mis-synced bundler directory commit d9dd88a686ee45f1200756f9e0b01fab9d3acdc5 Author: David Rodríguez AuthorDate: 2022-03-24 04:52:19 +0900 Commit: git[bot] CommitDate: 2022-03-24 07:34:29 +0900 [rubygems/rubygems] Avoid crash in test teardown If an exception happens during test `setup` method, the `teardown` method will still be run for cleaning up, but if some other errors occurs then, it will hide the original error. This is happening sometimes in CI where restoring original gem hooks is failing because the error in `setup` happened before the variable holding the original hooks was initialized. This commit moves initialization of `@orig_hooks` to the beginning of the `setup` method to avoid this issue. https://github.com/rubygems/rubygems/commit/8524d2b74d commit 13481c1ec93088c45ac448dda6a867f43ad798bd Author: David Rodríguez AuthorDate: 2022-03-14 20:25:02 +0900 Commit: git[bot] CommitDate: 2022-03-24 05:32:06 +0900 [rubygems/rubygems] Improve RDoc setup Completely exclude the full bundler folder. The actual Bundler docs are excluded anyways by ruby-core (by bundler/lib/bundler/.document, bundler/lib/bundler/man/.document), I guess because bundler docs are not in RDoc format? Running RDoc in the repo root before these changes takes about 5 minutes on my machine, while after these changes takes about 15 seconds. https://github.com/rubygems/rubygems/commit/8b1802447a commit 8f1c69f27ce6b3f5ed1c1cf8d2aa62aa9701d636 Author: Jeremy Evans AuthorDate: 2022-03-23 04:45:51 +0900 Commit: Jeremy Evans CommitDate: 2022-03-23 23:55:49 +0900 Raise ArgumentError when calling Enumberable#inject without block or arguments Previously, this would work as expected if the enumerable contained 0 or 1 element, and would raise LocalJumpError otherwise. That inconsistent behavior is likely to lead to bugs. Fixes [Bug #18635] Notes: Merged: https://github.com/ruby/ruby/pull/5690 commit d32fa986c3631fddcb256dbd39d10b358fb40ead Author: David Rodríguez AuthorDate: 2022-03-22 23:59:08 +0900 Commit: git[bot] CommitDate: 2022-03-23 23:31:05 +0900 [rubygems/rubygems] Make `rescue` clause more specific This is hiding a real bundler issue as a "network error". It's more helpful to get a proper bug report, with stack trace and so on. So stop re-raising errors when evaluating unmarshaled responses as network errors, and only raise Marshal errors when the Marshal format is invalid, not whenever marshalled gemspecs can't be loaded because that may hide actual client errors, like missing `YAML` constants. https://github.com/rubygems/rubygems/commit/05ea907e1c commit 0140e6c41e4669e157c5a99b9d4b5b0fa153359b Author: Burdette Lamar AuthorDate: 2022-03-23 04:51:05 +0900 Commit: GitHub CommitDate: 2022-03-23 04:51:05 +0900 [DOC] Enhanced RDoc for String (#5685) Treats: #chars #codepoints #each_char #each_codepoint #each_grapheme_cluster #grapheme_clusters Also, corrects a passage in #unicode_normalize that mentioned module UnicodeNormalize, whose doc (:nodoc:, actually) says not to mention it. Notes: Merged-By: BurdetteLamar commit 26aff37466fa3226122c65f49f2b7663e6b2551b Author: Nobuyoshi Nakada AuthorDate: 2022-03-23 00:58:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-23 00:58:46 +0900 Need to reconfigure and rebuild everything when abi.h changed commit 1ff174bfd17f80433f2cb9888eafd1c297efd2a5 Author: Jun Aruga AuthorDate: 2022-03-21 23:36:51 +0900 Commit: git[bot] CommitDate: 2022-03-23 00:01:17 +0900 [rubygems/rubygems] Fix a test for `bin/bundle update --bundler` to pass on ruby/ruby. Consider the case that the latest Bundler version on RubyGems is higher than the `system_bundler_version` (= `Bundler::VERSION`) in `make test-bundler` on ruby/ruby. See . https://github.com/rubygems/rubygems/commit/bfa2f72cfa commit a51f30c6712798fc07e57f692d0d0e5ccc59acf1 Author: Peter Zhu AuthorDate: 2022-03-15 22:34:07 +0900 Commit: Peter Zhu CommitDate: 2022-03-22 22:42:39 +0900 [Feature #18634] Implement Arrays on Variable Width Allocation This commit implements arrays on Variable Width Allocation. This allows longer arrays to be embedded (i.e. contents directly follow the object header) which improves performance through better cache locality. Notes: Merged: https://github.com/ruby/ruby/pull/5660 commit c129b6119dfb8d53521b986465c3a85e08d874fe Author: Burdette Lamar AuthorDate: 2022-03-22 04:58:00 +0900 Commit: GitHub CommitDate: 2022-03-22 04:58:00 +0900 [DOC] Use RDoc inclusions in string.c (#5683) As @peterzhu2118 and @duerst have pointed out, putting string method's RDoc into doc/ (which allows non-ASCII in examples) makes the "click to toggle source" feature not work for that method. This PR moves the primary method doc back into string.c, then includes RDoc from doc/string/*.rdoc, and also removes doc/string.rdoc. The affected methods are: ::new #bytes #each_byte #each_line #split The call-seq is in string.c because it works there; it did not work when the call-seq is in doc/string/*.rdoc. This PR also updates the relevant guidance in doc/documentation_guide.rdoc. Notes: Merged-By: BurdetteLamar commit 1fd1f7bbfc5603cdcfa98363a9ec9e106705a0a3 Author: Benoit Daloze AuthorDate: 2022-03-22 01:40:13 +0900 Commit: Benoit Daloze CommitDate: 2022-03-22 01:40:42 +0900 Fix Markdown syntax in spec/README.md commit 9f828188335a32906ac1e60bce7ccb6857d48a38 Author: Nobuyoshi Nakada AuthorDate: 2022-03-22 01:37:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-22 01:37:34 +0900 [DOC] Move old NEWS files to a separate directory commit 92ef73a91833aa006d7a99886712f7583af779ec Author: Nobuyoshi Nakada AuthorDate: 2022-03-22 01:13:06 +0900 Commit: git[bot] CommitDate: 2022-03-22 01:32:13 +0900 [ruby/rdoc] Expand the enclosing tree of the current file https://github.com/ruby/rdoc/commit/f9f90ef2ff commit dafe5c1323f20c04d8378ff003af2c04adb379c9 Author: Nobuyoshi Nakada AuthorDate: 2022-03-13 21:16:43 +0900 Commit: git[bot] CommitDate: 2022-03-22 01:32:12 +0900 [ruby/rdoc] Fold files in the page directory https://github.com/ruby/rdoc/commit/b7b4cdab6c commit 034c09776de4574482f78cd6b30001afef742964 Author: Nobuyoshi Nakada AuthorDate: 2022-03-22 01:00:54 +0900 Commit: git[bot] CommitDate: 2022-03-22 01:32:11 +0900 [ruby/rdoc] Add test_generate_page https://github.com/ruby/rdoc/commit/c870284163 commit 20ad09e560a4bd124c1884c066dee02c79bb95ae Author: Nobuyoshi Nakada AuthorDate: 2022-03-20 15:24:22 +0900 Commit: git[bot] CommitDate: 2022-03-20 15:38:28 +0900 [ruby/rdoc] Use the custom style `details summary` only in `nav-section` https://github.com/ruby/rdoc/commit/7736d3a89c commit 6946263a2994257c6240e52a365700dc573c7ed4 Author: Nobuyoshi Nakada AuthorDate: 2022-03-20 14:26:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-20 14:26:20 +0900 [DOC] make internally used classes/methods nodoc Empty class documents are generated even with `:stopdoc:`. commit fafa40997e83c1215becf00d546177385b7e4bef Author: Nobuyoshi Nakada AuthorDate: 2022-03-19 14:33:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-19 14:33:04 +0900 Make a dedecated assertion to clarify failed assertions commit d52f41b765b5992ee562cda6bd32fdd8f54b0091 Author: Burdette Lamar AuthorDate: 2022-03-19 07:17:00 +0900 Commit: GitHub CommitDate: 2022-03-19 07:17:00 +0900 [DOC] Enhanced RDoc for String (#5675) Treats: #split #each_line #lines #each_byte #bytes Notes: Merged-By: BurdetteLamar commit 97426e15d721119738a548ecfa7232b1d027cd34 Author: Peter Zhu AuthorDate: 2022-03-17 04:46:40 +0900 Commit: Peter Zhu CommitDate: 2022-03-18 22:19:11 +0900 [Bug #18627] Fix crash when including module During lazy sweeping, the iclass could be a dead object that has not yet been swept. However, the chain of superclasses of the iclass could already have been swept (and become a new object), which would cause a crash when trying to read the object. Notes: Merged: https://github.com/ruby/ruby/pull/5671 commit 634e0a97eb82ab259c7f7a35d0486baebe77df0f Author: Jeremy Evans AuthorDate: 2022-03-18 12:34:13 +0900 Commit: Jeremy Evans CommitDate: 2022-03-18 12:34:13 +0900 Encourage arity argument in Proc#curry documentation for procs with variable arguments This uses similar language to that used in Method#curry. commit 1107839a7fed31339fc947995b7b45b8eaf4041b Author: Shugo Maeda AuthorDate: 2022-02-22 10:41:56 +0900 Commit: Shugo Maeda CommitDate: 2022-03-18 11:51:03 +0900 Add String#bytesplice Notes: Merged: https://github.com/ruby/ruby/pull/5584 commit b8e72bd2e96c1ff9b25bea848abdfd0494c40b19 Author: John Hawthorn AuthorDate: 2022-03-18 03:56:00 +0900 Commit: John Hawthorn CommitDate: 2022-03-18 03:56:49 +0900 Revert "Faster rb_class_superclass" This reverts commit 29b68b89a0c0ea7de46c058fab746550398151f0. Notes: Merged: https://github.com/ruby/ruby/pull/5678 commit b6804d62f822237e136e698e006c913df9990ec2 Author: Jeremy Evans AuthorDate: 2019-08-28 10:38:48 +0900 Commit: Jeremy Evans CommitDate: 2022-03-18 03:52:02 +0900 Make Proc#parameters support lambda keyword for returning parameters as if lambda This makes it easier to use Proc#parameters to build wrappers. Implements [Feature #15357] Notes: Merged: https://github.com/ruby/ruby/pull/5677 commit 29b68b89a0c0ea7de46c058fab746550398151f0 Author: John Hawthorn AuthorDate: 2022-03-05 16:31:37 +0900 Commit: John Hawthorn CommitDate: 2022-03-18 03:48:39 +0900 Faster rb_class_superclass This uses the RCLASS_SUPERCLASSES array to quickly find the next SUPERCLASS of klass which is a T_CLASS. Notes: Merged: https://github.com/ruby/ruby/pull/5662 commit f69a969544d5a3af5c9454aabd953517266ad150 Author: Nobuyoshi Nakada AuthorDate: 2022-03-16 18:41:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-18 00:42:15 +0900 Fix potential memory leak at fiber pool Do not "allocate then wrap". It leaks the allocated memory if failed to create the wrapper. Notes: Merged: https://github.com/ruby/ruby/pull/5668 commit cdf25cad6bae6173eb3d32e5c41f22ccad8f5fa9 Author: Nobuyoshi Nakada AuthorDate: 2022-03-16 18:41:00 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-18 00:42:15 +0900 Fix compilation error with `RB_EXPERIMENTAL_FIBER_POOL` Notes: Merged: https://github.com/ruby/ruby/pull/5668 commit 4fdb10e65e3e32dad99a8a8efecc04bf7c85f024 Author: Nobuyoshi Nakada AuthorDate: 2022-03-18 00:35:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-18 00:35:02 +0900 A positional Hash is not keyword arguments [Bug #18632] Notes: Merged: https://github.com/ruby/ruby/pull/5676 commit e660b934b98943826f888f2b73f773c6411cd199 Author: Nobuyoshi Nakada AuthorDate: 2022-03-17 18:54:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-17 20:53:41 +0900 A positional Hash is not keyword arguments [Bug #18632] commit e9553a8cac633067e0da08d78e2200944d33bfdd Author: Yuta Saito AuthorDate: 2022-02-28 12:03:55 +0900 Commit: Yuta Saito CommitDate: 2022-03-17 17:44:41 +0900 spec: skip specs where set TZ environment variable for WASI WASI doesn't respect TZ env var for now Notes: Merged: https://github.com/ruby/ruby/pull/5673 commit 7023b3d394e111be8911e364ac59e03ca1d8e13f Author: Yuta Saito AuthorDate: 2022-02-28 11:57:40 +0900 Commit: Yuta Saito CommitDate: 2022-03-17 17:33:12 +0900 spec: disable a part of Kernel.open spec where spawns a process for WASI WASI doesn't provide a way to spawn a new process Notes: Merged: https://github.com/ruby/ruby/pull/5672 commit fadc7a150c90ad44dee90985b19e7961c0c370ee Author: Hiroshi SHIBATA AuthorDate: 2022-03-17 17:27:37 +0900 Commit: git[bot] CommitDate: 2022-03-17 17:28:33 +0900 [ruby/logger] bump version to 1.5.1 https://github.com/ruby/logger/commit/c4a4155ab7 commit acbc2bdd3030bef997919ce56c5b120cc5e91e8f Author: Nobuyoshi Nakada AuthorDate: 2022-03-17 15:07:18 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-17 15:07:18 +0900 Update the test for [Feature #18615] commit 329c89bb42bb44467588afc1d41d9f99172dfeb5 Author: Nobuyoshi Nakada AuthorDate: 2022-03-17 14:29:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-17 14:37:34 +0900 Make implicit function declaration error [Feature #18615] Enable `-Werror=implicit-function-declaration` by default for building C extensions for early failures. commit e499d326899d2e7eb7e53702ffb8f7b7aa38124a Author: Yuta Saito AuthorDate: 2022-02-28 11:55:54 +0900 Commit: Yuta Saito CommitDate: 2022-03-17 12:26:19 +0900 spec: disable part of require_relative spec where uses symlink for WASI cap-std, an underlying sandbox implementation of WASI in wasmtime, doesn't allow to create a symlink to an absolute path to enforce sandbox restriction. See also: https://github.com/bytecodealliance/cap-std/commit/257867a1d3a589b2561b00111ffa4db3bab0e8be Notes: Merged: https://github.com/ruby/ruby/pull/5656 commit d06f787e9fdeb5e3440977250aa8609827e00a52 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-03-17 10:11:38 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-03-17 10:11:38 +0900 Fix broken links of rdoc - `www.ruby-lang.org` links to `./www.ruby-lang.org` - `cgi['field_name']` links to `./'field_name'` commit 59a1a8185fb15a8aa727eae1c55ee7a7b6366daf Author: Burdette Lamar AuthorDate: 2022-03-17 04:45:48 +0900 Commit: GitHub CommitDate: 2022-03-17 04:45:48 +0900 [DOC] Enhanced RDoc for String#split (#5644) Notes: Merged-By: BurdetteLamar commit f38dcc78c4302bc7d5059d540507396bd9ea930e Author: Peter Zhu AuthorDate: 2022-03-17 04:18:34 +0900 Commit: Peter Zhu CommitDate: 2022-03-17 04:19:30 +0900 Assume that klass of dummy head is NULL klass of the dummy head of the subclass entries should always be NULL. commit 819f4f0e65b78c7a57b79a5e8c527adecc3c84d6 Author: Peter Zhu AuthorDate: 2022-03-17 04:10:11 +0900 Commit: Peter Zhu CommitDate: 2022-03-17 04:10:11 +0900 Always skip dummy head of subclass in rb_prepend_module The first node of the subclass linked list of always a dummy head, so it should be skipped. commit 6d8f396f37350b7aa9c85a097929f54a0939448b Author: Nobuyoshi Nakada AuthorDate: 2022-03-16 18:35:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-16 20:49:00 +0900 Suppress warnings by OpenSSL 3 Notes: Merged: https://github.com/ruby/ruby/pull/5667 commit b426de9e8e3622da79b4d7b75782d648de735c1a Author: Nobuyoshi Nakada AuthorDate: 2022-03-16 19:07:09 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-16 19:12:34 +0900 [DOC] Prefer local rdoc links - ensures exact same version - avoid generated URLs - no external access - concise commit 4d93b6299c99ca503f378d1e6af29f566fe7e8ab Author: Nobuyoshi Nakada AuthorDate: 2022-03-16 18:51:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-16 18:51:34 +0900 Initialize mutex for crypt(3) statically Assuming that all platforms, where only `crypt` is available but not `crypt_r`, are POSIX-base. commit f91ea2332420bcabfafbb2540238f4f8422bfb97 Author: Nobuyoshi Nakada AuthorDate: 2022-03-16 17:50:13 +0900 Commit: GitHub CommitDate: 2022-03-16 17:50:13 +0900 Honor if `_Bool` is available `AC_HEADER_STDBOOL` rejects stdbool.h in c2x, which is not conforming to C99. Notes: Merged: https://github.com/ruby/ruby/pull/5666 Merged-By: nobu commit 151208a19b09e29d45a79d92d73b67ec2ff692a6 Author: Martin Dürst AuthorDate: 2022-03-16 15:18:30 +0900 Commit: Martin Dürst CommitDate: 2022-03-16 15:18:30 +0900 Revert "Fix version check to use Emoji version for emoji-variation-sequences.txt" This reverts commit 48f1e8c5d85043e6adb8e93c94532daa201d42e9. commit e85547ae81e126a89a7bc9436af4a26c24c6f754 Author: Martin Dürst AuthorDate: 2022-03-16 15:17:30 +0900 Commit: Martin Dürst CommitDate: 2022-03-16 15:17:30 +0900 Revert "Allow `.0` version mismatch to pass the tests" This reverts commit fc6e4ce62bfa95b6a0d4d4898e1128c1fce4db8a. commit 6d603cfde1cadcc44b8b331459832f2675594702 Author: Martin Dürst AuthorDate: 2022-03-16 15:15:21 +0900 Commit: Martin Dürst CommitDate: 2022-03-16 15:15:44 +0900 add Unicode auxiliary files and Unicode UCD emoji files download for ALWAYS_UPDATE_UNICODE commit ebcbca96fb93c100da48f411515d9d8802d60b2b Author: Nobuyoshi Nakada AuthorDate: 2022-03-16 15:05:26 +0900 Commit: git[bot] CommitDate: 2022-03-16 15:05:41 +0900 [ruby/rdoc] Fix full name of known class Properly set the name of `File::Constants`, which is the only name with a namespace in `RDoc::KNOWN_CLASSES`, and fixes longstanding bug that `File::Constants` becomes `File::File::Constants`. When it is generated by `rb_file_const` in dir.c, `name` is set to the qualified name as same as `full_name`, and generated in the normal way in file.c later, already set `full_name` is cleared and `name` will be constructed from the enclosing namespace and the `name`. It will results in duplicated namespace, `File::File::Constants`. https://github.com/ruby/rdoc/commit/3a8d6df562 commit fc6e4ce62bfa95b6a0d4d4898e1128c1fce4db8a Author: Koichi Sasada AuthorDate: 2022-03-16 11:30:37 +0900 Commit: Koichi Sasada CommitDate: 2022-03-16 11:30:37 +0900 Allow `.0` version mismatch to pass the tests With `make update-unicode`, some tests failed with the following error due to header mismatch. * `RbConfig::CONFIG['UNICODE_EMOJI_VERSION']` => 14.0 * the header line is `# emoji-variation-sequences-14.0.0.txt` So the last `.0` is mismatch. This patch allows additional `.0` in the header line. Please revert this patch when a correct patach is merged. ``` 1) Error: TestEmojiBreaks#test_embedded_emoji: RuntimeError: File Name Mismatch: line: # emoji-variation-sequences-14.0.0.txt, expected filename: emoji-variation-sequences.txt /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:88:in `block (2 levels) in read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:82:in `foreach' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:82:in `block in read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:79:in `each' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:79:in `read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:111:in `all_tests' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:127:in `test_embedded_emoji' 2) Error: TestEmojiBreaks#test_mixed_emoji: RuntimeError: File Name Mismatch: line: # emoji-variation-sequences-14.0.0.txt, expected filename: emoji-variation-sequences.txt /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:88:in `block (2 levels) in read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:82:in `foreach' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:82:in `block in read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:79:in `each' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:79:in `read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:111:in `all_tests' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:139:in `test_mixed_emoji' 3) Error: TestEmojiBreaks#test_single_emoji: RuntimeError: File Name Mismatch: line: # emoji-variation-sequences-14.0.0.txt, expected filename: emoji-variation-sequences.txt /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:88:in `block (2 levels) in read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:82:in `foreach' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:82:in `block in read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:79:in `each' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:79:in `read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:111:in `all_tests' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:117:in `test_single_emoji' ``` commit 5d90c6010999ac11d25822f13f0b29d377f81755 Author: YO4 AuthorDate: 2022-03-16 10:28:35 +0900 Commit: GitHub CommitDate: 2022-03-16 10:28:35 +0900 Avoid console input behavior in windows 10 [Bug #18588] When ANSI versions of PeekConsoleInput read multibyte charactor partially, subsequent ReadFile returns wrong data on newer Windows 10 versions (probably since Windows Terminal introduced). To avoid this, use Unicode version of of PeekConsoleInput/ReadConsole. Notes: Merged: https://github.com/ruby/ruby/pull/5634 Merged-By: nobu commit 48f1e8c5d85043e6adb8e93c94532daa201d42e9 Author: Martin Dürst AuthorDate: 2022-03-15 18:55:16 +0900 Commit: Martin Dürst CommitDate: 2022-03-16 08:46:04 +0900 Fix version check to use Emoji version for emoji-variation-sequences.txt commit 56d9d78f14b73cb9f609558e6b760dde50872fb6 Author: Martin Dürst AuthorDate: 2022-03-15 17:17:15 +0900 Commit: Martin Dürst CommitDate: 2022-03-16 08:30:04 +0900 Remove Unicode 13.0.0 related files commit d76ba1c219d9ab2cb74b4b1de2e467e085150c1b Author: John Hawthorn AuthorDate: 2022-03-06 06:03:33 +0900 Commit: John Hawthorn CommitDate: 2022-03-16 00:49:53 +0900 Fast rb_class_inherited_p This uses the superclass table recently introduced to implement fast inheritance checking between classes (ex. Foo < Bar). This is almost identical to what we do in class_search_class_ancestor (as called by rb_obj_is_kind_of) except that we are checking both directions: ie. both whether Foo < Bar and whether Bar < Foo. Notes: Merged: https://github.com/ruby/ruby/pull/5628 commit 7aabdbe837fc58bf95c4633ad9c164440ad93876 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-03-15 09:41:20 +0900 Commit: git[bot] CommitDate: 2022-03-15 11:37:43 +0900 [rubygems/rubygems] Fix a typo https://github.com/rubygems/rubygems/commit/3e06a91435 commit 459bbdeb74224168af5c2b288f206485f7866872 Author: Yuta Saito AuthorDate: 2022-03-15 10:21:02 +0900 Commit: Yuta Saito CommitDate: 2022-03-15 10:25:12 +0900 wasm/README.md: add manual config.guess download and autoconf steps Autoconf distributed with Ubuntu 22.04 is very old and doesn't support WASI as an OS, so add instructions to download the latest config.guess, then run `./autogen.sh`. See also: https://github.com/ruby/chkbuild/commit/2297012efd6364f6fde45f54531b6fc0f0838ec9 Notes: Merged: https://github.com/ruby/ruby/pull/5659 commit f27770679fcca8e33e88c350012f94973340d009 Author: S-H-GAMELINKS AuthorDate: 2022-03-14 23:20:30 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-15 09:23:57 +0900 [DOC]Fix FreeBSD Bugzilla link Notes: Merged: https://github.com/ruby/ruby/pull/5658 commit b85457c710d597281c936d0ac062e542563798cd Author: Nobuyoshi Nakada AuthorDate: 2022-03-15 00:26:03 +0900 Commit: git[bot] CommitDate: 2022-03-15 08:40:35 +0900 [rubygems/rubygems] [DOC] Enable Gem::Package example Other code must not be between the doc and class definition. https://github.com/rubygems/rubygems/commit/366784aae5 commit 63b1633f869d6866ed70dbf80efc954d26127a04 Author: xtkoba <69125751+xtkoba@users.noreply.github.com> AuthorDate: 2021-05-09 09:18:52 +0900 Commit: git[bot] CommitDate: 2022-03-15 08:33:40 +0900 [ruby/win32ole] Get rid of potential undefined behavior See https://bugs.llvm.org/show_bug.cgi?id=50236 https://github.com/ruby/win32ole/commit/019ec2b3cb commit aa347cbe65031ff02a5b2de0f7a36e29d72b8008 Author: Nobuyoshi Nakada AuthorDate: 2022-03-14 19:07:02 +0900 Commit: git[bot] CommitDate: 2022-03-15 08:20:47 +0900 [ruby/win32ole] Rename toplevel WIN32OLE_* classes https://github.com/ruby/win32ole/commit/bc7deb6a6a commit 6a8bc90278ca39546a76c8a669f732ce3fc8d417 Author: David Rodríguez AuthorDate: 2022-03-15 02:45:35 +0900 Commit: git[bot] CommitDate: 2022-03-15 04:44:33 +0900 [rubygems/rubygems] Report Github Actions CI provider within user agent string See https://docs.github.com/es/actions/learn-github-actions/environment-variables#default-environment-variables. So that we can show stats about it at https://ecosystem.rubytogether.org https://github.com/rubygems/rubygems/commit/48d6dc68f8 commit 41d63d3130acae4f1ba139522062479cf4ce5381 Author: Nobuyoshi Nakada AuthorDate: 2022-03-13 00:51:47 +0900 Commit: git[bot] CommitDate: 2022-03-15 01:18:03 +0900 [rubygems/rubygems] Move `:stopdoc:` directive If this is at the top level, it stops the documentation of the entire module, but not only the part in this file. https://github.com/rubygems/rubygems/commit/34e8c1ee06 commit b1bcad5e3afa6f6f017c0d2378ab20f29c0d013a Author: Yuta Saito AuthorDate: 2022-02-25 17:17:47 +0900 Commit: Yuta Saito CommitDate: 2022-03-14 23:05:15 +0900 spec: skip '~' test for wasi due to lack of shell Notes: Merged: https://github.com/ruby/ruby/pull/5655 commit fe2e5c13f919eb0cdc3e5aa1e87e549d73169cb1 Author: Yuta Saito AuthorDate: 2022-02-21 18:09:49 +0900 Commit: Yuta Saito CommitDate: 2022-03-14 23:04:13 +0900 spec: skip ruby_exe tests for wasi due to lack of subprocess Notes: Merged: https://github.com/ruby/ruby/pull/5654 commit 412991268fe6afb84c8044acfcdd76c215af65be Author: Peter Zhu AuthorDate: 2022-03-14 22:44:50 +0900 Commit: Peter Zhu CommitDate: 2022-03-14 22:45:24 +0900 Assume that refcnt of shared root is non-negative The refcnt of a shared root array should always be non-negative. commit 45786667ec0b0c2af5bf2c2069246edaae2d7c30 Author: Peter Zhu AuthorDate: 2022-03-14 22:39:51 +0900 Commit: Peter Zhu CommitDate: 2022-03-14 22:45:18 +0900 Assume that shared_root exists in rb_ary_decrement_share All callers of rb_ary_decrement_share guarantee that shared_root is not 0. commit 7348db866a4120b701bf28918d6fcbd4d6f07121 Author: Ivo Anjo AuthorDate: 2022-03-14 18:42:33 +0900 Commit: Jean Boussier CommitDate: 2022-03-14 18:50:52 +0900 [DOC] Remove outdated note from WeakRef#initialize The note > Raises an ArgumentError if the given +orig+ is immutable, such as Symbol, > Integer, or Float. has not been true since #2313 (GH-2313, Feature #16035) when @casperisfine enabled storing non-finalizable objects in the underlying `ObjectSpace::WeakMap`. On Ruby 2.7+, `WeakRef.new(1) + 1` works fine and the result is the expected 2. Notes: Merged: https://github.com/ruby/ruby/pull/5657 commit e859a218fd9a71c521b62df9447ab3c7104eb71f Author: Nobuyoshi Nakada AuthorDate: 2022-03-14 15:01:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-14 15:01:20 +0900 [DOC] hide `UnicodeNormalize` in module index commit 0bf194fb33bf69a650a4b6c62cc5577c10b5f331 Author: Nobuyoshi Nakada AuthorDate: 2022-03-13 20:38:19 +0900 Commit: git[bot] CommitDate: 2022-03-14 14:48:13 +0900 [ruby/rdoc] Start with open when only one visible class/module https://github.com/ruby/rdoc/commit/6bb93001db commit 976431d9ed1a144675c24c4e8d510171cfd7c32c Author: Nobuyoshi Nakada AuthorDate: 2022-03-13 19:44:09 +0900 Commit: git[bot] CommitDate: 2022-03-14 14:48:12 +0900 [ruby/rdoc] Fold class and module index https://github.com/ruby/rdoc/commit/4c7c46fcc4 commit a884431624966824b9496daa1cfa0dc5e95fe118 Author: Nobuyoshi Nakada AuthorDate: 2022-03-14 14:27:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-14 14:44:46 +0900 [ruby/forwardable] Move `:stopdoc:` directive If this is at the top level, it stops the documentation of the entire module, but not only the part in this file. https://github.com/ruby/forwardable/commit/34cd2ac4a1 commit 8760b270ed63e6fd7a1b40ef7fa1699ab272beef Author: Nobuyoshi Nakada AuthorDate: 2022-03-14 14:34:16 +0900 Commit: git[bot] CommitDate: 2022-03-14 14:40:28 +0900 [ruby/irb] Move `:stopdoc:` directive If this is at the top level, it stops the documentation of the entire module, but not only the part in this file. https://github.com/ruby/irb/commit/86c41b06ad commit 3c59913a05ba73f1eeadc7fbff3f55185fef2713 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-03-14 08:55:45 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-03-14 08:57:06 +0900 Fix failures http://ci.rvm.jp/results/trunk-no-mjit@phosphorus-docker/3870646 ``` 1) Error: TestEmojiBreaks#test_single_emoji: RuntimeError: File Name Mismatch: line: # emoji-variation-sequences-14.0.0.txt, expected filename: emoji-variation-sequences.txt /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:84:in `block (2 levels) in read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:82:in `foreach' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:82:in `block in read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:79:in `each' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:79:in `read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:105:in `all_tests' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:111:in `test_single_emoji' 2) Error: TestEmojiBreaks#test_mixed_emoji: RuntimeError: File Name Mismatch: line: # emoji-variation-sequences-14.0.0.txt, expected filename: emoji-variation-sequences.txt /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:84:in `block (2 levels) in read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:82:in `foreach' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:82:in `block in read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:79:in `each' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:79:in `read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:105:in `all_tests' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:133:in `test_mixed_emoji' 3) Error: TestEmojiBreaks#test_embedded_emoji: RuntimeError: File Name Mismatch: line: # emoji-variation-sequences-14.0.0.txt, expected filename: emoji-variation-sequences.txt /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:84:in `block (2 levels) in read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:82:in `foreach' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:82:in `block in read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:79:in `each' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:79:in `read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:105:in `all_tests' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:121:in `test_embedded_emoji' make: *** [uncommon.mk:823: yes-test-all] Error 3 ``` commit 840bef0e2ce547ddabaf999911726632e62d1c0b Author: Paul Kuruvilla AuthorDate: 2022-03-14 02:25:28 +0900 Commit: git[bot] CommitDate: 2022-03-14 05:43:17 +0900 [rubygems/rubygems] Remove extra closing bracket in version warning https://github.com/rubygems/rubygems/commit/a3b9f19080 commit 1b571d0abf6070673320b11a30769bbe74d12e39 Author: Benoit Daloze AuthorDate: 2022-03-13 21:18:56 +0900 Commit: Benoit Daloze CommitDate: 2022-03-13 21:27:47 +0900 Fix guards for unicode versions specs commit 416c63c118e61287d0f2c7114dbc404a5e27a650 Author: Nobuyoshi Nakada AuthorDate: 2022-03-13 21:14:54 +0900 Commit: git[bot] CommitDate: 2022-03-13 21:15:08 +0900 [ruby/rdoc] Refine `pretty_print` https://github.com/ruby/rdoc/commit/acb91ea74a commit 2af8b04eca68a924fd2875e9c5e51240150d02a6 Author: Nobuyoshi Nakada AuthorDate: 2022-03-13 21:10:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-13 21:10:33 +0900 Fix conversion macro for `size_t` commit e081f333fe0c0fa7c1b5784e9472d1c81befb720 Author: Nobuyoshi Nakada AuthorDate: 2022-03-13 21:07:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-13 21:09:17 +0900 Fix experimental Fiber::Pool definition Toplevel `Pool` is too generic, and `struct fiber_pool` does not seem compatible with `rb_fiber_t`. commit 0bcc3bd6abd881cb3985a6cd776e94a8ebd5b6ff Author: Nobuyoshi Nakada AuthorDate: 2022-03-13 19:51:50 +0900 Commit: git[bot] CommitDate: 2022-03-13 19:56:42 +0900 [ruby/rdoc] Clean documents for backwards compatibility https://github.com/ruby/rdoc/commit/23e61a208e commit 45187a0fcddecc74dacc1881f2405a5ebe198081 Author: Martin Dürst AuthorDate: 2022-03-13 10:52:24 +0900 Commit: Martin Dürst CommitDate: 2022-03-13 10:52:24 +0900 comment out failing Unicode/Emoji version checks temporarily commit 8f59482f5d1f77542fe3c8e8434cb1dbbc764ecf Author: Martin Dürst AuthorDate: 2022-03-12 21:33:51 +0900 Commit: Martin Dürst CommitDate: 2022-03-13 09:19:52 +0900 add some tests for Unicode Version 14.0.0 commit 9b545b0caf2ccc89718ba02ff631d2a68b96a831 Author: Martin Dürst AuthorDate: 2022-03-11 17:18:42 +0900 Commit: Martin Dürst CommitDate: 2022-03-13 09:19:52 +0900 update specs to check for Unicode Version 14.0.0/Emoji Version 14.0 commit 2672502457523317268ac24704cf85df91e2cae6 Author: Martin Dürst AuthorDate: 2022-03-11 17:11:32 +0900 Commit: Martin Dürst CommitDate: 2022-03-13 09:19:52 +0900 mention Unicode Version 14.0.0 commit 8e1f3a96aecb3defc34556d75e3d2a0867416082 Author: Martin Dürst AuthorDate: 2022-03-11 16:48:26 +0900 Commit: Martin Dürst CommitDate: 2022-03-13 09:19:52 +0900 switch UNICODE_BETA back to NO commit 45e0711f29f9ce65cd34ad14e3af1546ccc7252e Author: Martin Dürst AuthorDate: 2021-12-09 16:41:09 +0900 Commit: Martin Dürst CommitDate: 2022-03-13 09:19:52 +0900 update Unicode Version to 14.0.0 and Emoji version to 14.0 commit 06594e713416fad35b6241fed802607682d7cea6 Author: Peter Zhu AuthorDate: 2022-03-13 02:15:04 +0900 Commit: Peter Zhu CommitDate: 2022-03-13 02:15:24 +0900 Fix crash on GC stress and RGENGC_CHECK_MODE=2 rb_ary_reset could leave the array in a bad state since it frees memory but does not unset any flags. This can cause a crash on GC stress. This commit changes rb_ary_reset to set the array as an empty embedded array. commit 83fabfccf5d45312325bab83de2cf62ea54fa020 Author: John Hawthorn AuthorDate: 2022-03-11 05:19:40 +0900 Commit: John Hawthorn CommitDate: 2022-03-12 03:36:19 +0900 Add test for protected methods on module included Notes: Merged: https://github.com/ruby/ruby/pull/5642 commit 4d8f76286beefbb8f7fba2479f6d0a0b4a47304c Author: John Hawthorn AuthorDate: 2022-02-19 16:05:23 +0900 Commit: John Hawthorn CommitDate: 2022-03-12 03:36:19 +0900 Fast object is iclass checks Calling rb_obj_is_kind_of with an ICLASS returns the same result as calling it with the ICLASS's original Module. Most of the time we encounter an ICLASS here checking the validity of a protected method or super call, which we expect to return true (or raise a slow exception anyways). We can take advantage of this by performing a fast class inheritance check on the ICLASS's "includer" in hopes that it returns true. If the includer class check returns false we still have to fallback to the full inheritance chain scan for the module's inclusion, but this should be less common. Notes: Merged: https://github.com/ruby/ruby/pull/5642 commit 9a4bddd76165b2848a6275d2a3bfd3166288e106 Author: Peter Zhu AuthorDate: 2022-03-12 03:16:29 +0900 Commit: Peter Zhu CommitDate: 2022-03-12 03:16:29 +0900 Add rb_ary_reset rb_ary_reset will free heap allocated arrays and unshare shared arrays. commit 09186f381f3ddadd6b9ffcd770255fe3bf175257 Author: Burdette Lamar AuthorDate: 2022-03-12 01:46:47 +0900 Commit: GitHub CommitDate: 2022-03-12 01:46:47 +0900 Adding guidance about characters in C-code doc (#5641) Showing how to do as @nobu does -- putting doc into doc/*.rdoc instead of in *.c. Notes: Merged-By: BurdetteLamar commit 42e5ec941489c11a180ed75c6348419c79aefff1 Author: Peter Zhu AuthorDate: 2022-03-12 01:45:14 +0900 Commit: Peter Zhu CommitDate: 2022-03-12 01:45:14 +0900 Refactor duplicate code in rb_array_replace In both cases in the if statement, we free heap allocated arrays and unshare shared arrays. commit 2e4516be26e126ec9e7528d1de0d4a0b7332f6dd Author: Masafumi Koba <473530+ybiquitous@users.noreply.github.com> AuthorDate: 2021-09-11 16:33:34 +0900 Commit: git[bot] CommitDate: 2022-03-11 17:38:13 +0900 [ruby/rdoc] Scrollable sidebar This change makes the sidebar scrollable via `position: sticky` and `overflow: auto`; See also https://github.com/ruby/rdoc/commit/4d52e24840 commit 49447f828b19319d83ed97260da8a9527fa83ce9 Author: Nobuyoshi Nakada AuthorDate: 2022-03-11 15:08:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-11 15:08:23 +0900 Move ruby.h in `#ifdef RUBY` block Must not depend on ruby specific files in Ruby unrelated cases. commit 82dea29073d50304b6029b15d07666994533d8d1 Author: John Hawthorn AuthorDate: 2022-03-11 04:06:29 +0900 Commit: John Hawthorn CommitDate: 2022-03-11 04:06:42 +0900 Revert "Fast object is iclass checks" This reverts commit 1b15756d24c11ed6bfddb5ae53402a071a20ea97. Notes: Merged: https://github.com/ruby/ruby/pull/5639 commit edc8576a65b7082597d45a694434261ec3ac0d9e Author: Jeremy Evans AuthorDate: 2021-10-13 04:15:15 +0900 Commit: Jeremy Evans CommitDate: 2022-03-11 04:06:33 +0900 Allow interrupting regexps that backtrack Fixes [Bug #14103] Co-authored-by: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/4960 commit 1b15756d24c11ed6bfddb5ae53402a071a20ea97 Author: John Hawthorn AuthorDate: 2022-02-19 16:05:23 +0900 Commit: John Hawthorn CommitDate: 2022-03-11 02:34:08 +0900 Fast object is iclass checks Calling rb_obj_is_kind_of with an ICLASS returns the same result as calling it with the ICLASS's original Module. Most of the time we encounter an ICLASS here checking the validity of a protected method or super call, which we expect to return true (or raise a slow exception anyways). We can take advantage of this by performing a fast class inheritance check on the ICLASS's "includer" in hopes that it returns true. If the includer class check returns false we still have to fallback to the full inheritance chain scan for the module's inclusion, but this should be less common. Notes: Merged: https://github.com/ruby/ruby/pull/5619 commit 67faea970857c292ae35dadd103287d4f4449a58 Author: Aaron Patterson AuthorDate: 2022-03-08 04:08:15 +0900 Commit: Aaron Patterson CommitDate: 2022-03-11 01:44:28 +0900 Small optimization for the opt_and instruction This change eagerly performs a bitwise and on the parameters. If both parameters are fixnums, then the result value should also be a fixnum. We can just test the bit on the result and return if it's a fixnum. Otherwise return Qundef. Notes: Merged: https://github.com/ruby/ruby/pull/5629 commit 0c6e24d102e894a7211a596e6aa95828b1cf4406 Author: Jeremy Evans AuthorDate: 2022-02-23 06:43:14 +0900 Commit: Jeremy Evans CommitDate: 2022-03-11 01:35:26 +0900 Fix visibility of alias of zsuper methods This was broken by 71c746379d5872e250d90ae45c585760afaf9516. Fixes [Bug #18600] Notes: Merged: https://github.com/ruby/ruby/pull/5592 commit bd1862330756b177ba189597b9de10f98de925e3 Author: Charles Oliver Nutter AuthorDate: 2022-03-10 22:57:32 +0900 Commit: git[bot] CommitDate: 2022-03-10 22:58:31 +0900 [ruby/io-wait] Update version to 0.2.2.pre1 for testing https://github.com/ruby/io-wait/commit/12e26f574e commit 0024a76ea0dc4e38935f12fe12804a06957eab1f Author: Hiroshi SHIBATA AuthorDate: 2022-03-10 13:35:21 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-10 13:35:21 +0900 Ignore pre-release for sync target on sync_default_gems commit 561dda99344536cb281b5a55c48856d3dae717c6 Author: Burdette Lamar AuthorDate: 2022-03-10 10:53:51 +0900 Commit: GitHub CommitDate: 2022-03-10 10:53:51 +0900 [DOC] Enhanced RDoc for String (#5635) Treats: #count #delete #delete! #squeeze #squeeze! Adds section "Multiple Character Selectors" to doc/character_selectors.rdoc. Co-authored-by: Peter Zhu Notes: Merged-By: BurdetteLamar commit 5f4e78423337662d0fc6cccf63a0fc8835715fae Author: Jeremy Evans AuthorDate: 2021-08-11 06:46:17 +0900 Commit: Jeremy Evans CommitDate: 2022-03-10 08:16:00 +0900 Avoid unnecessary conditional All frames should be either iseq frames or cfunc frames. Use a VM assert instead of a conditional to check for a cfunc frame if the current frame is not an iseq frame. Notes: Merged: https://github.com/ruby/ruby/pull/4732 commit 72c038a8f5cbddceefe1c4bd9bdc4592b9c095b9 Author: Burdette Lamar AuthorDate: 2022-03-09 23:42:12 +0900 Commit: GitHub CommitDate: 2022-03-09 23:42:12 +0900 [DOC] Enhanced RDoc for String (#5633) Treats: #tr (revised to link to "Character Selectors" document) #tr! #tr_s #tr_s! Also renames doc/character_selector.rdoc to match its title. Notes: Merged-By: BurdetteLamar commit f62f91313259539e8f0884a0ca99deb3ab8b87d3 Author: Peter Zhu AuthorDate: 2022-03-09 07:02:35 +0900 Commit: git[bot] CommitDate: 2022-03-09 23:38:45 +0900 [ruby/rdoc] Support crossref of methods with multiple arguments For example, consider the following markup: C1#m(a, b) Before this patch, it generated this HTML:

C1#m(a, b)

Which places the method arguments outside of the link. Now it generates this HTML: C1#m(a, b) https://github.com/ruby/rdoc/commit/05a2b2222b commit 77f3f8a1d4f45d06df6cfea2bac3a67867c19efb Author: Yuta Saito AuthorDate: 2022-03-07 14:44:57 +0900 Commit: Yuta Saito CommitDate: 2022-03-09 22:43:02 +0900 exts.mk.tmpl: propagate MINIRUBY to enc.mk even though invoking from exts.mk This is another attempt to fix out-of-src build with --with-static-linked-ext. The first attempt was 4f1888bda70981d9f5b1bf55ab692e0ce18e79f4 but reverted because it broke out-of-src build from pre-generated sources via `make dist`. This patch fixes the second trans C source gen, mentioned in the previous commit message, by passing MINIRUBY as well as when invoking from common.mk Notes: Merged: https://github.com/ruby/ruby/pull/5627 commit b068a53dc9f38e98141c8b43249c73289af557bb Author: Kazuhiro NISHIYAMA AuthorDate: 2022-03-09 15:15:11 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-03-09 15:15:11 +0900 [DOC] Fix default offset of String#byterindex commit 1d3563006065ceec14c3531b37bc2040eb6983ca Author: Burdette Lamar AuthorDate: 2022-03-09 07:27:36 +0900 Commit: GitHub CommitDate: 2022-03-09 07:27:36 +0900 [DOC] RDoc for character selectors (#5632) This file will be a link target for methods doc that cites character selectors (e.g., String#tr), It covers only the character selector; +replacement+ is discussed at String#tr (which will be revised and simplified); multiple selectors will be discussed at String#delete and String#count. Co-authored-by: Peter Zhu Notes: Merged-By: BurdetteLamar commit 1adc7aa630d43e04cf5e75bbbbcf48b72a6e6c45 Author: Hiroshi SHIBATA AuthorDate: 2022-03-08 21:08:46 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-08 21:08:46 +0900 Added release option to sync only released version of the default gems commit bfc697f1e26f1406c45ec7309ca0d4c0b5ecedd6 Author: Yusuke Endoh AuthorDate: 2022-03-08 17:40:02 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-08 17:40:02 +0900 test/io/console/test_io_console.rb: parens needed commit 17e09f033c4d3b786672ba16d2c5d935482a2fad Author: Yusuke Endoh AuthorDate: 2022-03-08 16:06:37 +0900 Commit: Yusuke Endoh CommitDate: 2022-03-08 16:06:37 +0900 Skip three tests on FreeBSD 13 Some tests that use signals frequently fail randomly on FreeBSD 13. Maybe something around signals has changed in FreeBSD 13. This change skips them tentatively. commit faff37da57ac2e760704945c9e1f946b850bdad8 Author: Burdette Lamar AuthorDate: 2022-03-08 03:58:29 +0900 Commit: GitHub CommitDate: 2022-03-08 03:58:29 +0900 [DOC] Enhanced RDoc for String #tr and #tr! (#5626) Notes: Merged-By: BurdetteLamar commit 943efa8ca6a5ac43e98265c0606a28d45103b393 Author: Alex Gittemeier AuthorDate: 2022-02-12 16:04:13 +0900 Commit: git[bot] CommitDate: 2022-03-08 03:40:30 +0900 [rubygems/rubygems] Add newline to validate_platforms! message when platform is missing When I run bundle install with BUNDLE_DEPLOYMENT=true in the environment on a different platform than I usually do development, I get the following output to the console (wrapped exactly as shown): Your bundle only supports platforms ["x86_64-darwin-19"] but your local platform is x86_64-linux. Add the current platform to the lockfile with `bundle lock --add-platform x86_64-linux` and try again. Because the way the message wraps, its not as simple as copying the suggested command to the clipboard because it contains a newline: $ bundle lock Writing lockfile to [...]/Gemfile.lock $ --add-platform x86_64-linux Adding a newline right before the command forces the command in the error message to be on the same line, which facilitates copy-pasting the command in the message. https://github.com/rubygems/rubygems/commit/4cf6989b11 commit c445963575a8572f6b0baf7135093c128adab3b9 Author: Peter Zhu AuthorDate: 2022-03-07 23:35:24 +0900 Commit: Peter Zhu CommitDate: 2022-03-07 23:37:49 +0900 Use rb_ary_unshare for shared array in rb_ary_replace rb_ary_unshare will perform FL_UNSET_SHARED and rb_ary_decrement_share. commit 9cbebdcb74b98a012be72c8cc6b64099312eb432 Author: Thierry Joyal AuthorDate: 2022-03-07 18:37:21 +0900 Commit: Jean Boussier CommitDate: 2022-03-07 21:02:01 +0900 [DOC] Fix documentation typo for Process#clock_gettime Fixes [Misc #18610] Notes: Merged: https://github.com/ruby/ruby/pull/5625 commit 9c531ca524506f9de7bc4643fd6d89e534abfa9f Author: Olle Jonsson AuthorDate: 2022-01-19 08:32:06 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-07 20:08:29 +0900 [ruby/ostruct] Drop unused directives from gemspec (https://github.com/ruby/ostruct/pull/39) This gem exposes no executables. https://github.com/ruby/ostruct/commit/a1242f7ebe commit 0adabdc53d117a244c64de8b78bfcf5e658d386e Author: Marc-Andre Lafortune AuthorDate: 2022-01-19 05:31:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-07 20:08:26 +0900 [ruby/ostruct] v0.5.3 https://github.com/ruby/ostruct/commit/322efd0e61 commit e1391bf96f03143387c500a168adb6fc9fc242c6 Author: Ladislav Gallay AuthorDate: 2022-01-18 22:54:52 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-03-07 20:08:22 +0900 [ruby/ostruct] Fix class and method as attribute names https://github.com/ruby/ostruct/commit/7258535073 commit 1dd2d2ce48d7ed0e16beb42ac923ccd069701958 Author: Burdette Lamar AuthorDate: 2022-03-07 20:04:16 +0900 Commit: GitHub CommitDate: 2022-03-07 20:04:16 +0900 [DOC] Change to guidance on lists in What's Here section (#5618) Currently, the guide says a "What's Here" section should have a labeled list for the methods. Such a list can render very differently in different browsers, and are often erratic in their indentation of continuation lines. Notes: Merged-By: BurdetteLamar commit 8ae09706f37f64fe32503c2d48e41adb95836254 Author: Brad Gessler AuthorDate: 2022-02-09 09:40:41 +0900 Commit: git[bot] CommitDate: 2022-03-07 07:03:35 +0900 [rubygems/rubygems] Update README.md.tt Reduce the number of steps required to install a gem from two steps to one by using `bundle add` https://github.com/rubygems/rubygems/commit/2c968420cd commit 156079a85d29a137521e6b911a39c25f35a960d2 Author: David Rodríguez AuthorDate: 2022-03-01 21:46:49 +0900 Commit: git[bot] CommitDate: 2022-03-06 22:17:00 +0900 [rubygems/rubygems] Make `--strict` flag of `update` and `outdated` commands consistent Previously they had slightly different behavior when combined with conservative updating flags. The correct behavior is the `--update-strict` option, so `--script` now does that, The `--update-strict` option is left there for now but I will deprecate it later. https://github.com/rubygems/rubygems/commit/ab42046229 commit 41a48535d1992a08b5b7e9fdb5ac0dcb488bd724 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-03-04 18:09:12 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-03-04 18:09:34 +0900 Remove gdbm related code from Travis CI The related extensions have been removed. Related: https://github.com/ruby/ruby/pull/4619 commit c757c4e054397142ffa1b3e8110e5f799cd7075f Author: Nobuyoshi Nakada AuthorDate: 2022-03-04 15:56:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-04 15:56:03 +0900 sitelibdir makes no sense in ruby itself commit 19f331f58823dc0ff90ba7806c46380dc4064fa3 Author: John Hawthorn AuthorDate: 2022-02-27 09:05:06 +0900 Commit: John Hawthorn CommitDate: 2022-03-04 04:23:27 +0900 Dedup superclass array in leaf sibling classes Previously, we would build a new `superclasses` array for each class, even though for all immediate subclasses of a class, the array is identical. This avoids duplicating the arrays on leaf classes (those without subclasses) by calculating and storing a "superclasses including self" array on a class when it's first inherited and sharing that among all superclasses. An additional trick used is that the "superclass array including self" is valid as "self"'s superclass array. It just has it's own class at the end. We can use this to avoid an extra pointer of storage and can use one bit of a flag to track that we've "upgraded" the array. Notes: Merged: https://github.com/ruby/ruby/pull/5604 commit 832252794eb3f9506a224d9368fb3f013558842a Author: Rogerio Bordignon AuthorDate: 2022-03-04 00:18:21 +0900 Commit: Jean Boussier CommitDate: 2022-03-04 03:18:36 +0900 Doc: fix documentation typo for Array#min Notes: Merged: https://github.com/ruby/ruby/pull/5621 commit 3b21818db1fac0c22f16364eab2d8cc0067abd63 Author: Benoit Daloze AuthorDate: 2022-03-03 22:43:14 +0900 Commit: Benoit Daloze CommitDate: 2022-03-03 22:43:14 +0900 Update to ruby/spec@82cd3a3 commit 1dc6bed0ca6ca379f1c4b2e9fc0dee72dbf1e205 Author: Benoit Daloze AuthorDate: 2022-03-03 22:43:11 +0900 Commit: Benoit Daloze CommitDate: 2022-03-03 22:43:11 +0900 Update to ruby/mspec@bd47c2a commit 7f7db124ee6a72ec178d40453870620874fbc4f5 Author: Hiroshi SHIBATA AuthorDate: 2022-03-03 17:54:10 +0900 Commit: git[bot] CommitDate: 2022-03-03 17:55:45 +0900 [ruby/cgi] Bump up v0.3.2 https://github.com/ruby/cgi/commit/734dfdf1b4 commit 7f7f07a60015a4b907fab99b920f19e746fe10f9 Author: Nobuyoshi Nakada AuthorDate: 2022-03-03 13:33:50 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-03 13:39:07 +0900 [DOC] mark `rb_str_init` as `:nodoc:` Otherwise, an empty entry will be generated as `String::new` along with the one from doc/string.rb. commit 5ef9f7a8213c5963cea8b0b0d731884a60d0c166 Author: Nobuyoshi Nakada AuthorDate: 2022-03-03 13:05:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-03 13:37:37 +0900 [DOC] Rename doc/*.rb as doc/*.rdoc With `:markup: ruby` directive so that they are parsed as ruby scripts. commit b3123191c6cc8c235314e2864f5664c4dd6fa0c5 Author: Burdette Lamar AuthorDate: 2022-03-03 05:26:20 +0900 Commit: GitHub CommitDate: 2022-03-03 05:26:20 +0900 [DOC] Addition to encoding.rdoc (#5617) Adds section "Transcoding a Stream," listing relevant methods in IO. Moves an example from section "String Encoding Example" to the new section. Removes header "String Encoding Example" for now-empty section. Changes items in section "Transcoding a String" from labeled list items to bullet list items. (Labeled list items are sometimes rendered with strange indentations for continued lines, and are always rendered with different indentations for the items.) Notes: Merged-By: BurdetteLamar commit 0b6612148401ba56001515d58a686c6aada48851 Author: Nobuyoshi Nakada AuthorDate: 2022-03-02 23:18:44 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-02 23:18:54 +0900 [MSWin] Allow gems with VS2022 for VS2019 build ruby [Misc #18362] Although not sure if it is really compatible, let’s give it a try. commit f07f47651884ccb30a1493ed69d397e1f43f5267 Author: Nobuyoshi Nakada AuthorDate: 2022-03-02 18:37:53 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-02 18:37:53 +0900 Exclude binstubs tests When relative loading is enabled, the executable ruby is expected installed at the same directory as the binstub. commit db740b7e5ca0900898fdc93057d4892faad9b3a1 Author: Nobuyoshi Nakada AuthorDate: 2022-03-02 18:19:01 +0900 Commit: GitHub CommitDate: 2022-03-02 18:19:01 +0900 Revert "enc/depend: fix out-of-src build with --with-static-linked-ext" (#5616) This reverts commit 32ad8df9d1e07e1b2435a8890d070802fcd2989f, which broke out-of-src build with the pre-generated transcoder sources. Notes: Merged-By: nobu commit 2b5097b890161ddcb1ae9619699126f95a783bbd Author: Yuta Saito AuthorDate: 2022-02-25 11:08:45 +0900 Commit: Yuta Saito CommitDate: 2022-03-02 17:13:40 +0900 vm_method.c: avoid signature mismatch in rb_f_notimplement call `rb_f_notimplement` has a similar signature with arity=-1, but it has an extra marker argument to distinguish it from other methods in compile-time type check in rb_define_method. This trick is introduced to override a given arity to be -1 since https://github.com/ruby/ruby/commit/9ef51b0b89a10c8c401cb9f2337e47a25be72cbe However, the trailing extra argument introduces a signature mismatch between caller and callee expectation. This patch adds rb_f_notimplement_internal, which has canonical arity=-1 signature, and makes rb_define_method family to inserts a method entry with rb_f_notimplement_internal instead of rb_f_notimplement. Notes: Merged: https://github.com/ruby/ruby/pull/5612 commit fd2e1d3c4a0e248f710bc8f3abe94f343552026d Author: Kazuhiro NISHIYAMA AuthorDate: 2022-03-02 13:05:36 +0900 Commit: git[bot] CommitDate: 2022-03-02 14:01:31 +0900 [ruby/rdoc] Use `Marshal.load io` instead of `Marshal.load io.read` https://github.com/ruby/rdoc/commit/135198a31c commit 0c90ca4dd0abbd28d7bb34b9241d93995ab9cfb7 Author: Yuta Saito AuthorDate: 2022-02-25 20:08:31 +0900 Commit: Yuta Saito CommitDate: 2022-03-02 12:50:53 +0900 dir.c: use self-made IFTODT in rb_pathtype_t if available dir.c defines IFTODT if the system doesn't have it. The macro is used when comparing with rb_pathtype_t's cases. rb_pathtype_t's cases are defined by DT_XXX macro if they are available, or defined using IFTODT. Most POSIX-compatible platforms have both IFTODT and DT_XXX and most of other platforms like MinGW have neither of them. On those platforms, DT_XXX-oriented rb_pathtype_t is always compared with values converted by system's IFTODT, and emulated-IFTODT-oriented rb_pathtype_t is always compared with values converted by emulated-IFTODT. However, when IFTODT is *not defined* and DT_XXX is *defined*, like on wasi-libc, DT_XXX-oriented rb_pathtype_t was compared with values converted by emulated-IFTODT, and they are not guaranteed to be compatible. This patch fixes such a situation by using emulated-IFTODT to define rb_pathtype_t when either IFTODT or DT_XXX is not available. Notes: Merged: https://github.com/ruby/ruby/pull/5614 commit 32ad8df9d1e07e1b2435a8890d070802fcd2989f Author: Yuta Saito AuthorDate: 2022-03-01 14:23:44 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-02 09:40:58 +0900 enc/depend: fix out-of-src build with --with-static-linked-ext When out-of-src build, at the beginning of a build, `make -f enc.mk srcs` generates trans C sources under build dir. On the other hand, enc/trans/*.o were built from trans C sources generated under srcdir due to the following auto-generated rules from enc/depend. ``` encsrcdir = ../src/enc ... enc/trans/big5.$(OBJEXT): $(encsrcdir)/trans/big5.c ``` Therefore, trans C sources are generated twice under srcdir and build dir during a build. Ideally, trans C sources have always been built before compilation of enc/trans/*.o because the source generation is prereq, so making enc/trans/*.o doesn't trigger trans C source generation and shouldn't require MINIRUBY as a make arg for enc.mk. However, the second trans C source gen is unintentionally triggered by enc/trans/*.o, so `make -f enc.mk libencs` requires MINIRUBY for now. When no `--with-static-linked-ext`, `make -f enc.mk libencs` is triggered from common.mk with MINIRUBY, so there is no problem. But when `--with-static-linked-ext`, libencs should be statically-linked to ruby, so `make -f enc.mk libencs` is triggered from exts.mk, and exts.mk invokes it without MINIRUBY. Therefore, when out-of-src build and with `--with-static-linked-ext`, the second trans C source gen fails due to missing MINIRUBY. This issue is deterministically reproducible without -j because common.mk's `main` rule also has libencs prerequisite. This patch supresses the second trans C source gen. Notes: Merged: https://github.com/ruby/ruby/pull/5611 commit f7491e89b9daacbdbfb716d585e9c325ab6d3f45 Author: S.H AuthorDate: 2022-03-02 09:27:30 +0900 Commit: GitHub CommitDate: 2022-03-02 09:27:30 +0900 Using macros to check iseq element Notes: Merged: https://github.com/ruby/ruby/pull/5558 Merged-By: nobu commit 128972189284f4338722e8a910d0b4f6e7a02b31 Author: Peter Zhu AuthorDate: 2022-03-02 03:38:48 +0900 Commit: Peter Zhu CommitDate: 2022-03-02 03:38:48 +0900 Wrap ruby_abi_version in `extern "C"` for C++ Make ruby_abi_version have C linkage so that the symbol can be found in the shared object. commit 4bdb4a1873bea9768bcf1bff8d7bffd80fdabb44 Author: Burdette Lamar AuthorDate: 2022-03-02 03:07:54 +0900 Commit: GitHub CommitDate: 2022-03-02 03:07:54 +0900 Close files in examples in io.c (#5615) Notes: Merged-By: BurdetteLamar commit 7a6ba30c24f2d796f93baed5d772b56680d042e6 Author: Burdette Lamar AuthorDate: 2022-03-02 01:45:18 +0900 Commit: GitHub CommitDate: 2022-03-02 01:45:18 +0900 [DOC] Add encoding external/internal example to encoding.rdoc (#5610) * Add encoding external/internal example to encoding.rdoc * Add encoding external/internal example to encoding.rdoc * Update doc/encoding.rdoc I think there may be some more of these that I've recently put into io.c. Will check tomorrow and create new PR if so. Co-authored-by: Peter Zhu Co-authored-by: Peter Zhu Notes: Merged-By: BurdetteLamar commit fb724a887aa239de2fb1920f769ea097bee37b01 Author: Peter Zhu AuthorDate: 2022-02-28 23:39:16 +0900 Commit: Peter Zhu CommitDate: 2022-03-02 00:55:53 +0900 Show embed status of array when len is 0 in objspace dump Notes: Merged: https://github.com/ruby/ruby/pull/5609 commit a0e3da9ecc3ff46c27eae34091651929790e28dc Author: Benoit Daloze AuthorDate: 2022-03-02 00:49:23 +0900 Commit: Benoit Daloze CommitDate: 2022-03-02 00:49:23 +0900 Fix race in TestThread#test_thread_status_in_trap * If the sleep is not enough to run the rest of the logic the process would be exited early, e.g., before the signal handler can run. commit 25ad9eabc7e49de61b1c0504c14c5af46bf446ed Author: Peter Zhu AuthorDate: 2022-03-01 23:44:39 +0900 Commit: Peter Zhu CommitDate: 2022-03-01 23:44:39 +0900 Only define RUBY_DLN_CHECK_ABI when supported commit 210f29a6bfde91beba1773e848843e43554745aa Author: Peter Zhu AuthorDate: 2022-03-01 23:42:32 +0900 Commit: Peter Zhu CommitDate: 2022-03-01 23:42:32 +0900 ABI checking is not supported on Windows commit 33dadb2c8aeaaa03f90e4b0f2613031633aa8751 Author: Yuta Saito AuthorDate: 2022-03-01 21:27:41 +0900 Commit: Yuta Saito CommitDate: 2022-03-01 23:33:48 +0900 dln.c: suppress unused function 'abi_check_enabled_p' warning for wasi Notes: Merged: https://github.com/ruby/ruby/pull/5613 commit eebc24218af66befb215f6c713e4f68f9c4db715 Author: Lars Kanis AuthorDate: 2022-02-08 20:18:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-01 10:11:59 +0900 [DOC] Fix reference in rb_enc_associate() description Notes: Merged: https://github.com/ruby/ruby/pull/5534 commit 347c3faf8eba55cdb09861c29f8646d78053fa5c Author: Mau Magnaguagno AuthorDate: 2022-03-01 10:05:49 +0900 Commit: GitHub CommitDate: 2022-03-01 10:05:49 +0900 [DOC] Fix String#getbyte doc * String#getbyte returns `nil` if `index` is out of range. * Add String#getbyte example with nil output. * Modify String#getbyte example to use negative index. Notes: Merged: https://github.com/ruby/ruby/pull/5586 Merged-By: nobu commit 1a20bb1c986961786a981af95ed964f0625eeed0 Author: Lars Kanis AuthorDate: 2022-02-25 22:22:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-03-01 09:59:12 +0900 [DOC] Fix function name in example Notes: Merged: https://github.com/ruby/ruby/pull/5599 commit 11bcc0d9d66de9b749904e82601e6be45c69bda4 Author: Vivek Bharath Akupatni AuthorDate: 2022-03-01 09:46:22 +0900 Commit: GitHub CommitDate: 2022-03-01 09:46:22 +0900 [DOC] Fix documentation for Array#delete Never returns self. Notes: Merged: https://github.com/ruby/ruby/pull/5605 Merged-By: nobu commit eb40ff73bfc8afae1d87e214f31564907763d477 Author: Hiroshi SHIBATA AuthorDate: 2022-02-28 19:21:52 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-28 20:08:58 +0900 [ruby/securerandom] Bump up v0.2.0 https://github.com/ruby/securerandom/commit/62ca2828f3 commit bd1507b2f63d894fc3b9a62436ba028615d2f562 Author: Yuta Saito AuthorDate: 2022-02-18 02:38:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-28 17:59:33 +0900 spec: skip ext's extension spec for --with-static-linked-ext `resolve_feature_path` doesn't return .so when the given ext is linked statically by --with-static-linked-ext Notes: Merged: https://github.com/ruby/ruby/pull/5582 commit 32f356e84a2079b1a68b056b5b150eb80928b185 Author: Nobuyoshi Nakada AuthorDate: 2022-02-28 12:53:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-28 13:29:18 +0900 Fix a typo of macro name When the date is 28 Feb in the local timezone and 27 in the UTC, the leap second info is wrongly calculated, and the Time for 1 Mar created with a timezone resulted in an invalid date, 30 Feb. commit 1cb67905337100015c6845cdb4be2bc2133014ea Author: Yusuke Endoh AuthorDate: 2022-02-28 11:39:55 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-28 11:40:25 +0900 st.c: Fix a typo in a comment commit ff3d7b720ec21e4856aac0b3c493bc78cbac83d4 Author: Hiroshi SHIBATA AuthorDate: 2022-02-28 10:32:28 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-28 11:39:20 +0900 Merge RubyGems and Bundler master Notes: Merged: https://github.com/ruby/ruby/pull/5606 commit 28ee1ca74831a9265ff40c81d14ff327837af757 Author: Burdette Lamar AuthorDate: 2022-02-28 06:43:23 +0900 Commit: GitHub CommitDate: 2022-02-28 06:43:23 +0900 [DOC] Enhanced RDoc for encoding (#5603) Additions and corrections for external/internal encodings. Notes: Merged-By: BurdetteLamar commit 7f4345639b09395f2ab423d1cdac6f2ddf0707de Author: Nobuyoshi Nakada AuthorDate: 2022-02-27 20:09:58 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-27 21:58:59 +0900 fake.rb: Set prefix to `$topdir` Not to refer outside the top build directory from rbconfig. commit 289a4cf6728c6b29cf59cc9e04e6d2d7302f896b Author: Burdette Lamar AuthorDate: 2022-02-27 21:44:58 +0900 Commit: GitHub CommitDate: 2022-02-27 21:44:58 +0900 [DOC] Extend intro/defn of 'transcoding' (#5602) * Extend intro/defn of 'transcoding' Notes: Merged-By: BurdetteLamar commit 3e5d7e31763362ecf98259755694585902d89f80 Author: Nobuyoshi Nakada AuthorDate: 2020-08-12 16:03:23 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-26 21:50:46 +0900 [DOC] Move String.new to allow non US-ASCII characters Notes: Merged: https://github.com/ruby/ruby/pull/5410 commit 0be2049a89bd4288f94205c9dabacac77d2fcc10 Author: Nobuyoshi Nakada AuthorDate: 2022-02-26 16:32:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-26 16:34:10 +0900 [DOC] Fix the pseudo code commit 62c15833531d85134783ba5e1d6cef8b7a4488da Author: Nobuyoshi Nakada AuthorDate: 2022-02-26 16:16:40 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-26 16:23:04 +0900 [DOC] Place a non-US-ASCII document in a document-specific script Notes: Merged: https://github.com/ruby/ruby/pull/5601 commit 26ffda2fd217651e73eb71e6da8f89eb17866f9d Author: Burdette Lamar AuthorDate: 2022-02-26 04:12:59 +0900 Commit: GitHub CommitDate: 2022-02-26 04:12:59 +0900 [DOC] Enhanced RDoc for some encoding methods (#5598) In String, treats: #b #scrub #scrub! #unicode_normalize #unicode_normalize! #encode #encode! Also adds a note to IO.new (suggested by @jeremyevans). Notes: Merged-By: BurdetteLamar commit e82f5db7891f45ec45c073d7eddfbd6cdefe97a8 Author: Nobuyoshi Nakada AuthorDate: 2022-02-26 02:42:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-26 02:42:35 +0900 Deprecate the unintentional ability to parse `Symbol` commit 8780f15fd740a893095e749ef65f5f957fee37e3 Author: Nobuyoshi Nakada AuthorDate: 2022-02-25 20:34:59 +0900 Commit: git[bot] CommitDate: 2022-02-25 20:39:47 +0900 [ruby/date] Use `assert_deprecated_warn` https://github.com/ruby/date/commit/c55004715a commit 0db5ee519588808bf1942243843551f58e8d3b35 Author: Nobuyoshi Nakada AuthorDate: 2022-02-25 17:56:37 +0900 Commit: git[bot] CommitDate: 2022-02-25 20:01:06 +0900 [ruby/date] Suppress declaration-after-statement warnings https://github.com/ruby/date/commit/60bd16009d commit bb22bc76b08b8281d888424522790e0227ea09a4 Author: Nobuyoshi Nakada AuthorDate: 2022-02-25 13:39:39 +0900 Commit: git[bot] CommitDate: 2022-02-25 19:57:50 +0900 [ruby/date] Deprecate the unintentional ability to parse `Symbol` https://github.com/ruby/date/commit/d57818f3b3 commit d4f32b6b7b6be8c0508cf0e7d50ae7ccd14f555a Author: Nobuyoshi Nakada AuthorDate: 2021-11-24 18:08:42 +0900 Commit: git[bot] CommitDate: 2022-02-25 19:52:33 +0900 [ruby/date] Scale timeouts https://github.com/ruby/date/commit/2889698e2f commit 4933d7fe565c5815febabf16603a9148abcf88d6 Author: Nobuyoshi Nakada AuthorDate: 2021-11-24 18:05:12 +0900 Commit: git[bot] CommitDate: 2022-02-25 19:52:32 +0900 [ruby/date] Update tests https://github.com/ruby/date/commit/5a138afce9 commit b5c2a0840f4dd8b44e0f82cda7a7f225d0a816ef Author: Nobuyoshi Nakada AuthorDate: 2021-07-09 07:21:27 +0900 Commit: git[bot] CommitDate: 2022-02-25 19:52:31 +0900 [ruby/date] Anchor at beginning of numbers https://hackerone.com/reports/1254844 https://github.com/ruby/date/commit/2f7814cc22 commit 1758eade579c91f9ad000943994fccf30c7bf8a0 Author: Nobuyoshi Nakada AuthorDate: 2021-07-09 07:21:27 +0900 Commit: git[bot] CommitDate: 2022-02-25 19:52:31 +0900 [ruby/date] Anchor at beginning of numbers https://hackerone.com/reports/1254844 https://github.com/ruby/date/commit/7ffe25e458 commit d54a3df2e53a964c8bb36b87bc10ba2512830a60 Author: Nobuyoshi Nakada AuthorDate: 2021-07-09 06:41:29 +0900 Commit: git[bot] CommitDate: 2022-02-25 19:52:30 +0900 [ruby/date] Separate era from preceding word https://github.com/ruby/date/commit/017149e53e commit c8cddac45c3786afc737ac9c1075d77d8f752d3d Author: Nobuyoshi Nakada AuthorDate: 2021-07-09 06:35:58 +0900 Commit: git[bot] CommitDate: 2022-02-25 19:52:29 +0900 [ruby/date] Use possessive match Reduce backtracks at the same character classes arounding an optional pattern. https://github.com/ruby/date/commit/1fd15f7c49 commit 9f59a2bd877061594b4af624fe76cc32f9743438 Author: Nobuyoshi Nakada AuthorDate: 2021-07-09 06:19:03 +0900 Commit: git[bot] CommitDate: 2022-02-25 19:52:28 +0900 [ruby/date] Extracted common leading pattern https://github.com/ruby/date/commit/ec86dbbdc1 commit c19a631c994e3745e821a87cc7eca3f02c33bda7 Author: Burdette Lamar AuthorDate: 2022-02-25 05:10:49 +0900 Commit: GitHub CommitDate: 2022-02-25 05:10:49 +0900 [DOC] Enhancements for encoding.rdoc (#5578) Adds sections: String Encoding Symbol and Regexp Encodings Filesystem Encoding Locale Encoding IO Encodings External Encoding Internal Encoding Script Encoding Transcoding Transcoding a String Notes: Merged-By: BurdetteLamar commit fc7e42a4731b274e5e732de83b720424ba65df59 Author: Adrien S AuthorDate: 2022-02-25 04:12:17 +0900 Commit: GitHub CommitDate: 2022-02-25 04:12:17 +0900 Fix yjit readme link pointing to old shopify readme (#5596) Notes: Merged-By: maximecb commit 8b3b113d84cc9d4c38e2b19f2d54d4d0457b93fd Author: eileencodes AuthorDate: 2022-02-25 02:57:57 +0900 Commit: Aaron Patterson CommitDate: 2022-02-25 03:59:58 +0900 [DOC] Fix typo in yjit docs I noticed this yesterday when pairing with Aaron, there was an extra "e" in "callees". Notes: Merged: https://github.com/ruby/ruby/pull/5597 commit 97001638d96c27a662f6fa8c682c61b0599a9c3c Author: Peter Zhu AuthorDate: 2022-02-25 01:20:40 +0900 Commit: Peter Zhu CommitDate: 2022-02-25 03:31:53 +0900 Add ABI version to ruby_version tag on Windows Notes: Merged: https://github.com/ruby/ruby/pull/5595 commit 9bd4b2ab14eea3df392f4531887fcc1c59291d02 Author: Peter Zhu AuthorDate: 2022-02-23 06:40:32 +0900 Commit: Peter Zhu CommitDate: 2022-02-24 23:18:01 +0900 Add ABI version to RUBY_LIB_VERSION This commit adds the ABI version as build metadata to RUBY_LIB_VERSION. This will ensure that gems are installed in a path with the ABI version. Notes: Merged: https://github.com/ruby/ruby/pull/5591 commit b13a7c8e36e9b00b5c6668846f31be4e25523111 Author: John Hawthorn AuthorDate: 2022-01-26 12:16:57 +0900 Commit: John Hawthorn CommitDate: 2022-02-24 12:57:42 +0900 Constant time class to class ancestor lookup Previously when checking ancestors, we would walk all the way up the ancestry chain checking each parent for a matching class or module. I believe this was especially unfriendly to CPU cache since for each step we need to check two cache lines (the class and class ext). This check is used quite often in: * case statements * rescue statements * Calling protected methods * Class#is_a? * Module#=== * Module#<=> I believe it's most common to check a class against a parent class, to this commit aims to improve that (unfortunately does not help checking for an included Module). This is done by storing on each class the number and an array of all parent classes, in order (BasicObject is at index 0). Using this we can check whether a class is a subclass of another in constant time since we know the location to expect it in the hierarchy. Notes: Merged: https://github.com/ruby/ruby/pull/5568 commit 764e4fa850de749790e5ed11c8a4ab86a4499ac0 Author: John Hawthorn AuthorDate: 2022-01-30 14:27:53 +0900 Commit: John Hawthorn CommitDate: 2022-02-24 12:57:42 +0900 Never call kind_of with klass=0 Notes: Merged: https://github.com/ruby/ruby/pull/5568 commit b8f0dc59d52266d9fbfc039e2f4b0f727c62baa0 Author: Jean Boussier AuthorDate: 2022-02-24 00:51:28 +0900 Commit: Jean Boussier CommitDate: 2022-02-24 00:58:48 +0900 rb_provide_feature: Prevent $LOADED_FEATURES from being copied [Bug #18599] `vm->loaded_features` and `vm->loaded_features_snapshot` both share the same root. When a feature is pushed into `loaded_features`, the sharing is broken and `loaded_features` is copied. So an application requiring 1000 files, will allocate 1000 arrays of increasing size, which is very wasteful. To avoid this, we first clear the snapshot, so that `loaded_features` can directly be pushed into. Co-Authored-By: Peter Zhu Notes: Merged: https://github.com/ruby/ruby/pull/5593 commit 651b2e59598427edd0ec3ceb3a0a49b5e106a145 Author: Peter Zhu AuthorDate: 2022-02-23 01:16:25 +0900 Commit: Peter Zhu CommitDate: 2022-02-23 23:13:04 +0900 Use rb_ary_behead for rb_ary_shift rb_ary_shift is just a special case of rb_ary_behead where we behead only 1 element. Notes: Merged: https://github.com/ruby/ruby/pull/5590 commit 43cc4f66c22b2730b1a561197f05c9dda666a76e Author: git[bot] AuthorDate: 2022-02-23 16:00:29 +0900 Commit: git[bot] CommitDate: 2022-02-23 16:00:29 +0900 Update bundled gems list at 2022-02-23 commit 63401b1384d206e3689bea5f5e4f06b7872b9ada Author: Shugo Maeda AuthorDate: 2022-02-23 11:23:33 +0900 Commit: Shugo Maeda CommitDate: 2022-02-23 11:23:33 +0900 Rename the wrong variable name `beg` to `len` commit 68847794bf8068db2bf8c940e9478b07fb16c839 Author: Peter Zhu AuthorDate: 2022-02-23 06:49:20 +0900 Commit: Peter Zhu CommitDate: 2022-02-23 06:49:20 +0900 Update ext/-test-/dln/empty/depend Dependencies was not updated in 06dab12717a05bf49e4c6dff1d6f5458678d0e00. commit 06dab12717a05bf49e4c6dff1d6f5458678d0e00 Author: Peter Zhu AuthorDate: 2022-02-23 02:00:15 +0900 Commit: Peter Zhu CommitDate: 2022-02-23 02:00:15 +0900 Include ruby.h in empty.c to have ABI version I forgot to include this as part of 638fd8774bed27b997f3b634ba8be7aa304be3c3. commit 2ea175eb692dfc250af8f1ea8f60ff25490ccf08 Author: Peter Zhu AuthorDate: 2022-02-23 00:15:21 +0900 Commit: Peter Zhu CommitDate: 2022-02-23 00:16:31 +0900 Fix compiler warning for uninitialized variable Fixes this compiler warning: warning: 'loc' may be used uninitialized in this function [-Wmaybe-uninitialized] bt_yield_loc(loc - cfunc_counter, cfunc_counter, btobj); commit 2d5ecd60a5827d95449b9bd8704a0df2ffb0a60a Author: Peter Zhu AuthorDate: 2022-02-19 01:06:13 +0900 Commit: Peter Zhu CommitDate: 2022-02-22 23:55:21 +0900 [Feature #18249] Update dependencies Notes: Merged: https://github.com/ruby/ruby/pull/5474 commit 638fd8774bed27b997f3b634ba8be7aa304be3c3 Author: Peter Zhu AuthorDate: 2022-02-19 01:05:52 +0900 Commit: Peter Zhu CommitDate: 2022-02-22 23:55:21 +0900 [Feature #18249] Include ruby.h in extensions to have ABI version All shared libraries must have `include/ruby/internal/abi.h` to include the ABI version. Including `ruby.h` will guarantee that. Notes: Merged: https://github.com/ruby/ruby/pull/5474 commit 3df16924b45adfd88c20ef5fe25b10a1acb82dd7 Author: Peter Zhu AuthorDate: 2022-02-19 00:59:45 +0900 Commit: Peter Zhu CommitDate: 2022-02-22 23:55:21 +0900 [Feature #18249] Implement ABI checking Header file include/ruby/internal/abi.h contains RUBY_ABI_VERSION which is the ABI version. This value should be bumped whenever an ABI incompatible change is introduced. When loading dynamic libraries, Ruby will compare its own `ruby_abi_version` and the `ruby_abi_version` of the loaded library. If these two values don't match it will raise a `LoadError`. This feature can also be turned off by setting the environment variable `RUBY_RUBY_ABI_CHECK=0`. This feature will prevent cases where previously installed native gems fail in unexpected ways due to incompatibility of changes in header files. This will force the developer to recompile their gems to use the same header files as the built Ruby. In Ruby, the ABI version is exposed through `RbConfig::CONFIG["ruby_abi_version"]`. Notes: Merged: https://github.com/ruby/ruby/pull/5474 commit 37d5890e4941cedf6918821b29bb4a7e3a092e62 Author: Tim Pope AuthorDate: 2022-02-19 06:11:33 +0900 Commit: git[bot] CommitDate: 2022-02-22 18:52:52 +0900 [ruby/reline] Fix support for emacs-ctlx and emacs-meta keymaps The existing implementation, given the below .inputrc, erroneously creates a "C-v" key binding: set keymap emacs-ctlx "\C-v": "[C-x C-v was pressed]" This fixes it to instead create a "C-x C-v" keybinding. https://github.com/ruby/reline/commit/719f52d231 commit 50098f4b61179a32f9df92e5d0e58cb911f71c86 Author: Mau Magnaguagno AuthorDate: 2022-02-22 17:49:09 +0900 Commit: git[bot] CommitDate: 2022-02-22 18:01:53 +0900 [ruby/zlib] [DOC] Fix typo in Zlib.adler32_combine https://github.com/ruby/zlib/commit/5e8f0b4164 commit ae8a8b184e6d7400470669ed7557842902019d36 Author: Yusuke Endoh AuthorDate: 2022-02-20 20:45:53 +0900 Commit: git[bot] CommitDate: 2022-02-22 17:08:52 +0900 [ruby/rdoc] Prefer `require 'cgi/util'` instead of `require 'cgi'` RDoc is using only CGI.escape, escapeHTML, and unescape. We don't have to load the whole source code of cgi gem. https://github.com/ruby/rdoc/commit/d096222cc2 commit a49aae2c5e3786e5ac9a879772e53a6a731ec12f Author: Hiroshi SHIBATA AuthorDate: 2022-02-22 11:58:54 +0900 Commit: git[bot] CommitDate: 2022-02-22 13:32:59 +0900 [rubygems/rubygems] Resolve cleaned-up error with temporary gemhome https://github.com/rubygems/rubygems/commit/623162ad2b commit 25b0577c9266e3e2e3ec4870c9aa8b0733978b38 Author: Yusuke Endoh AuthorDate: 2022-02-07 16:05:45 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-22 11:55:40 +0900 Factor a "highlight" symbol out Notes: Merged: https://github.com/ruby/ruby/pull/5516 commit eda10e81023dfc258eab106f00830c5c1de7ac24 Author: Yusuke Endoh AuthorDate: 2022-02-02 16:05:18 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-22 11:55:40 +0900 Remove unneeded newline from detailed_message Notes: Merged: https://github.com/ruby/ruby/pull/5516 commit 5099f64fa4e929e7200bae37ec05d4cfa0f1211b Author: Yusuke Endoh AuthorDate: 2022-02-02 15:49:13 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-22 11:55:40 +0900 Add a test for Exception#detailed_message Notes: Merged: https://github.com/ruby/ruby/pull/5516 commit 4db986431a10d7b635a17cd0024278a2ede59948 Author: Yusuke Endoh AuthorDate: 2022-02-02 15:36:13 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-22 11:55:40 +0900 Let Exception#full_message pass highlight keywords to #detailed_message .. even when the argument is not explicitly passed. Notes: Merged: https://github.com/ruby/ruby/pull/5516 commit 89e446683e19fa77e2e0dec6396d4c4c09f36fab Author: Yusuke Endoh AuthorDate: 2022-02-02 15:08:59 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-22 11:55:40 +0900 test/ruby/test_rubyoptions.rb: Make it pass on Windows Notes: Merged: https://github.com/ruby/ruby/pull/5516 commit 98ca99cdd090d17b7ec11e0c6f40936a728165a5 Author: Yusuke Endoh AuthorDate: 2022-02-02 15:08:10 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-22 11:55:40 +0900 The default highlight arguments of Exception#detailed_message is false Notes: Merged: https://github.com/ruby/ruby/pull/5516 commit 35ff545bb689f5af93ac603ea1f512705e0dc249 Author: Yusuke Endoh AuthorDate: 2022-02-01 17:59:31 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-22 11:55:40 +0900 Exception#detailed_message is added Also, the default error printer and Exception#full_message use the method instead of `Exception#message` to get the message string. `Exception#detailed_message` calls `Exception#message`, decorates and returns the result. It adds some escape sequences to highlight, and the class name of the exception to the end of the first line of the message. [Feature #18370] Notes: Merged: https://github.com/ruby/ruby/pull/5516 commit 3af316fa8c48e33c03159e3b0b3bef329e41dee8 Author: Yusuke Endoh AuthorDate: 2022-02-01 17:03:58 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-22 11:55:40 +0900 Refactor out rb_decorate_message from print_errinfo rb_decorate_message adds bold escape sequences to message, and the class name of exception (like " (RuntimeError)) of "message (RuntimeError)"). Notes: Merged: https://github.com/ruby/ruby/pull/5516 commit f207f7a193dc4e55820e77388edefb5d8fde18d7 Author: Yusuke Endoh AuthorDate: 2022-02-01 16:32:38 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-22 11:55:40 +0900 Do not escape error message [Feature #18367] Notes: Merged: https://github.com/ruby/ruby/pull/5516 commit 36e31b09cddbadd6acc4becb83a8c4bddfb2af1f Author: Yusuke Endoh AuthorDate: 2022-02-01 15:58:39 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-22 11:55:40 +0900 error.c: Refactoring Factor out from rb_error_write the responsibility to check if stderr is a tty. Notes: Merged: https://github.com/ruby/ruby/pull/5516 commit c53bdb8ff64ad707ebbb0c05823c1cb0376433dc Author: Hiroshi SHIBATA AuthorDate: 2022-02-21 17:10:56 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-21 17:10:56 +0900 Removed dependency of net-protocol. There is no plan to remove from stdlib commit 79b04790e8c72f7fae3b5e78136b17f309f91cee Author: Hiroshi SHIBATA AuthorDate: 2022-02-21 16:29:54 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-21 17:10:22 +0900 Removed dependency of io-wait. There is no plan to remove from stdlib commit f92f08ff23dbda568ef66fea4fbc2216249f60e1 Author: Nobuyoshi Nakada AuthorDate: 2022-02-21 13:05:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-21 13:08:06 +0900 [DOC] Set the documentation title and main page Copied from https://github.com/ruby/docs.ruby-lang.org/ to be as same as docs.ruby-lang.org. commit ed8776f96034b245b5418d4817d0ebda3db24198 Author: Nobuyoshi Nakada AuthorDate: 2022-02-12 23:29:19 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-20 20:39:48 +0900 [MSWin] Tentative measure for a bug of VS2022 [Misc #18362] Disable the use of `__assume()`, when combinations of `isnan()`, `isinf()` and `__assume()` will be wrongly optimized due to the bug of VS2022. Notes: Merged: https://github.com/ruby/ruby/pull/5579 commit 32af1a3b5e8bb7b5ffc3c7f97edb8c0b74f016ae Author: Nobuyoshi Nakada AuthorDate: 2021-12-04 19:56:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-20 20:39:48 +0900 [MSWin] Try VS2022 Notes: Merged: https://github.com/ruby/ruby/pull/5579 commit 71388f9d395cc9864e37a6767c7f59538f947b3d Author: Nobuyoshi Nakada AuthorDate: 2021-12-05 16:32:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-20 20:39:48 +0900 [MSWin] Reduce duplicate configurations Notes: Merged: https://github.com/ruby/ruby/pull/5579 commit 74707800588dc452d5a64e786b5c98d0e7586e74 Author: Nobuyoshi Nakada AuthorDate: 2022-02-19 21:22:13 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-19 23:32:52 +0900 Check if `__assume` is supported Notes: Merged: https://github.com/ruby/ruby/pull/5577 commit 131154f878b7f63277bd97520500414047a814fa Author: Nobuyoshi Nakada AuthorDate: 2022-02-19 16:02:29 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-19 23:32:52 +0900 Define `HAVE___BUILTIN_UNREACHABLE` instead of `UNREACHABLE` `UNREACHABLE` in ruby/internal/has/builtin.h is only used as just a flag now, and redefined in ruby/backward/2/assume.h then. Notes: Merged: https://github.com/ruby/ruby/pull/5577 commit 6e6ee1e6b3ce70a325043c502918c1eb9529b4a2 Author: S-H-GAMELINKS AuthorDate: 2022-02-19 21:33:53 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-19 23:18:51 +0900 Replace and Using METACLASS_OF macro Notes: Merged: https://github.com/ruby/ruby/pull/5576 commit c8817d6a3ebc9bbc151625bca198b8f327d1d68f Author: Shugo Maeda AuthorDate: 2022-02-19 19:10:00 +0900 Commit: GitHub CommitDate: 2022-02-19 19:10:00 +0900 Add String#byteindex, String#byterindex, and MatchData#byteoffset (#5518) * Add String#byteindex, String#byterindex, and MatchData#byteoffset [Feature #13110] Co-authored-by: NARUSE, Yui Notes: Merged-By: shugo commit db6b23c76cbc7888cd9a9912790c2068703afdd0 Author: Kazuki Tsujimoto AuthorDate: 2022-02-19 18:45:49 +0900 Commit: Kazuki Tsujimoto CommitDate: 2022-02-19 18:45:49 +0900 Find pattern is no longer experimental [Feature #18585] commit 3200d97e95e5d84483b3df46dc54448a82820b9d Author: Kazuki Tsujimoto AuthorDate: 2022-02-19 18:45:36 +0900 Commit: Kazuki Tsujimoto CommitDate: 2022-02-19 18:45:36 +0900 Fix location of NODE_LIT in p_kw commit 4641abf0a236076aa9e1e712d810ad80bee81e4d Author: Nobuyoshi Nakada AuthorDate: 2022-02-18 17:59:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-19 15:33:15 +0900 Use symbols for clock IDs if `clockid_t` is not numeric Notes: Merged: https://github.com/ruby/ruby/pull/5574 commit b3de25dfee5e27cb54a47999bce885b3700d32fb Author: Nobuyoshi Nakada AuthorDate: 2022-02-19 00:10:50 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-19 15:33:15 +0900 Set static IDs to same name variables Notes: Merged: https://github.com/ruby/ruby/pull/5574 commit 2ae35ad76611b0da21cef4c8444d9ff74368e874 Author: Nobuyoshi Nakada AuthorDate: 2022-02-18 17:58:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-19 15:33:15 +0900 RUBY_REPLACE_TYPE: check if the target type is a pointer Notes: Merged: https://github.com/ruby/ruby/pull/5574 commit dfa17f46a899ed6d3bef1bb61642ffa62b5e00ec Author: Nobuyoshi Nakada AuthorDate: 2022-02-19 15:14:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-19 15:14:01 +0900 [DOC] prefer rdoc references over generated URLs commit bec3a1f15a7608ccf7b4e6eed783bf9c4c9aeb74 Author: Burdette Lamar AuthorDate: 2022-02-19 07:17:51 +0900 Commit: GitHub CommitDate: 2022-02-19 07:17:51 +0900 Enhanced RDoc for io.c (#5573) Links to options doc added/improved; in particular, new links to new section "Encoding Options" in encoding.rdoc. Minor inconsistencies ironed out. Notes: Merged-By: BurdetteLamar commit 883fe55c4ba2a5f7a50c6970558be94b37c1a050 Author: Burdette Lamar AuthorDate: 2022-02-19 04:33:18 +0900 Commit: GitHub CommitDate: 2022-02-19 04:33:18 +0900 New doc about encoding (#5572) This is the beginning of an extended explication of Ruby encoding. One of its more important jobs is to provide link targets for encoding documentation in other classes (String, File, IO, etc.). In particular, they can link to the "Encoding Options" section. I'll have much to add to this document going forward, along with suitable adjustments in the class documentation. Notes: Merged-By: BurdetteLamar commit 82513c7d715c21c8045fd6420f79a3c4e40bd4ab Author: Peter Zhu AuthorDate: 2022-02-18 23:30:08 +0900 Commit: Peter Zhu CommitDate: 2022-02-18 23:30:08 +0900 Remove unused function declaration in dln.c getenv is no longer used in dln.c. commit cda5aee74e298cca9ffaa42fdc99e8de2e05fb0e Author: Shugo Maeda AuthorDate: 2022-02-18 19:47:08 +0900 Commit: Shugo Maeda CommitDate: 2022-02-18 22:13:45 +0900 LONG2NUM() should be used for rmatch_offset::{beg,end} https://github.com/ruby/ruby/pull/5518#discussion_r809645406 commit e9a2b30744a62268c66d6c17730ed96486d9783c Author: Burdette Lamar AuthorDate: 2022-02-18 21:46:04 +0900 Commit: GitHub CommitDate: 2022-02-18 21:46:04 +0900 Enhanced RDoc concerning command injection (#5537) Clarifies security vulnerabilities for commands. Treats: Kernel.system Kernel.` (backtick) IO.popen IO.read IO.write IO.binread IO.binwrite IO.readlines IO.foreach Notes: Merged-By: BurdetteLamar commit 542a38f619bea9fa7aa5a6be1449fc5f9b4d01e9 Author: NARUSE, Yui AuthorDate: 2022-02-18 21:43:56 +0900 Commit: NARUSE, Yui CommitDate: 2022-02-18 21:44:22 +0900 gen-mail.rb: support markdown file path commit dff70b50d01930213e7799ee52969ff309cc3601 Author: Yuta Saito AuthorDate: 2022-01-27 21:33:39 +0900 Commit: Yuta Saito CommitDate: 2022-02-18 18:28:18 +0900 [wasm] vm.c: stop unwinding to main for every vm_exec call by setjmp the original rb_wasm_setjmp implementation always unwinds to the root call frame to have setjmp compatible interface, and simulate sjlj's undefined behavior. Therefore, every vm_exec call unwinds to main, and a deep call stack makes setjmp call very expensive. The following snippet from optcarrot takes 5s even though it takes less than 0.3s on native. ``` [0x0, 0x4, 0x8, 0xc].map do |attr| (0..7).map do |j| (0...0x10000).map do |i| clr = i[15 - j] * 2 + i[7 - j] clr != 0 ? attr | clr : 0 end end end ``` This patch adds a WASI specialized vm_exec which uses lightweight try-catch API without unwinding to the root frame. After this patch, the above snippet takes only 0.5s. Notes: Merged: https://github.com/ruby/ruby/pull/5502 commit ac32b7023a7743b1f0cdcfe11156c95c0edb7c54 Author: Akinori MUSHA AuthorDate: 2022-02-17 18:10:16 +0900 Commit: Akinori MUSHA CommitDate: 2022-02-18 11:56:24 +0900 Mention Set as a new builtin class to NEWS Notes: Merged: https://github.com/ruby/ruby/pull/5563 commit dd3501bb9580951623a9aa7c2f86f7c98f9d6b9c Author: Akinori MUSHA AuthorDate: 2022-02-17 18:02:42 +0900 Commit: Akinori MUSHA CommitDate: 2022-02-18 11:56:24 +0900 Make Set a builtin feature [Feature #16989] Notes: Merged: https://github.com/ruby/ruby/pull/5563 commit 4c366ec9775eb6acb3fcb3b88038d051512c75a2 Author: Jeremy Evans AuthorDate: 2022-01-15 06:02:46 +0900 Commit: Jeremy Evans CommitDate: 2022-02-18 01:54:07 +0900 Add Thread.each_caller_location This method takes a block and yields Thread::Backtrace::Location objects to the block. It does not take arguments, and always starts at the default frame that caller_locations would start at. Implements [Feature #16663] Notes: Merged: https://github.com/ruby/ruby/pull/5445 commit 4113862c0068a8a95d752f5fdf14980f92cd41d7 Author: Nobuyoshi Nakada AuthorDate: 2022-02-16 23:00:15 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-17 22:47:02 +0900 Do not search for commands with double tool prefixes [Bug #18504] The `CC` found by `AC_CHECK_TOOL` is prefixed by the host triplet when cross compiling. To search for commands with `AC_CHECK_TOOL` based on that `CC` means to search also doubly prefixed names. Notes: Merged: https://github.com/ruby/ruby/pull/5565 commit 992bdfea2d3030c041a33d58221ffdcd91f1a999 Author: Nobuyoshi Nakada AuthorDate: 2022-02-17 17:49:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-17 20:29:50 +0900 Refine the load error message Show the linked ruby library name when failed to load extension built against different ruby library. Notes: Merged: https://github.com/ruby/ruby/pull/5564 commit 5952a1f201cfed38277b4fafa0624c1a048edb6d Author: Nobuyoshi Nakada AuthorDate: 2022-02-17 17:35:38 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-17 20:29:50 +0900 Check running macOS version at runtime commit c8b414b3345564d975445b25d9bcb9e2604f636d Author: Nobuyoshi Nakada AuthorDate: 2022-02-17 20:12:38 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-17 20:12:38 +0900 Reuse `-v` option result as `target_platform` Backticks method invokes `/bin/sh` when the command contains quotes, and `sh` clears some environment variables set in runruby.rb to search the built shared library. commit dfe7faa6b60464c184fede59f227341f6c57cc97 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-02-17 19:01:33 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-02-17 19:04:16 +0900 exclude name must be Regexp or Symbol https://github.com/ruby/ruby/blob/fdf0f8d81487560f5837dc7e3888a96f7c2b4ec9/tool/lib/test/unit.rb#L1273-L1290 commit fdf0f8d81487560f5837dc7e3888a96f7c2b4ec9 Author: Koichi Sasada AuthorDate: 2022-02-17 18:57:33 +0900 Commit: Koichi Sasada CommitDate: 2022-02-17 18:58:37 +0900 btest-ruby OPTS=-v should disable quiet `make btest-ruby` is run with -q (quiet) option and -v should remove -q option. commit 9f81d9f92d4f10bbdd0b5ac80b9d5cd8921a71be Author: Hiroshi SHIBATA AuthorDate: 2022-01-27 09:55:41 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-17 14:36:30 +0900 Hide patchlevel from release build Notes: Merged: https://github.com/ruby/ruby/pull/5496 commit 5f01fba001c478834d97d8abf88b0cb6e235d436 Author: Yusuke Endoh AuthorDate: 2022-02-17 00:36:08 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-17 01:43:59 +0900 yjit_codegen.c: Prevent a possible out-of-bound access The code attempts to read `C_ARG_REGS[leaf_builtin->argc + 1]`, and the size of `C_ARG_REGS` is `NUM_C_ARG_REGS`. So, the guard condition must be `leaf_builtin->argc + 1 + 1 <= NUM_C_ARG_REGS`. This change fixes the off-by-one error. This issue was found by Coverity Scan. Notes: Merged: https://github.com/ruby/ruby/pull/5561 commit 797e8f542e29524cbfce3959da132ef6349a8bbc Author: Alan Wu AuthorDate: 2022-02-17 00:34:06 +0900 Commit: GitHub CommitDate: 2022-02-17 00:34:06 +0900 Fix -Wsign-compare when -DRUBY_DEBUG=1 Sizes for darray are size_t now. CC @peterzhu2118 commit 969ad5802dfe60c254f2f30514233b05ece8049c Author: Peter Zhu AuthorDate: 2022-02-15 23:57:33 +0900 Commit: Peter Zhu CommitDate: 2022-02-16 23:50:29 +0900 Change feature_index from fake Array to darray Using a fake (malloc) RArray is not friendly for the garbage collector. Fake RArray does not have a heap page, so it causes Variable Width Allocation to crash when we try to implement it on Arrays. This commit changes feature_index from a RArray to a darray. Notes: Merged: https://github.com/ruby/ruby/pull/5546 commit 71afa8164d40f18306fc2ee5a1ccc74f2926379b Author: Peter Zhu AuthorDate: 2022-02-15 23:55:53 +0900 Commit: Peter Zhu CommitDate: 2022-02-16 23:50:29 +0900 Change darray size to size_t and add functions that use GC malloc Changes size and capacity of darray to size_t to support more elements. Adds functions to darray that use GC allocation functions. Notes: Merged: https://github.com/ruby/ruby/pull/5546 commit f9abb286fb3ddff1caacea6c74d857803df18897 Author: Nobuyoshi Nakada AuthorDate: 2022-02-16 21:09:17 +0900 Commit: Alan Wu CommitDate: 2022-02-16 23:43:54 +0900 Parenthesize a macro expression The modulo in `rb_yjit_code_page_alloc` seems interpreted wrongly. Notes: Merged: https://github.com/ruby/ruby/pull/5560 commit 00c7a0d491504b0b2b1b8723d4b70e5c24ec649c Author: Koichi Sasada AuthorDate: 2022-02-16 17:15:00 +0900 Commit: Koichi Sasada CommitDate: 2022-02-16 17:57:04 +0900 fix parallel test timeout retrying On the parallel test, workers can be killed because of timeout and the information for the retrying can be inconsistent. This patch will skip if the inconsistency is found and report as an error. http://ci.rvm.jp/results/trunk-asserts@phosphorus-docker/3834082 Notes: Merged: https://github.com/ruby/ruby/pull/5559 commit b9851c7e1b1cbc13b050831b0429e7a4097e11b7 Author: Yusuke Endoh AuthorDate: 2022-02-16 14:15:11 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-16 16:32:28 +0900 lib/securerandom.rb: Fix the check of availability of Random.urandom Random.urandom raises a RuntimeError if it is unavailable. [Bug #13885] Notes: Merged: https://github.com/ruby/ruby/pull/5557 commit 1ae630db2682831cc0f2d381ff46e7b8cd3c2174 Author: Koichi Sasada AuthorDate: 2022-02-16 11:07:45 +0900 Commit: Koichi Sasada CommitDate: 2022-02-16 13:31:46 +0900 `wmap#each` should check liveness of keys `ObjectSpace::WeakMap#each*` should check key's liveness. fix [Bug #18586] Notes: Merged: https://github.com/ruby/ruby/pull/5556 commit 26187a8520b8c6645206a2064c11a7ab86a89845 Author: Peter Zhu AuthorDate: 2022-02-12 05:44:08 +0900 Commit: Peter Zhu CommitDate: 2022-02-14 23:35:54 +0900 Use RARRAY_SHARED_ROOT_FLAG for checking re-enter RARRAY_SHARED_ROOT_FLAG is defined as FL_USER5, but we should use RARRAY_SHARED_ROOT_FLAG instead of depending on that they're equal. Notes: Merged: https://github.com/ruby/ruby/pull/5547 commit 76e594d5157bd763636adb096d4aa06688ac03ac Author: Koichi Sasada AuthorDate: 2022-02-14 16:10:18 +0900 Commit: Koichi Sasada CommitDate: 2022-02-14 17:17:55 +0900 fix GC event synchronization (1) gc_verify_internal_consistency() use barrier locking for consistency while `during_gc == true` at the end of the sweep on `RGENGC_CHECK_MODE >= 2`. (2) `rb_objspace_reachable_objects_from()` is called without VM synchronization and it checks `during_gc != true`. So (1) and (2) causes BUG because of `during_gc == true`. To prevent this error, wait for VM barrier on `during_gc == false` and introduce VM locking on `rb_objspace_reachable_objects_from()`. http://ci.rvm.jp/results/trunk-asserts@phosphorus-docker/3830088 Notes: Merged: https://github.com/ruby/ruby/pull/5552 commit 8e0899919b1d543399f124092c16780467155f39 Author: Koichi Sasada AuthorDate: 2022-02-14 14:50:01 +0900 Commit: Koichi Sasada CommitDate: 2022-02-14 14:52:12 +0900 extend timeout for mjit 1 seconeds is not enough on a specific (busy) machine w/ mjit. http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/3830178 commit 7a8ea2e49720b68323c5cf9899d31c3a9e24dd80 Author: Nobuyoshi Nakada AuthorDate: 2021-12-04 20:06:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-13 18:25:59 +0900 [MSWin] Install OpenSSL with vcpkg commit 045ab1d056e3babcb02e92f6d7e6426a936f2ca3 Author: Koichi ITO AuthorDate: 2022-02-13 12:17:18 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-13 15:48:01 +0900 [DOC] Fix a typo in `Integer#chr` example The current example raises the following error. ```ruby 0..chr # => undefined local variable or method `chr' for main:Object (NameError) ``` This PR updates the example to produce the expected behavior. ```ruby 0.chr # => "\x00" ``` Notes: Merged: https://github.com/ruby/ruby/pull/5550 commit 844a8355a1ee22d67e91ae0553851d0285595cd0 Author: Nobuyoshi Nakada AuthorDate: 2022-02-12 17:12:57 +0900 Commit: git[bot] CommitDate: 2022-02-12 17:13:06 +0900 [ruby/rdoc] Load YAML library for each test https://github.com/ruby/rdoc/commit/a93e1bcd68 commit 3b3fb73d6107f64b4c71472de36c4debaf41cd42 Author: Nobuyoshi Nakada AuthorDate: 2021-09-15 17:26:14 +0900 Commit: git[bot] CommitDate: 2022-02-12 16:15:08 +0900 [ruby/rdoc] Dump plain objects as `RDoc::Options` So that the generated `.rdoc_options` file is loadable. https://github.com/ruby/rdoc/commit/6cf6e1647b commit 11f3882173e1efbc62a3a5bb667acf69ec7e8161 Author: Nobuyoshi Nakada AuthorDate: 2022-02-12 15:58:54 +0900 Commit: git[bot] CommitDate: 2022-02-12 16:02:17 +0900 [ruby/rdoc] Fix a test method name https://github.com/ruby/rdoc/commit/8166b84cf3 commit e95ad700799b996cf298c3de956f8075253ca57f Author: Nobuyoshi Nakada AuthorDate: 2022-02-12 15:22:47 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-12 15:22:47 +0900 [ruby/rdoc] Update generated files commit 5348a34504a67597e3a3ed98a3020dfd762241ad Author: Ulysse Buonomo AuthorDate: 2022-02-10 11:31:06 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-12 15:06:06 +0900 [ruby/rdoc] Relative loading for easier development (https://github.com/ruby/rdoc/pull/821) This patch makes sure we only load relative code. Hence when coding or testing rdoc, we'll be sure to always be using the correct code. Discussion started at https://github.com/ruby/rdoc/pull/817. Signed-off-by: Ulysse Buonomo https://github.com/ruby/rdoc/commit/aa41bd48eb Co-authored-by: Nobuyoshi Nakada commit 08137c5dd99354225874abc95280188738030794 Author: Yusuke Endoh AuthorDate: 2021-12-28 11:49:09 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-12 14:59:26 +0900 [ruby/rdoc] Optimize RawLine by using a regexp instead of negative look-ahead rule This improves the performance in some cases. `rdoc .../gems/sinatra-2.1.0/README.md` takes 10.5 sec. before this change, and 7.1 sec. after this change. `make rdoc` of ruby/ruby takes 19.3 sec. before this change, 18.1 sec. after this change. https://github.com/ruby/rdoc/commit/7cf8281e3e commit 6e65e04186edbf2b5be88cd30268d455a9c6fec5 Author: Nobuyoshi Nakada AuthorDate: 2022-02-12 12:37:51 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-12 12:38:37 +0900 [DOC] Remove unnecessary `rdoc-ref:` schemes commit 50c972a1ae1b15b292f45e78ff3227644f3cabda Author: Nobuyoshi Nakada AuthorDate: 2022-02-11 10:30:28 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-12 12:38:36 +0900 [DOC] Simplify operator method references commit e6b537e605381b6f1c9518adbeb6813c5e579df7 Author: S-H-GAMELINKS AuthorDate: 2022-02-12 00:07:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-12 12:28:07 +0900 Reuse operation rule for operation2 Notes: Merged: https://github.com/ruby/ruby/pull/5545 commit c0651b4ae1426f8ad9322a320d22035223c77537 Author: S-H-GAMELINKS AuthorDate: 2022-02-09 21:03:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-12 12:27:49 +0900 Reuse p_kwnorest rule for f_no_kwarg Notes: Merged: https://github.com/ruby/ruby/pull/5540 commit 68be9a9ae88ab6e28f7c479564ff5a963a3686ad Author: Steven Nunez AuthorDate: 2022-02-12 07:12:30 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-12 10:43:27 +0900 Fix Typo Notes: Merged: https://github.com/ruby/ruby/pull/5548 commit 118769d028c120c86566421096d69f7705315b5e Author: Yusuke Endoh AuthorDate: 2022-02-12 00:36:01 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-12 00:36:01 +0900 test/ruby/test_exception.rb: prevent "assigned but unused variable" commit e92e87bf903a420e690573de263955256facd93e Author: Ilia Zenkevich AuthorDate: 2022-02-10 01:57:56 +0900 Commit: git[bot] CommitDate: 2022-02-11 18:49:57 +0900 [rubygems/rubygems] Add clarification for bundle-config "with" option https://github.com/rubygems/rubygems/commit/666f3cc724 commit 7b676b3ce383c0b43a81694f80fbb424ee753213 Author: David Rodríguez AuthorDate: 2022-02-10 01:11:52 +0900 Commit: git[bot] CommitDate: 2022-02-11 18:20:20 +0900 [rubygems/rubygems] Fix corrupted lockfile when using `gemspec` and multiple sources https://github.com/rubygems/rubygems/commit/9712262d90 commit 36df0c72dc62317714ba460358873feb6b58c69d Author: Nobuyoshi Nakada AuthorDate: 2022-02-11 11:25:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-11 11:25:05 +0900 [DOC] Add `.rdoc_options` file Set `--page-dir` option so that direct rdoc call is consistent with `make html`. commit 261753249996d46e00c2549fff2527816bf387db Author: Peter Zhu AuthorDate: 2022-02-09 04:28:18 +0900 Commit: Peter Zhu CommitDate: 2022-02-10 23:33:42 +0900 Free cached mark stack chunks when freeing objspace Cached mark stack chunks should also be freed when freeing objspace. Notes: Merged: https://github.com/ruby/ruby/pull/5536 commit f07a2613e3f14ab713bc5ab88541101bc02a8e38 Author: Hiroshi SHIBATA AuthorDate: 2022-02-08 14:32:40 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-10 17:18:05 +0900 Support directory layout of ruby/ruby repository commit 52d3e31d274bed09aea6c167efe62e0c2f70eee4 Author: Hiroshi SHIBATA AuthorDate: 2022-02-04 18:00:14 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-10 17:18:05 +0900 [ruby/ipaddr] Bump version to 1.2.4 https://github.com/ruby/ipaddr/commit/6edf6ee6c3 commit 9b768012f6bf5b5896d2d34feb69605d4ccc9ca3 Author: Espartaco Palma AuthorDate: 2021-12-13 18:12:07 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-10 17:18:05 +0900 [ruby/ipaddr] Fix exception calling `to_range' after `freeze' https://github.com/ruby/ipaddr/commit/77fe1fca0a commit 100253c7f0f4d105ae88340a0314506cde69cfd2 Author: Jean Boussier AuthorDate: 2021-12-02 18:56:39 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-10 17:18:05 +0900 [ruby/ipaddr] Ipaddr#native must also coerce `@mask_addr` Before it would be left as an IPv6 mask causing `to_range` to fail. ``` >> IPAddr.new("::2").native.to_range /opt/rubies/3.0.3/lib/ruby/3.0.0/ipaddr.rb:479:in `set': invalid address (IPAddr::InvalidAddressError) ``` https://github.com/ruby/ipaddr/commit/af485192f3 commit 5221cb4468526a18875c21cff5dee5ac96d9873b Author: Jean Boussier AuthorDate: 2021-12-02 18:07:26 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-10 17:18:03 +0900 [ruby/ipaddr] Expose IPAddr::VERSION An almost universal convention for gems is to expose Namespace::VERSION which makes it much easier when debugging etc. https://github.com/ruby/ipaddr/commit/587ae6996e commit fd710d7e9995679db80b7adf35bbda2cd4db90c6 Author: Jeremy Evans AuthorDate: 2022-02-10 02:58:05 +0900 Commit: Jeremy Evans CommitDate: 2022-02-10 12:47:28 +0900 Fix Range#include? for beginless exclusive string ranges Previously, include? would return true for the end of the range, when it should return false because the range is exclusive. Research and Analysis by Victor Shepelev. Fixes [Bug #18577] Notes: Merged: https://github.com/ruby/ruby/pull/5541 commit 05b1944c53205ffd8c11f1ec2ae6fd48485b55b1 Author: John Hawthorn AuthorDate: 2022-02-10 05:14:51 +0900 Commit: John Hawthorn CommitDate: 2022-02-10 10:32:43 +0900 objspace: Hide identhash containing internal objs Inside ObjectSpace.reachable_objects_from we keep an internal identhash in order to de-duplicate reachable objects when wrapping them as InternalObject. Previously this hash was not hidden, making it possible to leak references to those internal objects to Ruby if using ObjectSpace.each_object. This commit solves this by hiding the hash. To simplify collection of values, we instead now just use the hash as a set of visited objects, and collect an Array (not hidden) of values to be returned. Notes: Merged: https://github.com/ruby/ruby/pull/5542 commit a271acf82284a8ee665686ab6e95df5622f4b1e2 Author: Sven Schwyn AuthorDate: 2022-02-09 22:15:54 +0900 Commit: git[bot] CommitDate: 2022-02-10 08:38:09 +0900 [rubygems/rubygems] Fix typo in multiple gemfiles warning https://github.com/rubygems/rubygems/commit/bc69d19097 commit 2cc890d7d3624a17fe023e1a6d7e2e162fd8f4d6 Author: 卜部昌平 AuthorDate: 2022-02-09 14:12:29 +0900 Commit: 卜部昌平 CommitDate: 2022-02-10 08:24:18 +0900 LLVM 15 begun. See also https://github.com/llvm/llvm-project/commit/a2601c98873376bbbeff4b6eddf0f4d920535f8b Notes: Merged: https://github.com/ruby/ruby/pull/5538 commit 496591de96b261b8789332c7f8b2bfbd17658955 Author: Yusuke Endoh AuthorDate: 2022-02-09 18:24:17 +0900 Commit: Yusuke Endoh CommitDate: 2022-02-10 00:14:27 +0900 st.c: Do not clear entries_bound when calling Hash#shift for empty hash tab->entries_bound is used to check if the bins are full in rebuild_table_if_necessary. Hash#shift against an empty hash assigned 0 to tab->entries_bound, but didn't clear the bins. Thus, the table is not rebuilt even when the bins are full. Attempting to add a new element into full-bin hash gets stuck. This change stops clearing tab->entries_bound in Hash#shift. [Bug #18578] Notes: Merged: https://github.com/ruby/ruby/pull/5539 commit 8013250136b61e0ae5a8d27a4ec73936cd7647eb Author: Nobuyoshi Nakada AuthorDate: 2021-12-08 23:54:19 +0900 Commit: git[bot] CommitDate: 2022-02-09 22:22:46 +0900 [ruby/rdoc] Simplify attribute exclusiveness conditions https://github.com/ruby/rdoc/commit/45e33c4b85 commit ec6d1cf28fc333fa360ab786c3852b95475932b2 Author: Nobuyoshi Nakada AuthorDate: 2021-12-09 00:15:54 +0900 Commit: git[bot] CommitDate: 2022-02-09 22:22:45 +0900 [ruby/rdoc] Get rid of ruby-mode.el confusions https://github.com/ruby/rdoc/commit/63fac51198 commit 994b3f1dc61b3eb3021fad82f6a7b934af8d0961 Author: Nobuyoshi Nakada AuthorDate: 2022-02-09 19:13:54 +0900 Commit: git[bot] CommitDate: 2022-02-09 19:41:12 +0900 [ruby/rdoc] Allow cross references to negation operator method https://github.com/ruby/rdoc/commit/69cafb213a commit 8db06fe2c9c1103fd623e97c80660e41502e6580 Author: Nobuyoshi Nakada AuthorDate: 2022-02-09 18:56:36 +0900 Commit: git[bot] CommitDate: 2022-02-09 19:41:11 +0900 [ruby/rdoc] Allow cross references to logical operator methods https://github.com/ruby/rdoc/commit/17c0da304d commit cbd54cba03d0a0ecae1df590ca78751362fda826 Author: Soutaro Matsumoto AuthorDate: 2022-02-08 21:23:13 +0900 Commit: git[bot] CommitDate: 2022-02-09 18:45:05 +0900 [ruby/rdoc] Skip parentheses on singleton class declaration https://github.com/ruby/rdoc/commit/b6c6d4f978 commit 88b1d21dbb64b4a310e589b1ac8b7661ea09500f Author: Nobuyoshi Nakada AuthorDate: 2022-02-09 14:58:35 +0900 Commit: git[bot] CommitDate: 2022-02-09 18:44:41 +0900 [ruby/rdoc] Allow cross references to backtick method https://github.com/ruby/rdoc/commit/52c33157f1 commit 202f690a5edef6d0b8f73c6df53edc02a0f16c7e Author: Nobuyoshi Nakada AuthorDate: 2022-02-07 22:06:53 +0900 Commit: git[bot] CommitDate: 2022-02-09 18:44:40 +0900 [ruby/rdoc] Allow cross references to operator methods Make operator methods, e.g., `Regexp#=~`, `Integer#<=>`, cross reference targets. https://github.com/ruby/rdoc/commit/5d332a4128 commit dec96dd89744695d310b70a672b9ea044eeed89f Author: Nobuyoshi Nakada AuthorDate: 2022-02-08 17:19:15 +0900 Commit: git[bot] CommitDate: 2022-02-09 18:43:07 +0900 [ruby/rdoc] Support all struct definition functions Currently only `rb_struct_define_without_accessor` is supported by https://github.com/ruby/rdoc/pull/73. We should support other three functions too. https://github.com/ruby/rdoc/commit/d42288f06c commit adca6f24b12d15299bf82fb518502dd27f4add84 Author: Nobuyoshi Nakada AuthorDate: 2022-02-09 15:31:10 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-09 15:31:10 +0900 [DOC] Prefer the original file names over generated names Should also the label in an explicit `rdoc-ref:` link be converted in the future? commit 85ad8c65ca7f2292dbdfebbf541cce6ac9b82451 Author: Burdette Lamar AuthorDate: 2022-02-08 23:51:39 +0900 Commit: GitHub CommitDate: 2022-02-08 23:51:39 +0900 [DOC] Adjustments to links in array.c (#5532) Mostly suppressing links to itself. Notes: Merged-By: BurdetteLamar commit 2a30ddd9f3551f9fa0422b3e215f6fbaa3c12799 Author: Paarth Madan AuthorDate: 2022-02-03 07:26:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-08 10:33:49 +0900 Remove extraneous "." in String#+@ documentation Notes: Merged: https://github.com/ruby/ruby/pull/5522 commit 8ca7b0b68aaff46ad88638f95b26429fee02d04a Author: Nobuyoshi Nakada AuthorDate: 2022-02-08 01:39:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-08 01:39:37 +0900 [DOC] Fix broken links to operator methods Once https://github.com/ruby/rdoc/pull/865 is merged, these hacks are no longer needed. commit 07bf65858d8dd5acc11c6bddb370735466690b47 Author: Nobuyoshi Nakada AuthorDate: 2022-02-08 01:28:08 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-08 01:28:08 +0900 [DOC] Fix broken links to case_mapping.rdoc commit 16fdc1ff46effdfa995b7280e6474ff45fbfbf4e Author: Nobuyoshi Nakada AuthorDate: 2022-02-08 01:26:39 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-08 01:27:52 +0900 [DOC] Fix broken links to literals.rdoc commit bc5662d9d8909363e67e01f3b1a2eecb0793d3ee Author: Nobuyoshi Nakada AuthorDate: 2022-02-08 01:18:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-08 01:18:56 +0900 [DOC] Simplify links to global methods commit f53f49197f8f785d372847b537d3607a2c71c70d Author: Peter Zhu AuthorDate: 2022-02-07 23:02:49 +0900 Commit: Peter Zhu CommitDate: 2022-02-07 23:52:06 +0900 [DOC] Replace with IO@Modes Notes: Merged: https://github.com/ruby/ruby/pull/5530 commit 9b3115ff643e2c3d30f12f7f7a80a07c686e23d2 Author: Peter Zhu AuthorDate: 2022-02-07 00:41:26 +0900 Commit: Peter Zhu CommitDate: 2022-02-07 23:52:06 +0900 [DOC] Remove extra period Notes: Merged: https://github.com/ruby/ruby/pull/5530 commit a12e2f9aa527b8e0b6d652679f400e120c6324d7 Author: Peter Zhu AuthorDate: 2022-02-07 00:41:15 +0900 Commit: Peter Zhu CommitDate: 2022-02-07 23:52:06 +0900 [DOC] Remove extra closing curly bracket Notes: Merged: https://github.com/ruby/ruby/pull/5530 commit a32e5e1b970298590200c2a63e5d4bacce4355ac Author: Peter Zhu AuthorDate: 2022-02-07 00:37:06 +0900 Commit: Peter Zhu CommitDate: 2022-02-07 23:52:06 +0900 [DOC] Use RDoc link style for links in the same class/module I used this regex: (?<=\[)#(?:class|module)-([A-Za-z]+)-label-([A-Za-z0-9\-\+]+) And performed a global find & replace for this: rdoc-ref:$1@$2 Notes: Merged: https://github.com/ruby/ruby/pull/5530 commit f9a2802bc58b611a16108bbaf3473cb6195eac0d Author: Peter Zhu AuthorDate: 2022-02-07 00:30:11 +0900 Commit: Peter Zhu CommitDate: 2022-02-07 23:52:06 +0900 [DOC] Use RDoc link style for links to other classes/modules I used this regex: ([A-Za-z]+)\.html#(?:class|module)-[A-Za-z]+-label-([A-Za-z0-9\-\+]+) And performed a global find & replace for this: rdoc-ref:$1@$2 Notes: Merged: https://github.com/ruby/ruby/pull/5530 commit ecd469fad00611a947aecc6e1e914682d1eec65c Author: Peter Zhu AuthorDate: 2022-02-06 04:25:22 +0900 Commit: Peter Zhu CommitDate: 2022-02-07 23:52:06 +0900 [DOC] Fix links in documentation for File and IO Fixes some typos and dead links. Notes: Merged: https://github.com/ruby/ruby/pull/5530 commit 981a75db910cd5cfd5ee527a25bdd762918077e3 Author: nicholas a. evans AuthorDate: 2022-01-22 06:54:40 +0900 Commit: git[bot] CommitDate: 2022-02-07 23:06:19 +0900 [rubygems/rubygems] Fix missing rdoc for Gem::Version The rdoc for Gem::Version is available here: * https://docs.ruby-lang.org/en/3.0/Gem/Version.html However it is currently missing from: * https://ruby-doc.org/stdlib-3.1.0/libdoc/rubygems/rdoc/Gem/Version.html * https://docs.ruby-lang.org/en/3.1/Gem/Version.html * https://docs.ruby-lang.org/en/master/Gem/Version.html * `ri Gem::Version` with `ri --version` => 6.4.0 and `gem --version` => 3.3.5 * `yard ri Gem::Version` with `yard --version` => 0.9.27 https://github.com/rubygems/rubygems/commit/c10e5dd884 commit 01693807415a90d39742a3c3391f942287358af8 Author: Nobuyoshi Nakada AuthorDate: 2022-02-07 15:30:07 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-07 15:30:07 +0900 Appveyor: Link vcpkg DLLs except for readline commit 8fe2ce83efb53fdef19a43cef520030ad36631a2 Author: Nobuyoshi Nakada AuthorDate: 2022-02-07 01:19:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-07 13:40:48 +0900 [MSWin] Link all vcpkg DLLs except for readline commit 65ccae5b2a0b29797522bbe882105eeea00433be Author: Nobuyoshi Nakada AuthorDate: 2022-02-07 00:10:00 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-07 13:40:48 +0900 [MSWin] Install libyaml using vcpkg commit a07fa198a690054e793faec2d09a87ebabc1c484 Author: Burdette Lamar AuthorDate: 2022-02-07 00:44:40 +0900 Commit: GitHub CommitDate: 2022-02-07 00:44:40 +0900 Improve links to labels in string.c and struct.c (#5531) Notes: Merged-By: BurdetteLamar commit 402d76485cfc20ce8307878a84967d75ccc13378 Author: Nobuyoshi Nakada AuthorDate: 2022-01-13 17:44:09 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-06 22:23:55 +0900 [MSWin] Install libffi using vcpkg commit b9083c206aa02a824970e809d66607dd2c1a90f1 Author: Nobuyoshi Nakada AuthorDate: 2022-02-05 21:51:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-06 22:22:58 +0900 [MSWin] Cache installed vcpkg packages commit 90a540e9f2072679aaccf1b2549fcc2efa564574 Author: Nobuyoshi Nakada AuthorDate: 2022-02-06 16:52:53 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-06 19:24:36 +0900 Appveyor: Try readline extension commit 2cf687fe6c6eb4ef1ef4958fc8aeb094e14bfbb5 Author: Nobuyoshi Nakada AuthorDate: 2022-02-06 16:44:18 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-06 19:23:30 +0900 Appveyor: DBM extensions have not been bundled already commit 7ce3a100f2aef897ee1062dcda23b70cd5574866 Author: Nobuyoshi Nakada AuthorDate: 2022-02-05 17:25:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-06 19:22:44 +0900 Fold command line items commit c79d2e54748f52c5023b0a1ee441561df9826c17 Author: John Hawthorn AuthorDate: 2022-01-29 23:11:10 +0900 Commit: John Hawthorn CommitDate: 2022-02-06 11:10:19 +0900 Fix TAG_THROW through require [Bug #18562] Previously this was being incorrectly swapped with TAG_RAISE in the next line. This would end up checking the T_IMEMO throw_data to the exception handling (which calls Module#===). This happened to not break existing tests because Module#=== returned false when klass is NULL. This commit handles throw from require correctly by jumping to the tag retaining the TAG_THROW state. Notes: Merged: https://github.com/ruby/ruby/pull/5513 commit 3e6c6c74dd40280103e953b321e5804054707053 Author: Burdette Lamar AuthorDate: 2022-02-06 05:05:27 +0900 Commit: GitHub CommitDate: 2022-02-06 05:05:27 +0900 [DOC] Enhanced RDoc for io.c (#5529) Changes parameter name from simple opts to open_opts or enc_opts when appropriate; leaves the name unchanged when more than one kind of option is allowed. Notes: Merged-By: BurdetteLamar commit 603ab709615dd35fa8ebe53087c27631f5b07812 Author: Koichi Sasada AuthorDate: 2022-02-05 03:10:15 +0900 Commit: Koichi Sasada CommitDate: 2022-02-06 03:05:47 +0900 support concurrent btest execution * `-j` option for concurrent test with threads * `-jN` uses N threads * `-j` uses nproc/2 threads * Introduce `BT` struct to manage configurations * Introduce `Assertion` to manage all assertions * Remove all toplevel instance variables * Show elapsed seconds at last ``` $ time make btest ... real 0m37.319s user 0m26.221s sys 0m16.534s $ time make btest TESTOPTS=-j ... real 0m11.812s user 0m36.667s sys 0m21.872s ``` Notes: Merged: https://github.com/ruby/ruby/pull/5528 commit 2a76440fac62bb0f6e53ccada07caf4b47b78cf9 Author: Aaron Patterson AuthorDate: 2022-01-29 03:06:02 +0900 Commit: Aaron Patterson CommitDate: 2022-02-05 07:36:04 +0900 [Bug #18501] Fire write barrier after hash has been written Before this change the write barrier was executed before the key and value were actually reachable via the Hash. This could cause inconsistencies in object coloration which would lead to accidental collection of dup'd keys. Example: 1. Object O is grey, Object P is white. 2. Write barrier fires O -> P 3. Write barrier does nothing 4. Malloc happens, which starts GC 5. GC colors O black 6. P is written in to O (now we have O -> P reference) 7. P is now accidentally treated as garbage Notes: Merged: https://github.com/ruby/ruby/pull/5525 commit 06a28ec4d40ca20b145b32cd6fb9ae9dd9b01582 Author: Burdette Lamar AuthorDate: 2022-02-05 07:26:49 +0900 Commit: GitHub CommitDate: 2022-02-05 07:26:49 +0900 [DOC] Enhanced RDoc for io.c (#5527) Treats: IO.binread (abbreviated to be like IO.binwrite). IO.write IO.binwrite IO.copystream IO#external_encoding IO#internal_encoding IO#set_encoding Notes: Merged-By: BurdetteLamar commit 46f6575157d4c2f6bbd5693896e26a65037e5552 Author: Burdette Lamar AuthorDate: 2022-02-04 21:55:10 +0900 Commit: GitHub CommitDate: 2022-02-04 21:55:10 +0900 [DOC] Enhanced RDoc for io.c (#5511) Treats: IO.foreach IO.readlines IO.read IO.binread Notes: Merged-By: BurdetteLamar commit 203b1fc7e206764f52c99e44af85c651069cd8b9 Author: Max Leopold AuthorDate: 2022-02-04 02:22:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-04 08:26:49 +0900 Add documentation for regexp emoji named character property Notes: Merged: https://github.com/ruby/ruby/pull/5524 commit 9fab2c1a1a5f5e429eb88eac29d250685dcc4354 Author: Matt Valentine-House AuthorDate: 2022-02-02 06:36:29 +0900 Commit: Peter Zhu CommitDate: 2022-02-04 05:07:35 +0900 Add the size pool slot size to the output of ObjectSpace.dump/dump_all Notes: Merged: https://github.com/ruby/ruby/pull/5520 commit af321ea7273e43d65ea7f5743f56e10dcd4e98b0 Author: Peter Zhu AuthorDate: 2022-02-04 01:51:20 +0900 Commit: Peter Zhu CommitDate: 2022-02-04 05:06:55 +0900 Move total_freed_pages to size pool Notes: Merged: https://github.com/ruby/ruby/pull/5523 commit a9221406aa3177f98be507ff5474f2f7d78b481a Author: Peter Zhu AuthorDate: 2022-02-04 01:45:37 +0900 Commit: Peter Zhu CommitDate: 2022-02-04 05:06:55 +0900 Move total_allocated_pages to size pool Notes: Merged: https://github.com/ruby/ruby/pull/5523 commit 424374d3302d8d25165007e7afedf14b1a76d23e Author: Peter Zhu AuthorDate: 2022-02-03 05:32:38 +0900 Commit: Peter Zhu CommitDate: 2022-02-03 23:22:24 +0900 Fix case when gc_marks_continue does not yield slots gc_marks_continue will start sweeping when it finishes marking. However, if the heap we are trying to allocate into is full, then the sweeping may not yield any free slots. If we don't call gc_sweep_continue immediate after this, then another GC will be started halfway during lazy sweeping. gc_sweep_continue will either grow the heap or finish sweeping. Notes: Merged: https://github.com/ruby/ruby/pull/5521 commit 7529c538915cd1765b0a362ca64e8f8ff439d7fc Author: Jeremy Evans AuthorDate: 2022-01-05 03:22:37 +0900 Commit: git[bot] CommitDate: 2022-02-03 05:10:21 +0900 [ruby/net-http] Do not set SNI hostname if connecting to IP address RFC 6066, section 3, explicitly disallows the use of an IP address as an SNI server name. So check if the connection is being made to an IP address using the resolv regexps, and do not set an SNI hostname in that case. Recent changes to LibreSSL make it more strictly follow RFC 6066, resulting an s.hostname= raising an error if passed an IP address. When such verions of LibreSSL are used, this change not only fixes the net/http tests, it also fixes tests for webrick and open-uri, which both make SSL connections to 127.0.0.1 using net/http in their tests. Avoid warning in the openssl extension by unsetting @ssl_context.verify_hostname if connecting to an IP address. Make changes so that the post_connection_check still happens when connecting to an IP address, which is necessary to keep checking that the certificate returned includes the IP address, which one of the tests depends on. Revert the previous change that modified the regexp used for checking the error message. https://github.com/ruby/net-http/commit/fa68e64bee commit 2913a2f5cfceb6d6b411e165d9c723bd2435eacd Author: Jemma Issroff AuthorDate: 2022-02-02 23:14:59 +0900 Commit: Aaron Patterson CommitDate: 2022-02-03 02:20:34 +0900 Treat TS_ICVARC cache as separate from TS_IVC cache Notes: Merged: https://github.com/ruby/ruby/pull/5519 commit 7b77d46671685c837adc33b39ae0210e04cd8b24 Author: Peter Zhu AuthorDate: 2022-02-01 23:25:12 +0900 Commit: Peter Zhu CommitDate: 2022-02-02 23:52:04 +0900 Decouple GC slot sizes from RVALUE Add a new macro BASE_SLOT_SIZE that determines the slot size. For Variable Width Allocation (compiled with USE_RVARGC=1), all slot sizes are powers-of-2 multiples of BASE_SLOT_SIZE. For USE_RVARGC=0, BASE_SLOT_SIZE is set to sizeof(RVALUE). Notes: Merged: https://github.com/ruby/ruby/pull/5517 commit af107710457b4bd148c6e5ee7a336ed4961f5423 Author: S.H AuthorDate: 2022-02-02 22:52:55 +0900 Commit: GitHub CommitDate: 2022-02-02 22:52:55 +0900 Add `econv_get_encoding` function Notes: Merged: https://github.com/ruby/ruby/pull/5509 Merged-By: nobu commit 94687a68265fa400afb5308d5f7ed9a095fd5200 Author: Olle Jonsson AuthorDate: 2022-02-02 21:06:23 +0900 Commit: git[bot] CommitDate: 2022-02-02 21:17:47 +0900 [ruby/net-protocol] Drop unused gemspec directives This gem exposes no executables. https://github.com/ruby/net-protocol/commit/3c4def2a64 commit d4a8c04dc7bb1c9aa48eaf50dc6b1869d79d73c8 Author: Soutaro Matsumoto AuthorDate: 2022-02-02 13:25:47 +0900 Commit: GitHub CommitDate: 2022-02-02 13:25:47 +0900 Update RBS (#5515) * Bundle RBS 2.1.0 Notes: Merged-By: soutaro commit 0b2f6b942b0c38bf4925f4e8ad662f6a14954060 Author: Dan Jensen AuthorDate: 2022-01-27 03:35:13 +0900 Commit: git[bot] CommitDate: 2022-02-01 20:07:18 +0900 [rubygems/rubygems] Skip "seller shipped" notification after delivery If a Shipment has been delivered, there is no point in notifying the buyer that the seller shipped. Instead, we should simply notify the buyer that the shipment was delivered. This is relevant in cases where the seller is late to mark a Shipment as shipped, so the first EasyPost Tracker update marks it as delivered, or in cases where the seller fails to mark as shipped and the buyer marks it as delivered. This fixes a Shipment event handler so the buyer notification for shipment is no longer invoked if the Shipment is already delivered. https://github.com/rubygems/rubygems/commit/09c2cadc86 commit f6894711a48ab422139aff5afc4bbcf202ff7167 Author: Nobuyoshi Nakada AuthorDate: 2022-02-01 19:01:10 +0900 Commit: git[bot] CommitDate: 2022-02-01 20:04:15 +0900 [ruby/io-wait] Exclude rake files from packages https://github.com/ruby/io-wait/commit/7be58cd7f4 commit ddb9d60f7df1a7316092c795f97ca2fcae19e2c3 Author: Jean Boussier AuthorDate: 2022-01-12 00:14:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-02-01 14:11:16 +0900 [ruby/io-wait] Make the gem a noop on Rubies older than 2.6 Ref: https://github.com/mikel/mail/pull/1439 Some gems depend on io-wait, but still support older rubies, so they have to chose between droping support or not listing io-wait. But io-wait could act a a noop on older rubies. https://github.com/ruby/io-wait/commit/75fcb74c32 commit fc4fbeef28b1d243e45d7fc8d60778156fd364ca Author: Nobuyoshi Nakada AuthorDate: 2022-02-01 13:21:51 +0900 Commit: git[bot] CommitDate: 2022-02-01 13:22:03 +0900 [ruby/io-wait] bump up to 0.2.2 https://github.com/ruby/io-wait/commit/e15a2486b2 commit ec906191ab956c94c0497281155af457a380cb17 Author: Hiroshi SHIBATA AuthorDate: 2022-02-01 12:21:53 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-01 12:21:53 +0900 Restore workaround for test_rubygems.rb, it still fails with chkbuild environment commit 6623d60ec8eb980282aec0256564726db15f093d Author: David Rodríguez AuthorDate: 2022-02-01 04:05:09 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-01 08:09:23 +0900 Try make this more readable and consistent with other targets Notes: Merged: https://github.com/ruby/ruby/pull/5512 commit e53af7d1fbcca4fba6e9099b2bf935dc92267607 Author: David Rodríguez AuthorDate: 2022-02-01 01:49:03 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-01 08:09:23 +0900 Tweaks to freeze bundler CI Currently some specs are broken because `rspec-mocks-3.10.3` is used, which has some breaking changes, apparently. This change makes ruby-core install the same gems installed upstream for running bundle specs, so that things never break with 3rd party releases. Notes: Merged: https://github.com/ruby/ruby/pull/5512 commit 517d7c3221e3ca0ca76d79cc67cb9efefc01ece3 Author: David Rodríguez AuthorDate: 2022-02-01 01:45:12 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-02-01 08:09:23 +0900 Sync latest Bundler & RubyGems Notes: Merged: https://github.com/ruby/ruby/pull/5512 commit d5c9710b07824dcf4c299eda02ad989a739398ae Author: Josef Šimánek AuthorDate: 2022-01-29 22:36:41 +0900 Commit: git[bot] CommitDate: 2022-02-01 05:20:38 +0900 [rubygems/rubygems] Remove encoding pragma from specification.rb - it is not used since it is not at the top of the file - it is not useful anymore https://github.com/rubygems/rubygems/commit/6aee05d923 commit 605f226142a47c4f9e4cc88717c5d6170bc3d7f1 Author: Peter Zhu AuthorDate: 2022-01-28 23:43:46 +0900 Commit: Peter Zhu CommitDate: 2022-01-31 23:42:20 +0900 Fix heap page iteration in gc_verify_heap_page The for loops are not correctly iterating heap pages in gc_verify_heap_page. Notes: Merged: https://github.com/ruby/ruby/pull/5503 commit b01657c4707eadd9de9573ce9818d0b5f0fe3047 Author: Steven Nunez AuthorDate: 2022-01-31 07:59:10 +0900 Commit: GitHub CommitDate: 2022-01-31 07:59:10 +0900 [DOC] Fix case for new sentence. Notes: Merged: https://github.com/ruby/ruby/pull/5505 Merged-By: nobu commit f924e05b68f30371434d390a3e97f874a055e5c3 Author: Koichi ITO AuthorDate: 2022-01-31 07:38:10 +0900 Commit: GitHub CommitDate: 2022-01-31 07:38:10 +0900 [DOC] Fix a typo in the NEWS.md Follow up of https://github.com/ruby/ruby/commit/fbb3cab. Notes: Merged: https://github.com/ruby/ruby/pull/5507 Merged-By: nobu commit 99a65e80d56c654d60fdd3f30c7cf7450a591b20 Author: Burdette Lamar AuthorDate: 2022-01-31 07:17:53 +0900 Commit: GitHub CommitDate: 2022-01-31 07:17:53 +0900 [DOC] Enhanced RDoc for io.c (#5460) Treats: Kernel#readline Kernel#readlines Kernel#`cmd` IO#advise IO.select IO#ioctl IO#fcntl Kernel#syscall IO.pipe Notes: Merged-By: BurdetteLamar commit e75bd8df51648a35442649fd3e4b9ac4e223752a Author: Koichi Sasada AuthorDate: 2022-01-31 03:27:18 +0900 Commit: Koichi Sasada CommitDate: 2022-01-31 03:47:03 +0900 pend some tests while using to_binary ISeqs from ISeq#to_binary/load do not support `keep_script_lines` now so some tests should be pending tests with `RUBY_ISEQ_DUMP_DEBUG=to_binary` Notes: Merged: https://github.com/ruby/ruby/pull/5508 commit 44c44b9b4af14f42a0dc6df9287c45d9689847bb Author: Nobuyoshi Nakada AuthorDate: 2022-01-29 22:54:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-29 22:59:39 +0900 Ignore warnings at reading debug info for now Something seems changed on FreeBSD 13. commit 67f4729ff0b0493ad82486b2f797a5c2b3ee20a6 Author: Nobuyoshi Nakada AuthorDate: 2022-01-29 19:07:38 +0900 Commit: GitHub CommitDate: 2022-01-29 19:07:38 +0900 [Bug#18556] Fallback `MAP_ANONYMOUS` Define `MAP_ANONYMOUS` to `MAP_ANON` if undefined on old systems. Notes: Merged: https://github.com/ruby/ruby/pull/5506 Merged-By: nobu commit fbb3cab9564ea7f4de6e048b1d44888c0ecd2d37 Author: Takashi Kokubun AuthorDate: 2022-01-29 17:32:38 +0900 Commit: Takashi Kokubun CommitDate: 2022-01-29 17:32:38 +0900 Add a NEWS entry about [Feature #16806] commit 7672f6a42390a1a421fb0633e6810a92df7dad7a Author: Nobuyoshi Nakada AuthorDate: 2022-01-29 15:29:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-29 15:29:46 +0900 mkmf: unify duplicate code in pkg_config commit b90e56e6243f4e6567991bfd2375e1f58b1414a0 Author: Mike Dalessio AuthorDate: 2022-01-18 22:13:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-29 15:22:52 +0900 mkmf: pkg_config accepts multiple options Notes: Merged: https://github.com/ruby/ruby/pull/5436 commit 24c7e75ded461446e7c8e83bbceecccf7bcb4d0e Author: Mike Dalessio AuthorDate: 2022-01-18 21:58:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-29 15:22:52 +0900 test: backfill coverage for MakeMakefile.pkg_config Notes: Merged: https://github.com/ruby/ruby/pull/5436 commit 018036c282ea2ada100b8dbb78c2c7b8609013fc Author: Peter Zhu AuthorDate: 2022-01-29 03:32:11 +0900 Commit: Peter Zhu CommitDate: 2022-01-29 03:33:03 +0900 Remove assert_equal that will never be run `@s1.set_len(3)` will raise so the `assert_equal` will never be ran. commit e0c5488ff9308b1a16718c64bc9096caca88ed83 Author: Benoit Daloze AuthorDate: 2022-01-28 22:42:38 +0900 Commit: Benoit Daloze CommitDate: 2022-01-28 22:42:38 +0900 Update to ruby/spec@902ab83 commit bb5f71088774b14c96fe11718e5e1b7ffb20fff2 Author: Benoit Daloze AuthorDate: 2022-01-28 22:42:36 +0900 Commit: Benoit Daloze CommitDate: 2022-01-28 22:42:36 +0900 Update to ruby/mspec@49adc2f commit d66e7ec77b0067b113e1b9f584e7f5f741d6cd78 Author: aycabta AuthorDate: 2022-01-18 06:20:46 +0900 Commit: git[bot] CommitDate: 2022-01-27 20:54:09 +0900 [ruby/reline] Add a comment for VK_MENU https://github.com/ruby/reline/commit/ee307c2b01 commit f4ee60543acf05742360c8d1f029d88672ff1eef Author: aycabta AuthorDate: 2022-01-18 06:10:06 +0900 Commit: git[bot] CommitDate: 2022-01-27 20:54:09 +0900 [ruby/reline] The AltGr behaves exactly the same as Ctrl+Alt On European keyboards. https://github.com/ruby/reline/commit/75fe9759a4 commit f511ff3b3af4e70877538b911fde27c57792fc1d Author: Charles Oliver Nutter AuthorDate: 2022-01-27 14:29:17 +0900 Commit: git[bot] CommitDate: 2022-01-27 17:16:05 +0900 [ruby/yaml] Add JRuby-specific warning when psych fails The error here is confusing for users because JRuby does not use libyaml and installing it will not help. Instead, JRuby directs them to a wiki page that describes an issue when multiple conflicting versions of SnakeYAML are installed. This change allows us to use the yaml gem and delete our local sources. https://github.com/ruby/yaml/commit/8122087ffb commit e89d80702bd98a8276243a7fcaa2a158b3bfb659 Author: Nobuyoshi Nakada AuthorDate: 2022-01-27 00:28:39 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-27 15:46:08 +0900 Fix memory leak at the same named alias [Bug #18516] When aliasing a method to the same name method, set a separate bit flag on that method definition, instead of the reference count increment. Although this kind of alias has no actual effect at runtime, is used as the hack to suppress the method re-definition warning. Notes: Merged: https://github.com/ruby/ruby/pull/5493 commit 7ff1bf317887c0d7b21e91ad548d07b9f05c540c Author: Nobuyoshi Nakada AuthorDate: 2022-01-27 00:15:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-27 14:28:29 +0900 An alias can suppress method redefinition warning commit 6a6227e0168b059c3ed34c9f0ace2e5dc2364221 Author: Nobuyoshi Nakada AuthorDate: 2022-01-27 00:53:12 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-27 14:00:33 +0900 Shifting zero always results in zero [Bug #18517] Notes: Merged: https://github.com/ruby/ruby/pull/5494 commit 99d02caed3fb86a8bbe3ae6daddf2517e2f3f441 Author: Jesse Chavez AuthorDate: 2022-01-27 04:05:21 +0900 Commit: git[bot] CommitDate: 2022-01-27 12:33:06 +0900 [ruby/logger] Fix log rotation inter-process lock failed. Issue only occurs in JRuby 9.3.0.0 and Windows and the full console output is: log rotation inter-process lock failed. D:\log.txt -> D:\log.txt.0: The process cannot access the file because it is being used by another process. log writing failed. closed stream log writing failed. closed stream ... https://github.com/ruby/logger/commit/19fc734638 commit d3d888b9867e4fe6baa28d4f5351f72961a3bb1f Author: Matt Valentine-House AuthorDate: 2022-01-27 05:16:33 +0900 Commit: Peter Zhu CommitDate: 2022-01-27 05:28:09 +0900 [lldb] Handle MacOS 64Kb heap pages in the lldb helpers Notes: Merged: https://github.com/ruby/ruby/pull/5495 commit 1a180b7e18a2d415282df637e27a446c71246ef7 Author: Jemma Issroff AuthorDate: 2022-01-26 06:04:17 +0900 Commit: Aaron Patterson CommitDate: 2022-01-27 02:02:59 +0900 Streamline cached attr reader / writer indexes This commit removes the need to increment and decrement the indexes used by vm_cc_attr_index getters and setters. It also introduces a vm_cc_attr_index_p predicate function, and a vm_cc_attr_index_initialize function. Notes: Merged: https://github.com/ruby/ruby/pull/5485 commit b6b2e489f10bfc771beae8fa0ee5237613acd18f Author: manga_osyo AuthorDate: 2021-12-06 08:57:56 +0900 Commit: git[bot] CommitDate: 2022-01-27 01:28:52 +0900 [ruby/irb] Changed to call Kernel.print If you call `binding.irb` on a class defined `#print`, it will crash, so call `Kernel.print`. Fix [Bug #18389] `binding.irb` can fail in some classes that implement `context` and `print` methods. https://github.com/ruby/irb/commit/d54b271984 commit e7141630115ef9b0d3042af761fe0afabfcd578c Author: Peter Zhu AuthorDate: 2022-01-26 23:45:22 +0900 Commit: Peter Zhu CommitDate: 2022-01-26 23:45:22 +0900 Fix typo in assertion in gc.c commit bffd6cbd97dd61e347a8f7de36266809444fb4c1 Author: Nobuyoshi Nakada AuthorDate: 2022-01-26 18:23:51 +0900 Commit: GitHub CommitDate: 2022-01-26 18:23:51 +0900 Check if `execv` is available for ruby/missing.h As MinGW has the declaration, the `dllimport` attribute difference is warned when compiling missing/*.c without including ruby/win32.h. ``` ../src/include/ruby/missing.h:316:17: warning: 'execv' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] 316 | RUBY_EXTERN int execv(const char *, char *const []); | ^~~~~ ``` Notes: Merged: https://github.com/ruby/ruby/pull/5491 Merged-By: nobu commit 4010cbfe35aa520fe7efc282c7cc16ca67341a91 Author: Nobuyoshi Nakada AuthorDate: 2022-01-26 15:56:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-26 15:56:22 +0900 Use the prefixed pkg-config command commit 16e7585557c338563447861ee50f835514bb7e3c Author: Nobuyoshi Nakada AuthorDate: 2022-01-26 14:34:25 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-26 14:34:25 +0900 Unpoison the cached object in the exact size commit c925d3b6689515f76dcfbb1dc419746dac6f0738 Author: David Rodríguez AuthorDate: 2022-01-24 20:04:11 +0900 Commit: git[bot] CommitDate: 2022-01-26 13:09:31 +0900 [rubygems/rubygems] Fix `force_ruby_platform` ignored when lockfile includes the current specific platform https://github.com/rubygems/rubygems/commit/9ca371adf8 commit cc8064ba2e046f384f446889c8525bf976733918 Author: Koichi Sasada AuthorDate: 2022-01-26 10:05:10 +0900 Commit: Koichi Sasada CommitDate: 2022-01-26 10:05:10 +0900 Do not need to print to stderr commit e953d6865724d8b7e79aa30c445d986f28f5e1c9 Author: Koichi Sasada AuthorDate: 2022-01-26 01:51:16 +0900 Commit: Koichi Sasada CommitDate: 2022-01-26 09:56:27 +0900 refactoring btest output don't duplicate the message, but prepare `out` var to choose stdout/err. Notes: Merged: https://github.com/ruby/ruby/pull/5484 commit cac6fe90236c8541059edc74080d50c49be7ea87 Author: Koichi Sasada AuthorDate: 2022-01-26 01:34:57 +0900 Commit: Koichi Sasada CommitDate: 2022-01-26 09:56:09 +0900 add `--stderr-on-failure` option to test-all Now all failure messages are printed to stdout. This option makes all failure messages printed into stderr. Notes: Merged: https://github.com/ruby/ruby/pull/5483 commit 142d5db1122cf28f1a5563c421f169923a9f2e79 Author: Peter Zhu AuthorDate: 2022-01-26 06:16:37 +0900 Commit: Peter Zhu CommitDate: 2022-01-26 06:51:16 +0900 Support ID_TABLE_STOP for replace function Iteration should top if the replace function returns ID_TABLE_STOP. Notes: Merged: https://github.com/ruby/ruby/pull/5486 commit 82f0580aa4a1a2da6ab3803dfb4f5e5a58820d3d Author: Peter Zhu AuthorDate: 2022-01-26 06:15:46 +0900 Commit: Peter Zhu CommitDate: 2022-01-26 06:51:16 +0900 Call rb_id_table_foreach_values instead These places never replace the value, so call rb_id_table_foreach_values instead of rb_id_table_foreach_values_with_replace. Notes: Merged: https://github.com/ruby/ruby/pull/5486 commit 4d9ad91a35b16afde38fd4ae513a49d22e27b3ea Author: Peter Zhu AuthorDate: 2022-01-26 06:11:24 +0900 Commit: Peter Zhu CommitDate: 2022-01-26 06:51:16 +0900 Rename rb_id_table_foreach_with_replace Renames rb_id_table_foreach_with_replace to rb_id_table_foreach_values_with_replace and passes only the value to the callback. We can use this in GC compaction when we cannot access the global symbol array. Notes: Merged: https://github.com/ruby/ruby/pull/5486 commit 6e901939c67d7c1275c183b0bde4d5d1c78ef081 Author: Nobuyoshi Nakada AuthorDate: 2022-01-26 05:51:37 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-26 05:57:01 +0900 Revert "`ID` in `rb_id_table_foreach_with_replace` [Feature #18253]" This reverts commit 530e485265dac6e2aea1d587a4a79a314cc772cf. `rb_id_table_foreach_with_replace` is used during GC compaction, and the global symbols array can have been moved at that time. commit 42ef3fcaef5e181d80393084b65af5a28a7b1a01 Author: Ngan Pham AuthorDate: 2022-01-25 14:01:21 +0900 Commit: git[bot] CommitDate: 2022-01-26 02:24:30 +0900 [rubygems/rubygems] Use Gem::Platform.local instead of RUBY_PLATFORM In certain places, we want to display the platform name with `Gem::Platform.local` instead of `RUBY_PLATFORM`. Fixes https://github.com/rubygems/rubygems/issues/5264 https://github.com/rubygems/rubygems/commit/bdd1848ae8 commit b07879e553a73200ec1d2c3f6b12127e22f965cd Author: Peter Zhu AuthorDate: 2022-01-25 04:44:58 +0900 Commit: Peter Zhu CommitDate: 2022-01-25 23:38:17 +0900 Remove redundant if statement in try_move The if statement is redundant since if `index == 0` then `BITS_BITLENGTH * index == 0`. Notes: Merged: https://github.com/ruby/ruby/pull/5479 commit e3b5cc8836197dc2940a297b9130ed545bc3f7a7 Author: Nobuyoshi Nakada AuthorDate: 2022-01-25 23:10:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-25 23:10:20 +0900 NEWS: `Fixnum` and `Bignum` are removed finally [Feature #12005] commit 342e7a094a70d6f90b96262c88177dae32976c85 Author: David Rodríguez AuthorDate: 2022-01-25 20:48:16 +0900 Commit: git[bot] CommitDate: 2022-01-25 22:12:33 +0900 [rubygems/rubygems] Fix spec to not touch the network And not depend on the state of rack's master branch, in particular, on their Ruby support range. https://github.com/rubygems/rubygems/commit/9ea4baffac commit cd806e19b7b72ef81762c57090d0a73a42e2382d Author: David Rodríguez AuthorDate: 2022-01-25 20:47:57 +0900 Commit: git[bot] CommitDate: 2022-01-25 22:12:33 +0900 [rubygems/rubygems] Remove unnecessary comment https://github.com/rubygems/rubygems/commit/ef4e5c6169 commit a51e1cd682daeb76f201e62eaedcf6d51a18cffe Author: Koichi Sasada AuthorDate: 2022-01-25 15:44:38 +0900 Commit: Koichi Sasada CommitDate: 2022-01-25 16:43:57 +0900 enable `RUBY_ON_BUG` on release build [Feature #18483] Notes: Merged: https://github.com/ruby/ruby/pull/5481 commit de678cd51e2e73c2edaced5f824e93c6a91a0f85 Author: David Rodríguez AuthorDate: 2021-11-19 05:45:04 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-25 08:50:31 +0900 [ruby/pathname] Officially drop support for ruby 2.6 or older The gem doesn't even install on old rubies, but since the gemspec claims it's supported, `gem install pathname` will try to install it and print an error. This commit doesn't fix the above issue. The only way to fix it would be to restore support and release a new version that actually supports old rubies. However, such a change has been proposed and ignored for a long time. So this issue proposes to leave that broken but at least bring the gemspec manifest and the CI matrix in sync to hopefully avoid this issue from happening again in the future. https://github.com/ruby/pathname/commit/3ee010b538 commit 530e485265dac6e2aea1d587a4a79a314cc772cf Author: Nobuyoshi Nakada AuthorDate: 2021-12-22 14:29:05 +0900 Commit: Aaron Patterson CommitDate: 2022-01-25 08:40:47 +0900 `ID` in `rb_id_table_foreach_with_replace` [Feature #18253] Pass the `ID` from `rb_id_table_foreach_with_replace` to callback functions. Notes: Merged: https://github.com/ruby/ruby/pull/5458 commit 87784fdeb2340574d11887474f6e2d9b0d5d3bc3 Author: Peter Zhu AuthorDate: 2022-01-25 03:38:15 +0900 Commit: Peter Zhu CommitDate: 2022-01-25 04:34:12 +0900 Keep right operand within width when right shifting NUM_IN_PAGE could return a value much larger than 64. According to the C11 spec 6.5.7 paragraph 3 this is undefined behavior: > If the value of the right operand is negative or is greater than or > equal to the width of the promoted left operand, the behavior is > undefined. On most platforms, this is usually not a problem as the architecture will mask off all out-of-range bits. Notes: Merged: https://github.com/ruby/ruby/pull/5478 commit 4317a6750dceb917ee9c2be7a8191f6bde103f94 Author: David Rodríguez AuthorDate: 2022-01-23 13:25:12 +0900 Commit: git[bot] CommitDate: 2022-01-25 01:11:39 +0900 [rubygems/rubygems] Forbid downgrading past the originally shipped version on Ruby 3.1 https://github.com/rubygems/rubygems/commit/68bef90339 commit 663833b08fbae8d92cb2245a729312b86aa33a35 Author: Peter Zhu AuthorDate: 2022-01-21 06:23:43 +0900 Commit: Peter Zhu CommitDate: 2022-01-24 23:21:08 +0900 [wasm] Disallow compaction WebAssembly doesn't support signals so we can't use read barriers so we can't use compaction. Notes: Merged: https://github.com/ruby/ruby/pull/5475 commit 5de62fe37c16033e5dedc51ae9f2dea5db7ecd5a Author: Nobuyoshi Nakada AuthorDate: 2022-01-13 22:42:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-24 18:10:17 +0900 Fixed an missing percent in the batch file commit e7b573e5768956b110c25b2cab02a889f2e8cc8e Author: apatniv AuthorDate: 2022-01-24 11:31:29 +0900 Commit: git[bot] CommitDate: 2022-01-24 12:12:15 +0900 [ruby/io-wait] Document mandatory require for using io/wait methods https://github.com/ruby/io-wait/commit/2beb05bd48 commit 328e6bf3b3a167529e5c64a281e773c97afd16e3 Author: Kenta Murata AuthorDate: 2022-01-19 16:53:26 +0900 Commit: Kenta Murata CommitDate: 2022-01-24 10:56:37 +0900 [ruby/bigdecimal] Version 3.1.2 https://github.com/ruby/bigdecimal/commit/57e2194135 commit 7db195d521337f78b4477b5730514b78fad8d5a1 Author: Kenta Murata AuthorDate: 2022-01-19 15:53:36 +0900 Commit: Kenta Murata CommitDate: 2022-01-24 10:56:30 +0900 [ruby/bigdecimal] Fix the maximum precision of the quotient Fixes https://github.com/ruby/bigdecimal/pull/220 https://github.com/ruby/bigdecimal/commit/127a1b5a31 commit 506728d0b86e2cd42cc5668ed417c4a870b40bb0 Author: Kenta Murata AuthorDate: 2022-01-19 14:31:17 +0900 Commit: Kenta Murata CommitDate: 2022-01-24 10:56:25 +0900 [ruby/bigdecimal] Fix typo https://github.com/ruby/bigdecimal/commit/79c09b4dac commit d77f2ff5b4dc35c75cdca355594fdcd654828852 Author: gemmaro AuthorDate: 2022-01-22 12:28:07 +0900 Commit: git[bot] CommitDate: 2022-01-24 10:17:16 +0900 [ruby/rdoc] Fix typo in RDoc::Task example https://github.com/ruby/rdoc/commit/7a77e55c2a commit c155445752bdf51f048284519587f73443f2f227 Author: Postmodern AuthorDate: 2022-01-21 23:59:13 +0900 Commit: git[bot] CommitDate: 2022-01-24 07:00:34 +0900 [ruby/reline] Ignore global constants when checking if Fiddle::VERSION exists If a top-level `VERSION` constant exists, or if a module containing a `VERSION` constant is included into the top-level scope, then `Fiddle.const_defined?(:VERSION)` will erroneously return true when `RUBY_VERSION < 3.0.0`. https://github.com/ruby/reline/commit/8529c8e47a commit 355bc371962e57f5e4b5365a2db752cbb8d673ee Author: Nobuyoshi Nakada AuthorDate: 2022-01-23 00:37:55 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-23 01:02:11 +0900 Reuse the default `AC_LANG_PROGRAM(C)` definition commit ad150a14598980095260add74474498a642ab5ba Author: Nobuyoshi Nakada AuthorDate: 2022-01-22 19:05:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-22 20:13:46 +0900 Override `AC_C_PROGRAM` on old autoconf Autoconf 2.69 fails to detect `-Werror=old-style-definition` due to the old style definition of `main`. commit 2c25427496322f420d9acc58500f2855c9e04a2a Author: Nobuyoshi Nakada AuthorDate: 2022-01-22 19:02:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-22 20:09:56 +0900 GCC provides -Wdiv-by-zero commit c00e360bc09811669b87f82a0ee97e13b9cba02f Author: Kazuhiro NISHIYAMA AuthorDate: 2022-01-22 15:46:06 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-01-22 15:48:05 +0900 Fix error: old-style function definition https://rubyci.s3.amazonaws.com/debian-riscv64/ruby-master/log/20220122T050018Z.log.html.gz#miniruby ``` compiling vm_trace.c vm_trace.c: In function 'rb_vm_memsize_postponed_job_buffer': vm_trace.c:1599:1: error: old-style function definition [-Werror=old-style-definition] 1599 | rb_vm_memsize_postponed_job_buffer() | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``` commit c1a6ff046d4f27c972adf96f9a6724abc2f0647a Author: Seth Boyles AuthorDate: 2022-01-15 04:58:20 +0900 Commit: git[bot] CommitDate: 2022-01-22 10:00:51 +0900 [ruby/psych] Add strict_integer option to parse numbers with commas as strings Authored-by: Seth Boyles https://github.com/ruby/psych/commit/75bebb37b8 commit fc6fd4c31e957a4b15ba2c03cbd1cea0a8af6513 Author: Kevin Newton AuthorDate: 2022-01-12 02:47:22 +0900 Commit: Aaron Patterson CommitDate: 2022-01-22 07:34:53 +0900 Accurately report VM memsize Currently the calculation only counts the size of the struct. This commit adds the size of the associated st tables, id tables, and linked lists. Still missing is the size of the ractors and (potentially) the size of the object space. Notes: Merged: https://github.com/ruby/ruby/pull/5428 commit 5e3a32021849718ae483eaaa9fbf155f91828039 Author: Koichi Sasada AuthorDate: 2022-01-21 17:38:11 +0900 Commit: Koichi Sasada CommitDate: 2022-01-21 17:38:11 +0900 respect `--quiet` option for btest Do not print anymore except errors. commit 542bd9b408a83ff5ff19fa7b8b0ab0742b4a877d Author: Nobuyoshi Nakada AuthorDate: 2022-01-03 21:38:03 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-21 12:22:04 +0900 [ruby/etc] Exclude change logs for pre 1.0 https://github.com/ruby/etc/commit/c8a133fe95 commit 563d0fdadaca6d12c90ceb33120bc7bcf932c612 Author: Nobuyoshi Nakada AuthorDate: 2022-01-03 18:06:18 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-21 12:21:59 +0900 [ruby/etc] Derive extra_rdoc_files from files https://github.com/ruby/etc/commit/e8ecce3442 commit 3fea4f9d8c2abbbe54987753b049c326cfe5886f Author: Nobuyoshi Nakada AuthorDate: 2022-01-02 21:37:47 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-21 12:21:54 +0900 [ruby/etc] Move development dependencies to Gemfile https://github.com/ruby/etc/commit/5cabc3996a commit 59a91f229b17d9664df6ff78d7aa4e13a88cdb63 Author: Nobuyoshi Nakada AuthorDate: 2022-01-13 11:48:12 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-20 13:54:37 +0900 Mark `rb_clear_constant_cache` as internal use only In the past, many internal functions are declared in intern.h under include/ruby directory, because there were no headers for internal use. commit ef2cf9245c93a0760ff4eb25dd60de981a6a05a9 Author: Michael Nikitochkin AuthorDate: 2022-01-20 02:12:26 +0900 Commit: git[bot] CommitDate: 2022-01-20 10:39:05 +0900 [ruby/psych] Remove alias of load to unsafe_load https://github.com/ruby/psych/commit/39e23cc86f commit eba90bc03482523f5243b3657aff4299631d94dd Author: Kazuhiro NISHIYAMA AuthorDate: 2022-01-20 10:03:59 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-01-20 10:03:59 +0900 Fix warnings ``` compiling ..../ruby/ruby/dln.c ..../ruby/ruby/dln.c:108:1: warning: unused function 'init_funcname_len' [-Wunused-function] init_funcname_len(const char **file) ^ ..../ruby/ruby/dln.c:122:19: warning: unused variable 'funcname_prefix' [-Wunused-const-variable] static const char funcname_prefix[sizeof(FUNCNAME_PREFIX) - 1] = FUNCNAME_PREFIX; ^ 2 warnings generated. ``` commit 2b7025e680eb29f936538c07f057f590003e45bf Author: David Rodríguez AuthorDate: 2022-01-12 04:11:20 +0900 Commit: git[bot] CommitDate: 2022-01-20 06:45:28 +0900 [rubygems/rubygems] Rename `Gem.open_with_flock` to `Gem.open_file` Since it only uses `flock` on Windows. https://github.com/rubygems/rubygems/commit/b877de4d9c commit ec5bde1a8034608939ee649ca8ad4c39f9f52956 Author: David Rodríguez AuthorDate: 2022-01-12 03:53:41 +0900 Commit: git[bot] CommitDate: 2022-01-20 06:45:27 +0900 [rubygems/rubygems] Restrict `flock` to Windows It was introduced to fix some race conditions there, but it doesn't seem necessary on other systems and it's actually causing issues there. https://github.com/rubygems/rubygems/commit/27b682c812 commit 71bc99900914ef3bc3800a22d9221f5acf528082 Author: Nobuyoshi Nakada AuthorDate: 2022-01-20 01:18:49 +0900 Commit: GitHub CommitDate: 2022-01-20 01:18:49 +0900 MinGW also uses `rb_w32_shutdown` Winsock's `shutdown` is incompatible with the other platforms. And autoconf fails to detect WINAPI functions on 32bit Windows, probably due to the argument size suffixes. Notes: Merged: https://github.com/ruby/ruby/pull/5469 Merged-By: nobu commit 7353f950c3229a4b24482af99d589ea56982a285 Author: Yusuke Nakamura AuthorDate: 2022-01-19 17:52:27 +0900 Commit: git[bot] CommitDate: 2022-01-20 01:04:53 +0900 [rubygems/rubygems] Change generated namespaced test class name in minitest * `foo` => `TestFoo` * `foo_bar` => `TestFooBar` * `foo-bar` => `Foo::TestBar` https://github.com/rubygems/rubygems/commit/353cdd61c3 commit 26e0450ba9296540e044df5fd91c8856919d4a6c Author: Yusuke Nakamura AuthorDate: 2022-01-15 02:55:41 +0900 Commit: git[bot] CommitDate: 2022-01-20 01:04:53 +0900 [rubygems/rubygems] Add spec to class name definition in newgem spec https://github.com/rubygems/rubygems/commit/5f698fc4a0 commit 44513132521d8c2653ba3250d94628bfa9c1f0ff Author: Yusuke Nakamura AuthorDate: 2022-01-13 02:10:34 +0900 Commit: git[bot] CommitDate: 2022-01-20 01:04:52 +0900 [rubygems/rubygems] Update generated minitest file style foo => test/test_foo.rb foo-bar => test/foo/test_bar.rb foo_bar => test/test_foo_bar.rb https://github.com/rubygems/rubygems/commit/c795e5d40d commit 4e955b2e379a550cebd27e5d66fd5bcd98c70cf7 Author: Yusuke Nakamura AuthorDate: 2022-01-10 21:51:51 +0900 Commit: git[bot] CommitDate: 2022-01-20 01:04:52 +0900 [rubygems/rubygems] Create minitest file to underscored path in "bundle gem" command ...with dashed gem name In "bundle gem" command with dashed name gem (e.g. foo-bar) generates `test/test_foo/bar.rb`, but this file contains undefined class `TestFoo` and moreover, does not include in "bundle exec rake test" target. Therefore, intentially the first test after gem created is fail, but in case of gem name contains dash character is not. The change doings... (when "bundle gem foo-bar" called) * create `test/test_foo_bar.rb` * define `TestFooBar` class in `test/test_foo_bar.rb` https://github.com/rubygems/rubygems/commit/5d9a69fc0f commit 5c4734d1eff9322f9f21d9c21577978ab6e0d044 Author: Peter Zhu AuthorDate: 2022-01-19 23:00:33 +0900 Commit: Peter Zhu CommitDate: 2022-01-19 23:55:09 +0900 Refactor dln_load into dln_open and dln_sym Refactor dln_load into dln_open and dln_sym to simplify the code for Windows and platforms that have dlopen. Notes: Merged: https://github.com/ruby/ruby/pull/5459 commit 374904b25f0cd399b800d9b822659fbff382b23c Author: Koichi Sasada AuthorDate: 2022-01-19 17:44:53 +0900 Commit: Koichi Sasada CommitDate: 2022-01-19 23:17:14 +0900 remain `RUBY_ON_BUG` for child processes. `RUBY_ON_BUG` is useful for child processes created by the test process. Notes: Merged: https://github.com/ruby/ruby/pull/5466 commit 308fe1eb858fd8029f67510a18bedfe0e850a87f Author: Koichi Sasada AuthorDate: 2022-01-19 17:43:07 +0900 Commit: Koichi Sasada CommitDate: 2022-01-19 23:17:14 +0900 Do not create core file if it is intentional abort Two tests abort intentionally and they create core files if possible. In these case, we don't need to see core files so disable by `"Process.setrlimit(Process::RLIMIT_CORE, 0)` for those cases. Notes: Merged: https://github.com/ruby/ruby/pull/5466 commit d650b17686d49c2ce8e6a87039861154e93d4621 Author: Nobuyoshi Nakada AuthorDate: 2022-01-19 16:01:45 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-19 19:57:16 +0900 `rb_fiber_terminate` must not return [Bug #18497] In a forked process from a fiber, the fiber becomes the only fiber, `fiber_switch` does nothing as there is no other fibers, `rb_fiber_terminate` does not terminate the fiber. In that case, reaches the end of `fiber_entry` finally, which is declared as "COROUTINE" and should never return. Notes: Merged: https://github.com/ruby/ruby/pull/5468 commit 5c7af72304d0ad33cd3f21b24a4bc44e8acd5b2c Author: Nobuyoshi Nakada AuthorDate: 2022-01-19 14:14:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-19 19:57:16 +0900 Assuming EXIT_SUCCESS equals 0 is not portable Notes: Merged: https://github.com/ruby/ruby/pull/5468 commit 528344b8de6c89de7bcd0e77cb386f7881d85e03 Author: Yuta Saito AuthorDate: 2022-01-19 16:40:06 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 17:52:19 +0900 include/ruby/win32.h: explicitly define HAVE_SHUTDOWN Configuration for mingw32 can't detect 'shutdown' due to wrong -l option even though it's available (this has been going on for a while, and it needs to be fixed). In this situation, include/ruby/missing.h declares a stub shutdown function since 7ee786388a, and another shutdown decl is came from system header. They are incompatible at stdcall attribute, so it causes compilation failure. This change defines a HAVE_SHUTDOWN to guard a newly introduced stub decl in include/ruby/missing.h Notes: Merged: https://github.com/ruby/ruby/pull/5465 commit 0dd8c6157d4ef3e3584b5f87f4af82e3d56339e8 Author: David Rodríguez AuthorDate: 2022-01-17 22:42:41 +0900 Commit: git[bot] CommitDate: 2022-01-19 15:56:36 +0900 [rubygems/rubygems] Don't pass regexp to `Gem::Dependency.new` during `gem dependency` https://github.com/rubygems/rubygems/commit/89dd5158a4 commit 1d530ae27a51f68ce5e9a800254f586b3f969d41 Author: David Rodríguez AuthorDate: 2022-01-17 22:42:15 +0900 Commit: git[bot] CommitDate: 2022-01-19 15:56:36 +0900 [rubygems/rubygems] Remove dead method https://github.com/rubygems/rubygems/commit/477d5f6f6e commit 0350c179ea8c303b6f0087b96478b757052321c2 Author: David Rodríguez AuthorDate: 2022-01-17 22:10:27 +0900 Commit: git[bot] CommitDate: 2022-01-19 15:56:35 +0900 [rubygems/rubygems] Don't pass regexp to `Gem::Dependeny.new` from list, search, and query commands It's deprecated functionality. https://github.com/rubygems/rubygems/commit/13d3eb6cb0 commit 8b6a02de2f99bc9670f91757db9bf86edf61f615 Author: David Rodríguez AuthorDate: 2022-01-17 22:02:58 +0900 Commit: git[bot] CommitDate: 2022-01-19 15:56:35 +0900 [rubygems/rubygems] Simplify argument processing logic in `gem list` & `gem search` Make it more explicit that if not specific arguments are given, the value of `-n` is used. https://github.com/rubygems/rubygems/commit/ed811ddc00 commit e4f8d5b2f516a88d1a704cc355e5d21255aea738 Author: 卜部昌平 AuthorDate: 2022-01-19 13:43:52 +0900 Commit: 卜部昌平 CommitDate: 2022-01-19 15:38:02 +0900 .github/workflows: BASERUBY check for Ruby 3.1 Notes: Merged: https://github.com/ruby/ruby/pull/5463 commit d22511fd7595ef1819baa42851d598d95b8f4d00 Author: Hiroshi SHIBATA AuthorDate: 2022-01-19 13:28:23 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-19 15:01:44 +0900 Merge rubygems/rubygems HEAD. Picked at 12aeef6ba9a3be0022be9934c1a3e4c46a03ed3a Notes: Merged: https://github.com/ruby/ruby/pull/5462 commit 5646f4b67b75e7e558c994ff8cbd374e4b4bd3b5 Author: Nobuyoshi Nakada AuthorDate: 2022-01-19 14:45:52 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-19 14:46:27 +0900 Fix a missing comma commit 8f3e29c849bdab5d6335369e4c49a5d03e88837a Author: Nobuyoshi Nakada AuthorDate: 2022-01-19 13:33:14 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-19 13:33:14 +0900 Fix format size qualifier on IL32P64 commit 8c21701968f8d877156c4c1616b823b7fd382021 Author: Yuta Saito AuthorDate: 2022-01-19 12:16:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-19 13:19:58 +0900 include/ruby/io.h: use 0 as POLLPRI when no support for it 0x003 is not suitable as a bit mask, and it's ok just to be 0 to avoid setting unsupported bit. Notes: Merged: https://github.com/ruby/ruby/pull/5461 commit 68e821c3e575b0905a9ee992b93ccbbaa42b6dc5 Author: Yusuke Endoh AuthorDate: 2022-01-19 13:14:43 +0900 Commit: Yusuke Endoh CommitDate: 2022-01-19 13:15:37 +0900 test/ruby/test_assignment.rb: Prevent a warning ``` /home/chkbuild/chkbuild/tmp/build/20220119T003004Z/ruby/test/ruby/test_assignment.rb:727: warning: assigned but unused variable - m ``` http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20220119T003004Z.log.html.gz commit 2f0f56bdcae865ea62fdca3834038b8db6d6b9a4 Author: Nobuyoshi Nakada AuthorDate: 2022-01-19 11:50:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-19 12:04:08 +0900 [DOC] Enhanced Process.groups related * On some platforms (e.g., macOS), the user's default group access list may exceed `NGROUPS_MAX`. * Use upcase "GID" instead of "gid" for other than variable names. commit e7249294fb85953c3caa0af1eb9d3627a4827a11 Author: David Rodríguez AuthorDate: 2022-01-18 02:55:10 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-19 11:20:36 +0900 [rubygems/rubygems] Fix regression with old marshaled specs having null required_rubygems_version https://github.com/rubygems/rubygems/commit/91f07a0208 commit 39c36a5cf45fc6a779b88c22571075da45cb70e4 Author: David Rodríguez AuthorDate: 2022-01-18 04:46:49 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-19 11:20:36 +0900 [rubygems/rubygems] Fix skipped spec on Windows https://github.com/rubygems/rubygems/commit/bf0f4b98ee commit f04954d95c8a729d70be1c883617534a2e7cc239 Author: David Rodríguez AuthorDate: 2022-01-17 23:16:34 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-19 11:20:36 +0900 [rubygems/rubygems] Normalize end alignment style with Bundler https://github.com/rubygems/rubygems/commit/f7f504b24c commit d015b0c92815914f9cbf1fb19e8d9308a99c0efc Author: Yuta Saito AuthorDate: 2022-01-15 22:22:41 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] add ci workflow .github/workflows/wasm.yml Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit 50f1468bfd11eb2ea54c2d6bea958f44eb2db33c Author: Yuta Saito AuthorDate: 2021-12-15 15:49:59 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] include/ruby/io.h: define RB_WAITFD_PRI by ourselves for wasi RB_WAITFD_PRI uses POLLPRI for other platforms, but wasi-libc doesn't have POLLPRI for now. Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit 4f579ecfcee2dc230bd7f744c6db8f8d8d902ad8 Author: Yuta Saito AuthorDate: 2021-12-15 00:32:49 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] wasm/README.md: write a brief instruction to cross build Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit bb2228817f0bcf2d5400d37ed350f6351f5b3376 Author: Yuta Saito AuthorDate: 2021-12-14 19:12:02 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] configure.ac: disable mjit on wasi by default Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit dd99ee1f7d366e6b92b952fb96221bf0ea3dc348 Author: Yuta Saito AuthorDate: 2022-01-15 22:11:55 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] bootstraptest, basictest: disable backquote literal tests WASI doesn't support spawning a new process for now. Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit df31fa4a51822faccb35aa7a253c8af015869d0c Author: Yuta Saito AuthorDate: 2021-12-09 12:44:45 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] configure.ac: don't require dup and dup2 only for wasi Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit f72f01abd89640b083b4067e4be399448f0fb6ce Author: Yuta Saito AuthorDate: 2021-12-08 22:19:52 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] add unit test suite for fiber, register scan, sjlj in platform dir Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit 3794ef6f01095a265c299917c244fbb346b56323 Author: Yuta Saito AuthorDate: 2022-01-16 01:13:06 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 configure.ac: stop overwriting cc wrapper by darwin-cc everytime Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit be1382b498e05a806f1db52629a54046a2e558d0 Author: Yuta Saito AuthorDate: 2021-12-06 11:25:44 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 ruby.c: initialize extra optional extensions linked statically Add a hook point to initialize extra extension libraries. The default hook function is replaced when linking a strong `Init_extra_exts` symbol. A builder can insert an object file that defines Init_extra_exts by XLDFLAGS. Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit 9033ac3e2ce5735c11e99f7f4ecf63d5c258ac1e Author: Yuta Saito AuthorDate: 2021-11-27 18:27:37 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 dir.c: ignore ENOTCAPABLE while glob similar to EACCES Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit 420622b5a793186dfa533e7702913fd5e4764e0f Author: Yuta Saito AuthorDate: 2022-01-16 00:37:54 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] add no thread variant for freestanding environment This implementation does nothing around preemptive context switching because there is no native thread. Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit d6d52a7d049fd802b37d0f594629bad2cdc6b8c2 Author: Yuta Saito AuthorDate: 2022-01-16 00:37:09 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 thread.c: put platform specific part in each impl file Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit bf1c4d254beb0e01fac1d9e6cb805de8ec6260eb Author: Yuta Saito AuthorDate: 2022-01-15 23:59:37 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] gc.c: scan wasm locals and c stack to mark living objects WebAssembly has function local infinite registers and stack values, but there is no way to scan the values in a call stack for now. This implementation uses Asyncify to spilling out wasm locals into linear memory. Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit e7fb1fa0414a0c6e43796052c877f317e8e09846 Author: Yuta Saito AuthorDate: 2022-01-15 23:57:14 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] gc.c: disable read signal barrier for wasi WASI currently does not yet support signal Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit 23de01c7aa5d8f3651213b75295a4969a187a041 Author: Yuta Saito AuthorDate: 2022-01-15 22:18:55 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] eval_inter.h gc.c vm_core.h: include wasm/setjmp.h instead of sysroot header Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit a4b73f1ba88b4d126569ba5ab295c0eb5f121662 Author: Yuta Saito AuthorDate: 2022-01-15 22:22:30 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] add coroutine/asyncify implementation set the default coroutine_type as asyncify when wasi Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit 7ee786388ae0d6f8c8cea7bf012cc11fdb5b534a Author: Yuta Saito AuthorDate: 2022-01-16 01:18:49 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] wasm/missing.{c,h}: add missing libc stubs for wasi-libc Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit 65f95f26ff0e7b4be4704fedc52344a26d22a4e2 Author: Yuta Saito AuthorDate: 2022-01-15 23:10:48 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] add asyncify based setjmp, fiber, register scan emulation configure.ac: setup build tools and register objects main.c: wrap main with rb_wasm_rt_start to handle asyncify unwinds tool/m4/ruby_wasm_tools.m4: setup default command based on WASI_SDK_PATH environment variable. checks wasm-opt which is used for asyncify. tool/wasm-clangw wasm/wasm-opt: a clang wrapper which replaces real wasm-opt with do-nothing wasm-opt to avoid misoptimization before asyncify. asyncify is performed at POSTLINK, but clang linker driver tries to run optimization by wasm-opt unconditionally. inlining pass at wasm level breaks asyncify's assumption, so should not optimize before POSTLIK. wasm/GNUmakefile.in: wasm specific rules to compile objects Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit e41b121e94ccce9877824e55f865885bbabe40c3 Author: Yuta Saito AuthorDate: 2022-01-16 02:34:43 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] configure.ac: setup platform specific libraries These flags are very wasi-libc version specific, so updating wasi-libc may break the build. But supporting multiple wasi-libc versions in ruby doesn't have much benefit because wasi-libc is not installed in most systems. Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit 8a50a6b6f979bdfbf79f5c89f03f46ed7c43b919 Author: Yuta Saito AuthorDate: 2022-01-15 22:18:18 +0900 Commit: Yuta Saito CommitDate: 2022-01-19 11:19:06 +0900 [wasm] configure.ac: disable stack-protector clang does not yet support stack-protector for wasm Notes: Merged: https://github.com/ruby/ruby/pull/5407 commit e7b4abf3845ef006653ef4b951454647e54affe8 Author: Jeremy Evans AuthorDate: 2022-01-19 04:40:13 +0900 Commit: Jeremy Evans CommitDate: 2022-01-19 04:40:13 +0900 Don't assume __builtin_bswap32 and __builtin_bswap64 are defined on OpenBSD At least OpenBSD/sparc64 doesn't appear to define them, and possibly some other OpenBSD GCC platforms don't (most OpenBSD platforms have already switched to clang). commit ffda21b7ba451b8fd874e9c8c2162c55053caa1e Author: Peter Zhu AuthorDate: 2022-01-18 23:01:03 +0900 Commit: Peter Zhu CommitDate: 2022-01-18 23:52:15 +0900 [Feature #18491] Drop support for HP-UX IA64 support was dropped in ticket #15894, so we can drop support for HP-UX. Notes: Merged: https://github.com/ruby/ruby/pull/5457 commit ab85c5e979d53e2e07c714122645b1c4b782f571 Author: Burdette Lamar AuthorDate: 2022-01-18 21:25:26 +0900 Commit: GitHub CommitDate: 2022-01-18 21:25:26 +0900 [DOC] Enhanced RDoc for io.c (#5451) Treats: IO#reopen IO#printf Kernel#printf IO#print Kernel#print IO#putc IO.new IO#set_encoding_by_bom IO.for_fd Notes: Merged-By: BurdetteLamar commit 6729258839467ffabf40e25e8510ee9f2a24864a Author: Yuta Saito AuthorDate: 2022-01-18 19:08:07 +0900 Commit: GitHub CommitDate: 2022-01-18 19:08:07 +0900 include/ruby/win32.h: define HAVE_X for the missing prototypes (#5456) Notes: Merged-By: kateinoigakukun commit 3fb1f411ed8dcae693c2e9bdb68f4e9815cbb5f1 Author: st0012 AuthorDate: 2022-01-18 00:17:18 +0900 Commit: git[bot] CommitDate: 2022-01-18 15:56:48 +0900 [ruby/irb] require_relative can't be used for default gems' exe files The `exe` folder and `lib` folder of default gems don't locate under the same place. While `exe/irb` will be under the gem folder, `irb.rb` will be under `lib/ruby/VERSION/`. So `require_relative` will make `irb` unusable when shipped with Ruby. Related discussion in the comments: https://github.com/ruby/irb/pull/335 https://github.com/ruby/irb/commit/99d3aa979d commit c0d18a1aa2be26d416f4c5d1809533143374b863 Author: Takashi Kokubun AuthorDate: 2022-01-18 05:37:46 +0900 Commit: Takashi Kokubun CommitDate: 2022-01-18 05:39:17 +0900 [ruby/erb] Revert "Remove safe_level and further positional arguments (https://github.com/ruby/erb/pull/7)" This reverts commit https://github.com/ruby/erb/commit/5133efa06f0603ae79292f3b2b942957bc8a442e. While we already handled this deprecation in many libraries, we noticed that some (e.g. sprockets) relied on the format of `ERB.version` and https://github.com/ruby/erb/commit/2b4182eb108b9e42fa30bcfa41931896132f88b8 broke such handling. Given that the `ERB.version` change was released at 3.1 and it's obviously new, I'll skip this removal in 3.2 and postpone this to a future version. commit f3c77bd480834f2835fe6fef5c0475336248dbde Author: Nobuyoshi Nakada AuthorDate: 2022-01-17 01:56:31 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-17 21:23:40 +0900 Fix the placeholder subclass entry skipping [Bug #18489] Notes: Merged: https://github.com/ruby/ruby/pull/5455 commit e53962b9e1c9ee6ea52b43ce19f5c82cc74494f8 Author: st0012 AuthorDate: 2022-01-17 20:45:16 +0900 Commit: git[bot] CommitDate: 2022-01-17 21:09:36 +0900 [ruby/irb] Use require_relative to load extensions/commands https://github.com/ruby/irb/commit/d5060f7668 commit 549af505c5587267d114dd5ffb816047e7f22b4f Author: Kazuhiro NISHIYAMA AuthorDate: 2022-01-17 15:10:27 +0900 Commit: git[bot] CommitDate: 2022-01-17 17:11:27 +0900 [ruby/net-http] Remove redundant MJIT condition ref https://github.com/ruby/ruby/commit/da0f67c0383f57129c7a76255964b1ee739d8db8 https://github.com/ruby/net-http/commit/dbeb5f1c8f commit b4e362d444a8a9b5d629f32eeaa72293bcf7482d Author: Yusuke Endoh AuthorDate: 2022-01-17 14:56:11 +0900 Commit: Yusuke Endoh CommitDate: 2022-01-17 14:56:11 +0900 lib/drb/drb.rb: Prevent a "warning: assigned but unused variable" ... by replacing the variable with a underscore-prefixed name commit 81b604fb005b2dfa9601e0dabcdacfca6d8f3fba Author: st0012 AuthorDate: 2022-01-17 07:20:05 +0900 Commit: git[bot] CommitDate: 2022-01-17 14:23:40 +0900 [ruby/irb] Use require_relative to require lib files 1. `require` can mislead Ruby to load system irb's files and cause constant redefined warnings as other code loads the same module/class from lib folder. 2. Most files already use `require_relative`. https://github.com/ruby/irb/commit/848d339f2e commit 804a71497187556f9fbbb66dfa602c5942224786 Author: S-H-GAMELINKS AuthorDate: 2022-01-15 23:07:32 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-17 13:49:37 +0900 Replace to RBOOL macro Notes: Merged: https://github.com/ruby/ruby/pull/5449 commit 3515867381e34a04f2d64086ac283cd9536a8b20 Author: Hiroshi SHIBATA AuthorDate: 2022-01-15 09:16:04 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-17 10:39:24 +0900 Removed skip alias in test suite Notes: Merged: https://github.com/ruby/ruby/pull/5446 commit ac1bb6b51032ad8d34a1060f5f6b5b10b60dc183 Author: Brandon Weaver AuthorDate: 2022-01-16 16:09:47 +0900 Commit: git[bot] CommitDate: 2022-01-17 10:17:23 +0900 [ruby/net-http] Rename `D` to `debug` in `Net::HTTP` Renames `D` to `debug` in `Net::HTTP` and introduces an alias for backwards compatibility. This was done for readability reasons, in that `D` did not clearly reflect what the method was doing and can cause some confusion. https://github.com/ruby/net-http/commit/582d6e87d6 commit ab11cafe0b73a7a50f13c1d7eae1cf5e7cba1a0a Author: Nobuyoshi Nakada AuthorDate: 2022-01-17 01:56:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-17 01:56:04 +0900 Parenthesize the macro argument commit 2dff82bfca0226e335a446715b94670b5af85108 Author: Nobuyoshi Nakada AuthorDate: 2022-01-16 23:47:10 +0900 Commit: GitHub CommitDate: 2022-01-16 23:47:10 +0900 `O_NONBLOCK` is not always a preprocessor constant on all platforms Notes: Merged: https://github.com/ruby/ruby/pull/5454 Merged-By: nobu commit 4cd6fd338f71278bab5798a556a76c4e1588b892 Author: Nobuyoshi Nakada AuthorDate: 2022-01-16 22:43:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-16 22:43:04 +0900 Weakmap failure is still pending commit 155075684944e457396d3b5018c20e0acd0bfbb0 Author: aycabta AuthorDate: 2022-01-14 21:36:45 +0900 Commit: git[bot] CommitDate: 2022-01-16 22:09:32 +0900 [ruby/reline] Use "Bundler.require" to load Gemfile.lock in multiline_repl https://github.com/ruby/reline/commit/492bee257a commit f5e3913737916df3bc569dee7d3c9c9ed98146b3 Author: aycabta AuthorDate: 2022-01-13 20:29:07 +0900 Commit: git[bot] CommitDate: 2022-01-16 22:09:31 +0900 [ruby/reline] Fix incremental search to work correctly even if not last line https://github.com/ruby/reline/commit/21d75f6d4c commit 921ff739df14c705491d75435c5e5ce31e2ed553 Author: aycabta AuthorDate: 2022-01-12 19:46:33 +0900 Commit: git[bot] CommitDate: 2022-01-16 22:09:31 +0900 [ruby/reline] Insert newline in the middle of buffer just after dialog https://github.com/ruby/reline/commit/0c76631132 commit d1e078e71c7a1dcd20c372d4a50b81ea647311e4 Author: aycabta AuthorDate: 2022-01-09 23:01:04 +0900 Commit: git[bot] CommitDate: 2022-01-16 22:09:30 +0900 [ruby/reline] Add a wait for a test because sometimes fails https://github.com/ruby/reline/commit/da4a7aa932 commit 2bc6b07a8d313b6aa9dea13d81ffd3c97db84ead Author: aycabta AuthorDate: 2022-01-07 22:59:55 +0900 Commit: git[bot] CommitDate: 2022-01-16 22:09:29 +0900 [ruby/reline] Combine common logic into one https://github.com/ruby/reline/commit/5db9738f17 commit f94a2adf6a45e93d12c63a9b4ef3e21d9b7e5063 Author: aycabta AuthorDate: 2022-01-05 21:18:59 +0900 Commit: git[bot] CommitDate: 2022-01-16 22:09:28 +0900 [ruby/reline] Clear dialog when adding new line to end of buffer https://github.com/ruby/reline/commit/7d38454327 commit 5ec3450438150e7cb05422c04dc18901161a13ea Author: Nobuyoshi Nakada AuthorDate: 2022-01-16 18:18:05 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-16 21:35:09 +0900 Remove outdated skips Notes: Merged: https://github.com/ruby/ruby/pull/5453 commit a4a7bf2a63ee5b54080bfbcc7b2dd745c9991507 Author: Nobuyoshi Nakada AuthorDate: 2022-01-16 16:40:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-16 21:35:09 +0900 Use pend for old TODOs Notes: Merged: https://github.com/ruby/ruby/pull/5453 commit 56b45e8c8e96210a2c17fde9408d46100f8d89cb Author: Nobuyoshi Nakada AuthorDate: 2022-01-16 16:33:34 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-16 21:35:09 +0900 Let testunit use omit or pend instead of skip Notes: Merged: https://github.com/ruby/ruby/pull/5453 commit 2ae9da23c5c112c5d53ab15ac1301274a91d598d Author: Nobuyoshi Nakada AuthorDate: 2022-01-15 18:11:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-16 17:15:02 +0900 Check with the latest stable commit 6328db3c7e2dcc93b78eba48b37beff96ede71c8 Author: Nobuyoshi Nakada AuthorDate: 2022-01-16 16:01:57 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-16 16:09:12 +0900 Separate the tests which fail when load-relative enabled commit ab1fc6efa4f8dbd655db61414c021885fd919c79 Author: Nobuyoshi Nakada AuthorDate: 2022-01-16 16:01:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-16 16:08:45 +0900 Add continue-on-skipped_tests flag commit 41e6f0967d3c5762c40b8a48aacd22f89940227c Author: Nobuyoshi Nakada AuthorDate: 2022-01-16 15:20:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-16 16:08:44 +0900 Fix typos for multiple skipped_tests commit 728304093c4d5ec8be7dd5f1467da4aa362f2d5c Author: Takashi Kokubun AuthorDate: 2022-01-16 06:53:57 +0900 Commit: Takashi Kokubun CommitDate: 2022-01-16 06:53:57 +0900 Update NEWS.md about ERB.new commit d12a08abb5fd1412d59094a953899bbd8a64ac88 Author: Takashi Kokubun AuthorDate: 2022-01-16 06:46:43 +0900 Commit: git[bot] CommitDate: 2022-01-16 06:46:47 +0900 [ruby/erb] Remove safe_level and further positional arguments (https://github.com/ruby/erb/pull/7) [Feature #14256] https://github.com/ruby/erb/commit/5133efa06f commit 3cfb6fc4797c2840375c693c24802db125075de4 Author: Takashi Kokubun AuthorDate: 2022-01-16 05:25:59 +0900 Commit: git[bot] CommitDate: 2022-01-16 05:26:37 +0900 [ruby/erb] Escape the second * The original code just seems unintentional https://github.com/ruby/erb/commit/75a0749cb7 commit b2d15dcad6febf628dc56d24b20456527101a10d Author: ooooooo_q AuthorDate: 2022-01-16 05:20:47 +0900 Commit: git[bot] CommitDate: 2022-01-16 05:21:05 +0900 [ruby/erb] fix regexp (https://github.com/ruby/erb/pull/6) https://github.com/ruby/erb/commit/33100a022f commit 4c2d6f76553d03a5c9742a2cf3a22e41333d75a7 Author: Nobuyoshi Nakada AuthorDate: 2022-01-15 21:33:14 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-15 22:24:16 +0900 Test enable-load-relative Now rubygems has the tests depending on it. commit c1bcfeec38cdc04858ba607eb6f6aaa64dc731c9 Author: Nobuyoshi Nakada AuthorDate: 2022-01-10 23:38:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-15 18:57:33 +0900 Transfer the responsibility for MJIT options to mjit.c Notes: Merged: https://github.com/ruby/ruby/pull/5448 commit 670f3e6cd7b6ea03810af3606139021471019017 Author: David CARLIER AuthorDate: 2022-01-15 14:25:35 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-15 18:56:15 +0900 [ruby/fcntl] adding few FreeBSD specific flags. https://github.com/ruby/fcntl/commit/03d9a7937d commit d853a7886ef63b7237ab2bce42eb99c26bc1eccb Author: Nobuyoshi Nakada AuthorDate: 2022-01-12 17:53:52 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-15 18:55:47 +0900 Define the default JIT feature bit Notes: Merged: https://github.com/ruby/ruby/pull/5447 commit 7c70151aedf5b51447f7a9ebcb6a4b58ef76deb2 Author: loadkpi AuthorDate: 2022-01-14 15:07:39 +0900 Commit: git[bot] CommitDate: 2022-01-15 14:00:35 +0900 [rubygems/rubygems] Fix `gem update --system` for already installed version of rubygems-update https://github.com/rubygems/rubygems/commit/c167d513a7 commit 2dc365db79e46daaf415c4fcabeab540ec43e92e Author: Kazuhiro NISHIYAMA AuthorDate: 2022-01-15 13:30:20 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-01-15 13:30:20 +0900 Fix spec failures on ruby 3.1 Because Module#const_added is ruby 3.2 feature commit e40f79daa39141fed9d5a8d8a71211b6b97b1c8d Author: Burdette Lamar AuthorDate: 2022-01-15 09:33:06 +0900 Commit: GitHub CommitDate: 2022-01-15 09:33:06 +0900 Enhanced RDoc for io.c (#5444) Treated: IO#open IO#sysopen #open IO#putc IO#puts #p Kernel#display Notes: Merged-By: BurdetteLamar commit 8d378fd28bcce28013499454877678cbbfe7cdc9 Author: manga_osyo AuthorDate: 2021-02-25 17:20:50 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-15 09:09:12 +0900 Add Enumerable::Lazy#with_index to NEWS-2.7.0 The behavior of `Enumerable::Lazy#with_index` has changed in Ruby 2.7. This change was not listed in the Ruby 2.7 news, so I added it. Notes: Merged: https://github.com/ruby/ruby/pull/4225 commit 49cc7709cb762594aa8ea1b98a1fdf41662a5cf6 Author: MSP-Greg AuthorDate: 2022-01-15 00:00:56 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-15 08:59:14 +0900 [Actions] mingw - use ruby/setup-ruby@v1 again Notes: Merged: https://github.com/ruby/ruby/pull/5443 commit 58dc8bf8f15df9a33d191074e8a5d4946a3d59d5 Author: Jeremy Evans AuthorDate: 2022-01-15 04:21:41 +0900 Commit: Jeremy Evans CommitDate: 2022-01-15 06:46:18 +0900 Fix {Method,UnboundMethod}#{public?,private?,protected?} for ZSUPER methods Add a visibility member to struct METHOD storing the original method visibility, and use that, instead of taking the visibility from the stored method entry (which may have different visibility for ZSUPER methods). Consider Method/UnboundMethod objects different if they have different visibilities. Fixes [Bug #18435] Notes: Merged: https://github.com/ruby/ruby/pull/5356 commit a93cc3e23b4044762e80820fc7a45606587e11db Author: Jeremy Evans AuthorDate: 2021-12-28 07:41:43 +0900 Commit: Jeremy Evans CommitDate: 2022-01-15 05:17:57 +0900 Make Hash#shift return nil for empty hash Fixes [Bug #16908] Notes: Merged: https://github.com/ruby/ruby/pull/5360 commit 6b7eff90860d4fb4db01ec4d1f522afa6d809632 Author: Peter Zhu AuthorDate: 2022-01-15 03:59:38 +0900 Commit: Peter Zhu CommitDate: 2022-01-15 04:36:33 +0900 Separately allocate class_serial on 32-bit systems On 32-bit systems, VWA causes class_serial to not be aligned (it only guarantees 4 byte alignment but class_serial is 8 bytes and requires 8 byte alignment). This commit uses a hack to allocate class_serial through malloc. Once VWA allocates with 8 byte alignment in the future, we will revert this commit. Notes: Merged: https://github.com/ruby/ruby/pull/5442 commit ca3d405242c722c8140944bda7278c2a9e5a7139 Author: Jeremy Evans AuthorDate: 2021-05-01 08:01:27 +0900 Commit: Jeremy Evans CommitDate: 2022-01-15 04:00:26 +0900 Fix constant assignment evaluation order Previously, the right hand side was always evaluated before the left hand side for constant assignments. For the following: ```ruby lhs::C = rhs ``` rhs was evaluated before lhs, which is inconsistent with attribute assignment (lhs.m = rhs), and apparently also does not conform to JIS 3017:2013 11.4.2.2.3. Fix this by changing evaluation order. Previously, the above compiled to: ``` 0000 putself ( 1)[Li] 0001 opt_send_without_block 0003 dup 0004 putself 0005 opt_send_without_block 0007 setconstant :C 0009 leave ``` After this change: ``` 0000 putself ( 1)[Li] 0001 opt_send_without_block 0003 putself 0004 opt_send_without_block 0006 swap 0007 topn 1 0009 swap 0010 setconstant :C 0012 leave ``` Note that if expr is not a module/class, then a TypeError is not raised until after the evaluation of rhs. This is because that error is raised by setconstant. If we wanted to raise TypeError before evaluation of rhs, we would have to add a VM instruction for calling vm_check_if_namespace. Changing assignment order for single assignments caused problems in the multiple assignment code, revealing that the issue also affected multiple assignment. Fix the multiple assignment code so left-to-right evaluation also works for constant assignments. Do some refactoring of the multiple assignment code to reduce duplication after adding support for constants. Rename struct masgn_attrasgn to masgn_lhs_node, since it now handles both constants and attributes. Add add_masgn_lhs_node static function for adding data for lhs attribute and constant setting. Fixes [Bug #15928] Notes: Merged: https://github.com/ruby/ruby/pull/4450 commit 3cc82ff93c69fbd9d7377aa960ce46a0c24abdda Author: Peter Zhu AuthorDate: 2022-01-15 00:33:42 +0900 Commit: Peter Zhu CommitDate: 2022-01-15 01:29:08 +0900 Drop support for OSX 10.3 and earlier dlopen was introduced in OSX 10.4, which was released in 2005. OSX 10.3 was EOL in 2007. Notes: Merged: https://github.com/ruby/ruby/pull/5440 commit 64e19ad7e98d9ede10116c6aa4ab4bd6e5b763a2 Author: Masatoshi SEKI AuthorDate: 2022-01-15 00:58:21 +0900 Commit: Masatoshi SEKI CommitDate: 2022-01-15 00:58:21 +0900 to prevent collection, keep the last result. commit 82539a3d13626ee350e123f3f94c58a42db542e7 Author: Jean Boussier AuthorDate: 2022-01-15 00:22:57 +0900 Commit: Jean Boussier CommitDate: 2022-01-15 00:22:57 +0900 variable.c: Fix incorrect identation in `const_added` commit f75e871e4f7b004d5a7c73086e46a3ad6e0432a0 Author: Nobuyoshi Nakada AuthorDate: 2022-01-14 15:50:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-15 00:19:46 +0900 Try previous ruby-setup-ruby The commits between db14f2dde9ceeaa8acbcd31884475a7ce97ae9d3 and 11cc84264a91d42bc873f39d70678e44042322d2 seems breaking OpenSSL::TestConfig#test_s_parse_include. commit c54eac661350be3c5b991eff349080910966add3 Author: Nobuyoshi Nakada AuthorDate: 2022-01-14 15:48:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-15 00:15:23 +0900 Show tool versions commit 7d42b442bb42d8958daf978a0fe14b948f49609f Author: David Rodríguez AuthorDate: 2019-10-22 02:26:51 +0900 Commit: git[bot] CommitDate: 2022-01-15 00:00:11 +0900 [rubygems/rubygems] Support binstubs with `--enable-load-relative` prolog https://github.com/rubygems/rubygems/commit/32a5e9057a commit 044b0ae8e054b9959dc48bd5e663cbf2dea653a4 Author: David Rodríguez AuthorDate: 2019-10-24 00:45:31 +0900 Commit: git[bot] CommitDate: 2022-01-15 00:00:10 +0900 [rubygems/rubygems] Extract a bit of common logic to methods https://github.com/rubygems/rubygems/commit/9a1b891435 commit 3006451f6511b6594a24a9046f390c3bec6a7465 Author: David Rodríguez AuthorDate: 2019-10-22 02:10:49 +0900 Commit: git[bot] CommitDate: 2022-01-15 00:00:09 +0900 [rubygems/rubygems] Privatize some test utils https://github.com/rubygems/rubygems/commit/386b3b85ca commit 810516ca312410515733d3e6a48e5112ad44c750 Author: David Rodríguez AuthorDate: 2019-10-03 06:46:40 +0900 Commit: git[bot] CommitDate: 2022-01-15 00:00:09 +0900 [rubygems/rubygems] Fix method documentation to be more correct English https://github.com/rubygems/rubygems/commit/bcffd92c48 commit da0f67c0383f57129c7a76255964b1ee739d8db8 Author: Benoit Daloze AuthorDate: 2022-01-14 22:17:59 +0900 Commit: git[bot] CommitDate: 2022-01-14 23:38:09 +0900 [rubygems/rubygems] Remove redundant condition See https://github.com/rubygems/rubygems/pull/5210#discussion_r784807168 https://github.com/rubygems/rubygems/commit/cd0e961e81 commit 8d05047d72d0a4b97f57b23bddbca639375bbd03 Author: Jean Boussier AuthorDate: 2021-05-22 19:04:01 +0900 Commit: Jean Boussier CommitDate: 2022-01-14 19:30:07 +0900 Add a Module#const_added callback [Feature #17881] Works similarly to `method_added` but for constants. ```ruby Foo::BAR = 42 # call Foo.const_added(:FOO) class Foo::Baz; end # call Foo.const_added(:Baz) Foo.autoload(:Something, "path") # call Foo.const_added(:Something) ``` Notes: Merged: https://github.com/ruby/ruby/pull/4521 commit 53a4e101465a4d2ae38ea3bfd3cb7dd3c9f12f61 Author: Koichi Sasada AuthorDate: 2022-01-14 17:36:49 +0900 Commit: Koichi Sasada CommitDate: 2022-01-14 18:33:16 +0900 clear `@result` after `setup_message` For the remote object `ro`, method chain like `ro.foo.bar` the result of `ro.foo` is stored in `@result`, but cleared just before `setup_message` and it seems GCed on specific machine. ``` 1) Error: DRbTests::TestDRbCore#test_05_eq: RangeError: "140" is recycled object (druby://localhost:36141) /tmp/ruby/v3/src/trunk-repeat20-asserts/lib/drb/drb.rb:366:in `_id2ref' (druby://localhost:36141) /tmp/ruby/v3/src/trunk-repeat20-asserts/lib/drb/drb.rb:366:in `to_obj' (druby://localhost:36141) /tmp/ruby/v3/src/trunk-repeat20-asserts/lib/drb/drb.rb:1528:in `to_obj' (druby://localhost:36141) /tmp/ruby/v3/src/trunk-repeat20-asserts/lib/drb/drb.rb:1847:in `to_obj' (druby://localhost:36141) /tmp/ruby/v3/src/trunk-repeat20-asserts/lib/drb/drb.rb:620:in `recv_request' (druby://localhost:36141) /tmp/ruby/v3/src/trunk-repeat20-asserts/lib/drb/drb.rb:931:in `recv_request' (druby://localhost:36141) /tmp/ruby/v3/src/trunk-repeat20-asserts/lib/drb/drb.rb:1656:in `init_with_client' (druby://localhost:36141) /tmp/ruby/v3/src/trunk-repeat20-asserts/lib/drb/drb.rb:1668:in `setup_message' (druby://localhost:36141) /tmp/ruby/v3/src/trunk-repeat20-asserts/lib/drb/drb.rb:1632:in `perform' (druby://localhost:36141) /tmp/ruby/v3/src/trunk-repeat20-asserts/lib/drb/drb.rb:1725:in `block (2 levels) in main_loop' (druby://localhost:36141) /tmp/ruby/v3/src/trunk-repeat20-asserts/lib/drb/drb.rb:1721:in `loop' (druby://localhost:36141) /tmp/ruby/v3/src/trunk-repeat20-asserts/lib/drb/drb.rb:1721:in `block in main_loop' /tmp/ruby/v3/src/trunk-repeat20-asserts/test/drb/drbtest.rb:206:in `test_05_eq' ``` To prevent collecting, clear `@result` just after `setup_message` and `setup_message` can get the last result object. Notes: Merged: https://github.com/ruby/ruby/pull/5439 commit ac807888629052cc677529e3a6c48b1980e2ceeb Author: Nobuyoshi Nakada AuthorDate: 2022-01-14 14:35:38 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-14 15:26:49 +0900 Update RBS test for Gem::Version#<=> update commit d3940a533dcce95b377462f395c7bdd393de7261 Author: Nobuyoshi Nakada AuthorDate: 2022-01-01 19:18:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-14 14:54:29 +0900 Fetch the unmerged revision to test of bundled gems commit abc4a46046c326263683a8b3611775c2ddd56a71 Author: Nobuyoshi Nakada AuthorDate: 2022-01-02 01:25:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-14 14:54:29 +0900 Get rid of building main again when test-bundled-gems commit c613d79f9b366409158fd599d76eb1261b657cac Author: Nobuyoshi Nakada AuthorDate: 2022-01-14 00:46:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-14 13:46:12 +0900 Suppress unary minus operator to unsigned type warnings Notes: Merged: https://github.com/ruby/ruby/pull/5435 commit 9fa9cf4006b2278ee3de3aa75ab0697c4c119744 Author: Nobuyoshi Nakada AuthorDate: 2022-01-14 00:41:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-14 13:46:12 +0900 Suppress possible loss of data warnings Notes: Merged: https://github.com/ruby/ruby/pull/5435 commit 6dc4c942a329565b5701dacd3c18764c149be790 Author: Burdette Lamar AuthorDate: 2022-01-14 09:00:24 +0900 Commit: GitHub CommitDate: 2022-01-14 09:00:24 +0900 File rdoc (#5438) Treats: File introduction File.open File.new Notes: Merged-By: BurdetteLamar commit b9b63774018870e69b8f81274c8326e9b1628597 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-01-13 19:46:27 +0900 Commit: git[bot] CommitDate: 2022-01-14 08:16:37 +0900 [ruby/net-http] Fix unescaped `.` in Regexp Use `include?` instead. https://github.com/ruby/net-http/commit/05022744a9 commit 40d9be51e8c33118702c4dc536e915547b1080a2 Author: David Rodríguez AuthorDate: 2022-01-14 00:31:20 +0900 Commit: git[bot] CommitDate: 2022-01-14 07:44:14 +0900 [ruby/psych] Don't require `strscan` unnecessarily It does not seem needed, and it's causing issues on Windows when uninstalling `strscan`, because strscan's shared library being used when RubyGems tries to remove it (because its loaded through Psych, which RubyGems uses for loading configuration). https://github.com/ruby/psych/commit/3911356ec1 commit a485152660d2351284362a2ab3b88f125a994554 Author: Justin Searls AuthorDate: 2022-01-13 22:46:50 +0900 Commit: git[bot] CommitDate: 2022-01-13 23:59:55 +0900 [rubygems/rubygems] Lock standard.yml to the required ruby version https://github.com/rubygems/rubygems/commit/1791b5b9e5 commit d0a063794873eafed413957cb7ab93279945258a Author: Vyacheslav Alexeev AuthorDate: 2022-01-12 00:38:32 +0900 Commit: git[bot] CommitDate: 2022-01-13 18:16:05 +0900 [rubygems/rubygems] Use `Fiddle` in `bundle doctor` to check for dynamic library presence https://github.com/rubygems/rubygems/commit/ecd495ce1b commit 9828502570acce53f4094c23756bc82bd256eab7 Author: Akira Matsuda AuthorDate: 2022-01-11 05:30:05 +0900 Commit: git[bot] CommitDate: 2022-01-13 18:15:14 +0900 [rubygems/rubygems] Let Version#spaceship accept a String With this patch, handwriting version comparisons become a little bit easier. before: SomeGem.version <=> Gem::Version.new('1.3') after: SomeGem.version <=> '1.3' https://github.com/rubygems/rubygems/commit/7e0dbb79f2 commit 9de380860d8dc78963cabb5247c6e4a93a2fc5a9 Author: Koichi Sasada AuthorDate: 2022-01-13 17:45:25 +0900 Commit: Koichi Sasada CommitDate: 2022-01-13 17:45:25 +0900 add a NEWS entry of `Proc#dup`. commit 7e21b77dc6bfefaf331a0dbf89782303b8cda05d Author: Koichi Sasada AuthorDate: 2021-02-18 17:10:39 +0900 Commit: Koichi Sasada CommitDate: 2022-01-13 17:43:14 +0900 T#dup (T < Proc) should return T's object T#dup (T < Proc) returns Proc object (not T) from Ruby 1.9. [Bug #17545] Notes: Merged: https://github.com/ruby/ruby/pull/4197 commit 5a75151a0166ded78fc87ef5891a6877ba0950db Author: Nobuyoshi Nakada AuthorDate: 2022-01-13 11:34:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-13 11:34:09 +0900 [DOC] Mark up the code for Kernel#rand as the same as Random#rand commit d1a55851e8b5d90c028466865eee4a99b48cec85 Author: Nobuyoshi Nakada AuthorDate: 2022-01-13 11:32:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-13 11:32:35 +0900 [DOC] Fix a typo in a doc commit faf79d3a25ddb9a89f5b27cc6b3e7fead8c7c98f Author: Burdette Lamar AuthorDate: 2022-01-13 08:08:30 +0900 Commit: GitHub CommitDate: 2022-01-13 08:08:30 +0900 Enhanced RDoc for IO.popen (#5430) * Enhanced RDoc for IO.popen Notes: Merged-By: BurdetteLamar commit 2f71f6bb82c561b0c0ac31b345673a6e6847efe3 Author: John Hawthorn AuthorDate: 2022-01-12 02:10:23 +0900 Commit: John Hawthorn CommitDate: 2022-01-13 05:55:14 +0900 Speed up and avoid kwarg hash alloc in Time.now Previously Time.now was switched to use Time.new as it added support for the in: argument. Unfortunately because Class#new is a cfunc this requires always allocating a Hash. This commit switches Time.now back to using a builtin time_s_now. This avoids the extra Hash allocation and is about 3x faster. $ benchmark-driver -e './ruby;3.1::~/.rubies/ruby-3.1.0/bin/ruby;3.0::~/.rubies/ruby-3.0.2/bin/ruby' benchmark/time_now.yml Warming up -------------------------------------- Time.now 6.704M i/s - 6.710M times in 1.000814s (149.16ns/i, 328clocks/i) Time.now(in: "+09:00") 2.003M i/s - 2.112M times in 1.054330s (499.31ns/i) Calculating ------------------------------------- ./ruby 3.1 3.0 Time.now 7.693M 2.763M 6.394M i/s - 20.113M times in 2.614428s 7.278710s 3.145572s Time.now(in: "+09:00") 2.030M 1.260M 1.617M i/s - 6.008M times in 2.960132s 4.769378s 3.716537s Comparison: Time.now ./ruby: 7693129.7 i/s 3.0: 6394109.2 i/s - 1.20x slower 3.1: 2763282.5 i/s - 2.78x slower Time.now(in: "+09:00") ./ruby: 2029757.4 i/s 3.0: 1616652.3 i/s - 1.26x slower 3.1: 1259776.2 i/s - 1.61x slower Notes: Merged: https://github.com/ruby/ruby/pull/5429 commit ae5458f228a5477383e9c00425d85d50a3867817 Author: Yusuke Endoh AuthorDate: 2022-01-12 17:29:17 +0900 Commit: Yusuke Endoh CommitDate: 2022-01-13 03:21:45 +0900 thread.c: Convert TAG_BREAK to a normal exception at thread top-level [Bug #18475] Notes: Merged: https://github.com/ruby/ruby/pull/5431 commit 98fb0ab60eb14e74a484920bd904a3edd4ba52eb Author: Peter Zhu AuthorDate: 2022-01-12 05:21:56 +0900 Commit: Peter Zhu CommitDate: 2022-01-13 02:00:55 +0900 Enable Variable Width Allocation by default Notes: Merged: https://github.com/ruby/ruby/pull/5432 commit 2d81a718eca679b9bf458beccf1e7a86b812c3e2 Author: Peter Zhu AuthorDate: 2022-01-12 05:19:39 +0900 Commit: Peter Zhu CommitDate: 2022-01-13 02:00:55 +0900 Make embedded string length a long for VWA A short (2 bytes) will cause unaligned struct accesses when strings are used as a buffer to directly store binary data. Notes: Merged: https://github.com/ruby/ruby/pull/5432 commit e28dbd0f3d08536d61e4e2c0ac938161ac16f29f Author: Nobuyoshi Nakada AuthorDate: 2022-01-12 20:58:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-12 21:16:02 +0900 [ruby/optparse] Fix for ruby 3.0 or earlier https://github.com/ruby/optparse/commit/9e29d86c12 commit 743a41f7e3e7d4dfad006f23d14a00cbe6ba5946 Author: Nobuyoshi Nakada AuthorDate: 2022-01-12 19:37:33 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-12 21:16:02 +0900 [ruby/optparse] DidYouMean::PlainFormatter is deprecated https://github.com/ruby/optparse/commit/0ac9957696 commit 92630e2346a221fdfeaa484632938a06765bc6e5 Author: Nobuyoshi Nakada AuthorDate: 2022-01-12 18:22:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-12 21:16:02 +0900 [ruby/optparse] Fix links to the page directory files [Bug #18468] https://github.com/ruby/optparse/commit/dab72c543d commit 7d94df63c40ba2c2b85344140c9f3da03a05fc72 Author: Nobuyoshi Nakada AuthorDate: 2022-01-12 18:17:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-12 21:16:01 +0900 [ruby/optparse] Add rdoc options Specify the main page and the page directory. Also in Rakefile, extract and use the same options from the gemspec file. https://github.com/ruby/optparse/commit/d182cd60b5 commit 39bebd762df97a7206559624f1897121ad5f157d Author: Nobuyoshi Nakada AuthorDate: 2022-01-12 18:16:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-12 21:16:01 +0900 [ruby/optparse] Add .document files https://github.com/ruby/optparse/commit/ed283559d4 commit 26b4aa853f5b770af03d2d50d7045e04b887b45a Author: Nobuyoshi Nakada AuthorDate: 2022-01-12 17:18:01 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-12 17:51:14 +0900 Show JIT options only when supported commit dcb02cb28aa8c6d998291aaddf95a571d369f316 Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:44:20 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-12 11:02:24 +0900 [ruby/io-nonblock] Use omit instead of skip for test-unit https://github.com/ruby/io-nonblock/commit/a7bfbfa049 commit 186fd89086da1a2285f71ba1dfc275580c5cd229 Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:24:19 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-12 10:59:21 +0900 [ruby/rinda] Use omit instead of skip for test-unit https://github.com/ruby/rinda/commit/1d3512aa26 commit bf2bd6dc22bde97888c60f10d3f42714c6ac1a19 Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:41:25 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-12 10:53:57 +0900 [ruby/io-wait] Use omit instead of skip for test-unit https://github.com/ruby/io-wait/commit/75543ab1bc commit 7f5e06601b5dc4ea1c1c91cfb843ed83baafe251 Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:31:48 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-12 10:53:34 +0900 [ruby/date] Use omit instead of skip for test-unit https://github.com/ruby/date/commit/537f3f681e commit 236678b823d304e7b4c32cd8470af487f38920ce Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:25:17 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-12 10:52:09 +0900 [ruby/open3] Use omit instead of skip for test-unit https://github.com/ruby/open3/commit/f6ca124b56 commit 8ccbca262352f282c9d8a06538cfe2dd20c31410 Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:34:48 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-12 10:50:43 +0900 [ruby/win32ole] Use omit() for skip() https://github.com/ruby/win32ole/commit/2d5dc47ed4 commit 5331615d546169f1c90014a3cd2964e6d3dd0420 Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:19:26 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-12 10:50:41 +0900 [ruby/win32ole] Use omit instead of skip for test-unit https://github.com/ruby/win32ole/commit/c0586b2f75 commit c02a9994cea77d13a9ce8677a1b46dfb8da67d0f Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:38:05 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-12 10:49:58 +0900 [ruby/resolv] Use omit instead of skip for test-unit https://github.com/ruby/resolv/commit/55e42221d4 commit d494a16ac5d39544b1a5b317414f27f90678a3a5 Author: Jeremy Evans AuthorDate: 2021-01-10 05:14:23 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-12 10:49:57 +0900 [ruby/resolv] Support more characters in link local addresses Implements [Feature #17524] https://github.com/ruby/resolv/commit/993a1a374f commit 14967347b9bb819c365c73dd035baac723d56b51 Author: Noah Gibbs AuthorDate: 2022-01-12 04:17:59 +0900 Commit: GitHub CommitDate: 2022-01-12 04:17:59 +0900 YJIT stats documentation additions and updates (#5427) * YJIT documentation additions and updates * Update yjit.md Co-authored-by: Maxime Chevalier-Boisvert Notes: Merged-By: maximecb commit 34ebf82e839bf542444a92e075853ff8f6332156 Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:36:31 +0900 Commit: git[bot] CommitDate: 2022-01-11 21:50:53 +0900 [ruby/tmpdir] Use omit instead of skip for test-unit https://github.com/ruby/tmpdir/commit/40107b59b3 commit 9b3dcf193c8a39b1316f0f2c6d9da5998a830663 Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:39:34 +0900 Commit: git[bot] CommitDate: 2022-01-11 21:45:34 +0900 [ruby/net-http] Use omit instead of skip for test-unit https://github.com/ruby/net-http/commit/843d4548de commit 167121a9e75ca2a7a476627ea7f37634c1bd68c8 Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:27:59 +0900 Commit: git[bot] CommitDate: 2022-01-11 21:40:51 +0900 [ruby/find] Use omit instead of skip for test-unit https://github.com/ruby/find/commit/0ebbd5b852 commit 6b87d980112c1b37f0bb64d5fa5d78a3f5899fdf Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:26:49 +0900 Commit: git[bot] CommitDate: 2022-01-11 21:35:22 +0900 [ruby/zlib] Use omit instead of skip for test-unit https://github.com/ruby/zlib/commit/5f23cd3009 commit f95039af7584a2fa27e4d1cbcdf28bbf5b5ecdcf Author: Hiroshi SHIBATA AuthorDate: 2022-01-11 21:17:53 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-11 21:17:59 +0900 Use omit instead of skip without the default gems tests commit 6d3ee418c2e12adaf292ad74b7d46a7708e91889 Author: Nobuyoshi Nakada AuthorDate: 2022-01-09 12:24:13 +0900 Commit: git[bot] CommitDate: 2022-01-11 20:20:51 +0900 [rubygems/rubygems] Markup code with RDoc notations https://github.com/rubygems/rubygems/commit/c29cd23826 commit b633c9ac1cc06610c09aaeba1faa2bf3da7d2be0 Author: Vladimir Dementyev AuthorDate: 2022-01-11 19:20:19 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-11 19:58:57 +0900 Reduce p_args rules with p_rest commit b5310b8975dffd18a90e149e00673b585101cab8 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-01-11 17:33:01 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-01-11 17:33:01 +0900 Fix compile errors ``` compiling ../ruby.c ../ruby.c:1547:17: error: implicit declaration of function 'setup_yjit_options' is invalid in C99 [-Werror,-Wimplicit-function-declaration] setup_yjit_options(s, &opt->yjit); ^ ../ruby.c:1547:17: note: did you mean 'setup_mjit_options'? ../ruby.c:1122:1: note: 'setup_mjit_options' declared here setup_mjit_options(const char *s, struct mjit_options *mjit_opt) ^ ../ruby.c:1547:45: error: no member named 'yjit' in 'struct ruby_cmdline_options'; did you mean 'mjit'? setup_yjit_options(s, &opt->yjit); ^~~~ mjit ../ruby.c:192:25: note: 'mjit' declared here struct mjit_options mjit; ^ ../ruby.c:1924:28: error: no member named 'yjit' in 'struct ruby_cmdline_options'; did you mean 'mjit'? rb_yjit_init(&opt->yjit); ^~~~ mjit ../ruby.c:192:25: note: 'mjit' declared here struct mjit_options mjit; ^ 3 errors generated. ``` commit 3d675c72b9f23791a03bd3b2251e8a2c488b33df Author: Nobuyoshi Nakada AuthorDate: 2022-01-11 17:26:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-11 17:26:21 +0900 Use `setup_yjit_options` only when supported commit 1c9b5d452e9f2f675130f13393a031e28bf982d7 Author: Nobuyoshi Nakada AuthorDate: 2022-01-11 11:45:24 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-11 11:49:34 +0900 Reject command line option ending with `-` commit 8b585f74604318995daa337d41f19fabb9ce3711 Author: Nobuyoshi Nakada AuthorDate: 2022-01-11 10:12:40 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-11 10:12:40 +0900 Define YJIT options only when supported commit d920535d1b0a17af2fb7cdc541f341461a001181 Author: Burdette Lamar AuthorDate: 2022-01-11 08:02:48 +0900 Commit: GitHub CommitDate: 2022-01-11 08:02:48 +0900 Enhanced RDoc for IO (#5425) Treats: #pread #pwrite #binmode #binmode? Notes: Merged-By: BurdetteLamar commit 6931d70e6ef7495dbaa45d62d8065b80cc0fde2a Author: Burdette Lamar AuthorDate: 2022-01-11 06:14:36 +0900 Commit: GitHub CommitDate: 2022-01-11 06:14:36 +0900 Enhanced RDoc for IO (#5424) Treats: #sysseek #syswrite #sysread Notes: Merged-By: BurdetteLamar commit 9e79ae539b6c939af6c3bc1a008a019fb920fe64 Author: aycabta AuthorDate: 2022-01-04 14:21:46 +0900 Commit: git[bot] CommitDate: 2022-01-11 06:10:37 +0900 [ruby/reline] Clear dialog when just_move_cursor is called with dialog at last line https://github.com/ruby/reline/commit/05024b968e commit 930ebdd7ca4dfb9386fcaa52909dadb970163f8e Author: John Hawthorn AuthorDate: 2022-01-06 09:00:21 +0900 Commit: John Hawthorn CommitDate: 2022-01-11 03:53:31 +0900 YJIT: Support kwargs for cfunc This adds support for passing keyword arguments to cfuncs. This is done by calling a helper method to create the hash from the top N values on the stack (determined by the callinfo) and then moving that value onto the stack. Notes: Merged: https://github.com/ruby/ruby/pull/5397 commit a9dc0c59e314de66f56d0a1a551a74c96fd11c8d Author: Burdette Lamar AuthorDate: 2022-01-11 03:45:06 +0900 Commit: GitHub CommitDate: 2022-01-11 03:45:06 +0900 [DOC] Enhanced RDoc for IO (#5422) Revises much of the introductory material. Also treats: #close_on_exec #close #closed? #close_read #close_write Notes: Merged-By: BurdetteLamar commit 04d9b6d2f9d486f3e75e6b352f517bb821982b23 Author: Alan Wu AuthorDate: 2022-01-11 01:39:36 +0900 Commit: Benoit Daloze CommitDate: 2022-01-11 02:02:00 +0900 [DOC] Link to Ruby Spec and rephrase project goal The word "specification" can be confusing as it might make readers assume that the Ruby Spec Suite is a specification similar to an ISO specification. Avoid the word and link to the project so curious parties could read more about the project. Notes: Merged: https://github.com/ruby/ruby/pull/5423 commit 4053e8ba0d39b688440fedee2ab3fffabcd64312 Author: Benoit Daloze AuthorDate: 2022-01-11 00:29:54 +0900 Commit: Benoit Daloze CommitDate: 2022-01-11 00:29:54 +0900 Update to ruby/spec@226cfdc commit 8abfc106058d09840d13f64e7e87cb7e40c3d6fa Author: Benoit Daloze AuthorDate: 2022-01-11 00:29:53 +0900 Commit: Benoit Daloze CommitDate: 2022-01-11 00:29:53 +0900 Update to ruby/mspec@3ea3d32 commit ca97001a945abf93dc5fbfe99f59f28c7d91e4c8 Author: Benoit Daloze AuthorDate: 2022-01-10 21:08:59 +0900 Commit: Benoit Daloze CommitDate: 2022-01-10 21:08:59 +0900 Make the Ractor-safe section more fluent commit b4d0d07e2c1ad21297a286601dcc9ec2ab068b69 Author: Trey Evans AuthorDate: 2022-01-10 04:16:02 +0900 Commit: Benoit Daloze CommitDate: 2022-01-10 21:04:31 +0900 Clarify ractor documentation meaning and formatting. Notes: Merged: https://github.com/ruby/ruby/pull/5421 commit c764e368bd9c0487e6cc97f8a62e0e0e99a0d7c5 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-01-10 20:17:05 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-01-10 20:17:05 +0900 Fix default --jit-max-cache in `ruby --help` changed at 028f1887c2bfa50dcfc1b623470d6ab1b880fdde commit 65a8d52212d3945bb5f547136a88f43022a31cf3 Author: Nobuyoshi Nakada AuthorDate: 2022-01-09 19:17:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-09 19:17:48 +0900 Revert "[DOC] Mention RBOOL in extension.rdoc [Feature #13125]" This reverts commit 9ad34da47ff7d71446e667897559047ed5635b60, as `RBOOL` is not defined publicly yet. commit b43ad6b802b805cec6bee503e352d9697da8ca56 Author: Nobuyoshi Nakada AuthorDate: 2022-01-09 12:41:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-09 13:21:52 +0900 [DOC] Fold too long lines commit 83983bacbc78edf94ee66f9a3218095c0876ed4e Author: Nobuyoshi Nakada AuthorDate: 2022-01-09 12:39:26 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-09 12:40:25 +0900 [DOC] Mention `make check` commit a7faca51acd34b73de037b4ba4956e1dd05a3839 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-01-09 12:39:34 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-01-09 12:39:34 +0900 Add `=num` to yjit options `--yjit-call-threshold` and `--yjit-max-versions` need an argument. commit cc01ae591bba7ff11f5e83440d986df65b63c29a Author: Nobuyoshi Nakada AuthorDate: 2022-01-09 12:34:11 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-09 12:34:11 +0900 [DOC] test-spec would be preferable now commit 8648457541ec016b1d9d305d9d3ea29fb93ca336 Author: Samuel Williams AuthorDate: 2022-01-09 08:06:20 +0900 Commit: GitHub CommitDate: 2022-01-09 08:06:20 +0900 Don't combine test-all and rubyspec. Notes: Merged: https://github.com/ruby/ruby/pull/5420 Merged-By: ioquatix commit 33cc8816bea87e99edfa5488479172597101dc65 Author: Peter Zhu AuthorDate: 2022-01-09 05:07:57 +0900 Commit: Peter Zhu CommitDate: 2022-01-09 05:07:57 +0900 Revert "Enable Variable Width Allocation by default" This reverts commit c365c5921ea26e31c03a85b01ff4c04629abfc10. commit 18b97eee5ace0fc70bf4e6d61092ad9fbade5f56 Author: John Hawthorn AuthorDate: 2022-01-05 18:07:52 +0900 Commit: John Hawthorn CommitDate: 2022-01-09 04:40:55 +0900 YJIT: Add support for ruby array cfuncs (argc=-2) This adds support for cfuncs which take variable arguments using a Ruby array. This is specified with the method entry's argc == -2. Notes: Merged: https://github.com/ruby/ruby/pull/5396 commit b5c039125fe375f91b9795a5e1b29febaa12d072 Author: John Hawthorn AuthorDate: 2022-01-05 17:47:10 +0900 Commit: John Hawthorn CommitDate: 2022-01-09 04:40:55 +0900 YJIT: Save SP later in cfunc call Saving SP later allows us to avoid storing SP in an intermediate register and allows using the ctx_stack_opnd helpers. Notes: Merged: https://github.com/ruby/ruby/pull/5396 commit 09cfc653b77584d557a551df6a5b8ebddbbd11a2 Author: Peter Zhu AuthorDate: 2022-01-08 12:34:54 +0900 Commit: git[bot] CommitDate: 2022-01-08 20:32:06 +0900 [ruby/reline] Fix reline on Solaris Solaris requires that the pointer errret_int is alined to an integer, however, with VWA, strings are no longer aligned to an integer, so use a Fiddle::Pointer with a malloc'd region instead. https://github.com/ruby/reline/commit/5fcd89ab0c commit 0ca00e2cb74f9d07d27844d97c29c208caab95a7 Author: Samuel Williams AuthorDate: 2022-01-08 20:03:16 +0900 Commit: GitHub CommitDate: 2022-01-08 20:03:16 +0900 Move IO write buffer allocation into function. Notes: Merged: https://github.com/ruby/ruby/pull/5418 Merged-By: ioquatix commit 47a05f7c097aa760d523abbc40e724b4ce2408d1 Author: Nobuyoshi Nakada AuthorDate: 2022-01-08 00:36:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-08 14:47:59 +0900 Do not run the same tests twice commit fb532d801cc2a4d771eb049976d0e0f03090d220 Author: Nobuyoshi Nakada AuthorDate: 2022-01-08 14:25:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-08 14:47:49 +0900 Run an old fixed bug in the same process commit 64eccbf578b82b30299418444a1b77027c2abdd9 Author: Nobuyoshi Nakada AuthorDate: 2022-01-08 13:53:10 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-08 14:47:49 +0900 Run the tests on a subclass of String commit 32a0d9dd4b48d32a1c1eb1c67f2ad3123891c87b Author: Nobuyoshi Nakada AuthorDate: 2022-01-08 12:49:39 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-08 12:49:39 +0900 Prefer the dedecated conversion function commit 54c91042ed61a869d4a66fc089b21f56d165265f Author: Alan Wu AuthorDate: 2022-01-07 11:57:43 +0900 Commit: Alan Wu CommitDate: 2022-01-08 09:29:03 +0900 YJIT: Discard local var type info on routine call Routines that are called from YJIT's output code can call methods, and calling methods mean they can capture and change the environment of the calling frame. Discard type info whenever we perform routine calls. This is more conservative than strictly necessary as some routines need to perform GC allocation but can never call methods and so should never be able to change local variables. However, manually analyzing C functions for whether they have code paths that call methods is error prone and can go out of date as changes land in the codebase. Closes: shopify/yjit#300 Notes: Merged: https://github.com/ruby/ruby/pull/5416 commit bc643bbe2e2c1afbed18ce2bcf4aed138fece412 Author: Peter Zhu AuthorDate: 2022-01-08 05:11:25 +0900 Commit: Peter Zhu CommitDate: 2022-01-08 05:48:06 +0900 Use unsigned short for length of embedded strings Notes: Merged: https://github.com/ruby/ruby/pull/5415 commit d9ef711f296afbe2a029961e83a03d023ca29f15 Author: Peter Zhu AuthorDate: 2022-01-08 04:15:42 +0900 Commit: Peter Zhu CommitDate: 2022-01-08 04:22:32 +0900 Improve string info in rb_raw_obj_info Improve rb_raw_obj_info to output additional into about strings including the length, capacity, and whether or not it is embedded. Notes: Merged: https://github.com/ruby/ruby/pull/5414 commit c365c5921ea26e31c03a85b01ff4c04629abfc10 Author: Peter Zhu AuthorDate: 2022-01-08 01:52:47 +0900 Commit: Peter Zhu CommitDate: 2022-01-08 03:27:13 +0900 Enable Variable Width Allocation by default Notes: Merged: https://github.com/ruby/ruby/pull/5413 commit be68b3a49030f592a10eacc180d21c38c5d5d5db Author: Peter Zhu AuthorDate: 2022-01-07 23:47:09 +0900 Commit: Peter Zhu CommitDate: 2022-01-08 00:50:03 +0900 Change termlen when changing encoding during concatenation After changing the encoding, we should update the terminator length. Notes: Merged: https://github.com/ruby/ruby/pull/5411 commit dd6a75195a635abfcfdb8ac5df26885e91708908 Author: Jeremy Evans AuthorDate: 2021-09-18 04:12:08 +0900 Commit: git[bot] CommitDate: 2022-01-07 09:42:09 +0900 [ruby/pathname] Make Pathname#each_entry return enumerator if called without block Fixes [Bug #18158] https://github.com/ruby/pathname/commit/914c726aa2 commit 6baa78bb78315dfb0bc05e933fe6c512a3a098e6 Author: Nobuyoshi Nakada AuthorDate: 2022-01-06 23:27:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-07 09:23:38 +0900 Use chomp: option when chomp mode Get rid of depending on using $/ internally in String#chomp!, and chomp the separator at once. Notes: Merged: https://github.com/ruby/ruby/pull/5403 commit 83b987054a801405673266ba47c6f38e33efee0e Author: Nobuyoshi Nakada AuthorDate: 2022-01-06 23:08:56 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-07 09:23:38 +0900 Explicitly pass $/ when loop mode Get rid of depending on using $/ internally in ARGF.gets. Notes: Merged: https://github.com/ruby/ruby/pull/5403 commit ae0d67d762a0849cc629a004c2ae9182292b19bd Author: Peter Zhu AuthorDate: 2022-01-07 07:22:11 +0900 Commit: Peter Zhu CommitDate: 2022-01-07 07:23:05 +0900 Revert "Set encoding before concatenating to string" This reverts commit 44368b5f8bc21e19fa06a0fc0625923fc41293e6. Notes: Merged: https://github.com/ruby/ruby/pull/5406 commit aeb344e65c35b9ce72185497c0692751a1ab53cf Author: Peter Zhu AuthorDate: 2022-01-07 06:46:36 +0900 Commit: Peter Zhu CommitDate: 2022-01-07 06:47:49 +0900 Revert "Enable Variable Width Allocation by default" This reverts commit d4a95428bb244ca8c4a97ad50f3837f191f1f0c3. Notes: Merged: https://github.com/ruby/ruby/pull/5405 commit 5f55b03716f0fc8aab227c8a752eefed2a58b38f Author: Peter Zhu AuthorDate: 2022-01-07 03:35:17 +0900 Commit: Peter Zhu CommitDate: 2022-01-07 04:33:35 +0900 Set correct termlen for frozen strings Frozen strings should have the same termlen as the original string when copy_encoding is true. Notes: Merged: https://github.com/ruby/ruby/pull/5399 commit 44368b5f8bc21e19fa06a0fc0625923fc41293e6 Author: Peter Zhu AuthorDate: 2022-01-07 03:32:59 +0900 Commit: Peter Zhu CommitDate: 2022-01-07 04:33:35 +0900 Set encoding before concatenating to string If we set encoding after the call to rb_str_buf_cat, then rb_str_buf_cat will not set the correct terminator length. Notes: Merged: https://github.com/ruby/ruby/pull/5399 commit ee4784c06e991c605df31ab520e6b09c0ebc1e9e Author: Peter Zhu AuthorDate: 2022-01-06 23:03:45 +0900 Commit: Peter Zhu CommitDate: 2022-01-07 04:33:35 +0900 Update lldb_cruby.py for VWA strings Notes: Merged: https://github.com/ruby/ruby/pull/5399 commit 3818cfbd47265d509908d63331e17c3fc1dc5a8a Author: Peter Zhu AuthorDate: 2022-01-06 23:02:19 +0900 Commit: Peter Zhu CommitDate: 2022-01-07 04:33:35 +0900 Compile with USE_RVARGC=0 on CI Notes: Merged: https://github.com/ruby/ruby/pull/5399 commit d4a95428bb244ca8c4a97ad50f3837f191f1f0c3 Author: Peter Zhu AuthorDate: 2022-01-06 23:00:19 +0900 Commit: Peter Zhu CommitDate: 2022-01-07 04:33:35 +0900 Enable Variable Width Allocation by default Notes: Merged: https://github.com/ruby/ruby/pull/5399 commit ae51f304d28ca8ff3e0680448371c936f10490d0 Author: Yuta Saito AuthorDate: 2022-01-07 00:07:14 +0900 Commit: Yusuke Endoh CommitDate: 2022-01-07 02:13:19 +0900 io_buffer.c: use mremap based resizing only when mremap available some libc implementations (e.g. wasi-libc) define MREMAP_MAYMOVE, but don't have mremap itself, so guard the use of mremap by HAVE_MREMAP Notes: Merged: https://github.com/ruby/ruby/pull/5401 commit 5ad507d751e63ed53f8eb0e518f72aca6588be62 Author: Burdette Lamar AuthorDate: 2022-01-07 01:47:51 +0900 Commit: GitHub CommitDate: 2022-01-07 01:47:51 +0900 Enhanced RDoc for IO (#5402) Treats: #ungetc #isatty #close_on_exec? Notes: Merged-By: BurdetteLamar commit 1bfccba775320ad47d67b49c77a7f999f6d84f48 Author: manga_osyo AuthorDate: 2022-01-06 23:49:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-07 01:13:04 +0900 Add bugs.ruby links. Notes: Merged: https://github.com/ruby/ruby/pull/5400 commit 3f6bfe49db29df00d01952e3cd109afb20017e4e Author: Jeremy Evans AuthorDate: 2022-01-06 15:23:48 +0900 Commit: Jeremy Evans CommitDate: 2022-01-07 01:03:33 +0900 Update test/ruby/test_module.rb Co-authored-by: Nobuyoshi Nakada Notes: Merged: https://github.com/ruby/ruby/pull/5398 commit 24b53b1f3a041a9214437b6465b3e69efcd2db98 Author: Jeremy Evans AuthorDate: 2022-01-06 12:27:14 +0900 Commit: Jeremy Evans CommitDate: 2022-01-07 01:03:33 +0900 Remove unneeded line Notes: Merged: https://github.com/ruby/ruby/pull/5398 commit a79c59472df38297c246b27713c277f2edaefa7a Author: Jeremy Evans AuthorDate: 2022-01-06 09:12:31 +0900 Commit: Jeremy Evans CommitDate: 2022-01-07 01:03:33 +0900 Allow include before calling Module#initialize This is to allow Module subclasses that include modules before calling super in the subclass's initialize. Remove rb_module_check_initializable from Module#initialize. Module#initialize only calls module_exec if a block is passed, it doesn't have other issues that would cause problems if called multiple times or with an already initialized module. Move initialization of super to Module#allocate, though I'm not sure it is required there. However, it's needed to be removed from Module#initialize for this to work. Fixes [Bug #18292] Notes: Merged: https://github.com/ruby/ruby/pull/5398 commit 73be7a85cd4da6229f9a898b77492357e3811210 Author: ximenasandoval AuthorDate: 2022-01-05 09:16:40 +0900 Commit: git[bot] CommitDate: 2022-01-06 23:58:39 +0900 [rubygems/rubygems] Fix suggestions flag https://github.com/rubygems/rubygems/commit/b55a1393ca commit cea4a81056311f13ca1c17f26c9d2c21b5a017a6 Author: ximenasandoval AuthorDate: 2021-12-30 06:24:04 +0900 Commit: git[bot] CommitDate: 2022-01-06 23:58:38 +0900 [rubygems/rubygems] Let fetch understand gem:version syntax Fix version error message Add tests to fetch error messages Fix default version since is not necessary https://github.com/rubygems/rubygems/commit/070620ebe4 commit ee5e684bc1fda49bc28f0fcfc2f79abb26994f08 Author: David Rodríguez AuthorDate: 2022-01-06 22:05:46 +0900 Commit: git[bot] CommitDate: 2022-01-06 23:52:48 +0900 [rubygems/rubygems] Fix `gem install --force` crash Before: ``` $ gem install sfdsfdsfsdide --force ERROR: While executing gem ... (NoMethodError) undefined method `spec' for nil:NilClass @always_install << newest.spec ^^^^^ ``` After: ``` $ gem install sfdsfdsfsdide --force ERROR: Could not find a valid gem 'sfdsfdsfsdide' (>= 0) in any repository ``` https://github.com/rubygems/rubygems/commit/4e2bfd1101 commit e3b0c8c10680d7427bc0b5ec8906a72ce7c64c2d Author: YO4 AuthorDate: 2022-01-03 23:06:47 +0900 Commit: git[bot] CommitDate: 2022-01-06 18:33:57 +0900 [ruby/reline] windows: test_yamatanooroti fix windows can't create too narrow and tall window. https://github.com/ruby/reline/commit/20b5f2f6fc commit e554b17c60b31c79c91cc6fd480c692b04ca9e3f Author: Yuta Saito AuthorDate: 2021-12-29 15:33:03 +0900 Commit: Yusuke Endoh CommitDate: 2022-01-06 18:14:24 +0900 tool/rbinstall.rb: instal ruby.wasm produced by Emscripten Notes: Merged: https://github.com/ruby/ruby/pull/5370 commit 2db7952e592789819d18b28b1b9ef1b36671f21d Author: git[bot] AuthorDate: 2022-01-06 16:02:37 +0900 Commit: git[bot] CommitDate: 2022-01-06 16:02:37 +0900 Update bundled gems list at 2022-01-06 commit 3e417a554b97893ae407e9dd1581ac17fb759cee Author: Nobuyoshi Nakada AuthorDate: 2022-01-06 11:32:27 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-06 11:32:27 +0900 NEWS: "taintedness" and "trustedness" methods are removed commit ac0d27eb58839a380af335bf42a5cc08ad144b6e Author: Nobuyoshi Nakada AuthorDate: 2022-01-06 11:20:55 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-06 11:20:55 +0900 NEWS: Separate removed constants section commit da43c8822c31789cd59f009d2d563a31433b67bf Author: Nobuyoshi Nakada AuthorDate: 2022-01-06 10:26:19 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-06 10:26:19 +0900 Remove useless code [Bug #18185] RMODULE_SUPER is initialized to 0, as the uninitialized module flag is used since b929af430c39df6597d2f3f53b82c38b1d76217b. commit 5e7cd480f968cddc4c6d6ad0e1a4fa74e5ee3938 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-01-06 10:14:11 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-01-06 10:14:11 +0900 Fix spec failure on ruby 3.1 Because https://github.com/ruby/ruby/pull/5148 merged after Ruby 3.1.0 released. 13241b71a50dded0a7b021ec4f2fb6a995daace9 did not fix proc spec yet. https://github.com/ruby/actions/runs/4718820699?check_suite_focus=true#step:18:173 ``` 1) Proc#parameters adds * rest arg for "star" argument FAILED Expected [[:req, :x], [:rest]] == [[:req, :x], [:rest, :*]] to be truthy but was false /home/runner/work/actions/actions/snapshot-ruby_3_1/spec/ruby/core/proc/parameters_spec.rb:85:in `block (3 levels) in ' /home/runner/work/actions/actions/snapshot-ruby_3_1/spec/ruby/core/proc/parameters_spec.rb:3:in `' ``` commit 445c055b443b96921eb1fd9cd7b80e86ed4d078b Author: Burdette Lamar AuthorDate: 2022-01-06 07:13:06 +0900 Commit: GitHub CommitDate: 2022-01-06 07:13:06 +0900 Enhanced RDoc for IO (#5395) Treats: #getc #readchar #getbyte #readbyte #ungetbyte Notes: Merged-By: BurdetteLamar commit 791343b5bb1b8bb11de4ba2800118c20e36b5a71 Author: Jeremy Evans AuthorDate: 2021-12-28 04:38:12 +0900 Commit: Jeremy Evans CommitDate: 2022-01-06 03:59:03 +0900 Remove Refinement#{extend_object,append_features,prepend_features} Also make include, prepend, and extend raise a TypeError if one of the modules is a refinement. Implements [Feature #18270] Notes: Merged: https://github.com/ruby/ruby/pull/5358 commit f22296d27e9be616a16f9befd2f7c9c2d2f972c3 Author: Yusuke Endoh AuthorDate: 2022-01-05 23:46:27 +0900 Commit: Yusuke Endoh CommitDate: 2022-01-05 23:46:27 +0900 test/ruby/test_refinement.rb: Remove "assigned but unused variable" commit 6f7e02bf46d9c7e778e710fb3761d2d9c44124f2 Author: Peter Zhu AuthorDate: 2022-01-05 22:51:59 +0900 Commit: Peter Zhu CommitDate: 2022-01-05 23:32:53 +0900 Remove assertion causing read barrier to trigger GET_HEAP_PAGE reads the page. If during compaction there is a read barrier on the page, it causes the read barrier to trigger. Notes: Merged: https://github.com/ruby/ruby/pull/5394 commit 8bba6d3d54fb10aa0fe12c3001b520fffc695663 Author: Hiroshi SHIBATA AuthorDate: 2022-01-05 18:02:02 +0900 Commit: git[bot] CommitDate: 2022-01-05 19:16:53 +0900 [rubygems/rubygems] Exclude bin directory for newgem template, Because it contains only development script https://github.com/rubygems/rubygems/commit/01017ee8ca commit e38d583391a8839848abbda8ab32afd59c603da6 Author: Nobuyoshi Nakada AuthorDate: 2022-01-05 18:27:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-05 18:27:16 +0900 NEWS: Links to the tickets to remove deprecated features commit 1272a331b40575826ecefb085232e06d8b4977e2 Author: Nobuyoshi Nakada AuthorDate: 2022-01-05 18:18:43 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-05 18:18:43 +0900 NEWS: Removal of `Kernel#=~` [Feature #15231] commit 54198c7b97d3d353f7ac233e0360034b6e7b6cb6 Author: Shugo Maeda AuthorDate: 2022-01-05 17:47:29 +0900 Commit: Shugo Maeda CommitDate: 2022-01-05 17:47:29 +0900 Add Module#refinements and Refinement#refined_class [Feature #12737] commit 21ee5341f8fc4ca513295dff2148f7c203c908a7 Author: Shugo Maeda AuthorDate: 2022-01-05 16:58:23 +0900 Commit: Shugo Maeda CommitDate: 2022-01-05 16:58:23 +0900 Add Module.used_refinements commit 5757696e07398112c6275704f2cf873aa700f80b Author: Kazuhiro NISHIYAMA AuthorDate: 2022-01-05 16:18:33 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-01-05 16:20:11 +0900 `res.response_body_permitted?` is not defined `response_body_permitted?` is a method of request. commit 6326112e16352caad131f1f1580c4621eb7b1d3f Author: Burdette Lamar AuthorDate: 2022-01-05 09:39:07 +0900 Commit: GitHub CommitDate: 2022-01-05 09:39:07 +0900 Enhanced RDoc for Enumerable (#5393) A little more about the classes that include or extend Enumerable. Notes: Merged-By: BurdetteLamar commit d5836db1b398a7936b0461b3011db66f6cc8c490 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-01-05 09:04:15 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-01-05 09:05:52 +0900 Fix `Leaked file descriptor: TestIO_Console#test_console_kw` ``` Leaked file descriptor: TestIO_Console#test_console_kw: 10 : # ``` commit 13241b71a50dded0a7b021ec4f2fb6a995daace9 Author: Kazuhiro NISHIYAMA AuthorDate: 2022-01-05 08:18:47 +0900 Commit: Kazuhiro NISHIYAMA CommitDate: 2022-01-05 08:18:47 +0900 Fix failures on ruby 3.1 Because https://github.com/ruby/ruby/pull/5148 merged after Ruby 3.1.0 released. https://github.com/ruby/actions/runs/4705986643?check_suite_focus=true#step:18:144 ``` 1) Method#parameters adds * rest arg for "star" argument FAILED Expected [[:rest]] == [[:rest, :*]] to be truthy but was false /home/runner/work/actions/actions/snapshot-ruby_3_1/spec/ruby/core/method/parameters_spec.rb:228:in `block (3 levels) in ' /home/runner/work/actions/actions/snapshot-ruby_3_1/spec/ruby/core/method/parameters_spec.rb:4:in `' 2) Proc#parameters adds * rest arg for "star" argument FAILED Expected [[:req, :x], [:rest]] == [[:req, :x], [:rest, :*]] to be truthy but was false /home/runner/work/actions/actions/snapshot-ruby_3_1/spec/ruby/core/proc/parameters_spec.rb:85:in `block (3 levels) in ' /home/runner/work/actions/actions/snapshot-ruby_3_1/spec/ruby/core/proc/parameters_spec.rb:3:in `' ``` commit d1a91076dc9fb67c08ac074971a9bdbc0207616a Author: David Rodríguez AuthorDate: 2021-12-27 06:08:11 +0900 Commit: git[bot] CommitDate: 2022-01-05 07:25:45 +0900 [rubygems/rubygems] Fix race condition on JRuby On JRuby, sometimes we get the following error in CI when running a realworld test that checks that `gem install rails` succeeds: ``` ERROR: While executing gem ... (NoMethodError) undefined method `ignored=' for nil:NilClass /home/runner/.rubies/jruby-9.3.2.0/lib/ruby/stdlib/rubygems/stub_specification.rb:193:in `to_spec' org/jruby/RubyArray.java:2642:in `map' /home/runner/.rubies/jruby-9.3.2.0/lib/ruby/stdlib/rubygems/specification.rb:758:in `_all' /home/runner/.rubies/jruby-9.3.2.0/lib/ruby/stdlib/rubygems/specification.rb:956:in `each' org/jruby/RubyEnumerable.java:1710:in `any?' /home/runner/.rubies/jruby-9.3.2.0/lib/ruby/stdlib/rubygems/resolver/activation_request.rb:111:in `installed?' /home/runner/.rubies/jruby-9.3.2.0/lib/ruby/stdlib/rubygems/request_set.rb:173:in `block in install' ``` I'm not sure how this error is happening, but I think there's no need to copy the `@ignored` instance variable when materializing stub specifications. This instance variable is used to not print a warning about missing extensions more than once for each gem upon gem activation, but as far as I can see, it's only used by methods that work on specification stubs. Once specifications are materialized, I think it can be safely ignored. https://github.com/rubygems/rubygems/commit/301cecd5a7 commit 5917f49ad03cd3b2c13d3eea85c969a113b83bf8 Author: Jeremy Evans AuthorDate: 2022-01-05 05:38:50 +0900 Commit: Jeremy Evans CommitDate: 2022-01-05 05:38:50 +0900 Fix documentation for Dir.glob Dir.glob("*", File::FNM_DOTMATCH) no longer includes ".." in the returned array as of Ruby 3.1. Fixes [Bug #18436] commit 44379805b0859179ed4c9fb68bb2e5e95720cc3a Author: Peter Zhu AuthorDate: 2022-01-05 03:54:21 +0900 Commit: Peter Zhu CommitDate: 2022-01-05 04:46:20 +0900 Fix crash on bootup when RGENGC_CHECK_MODE=2 with GC stress We need to unshare the array loaded_features because the shared root could be old gen (while loaded_features is young) which causes a WB miss. Notes: Merged: https://github.com/ruby/ruby/pull/5392 commit 9c15da0fd4f9092f6b1b18191a0714932b20ef5b Author: Burdette Lamar AuthorDate: 2022-01-05 03:57:45 +0900 Commit: GitHub CommitDate: 2022-01-05 03:57:45 +0900 Enhanced RDoc for IO (#5381) Treats: #lineno #lineno= #readline #readlines #each_line #each_byte #each_char #each_codepoint Notes: Merged-By: BurdetteLamar commit 9e0a91d0640600f2dfd7fc1d5fae6667019c9ca5 Author: Jeremy Evans AuthorDate: 2022-01-05 02:13:19 +0900 Commit: Jeremy Evans CommitDate: 2022-01-05 03:03:18 +0900 Don't segfault if Warning.warn is undefined Check that there is a method entry for the method before passing it to rb_method_entry_arity. Fixes [Bug #18458] Notes: Merged: https://github.com/ruby/ruby/pull/5391 commit ad007bc6ea1c75c2547be2481fba60b38dd1add1 Author: Matt Valentine-House AuthorDate: 2021-11-16 06:28:20 +0900 Commit: Peter Zhu CommitDate: 2022-01-05 00:27:46 +0900 Switch `is_pointer_to_heap` to use library bsearch This commit switches from a custom implemented bsearch algorithm to use the one provided by the C standard library. Because `is_pointer_to_heap` will only return true if the pointer being searched for is a valid slot starting address within the heap page body, we've extracted the bsearch call site into a more general function so we can use it elsewhere. The new function `heap_page_for_ptr` returns the heap page for any heap page pointer, regardless of whether that is at the start of a slot or in the middle of one. We then use this function as the basis of `is_pointer_to_heap`. Notes: Merged: https://github.com/ruby/ruby/pull/5187 commit 615e9b28658c5b44a4474e04a53b84ae83b8e3fd Author: Peter Zhu AuthorDate: 2022-01-04 22:59:32 +0900 Commit: Peter Zhu CommitDate: 2022-01-04 23:46:36 +0900 [Feature #18364] Add GC.stat_heap to get stats for memory heaps GC.stat_heap will return stats for memory heaps. This is used for the Variable Width Allocation feature. Notes: Merged: https://github.com/ruby/ruby/pull/5177 commit e9a4cc02b491fc8a2936f51b9f94ddcd77dd67f7 Author: Yusuke Endoh AuthorDate: 2022-01-04 23:18:34 +0900 Commit: git[bot] CommitDate: 2022-01-04 23:18:37 +0900 [ruby/error_highlight] Add a test to check if it is robust against a spoofed filename Previously, RubyVM::AST.of opened a wrong file if the iseq's file path is spoofed. ``` module Dummy binding.irb end ``` ``` $ ruby test.rb From: test.rb @ line 2 : 1: module Dummy => 2: binding.irb 3: end irb(Dummy):001:0> foo /home/mame/work/ruby/local/lib/ruby/3.1.0/error_highlight/base.rb:412:in `spot_colon2': undefined method `last_lineno' for nil:NilClass (NoMethodError) if nd_parent.last_lineno == @node.last_lineno ^^^^^^^^^^^^ ``` Found by @kateinoigakukun This issue is already fixed in the interpreter side. This change just adds a test for the case. https://github.com/ruby/error_highlight/commit/f3626b9032 commit 11b1ebe606a82bcdcb4ff5568f0302c5470d0048 Author: Christian Boos AuthorDate: 2021-12-30 07:10:21 +0900 Commit: git[bot] CommitDate: 2022-01-04 23:09:01 +0900 [ruby/error_highlight] Fix the spurious TypeError. When we have no backtrace locations, we can't have the highlight, so just return the message. https://github.com/ruby/error_highlight/commit/9f5c639494 commit e22218b510ec6befb385a6dda92d4a178607ebc7 Author: Christian Boos AuthorDate: 2021-12-30 07:03:41 +0900 Commit: git[bot] CommitDate: 2022-01-04 23:09:00 +0900 [ruby/error_highlight] Reproduce the error seen when calling .to_s in embedded Ruby The test fails with the following error: Error: test_simulate_funcallv_from_embedded_ruby(ErrorHighlightTest): TypeError: wrong argument type nil (expected method) https://github.com/ruby/error_highlight/commit/52943c9cd2 commit b673e9a3040335b63cbf216e66b147f2b83828a9 Author: Yusuke Endoh AuthorDate: 2022-01-04 17:52:07 +0900 Commit: Yusuke Endoh CommitDate: 2022-01-04 17:52:07 +0900 Fix the previous commit commit 426ddbfff5e3106db52456e2b91a23f2f1644872 Author: Yusuke Endoh AuthorDate: 2022-01-04 17:34:28 +0900 Commit: Yusuke Endoh CommitDate: 2022-01-04 17:34:28 +0900 test/ruby/test_method.rb: Fix a random failure during `make COVERAGE=1` This fixes the following failure. ``` 1) Error: TestMethod#test_method_list: NoMethodError: undefined method `<=>' for # mods = mods.sort_by {|m| m.name } ^^^^^^^^ ``` https://github.com/ruby/actions/runs/4699487470?check_suite_focus=true TestNoMethodError#test_to_s creates an anonymous module whose `#name` method returns a BasicObject. https://github.com/ruby/ruby/blob/f0669fb6cbdbad499974252ef2d955a608d0adc1/test/ruby/test_nomethod_error.rb#L95-L99 TestMethod#test_method_list uses `ObjectSpace.each_object(Module)` to gather all Modules and attempts to sort them by `#name`. But the anonymous module returns a BasicObject, which leads to the test failure above. commit 47bf64a26d3d95a312ea5cf5d94ee1d2104f5e26 Author: Hiroshi SHIBATA AuthorDate: 2022-01-04 17:25:30 +0900 Commit: Hiroshi SHIBATA CommitDate: 2022-01-04 17:25:30 +0900 Use omit instead of skip: test/ruby/**/*.rb commit f0669fb6cbdbad499974252ef2d955a608d0adc1 Author: David Rodríguez AuthorDate: 2022-01-04 16:32:45 +0900 Commit: git[bot] CommitDate: 2022-01-04 16:38:17 +0900 [ruby/optparse] Use `require_relative` for internal requires (https://github.com/ruby/optparse/pull/28) https://github.com/ruby/optparse/commit/e4f2682128 commit 5074aa19841dac0c1fcb037cd8306c5fe8e8516a Author: Nobuyoshi Nakada AuthorDate: 2022-01-04 13:30:14 +0900 Commit: git[bot] CommitDate: 2022-01-04 14:59:18 +0900 [rubygems/rubygems] Test the actual checksums of the mock gems https://github.com/rubygems/rubygems/commit/2b42630959 commit 0bfb406b7577e733873f59a108795b59fab3c264 Author: Nobuyoshi Nakada AuthorDate: 2022-01-04 08:37:24 +0900 Commit: git[bot] CommitDate: 2022-01-04 14:59:17 +0900 [rubygems/rubygems] Fix the test to use the mock gem path "NUL.*" means the NUL device on Windows, as well as mere "NUL", and no data is read. https://github.com/rubygems/rubygems/commit/e2c7d22745 commit 8f9623741a2cfe8d26af44c3a4f13dffc88fe834 Author: Nobuyoshi Nakada AuthorDate: 2022-01-04 00:56:54 +0900 Commit: git[bot] CommitDate: 2022-01-04 14:59:17 +0900 [rubygems/rubygems] Append a newline to the checksum file https://github.com/rubygems/rubygems/commit/48ea2778e9 commit c2e8e1f6a43b867c8e08efa55467bcabd0f6ab6b Author: Nobuyoshi Nakada AuthorDate: 2022-01-04 00:24:58 +0900 Commit: git[bot] CommitDate: 2022-01-04 14:59:16 +0900 [rubygems/rubygems] Fix checksum Calculate the checksum of the content, not the given pathname at the build time itself. https://github.com/rubygems/rubygems/commit/b60ee97ee9 commit 67612dadbca5ddeba1c979e4838739bf7430a7cf Author: Jeremy Evans AuthorDate: 2022-01-04 08:18:02 +0900 Commit: git[bot] CommitDate: 2022-01-04 08:25:58 +0900 [ruby/net-http] Handle invalid use of IP addresses in SNI Server Name Indication does not allow IP addresses (RFC 6066, section 3: `Literal IPv4 and IPv6 addresses are not permitted in "HostName".`). Recent versions of LibreSSL enforce this restriction, which raises when setting the hostname to an IP address (s.hostname=), before attempting to setup the SSL connection. Since the certificate used in the test is already for localhost, we cannot connect to localhost. However, as all the test does is check for a specific exception, just modify the regexp used so it handles both cases. https://github.com/ruby/net-http/commit/6ab399db45 commit 3ae8b115c2fad3ed71209ff56813fff2e4a8ad3b Author: Alan Wu AuthorDate: 2022-01-04 02:43:23 +0900 Commit: Alan Wu CommitDate: 2022-01-04 02:43:23 +0900 YJIT: Fix confusing self reference when initializing variable commit 980bf94f022116308fb7f95f697a85dc24f5884a Author: 卜部昌平 AuthorDate: 2020-07-27 14:54:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-03 22:33:38 +0900 Kernel#=~: delete Has been deprecated since ebff9dc10e6e72239c23e50acc7d3cbfdc659e7a. commit 66e9256147c77a1b4f0ae29a841b4042600f004c Author: aycabta AuthorDate: 2022-01-03 07:07:06 +0900 Commit: git[bot] CommitDate: 2022-01-03 07:06:28 +0900 [ruby/reline] Remove test TODO comments that have been confirmed by E2E tests https://github.com/ruby/reline/commit/2ed77b693f commit c8694303eef1f535b24b2fa43ab99a241fd51c10 Author: Soutaro Matsumoto AuthorDate: 2022-01-02 20:24:20 +0900 Commit: GitHub CommitDate: 2022-01-02 20:24:20 +0900 Update RBS to skip testing `Kernel#=~` (#5386) Notes: Merged-By: soutaro commit 03d97cc966fe35cd571a5260c01a9f50cbe60b2a Author: Samuel Williams AuthorDate: 2022-01-02 17:47:50 +0900 Commit: Samuel Williams CommitDate: 2022-01-02 17:47:50 +0900 Remove UTF-8 from documentation. commit e7c2d5cc024207dae91c19e9e0d0b1df43ec1b7d Author: Victor Shepelev AuthorDate: 2022-01-02 17:43:01 +0900 Commit: GitHub CommitDate: 2022-01-02 17:43:01 +0900 [DOC] Adjust IO::Buffer docs (#5374) Notes: Merged-By: ioquatix commit 6f53425825eb71d71c7fdd424801a2cd6da47e16 Author: Nobuyoshi Nakada AuthorDate: 2022-01-02 15:05:02 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-02 15:05:02 +0900 NEWS: Removed constants commit 462079611a7d68852d80671800b698f9f6e69e88 Author: Nobuyoshi Nakada AuthorDate: 2022-01-02 14:54:03 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-02 15:03:29 +0900 [ruby/etc] Remove deprecate constants under Struct https://github.com/ruby/etc/commit/143edbd215 commit eb294491c00ec3986d619a92008f3b864be0daf4 Author: Nobuyoshi Nakada AuthorDate: 2022-01-02 14:53:30 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-02 15:03:05 +0900 [ruby/etc] bump up to 1.4.0 https://github.com/ruby/etc/commit/ca41f182f6 commit 91d09ca95beb990a451f8f6c9ea7bc377be62b93 Author: Nobuyoshi Nakada AuthorDate: 2022-01-02 14:34:49 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-02 14:52:31 +0900 [ruby/etc] bump up to 1.3.1 https://github.com/ruby/etc/commit/82dd69a4cf commit bb0a725f1f0c1c33c0b058e876139c3a9025999c Author: Nobuyoshi Nakada AuthorDate: 2022-01-02 14:26:09 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-02 14:52:28 +0900 [ruby/etc] [DOC] Refine Etc::Passwd#passwd description https://github.com/ruby/etc/commit/17b99fe42e commit 314effdf77e84aac0e6ffd7bce3af41271463c22 Author: Nobuyoshi Nakada AuthorDate: 2022-01-02 14:22:59 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-02 14:52:27 +0900 [ruby/etc] [DOC] Document Etc::Passwd and Etc::Group as classes https://github.com/ruby/etc/commit/106429f10b commit 9135a3e864f03ba36eeb4bd2f145459dd423f712 Author: Nobuyoshi Nakada AuthorDate: 2022-01-02 14:07:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-02 14:52:25 +0900 [ruby/etc] [DOC] Add document task https://github.com/ruby/etc/commit/8c8c6198e2 commit 546dbcfe6944b1f05fdd20fad0ed8b697390d463 Author: Nobuyoshi Nakada AuthorDate: 2022-01-02 13:22:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-02 13:29:01 +0900 [ruby/etc] Update ruby versions https://github.com/ruby/etc/commit/959416b18a commit 76181ae940c485d80990941d064f8fdc26b3b4ee Author: aycabta AuthorDate: 2022-01-02 11:44:45 +0900 Commit: git[bot] CommitDate: 2022-01-02 11:44:07 +0900 [ruby/reline] Check capname of tigetstr/tigetflag/tigetnum Incorrect arguments can cause SEGV. https://github.com/ruby/reline/commit/a58748bcf9 commit f375b6414d20209ce5d56b7d2f016c286293b075 Author: aycabta AuthorDate: 2022-01-02 11:42:34 +0900 Commit: git[bot] CommitDate: 2022-01-02 11:44:06 +0900 [ruby/reline] Add test_tigetstr_with_error https://github.com/ruby/reline/commit/1ca779740a commit 6d1b406dc8dea6f618ae14899dc6b7abf23470d4 Author: aycabta AuthorDate: 2022-01-02 11:24:47 +0900 Commit: git[bot] CommitDate: 2022-01-02 11:24:14 +0900 [ruby/reline] Version 0.3.1 https://github.com/ruby/reline/commit/9ab5850444 commit 85f304b9315815f00c54db682a5bb3188c3fa2e8 Author: aycabta AuthorDate: 2022-01-02 10:17:33 +0900 Commit: git[bot] CommitDate: 2022-01-02 10:27:09 +0900 [ruby/reline] Implement Reline::Terminfo.tigetnum https://github.com/ruby/reline/commit/695212d5d2 commit 071653ecd79287661c795400797a5402c4322129 Author: Nobuyoshi Nakada AuthorDate: 2022-01-01 22:17:14 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-02 02:04:05 +0900 Run the prerequisites of test-bundled-gems in order commit 530586fafca6e3ea73d3b19129b31a7aaff05d27 Author: aycabta AuthorDate: 2022-01-02 00:40:24 +0900 Commit: git[bot] CommitDate: 2022-01-02 00:39:45 +0900 [ruby/reline] Fix the definition of tigetflag() in comment... https://github.com/ruby/reline/commit/af4d77ba09 commit 0af9eab08e41167241150439e82041504e2ad26c Author: aycabta AuthorDate: 2022-01-01 23:13:47 +0900 Commit: git[bot] CommitDate: 2022-01-01 23:13:32 +0900 [ruby/reline] Consolidate tests that were unnecessarily divided https://github.com/ruby/reline/commit/62eec42e4a commit 7deee741ab2aeb74304f2e09be7783c0600d1afe Author: aycabta AuthorDate: 2022-01-01 23:12:45 +0900 Commit: git[bot] CommitDate: 2022-01-01 23:12:07 +0900 [ruby/reline] Remove unnecessary qualifiers on definition of comments https://github.com/ruby/reline/commit/abc1e4ee88 commit 6300c4dcc3e040bdaf0f36e7be53e7c0e8c57ac0 Author: aycabta AuthorDate: 2022-01-01 23:03:32 +0900 Commit: git[bot] CommitDate: 2022-01-01 23:06:53 +0900 [ruby/reline] Implement Reline::Terminfo.tigetflag https://github.com/ruby/reline/commit/0451ed7a28 commit fae0b664315c23ef7db451f6241d256c12217051 Author: Nobuyoshi Nakada AuthorDate: 2022-01-01 11:36:54 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-01 18:55:52 +0900 Remove deprecated Random::DEFAULT [Feature #17351] Notes: Merged: https://github.com/ruby/ruby/pull/5382 commit 84891bffe8e68e12a7881d2bbae0db8267035e8a Author: Nobuyoshi Nakada AuthorDate: 2020-11-27 21:42:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-01 18:55:52 +0900 Remove unnecessary Random::DEFAULT expectations The respond_to expectation just suffice as duck-typing. Notes: Merged: https://github.com/ruby/ruby/pull/5382 commit 789da481fc59ffb1a0d4e4deb0a17ec4fcbd1d58 Author: Nobuyoshi Nakada AuthorDate: 2022-01-01 16:57:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-01 17:02:04 +0900 Prefer RBOOL Notes: Merged: https://github.com/ruby/ruby/pull/5385 commit 069cca6f7459da5cc502d0c51f60a9813c611b31 Author: Nobuyoshi Nakada AuthorDate: 2022-01-01 15:41:00 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-01 17:02:04 +0900 Negative RBOOL usage Notes: Merged: https://github.com/ruby/ruby/pull/5385 commit 77ee47188efc64fe8b508494e9b11e8ed481d33c Author: Nobuyoshi Nakada AuthorDate: 2022-01-01 16:06:07 +0900 Commit: Nobuyoshi Nakada CommitDate: 2022-01-01 17:01:40 +0900 Make the internal predict `int_zero_p` return a bool commit 243320d22fcd0b9b7ee4cc5b1b420dcd63d87f5f Author: Samuel Williams AuthorDate: 2022-01-01 16:23:47 +0900 Commit: GitHub CommitDate: 2022-01-01 16:23:47 +0900 Fix incorrect minimum read length. (#5353) Notes: Merged-By: ioquatix commit 5414de4b6e4372af832e338f8eb7a9fe8de17c84 Author: John Hawthorn AuthorDate: 2021-12-31 04:13:37 +0900 Commit: John Hawthorn CommitDate: 2022-01-01 10:30:47 +0900 YJIT: Fix SP index with optarg and unordered kwarg Previously when we were calling a method with an optional argument and multiple keywords arguments which weren't in the order the receiver expected we would use the wrong SP index to rearrange them. Fixes Bug #18453 Notes: Merged: https://github.com/ruby/ruby/pull/5379 commit f59b2e440ea7f4dcc274f54ef1486f90b2ad02bd Author: Nobuyoshi Nakada AuthorDate: 2021-12-31 23:59:50 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-31 23:59:50 +0900 NEWS: Removed methods commit 60e9aa57339a0b4e28f252674f2f033ae1a90888 Author: Nobuyoshi Nakada AuthorDate: 2021-12-31 23:59:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-31 23:59:04 +0900 NEWS: Removed C APIs commit a493732c8e4d038885ae40c71dd3fc5118f36809 Author: U.Nakamura AuthorDate: 2021-12-31 20:13:11 +0900 Commit: U.Nakamura CommitDate: 2021-12-31 20:13:11 +0900 re-enabled YJIT on x64-mswin64 note that YJIT does not work correctly on the platform now. commit 93591d31b07ca6c644b6322ed2936b455cfa0b84 Author: Nobuyoshi Nakada AuthorDate: 2021-12-30 23:32:35 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-31 10:53:54 +0900 Use rb_cObject instead of rb_cData commit 87c03694e60c451e5f52829cd21c70305a952543 Author: Burdette Lamar AuthorDate: 2021-12-31 07:46:24 +0900 Commit: GitHub CommitDate: 2021-12-31 07:46:24 +0900 Enhanced RDoc for IO (#5367) Adds sections to class RDoc: Lines Line Separator Line Limit Line Number Revises example text file t.txt to: Include paragraphs (separated by double line separator). Avoid being too long. Revises examples that use the changed example file. There are several other methods that will point to the added sections. Notes: Merged-By: BurdetteLamar commit f53dfab95c30e222f67e610234f63d3e9189234d Author: Jeremy Evans AuthorDate: 2021-11-20 02:38:22 +0900 Commit: Jeremy Evans CommitDate: 2021-12-31 07:37:42 +0900 Add support for anonymous rest and keyword rest argument forwarding This allows for the following syntax: ```ruby def foo(*) bar(*) end def baz(**) quux(**) end ``` This is a natural addition after the introduction of anonymous block forwarding. Anonymous rest and keyword rest arguments were already supported in method parameters, this just allows them to be used as arguments to other methods. The same advantages of anonymous block forwarding apply to rest and keyword rest argument forwarding. This has some minor changes to #parameters output. Now, instead of `[:rest], [:keyrest]`, you get `[:rest, :*], [:keyrest, :**]`. These were already used for `...` forwarding, so I think it makes it more consistent to include them in other cases. If we want to use `[:rest], [:keyrest]` in both cases, that is also possible. I don't think the previous behavior of `[:rest], [:keyrest]` in the non-... case and `[:rest, :*], [:keyrest, :**]` in the ... case makes sense, but if we did want that behavior, we'll have to make more substantial changes, such as using a different ID in the ... forwarding case. Implements [Feature #18351] Notes: Merged: https://github.com/ruby/ruby/pull/5148 commit 2d2ee338f3427d39d9977c77b09e5d335b6e362b Author: Alan Wu AuthorDate: 2021-12-30 12:06:19 +0900 Commit: Alan Wu CommitDate: 2021-12-30 22:21:51 +0900 YJIT: Avoid pointer size assumption with intptr_t Cast to `void *` first to use the definition of `intptr_t`. Notes: Merged: https://github.com/ruby/ruby/pull/5376 commit d5fc3fa4dbf2d6decb6c2582eed6fd2d8003c70c Author: nagachika AuthorDate: 2021-12-29 19:31:47 +0900 Commit: U.Nakamura CommitDate: 2021-12-30 21:16:29 +0900 win32/win32.c Fix PROT_EXEC bit flag check for FlushInstrucitonCache() Notes: Merged: https://github.com/ruby/ruby/pull/5372 commit db547a3bc457e55c07880ae5d2d77f55b93775eb Author: Nobuyoshi Nakada AuthorDate: 2021-12-28 13:54:16 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-30 21:13:11 +0900 [ruby/win32ole] Undefine allocator of WIN32OLE_VARIABLE to get rid of warning https://github.com/ruby/win32ole/commit/27d0fdc622 commit 31c69d66d2200566695a0c88dd68cdd04a77614d Author: YO4 AuthorDate: 2021-12-27 19:17:33 +0900 Commit: git[bot] CommitDate: 2021-12-30 20:53:21 +0900 [ruby/reline] windows fix scroll https://github.com/ruby/reline/commit/c559d0f7a9 commit 2a311594cc02eace6122d7e5715ae7ac61bc40a7 Author: aycabta AuthorDate: 2021-12-30 20:47:46 +0900 Commit: git[bot] CommitDate: 2021-12-30 20:52:06 +0900 [ruby/reline] Omit a test on Ruby 2.6 Some tokens in Ruby 2.6 have difference information than in 2.7 and later, but 2.6 will soon be out of support. https://github.com/ruby/reline/commit/f3bc698385 commit 9295732af8a8f27c74abbe5ad70abc95e0e65565 Author: aycabta AuthorDate: 2021-12-27 23:14:03 +0900 Commit: git[bot] CommitDate: 2021-12-30 20:52:06 +0900 [ruby/reline] Use ripper_lex_without_warning https://github.com/ruby/reline/commit/b7536dc224 commit f589242e750939eecf2a140fa3182dc5e387f157 Author: ima1zumi AuthorDate: 2021-12-30 11:16:15 +0900 Commit: git[bot] CommitDate: 2021-12-30 20:23:58 +0900 [ruby/reline] Use unix_line_discard when Ctrl-u is entered The kill-line was called when C-u was entered, so it is now called unix-line-discard. In readline(3): > unix-line-discard (C-u) > Kill backward from point to the beginning of the line. > The killed text is saved on the kill-ring. https://github.com/ruby/reline/commit/27570d195e commit 8727161fcf51a3d9157755f410fc3af68bcd29f0 Author: Nobuyoshi Nakada AuthorDate: 2021-12-30 18:52:04 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-30 18:52:04 +0900 Flush deprecation declarations for versions older than 3.0 Notes: Merged: https://github.com/ruby/ruby/pull/5378 commit a90d188b578333c7fb74e51ffe004a208196db82 Author: Nobuyoshi Nakada AuthorDate: 2021-12-30 13:52:22 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-30 15:33:40 +0900 Remove declarations of deprecated functions Notes: Merged: https://github.com/ruby/ruby/pull/5377 commit 1954a95f8bf71f61ce9996a0d8a34b18bb56da3e Author: David Rodríguez AuthorDate: 2021-12-30 04:53:26 +0900 Commit: git[bot] CommitDate: 2021-12-30 07:02:30 +0900 [rubygems/rubygems] Better way to join path components The current way works, but error messages show duplicate "/" in paths, which is weird. https://github.com/rubygems/rubygems/commit/9123deb4fa commit 002fa2859962f22de8afdbeece04966ea57b7da9 Author: Nobuyoshi Nakada AuthorDate: 2021-12-29 16:15:36 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-29 20:53:43 +0900 On 64bit macOS, enlarge heap pages to reduce mmap calls [Bug #18447] Notes: Merged: https://github.com/ruby/ruby/pull/5371 commit 239e71c0af79e0c4b91cc21e7dff44a6c282d7b1 Author: Hiroshi SHIBATA AuthorDate: 2021-12-29 19:29:30 +0900 Commit: git[bot] CommitDate: 2021-12-29 20:12:36 +0900 [ruby/reline] Use omit instead of skip https://github.com/ruby/reline/commit/a538de421f commit f25c2e6336ed640fe71a296c6c429f9d455d8008 Author: Hiroshi SHIBATA AuthorDate: 2021-12-29 19:27:58 +0900 Commit: Hiroshi SHIBATA CommitDate: 2021-12-29 19:27:58 +0900 Use omit instead of skip: test/ruby/enc/**/*.rb commit 6d572902102d9f7b86e5d18a2855e34fd69d94b0 Author: git[bot] AuthorDate: 2021-12-29 16:02:15 +0900 Commit: git[bot] CommitDate: 2021-12-29 16:02:15 +0900 Update bundled gems list at 2021-12-29 commit 4e4c4fab3c25a056688939ae8e003a049fc401ee Author: Nobuyoshi Nakada AuthorDate: 2021-12-29 14:09:37 +0900 Commit: GitHub CommitDate: 2021-12-29 14:09:37 +0900 YJIT: Use proper size prefix and conversion where IL32LLP64 Notes: Merged: https://github.com/ruby/ruby/pull/5369 Merged-By: nobu commit 5ca51ddde81cd7f338d0dd495ceb8569def60647 Author: Nobuyoshi Nakada AuthorDate: 2021-12-29 11:50:28 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-29 11:50:28 +0900 [DOC] Integer#coerce deals with also Float commit 27765a75025d3e13d512b52dd3755ec1e7da004f Author: Nobuyoshi Nakada AuthorDate: 2021-12-29 11:49:06 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-29 11:49:06 +0900 Fix the warning in rb_big2dbl, Bignum is no longer defined commit 3238164f9c2314577f8adc544bede132bd54ad2b Author: Nobuyoshi Nakada AuthorDate: 2021-12-29 09:22:12 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-29 11:40:04 +0900 `ioctl_narg_len` is used only when ioctl(2) is available Notes: Merged: https://github.com/ruby/ruby/pull/5368 commit d75f7078c831d45ab5ba2fae4fbb308d01a21e46 Author: Nobuyoshi Nakada AuthorDate: 2021-12-29 09:29:06 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-29 09:37:59 +0900 [ruby/io-console] bump up to 0.5.11 https://github.com/ruby/io-console/commit/ad3805200c commit e4cd319f3d6560b76dbc1c7e89aa4d790a2d1e43 Author: Samuel Williams AuthorDate: 2021-12-29 09:37:01 +0900 Commit: git[bot] CommitDate: 2021-12-29 09:37:05 +0900 [ruby/irb] Prefer `IO#wait_readable` over `IO#select`. (https://github.com/ruby/irb/pull/323) https://github.com/ruby/irb/commit/1c03bd3373 commit f27eb8148f5a72bbacfebfecc7de9305471bb5c9 Author: Samuel Williams AuthorDate: 2021-12-29 09:27:40 +0900 Commit: Samuel Williams CommitDate: 2021-12-29 09:27:40 +0900 Sync io-console gem. commit 38a3965dea1e811c7c1eebbc27b721e668b4d392 Author: John Hawthorn AuthorDate: 2021-12-27 12:50:46 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-29 08:57:34 +0900 YJIT: Fix warning in iface.c Fixes warning: :16: warning: undefining the allocator of T_DATA class RubyVM::YJIT::Block Notes: Merged: https://github.com/ruby/ruby/pull/5361 commit c9af8a32a05b26d45c5c8967902b3a724f3c1be6 Author: Koichi Sasada AuthorDate: 2021-12-28 17:58:39 +0900 Commit: Koichi Sasada CommitDate: 2021-12-29 00:22:02 +0900 `USE_RUBY_DEBUG_LOG` doesn't check `RUBY_DEVEL` `USE_RUBY_DEBUG_LOG` was only defined when `RUBY_DEVEL` is defined. This patch removes this dependency (`USE_RUBY_DEBUG_LOG` is defined independently from `RUBY_DEVEL`). Do not commit a patch which enables `USE_RUBY_DEBUG_LOG`. Notes: Merged: https://github.com/ruby/ruby/pull/5366 commit 763592d208883714f3d255eb5fb1bee649e9613b Author: Hiroshi SHIBATA AuthorDate: 2021-12-28 21:13:39 +0900 Commit: Hiroshi SHIBATA CommitDate: 2021-12-28 21:13:39 +0900 Use omit instead of skip: test/-ext-/**/*.rb commit 55cdb8b01392848e426521f1589d51dc0fca9608 Author: Hiroshi SHIBATA AuthorDate: 2021-12-28 20:29:43 +0900 Commit: Hiroshi SHIBATA CommitDate: 2021-12-28 20:29:54 +0900 Use omit instead of skip: test/socket/**/*.rb commit bf97415c02b11a8949f715431aca9eeb6311add2 Author: Nobuyoshi Nakada AuthorDate: 2020-11-30 23:33:20 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-28 18:36:30 +0900 Removed deprecated Dir.exists? and File.exists? Notes: Merged: https://github.com/ruby/ruby/pull/5352 commit 40e7aefebad412bde50fa9bdadcc8405f7605355 Author: Nobuyoshi Nakada AuthorDate: 2020-12-28 11:58:21 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-28 18:35:03 +0900 Remove obsolete Fixnum and Bignum Notes: Merged: https://github.com/ruby/ruby/pull/3927 commit b948b1a4e1f8a4a697bbc76873d728afcdc1694a Author: Masataka Pocke Kuwabara AuthorDate: 2021-12-28 18:18:40 +0900 Commit: GitHub CommitDate: 2021-12-28 18:18:40 +0900 Fix RBS test failures of taint/trust (#5364) Notes: Merged-By: pocke commit 63358581bca80c7a885228ac841b0ae9c4ca11b5 Author: Takashi Kokubun AuthorDate: 2021-12-28 16:35:12 +0900 Commit: Takashi Kokubun CommitDate: 2021-12-28 16:35:13 +0900 Fix weird MinGW failure notifications It's been "MinGW / Array", but it will be "MinGW MINGW64 / check" or "MinGW UCRT64 / check" by this. commit 3cd1731920c4fc038870e85dc8c9abf5739fbf71 Author: Takashi Kokubun AuthorDate: 2021-12-28 15:28:15 +0900 Commit: Takashi Kokubun CommitDate: 2021-12-28 15:30:34 +0900 Skip testing --enable-all in MinGW for now If we don't intend to support this platform, we should probably enable MJIT for MinGW. However, since the code for https://bugs.ruby-lang.org/issues/18439 is in place, I'm adjusting the test for it in the meantime. following up https://github.com/ruby/ruby/pull/5363 commit eb49aa311932665ce7ce67fb461e288f46b83c84 Author: Takashi Kokubun AuthorDate: 2021-12-28 15:22:09 +0900 Commit: GitHub CommitDate: 2021-12-28 15:22:09 +0900 Fix test_rubyoptions for MinGW (#5363) * Fix test_rubyoptions for MinGW follows up a74a2f456ad549025861be80f50cc3f0dd6646dd * Require jit_support * Fix MinGW platform * Handle MinGW UCRT and fix the prefix * Make it more robust Notes: Merged-By: k0kubun commit a6e5d70346adc84ffde2d1c153ffb5b39dd2d388 Author: 卜部昌平 AuthorDate: 2021-12-28 14:50:26 +0900 Commit: 卜部昌平 CommitDate: 2021-12-28 14:52:55 +0900 USE_RVARGC released; why not CI commit 91b7be7708797d8d3057fb6f2223645b4b85be71 Author: Takashi Kokubun AuthorDate: 2021-12-28 12:57:04 +0900 Commit: Takashi Kokubun CommitDate: 2021-12-28 12:57:30 +0900 Do not support non-x86_64 platforms This was probably not intended in 85a426dc8678f04a78ffd799943b690ce2984c49. commit 95d2e06c2b465545c8166e5a5edb582ff1d9bcbe Author: David Rodríguez AuthorDate: 2021-12-26 22:42:02 +0900 Commit: git[bot] CommitDate: 2021-12-28 04:38:31 +0900 [rubygems/rubygems] Fix `bundle update --bundler` no longer updating lockfile https://github.com/rubygems/rubygems/commit/a053b7e4d4 commit be476f38f9a467a25b81dabe42ca120924527395 Author: David Rodríguez AuthorDate: 2021-12-21 18:37:46 +0900 Commit: git[bot] CommitDate: 2021-12-27 22:57:46 +0900 [rubygems/rubygems] Don't crash when updating to an unsupported `rubygems-update` version https://github.com/rubygems/rubygems/commit/b0badcd00a commit ebb4044decb293fde12b2d71e822be78034b90b1 Author: David Rodríguez AuthorDate: 2021-12-22 17:28:31 +0900 Commit: git[bot] CommitDate: 2021-12-27 21:32:32 +0900 [rubygems/rubygems] Run `bundle install` in verbose mode To see if we get more information when this fails. https://github.com/rubygems/rubygems/commit/853d33fdc3 commit dd022c1f768d4e633f047ec140474b985736ccc9 Author: David Rodríguez AuthorDate: 2021-12-21 18:04:15 +0900 Commit: git[bot] CommitDate: 2021-12-27 21:32:32 +0900 [rubygems/rubygems] Don't redownload `rubygems-update` package if already there This makes it easier to test the upgrade process locally and should be more efficient in certain cases where the user has already upgraded in the past. https://github.com/rubygems/rubygems/commit/ed6cc88494 commit 56a0f34d318b84d9da11b2be5c0a35a1e27d417f Author: Nobuyoshi Nakada AuthorDate: 2021-11-03 19:10:09 +0900 Commit: Hiroshi SHIBATA CommitDate: 2021-12-27 18:11:48 +0900 [ruby/drb] Fix method names "regist" as "register" https://github.com/ruby/drb/commit/9a1ff286bc commit a74a2f456ad549025861be80f50cc3f0dd6646dd Author: U.Nakamura AuthorDate: 2021-12-27 17:29:16 +0900 Commit: U.Nakamura CommitDate: 2021-12-27 17:29:16 +0900 Now YJIT can be enabled on mswin64 commit 4e007d705c7879a843cba4ef9d4bea8a422de3f9 Author: U.Nakamura AuthorDate: 2021-12-27 17:15:09 +0900 Commit: U.Nakamura CommitDate: 2021-12-27 17:15:09 +0900 Fix some boneheads commit 9790f54bff387b57579dc6f588bc29735eeae85b Author: U.Nakamura AuthorDate: 2021-12-27 16:38:29 +0900 Commit: U.Nakamura CommitDate: 2021-12-27 16:38:29 +0900 Call FlushInstrucitonCache() when PROT_EXEC is specified to mprotect commit 85a426dc8678f04a78ffd799943b690ce2984c49 Author: U.Nakamura AuthorDate: 2021-12-27 15:56:23 +0900 Commit: U.Nakamura CommitDate: 2021-12-27 15:56:23 +0900 Tiny mmap emulation for Windows - prerequisite of supporting YJIT with VC++. - note that now can specfily `--yjit` on mswin64, but not enabled YJIT'ed code because of YJIT requires `OPT_DIRECT_THREADED_CODE` or `OPT_CALL_THREADED_CODE` in `rb_yjit_compile_iseq`. commit d6311cb1ca5860a6e0cbf6f87c1e0ae9e099f61e Author: Hiroshi SHIBATA AuthorDate: 2021-12-27 09:41:55 +0900 Commit: Hiroshi SHIBATA CommitDate: 2021-12-27 10:45:36 +0900 Track RubyGems 3.4.0dev and Bundler 2.4.0dev Notes: Merged: https://github.com/ruby/ruby/pull/5350 commit b7e5ce08ff0196c1a9ed885670495cf09a02bbc3 Author: David Rodríguez AuthorDate: 2021-12-24 09:46:04 +0900 Commit: Hiroshi SHIBATA CommitDate: 2021-12-27 10:45:36 +0900 [rubygems/rubygems] Don't add verbose flag so opaquely for realworld specs https://github.com/rubygems/rubygems/commit/fa8455ef7c Notes: Merged: https://github.com/ruby/ruby/pull/5350 commit fb0737654cc20cf2be5182e05981a216ba6d3789 Author: David Rodríguez AuthorDate: 2021-12-24 09:36:14 +0900 Commit: Hiroshi SHIBATA CommitDate: 2021-12-27 10:45:36 +0900 [rubygems/rubygems] Move setup to the spec that uses it https://github.com/rubygems/rubygems/commit/7cf0a8fa8e Notes: Merged: https://github.com/ruby/ruby/pull/5350 commit 810c1b88ca65703859debe9c415bfd5cbc8391ad Author: David Rodríguez AuthorDate: 2021-12-24 09:35:12 +0900 Commit: Hiroshi SHIBATA CommitDate: 2021-12-27 10:45:36 +0900 [rubygems/rubygems] Remove unused include https://github.com/rubygems/rubygems/commit/a581a1dd50 Notes: Merged: https://github.com/ruby/ruby/pull/5350 commit 03903f23c277b4dae8174347f7a5081b3a776a08 Author: David Rodríguez AuthorDate: 2021-12-27 03:44:24 +0900 Commit: Hiroshi SHIBATA CommitDate: 2021-12-27 10:45:36 +0900 [rubygems/rubygems] Remove the rest of the `RUBY_VERSION` monkeypatching Since we're at it. This generates a bunch of warnings and seems like a brittle way to test things, so let's get rid of it. https://github.com/rubygems/rubygems/commit/f5d45520e0 Notes: Merged: https://github.com/ruby/ruby/pull/5350 commit ca3a2e46e8098bc66e2ab1589934bb40f00b78b1 Author: David Rodríguez AuthorDate: 2021-12-27 01:41:21 +0900 Commit: Hiroshi SHIBATA CommitDate: 2021-12-27 10:45:36 +0900 [rubygems/rubygems] Update some specs to pass ruby-head CI These specs were monkeypatching `RUBY_VERSION`, but that obviously doesn't change the running ruby to behave any different. The removal of some features, in particular, `String#untaint`, made these specs fail, because untaint is no longer available under ruby-core and bundler calls `untaint` when `RUBY_VERSION` is less than "2.7", which these specs were overwriting it to be. Rewrite these specs to not overwrite `RUBY_VERSION`, but still test the same things. https://github.com/rubygems/rubygems/commit/e8c7b92901 Notes: Merged: https://github.com/ruby/ruby/pull/5350 commit 73707e5c51f9244f62dcaec044e50d7c604fc654 Author: Masataka Pocke Kuwabara AuthorDate: 2021-12-26 12:28:57 +0900 Commit: Hiroshi SHIBATA CommitDate: 2021-12-27 10:45:36 +0900 [rubygems/rubygems] Make SpecificationPolicy autoload constant It reduces memory usage about 204kb (1.4%). https://github.com/rubygems/rubygems/commit/b7d4b8c8a6 Notes: Merged: https://github.com/ruby/ruby/pull/5350 commit 9736cb890bb80924e7d1f3189232bfe60519bd29 Author: Nobuyoshi Nakada AuthorDate: 2021-12-27 08:56:00 +0900 Commit: GitHub CommitDate: 2021-12-27 08:56:00 +0900 Check if `Kernel#untaint` is defined instead of version comparison Probably `RUBY_VERSION` seems overwritten somewhere in the tests. Notes: Merged: https://github.com/ruby/ruby/pull/5349 Merged-By: nobu commit c956f979e5d05900315d2753d5c3b1389af8dae4 Author: Nobuyoshi Nakada AuthorDate: 2021-12-26 22:39:48 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-26 23:28:54 +0900 Initialize Struct by calling with keyword arguments Notes: Merged: https://github.com/ruby/ruby/pull/5348 commit abad017354a5e6a03582a8dde58c66caec2bc924 Author: Nobuyoshi Nakada AuthorDate: 2021-12-26 22:40:50 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-26 23:28:54 +0900 Postpone fix of lookbehind with ss characters tentatively Notes: Merged: https://github.com/ruby/ruby/pull/5348 commit 7c738ce5e649b82bdc1305d5c347e81886ee759a Author: Nobuyoshi Nakada AuthorDate: 2021-12-26 18:02:09 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-26 23:28:54 +0900 Remove deprecated rb_cData [Bug #18433] Also enable the warning for T_DATA allocator. Notes: Merged: https://github.com/ruby/ruby/pull/5348 commit 69f03c864eb193a163631d9a208fd64944b078dc Author: Nobuyoshi Nakada AuthorDate: 2021-12-26 23:17:14 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-26 23:28:54 +0900 Remove Refinement#include and Refinement#prepend Notes: Merged: https://github.com/ruby/ruby/pull/5348 commit 39bc5de83394a380c9967df74e06c824186f8560 Author: Nobuyoshi Nakada AuthorDate: 2021-12-26 18:07:12 +0900 Commit: Nobuyoshi Nakada CommitDate: 2021-12-26 23:28:54 +0900 Remove tainted and trusted features Already these had been announced to be removed in 3.2. Notes: Merged: https://github.com/ruby/ruby/pull/5348 commit 81c248924daf387118de5b37b16e08a937df73a3 Author: Yukihiro "Matz" Matsumoto AuthorDate: 2021-12-25 23:56:01 +0900 Commit: Yukihiro "Matz" Matsumoto CommitDate: 2021-12-26 23:22:26 +0900 Development of 3.2.0 started.