New
4.0.0-preview3
What's Changed
- YJIT: omit single ractor mode assumption for
proc#callby luke-gruber · Pull Request #15092 - ZJIT: Inline BasicObject#! by tekknolagi · Pull Request #15201
- Bug #21697:
nmake upwill update brokenrevision.h- Ruby - Ruby Issue Tracking System - ZJIT: Count all calls to C functions from generated code by tekknolagi · Pull Request #15240
- ZJIT: Add Iongraph compatibility by aidenfoxivey · Pull Request #14999
- Feature #20408: Add heap_live_slots to GC.stat_heap - Ruby - Ruby Issue Tracking System
- Bug #21375: Set[] does not call #initialize - Ruby - Ruby Issue Tracking System
- ZJIT: Deduplicate successor and predecessor sets by aidenfoxivey · Pull Request #15263
- [DOC] Tweaks for String#upcase by BurdetteLamar · Pull Request #15244
- Fix multiple bugs in IO::Buffer.map and update its documentation by trinistr · Pull Request #15264
- ZJIT: Inline String#empty? by tekknolagi · Pull Request #15283
- ZJIT: Specialize monomorphic DefinedIvar by tekknolagi · Pull Request #15281
- ZJIT: Inline Thread.current by tekknolagi · Pull Request #15272
- ZJIT: Inline Integer#<< for constant rhs by tekknolagi · Pull Request #15258
- Bug #21705:
UNIXServer.open(nil)segfaults on Windows - Ruby - Ruby Issue Tracking System - Bug #21703: RUBY_CRASH_REPORT does not work when shelling out in some cases - Ruby - Ruby Issue Tracking System
- Bug #21622: Prism wrongly accepts command call to be a key of keyword argument - Ruby - Ruby Issue Tracking System
- Revert "Fix stdatomic case in
rbimpl_atomic_u64_fetch_add" by tekknolagi · Pull Request #15311 - Bug #21694: Crash when looking up super method from BasicObject - Ruby - Ruby Issue Tracking System
- ZJIT: Specialize setinstancevariable when ivar is already in shape by tekknolagi · Pull Request #15290
- [DOC] Use Aliki as the documentation website theme by st0012 · Pull Request #15319
- Bug #21707: Destructuring assignment of SimpleDelegator wrapped array bug with YJIT - Ruby - Ruby Issue Tracking System
- Eliminate redundant work and branching when marking T_OBJECT by luke-gruber · Pull Request #15274
- Fix a ractor barrier issue during VM cleanup. by luke-gruber · Pull Request #15091
- ZJIT: Count fallback reasons for set/get/definedivar by tekknolagi · Pull Request #15324
- Fix argument handling in IO::Buffer#each_byte by tmtm · Pull Request #15309
- Reorganize page documentations by st0012 · Pull Request #15154
- [DOC] Remove unneeded filename from rdoc-ref links by st0012 · Pull Request #15339
- Bump RDoc version to 6.16.1 by st0012 · Pull Request #15344
- Bug #21718: TypeError:wrong argument type ... (expected Array) - Ruby - Ruby Issue Tracking System
- Clean up scheduler during
terminate_atfork_i. by samuel-williams-shopify · Pull Request #15354 - Add
rb_ec_closefunction to manage execution context cleanup. by samuel-williams-shopify · Pull Request #15253 - ZJIT: Optimize variadic cfunc
Sendcalls intoCCallVariadicby st0012 · Pull Request #14898 - Speedup RBASIC_FIELDS_COUNT by luke-gruber · Pull Request #15273
- ZJIT: Standardize method dispatch insns'
recvfield by st0012 · Pull Request #15334 - ZJIT: Fix erroneous version number for Iongraph by aidenfoxivey · Pull Request #15357
- Test CC invalidation for singleton classes of objects by luke-gruber · Pull Request #15360
- Cache array length in
rb_ary_joinby luke-gruber · Pull Request #15362 - [DOC] About Float Imprecision by BurdetteLamar · Pull Request #15293
- Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ - Ruby - Ruby Issue Tracking System
- ZJIT: Optimize NewArray to use rb_ec_ary_new_from_values by goshanraj-g · Pull Request #15391
- ZJIT: Inline Kernel#class by tekknolagi · Pull Request #15397
- ZJIT: Optimize setivar with shape transition by tekknolagi · Pull Request #15375
- Bug #21758: Prism fails to parse heredoc within %Q literal split by another heredoc - Ruby - Ruby Issue Tracking System
- Bug #21764: encoding of warning for depreciated global variables is not set - Ruby - Ruby Issue Tracking System
- Remove mismatched indentations warning by etiennebarrie · Pull Request #15410
- Take VM lock in
class_switch_superclassby luke-gruber · Pull Request #15356 - Fix thread scheduler issue with thread_sched_wait_events by luke-gruber · Pull Request #15392
- Update NEWS.md for Ruby 4.0.0 by mame · Pull Request #15369
- Remove fiber scheduler and set fiber to blocking in forked process by noteflakes · Pull Request #15385
- Feature #20750: Allow rb_thread_call_with_gvl to work when thread already has GVL - Ruby - Ruby Issue Tracking System
- ZJIT: Include local variable names in
Get|SetLocalinsn's print value by st0012 · Pull Request #15423 - Add support for
u128,U128,s128andS128integers toIO::Buffer. by samuel-williams-shopify · Pull Request #15399 - [DOC] Update NEWS about ZJIT by k0kubun · Pull Request #15426
- Fix
io_pwritefiber scheduler hook. by samuel-williams-shopify · Pull Request #15428 - Yield to scheduler if interrupts are pending. by ioquatix · Pull Request #14700
- Re-introduce support for
io_closehook. by samuel-williams-shopify · Pull Request #15434 - Bump RDoc version to 6.17.0 by st0012 · Pull Request #15439
- ZJIT: Avoid redundant SP save in codegen by st0012 · Pull Request #15448
- Update ZJIT docs by tekknolagi · Pull Request #15449
- Remove unused local variables in test/ruby/test_io_buffer.rb by etiennebarrie · Pull Request #15451
- ZJIT: Add codegen for FixnumDiv by dddictionary · Pull Request #15452
- Bug #21771: pg-1.6.2 testsuite segfaults in ruby4.0.0dev - Ruby - Ruby Issue Tracking System
- ZJIT: Show send fallback reason in HIR dump by rwstauner · Pull Request #15454
- Bug #21757: Splatted args array is mutated when passing unexpected kwargs - Ruby - Ruby Issue Tracking System
- Bug #21446: StackOverflow when changing visibility in reopened refinement - Ruby - Ruby Issue Tracking System
- Bug #21374: FrozenError message is inconsistent when a singleton method is defined on a frozen object - Ruby - Ruby Issue Tracking System
- ZJIT: Add dump to file for --zjit-stats by aidenfoxivey · Pull Request #15414
- Fix typo in thread_pthread.c by yujiteshima · Pull Request #15465
- ZJIT: Prohibit ZJIT support with USE_FLONUM=0 by k0kubun · Pull Request #15471
- Bug #21708: Ruby 3.4 Forwardable: setter delegations trigger SyntaxError from forwardable/impl.rb - Ruby - Ruby Issue Tracking System
- ZJIT: Check if shape is too complex before reading ivar by index by tekknolagi · Pull Request #15478
- ZJIT: Exclude failing ruby-bench benchmarks by k0kubun · Pull Request #15479
- ubuntu.yml: Add a ruby-bench job without ZJIT by k0kubun · Pull Request #15480
- ZJIT: Use inline format args by alexcrocha · Pull Request #15482
- ZJIT: Fold LoadField on frozen objects to constants by tobi · Pull Request #15483
- ZJIT: Re-compile ISEQs invalidated by PatchPoint by k0kubun · Pull Request #15459
- Feature #21552: allow String.strip and similar to take a parameter similar to String.delete - Ruby - Ruby Issue Tracking System
- Bug #21712: Prism and parse.y inconsistency in command call with block and
.()- Ruby - Ruby Issue Tracking System - Bug #19558: str.dump.undump crashes when str contains both Unicode and ASCII control characters - Ruby - Ruby Issue Tracking System
- Fix Set#^ to not mutate its argument by gildesmarais · Pull Request #15296
- Stop bumping RUBY_PATCHLEVEL in release versions by k0kubun · Pull Request #15502
- ZJIT: Check method visibility when optimizing sends by tekknolagi · Pull Request #15501
- make-snapshot: Update the tag format for Ruby 4.0+ by k0kubun · Pull Request #15514
- ZJIT: Don't specialize calls with kwsplat by rwstauner · Pull Request #15513
- Bug #21776: Binding#local_variable_defined? still supports numbered parameters - Ruby - Ruby Issue Tracking System
- Avoid race condition in
test_without_handle_interrupt_signal_works. by ioquatix · Pull Request #15504 - Bug #21049: Reconsider handling of the numbered parameters and "it" parameter in
Binding#local_variables- Ruby - Ruby Issue Tracking System - Fix binding.implicit_parameters_get/defined segfault when wrong name string is passed by tompng · Pull Request #15530
- ZJIT: Add Shape type to HIR by tekknolagi · Pull Request #15528
- Feature #21678: Enumerable#rfind - Ruby - Ruby Issue Tracking System
- move th->event_serial to rb_thread_sched_item by luke-gruber · Pull Request #15500
- Bug #21775: Procs of type ifunc can access unshareable values - Ruby - Ruby Issue Tracking System
- Fewer calls to
GET_EC()andGET_THREAD()by luke-gruber · Pull Request #15506 - Bug #21772: ruby: YJIT has panicked StackOpnd(1) should be a heap object, but was ImmSymbol for VALUE(137647867319760) - Ruby - Ruby Issue Tracking System
- ZJIT: Allow ccalls above 7 arguments by aidenfoxivey · Pull Request #15312
- ZJIT: Nil-fill locals in direct send by rwstauner · Pull Request #15536
- Feature #21701: Enumerator.produce accepts an optional
sizekeyword argument - Ruby - Ruby Issue Tracking System - Feature #20925: Allow boolean operators at beginning of line to continue previous line - Ruby - Ruby Issue Tracking System
- Bug #21779: Do not export functions from statically linked extensions - Ruby - Ruby Issue Tracking System
- Fix Socket.tcp cleanup after Thread#kill by luke-gruber · Pull Request #15131
- ZJIT: Add iongraph-generating Ruby script by tekknolagi · Pull Request #15466
- Point people to redmine on ZJIT docs by tekknolagi · Pull Request #15499
- Bug #21266: YJIT GC safety crash with proc objects as block argument - Ruby - Ruby Issue Tracking System
- Feature #6012: Proc#source_location also return the column - Ruby - Ruby Issue Tracking System
- Fix: Do not pass negative timeout to Addrinfo#connect_internal by shioimm · Pull Request #15578
- Add the class variable and the class itself in Ractor::IsolationError by etiennebarrie · Pull Request #15562
- Add the instance variable name and the module in Ractor::IsolationError by etiennebarrie · Pull Request #15563
- Bug #21715: Miscompilation on x86-64-v2 due to undefined behavior in search_nonascii in string.c - Ruby - Ruby Issue Tracking System
- Bug #19112: Ractor garbage collection breaks/disables all active tracepoints - Ruby - Ruby Issue Tracking System
- Bug #21782: Ractor::IsolationError reports incorrect path for constants found through upwards search - Ruby - Ruby Issue Tracking System
- Fix: Recalculate the timeout duration considering
open_timeoutby shioimm · Pull Request #15596 - Bug #21787:
IO::BufferInteger Overflow in Range Validation Leads to Out-of-Bounds Memory Access - Ruby - Ruby Issue Tracking System Socket.tcpandTCPSocket.newraisesIO::TiemoutErrorwith user specified timeout by shioimm · Pull Request #15602- Add host information to timeout error messages in
TCPSocket.newandSocket.tcpby shioimm · Pull Request #15582 - Bug #21780: Change the default size of Enumerator.produce back to infinity - Ruby - Ruby Issue Tracking System
- Update NEWS.md for Socket by shioimm · Pull Request #15608
- Improve NEWS.md for Socket by shioimm · Pull Request #15610
- ObjectSpace.{dump,dump_all,dump_shapes} needs vm barrier. by luke-gruber · Pull Request #15569
- Update bundled bigdecimal and rbs by tompng · Pull Request #15611
- [DOC] Small changes to docs for ObjectSpace#each_object by luke-gruber · Pull Request #15564
- Adjust Set documentation by zverok · Pull Request #15547
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
https://github.com/ruby/ruby/compare/v4.0.0-preview2...v4.0.0-preview3