aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [rubygems/rubygems] Remove unnecessary checkDavid Rodríguez2020-07-311-6/+4
| | | | | | | No check is done for the other expectation and they are completely symmetric as far as I can see. https://github.com/rubygems/rubygems/commit/4de89e0718
* [rubygems/rubygems] Move openssl require to a separate fileDavid Rodríguez2020-07-312-6/+8
| | | | | | So it can be reused. https://github.com/rubygems/rubygems/commit/b9fc6e40db
* [rubygems/rubygems] In the rubies we support `Exception#path` is always thereDavid Rodríguez2020-07-311-2/+1
| | | | https://github.com/rubygems/rubygems/commit/babf943144
* [rubygems/rubygems] https functionality was merged into `net/https`David Rodríguez2020-07-312-6/+1
| | | | https://github.com/rubygems/rubygems/commit/d81ce9e457
* [rubygems/rubygems] Only require what we are usingDavid Rodríguez2020-07-311-1/+1
| | | | https://github.com/rubygems/rubygems/commit/d92b94f3cf
* [rubygems/rubygems] Let the original error happenDavid Rodríguez2020-07-311-6/+0
| | | | | | It will give more useful information. https://github.com/rubygems/rubygems/commit/efcecb5af5
* [rubygems/rubygems] Remove unnecessary stuffDavid Rodríguez2020-07-311-6/+0
| | | | | | The `rubygems/security` require already does this. https://github.com/rubygems/rubygems/commit/bbb444b6f1
* [rubygems/rubygems] Run `test/rubygems/test_bundled_ca.rb` locallyDavid Rodríguez2020-07-311-36/+34
| | | | | | It's not that slow. https://github.com/rubygems/rubygems/commit/9b928a4503
* [rubygems/rubygems] Remove unused TEST_SSL environment variableDavid Rodríguez2020-07-311-1/+1
| | | | https://github.com/rubygems/rubygems/commit/1e2c3cf118
* [rubygems/rubygems] Fix encoding mismatch errors on MinGWNobuyoshi Nakada2020-07-311-2/+2
| | | | | | | | | | | GNU make in MSys is localized to use UTF-8 while Ruby's filesystem encoding is set to OEM CodePage (e.g., CP932 in Japanese Edition), the read output from the make has broken encoding and results in "invalid byte sequence" errors. As `DESTDIR` is set to a US-ASCII 7bit clean string, matching as binary encoding should have no problems. https://github.com/rubygems/rubygems/commit/96a5e7523b
* [rubygems/rubygems] Reword warningbronzdoc2020-07-312-2/+2
| | | | https://github.com/rubygems/rubygems/commit/cbd4abf8cf
* [rubygems/rubygems] Warn on duplicate dependency in a specificationbronzdoc2020-07-312-0/+11
| | | | https://github.com/rubygems/rubygems/commit/af3e5f7883
* [rubygems/rubygems] Support PATH's using `File::ALT_SEPARATOR` in ↵David Rodríguez2020-07-312-0/+12
| | | | | | | | `Gem::Installer` Co-authored-by: MSP-Greg <MSP-Greg@users.noreply.github.com> https://github.com/rubygems/rubygems/commit/710b969b60
* [rubygems/rubygems] Move traling `if` to the same line for readablityDavid Rodríguez2020-07-311-2/+1
| | | | https://github.com/rubygems/rubygems/commit/d722b8b578
* [rubygems/rubygems] Prefer the standard separator on WindowsDavid Rodríguez2020-07-312-3/+3
| | | | | | | | | It seems like the most common case since it requires no tricks on our CI environment. Co-authored-by: MSP-Greg <MSP-Greg@users.noreply.github.com> https://github.com/rubygems/rubygems/commit/751c475574
* [rubygems/rubygems] fix missing identationColby Swandale2020-07-311-1/+1
| | | | https://github.com/rubygems/rubygems/commit/2cca6714f3
* [rubygems/rubygems] Deduplicate the requirement operators in memoryJean Boussier2020-07-312-1/+7
| | | | https://github.com/rubygems/rubygems/commit/9963d33cf2
* [rubygems/rubygems] Fix Kernel#warn override to handle backtrace location ↵Jeremy Evans2020-07-311-4/+5
| | | | | | | | | | | with nil path It's very unlikely to hit this case, but it is possible, as Thread::Backtrace::Location#path can return nil if the location is a cfunc with no previous iseq. See location_path in vm_backtrace.c in Ruby. https://github.com/rubygems/rubygems/commit/511935645a
* [rubygems/rubygems] Ignore internal frames in RubyGems' Kernel#warnBenoit Daloze2020-07-311-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | * See https://github.com/oracle/truffleruby/issues/2046 * `<internal:` is a common prefix also used by core Ruby files in CRuby. * test_no_kernel_require_in_*warn_with_uplevel already test this. * Unfortunately just skipping `<internal:` in the Ruby implementation is not enough, because RubyGems' #warn would not skip the `<internal:` require (TruffleRuby defines #require in Ruby), and the Ruby implementation's #warn would not skip RubyGems's #require. The #caller_locations(0) look like this: warnee.rb:1:in `<top (required)>' # where #warn is called <internal:core> core/kernel.rb:234:in `gem_original_require' # not skipped by RubyGems' warn, skipped by the Ruby impl rubygems/core_ext/kernel_require.rb:54:in `require' # not skipped by the Ruby impl's warn, what would be shown without this fix warn.rb:1:in `<main>' # what would be correct warn.rb is require "warnee" warnee.rb is puts caller_locations(0), nil warn "oops", uplevel: 1 https://github.com/rubygems/rubygems/commit/7c838f7419
* [rubygems/rubygems] Disallow warnings to creep into the test suiteDavid Rodríguez2020-07-311-0/+14
| | | | https://github.com/rubygems/rubygems/commit/694e6afee7
* [rubygems/rubygems] Fix test warningDavid Rodríguez2020-07-311-1/+1
| | | | https://github.com/rubygems/rubygems/commit/f4c4cddb68
* [rubygems/rubygems] Don't `super` on main test setupDavid Rodríguez2020-07-311-2/+0
| | | | | | | The `teardown` method doesn't call it either and I don't think it's necessary. https://github.com/rubygems/rubygems/commit/ca2a5d485d
* [rubygems/rubygems] Remove very old compatibility codeDavid Rodríguez2020-07-311-3/+0
| | | | https://github.com/rubygems/rubygems/commit/6e4bef758b
* [rubygems/rubygems] Extract some common code into a private methodDavid Rodríguez2020-07-311-6/+7
| | | | https://github.com/rubygems/rubygems/commit/d1be8cdb3a
* [rubygems/rubygems] Remove very old TODO noteDavid Rodríguez2020-07-311-1/+0
| | | | | | | | | | | | | | | | 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
* [rubygems/rubygems] Optimize Gem.already_loaded?Jean Boussier2020-07-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Bump version to 3.2.0.rc.1Hiroshi SHIBATA2020-07-311-1/+1
|
* [rubygems/rubygems] Simplify digest name selection and use SHA256Bart de Water2020-07-312-11/+2
| | | | | | | | 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
* Stop using deprecated OpenSSL::Digest constantsBart de Water2020-07-3110-43/+40
|
* [rubygems/rubygems] remove explicit require(s) for auto-loaded constant(s)Karol Bucek2020-07-317-13/+0
| | | | | | | | | | 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
* [rubygems/rubygems] Test files should not be included in spec.filesMarc-Andre Lafortune2020-07-311-3/+2
| | | | https://github.com/rubygems/rubygems/commit/0c0760b734
* Enforce no empty lines around class body in rubygemsDavid Rodríguez2020-07-31274-672/+1
| | | | To normalize the code style with `bundler`.
* Document Array#flatten{,!} accept explicit nil argument [ci skip]Jeremy Evans2020-07-301-4/+4
| | | | Fixes [Bug #10475]
* NODE_MATCH needs reference updatingAaron Patterson2020-07-301-0/+1
|
* * 2020-07-31 [ci skip]git2020-07-311-1/+1
|
* Added NUL-contained casesNobuyoshi Nakada2020-07-311-0/+17
|
* [ruby/racc] Return `nil` for all syntax errorsMarc-Andre Lafortune2020-07-301-1/+1
| | | | https://github.com/ruby/racc/commit/51817ce0f6
* Fix Array#flatten for recursive array when given positive depth [Bug #17092]Marc-Andre Lafortune2020-07-302-21/+37
|
* Promote io-nonblock to the default gems.Hiroshi SHIBATA2020-07-304-5/+33
|
* Promote io-wait to the default gemsHiroshi SHIBATA2020-07-304-2/+33
|
* Add explicitly require for Dir.mktmpdirHiroshi SHIBATA2020-07-301-0/+1
|
* Extract version number from the sourceNobuyoshi Nakada2020-07-3053-186/+190
| | | | | | | | | | | "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.
* [skip-ci] Clarification for dup vs clone docsEspartaco Palma2020-07-301-3/+3
| | | | | | | 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.
* Apply timeout-scale to test_nogvl_poll.Jun Aruga2020-07-301-1/+2
|
* Enhanced RDoc for Array (#3372)Burdette Lamar2020-07-291-80/+142
|
* Set cloned flag after checked if copiableNobuyoshi Nakada2020-07-301-4/+5
|
* * 2020-07-30 [ci skip]git2020-07-301-1/+1
|
* Fix arity of Hash#to_proc [Bug #12671]Benoit Daloze2020-07-292-1/+5
|
* rbinstall.rb: fix generated script name to set modeNobuyoshi Nakada2020-07-291-5/+3
|
* rbinstall.rb: fix dry-run modeNobuyoshi Nakada2020-07-291-20/+52
|