Age | Commit message (Collapse) | Author |
|
This removes the related tests, and puts the related specs behind
version guards. This affects all code in lib, including some
libraries that may want to support older versions of Ruby.
Notes:
Merged: https://github.com/ruby/ruby/pull/2476
|
|
This removes the security features added by $SAFE = 1, and warns for access
or modification of $SAFE from Ruby-level, as well as warning when calling
all public C functions related to $SAFE.
This modifies some internal functions that took a safe level argument
to no longer take the argument.
rb_require_safe now warns, rb_require_string has been added as a
version that takes a VALUE and does not warn.
One public C function that still takes a safe level argument and that
this doesn't warn for is rb_eval_cmd. We may want to consider
adding an alternative method that does not take a safe level argument,
and warn for rb_eval_cmd.
Notes:
Merged: https://github.com/ruby/ruby/pull/2476
|
|
|
|
|
|
https://github.com/ruby/ruby/runs/301411717
No C backtrace information and this is hard to fix immediately.
As CI doesn't provide helpful information, this should be debugged
locally or at least have more logs there.
|
|
failing in https://github.com/ruby/ruby/runs/300579218
|
|
Fixes [Bug #16332]
Constant access was changed to no longer allow top-level constant access
through `nil`, but `defined?` wasn't changed at the same time to stay
consistent.
Use a separate defined type to distinguish between a constant
referenced from the current lexical scope and one referenced from
another namespace.
Notes:
Merged: https://github.com/ruby/ruby/pull/2657
|
|
|
|
It is said that realpath(3) and realdirpath(3) on some platforms
may return a relative path.
|
|
This reverts commit 67c574736912003c377218153f9d3b9c0c96a17b.
[Feature #16275]
|
|
|
|
|
|
The taint mechanism is decided to be removed at 2.7. [Feature #16131]
So, this change removes the tests that expects a SecurityError when
requiring a file under $SAFE >= 1.
The reason why they should be removed in advance is because the upstream
of rubygems has already removed a call to "untaint" method, which makes
the tests fail.
|
|
|
|
This reverts commit 69ec3f70fab0c1c537c68fb135cc315181b1d750.
|
|
This reverts commit 6eaac7cfac668d6669be694fd7b723c4982ed218.
|
|
|
|
|
|
|
|
|
|
|
|
[Feature #16182]
|
|
|
|
|
|
ISeq#to_a is commented out because it's broken now
|
|
|
|
Previously we were passing the memory_id. This was broken previously if
compaction was run (which changes the memory_id) and now that object_id
is a monotonically increasing number it was always broken.
This commit fixes this by defering removal from the object_id table
until finalizers have run (for objects with finalizers) and also copying
the SEEN_OBJ_ID flag onto the zombie objects.
Notes:
Merged: https://github.com/ruby/ruby/pull/2658
|
|
|
|
|
|
Define TracePoint in trace_point.rb and use __builtin_ syntax.
Notes:
Merged: https://github.com/ruby/ruby/pull/2655
|
|
Keep track of the number of times the compactor ran. I would like to
use this as a way to keep track of inline cache reference updates.
|
|
This changes object_id from being based on the objects location in
memory (or a nearby memory location in the case of a conflict) to be
based on an always increasing number.
This number is a Ruby Integer which allows it to overflow the size of a
pointer without issue (very unlikely to happen in real programs
especially on 64-bit, but a nice guarantee).
This changes obj_to_id_tbl and id_to_obj_tbl to both be maps of Ruby
objects to Ruby objects (previously they were Ruby object to C integer)
which simplifies updating them after compaction as we can run them
through gc_update_table_refs.
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
|
|
|
|
This reverts commit bd2b314a05ae9192b3143e1e678a37c370d8a9ce.
|
|
This changes object_id from being based on the objects location in
memory (or a nearby memory location in the case of a conflict) to be
based on an always increasing number.
This number is a Ruby Integer which allows it to overflow the size of a
pointer without issue (very unlikely to happen in real programs
especially on 64-bit, but a nice guarantee).
This changes obj_to_id_tbl and id_to_obj_tbl to both be maps of Ruby
objects to Ruby objects (previously they were Ruby object to C integer)
which simplifies updating them after compaction as we can run them
through gc_update_table_refs.
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/2638
|
|
|
|
|
|
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/2637
|
|
```
irb(main):001:0> RUBY_VERSION
=> "2.6.5"
irb(main):002:0> S = Struct.new(:foo, keyword_init: true)
=> S(keyword_init: true)
irb(main):003:0> S.new({foo: 23424}, 234) # I don't think this is intentional
=> #<struct S foo=23424>
irb(main):004:0>
```
Tightening this up should inform users when they are confused about
whether a struct is `keyword_init`.
Notes:
Merged: https://github.com/ruby/ruby/pull/2634
|
|
|
|
Test included for the situation formerly was not working.
|
|
Raises an error on end-exclusive ranges unless endless, regardless
the receiver.
Notes:
Merged: https://github.com/ruby/ruby/pull/2613
|
|
Allows a beginless/endless range, and an end-exclusive range
unless the receiver is smaller than its end.
Notes:
Merged: https://github.com/ruby/ruby/pull/2611
|
|
These tests rely on GC.stat and GC.last_gc_info, which are not
stable when GC.stress is true. Skip them for that case.
|
|
Previously, the keyword hash was duped (which results in a regular
hash), but the dup was not marked as a keyword hash, causing the
hash not to be marked as keyword hash even though it should be.
Notes:
Merged: https://github.com/ruby/ruby/pull/2609
|
|
Sorry, f62f90367fc3bce6714e7c34cbd040e14e43fe07 is push miss.
|
|
This mirrors the behavior when manually splatting a hash. This
mirrors the changes made in setup_parameters_complex in
6081ddd6e6f2297862b3c7e898d28a76b8f9240b, so that splatting to a
non-iseq method works the same as splatting to an iseq method.
Notes:
Merged: https://github.com/ruby/ruby/pull/2606
|