summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-07-31[rubygems/rubygems] Disallow warnings to creep into the test suiteDavid Rodríguez
https://github.com/rubygems/rubygems/commit/694e6afee7 Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-31[rubygems/rubygems] Fix test warningDavid Rodríguez
https://github.com/rubygems/rubygems/commit/f4c4cddb68 Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-31[rubygems/rubygems] Don't `super` on main test setupDavid Rodríguez
The `teardown` method doesn't call it either and I don't think it's necessary. https://github.com/rubygems/rubygems/commit/ca2a5d485d Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-31[rubygems/rubygems] Remove very old compatibility codeDavid Rodríguez
https://github.com/rubygems/rubygems/commit/6e4bef758b Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-31[rubygems/rubygems] Extract some common code into a private methodDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d1be8cdb3a Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-31[rubygems/rubygems] Remove very old TODO noteDavid Rodríguez
It was added 10 years ago on a "146 additions, 170 deletions" commit named "Deprecation removals and minor cleanup." that didn't explain much other than that. This TODO doesn't necessarily apply nowadays. I don't see how anyways. TODO notes, if useful at all, should include a clear explanation of what should be done either via the note itself or the commit message. This note doens't meet any of these. So I want to remove it because it distracts me every time I go through it. https://github.com/rubygems/rubygems/commit/58d81e8a32 Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-31[rubygems/rubygems] Optimize Gem.already_loaded?Jean Boussier
Profiling a simple `ruby -e '1'` I see: ``` ================================== Mode: wall(10) Samples: 3414 (55.10% miss rate) GC: 856 (25.07%) ================================== TOTAL (pct) SAMPLES (pct) FRAME 689 (20.2%) 669 (19.6%) Gem.already_loaded? 462 (13.5%) 462 (13.5%) (marking) 393 (11.5%) 393 (11.5%) (sweeping) 815 (23.9%) 365 (10.7%) Gem::Specification.load 1050 (30.8%) 156 (4.6%) Gem.register_default_spec 100 (2.9%) 84 (2.5%) Gem::Specification#files 64 (1.9%) 64 (1.9%) Gem::BasicSpecification#internal_init 136 (4.0%) 59 (1.7%) <top (required)> 2312 (67.7%) 58 (1.7%) <top (required)> 57 (1.7%) 57 (1.7%) RbConfig.expand 81 (2.4%) 55 (1.6%) Gem::Requirement.parse 191 (5.6%) 51 (1.5%) <top (required)> 128 (3.7%) 47 (1.4%) Gem::Requirement#initialize 41 (1.2%) 41 (1.2%) Gem.suffix_regexp 229 (6.7%) 35 (1.0%) <module:Gem> 260 (7.6%) 34 (1.0%) Kernel#require ``` So clearly `Gem.already_loaded?` is a major hotspot. After this optimization, it's down to: ``` ================================== Mode: wall(10) Samples: 2653 (58.21% miss rate) GC: 718 (27.06%) ================================== TOTAL (pct) SAMPLES (pct) FRAME 416 (15.7%) 416 (15.7%) (marking) 715 (27.0%) 312 (11.8%) Gem::Specification.load 299 (11.3%) 299 (11.3%) (sweeping) 279 (10.5%) 279 (10.5%) Gem.already_loaded? 564 (21.3%) 106 (4.0%) Gem.register_default_spec 95 (3.6%) 80 (3.0%) Gem::Specification#files 72 (2.7%) 72 (2.7%) Gem::BasicSpecification#internal_init 129 (4.9%) 58 (2.2%) <top (required)> 53 (2.0%) 53 (2.0%) RbConfig.expand 1697 (64.0%) 52 (2.0%) <top (required)> 68 (2.6%) 49 (1.8%) Gem::Requirement.parse 183 (6.9%) 48 (1.8%) <top (required)> 112 (4.2%) 44 (1.7%) Gem::Requirement#initialize 220 (8.3%) 33 (1.2%) <module:Gem> 250 (9.4%) 32 (1.2%) Kernel#require ``` The idea is that the vast majority of the time `already_loaded?` won't match anything. So by first looking for candidate paths that `end_with?` the file we look for, we save `default_gem_load_paths.size` iterations and string concatenations. https://github.com/rubygems/rubygems/commit/c60ce88d49 Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-31Bump version to 3.2.0.rc.1Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-31[rubygems/rubygems] Simplify digest name selection and use SHA256Bart de Water
The previous commit introduces the Gem::Security.create_digest method, allowing to: - decouple algorithm choice from implementation (OpenSSL or Ruby built-in) - untangle the SHA512 fallback for TarWriter from the generic hashing digest choice (undoing commit 9471f8ed2bdc12248d2619bbbce6e53cd6c16cb6) https://github.com/rubygems/rubygems/commit/1bc03231e4 Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-31Stop using deprecated OpenSSL::Digest constantsBart de Water
Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-31[rubygems/rubygems] remove explicit require(s) for auto-loaded constant(s)Karol Bucek
the Gem module's auto-loads will handle loading these as needed, this started as a redundancy found in *rubygems.rb* which had: `autoload :Specification, 'rubygems/specification'` as well as `require 'rubygems/specification'` https://github.com/rubygems/rubygems/commit/43ceae7ac0 Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-31[rubygems/rubygems] Test files should not be included in spec.filesMarc-Andre Lafortune
https://github.com/rubygems/rubygems/commit/0c0760b734 Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-31Enforce no empty lines around class body in rubygemsDavid Rodríguez
To normalize the code style with `bundler`. Notes: Merged: https://github.com/ruby/ruby/pull/3379
2020-07-30Document Array#flatten{,!} accept explicit nil argument [ci skip]Jeremy Evans
Fixes [Bug #10475]
2020-07-30NODE_MATCH needs reference updatingAaron Patterson
2020-07-31* 2020-07-31 [ci skip]git
2020-07-31Added NUL-contained casesNobuyoshi Nakada
2020-07-30[ruby/racc] Return `nil` for all syntax errorsMarc-Andre Lafortune
https://github.com/ruby/racc/commit/51817ce0f6
2020-07-30Fix Array#flatten for recursive array when given positive depth [Bug #17092]Marc-Andre Lafortune
2020-07-30Promote io-nonblock to the default gems.Hiroshi SHIBATA
2020-07-30Promote io-wait to the default gemsHiroshi SHIBATA
2020-07-30Add explicitly require for Dir.mktmpdirHiroshi SHIBATA
2020-07-30Extract version number from the sourceNobuyoshi Nakada
"requiring version.rb" strategy has some issues. - cannot work when cross-compiling - often introduces wrong namespace - must know the superclasses - costs at each runtime than at build-time etc. Notes: Merged: https://github.com/ruby/ruby/pull/3375
2020-07-30[skip-ci] Clarification for dup vs clone docsEspartaco Palma
Both clone & dup returns a new object when executed on the documentation looks like they are returning the same object cloned or dup'ed which is true for method as extend, but not for the above mentioned. Notes: Merged: https://github.com/ruby/ruby/pull/3192
2020-07-30Apply timeout-scale to test_nogvl_poll.Jun Aruga
Notes: Merged: https://github.com/ruby/ruby/pull/3354
2020-07-29Enhanced RDoc for Array (#3372)Burdette Lamar
Notes: Merged-By: marcandre <github@marc-andre.ca>
2020-07-30Set cloned flag after checked if copiableNobuyoshi Nakada
2020-07-30* 2020-07-30 [ci skip]git
2020-07-29Fix arity of Hash#to_proc [Bug #12671]Benoit Daloze
Notes: Merged: https://github.com/ruby/ruby/pull/3370
2020-07-29rbinstall.rb: fix generated script name to set modeNobuyoshi Nakada
2020-07-29rbinstall.rb: fix dry-run modeNobuyoshi Nakada
2020-07-29transient_heap_status_cstr() is used only for debuggingNobuyoshi Nakada
2020-07-29Skip already extracted gemsNobuyoshi Nakada
2020-07-29display stderr output even if core dump filesKoichi Sasada
On btest, stderr messages are not displayed if core files are generated. There is no reason to skip it, so this patch display stderr and check core files.
2020-07-29add debug output.Koichi Sasada
2020-07-28Fix Time#ceil when result should be the same as the receiverJeremy Evans
Fixes [Bug #17025] Notes: Merged: https://github.com/ruby/ruby/pull/3362
2020-07-29* 2020-07-29 [ci skip]git
2020-07-28Enhanced RDoc for Array [ci skip]BurdetteLamar
2020-07-28Use https instead of httpKazuhiro NISHIYAMA
2020-07-28Do not assume all compilers accept same flags as gccNobuyoshi Nakada
2020-07-28[ruby/net-ftp] Moved Net::Ftp::Version to Net::FTPNobuyoshi Nakada
On case-insensitive filesystem, generated Net/FTP.html is overwritten by Net/Ftp.html. https://github.com/ruby/net-ftp/commit/14a6ff5134
2020-07-28vm_backtrace.c: let rb_profile_frames show cfunc framesYusuke Endoh
... in addition to normal iseq frames. It is sometimes useful to point the bottleneck more precisely. Notes: Merged: https://github.com/ruby/ruby/pull/3299
2020-07-28Remove unnecessary word from commentSergio
Notes: Merged: https://github.com/ruby/ruby/pull/3070
2020-07-28[DOC] Clarify ObjectSpace return values are in bytes [ci skip]Simon Perepelitsa
Notes: Merged: https://github.com/ruby/ruby/pull/3308
2020-07-28Remove `EnvUtil.rubyexec`, because it is not used anywhere.Vít Ondruch
Notes: Merged: https://github.com/ruby/ruby/pull/3351
2020-07-27Update to ruby/spec@07164daBenoit Daloze
2020-07-27Update to ruby/mspec@9cffee9Benoit Daloze
2020-07-27Use a linked list to eliminate imemo tmp bufs for managing local tablesAaron Patterson
This patch changes local table memory to be managed by a linked list rather than via the garbage collector. It reduces allocations from the GC and also fixes a use-after-free bug in the concurrent-with-sweep compactor I'm working on. Notes: Merged: https://github.com/ruby/ruby/pull/3360
2020-07-28* 2020-07-28 [ci skip]git
2020-07-27Prevent SystemStackError when calling super in module with activated refinementJeremy Evans
Without this, if a refinement defines a method that calls super and includes a module with a module that calls super and has a activated refinement at the point super is called, the module method super call will end up calling back into the refinement method, creating a loop. Fixes [Bug #17007] Notes: Merged: https://github.com/ruby/ruby/pull/3309