summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-08[rubygems/rubygems] Map 'universal' to the real arch in Bundler for prebuilt ↵Bo Anderson
gem selection https://github.com/rubygems/rubygems/commit/dd0c94f16a
2022-11-08YJIT: improve/fix code to automatically build YJIT when available (#6684)Maxime Chevalier-Boisvert
* YJIT: improve/fix code to automatically build YJIT when available * Set YJIT_SUPPORT=no * Fix rustc => $RUSTC Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-11-09mutex: Raise a ThreadError when detecting a fiber deadlock (#6680)Jean byroot Boussier
[Bug #19105] If no fiber scheduler is registered and the fiber that owns the lock and the one that try to acquire it both belong to the same thread, we're in a deadlock case. Co-authored-by: Jean Boussier <byroot@ruby-lang.org> Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-11-08Update default gems list at 4e728486b93eaec876ea8f876df9ec [ci skip]git
2022-11-08[ruby/error_highlight] Bump versionYusuke Endoh
https://github.com/ruby/error_highlight/commit/59c291cce1
2022-11-08Suppress false warning by a bug of gccNobuyoshi Nakada
GCC [Bug 99578] seems triggered by calling `rb_reg_last_match` before `match_check(match)`, probably by `NIL_P(match)` in `rb_reg_nth_match`. [Bug 99578]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578 Notes: Merged: https://github.com/ruby/ruby/pull/6690
2022-11-08Fix false LocalJumpError when branch coverage is enabledYusuke Endoh
`throw TAG_BREAK` instruction makes a jump only if the continuation of catch of TAG_BREAK exactly matches the instruction immediately following the "send" instruction that is currently being executed. Otherwise, it seems to determine break from proc-closure. Branch coverage may insert some recording instructions after "send" instruction, which broke the conditions for TAG_BREAK to work properly. This change forces to set the continuation of catch of TAG_BREAK immediately after "send" (or "invokesuper") instruction. [Bug #18991] Notes: Merged: https://github.com/ruby/ruby/pull/6688
2022-11-08Set default %printer for NODE ntermsyui-knk
Before: ``` Reducing stack by rule 639 (line 5062): $1 = token "integer literal" (1.0-1.1: 1) -> $$ = nterm simple_numeric (1.0-1.1: ) ``` After: ``` Reducing stack by rule 641 (line 5078): $1 = token "integer literal" (1.0-1.1: 1) -> $$ = nterm simple_numeric (1.0-1.1: NODE_LIT) ``` `"<*>"` is supported by Bison 2.3b (2008-05-27) or later. https://git.savannah.gnu.org/cgit/bison.git/commit/?id=12e3584054c16ab255672c07af0ffc7bb220e8bc Therefore developers need to install Bison 2.3b+ to build ruby from source codes if their Bison is older. Minimum version requirement for Bison is changed to 3.0. See: https://bugs.ruby-lang.org/issues/19068 [Feature #19068] Notes: Merged: https://github.com/ruby/ruby/pull/6579
2022-11-07[DOC] Properly number the list in building_ruby.mdPeter Zhu
2022-11-08Thread#native_thread_id is very platform specificNobuyoshi Nakada
2022-11-07[DOC] Improve building_ruby.mdPeter Zhu
2022-11-07Update to ruby/spec@740ccc8Benoit Daloze
2022-11-07Update to ruby/mspec@1e16420Benoit Daloze
2022-11-07[ruby/irb] Support non-string input in show_sourceTakashi Kokubun
(https://github.com/ruby/irb/pull/430) * Support non-string input in show_source * Test show_source as a method
2022-11-07YJIT: Free pages after ObjectSpace API usages (#6676)Takashi Kokubun
Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-11-07[ruby/irb] Don't lazily retrieve gem specs for completionStan Lo
There are a few downsides of the current approach: 1. Because gem specs are lazily retrieved, this computation happens in every irb completion test case, which is not necessary. (In tests we don't cache the result of `retrieve_files_to_require_from_load_path`) 2. Gem::Specification.latest_specs is sensible to the content of LOAD_PATH. And when combined with 1, tests fail "randomly" if they try to mutate LOAD_PATH, even though the test subject it's something else. So by pre-computing and storing the gem paths in a constant, it guarantees that the computation only happens once and it doesn't get affected by test cases. One argument could be made against the change is that, it'll store unnecessary data for users that disable autocompletion. But the counter-arguments are: 1. Since autocompletion is enabled by default, this should not be the case for most users. 2. For users with autocompletion enabled, IRB already caches the result of `retrieve_files_to_require_from_load_path` in memory, which should have a similar size of GEM_SPECS. And we currently haven't received any report about problems caused by such memory consumption. https://github.com/ruby/irb/commit/c671d39020
2022-11-07[ruby/fileutils] Revert "FileUtils.rm* methods swallows only Errno::ENOENT ↵Yusuke Endoh
when force is true" This reverts commit https://github.com/ruby/fileutils/commit/fa65d676ece9. This caused some incompatibility problems in real-world cases. https://bugs.ruby-lang.org/issues/18784#change-98927 https://bugs.ruby-lang.org/issues/18784#change-98967 https://github.com/ruby/fileutils/commit/42983c2553
2022-11-07[rubygems/rubygems] Fix rubocop violationsPeter Zhu
https://github.com/rubygems/rubygems/commit/cc12e68637
2022-11-07[rubygems/rubygems] Drop support for IRIXPeter Zhu
The IRIX OS is no longer maintained with the last release being 16 years ago. https://github.com/rubygems/rubygems/commit/5381c6a871
2022-11-07[rubygems/rubygems] Drop support for bitrigPeter Zhu
The bitrig OS is no longer maintained with the last release being 7 years ago. https://github.com/rubygems/rubygems/commit/85ed90ddd0
2022-11-07[rubygems/rubygems] Drop support for HP-UXPeter Zhu
Support for HP-UX was dropped in Ruby in ruby/ruby#5457. https://github.com/rubygems/rubygems/commit/a3a8df3582
2022-11-07[Bug #19106] Normalize time at 24:00:00 with a timezone objectNobuyoshi Nakada
2022-11-07Revert jobserver handling in specNobuyoshi Nakada
2022-11-07Let other test runners follow the change of GNU make 4.4 jobserverNobuyoshi Nakada
2022-11-07jobserver option may not be at the lastNobuyoshi Nakada
2022-11-07Set `autoclose:` for inherited FDs only [ci skip]Nobuyoshi Nakada
2022-11-06GNU make 4.4 now uses a fifo for the jobserverNobuyoshi Nakada
2022-11-06Check `rustc` with the targetNobuyoshi Nakada
2022-11-06`--disable-jit-support` should disable YJIT successfullyNobuyoshi Nakada
Even if `rustc` is available, it should not be an error unless `--enable-yjit` is explicitly given. Notes: Merged: https://github.com/ruby/ruby/pull/6681
2022-11-06Disable YJIT support when cross-compilingNobuyoshi Nakada
As the target-list of `rustc` is different from `config.guess` and `config.sub`, `$target` cannot be used directly.
2022-11-06Add `--target` option to RUSTC when cross-compilingNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6677
2022-11-06Should use the configured rustc consistentlyNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6677
2022-11-06[wasm] Scan machine stack based on `ec->machine.stack_{start,end}`Yuta Saito
fiber machine stack is placed outside of C stack allocated by wasm-ld, so highest stack address recorded by `rb_wasm_record_stack_base` is invalid when running on non-main fiber. Therefore, we should scan `stack_{start,end}` which always point a valid stack range in any context. Notes: Merged: https://github.com/ruby/ruby/pull/6679
2022-11-05Sync TRICK 2018 (02-mame)Yusuke Endoh
https://github.com/tric/trick2018/pull/5
2022-11-05[ruby/erb] Revert the strpbrk optimizationTakashi Kokubun
because it's much slower on M1 https://github.com/ruby/erb/pull/29. It'd be too complicated to switch the implementation based on known optimized platforms / versions. Besides, short strings are the most common usages of this method and SIMD doesn't really help that case. All in all, I can't justify the existence of this code. https://github.com/ruby/erb/commit/30691c8995
2022-11-05[ruby/erb] Optimize away the rb_convert_type call using RB_TYPE_PTakashi Kokubun
https://github.com/ruby/erb/commit/12058c3784
2022-11-05[ruby/erb] Use strpbrk only when str is long enough for SIMDTakashi Kokubun
This is the same trick used by https://github.com/k0kubun/hescape to choose the best strategy for different scenarios. https://github.com/ruby/erb/commit/af26da2858
2022-11-05[ruby/erb] Optimize the no-escape case with strpbrkTakashi Kokubun
(https://github.com/ruby/erb/pull/29) Typically, strpbrk(3) is optimized pretty well with SIMD instructions. Just using it makes this as fast as a SIMD-based implementation for the no-escape case. Not utilizing this for escaped cases because memory allocation would be a more significant bottleneck for many strings anyway. Also, there'll be some overhead in calling a C function (strpbrk) many times because we're not using SIMD instructions directly. So using strpbrk all the time might not necessarily be faster.
2022-11-04Improve HTML escape benchmarksTakashi Kokubun
2022-11-04Auto-enable YJIT build when rustc >= 1.58.0 present (#6662)Maxime Chevalier-Boisvert
* Auto-enable YJIT build when rustc >= 1.58.0 present * Try different incantation to have rustc output to stdout only * Add comment, remove whitespace * Try to detect if we are on a platform on which YJIT is supported Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-11-04Don't report changed ENV caused by BundlerPeter Zhu
Bundler's backups changes environment variables starting with BUNDLER_ORIG_. This causes a lot of noise in tests as the leakchecker reports them as changed.
2022-11-04[ruby/irb] Silent the noise created when building Context in testsStan Lo
https://github.com/ruby/irb/commit/27e4274b3c
2022-11-04[ruby/erb] Avoid using prepend + super for fallbackTakashi Kokubun
(https://github.com/ruby/erb/pull/28) `prepend` is prioritized more than ActiveSupport's monkey-patch, but the monkey-patch needs to work. https://github.com/ruby/erb/commit/611de5a865
2022-11-05Update dependencies for bc28acc347eace4d02bbb4b672655216f7dd3a81Nobuyoshi Nakada
2022-11-04Increment max_iv_count on class in gc marking, not gc freeingJemma Issroff
We were previously incrementing the max_iv_count on a class in gc freeing. By the time we free an object though, we're not guaranteed its class is still valid. Instead, we can do this when marking and we're guaranteed the object still knows its class. Notes: Merged: https://github.com/ruby/ruby/pull/6673
2022-11-05Update dependenciesNobuyoshi Nakada
2022-11-04Use RTEST to to check return valuePeter Zhu
rb_obj_is_kind_of returns a Ruby Qtrue or Qfalse. We should use RTEST rather than assuming that Qfalse is 0.
2022-11-04Remove unnecessary branch in `UnboundMethod#bind`Alexander Momchilov
Co-authored-by: Michael Herold <michael.herold@shopify.com> Notes: Merged: https://github.com/ruby/ruby/pull/6670
2022-11-04[ruby/irb] Suppress "switching inspect mode" messagesNobuyoshi Nakada
https://github.com/ruby/irb/commit/ee068d039b
2022-11-04mkconfig.rb: take CPU name from arch flagNobuyoshi Nakada