summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-04-06[rubygems/rubygems] Make mfa the defaultAshley Ellis Pierce
https://github.com/rubygems/rubygems/commit/0b636f6902
2022-04-06[rubygems/rubygems] Correct mfa level nameAshley Ellis Pierce
https://github.com/rubygems/rubygems/commit/a002e351ae
2022-04-06[rubygems/rubygems] Enable mfa on specific keys during gem signinAshley Ellis Pierce
https://github.com/rubygems/rubygems/commit/e787f7f655
2022-04-05RubyVM.stat constant cache metrics (#5766)Kevin Newton
Before the new constant cache behavior, caches were invalidated by a single global variable. You could inspect the value of this variable with RubyVM.stat(:global_constant_state). This was mostly useful to verify the behavior of the VM or to test constant loading like in Rails. With the new constant cache behavior, we introduced RubyVM.stat(:constant_cache) which returned a hash with symbol keys and integer values that represented the number of live constant caches associated with the given symbol. Additionally, we removed the old RubyVM.stat(:global_constant_state). This was proven to be not very useful, so it doesn't help you diagnose constant loading issues. So, instead we added the global constant state back into the RubyVM output. However, that number can be misleading as now when you invalidate something like `Foo::Bar::Baz` you're actually invalidating 3 different lists of inline caches. This commit attempts to get the best of both worlds. We remove RubyVM.stat(:global_constant_state) like we did originally, as it doesn't have the same semantic meaning and it could be confusing going forward. Instead we add RubyVM.stat(:constant_cache_invalidations) and RubyVM.stat(:constant_cache_misses). These two metrics should provide enough information to diagnose any constant loading issues, as well as provide a replacement for the old global constant state. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-04-06* 2022-04-06 [ci skip]git
2022-04-05Document MakeMakefile#append_cflagsAlan Wu
This method is at least 7 years old and is widely used in the wild. Since we need to support it, let's document it to make it discoverable. Add docs and move it out of the `# :stopdoc:` zone. Notes: Merged: https://github.com/ruby/ruby/pull/5760
2022-04-05Fix using anonymous block in method accepting explicit keywordsJeremy Evans
Record block ID before vtable_pop, so the incorrect one doesn't override it. Fixes [Bug #18673] Notes: Merged: https://github.com/ruby/ruby/pull/5761
2022-04-05Load fake.rb at `BTESTRUBY`Nobuyoshi Nakada
So that `mkmf` checks work from `make run`, and also remove duplicate `$(MINIRUBYOPT)` which is used in `$(MINIRUBY)`. Notes: Merged: https://github.com/ruby/ruby/pull/5747
2022-04-05Try to fix NoMethodError on slow environmentsKazuhiro NISHIYAMA
``` 1) Failure: TestParallel::TestParallel#test_hungup [/home/user/ruby/tool/test/testunit/test_parallel.rb:215]: Expected /^Retrying hung up testcases\.+$/ to match "Run options: \n" + " --seed=43403\n" + " --ruby\n" + " \"./miniruby -I../lib -I. -I.ext/common ../tool/runruby.rb --extout=.ext -- --disable-gems\"\n" + " -j\n" + " t1\n" + " --worker-timeout=1\n" + "\n" + "# Running tests:\n" + "\n" + "/home/user/ruby/tool/lib/test/unit.rb:687:in `block in _run_parallel': undefined method `<' for nil:NilClass (NoMethodError)\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:538:in `block in quit_workers'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:537:in `reject!'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:537:in `quit_workers'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:687:in `_run_parallel'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:810:in `_run_suites'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:849:in `_run_suites'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1479:in `_run_anything'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1263:in `_run_anything'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1654:in `run_tests'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1641:in `block in _run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1640:in `each'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1640:in `_run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1682:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1034:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:882:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:154:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1761:in `run'\n" + "\tfrom /home/user/ruby/tool/lib/test/unit.rb:1765:in `run'\n" + "\tfrom /home/user/ruby/tool/test/testunit/tests_for_parallel/runner.rb:14:in `<main>'\n". ```
2022-04-05Give some tips on how to find the missing ruby2_keywordsBenoit Daloze
2022-04-05Add NEWS entry for Bug #18625 to help adding ruby2_keywords in the missing ↵Benoit Daloze
places Notes: Merged: https://github.com/ruby/ruby/pull/5684
2022-04-05Use latest RSpec to get rspec-mocks ruby2_keywords fixBenoit Daloze
Notes: Merged: https://github.com/ruby/ruby/pull/5684
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