3.4.0-preview2
Pre-release
Pre-release
What's Changed
- Bug #20468: Segfault on safe navigation in for target
- Bug #20493: Segfault on rb_io_getline_fast
- Bug #20494: Non-default directories are not searched when checking for a gmp header
- Bug #20499: Ruby builds on macOS store absolute paths for AR and NM in rbconfig since Ruby 3.2.3/3.3.0
- Bug #20500: Non-system directories are not searched when checking for jemalloc headers and libs, and building
enc - Bug #20510: File.open mode argument inconsistency
- Bug #20314: Simultaneous Timeout expires may raise an exception after the block
- Feature #20205: Enable
frozen_string_literalby default - Misc #20507: Allow C extensions to be compiled cleanly with the
-Wsign-conversionwarning option - Bug #20512: Order of magnitude performance differenfce in single character slicing UTF-8 strings before and after length method is executed
- Bug #20438: String format "%\n" and "%\0" does not raise format error
- YJIT: limit size of call count stats dict by maximecb · Pull Request #10858
- Bug #20515: --with-gmp is not working - GMP support won't be built
- Bug #20496: Segfault when enabling YJIT
- Feature #20497: Tempfile.create_io
- Bug #20517:
Ripper.tokenize('"\\M-あ"')separates encoding valid string to encoding invalid string. - YJIT: Fix getconstant exits after opt_ltlt fusion by k0kubun · Pull Request #10903
- Add/revise Errno descriptions by BurdetteLamar · Pull Request #10897
- Bug #20522: YJIT can panic if shape transition in
gen_setinstancevariableemits a performance warning - [DOC] Exceptions doc by BurdetteLamar · Pull Request #10865
- Feature #20524: mswin and gmp
- [DOC] Doc for module Errno by BurdetteLamar · Pull Request #10913
- Feature #19998: Emit deprecation warnings when the old (non-Typed) Data_XXX API is used
- Bug #20521: Memory leak in Ripper parsing
- Bug #19749: Confirm correct behaviour when attaching private method with
#define_method - Bug #14480: miniruby crashing when compiled with -O2 or -O1 on aarch64
- Bundle rbs-3.5 by soutaro · Pull Request #10929
- Bug #20397: The nkf license in LEGAL file seems to be obsolete
- Bug #20518: Escaped-newline in %W
- YJIT: implement variable-length context encoding scheme by maximecb · Pull Request #10888
- YJIT: implement cache for recently encoded/decoded contexts by maximecb · Pull Request #10938
- Bug #20566: string << 0xC2 should raise a RangeError if the string encoding is Encoding::ASCII
- Bug #20569: Instruction sequence generated from
shareable_constant_value: literalfiles may not be serialized to binary - Bug #20154: aarch64: configure overrides
-mbranch-protectionif it was set in CFLAGS via environment - Bug #20573: Warning.warn shouldn't be called for disabled warnings
- Bug #20562: Categorize
RUBY_FREE_AT_EXITwarning - Bug #20572: Compilation hangs with nested until
- YJIT: add context cache hits stat by maximecb · Pull Request #10979
- Bug #20577: FREE_AT_EXIT segfaulting after 32683aa1
- RJIT: Fixed and/or reg+disp32 operations by ukolovda · Pull Request #10856
- Bug #20578: Tokenizing string literal that have newline and invalid escape is wrong
- Fixed indents in recently RJIT patch by ukolovda · Pull Request #11001
- Enable LeakChecker for RJIT previously disabled for MJIT by XrXr · Pull Request #10998
- Bug #20579:
Ripper.tokenize("1\n ")does not include trailing spaces - Bug #20585: Size of memory allocated by String.new(:capacity) is different from the specified value
- Bug #20592: Interrupting Addrinfo causes Segmentation fault on alpine
- Bug #20043:
defined?checks for method existence but only sometimes - Bug #20457: Final
returnis eliminated from the AST - Test rbs-gem with unreleased version by soutaro · Pull Request #11060
- Use
File.openinstead ofIO.sysopen(backport to 3.5) by soutaro · Pull Request #11061 - [DOC] Doc for exceptions by BurdetteLamar · Pull Request #11008
- Bug #20595: Corruption of encoding name string
- Bug #20598: Corruption of internal encoding string
- Fix comment for VM_CALL_ARGS_SIMPLE by Gadiguibou · Pull Request #11067
- Synchronize Bundler & RubyGems by deivid-rodriguez · Pull Request #11071
- YJIT: Use a special breakpoint address if one isn't explicitly supplied in order to support natural line stepping. by nirvdrum · Pull Request #11083
- Speed up chunkypng benchmark by tenderlove · Pull Request #11087
- Feature #20470: Extract Ruby's Garbage Collector
- Feature #20589: Resize array in
rb_ary_freezeand userb_ary_freezeinternally for arrays - [DOC] Doc for Integer#floor by BurdetteLamar · Pull Request #11077
- Use
__CET__macro to enable IBT support. by voxik · Pull Request #11081 - Bug #20606: Thread#thread_variable_get, Thread#thread_variable? and Thread#[] methods handle non-String/Symbol parameter values differently
- Bug #20601: Configuration flags are not properly propagated to assembler
- Bug #18061: Execshield test: libruby.so.N.N.N: FAIL: property-note test because no .note.gnu.property section found
- Feature #19236: Allow to create hashes with a specific capacity from Ruby
- [DOC] Doc for Float#ceil by BurdetteLamar · Pull Request #11125
- YJIT: add comments and assertions to context cache code by maximecb · Pull Request #10983
- Bug #20593:
Kernel#formatemits atoo many arguments for format stringwarning when called with a single hash and no key is used - IBM864 single-byte transcoding by jeremy · Pull Request #10518
- Update yjit.md, explain how to run a single test with test-all by maximecb · Pull Request #11151
- YJIT: increase context cache size to 1024 redux by maximecb · Pull Request #11140
- YJIT: remove doc/yjit/yjit_hacking.md by maximecb · Pull Request #11153
- Feature #20443: Allow Major GC's to be disabled
- Bug #20633: compile error at vm_insnhelper.c when HAVE_DECL_ATOMIC_SIGNAL_FENCE is 0
- YJIT: Local variable register allocation by k0kubun · Pull Request #11157
- YJIT: split chain_depth and flag booleans in context by maximecb · Pull Request #11169
- Feature #20576: Add MatchData#bytebegin and MatchData#byteend
- Bug #20587: dir.c calls blocking filesystem APIs/system calls while holding the GVL
- Feature #18776: Object Shapes
- Bugfix - Typos in comments by jutaz · Pull Request #1140
- YJIT: Allow dev_nodebug to disasm release-mode code by k0kubun · Pull Request #11198
- Bug #20632: madvise(MADV_FREE) failure should not crash the process
- Remove redundant :use_block with yield by k0kubun · Pull Request #11203
- Bug #20641:
lib/bundled_gems.rbmakesKernel.requireover 100x slower - Feature #20624: Enhance
RubyVM::AbstractSyntaxTree::Node#locationsmethod andRubyVM::AbstractSyntaxTree::Locationclass - [DOC] Doc for BasicObject by BurdetteLamar · Pull Request #11139
- Bug #20647: Invalid return in class/module body from within singleton class
- Bug #20649: Ripper fails to tokenize
def f; (x)::A = - Bug #20650: Memory leak in Regexp capture group when timeout
- Bug #20653: Memory leak in String#start_with? when regexp times out
- [DOC] rb_ary_s_create by BurdetteLamar · Pull Request #11256
- Feature #20646: Improve Socket.tcp
- Bug #20655: Calling continuation triggers ensure function of rb_ensure
- Bug #20654: Floor and ceil have unexpected behaviour when ndigits is large
- [DOC] Tweaks for Array.new by BurdetteLamar · Pull Request #11259
- [DOC] Tweaks to Array.try_convert by BurdetteLamar · Pull Request #11260
- Feature #20563: Drop support for old Windows
- YJIT: Decouple Context from encoding details by k0kubun · Pull Request #11283
- [DOC] Adds "Further Considerations" to documentation_guide.md by BurdetteLamar · Pull Request #11281
- YJIT: Enhance the
String#<<method substitution to handle integer codepoint values. by nirvdrum · Pull Request #11032 - [DOC] Tweaks to Array#+ by BurdetteLamar · Pull Request #11302
- [DOC] Tweaks to Array#- by BurdetteLamar · Pull Request #11303
- Make YJIT a GC root rather than an object by peterzhu2118 · Pull Request #11343
- Sync rdoc to fix master doc's display issue by st0012 · Pull Request #11345
- [DOC] Tweaks for Array#[]= by BurdetteLamar · Pull Request #11329
- YJIT: Allow tracing fallback counters by k0kubun · Pull Request #11347
- Bug #20668: [3.3] shareable_constant_value: literal crash
- Bug #20344: argument stack underflow (-1)
- [DOC] Tweaks to Array#all? by BurdetteLamar · Pull Request #11365
- Improve base time of assert_linear_performance by tompng · Pull Request #11369
- [DOC] Tweaks to Array#assoc by BurdetteLamar · Pull Request #11384
- Feature #18368: Range#step semantics for non-Numeric ranges
- Bug #20679: Rails CI errors since abc04e898b627ab37fa9dd5e330f239768778d8b
- Decrease the timeout in assert_darwin_vm_dump_works by ono-max · Pull Request #11412
- Bug #20687: Does tarball require baseruby?
- [DOC] Include keywords.rdoc in doc/syntax/ by BurdetteLamar · Pull Request #11414
- Bug #20677: error: mach-o section specifier requires a segment whose length is between 1 and 16 characters
- Bug #20688: Use-after-free in WeakMap and WeakKeyMap
- [DOC] Tweaks for Array#collect! by BurdetteLamar · Pull Request #11434
- Bug #20691: Use-after-free in WeakKeyMap#clear
- Bug #20680: No "void context" warning for literals/etc. in ensure block
- [DOC] Tweaks to Array#combination by BurdetteLamar · Pull Request #11440
- Bug #20701: Hash argument passed as keyword splat can be mutated inside method
- [DOC] Tweaks for Array#cycle by BurdetteLamar · Pull Request #11459
- YJIT: Pass method arguments using registers by k0kubun · Pull Request #11280
- YJIT: Encode doubles to VALUE objects and move stat generation to rust by rwstauner · Pull Request #11388
- [DOC] Array comparing doc by BurdetteLamar · Pull Request #11486
- Bug #20704: Windows:
-Coption does not work for multibyte path name - [DOC] Relateds for combo methods by BurdetteLamar · Pull Request #11483
- [DOC] Related for Array#all? and Array#any? by BurdetteLamar · Pull Request #11495
- [DOC] Related for Array#[] by BurdetteLamar · Pull Request #11487
- Bug #20695: Elevated GC allocations in parse.y parser
- Bug #20708: EINTR while opening fifo isn't retried
- Feature #20590: Ensure
forkisn't called whenraddrinfo's background thread is ingetaddrinfo - Feature #20684: Add optimized instructions for frozen literal Hash and Array
- Issue #11865, lib/csv.rb Added attribute @line. by donilan · Pull Request #1170
- Feature #20707: Move
Time#xmlschemainto core - YJIT: Speed up block_assumptions_free by k0kubun · Pull Request #11556
- Feature #20702: Add
Array#fetch_values - Bug #20718: Objects created with Data_Make_Struct and the default free function are not freed
- Bug #20719:
Floatconverts ASCII-incompatible string - Feature #20594: A new String method to append bytes while preserving encoding
- Bug #20710: Reducing Hash allocation introduces large performance degradation (probably related to VWA)
- [DOC] Rationalize aliases in "What's Here" by BurdetteLamar · Pull Request #11516
- [DOC] Rationalize aliases in "What's Here" by BurdetteLamar · Pull Request #11517
- [DOC] Tweaks for Array#difference by BurdetteLamar · Pull Request #11593
- Bug #20720: prism incorrectly marks SuperNode as forwarding in some cases
- Bug #20586: Some filesystem calls in dir.c are missing error handling and can return incorrect results if interrupted
- Feature #20564: Switch default parser to Prism
- [DOC] Tweaks for Array#fetch by BurdetteLamar · Pull Request #11602
- [DOC] Tweaks for Array#fetch_values by BurdetteLamar · Pull Request #11603
- Bug #20725: Inconsistent handling of doubly-unbounded ranges in Range#overlap?
- Bug #20732: prism emits "mismatched indentations" warning in eval
- Bug #20731: warning: mismatched indentations at 'when' appears with prism enabled ruby
- Bug #20730: LoadError if Rakefile has shebang
- Bug #20735: prism emits "ambiguous
&" warning - Bug #20748: Issue with defined? given method call with block in prism compiler
- Bug #20741: RubyVM::InstructionSequence.compile emits a wrong warning (prism?)
- Bug #20744: syntax error found (SyntaxError)
UTF-8 mixed within US-ASCII sourcereported Ruby with Prism parser - Bug #20747: [prism] regression in retry precedence
- Bug #20723:
IO#closeis broken on Ruby 3.3+ when using the Fiber scheduler. - Bug #20736: prism emits wrong warnings in syntax-error code
- YJIT: Accept key for runtime_stats to return only that stat by rwstauner · Pull Request #11536
- Bug #20754: [doc]
Hash::newis missing from rdoc for 3.4 - Bug #20740: prism_compile coding issue for PM_FORWARDING_SUPER_NODE
- Bug #20640: Evaluation Order Issue in f(**h, &h.delete(key))
- Bug #20597:
eval('break if false')should raise SyntaxError but retuns nil - Bug #20607: Exception messages are inconsistent when thread-local variables are accessed
- Bug #20716: Different instance_method behavior in Ruby 2.7 and Ruby 3.x
- Bug #18651: oob access in CP51932 -> CP50220 transcoder
- Bug #20337: Complex#inspect mutates the string returned by
real.inspect - [DOC] More on Array#fill by BurdetteLamar · Pull Request #11610
- Bug #13831: error when try to install
- YJIT: Cache Context decoding by k0kubun · Pull Request #11680
- [DOC] Tweaks for Array#find_index by BurdetteLamar · Pull Request #11686
- Bug #20763: Stack consistency error with bare endless range
- [DOC] Tweaks for Array#flatten by BurdetteLamar · Pull Request #11688
- Bug #10555: '?' is not match to multibyte character at commandline globbing on Windows
- [DOC] Tweaks for Array#insert by BurdetteLamar · Pull Request #11709
- [DOC] Tweaks for Array#flatten! by BurdetteLamar · Pull Request #11689
- [DOC] Tweaks for Array#first by BurdetteLamar · Pull Request #11687
- [DOC] Tweaks for Array#hash by BurdetteLamar · Pull Request #11704
- Bug #20773: CI of RHEL8 and Amazon Linux 2 are failed from Sep 26th
- Bug #20752: IO::Buffer#slice creates mutable IO::Buffer instance that points to readonly memory (e.g. fronzen String)
- Bug #20501: ruby SEGV
- Return an Iterator Instead of a Vector in
addrs_to_pagesMethod by whtsht · Pull Request #11725 - Bug #20755: IO::Buffer#transfer transfers mutable reference to String's memory but not lock ownership
- Bug #20764: Forwarding parameter
...is wrongly allowed in lambda - [DOC] Tweaks for Array#inspect by BurdetteLamar · Pull Request #11743
- [DOC] Tweaks for Array#last by BurdetteLamar · Pull Request #11748
- [DOC] Tweaks for Array#intersection by BurdetteLamar · Pull Request #11745
- [DOC] Tweaks for Array.intersect? by BurdetteLamar · Pull Request #11744
- [DOC] Tweaks for Array#max by BurdetteLamar · Pull Request #11768
- Update
IO::Bufferdocumentation. by ioquatix · Pull Request #11737 - Add
IO::Buffertests for read and write with length & offset. by ioquatix · Pull Request #11779 - Bug #20620: singleton_method undefined for module using "extend self"
- [DOC] Tweaks for Array#min by BurdetteLamar · Pull Request #11786
- Improve documentation for
IO#timeoutand related functions. by ioquatix · Pull Request #9527 - Better handling of timeout in
rb_io_maybe_wait_*. by ioquatix · Pull Request #9531 - Update
io_spec.cto userb_io_maybe_wait*if possible. by ioquatix · Pull Request #11792 - Direct access to
fptr->fdshould prefer to use theinternal/io.h. by ioquatix · Pull Request #11793 - Bug #20783: --enable-shared and the rpath/runpath are broken on Linux on CRuby master
- [DOC] Tweaks for Array#minmax by BurdetteLamar · Pull Request #11787
- [DOC] Tweaks for Array#one? by BurdetteLamar · Pull Request #11789
- [DOC] Tweaks for Array#none? by BurdetteLamar · Pull Request #11788
- Introduce
rb_io_blocking_regionwhich takesstruct rb_ioargument. by ioquatix · Pull Request #11795 - Bug #20784:
?\followed by EOF is parsed wrong - Feature #20705: Should "0.E-9" be a valid float value?
- Bug #20433: Hash.inspect for some hash returns syntax invalid representation
- Bug #20787: IO#readline does not check its arguments like IO#gets and will read more data than limit
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.