summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2022-11-04Substitute from the actual netinet6/in6.hNobuyoshi Nakada
Xcode no longer links the system include files directory to `/usr`. Extract the actual header file path from cpp output.
2022-11-04sync_default_gems.rb: fix a typo [ci skip]Nobuyoshi Nakada
2022-11-04Lower priority of `POSIX_MADV_DONTNEED`. (#6671)Samuel Williams
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2022-11-04[ruby/erb] Do not allocate a new String if not neededTakashi Kokubun
[Feature #19102]https://github.com/ruby/erb/commit/ecebf8075c
2022-11-04[ruby/erb] Optimize away to_s if it's already T_STRINGTakashi Kokubun
[Feature #19102]https://github.com/ruby/erb/commit/38c6e182fb
2022-11-04[ruby/erb] Copy CGI.escapeHTML to ERB::Util.html_escapeTakashi Kokubun
https://github.com/ruby/erb/commit/ac9b219fa9
2022-11-04sync_default_gems.rb: fix the position to insert the original URLNobuyoshi Nakada
Since the regexp had expected an empty line before `Co-Authored-By:` trailer lines, it failed to match when the body has the trailer only.
2022-11-04sync_default_gems.rb: accept log input from other than STDINNobuyoshi Nakada
2022-11-03Bump benchmark-driver versionTakashi Kokubun
https://github.com/benchmark-driver/benchmark-driver/pull/75 is useful for quickly benchmarking a single method in CRuby.
2022-11-03[ruby/irb] Provide a base test class and let tests restore encodingsStan Lo
conveniently (https://github.com/ruby/irb/pull/429) * Create a base TestIRB::TestCase class * Save/restore encodings for tests that initializes InputMethod classes Because `RelineInputMethod#initializes` calls `set_encoding`, which changes stdio/out/err and Encoding's default encoding values, we need to make sure any test that directly or indirectly (e.g. through Context) initializes `RelineInputMethod` restores encodings. `ReadlineInputMethod` also changes encodings but currently no tests cover it. * Remove unnecessary TestHelper module Since we now have a base TestCase, without_rdoc can just live there. https://github.com/ruby/irb/commit/c2874ec121
2022-11-03[ruby/irb] Allow non-identifier aliases like Pry's @ and $Takashi Kokubun
(https://github.com/ruby/irb/pull/426) * Allow non-identifier aliases * Move the configuration to IRB.conf * Avoid abusing method lookup for symbol aliases * Add more alias tests * A small optimization * Assume non-nil Context * Load IRB.conf earlier https://github.com/ruby/irb/commit/e23db5132e
2022-11-03Update configure command in building_ruby.mdPeter Zhu
Readers didn't realize that you can use --prefix with --disable-install-doc.
2022-11-03[DOC] Fix IO::Buffer#slice rdoc positionYusuke Nakamura
Before this change, rdoc shows empty in 'slice' method section Notes: Merged: https://github.com/ruby/ruby/pull/6668
2022-11-03[ruby/irb] Require rubygems to run the test alone on ruby/rubyTakashi Kokubun
`Gem` is not undefined on test-all https://github.com/ruby/irb/commit/08ac803d61