| Age | Commit message (Collapse) | Author |
|
[Feature #21552]
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
|
|
|
|
I believe this was accidentally left in as part of
2beb3798bac52624c3170138f8ef65869f1da6c0
|
|
Although the Ractor API is still experimental and may change, and there
may be some implementation issues, we should no longer say that there
are many.
Hopefully we can remove this warning entirely for Ruby 4.1
|
|
No point doing the manual size unit conversion for add. Sorry, no new
tests since there is no way to generate a LoadField with a negative
offset from ruby code AFAICT. Careful with the `as` casts.
|
|
So we don't expose builders to network flakiness which cannot be worked
around using cargo's --offline flag.
|
|
|
|
|
|
|
|
|
|
* ZJIT: Fold LoadField on frozen objects to constants
When accessing instance variables from frozen objects via attr_reader/
attr_accessor, fold the LoadField instruction to a constant at compile
time. This enables further optimizations like constant propagation.
- Add fold_getinstancevariable_frozen optimization in Function::optimize
- Check if receiver type has a known ruby_object() that is frozen
- Read the field value at compile time and replace with Const instruction
- Add 10 unit tests covering various value types (fixnum, string, symbol,
nil, true/false) and negative cases (unfrozen, dynamic receiver)
* Run zjit-test-update
* Add a test that we don't fold non-BasicObject
* Small cleanups
---------
Co-authored-by: Max Bernstein <ruby@bernsteinbear.com>
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
|
|
Generating an object_id for any type other than T_OBJECT (and T_CLASS)
will inevitably allocate an IMEMO/fields objects, which isn't supported
in a NEWOBJ tracepoint.
See: https://bugs.ruby-lang.org/issues/21710#note-23
|
|
|
|
|
|
Encodings are RTypedData, not the deprecated RData. Although the
structures are compatible we should use the correct API.
|
|
|
|
This fixes a crash when the new shape after a transition is too complex;
we need to check that it's not complex before trying to read by index.
|
|
|
|
It's the most likely control character so it's worth
giving a better error message for it.
https://github.com/ruby/json/commit/1da3fd9233
|
|
Make it embedded and compaction aware.
|
|
That call is surprisingly expensive, so trying doing it once
in `#synchronize` and then passing the fiber to enter and exit
saves quite a few cycles.
|
|
|
|
https://github.com/ruby/forwardable/commit/0257b590c2
|
|
Fix: https://github.com/ruby/forwardable/issues/35
[Bug #21708]
Trying to compile code to check if a method can use the delegation
fastpath is a bit wasteful and cause `RUPYOPT=-d` to be full of
misleading errors.
It's simpler and faster to use a simple regexp to do the same check.
https://github.com/ruby/forwardable/commit/de1fbd182e
|
|
|
|
This removes all allocations from the find_or_insert loop, which
requires us to start the search over after calling the provided create
function.
In exchange that allows us to assume that all concurrent threads insert
will get the same view of the GC state, and so should all be attempting
to clear and reuse a slot containing a garbage object.
|
|
This refactors the concurrent set to examine and reserve a slot via CAS
with the hash, before then doing the same with the key.
This allows us to use an extra bit from the hash as a "continuation bit"
which marks whether we have ever probed past this key while inserting.
When that bit isn't set on deletion we can clear the field instead of
placing a tombstone.
|
|
|
|
https://github.com/ruby/optparse/commit/f2e31e81a5
|
|
|
|
https://github.com/ruby/win32-registry/commit/2a6ab00f67
|
|
(https://github.com/ruby/stringio/pull/171)
https://github.com/ruby/stringio/commit/95a111017a
|
|
(https://github.com/ruby/stringio/pull/165)
Adds to "Position": pos inside a character.
Makes a couple of minor corrections.
---------
https://github.com/ruby/stringio/commit/ff332abafa
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
|
|
(https://github.com/ruby/stringio/pull/190)
https://github.com/ruby/stringio/commit/77209fac20
|
|
(https://github.com/ruby/stringio/pull/188)
https://github.com/ruby/stringio/commit/66360ee5f1
|
|
https://github.com/ruby/stringio/commit/e2d24ae8d7
|
|
(https://github.com/ruby/stringio/pull/189)
https://github.com/ruby/stringio/commit/e3d16d30ed
|
|
Pathname is now embedded class of Ruby
|
|
|
|
https://github.com/ruby/date/commit/1d0aadc295
|
|
|
|
https://github.com/ruby/ipaddr/commit/93ef50bc04
|
|
|
|
|
|
https://github.com/ruby/resolv/commit/a0e89bbe48
|
|
|
|
https://github.com/ruby/psych/commit/d8053b0d16
|
|
These macros have been defined here and there, so collect them.
|
|
even if `USE_RUBY_DEBUG_LOG=0`.
It becomes `fprintf(stderr, ...)`.
|