summaryrefslogtreecommitdiff
path: root/lib/fileutils.gemspec
AgeCommit message (Expand)Author
2021-01-17[ruby/fileutils] Drop support for dead old versionsNobuyoshi Nakada
2020-08-18Update the license for the default gems to dual licensesHiroshi SHIBATA
2019-11-30Move gemspec of fileutils under the toplevel of lib directory.Hiroshi SHIBATA
2018-10-20Merge fileutils from ruby/fileutils on GitHub.hsbt
2018-05-15Retry to merge fileutils-1.1.0.hsbt
2018-05-15Revert "Merge fileutils-1.1.0."mame
2018-05-15Merge fileutils-1.1.0.hsbt
2017-12-22Bump up fileutils-1.0.2hsbt
2017-12-12Bump version to fileutils-1.0.1.hsbt
2017-12-12Bump version to fileutils-1.0.0 as default gems.hsbt
2017-06-19Make string literal to frozen object on gemspec of defulte gems.hsbt
2017-05-19Merge gemspec from ruby/fileutils.hsbt
2017-04-12Import latest gemspec from ruby/fileutils.hsbt
2017-02-07Fix a required ruby version on gemspec of gemified libraries.hsbt
2017-02-06Added initial gemspec for FileUtils module.hsbt
ruby/pull/12697 2025-01-30YJIT: Remove comments that refer to the removed "stats" featureAlan Wu The Cargo feature was removed in 2de8b5b8054f311c4cee112dcab5208b66cc62a4 and it's available in all build configs now. [ci skip] 2025-01-30YJIT: Turn on dead code lint for the stats moduleAlan Wu 2025-01-30YJIT: Explicitly specify C ABI to fix a nightly Rust warningAlan Wu 2025-01-29YJIT: A64: Remove assert that trips when OOM at page boundaryAlan Wu With a well-timed OOM around a page switch in the backend, it can return RetryOnNextPage twice and crash due to the assert. (More places can signal OOM now since VirtualMem tracks Rust malloc heap size for --yjit-mem-size.) Return error in these cases instead of crashing. Fixes: https://github.com/Shopify/ruby/issues/566 Notes: Merged: https://github.com/ruby/ruby/pull/12668 2025-01-28YJIT: Initialize locals in ISeqs defined with `...` (#12660)Alan Wu * YJIT: Fix indentation [ci skip] Fixes: cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce * YJIT: Initialize locals in ISeqs defined with `...` Previously, callers of forwardable ISeqs moved the stack pointer up without writing to the stack. If there happens to be a stale value in the area skipped over, it could crash due to "try to mark T_NONE". Also, the uninitialized local variables were observable through `binding`. Initialize the locals to nil. [Bug #21021] Notes: Merged-By: maximecb <maximecb@ruby-lang.org> 2025-01-10YJIT: Rename send_iseq_forwarding->send_forwardingAlan Wu It's in gen_send_general(), so nothing specifically to do with iseqs. Notes: Merged: https://github.com/ruby/ruby/pull/12550 2025-01-10Make rb_vm_insns_count a thread local variableAaron Patterson `rb_vm_insns_count` is a global variable used for reporting YJIT statistics. It is a counter that tallies the number of interpreter instructions that have been executed, this way we can approximate how much time we're spending in YJIT compared to the interpreter. Unfortunately keeping this statistic means that every instruction executed in the interpreter loop must increment the counter. Normally this isn't a problem, but in multi-threaded situations (when Ractors are used), incrementing this counter can become quite costly due to page caching issues. Additionally, since there is no locking when incrementing this global, the count can't really make sense in a multi-threaded environment. This commit changes `rb_vm_insns_count` to a thread local. That way each Ractor has it's own copy of the counter and incrementing the counter becomes quite cheap. Of course this means that in multi-threaded situations, the value doesn't really make sense (but it didn't make sense before because of the lack of locking). The counter is used for YJIT statistics, and since YJIT is basically disabled when Ractors are in use, I don't think we care about inaccuracies (for the time being). We can revisit this counter when we give YJIT multi-threading support, but for the time being this commit restores multi-threaded performance. To test this, I used the benchmark in [Bug #20489]. Here is the performance on Ruby 3.2: ``` $ time RUBY_MAX_CPU=12 ./miniruby -v ../test.rb 8 8 ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux] [0...1, 1...2, 2...3, 3...4, 4...5, 5...6, 6...7, 7...8] ../test.rb:43: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues. ________________________________________________________ Executed in 2.53 secs fish external usr time 19.86 secs 370.00 micros 19.86 secs sys time 0.02 secs 320.00 micros 0.02 secs ``` We can see the regression in performance on the master branch: ``` $ time RUBY_MAX_CPU=12 ./miniruby -v ../test.rb 8 8 ruby 3.5.0dev (2025-01-10T16:22:26Z master 4a2702dafb) +PRISM [x86_64-linux] [0...1, 1...2, 2...3, 3...4, 4...5, 5...6, 6...7, 7...8] ../test.rb:43: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues. ________________________________________________________ Executed in 24.87 secs fish external usr time 195.55 secs 0.00 micros 195.55 secs sys time 0.00 secs 716.00 micros 0.00 secs ``` Here are the stats after this commit: ``` $ time RUBY_MAX_CPU=12 ./miniruby -v ../test.rb 8 8 ruby 3.5.0dev (2025-01-10T20:37:06Z tl 3ef0432779) +PRISM [x86_64-linux] [0...1, 1...2, 2...3, 3...4, 4...5, 5...6, 6...7, 7...8] ../test.rb:43: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues. ________________________________________________________ Executed in 2.46 secs fish external usr time 19.34 secs 381.00 micros 19.34 secs sys time 0.01 secs 321.00 micros 0.01 secs ``` [Bug #20489] Notes: Merged: https://github.com/ruby/ruby/pull/12549 2025-01-08YJIT: Filter `&` calls from specialized C method codegenAlan Wu Evident with the crash reported in [Bug #20997], the C replacement codegen functions aren't authored to handle block arguments (nor should they because the extra code from the complexity defeats optimization). Filter sites with VM_CALL_ARGS_BLOCKARG. Notes: Merged: https://github.com/ruby/ruby/pull/12536 2025-01-04YJIT: Fix crash when yielding keyword argumentsAlan Wu Previously, the code for dropping surplus arguments when yielding into blocks erroneously attempted to drop keyword arguments when there is in fact no surplus arguments. Fix the condition and test that supplying the exact number of keyword arguments as require compiles without fallback. Notes: Merged: https://github.com/ruby/ruby/pull/12499 2024-12-23YJIT: Return None if entry block compilation fails (#12445)Takashi Kokubun Notes: Merged-By: k0kubun <takashikkbn@gmail.com>