summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-31Use 1 byte hint for ar_table [Feature #15602]Koichi Sasada
On ar_table, Do not keep a full-length hash value (FLHV, 8 bytes) but keep a 1 byte hint from a FLHV (lowest byte of FLHV). An ar_table only contains at least 8 entries, so hints consumes 8 bytes at most. We can store hints in RHash::ar_hint. On 32bit CPU, we use 4 entries ar_table. The advantages: * We don't need to keep FLHV so ar_table only consumes 16 bytes (VALUEs of key and value) * 8 entries = 128 bytes. * We don't need to scan ar_table, but only need to check hints in many cases. Especially we don't need to access ar_table if there is no match entries (in many cases). It will increase memory cache locality. The disadvantages: * This technique can increase `#eql?` time because hints can conflicts (in theory, it conflicts once in 256 times). It can introduce incompatibility if there is a object x where x.eql? returns true even if hash values are different. I believe we don't need to care such irregular case. * We need to re-calculate FLHV if we need to switch from ar_table to st_table (e.g. exceeds 8 entries). It also can introduce incompatibility, on mutating key objects. I believe we don't need to care such irregular case too. Add new debug counters to measure the performance: * artable_hint_hit - hint is matched and eql?#=>true * artable_hint_miss - hint is not matched but eql?#=>false * artable_hint_notfound - lookup counts
2019-07-31remove RHash::iter_lev.Koichi Sasada
iter_lev is used to detect the hash is iterating or not. Usually, iter_lev should be very small number (1 or 2) so `int` is overkill. This patch introduce iter_lev in flags (7 bits, FL13 to FL19) and if iter_lev exceeds this range, save it in hidden attribute. We can get 1 word in RHash. We can't modify frozen objects. Therefore I added new internal API `rb_ivar_set_internal()` which allows us to set an attribute even if the target object is frozen if the name is hidden ivar (the name without `@` prefix).
2019-07-31File.exists? is deprecated.Hiroshi SHIBATA
2019-07-31Uninstall ntlm-http and plist for failure of osx test.Hiroshi SHIBATA
It contains too old configuration that is autorequire. It will be removed at the RubyGems 3.1.0.
2019-07-31[rubygems/rubygems] Partly reverted be962ca0c411f3b4bcfebfb6e714c78cbad12775Hiroshi SHIBATA
* `Gem::ConfigMap` is still used by Bundler. * `Gem::RubyGemsVersion` is also still referred by the old gems. https://github.com/rubygems/rubygems/commit/249c3ff44f
2019-07-31[rubygems/rubygems] Skip integration test for rake package task.Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/ca8afc01a3
2019-07-31[rubygems/rubygems] Initialize '@ran_rake' correctly, so we don't have to ↵bronzdoc
set it up later and cause confusion https://github.com/rubygems/rubygems/commit/6ec3ba983c
2019-07-31[rubygems/rubygems] Remove extension 'double pipe equals' assigment since is ↵bronzdoc
not needed anymore https://github.com/rubygems/rubygems/commit/930de86a24
2019-07-31[rubygems/rubygems] Move 'build_for' to handle extension type before the ↵bronzdoc
extension is used https://github.com/rubygems/rubygems/commit/2a32c5ef0a
2019-07-31[rubygems/rubygems] Do not pass +build_dir+ argument to build_errorbronzdoc
https://github.com/rubygems/rubygems/commit/107fea3432
2019-07-31[rubygems/rubygems] Remove useless param +build_dir+bronzdoc
https://github.com/rubygems/rubygems/commit/0402974149
2019-07-31[rubygems/rubygems] Drop support for 'gem env packageversion'bronzdoc
https://github.com/rubygems/rubygems/commit/be962ca0c4
2019-07-31[rubygems/rubygems] Improve `rake package` test error messageDavid Rodríguez
https://github.com/rubygems/rubygems/commit/be962ca0c4
2019-07-31[rubygems/rubygems] Get `rake package` testedDavid Rodríguez
https://github.com/rubygems/rubygems/commit/006cdd4084
2019-07-31[rubygems/rubygems] Generate a licenses.rb file with correct styleDavid Rodríguez
https://github.com/rubygems/rubygems/commit/469fceeb2f
2019-07-31[rubygems/rubygems] Enable `Layout/AlignArray` copDavid Rodríguez
https://github.com/rubygems/rubygems/commit/1ea674d8f7
2019-07-31[rubygems/rubygems] Enable `Layout/EmptyLinesAroundAccessModifier`David Rodríguez
https://github.com/rubygems/rubygems/commit/41b1cebc33
2019-07-31[rubygems/rubygems] Remove warning: shadowing outer local variable - specbronzdoc
https://github.com/rubygems/rubygems/commit/70c5c17a5f
2019-07-31[rubygems/rubygems] Make error code a constant and remove TODO commentbronzdoc
https://github.com/rubygems/rubygems/commit/3d6c7c92e4
2019-07-31[rubygems/rubygems] Move default specifications dir definition out of ↵Vít Ondruch
BasicSpecification. This was never the right place. The method got there just by evolution, not by design. Move it within default methods, where it suits better. Since this method is presumably used just internally, it should be safe to deprecate it and remove later. https://github.com/rubygems/rubygems/commit/0c0dd9458a
2019-07-31[rubygems/rubygems] There is no usage of @orig_env_* variables in test suite.Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/2adef51dc9
2019-07-31[rubygems/rubygems] Ignore GEMRC variable for test suite. It affects with ↵Hiroshi SHIBATA
some test case. https://github.com/rubygems/rubygems/commit/4a0ca2583a
2019-07-31[rubygems/rubygems] Use File#open instead of Kernel#openbronzdoc
https://github.com/rubygems/rubygems/commit/bfb3f67494
2019-07-31[rubygems/rubygems] Deprecate Gem::RemoteFetcher#fetch_sizebronzdoc
https://github.com/rubygems/rubygems/commit/c2049c3276
2019-07-31[rubygems/rubygems] Autorequire was used by old RubyGems, it is neither ↵bronzdoc
supported nor functional. https://github.com/rubygems/rubygems/commit/cadb66037d
2019-07-31[rubygems/rubygems] Simplify #to_ruby codeNobuyoshi Nakada
Separate #add_runtime_dependency and #add_development_dependency availability condition from #specification_version availability, which is not related to directly. Also check if the former method is available, instead of comparing the version. https://github.com/rubygems/rubygems/commit/5cccc2b836
2019-07-31[rubygems/rubygems] Missing dependencyAlexander Pakulov
https://github.com/rubygems/rubygems/commit/79b62c233a
2019-07-31[rubygems/rubygems] Making Gem::S3URISigner.sign method smaller with helper ↵Alexander Pakulov
methods https://github.com/rubygems/rubygems/commit/2a96494d91
2019-07-31[rubygems/rubygems] Use default value for expiration in the method signatureAlexander Pakulov
https://github.com/rubygems/rubygems/commit/1372e50c17
2019-07-31[rubygems/rubygems] Moving rubygems/request dependencies into ec2_metadataAlexander Pakulov
https://github.com/rubygems/rubygems/commit/6a1856517f
2019-07-31[rubygems/rubygems] Extracting sign_s3_url & s3_source_auth into a separate ↵Alexander Pakulov
S3URISigner class https://github.com/rubygems/rubygems/commit/c30d21ec7a
2019-07-31[rubygems/rubygems] Move TODO comment to an information commentbronzdoc
https://github.com/rubygems/rubygems/commit/853ecdd417
2019-07-31[rubygems/rubygems] Remove unused 'raise' from test_casebronzdoc
https://github.com/rubygems/rubygems/commit/2481efcb37
2019-07-31[rubygems/rubygems] Remove TODO comment, there's no Gem::Dirs constantbronzdoc
https://github.com/rubygems/rubygems/commit/4bacf577f1
2019-07-31[rubygems/rubygems] Remove useless TODO commentbronzdoc
https://github.com/rubygems/rubygems/commit/44bc809dc8
2019-07-31[rubygems/rubygems] Addressing PR commentsAlexander Pakulov
https://github.com/rubygems/rubygems/commit/fb62d3043c
2019-07-31[rubygems/rubygems] check_version_conflict don't have a 'dep' variable ↵bronzdoc
available for use https://github.com/rubygems/rubygems/commit/1783cf0fd3
2019-07-31[rubygems/rubygems] Remove missleading comment, no reason to move Gem.host ↵bronzdoc
to Gem::Util https://github.com/rubygems/rubygems/commit/e12c98aa72
2019-07-31[rubygems/rubygems] Remove useless comment in exceptions.rbbronzdoc
https://github.com/rubygems/rubygems/commit/d7ad696fa2
2019-07-31[rubygems/rubygems] Rename Gem::Package.metadata to Gem::Package.raw_specbronzdoc
https://github.com/rubygems/rubygems/commit/a76f25dff0
2019-07-31[rubygems/rubygems] Upgrading S3 source signature to AWS SigV4Alexander Pakulov
https://github.com/rubygems/rubygems/commit/f289788ca5
2019-07-31[rubygems/rubygems] Move metadata method to Gem::Packagebronzdoc
https://github.com/rubygems/rubygems/commit/2c9cfcb666
2019-07-31[rubygems/rubygems] Add a package attr_reader to Gem::Installer.Daniel Berger
Add some basic specs for the package attr_reader. https://github.com/rubygems/rubygems/commit/68af2a0ee3
2019-07-31[rubygems/rubygems] Remove missleading TODO comment. Can't use ↵bronzdoc
@parser.accept since not every class where this is used has a parser available. i.e lib/rubygems/install_update_options.rb https://github.com/rubygems/rubygems/commit/519fd4dcc0
2019-07-31[rubygems/rubygems] Move gemcutter utilities code to Gem::Commandbronzdoc
https://github.com/rubygems/rubygems/commit/f296645033
2019-07-31[rubygems/rubygems] Remove conflict.rb code that was supposed to be removed ↵bronzdoc
in Rubygems 3 https://github.com/rubygems/rubygems/commit/6d5f743a89
2019-07-31[rubygems/rubygems] Remove unnecessary &&= operatorbronzdoc
https://github.com/rubygems/rubygems/commit/a10b5265d7
2019-07-31[rubygems/rubygems] Remove unnecessary TODO commentbronzdoc
https://github.com/rubygems/rubygems/commit/ad7e379f79
2019-07-31[rubygems/rubygems] Explicitly deprecate `rubyforge_project`David Rodríguez
https://github.com/rubygems/rubygems/commit/9094740109
2019-07-31[rubygems/rubygems] Silence deprecations when gemdeps is used in testsDavid Rodríguez
Because we can't control 3rd party gems using deprecated rubygems behavior, and thus outputting warnings to the screen. https://github.com/rubygems/rubygems/commit/6912ebf20a