summaryrefslogtreecommitdiff
path: root/spec/ruby/core/hash
AgeCommit message (Collapse)Author
2025-11-19Update to ruby/spec@2e11d2aCharles Oliver Nutter
2025-05-09Update to ruby/spec@d8bacefAndrew Konchin
Notes: Merged: https://github.com/ruby/ruby/pull/13265
2025-03-27Update to ruby/spec@5e579e2Andrew Konchin
Notes: Merged: https://github.com/ruby/ruby/pull/12984
2024-11-06Update to ruby/spec@54c391eBenoit Daloze
2024-10-03Update spec/ruby/ for colon-style hash inspecttompng
Notes: Merged: https://github.com/ruby/ruby/pull/10924
2024-07-08Implement Hash.new(capacity:)Jean Boussier
[Feature #19236] When building a large hash, pre-allocating it with enough capacity can save many re-hashes and significantly improve performance. ``` /opt/rubies/3.3.0/bin/ruby --disable=gems -rrubygems -I./benchmark/lib ./benchmark/benchmark-driver/exe/benchmark-driver \ --executables="compare-ruby::../miniruby-master -I.ext/common --disable-gem" \ --executables="built-ruby::./miniruby --disable-gem" \ --output=markdown --output-compare -v $(find ./benchmark -maxdepth 1 -name 'hash_new' -o -name '*hash_new*.yml' -o -name '*hash_new*.rb' | sort) compare-ruby: ruby 3.4.0dev (2024-03-25T11:48:11Z master f53209f023) +YJIT dev [arm64-darwin23] last_commit=[ruby/irb] Cache RDoc::RI::Driver.new (https://github.com/ruby/irb/pull/911) built-ruby: ruby 3.4.0dev (2024-03-25T15:29:40Z hash-new-rb 77652b08a2) +YJIT dev [arm64-darwin23] warming up... | |compare-ruby|built-ruby| |:-------------------|-----------:|---------:| |new | 7.614M| 5.976M| | | 1.27x| -| |new_with_capa_1k | 13.931k| 15.698k| | | -| 1.13x| |new_with_capa_100k | 124.746| 148.283| | | -| 1.19x| ```
2024-07-02Update to ruby/spec@f8987acAndrew Konchin
2024-04-02Update to ruby/spec@573cf97Andrew Konchin
2024-03-14Update to ruby/spec@89175b2Benoit Daloze
2024-02-05Update to ruby/spec@3fc4444Benoit Daloze
2023-12-25Typofix under bootstraptest, spec and yjit directoriesHiroshi SHIBATA
2023-06-26Update to ruby/spec@30e1c35Benoit Daloze
2023-05-23Hash.new: print a deprecation warning when receiving keyword arguments (#7828)Jean byroot Boussier
[Feature #19236] In Ruby 3.3, `Hash.new` shall print a deprecation warning if keyword arguments are passed instead of treating them as an implicit positional Hash. This will allow to safely introduce a `capacity` keyword argument in 3.4 Co-authored-by: Jean Boussier <byroot@ruby-lang.org> Notes: Merged-By: byroot <byroot@ruby-lang.org>
2023-04-25Update to ruby/spec@7f69c86Benoit Daloze
2023-03-24Change Hash#compact to keep default values and compare_by_identity flagJeremy Evans
The documentation states it returns a copy of self with nil value entries removed. However, the previous behavior was creating a plain new hash with non-nil values copied into it. This change aligns the behavior with the documentation. Fixes [Bug #19113] Notes: Merged: https://github.com/ruby/ruby/pull/6702
2023-03-24Copy compare_by_identity flag for empty hashes in Hash.ruby2_keywords_hashJeremy Evans
This was already copied for non-empty hashes. As Hash.ruby2_keywords_hash copies default values, it should also copy the compare_by_identity flag. Partially Fixes [Bug #19113] Notes: Merged: https://github.com/ruby/ruby/pull/6702
2023-03-24Do not copy compare_by_identity flag for non-empty hashes in Hash.[]Jeremy Evans
It wasn't copied for empty hashes, and Hash.[] doesn't copy the default value, so copying the compare_by_identity flag does not make sense. Partially Fixes [Bug #19113] Notes: Merged: https://github.com/ruby/ruby/pull/6702
2022-11-07Update to ruby/spec@740ccc8Benoit Daloze
2022-04-25Update to ruby/spec@3affe1eBenoit Daloze
2022-03-28Update to ruby/spec@aaf998fBenoit Daloze
2022-01-28Update to ruby/spec@902ab83Benoit Daloze
2022-01-14Make Hash#shift return nil for empty hashJeremy Evans
Fixes [Bug #16908] Notes: Merged: https://github.com/ruby/ruby/pull/5360
2022-01-10Update to ruby/spec@226cfdcBenoit Daloze
2021-10-20Update to ruby/spec@d6921efBenoit Daloze
2021-07-29Update to ruby/spec@b65d01fBenoit Daloze
2021-06-02Update to ruby/spec@a0b7d0dBenoit Daloze
2021-04-16spec/ruby/core/hash/transform_keys_spec.rb: Fix the failure of ruby_3_0Yusuke Endoh
https://github.com/ruby/spec/pull/833 https://github.com/ruby/spec/commit/8290e5ad8952b14ee9a5069651d9864c66681112
2021-03-28Keep non evaluated keys in `Hash#transform_keys!` [Bug #17735]Kenichi Kamiya
Notes: Merged: https://github.com/ruby/ruby/pull/4294 Merged-By: nobu <nobu@ruby-lang.org>
2021-01-19Replace "iff" with "if and only if"Gannon McGibbon
iff means if and only if, but readers without that knowledge might assume this to be a spelling mistake. To me, this seems like exclusionary language that is unnecessary. Simply using "if and only if" instead should suffice. Notes: Merged: https://github.com/ruby/ruby/pull/4035
2020-12-27Update to ruby/spec@4ce9f41Benoit Daloze
2020-12-21Use Integer instead of Fixnum/BignumNobuyoshi Nakada
2020-12-19Make `Hash#except` always return a HashMarc-Andre Lafortune
[Feature #15822] Notes: Merged: https://github.com/ruby/ruby/pull/3929
2020-12-07Update the version guard to 3.0Nobuyoshi Nakada
2020-12-07Hash#index: delete卜部昌平
Has been deprecated since 0c97c8e33584e6203bb09c08f92b63bd2cca8ae7.
2020-11-27Update to ruby/spec@ac878adBenoit Daloze
2020-10-24Update to ruby/spec@4f59d86Benoit Daloze
2020-09-28Clarify spec description for Hash#{each,each_pair}Benoit Daloze
2020-09-17Update to ruby/spec@e829fb0Benoit Daloze
2020-09-152.8 -> 3.0 in specsBenoit Daloze
2020-07-29Fix arity of Hash#to_proc [Bug #12671]Benoit Daloze
Notes: Merged: https://github.com/ruby/ruby/pull/3370
2020-05-03Update to ruby/spec@032ee74Benoit Daloze
2020-04-01Drop support for ruby 2.4 from ruby/specNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/2892
2020-04-01Use FrozenError instead of frozen_error_classNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/2892
2020-03-16`Proc` made by `Hash#to_proc` should be a lambda [Bug #12671]Yusuke Endoh
Like `Symbol#to_proc` (f0b815dc670b61eba1daaa67a8613ac431d32b16)
2020-03-16hash.c: Do not use the fast path (rb_yield_values) for lambda blocksYusuke Endoh
As a semantics, Hash#each yields a 2-element array (pairs of keys and values). So, `{ a: 1 }.each(&->(k, v) { })` should raise an exception due to lambda's arity check. However, the optimization that avoids Array allocation by using rb_yield_values for blocks whose arity is more than 1 (introduced at b9d29603375d17c3d1d609d9662f50beaec61fa1 and some commits), seemed to overlook the lambda case, and wrongly allowed the code above to work. This change experimentally attempts to make it strict; now the code above raises an ArgumentError. This is an incompatible change; if the compatibility issue is bigger than our expectation, it may be reverted (until Ruby 3.0 release). [Bug #12706]
2020-01-28Update to ruby/spec@f8a2d54Benoit Daloze
2019-11-18Deprecate taint/trust and related methods, and make the methods no-opsJeremy Evans
This removes the related tests, and puts the related specs behind version guards. This affects all code in lib, including some libraries that may want to support older versions of Ruby. Notes: Merged: https://github.com/ruby/ruby/pull/2476
2019-09-29Update to ruby/spec@519df35Benoit Daloze
2019-07-31Split in two spec examplesBenoit Daloze
2019-07-31Attempt to fix Hash#rehash specBenoit Daloze