summaryrefslogtreecommitdiff
path: root/array.c
AgeCommit message (Collapse)Author
2020-12-21Document usage of ArithmeticSequence in Array#slice, and add to NEWS (#3952)Victor Shepelev
Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-12-18Use category: :deprecated in warnings that are related to deprecationJeremy Evans
Also document that both :deprecated and :experimental are supported :category option values. The locations where warnings were marked as deprecation warnings was previously reviewed by shyouhei. Comment a couple locations where deprecation warnings should probably be used but are not currently used because deprecation warning enablement has not occurred at the time they are called (RUBY_FREE_MIN, RUBY_HEAP_MIN_SLOTS, -K). Add assert_deprecated_warn to test assertions. Use this to simplify some tests, and fix failing tests after marking some warnings with deprecated category. Notes: Merged: https://github.com/ruby/ruby/pull/3917
2020-12-07tuning trial: newobj with current ecKoichi Sasada
Passing current ec can improve performance of newobj. This patch tries it for Array and String literals ([] and ''). Notes: Merged: https://github.com/ruby/ruby/pull/3842
2020-12-01should not use rb_ary_modify()Koichi Sasada
ractor_copy() used rb_ary_modify() to make sure this array is not sharing anything, but it also checks frozen flag. So frozen arrays raises an error. To solve this issue, this patch introduces new function rb_ary_cancel_sharing() which makes sure the array does not share another array and it doesn't check frozen flag. [Bug #17343] A test is quoted from https://github.com/ruby/ruby/pull/3817 Notes: Merged: https://github.com/ruby/ruby/pull/3831
2020-11-10Removed canonicalization for mathnNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3691
2020-11-10Fix linksS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/3738
2020-11-03Make Array methods return Array instances instead of subclass instancesJeremy Evans
This changes the following methods to return Array instances instead of subclass instances: * Array#drop * Array#drop_while * Array#flatten * Array#slice! * Array#slice/#[] * Array#take * Array#take_while * Array#uniq * Array#* Fixes [Bug #6087] Notes: Merged: https://github.com/ruby/ruby/pull/3690 Merged-By: jeremyevans <code@jeremyevans.net>
2020-10-21Don't redefine #rb_intern over and over againStefan Stüben
Notes: Merged: https://github.com/ruby/ruby/pull/3589
2020-10-21Feature #16812: Allow slicing arrays with ArithmeticSequence (#3241)Kenta Murata
* Support ArithmeticSequence in Array#slice * Extract rb_range_component_beg_len * Use rb_range_values to check Range object * Fix ary_make_partial_step * Fix for negative step cases * range.c: Describe the role of err argument in rb_range_component_beg_len * Raise a RangeError when an arithmetic sequence refers the outside of an array [Feature #16812] Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-09-02Comply with guide for method doc: array.c (#3506)Burdette Lamar
Methods: any? all? one? none? sum shuffle! shuffle sample Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-09-01Comply with guide for method doc: array.c (#3499)Burdette Lamar
Methods considered: count flatten! flatten cycle permutation combination repeated_permutation repeated_combination product take take_while drop drop_while Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-31Comply with guide for method doc: array.c (#3489)Burdette Lamar
Methods considered: & intersection | union max min minmax uniq! uniq compact! compact Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-31Comply with guide for method doc: array.c (#3484)Burdette Lamar
Methods: + concat * assoc rassoc == eql? hash include? <=> - difference Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-31Comply with guide for method doc: array.c (#3477)Burdette Lamar
Methods considered: delete_at slice! reject! reject delete_if zip transpose replace clear fill Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-30Comply with guide for method doc: array.c (#3475)Burdette Lamar
Methods considered: bsearch bsearch_index sort_by! collect collect! values_at select select! keep_if delete Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-29Comply with guide for method doc: array.c (#3474)Burdette Lamar
Methods considered: length empty? join inspect to_a to_h to_ary reverse! reverse rotate! rotate sort! sort Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-29Comply with guide for method doc: array.c (#3473)Burdette Lamar
Methods considered: at first last fetch index rindex [] insert each each_index reverse_each Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-28Comply with guide for method doc: array.c (#3469)Burdette Lamar
Methods: - freeze - try_convert - new - \<< - push - pop - shift - unshift - [] Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-23Remove checks for self returned in array.c and hash.c examples (#3446)Burdette Lamar
Further compliance with https://github.com/ruby/ruby/blob/master/doc/method_documentation.rdoc#details-and-examples- Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-21Remove trivial examples from array.c (#3442)Burdette Lamar
"Trivial" typically means "returns a new empty Array." Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-20Remove nil-return examples from array.c (#3437)Burdette Lamar
Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-19Partial compliance with doc/method_documentation.rdoc (#3431)Burdette Lamar
Removes references to *-convertible thingies. Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-15RARRAY_AREF: convert into an inline function卜部昌平
RARRAY_AREF has been a macro for reasons. We might not be able to change that for public APIs, but why not relax the situation internally to make it an inline function. Notes: Merged: https://github.com/ruby/ruby/pull/3419
2020-08-14Fix links to Dig Methods document (#3421)Burdette Lamar
* Fix links to Dig Methods document * Fix links to Dig Methods document Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-13Adding doc/dig_methods.rdoc and links to it (#3416)Burdette Lamar
Adds a full discussion of #dig, along with links from Array, Hash, Struct, and OpenStruct. CSV::Table and CSV::Row are over in ruby/csv. I'll get to them soon. The art to the thing is to figure out how much (or how little) to say at each #dig. Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-13MAYBE_UNUSED should just suffice卜部昌平
This reverts commit c355fa72d4e356378a8b03a67432b52bafcc308b. Notes: Merged: https://github.com/ruby/ruby/pull/3411
2020-08-10Enhanced RDoc for Array (#3400)Burdette Lamar
Methods: drop drop_while any? all? none? one? Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-10Removed non-ASCII code to suppress warnings by localized compilersNobuyoshi Nakada
2020-08-10Suppress unused-function warningsNobuyoshi Nakada
Calls with a constant argument should be optimized away.
2020-08-07Enhanced RDoc for Array#take and Array#take_while (#3398)Burdette Lamar
Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-07Enhanced RDoc for Array#product (#3395)Burdette Lamar
Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-05Enhanced documentation for Array#repeated_combination (#3392)Burdette Lamar
* Enhanced documentation for Array#repeated_combination * Enhanced documentation for Array#repeated_combination Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-05Enhanced documentation for Array#repeated_permutation (#3390)Burdette Lamar
* Enhanced documentation for Array#repeated_permutation * Enhanced documentation for Array#repeated_permutation Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-01Initialize memo pointer and use it consistently to silence gcc 7+Nobuyoshi Nakada
2020-07-31Enhanced RDoc for ArrayBurdette Lamar
Notes: Merged: https://github.com/ruby/ruby/pull/3381 Merged-By: jeremyevans <code@jeremyevans.net>
2020-07-30Document Array#flatten{,!} accept explicit nil argument [ci skip]Jeremy Evans
Fixes [Bug #10475]
2020-07-30Fix Array#flatten for recursive array when given positive depth [Bug #17092]Marc-Andre Lafortune
2020-07-29Enhanced RDoc for Array (#3372)Burdette Lamar
Notes: Merged-By: marcandre <github@marc-andre.ca>
2020-07-28Enhanced RDoc for Array [ci skip]BurdetteLamar
2020-07-28Use https instead of httpKazuhiro NISHIYAMA
2020-07-22Enhanced RDoc for Array (#3350)Burdette Lamar
* Enhanced RDoc for Array Methods: == eql? hash include? <=> Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-07-21Enhanced RDoc for ArrayBurdetteLamar
Notes: Merged: https://github.com/ruby/ruby/pull/3318
2020-07-21Enhanced RDoc for ArrayBurdetteLamar
Notes: Merged: https://github.com/ruby/ruby/pull/3318
2020-07-21Enhanced RDoc for ArrayBurdetteLamar
Notes: Merged: https://github.com/ruby/ruby/pull/3318
2020-07-18Optimize Array#min (#3324)Kenta Murata
The benchmark result is below: | |compare-ruby|built-ruby| |:---------------|-----------:|---------:| |ary2.min | 39.105M| 39.442M| | | -| 1.01x| |ary10.min | 23.995M| 30.762M| | | -| 1.28x| |ary100.min | 6.249M| 10.783M| | | -| 1.73x| |ary500.min | 1.408M| 2.714M| | | -| 1.93x| |ary1000.min | 828.397k| 1.465M| | | -| 1.77x| |ary2000.min | 332.256k| 570.504k| | | -| 1.72x| |ary3000.min | 338.079k| 573.868k| | | -| 1.70x| |ary5000.min | 168.217k| 286.114k| | | -| 1.70x| |ary10000.min | 85.512k| 143.551k| | | -| 1.68x| |ary20000.min | 43.264k| 71.935k| | | -| 1.66x| |ary50000.min | 17.317k| 29.107k| | | -| 1.68x| |ary100000.min | 9.072k| 14.540k| | | -| 1.60x| |ary1000000.min | 872.930| 1.436k| | | -| 1.64x| compare-ruby is 9f4b7fc82e. Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-07-18Optimize Array#max (#3325)Kenta Murata
The benchmark result is below: | |compare-ruby|built-ruby| |:---------------|-----------:|---------:| |ary2.max | 38.837M| 40.830M| | | -| 1.05x| |ary10.max | 23.035M| 32.626M| | | -| 1.42x| |ary100.max | 5.490M| 11.020M| | | -| 2.01x| |ary500.max | 1.324M| 2.679M| | | -| 2.02x| |ary1000.max | 699.167k| 1.403M| | | -| 2.01x| |ary2000.max | 284.321k| 570.446k| | | -| 2.01x| |ary3000.max | 282.613k| 571.683k| | | -| 2.02x| |ary5000.max | 145.120k| 285.546k| | | -| 1.97x| |ary10000.max | 72.102k| 142.831k| | | -| 1.98x| |ary20000.max | 36.065k| 72.077k| | | -| 2.00x| |ary50000.max | 14.343k| 29.139k| | | -| 2.03x| |ary100000.max | 7.586k| 14.472k| | | -| 1.91x| |ary1000000.max | 726.915| 1.495k| | | -| 2.06x| Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-07-11Enhanced RDoc for Array#fill (#3301)Burdette Lamar
* Enhanced RDoc for Array#fill * Update array.c There's one more at 5072. I'll get it. Co-authored-by: Eric Hodel <drbrain@segment7.net> * Update array.c Co-authored-by: Eric Hodel <drbrain@segment7.net> * Update array.c Co-authored-by: Eric Hodel <drbrain@segment7.net> * Update array.c Co-authored-by: Eric Hodel <drbrain@segment7.net> * Update array.c Co-authored-by: Eric Hodel <drbrain@segment7.net> * Update array.c Co-authored-by: Eric Hodel <drbrain@segment7.net> Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-07-08Enhanced RDoc for Array (#3282)Burdette Lamar
Methods: reject! reject delete_if zip transpose replace clear Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-07-03Enhanced RDoc for Array (#3276)Burdette Lamar
*Methods: keep_if delete delete_at slice! Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-06-29rb_ary_slice_bang: do not goto into a branch卜部昌平
I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor. Notes: Merged: https://github.com/ruby/ruby/pull/3247