summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-12-07Output ivar length for T_OBJECT in obj_infoPeter Zhu
2025-12-07[DOC] Update bundled gems list at 379d22ce8418448ade3d410e5c76ddgit
2025-12-07Bump RDoc version to 6.17.0 (#15439)Stan Lo
2025-12-07[ruby/pathname] Raise the previous messageNobuyoshi Nakada
Fix ruby/pathname#75. https://github.com/ruby/pathname/commit/5ba967b274
2025-12-07[ruby/pathname] Add more tests for `Pathname#initialize`Nobuyoshi Nakada
https://github.com/ruby/pathname/commit/a2edd25bc1
2025-12-07[ruby/pathname] [DOC] Pathname#freezeNobuyoshi Nakada
https://github.com/ruby/pathname/commit/4580540a2b
2025-12-07[ruby/pathname] Define private method `same_paths?` for Ractor-safetyNobuyoshi Nakada
https://github.com/ruby/pathname/commit/d33d18e5e2
2025-12-07Ignore distclean failuresNobuyoshi Nakada
Just clean the directory if it exists and is empty.
2025-12-08Re-introduce support for `io_close` hook. (#15434)Samuel Williams
2025-12-07Sync doc/stringio in sync_default_gems.rbPeter Zhu
2025-12-07Allow to sync pathname manuallyNobuyoshi Nakada
Still development of the gem continues, sync as possible manually.
2025-12-06[DOC] Fix formatting in docs for String#[]=Peter Zhu
2025-12-06[ruby/stringio] [DOC] Tweaks for StringIO#pos=Burdette Lamar
(https://github.com/ruby/stringio/pull/194) https://github.com/ruby/stringio/commit/3cef1e0e5f
2025-12-06[ruby/stringio] [DOC] Tweaks for StringIO#posBurdette Lamar
(https://github.com/ruby/stringio/pull/193) https://github.com/ruby/stringio/commit/90728bbbca
2025-12-06[ruby/stringio] [DOC] Tweaks for StringIO#lineno=Burdette Lamar
(https://github.com/ruby/stringio/pull/192) https://github.com/ruby/stringio/commit/8b1ee03cbe
2025-12-06[ruby/stringio] [DOC] Tweaks for StringIO#linenoBurdette Lamar
(https://github.com/ruby/stringio/pull/191) https://github.com/ruby/stringio/commit/f2a2a5a99e
2025-12-06Fix id2ref for multi-RactorPeter Zhu
The id2ref table needs to be under a VM lock to ensure there are no race conditions. The following script crashes: o = Object.new ObjectSpace._id2ref(o.object_id) 10.times.map do Ractor.new do 10_000.times do a = Object.new a.object_id end end end.map(&:value) With: [BUG] Object ID seen, but not in _id2ref table: object_id=2800 object=T_OBJECT ruby 4.0.0dev (2025-12-06T15:15:43Z ractor-id2ref-fix e7f9abdc91) +PRISM [x86_64-linux] -- Control frame information ----------------------------------------------- c:0001 p:---- s:0003 e:000002 l:y b:---- DUMMY [FINISH] -- Threading information --------------------------------------------------- Total ractor count: 5 Ruby thread count for this ractor: 1 -- C level backtrace information ------------------------------------------- miniruby(rb_print_backtrace+0x14) [0x6047d09b2dff] vm_dump.c:1105 miniruby(rb_vm_bugreport) vm_dump.c:1450 miniruby(rb_bug_without_die_internal+0x5f) [0x6047d066bf57] error.c:1098 miniruby(rb_bug) error.c:1116 miniruby(rb_gc_get_ractor_newobj_cache+0x0) [0x6047d066c8dd] gc.c:2052 miniruby(gc_sweep_plane+0xad) [0x6047d079276d] gc/default/default.c:3513 miniruby(gc_sweep_page) gc/default/default.c:3605 miniruby(gc_sweep_step) gc/default/default.c:3886 miniruby(gc_sweep+0x1ba) [0x6047d0794cfa] gc/default/default.c:4154 miniruby(gc_start+0xbf2) [0x6047d0796742] gc/default/default.c:6519 miniruby(heap_prepare+0xcc) [0x6047d079748c] gc/default/default.c:2090 miniruby(heap_next_free_page) gc/default/default.c:2305 miniruby(newobj_cache_miss) gc/default/default.c:2412 miniruby(newobj_alloc+0xd) [0x6047d0798ff5] gc/default/default.c:2436 miniruby(rb_gc_impl_new_obj) gc/default/default.c:2515 miniruby(newobj_of) gc.c:996 miniruby(rb_wb_protected_newobj_of) gc.c:1046 miniruby(str_alloc_embed+0x28) [0x6047d08fda18] string.c:1019 miniruby(str_enc_new) string.c:1069 miniruby(prep_io+0x5) [0x6047d07cda14] io.c:9305 miniruby(prep_stdio) io.c:9347 miniruby(rb_io_prep_stdin) io.c:9365 miniruby(thread_start_func_2+0x77c) [0x6047d093a55c] thread.c:679 miniruby(thread_sched_lock_+0x0) [0x6047d093aacd] thread_pthread.c:2241 miniruby(co_start) thread_pthread_mn.c:469
2025-12-06[ruby/stringio] [DOC] Change link to on-pageBurdetteLamar
https://github.com/ruby/stringio/commit/a7c118d786
2025-12-06[ruby/openssl] asn1integer_to_num: don't cast away constTheo Buehler
ASN1_ENUMERATED_to_BN() has been const-correct for a long time in all supported libcrytos, so we can remove this workaround. https://github.com/ruby/openssl/commit/d0f36a7c65
2025-12-06[ruby/date] Call rb_gc_register_mark_object after object allocationPeter Zhu
It's possible that both half_days_in_day and day_in_nanoseconds are Ruby objects, which means that creating day_in_nanoseconds may trigger GC. Since half_days_in_day is not registered as a mark object until after day_in_nanoseconds is allocated, the GC may reclaim half_days_in_day. We can see this crash: ruby(rb_print_backtrace+0xb) [0x63a373c0] vm_dump.c:1105 ruby(rb_vm_bugreport) vm_dump.c:1450 ruby(rb_assert_failure_detail+0xdb) [0x6371d3a2] error.c:1216 ruby(RB_FL_TEST_RAW+0x0) [0x6371d3d5] error.c:1192 ruby(rb_assert_failure) (null):0 ruby(rb_gc_impl_writebarrier+0xb4) [0x636f01e4] gc/default/default.c:6103 ruby(pin_array_list_append+0x72) [0x638f9787] include/ruby/internal/gc.h:788 ruby(rb_vm_register_global_object) vm.c:4713 ruby(rb_gc_register_mark_object+0x3a) [0x6374144a] gc.c:3449 .ext/i686-linux-gnu/date_core.so(Init_date_core+0x204) [0xdbec86c4] ext/date/date_core.c:9511 .ext/i686-linux-gnu/date_core.so(Init_date_core) (null):0 ruby(dln_load_and_init+0x71) [0x6392c541] dln.c:521 ruby(dln_load_feature+0xd2) [0x6392c7d2] dln.c:566 ruby(load_ext+0xc3) [0x637931b3] load.c:1210 ruby(rb_vm_pop_frame+0x0) [0x638f80cd] vm.c:3120 ruby(rb_vm_call_cfunc_in_box) vm.c:3122 ruby(rb_long2num_inline+0x0) [0x637956f8] load.c:1353 ruby(require_internal) load.c:1354 ruby(rb_require_string_internal+0x60) [0x63795fa1] load.c:1457 ruby(rb_require_string) load.c:1443 https://github.com/ruby/date/commit/cbec5948e0
2025-12-06[ruby/openssl] Convert ossl_x509ext.c to opaque ASN1_STRINGTheo Buehler
https://github.com/ruby/openssl/commit/a41cf28bab
2025-12-06[ruby/openssl] Convert ossl_ts.c to opaque ASN1_STRINGTheo Buehler
https://github.com/ruby/openssl/commit/8945f379b3
2025-12-06[ruby/openssl] Convert ossl_ns_spki.c to opaque ASN1_STRINGTheo Buehler
https://github.com/ruby/openssl/commit/0941ebbda5
2025-12-06[ruby/openssl] Convert some of ossl_asn1.c to opaque ASN1_STRINGTheo Buehler
This uses the normal accessors but leaves out BIT STRINGS, which will need compat implementations for ASN1_BIT_STRING_get_length() and ASN1_BIT_STRING_set1() for older libcryptos. https://github.com/openssl/openssl/issues/29184 https://github.com/openssl/openssl/issues/29185 https://github.com/ruby/openssl/commit/ba3d1cc5c2
2025-12-06[ruby/openssl] Convert ossl_ocsp.c to opaque ASN1_STRINGTheo Buehler
OpenSSL plans to make asn1_string_st opaque, the struct underlying most ASN.1 types such as ASN1_*STRING, ASN1_ENUMERATED, ASN1_INTEGER, etc. Most of ruby/openssl's C code can be straigtforwardly converted to use accessors available since OpenSS https://github.com/ruby/openssl/commit/374262435a
2025-12-06[ruby/openssl] const correct ossl_bin2hex()Theo Buehler
This helper only reads from its in parameter. Making that const avoids a couple of casts in an upcoming change. https://github.com/ruby/openssl/commit/970d5764e3
2025-12-06Fix strict aliasing warning in ruby_swap128_intPeter Zhu
The following warnings are emitted. We can use type punning to prevent strict aliasing violations. io_buffer.c:1935:23: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 1935 | rb_uint128_t u = *(rb_uint128_t*)&x; | ^~~~~~~~~~~~~~~~~ io_buffer.c:1937:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 1937 | return *(rb_int128_t*)&swapped; |
2025-12-07[ruby/pathname] Freeze and hide internal constantsNobuyoshi Nakada
https://github.com/ruby/pathname/commit/60f5d58d73
2025-12-07[ruby/pathname] Use `File.path` for conversion to path nameNobuyoshi Nakada
This method has been defined since 1.9, as the standard conversion procedure. https://github.com/ruby/pathname/commit/8f582dc65d
2025-12-07[ruby/pathname] Define `to_path` alias directlyNobuyoshi Nakada
The constant `TO_PATH` was defined for 1.9 compatibility but the code for it was dropped 10 years ago. https://github.com/ruby/pathname/commit/95ad4ceb19
2025-12-07Suppress noisy outputsNobuyoshi Nakada
Fix up ruby/ruby#14700.
2025-12-06Sync doc/stringio in sync_default_gems.rbPeter Zhu
2025-12-06[ruby/prism] Avoid out-of-bounds readsSteven Johnstone
Fixes https://github.com/ruby/prism/pull/3790. https://github.com/ruby/prism/commit/173ccb84ad
2025-12-06Add error case tests for `File.path`Nobuyoshi Nakada
- for non-String argument - for NUL-contained argument - for ASCII-incompatible argument
2025-12-06[ruby/timeout] Test that Timeout does not expose extra constantsBenoit Daloze
https://github.com/ruby/timeout/commit/4de4b4759c
2025-12-06Yield to scheduler if interrupts are pending. (#14700)Samuel Williams
2025-12-06Fix `io_pwrite` fiber scheduler hook. (#15428)Samuel Williams
Fix io_pwrite fiber scheduler hook.
2025-12-05[DOC] Update NEWS about ZJIT (#15426)Takashi Kokubun
2025-12-06[DOC] Link global variables to command line optionsNobuyoshi Nakada
2025-12-05[ruby/stringio] [DOC] Class doc for StringIOBurdette Lamar
(https://github.com/ruby/stringio/pull/178) https://github.com/ruby/stringio/commit/6449251678
2025-12-05[DOC] Tweaks for String#capitalizeBurdetteLamar
2025-12-05[DOC] Tweaks for String#downcaseBurdetteLamar
2025-12-05[DOC] Tweaks for String#upcaseBurdetteLamar
2025-12-05[DOC] Tweaks for String#swapcaseBurdetteLamar
2025-12-05[DOC] Better multibyte-character dataBurdetteLamar
2025-12-06[ruby/stringio] [DOC] Link to on-page section, not class File docBurdetteLamar
https://github.com/ruby/stringio/commit/dc93aa51d2
2025-12-06Add support for `u128`, `U128`, `s128` and `S128` integers to `IO::Buffer`. ↵Samuel Williams
(#15399)
2025-12-05Fix fields object in embedded structPeter Zhu
We don't set RSTRUCT_GEN_FIELDS when RCLASS_MAX_IV_COUNT(klass) != 0, so we need to set RSTRUCT_SET_FIELDS_OBJ to 0 otherwise it may have an invalid value and crash.
2025-12-05Revert "gc.c: Pass shape_id to `newobj_init`"Peter Zhu
This reverts commit 228d13f6ed914d1e7f6bd2416e3f5be8283be865. This commit makes default.c and mmtk.c depend on shape.h, which prevents them from building independently.
2025-12-05[ruby/timeout] Exclude constantly-failing test on x86_64-darwinBenoit Daloze
* https://github.com/ruby/ruby-dev-builder/actions/runs/19973218359/job/57293388626 https://github.com/ruby/timeout/commit/45816b1b26