summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-04-05Unflag a splatted flagged hash if the method doesn't use ruby2_keywordsJeremy Evans
For a method such as: def foo(*callee_args) end If this method is called with a flagged hash (created by a method flagged with ruby2_keywords), this previously passed the hash through without modification. With this change, it acts as if the last hash was passed as keywords, so a call to: foo(*caller_args) where the last element of caller_args is a flagged hash, will be treated as: foo(*caller_args[0...-1], **caller_args[-1]) As a result, inside foo, callee_args[-1] is an unflagged duplicate of caller_args[-1] (all other elements of callee_args match caller_args). Fixes [Bug #18625] Notes: Merged: https://github.com/ruby/ruby/pull/5684
2022-04-05Ignore yaml sourceHiroshi SHIBATA
2022-04-05Removed mswin patch for zlib-1.2.11Hiroshi SHIBATA
2022-04-05Apply timescale configuration for tests of Regexp.timeoutYusuke Endoh
2022-04-05[ruby/psych] Improve libyaml source downloading error messagesAlan Wu
People trying to build CRuby by following the instructions in its [README] have been running into [errors] due to missing `libyaml` on their system. Let's try to present a better error message when it happens. [README]: https://github.com/ruby/ruby/tree/fb5aa31e2d20ea8e1425432672f4de4c8ca2c26b#how-to-compile-and-install [errors]: https://github.com/ruby/psych/issues/552 https://github.com/ruby/psych/commit/20a633028e
2022-04-04ruby_gc_set_params: update malloc_limit when env is setEric Wong
During VM startup, rb_objspace_alloc sets malloc_limit (objspace->malloc_params.limit) before ruby_gc_set_params is called, thus nullifying the effect of RUBY_GC_MALLOC_LIMIT before the initial GC run. The call sequence is as follows: main.c::main() ruby_init ruby_setup Init_BareVM rb_objspace_alloc // malloc_limit = gc_params.malloc_limit_min; ruby_options ruby_process_options process_options ruby_gc_set_params // RUBY_GC_MALLOC_LIMIT => gc_params.malloc_limit_min With ruby_gc_set_params setting malloc_limit, RUBY_GC_MALLOC_LIMIT affects the process sooner. [ruby-core:107170]
2022-04-04Enhanced RDoc for String#index (#5759)Burdette Lamar
Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-04-05* 2022-04-05 [ci skip]git
2022-04-04Bring back RubyVM.stat(:global_constant_state)Kevin Newton
This was removed as part of [Feature #18589]. But some applications were relying on this behavior. So bringing this back to make it better for backward compatibility going forward. Notes: Merged: https://github.com/ruby/ruby/pull/5758
2022-04-04Disable mmap on WASMPeter Zhu
WASM does not have proper support for mmap. Notes: Merged: https://github.com/ruby/ruby/pull/5749
2022-04-04Make heap page sizes 64KiB by defaultPeter Zhu
Commit dde164e968e382d50b07ad4559468885cbff33ef decoupled incremental marking from page sizes. This commit changes Ruby heap page sizes to 64KiB. Doing so will have several benefits: 1. We can use compaction on systems with 64KiB system page sizes (e.g. PowerPC). 2. Larger page sizes will allow Variable Width Allocation to increase slot sizes and embed larger objects. 3. Since commit 002fa2859962f22de8afdbeece04966ea57b7da9, macOS has 64 KiB pages. Making page sizes 64 KiB will bring these systems to parity. I have attached some bechmark results below. Discourse: On Discourse, we saw much better p99 performance (e.g. for "categories" it went from 214ms on master to 134ms on branch, for "home" it went from 265ms to 251ms). We don’t see much change in p60, p75, and p90 performance. We also see a slight decrease in memory usage by 1.04x. Branch RSS: 354.9MB Master RSS: 368.2MB railsbench: On rails bench, we don’t see a big change in RPS or p99 performance. We don’t see a big difference in memory usage. Branch RPS: 826.27 Master RPS: 824.85 Branch p99: 1.67 Master p99: 1.72 Branch RSS: 88.72MB Master RSS: 88.48MB liquid: We don’t see a significant change in liquid performance. Branch parse & render: 28.653 I/s Master parse & render: 28.563 i/s Notes: Merged: https://github.com/ruby/ruby/pull/5749
2022-04-04Make typeprof support RBS 2.3.0Yusuke Endoh
Since RBS 2.3.0, nil? returns true or false instead of bool Notes: Merged: https://github.com/ruby/ruby/pull/5756
2022-04-04[ruby/psych] Propagate `CC` to libyamlNobuyoshi Nakada
It is needed for cross-compiling to set properly. Just `--target`/`--host`/`--build` seems insufficient on some platforms. https://github.com/ruby/psych/commit/2d00c0c203
2022-04-04[ruby/optparse] Define `inspect` and `pretty_inspect`Nobuyoshi Nakada
https://github.com/ruby/optparse/commit/a3f0ec21b1
2022-04-04[rubygems/rubygems] bump actions/checkout to 3 in bundler gem templateHartley McGuire
Dependabot bumped the repo's configuration in 0c996fa but it did not bump the version in the template for `bundler gem` https://github.com/rubygems/rubygems/commit/e14980e169
2022-04-04* 2022-04-04 [ci skip]git
2022-04-03[DOC] Enhanced RDoc for String (#5753)Burdette Lamar
Treats: #length #bytesize Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-04-03[DOC] Describe append_{c,cpp,ld}flagsv3_2_0_preview1Nobuyoshi Nakada
2022-04-03[ruby/net-http] Revert "Update the content-length heading when decoding bodies"Jeremy Evans
This reverts commit https://github.com/ruby/net-http/commit/a7cb30124cf1. This is causing errors in Ruby's CI, will revert for now and try again after testing a fix with Ruby's CI. https://github.com/ruby/net-http/commit/7b852b1feb
2022-04-02[DOC] Enhanced RDoc for String (#5751)Burdette Lamar
Adds to doc for String.new, also making it compliant with documentation_guide.rdoc. Fixes some broken links in io.c (that I failed to correct yesterday). Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-04-03* 2022-04-03 [ci skip]git
2022-04-03dir.c: refresh pathtype when emulating `IFTODT` in `glob_helper`Yuta Saito
When using `IFTODT` defined in libc, `dirent.d_type` oriented pathtype is compatible with `IFTODT(stat.st_mode)`. However they are not compatible when emulating `IFTODT`, so `glob_helper` has to stat instead of reusing dirent result by passing unknown pathtype to `glob_helper`. This is a follow-up fix of 0c90ca4dd0abbd28d7bb34b9241d93995ab9cfb7 Notes: Merged: https://github.com/ruby/ruby/pull/5680
2022-04-02[ruby/zlib] Use `z_size_t` version functionsNobuyoshi Nakada
https://github.com/ruby/zlib/commit/1ce6625fff
2022-04-02Update bundled gems list at e73d76027e7a7e0927785c66629c18 [ci skip]git
2022-04-02Update bundled_gemsKazuhiro NISHIYAMA
2022-04-02[ruby/zlib] Mask checksums to lower 32bits on also IL32 platformsNobuyoshi Nakada
https://github.com/ruby/zlib/commit/e1ead85113
2022-04-02[ruby/zlib] Mask checksums to lower 32bitsNobuyoshi Nakada
Upper bits affect the result of `crc32` in zlib 1.2.12. https://github.com/ruby/zlib/commit/9ab6d04af1
2022-04-02[DOC] Fix broken links to encodings.rdocNobuyoshi Nakada
Also prefers class name based references than file name based references.
2022-04-02Adjust indent [ci skip]Nobuyoshi Nakada
2022-04-01[DOC] Main doc for encodings moved from encoding.c to doc/encodings.rdoc (#5748)Burdette Lamar
Main doc for encodings moved from encoding.c to doc/encodings.rdoc Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-04-01Finer-grained constant cache invalidation (take 2)Kevin Newton
This commit reintroduces finer-grained constant cache invalidation. After 8008fb7 got merged, it was causing issues on token-threaded builds (such as on Windows). The issue was that when you're iterating through instruction sequences and using the translator functions to get back the instruction structs, you're either using `rb_vm_insn_null_translator` or `rb_vm_insn_addr2insn2` depending if it's a direct-threading build. `rb_vm_insn_addr2insn2` does some normalization to always return to you the non-trace version of whatever instruction you're looking at. `rb_vm_insn_null_translator` does not do that normalization. This means that when you're looping through the instructions if you're trying to do an opcode comparison, it can change depending on the type of threading that you're using. This can be very confusing. So, this commit creates a new translator function `rb_vm_insn_normalizing_translator` to always return the non-trace version so that opcode comparisons don't have to worry about different configurations. [Feature #18589] Notes: Merged: https://github.com/ruby/ruby/pull/5716
2022-04-01Fix up global name references in misc/lldb_disasm.pyAaron Patterson
Some of the symbols had changed names and the script was no longer finding them. Notes: Merged: https://github.com/ruby/ruby/pull/5716
2022-04-02* 2022-04-02 [ci skip]git
2022-04-02[ruby/net-http] Update the content-length heading when decoding bodiesJeremy Evans
Previously, the content-encoding header was removed and the body was modified, but the content-length header was not modified, resulting in the content-length header not matching the body length. Fixes [Bug #16672] https://github.com/ruby/net-http/commit/a7cb30124c
2022-04-01extract magic number from gc_sweep_stepMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/5746
2022-04-01Use mmap for heap page allocation onlyPeter Zhu
Currently, rb_aligned_malloc uses mmap if Ruby heap pages can be allocated through mmap (when system heap page size <= Ruby heap page size). If Ruby heap page sizes is increased to 64KiB, then mmap will be used on systems with 64KiB system page sizes. However, the transient heap also uses rb_aligned_malloc and requires 32KiB alignment. This would break in the current implementation since it would allocate sizes through mmap that is not a multiple of the system page size. This commit adds heap_page_body_allocate which will use mmap when possible and changes rb_aligned_malloc to not use mmap (and only use posix_memalign).
2022-04-01Revert "Raise RuntimeError if Kernel#binding is called from a non-Ruby frame"Jeremy Evans
This reverts commit 343ea9967e4a6b279eed6bd8e81ad0bdc747f254. This causes an assertion failure with -DRUBY_DEBUG=1 -DRGENGC_CHECK_MODE=2
2022-04-01[Feature #18619] remove FL_FROM_FREELISTMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/5637
2022-04-01[Feature #18619] Remove redundant compaction pathMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/5637
2022-04-01[Feature #18619] Reverse the order of compaction movementMatt Valentine-House
This commit changes the way compaction moves objects and sweeps pages in order to better facilitate object movement between size pools. Previously we would move the scan cursor first until we found an empty slot and then we'd decrement the compact cursor until we found something to move into that slot. We would sweep the page that contained the scan cursor before trying to fill it In this algorithm we first move the compact cursor down until we find an object to move - We then take a free page from the desired destination heap (always the same heap in this current iteration of the code). If there is no free page we sweep the page at the sweeping_page cursor, add it to the free pages, and advance the cursor to the next page, and try again. We sweep one page from each size pool in this way, and then repeat that process until all the size pools are compacted (all the cursors have met), and then we update references and sweep the rest of the heap. Notes: Merged: https://github.com/ruby/ruby/pull/5637
2022-04-01Update bundled gems list at b3a05827c716bbb6a54cb6924f5840 [ci skip]git
2022-04-01debug.gem v1.5.0Koichi Sasada
Note that `mkmf`'s `have_func` doesn't work without installing ruby (without `make install`) and `make test-bundled-gems` does not work. So the newer test repository is specified. Notes: Merged: https://github.com/ruby/ruby/pull/5738
2022-04-01Update default gems list at 06f94d1784c6f00ba7d21af57af0d0 [ci skip]git
2022-04-01[ruby/net-protocol] Bump version to 0.1.3Hiroshi SHIBATA
https://github.com/ruby/net-protocol/commit/9cf40af499
2022-04-01[ruby/psych] Output libyaml configure logNobuyoshi Nakada
https://github.com/ruby/psych/commit/c2e3c8579c
2022-03-31Remove dependency on libcapstoneAlan Wu
We have received reports of build failures due to this configuration check modifying compile flags. Since only YJIT devs use this library we can remove it to make Ruby easier to build for users. See: https://github.com/rbenv/ruby-build/discussions/1933 Notes: Merged: https://github.com/ruby/ruby/pull/5744 Merged-By: XrXr
2022-03-31[DOC] Enhanced RDoc for String (#5742)Burdette Lamar
Treats: #force_encoding #b #valid_encoding? #ascii_only? #scrub #scrub! #unicode_normalized? Plus a couple of minor tweaks. Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-03-31Remove hard-coded swept slots thresholdMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/5720
2022-03-31Update default gems list at 8a38419b73ec2b698dd2d0462055f3 [ci skip]git
2022-04-01[ruby/ostruct] v0.5.5Marc-André Lafortune
https://github.com/ruby/ostruct/commit/ce879e56cf