| Age | Commit message (Collapse) | Author |
|
#20178] (#9822)
Avoid reading unused lvars in Primitive.cexpr
Previously on builds with optimizations disabled, this could result in
an out of bounds read. When we had all of:
* built with -O0
* Leaf builtin
* Primitive.mandatory_only
* "no args builtin", called by vm_call_single_noarg_inline_builti
* The stack is escaped to the heap via binding or a proc
This is because mk_builtin_loader generated reads for all locals
regardless of whether they were used and in the case we generated a
mandatory_only iseq that would include more variables than were actually
available.
On optimized builds, the invalid accesses would be optimized away, and
this also was often unnoticed as the invalid access would just hit
another part of the stack unless it had been escaped to the heap.
The fix here is imperfect, as this could have false positives, but since
Primitive.cexpr! is only available within the cruby codebase itself
that's probably fine as a proper fix would be much more challenging (the
only false positives we found were in rjit.rb).
Fixes [Bug #20178]
Co-authored-by: Adam Hess <HParker@github.com>
---
bootstraptest/test_method.rb | 9 +++++++++
tool/mk_builtin_loader.rb | 6 ++++++
2 files changed, 15 insertions(+)
|
|
Don't create T_MATCH object if /regexp/.match(string) doesn't match
Fixes [Bug #20104]
---
re.c | 9 ++++++---
test/ruby/test_regexp.rb | 12 ++++++++++++
tool/lib/envutil.rb | 8 ++++++++
3 files changed, 26 insertions(+), 3 deletions(-)
|
|
|
|
It was renamed from test_mjit, but we did not maintain it as test_rjit.
We test RJIT very differently.
|
|
This is more convenient for accessing those fields.
|
|
Previously, the embedded semicolon in BASERUBY if BASERUBY is
not available breaks tarball builds without BASERUBY when using
OpenBSD make, due to the inability to escape MFLAGS correctly.
This moves the same BASERUBY code into a separate file, avoiding
the MFLAGS quoting issue.
BASERUBY must be passed to build-ext because it is required
by ripper since the introduction of lrama.
Fixes [Bug #19683]
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
|
This commit adds `GC.auto_compact = :empty` which will run
auto-compaction sorting pages by empty slots so the most amount of
objects will be moved. This will make it easier to write tests for
auto-compaction.
|
|
|
|
|
|
|
|
|
|
Some specs now print the following warning:
```
/path/to/bundler/tmp/1/gems/base/ruby/3.2.0/gems/sinatra-2.0.8.1/lib/sinatra/base.rb:902: warning: constant Tilt::Cache is deprecated
```
Updating sinatra to latest & greatest fixes it.
Update other deps too since at it.
|
|
reproducible
Helps ensure that unsuspecting diffs to the vendored code arent accidentally introduced
https://github.com/rubygems/rubygems/commit/7c425d49dd
|
|
After editing a conflict, continue without removed files.
|
|
On Windows, x86_64 is called as x64.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I'm guessing String#sub! was desired here.
|
|
This makes bundler consistent with all other gems, and makes the default
installation of Bundler in the release package look like any other
bundler installation.
Before (on preview3, for example), Bundler executable is installed at:
lib/ruby/gems/3.3.0+0/gems/bundler-2.5.0.dev/libexec/bundle
Now it's installed in the standard location:
lib/ruby/gems/3.3.0+0/gems/bundler-2.5.0.dev/exe/bundle
|
|
|
|
|
|
|
|
|
|
```
.../tool/lib/colorize.rb:56:in `resolve_color': undefined method `gsub' for an instance of Symbol (NoMethodError)
color.gsub(/\b[a-z][\w ]+/) do |n|
^^^^^
from .../tool/lib/colorize.rb:47:in `decorate'
from .../tool/lib/test/unit.rb:1012:in `block in failed'
```
|
|
Not only:
```
$ ruby colorize.rb fail foo
```
Also:
```
$ ruby colorize.rb 'bright_blue;bold' foo
```
|
|
|
|
Co-authored-by: Samuel Giddins <segiddins@segiddins.me>
|
|
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
|
|
|
|
|
|
|
|
|
|
|
|
The ary_make_shared call may allocate, which can trigger a GC
compaction. This can cause the array to be embedded because it has a
length of 0.
|
|
* bundle rbs-3.3.1
* Restore diff/subtract tests
|
|
* Provide a new API compile_file_prism which mirrors compile_file
but uses prism to parse/compile.
* Provide the ability to run test-all with RUBY_ISEQ_DUMP_DEBUG set
to "prism". If it is, we'll use the new compile_file_prism API to
load iseqs during the test run.
|
|
|
|
test/runner.rb and tool/lib/test/unit/parallel.rb must use the same
settings. However, some settings were copied and pasted, while some were
added only to test/runner.rb.
This changeset creates tool/test/init.rb for all settings of test-unit,
which is loaded not only by test/runner.rb but also
tool/lib/test/unit/parallel.rb.
Background: the GEM_HOME environment variable was removed in
test/runner.rb, which prohibit `require "rake"` (note that rake is a
bundled gem). However the parallel mode didn't refrect this setting,
i.e., `require "rake"` was allowed.
This leads to an inconsistency, which actually affected a test test
defines s test class *only when* `require "rake"` is successful.
(test/rubygems/test_gem_package_task.rb)
https://github.com/ruby/ruby/actions/runs/6807729617/job/18511055636#step:8:1714
```
/home/runner/work/ruby/ruby/src/tool/lib/test/unit.rb:729:in `const_get': uninitialized constant TestGemPackageTask (NameError)
suites.map! {|r| ::Object.const_get(r[:testcase])}
^^^^^^^^^^
```
|
|
|
|
|
|
This reverts commit 5f3fb4f4e397735783743fe52a7899b614bece20.
|
|
the regexp to replace RUBY_PATCHLEVEL_STR for prerelease snapshots doesn't
match since GH-8578.
follow-up: https://github.com/ruby/ruby/pull/8578
follow-up: 68df43788dc237a1071f02b2d82768f844696315
|
|
This reverts commit f6910a61122931e4193bcc0fad18d839c319b720.
We're seeing crashes in the test suite of Shopify's core monolith after
this change.
|