-
Notifications
You must be signed in to change notification settings - Fork 67
Comparing changes
Open a pull request
base repository: github/ruby
base: master
head repository: ruby/ruby
compare: master
- 17 commits
- 13 files changed
- 5 contributors
Commits on Dec 30, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 3086d58 - Browse repository at this point
Copy the full SHA 3086d58View commit details -
Configuration menu - View commit details
-
Copy full SHA for d40e056 - Browse repository at this point
Copy the full SHA d40e056View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9d37155 - Browse repository at this point
Copy the full SHA 9d37155View commit details
Commits on Dec 31, 2025
-
Introduce typed-data embeddable predicate macros
The combination of `&` and `&&` is confusing.
Configuration menu - View commit details
-
Copy full SHA for c352808 - Browse repository at this point
Copy the full SHA c352808View commit details -
Make
RTYPEDDATA_EMBEDDABLE_Pinternal-use onlyIt should not be exposed because it is so implementation specific that it is only used in gc.c even within the entire Ruby source tree.
Configuration menu - View commit details
-
Copy full SHA for d95bebe - Browse repository at this point
Copy the full SHA d95bebeView commit details -
[DOC] Move typed-data related macros
The flags for `rb_data_type_t::flags` are public constants for defining `rb_data_type_t`. The embedded data flag and mask are internal implementation detail.
Configuration menu - View commit details
-
Copy full SHA for 094145f - Browse repository at this point
Copy the full SHA 094145fView commit details -
[ruby/json] Keep track of the the number of additional backslashes to…
… avoid an extra memchr searching the remaining characters when no more backslashes exist. ruby/json@d21d9362fa
Configuration menu - View commit details
-
Copy full SHA for 61d45c8 - Browse repository at this point
Copy the full SHA 61d45c8View commit details -
[ruby/json] Simplify unescape_unicode
ruby/json@976ba36629 Co-Authored-By: Jean Boussier <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c97f5d5 - Browse repository at this point
Copy the full SHA c97f5d5View commit details -
[ruby/json] Fix non-portable code
A plain `char` may be `signed` or `unsigned` depending on the implementation. Also, bitwise ORing of `signed` values is not guaranteed to be `signed`. To ensure portability, should logical-OR each comparison, but casting to `signed char` is usually sufficient. ruby/json@8ad744c532
Configuration menu - View commit details
-
Copy full SHA for 99249cc - Browse repository at this point
Copy the full SHA 99249ccView commit details -
[ruby/mmtk] Process obj_free candidates in parallel
This commit allows objects that are safe to be freed in parallel to do so. A decrease in object freeing time can be seen in profiles. The benchmarks don't show much difference. Before: -------------- -------------------- ---------- --------- bench sequential free (ms) stddev (%) RSS (MiB) activerecord 242.3 7.4 84.3 chunky-png 439.1 0.6 75.6 erubi-rails 1221.2 4.2 132.7 hexapdf 1544.8 1.8 429.1 liquid-c 42.7 7.4 48.5 liquid-compile 41.4 8.3 52.2 liquid-render 100.6 3.0 56.8 mail 108.9 2.1 65.1 psych-load 1536.9 0.6 43.4 railsbench 1633.5 2.6 146.2 rubocop 126.5 15.8 142.1 ruby-lsp 129.6 9.7 112.2 sequel 47.9 6.5 44.6 shipit 1152.0 2.7 315.2 -------------- -------------------- ---------- --------- After: -------------- ------------------ ---------- --------- bench parallel free (ms) stddev (%) RSS (MiB) activerecord 235.1 5.5 87.4 chunky-png 440.8 0.8 68.1 erubi-rails 1105.3 0.8 128.0 hexapdf 1578.3 4.1 405.1 liquid-c 42.6 7.1 48.4 liquid-compile 41.5 8.1 52.1 liquid-render 101.2 2.8 53.3 mail 109.7 2.7 64.8 psych-load 1567.7 1.1 44.4 railsbench 1644.9 1.9 150.9 rubocop 125.6 15.4 148.5 ruby-lsp 127.9 5.8 104.6 sequel 48.2 6.1 44.1 shipit 1215.3 4.7 320.5 -------------- ------------------ ---------- --------- ruby/mmtk@4f0b5fd2eb
Configuration menu - View commit details
-
Copy full SHA for 544770d - Browse repository at this point
Copy the full SHA 544770dView commit details -
[ruby/mmtk] Split ProcessObjFreeCandidates to parallel and non-parallel
This makes it easier to visualize in profilers which one is non-parallel. ruby/mmtk@ba68b2ef3b
Configuration menu - View commit details
-
Copy full SHA for dbfedeb - Browse repository at this point
Copy the full SHA dbfedebView commit details -
Use
is_obj_encodinginstead ofis_data_encodingThe argument to `is_data_encoding` is assumed to be `T_DATA`.
Configuration menu - View commit details
-
Copy full SHA for b27d935 - Browse repository at this point
Copy the full SHA b27d935View commit details -
Register imemo_ment as a pinning object
It sometimes pins itself when it is in the overloaded_cme table.
Configuration menu - View commit details
-
Copy full SHA for 7cf6cc8 - Browse repository at this point
Copy the full SHA 7cf6cc8View commit details
Commits on Jan 1, 2026
-
Configuration menu - View commit details
-
Copy full SHA for ea05c23 - Browse repository at this point
Copy the full SHA ea05c23View commit details -
Use STR_SET_SHARED in str_duplicate_setup_heap
str_duplicate_setup_heap is missing a call to rb_gc_register_pinning_obj that STR_SET_SHARED correctly calls.
Configuration menu - View commit details
-
Copy full SHA for 4129256 - Browse repository at this point
Copy the full SHA 4129256View commit details -
Thread::Queue use a ring buffer
Thread::Queue spends a significant amount of time in array functions, checking for invariants we know aren't a problem, and whether the backing array need to reordered. By using a ring buffer we can remove a lot of overhead (~23% faster). ``` $ hyperfine './miniruby --yjit /tmp/q.rb' './miniruby-qrb --yjit /tmp/q.rb' Benchmark 1: ./miniruby --yjit /tmp/q.rb Time (mean ± σ): 1.050 s ± 0.191 s [User: 0.988 s, System: 0.004 s] Range (min … max): 0.984 s … 1.595 s 10 runs Benchmark 2: ./miniruby-qrb --yjit /tmp/q.rb Time (mean ± σ): 844.2 ms ± 3.1 ms [User: 840.4 ms, System: 2.8 ms] Range (min … max): 838.6 ms … 848.9 ms 10 runs Summary ./miniruby-qrb --yjit /tmp/q.rb ran 1.24 ± 0.23 times faster than ./miniruby --yjit /tmp/q.rb ``` ``` q = Queue.new([1, 2, 3, 4, 5, 6, 7, 8]) i = 2_000_000 while i > 0 i -= 1 q.push(q.pop) q.push(q.pop) q.push(q.pop) q.push(q.pop) q.push(q.pop) q.push(q.pop) q.push(q.pop) q.push(q.pop) q.push(q.pop) q.push(q.pop) end ```Configuration menu - View commit details
-
Copy full SHA for 8ce61f9 - Browse repository at this point
Copy the full SHA 8ce61f9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 26a5bcd - Browse repository at this point
Copy the full SHA 26a5bcdView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff master...master