Koichi Sasada
344ec26a99
tuning trial: newobj with current ec
...
Passing current ec can improve performance of newobj. This patch
tries it for Array and String literals ([] and '').
2020-12-07 08:28:36 +09:00
Koichi Sasada
8247b8edde
should not use rb_ary_modify()
...
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
2020-12-01 13:18:32 +09:00
Nobuyoshi Nakada
b958e2add8
Removed canonicalization for mathn
2020-11-10 11:14:15 +09:00
S-H-GAMELINKS
8b3653b484
Fix links
2020-11-10 11:04:00 +09:00
Jeremy Evans
2a294d499b
Make Array methods return Array instances instead of subclass instances
...
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 ]
2020-11-03 14:01:38 -08:00
Stefan Stüben
8c2e5bbf58
Don't redefine #rb_intern over and over again
2020-10-21 12:45:18 +09:00
Kenta Murata
a6a8576e87
Feature #16812 : Allow slicing arrays with ArithmeticSequence ( #3241 )
...
* 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 ]
2020-10-21 02:40:18 +09:00
Burdette Lamar
54fb8fb62a
Comply with guide for method doc: array.c ( #3506 )
...
Methods:
any?
all?
one?
none?
sum
shuffle!
shuffle
sample
2020-09-02 14:02:34 -05:00
Burdette Lamar
94430d009a
Comply with guide for method doc: array.c ( #3499 )
...
Methods considered:
count
flatten!
flatten
cycle
permutation
combination
repeated_permutation
repeated_combination
product
take
take_while
drop
drop_while
2020-09-01 12:49:48 -05:00
Burdette Lamar
50736f127a
Comply with guide for method doc: array.c ( #3489 )
...
Methods considered:
&
intersection
|
union
max
min
minmax
uniq!
uniq
compact!
compact
2020-08-31 16:25:11 -05:00
Burdette Lamar
e744d4070c
Comply with guide for method doc: array.c ( #3484 )
...
Methods:
+
concat
*
assoc
rassoc
==
eql?
hash
include?
<=>
-
difference
2020-08-31 14:53:54 -05:00
Burdette Lamar
1f4c507afb
Comply with guide for method doc: array.c ( #3477 )
...
Methods considered:
delete_at
slice!
reject!
reject
delete_if
zip
transpose
replace
clear
fill
2020-08-31 13:16:10 -05:00
Burdette Lamar
585a659b1e
Comply with guide for method doc: array.c ( #3475 )
...
Methods considered:
bsearch
bsearch_index
sort_by!
collect
collect!
values_at
select
select!
keep_if
delete
2020-08-30 10:34:13 -05:00
Burdette Lamar
726f2e59f9
Comply with guide for method doc: array.c ( #3474 )
...
Methods considered:
length
empty?
join
inspect
to_a
to_h
to_ary
reverse!
reverse
rotate!
rotate
sort!
sort
2020-08-29 15:16:02 -05:00
Burdette Lamar
f0ad5594bf
Comply with guide for method doc: array.c ( #3473 )
...
Methods considered:
at
first
last
fetch
index
rindex
[]
insert
each
each_index
reverse_each
2020-08-29 12:15:06 -05:00
Burdette Lamar
45c40f5631
Comply with guide for method doc: array.c ( #3469 )
...
Methods:
- freeze
- try_convert
- new
- \<<
- push
- pop
- shift
- unshift
- []
2020-08-28 14:56:02 -05:00
Burdette Lamar
1d3e87a28c
Remove checks for self returned in array.c and hash.c examples ( #3446 )
...
Further compliance with https://github.com/ruby/ruby/blob/master/doc/method_documentation.rdoc#details-and-examples-
2020-08-23 12:10:01 -05:00
Burdette Lamar
ea4ccc0992
Remove trivial examples from array.c ( #3442 )
...
"Trivial" typically means "returns a new empty Array."
2020-08-21 15:50:56 -05:00
Burdette Lamar
b6c7b94b1c
Remove nil-return examples from array.c ( #3437 )
2020-08-20 20:40:26 -05:00
Burdette Lamar
63d213eb13
Partial compliance with doc/method_documentation.rdoc ( #3431 )
...
Removes references to *-convertible thingies.
2020-08-19 16:26:40 -05:00
卜部昌平
ff30358d13
RARRAY_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.
2020-08-15 12:09:26 +09:00
Burdette Lamar
c84ccf1a07
Fix links to Dig Methods document ( #3421 )
...
* Fix links to Dig Methods document
* Fix links to Dig Methods document
2020-08-14 18:55:04 -05:00
Burdette Lamar
22fd617aa5
Adding doc/dig_methods.rdoc and links to it ( #3416 )
...
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.
2020-08-13 13:16:27 -05:00
卜部昌平
1f9e25cd02
MAYBE_UNUSED should just suffice
...
This reverts commit c355fa72d4
.
2020-08-13 10:14:20 +09:00
Burdette Lamar
c303e21d52
Enhanced RDoc for Array ( #3400 )
...
Methods:
drop
drop_while
any?
all?
none?
one?
2020-08-10 11:33:31 -05:00
Nobuyoshi Nakada
0ca6b973e8
Removed non-ASCII code to suppress warnings by localized compilers
2020-08-10 19:46:13 +09:00
Nobuyoshi Nakada
c355fa72d4
Suppress unused-function warnings
...
Calls with a constant argument should be optimized away.
2020-08-10 17:47:34 +09:00
Burdette Lamar
4126a979ae
Enhanced RDoc for Array#take and Array#take_while ( #3398 )
2020-08-07 12:08:36 -05:00
Burdette Lamar
615b7fa557
Enhanced RDoc for Array#product ( #3395 )
2020-08-07 06:52:37 -05:00
Burdette Lamar
e0bc436d9c
Enhanced documentation for Array#repeated_combination ( #3392 )
...
* Enhanced documentation for Array#repeated_combination
* Enhanced documentation for Array#repeated_combination
2020-08-05 14:58:16 -05:00
Burdette Lamar
2498334614
Enhanced documentation for Array#repeated_permutation ( #3390 )
...
* Enhanced documentation for Array#repeated_permutation
* Enhanced documentation for Array#repeated_permutation
2020-08-05 09:42:58 -05:00
Nobuyoshi Nakada
b6e6807993
Initialize memo pointer and use it consistently to silence gcc 7+
2020-08-01 15:04:58 +09:00
Burdette Lamar
eebb1de7c1
Enhanced RDoc for Array
2020-07-31 19:29:34 -07:00
Jeremy Evans
a6bfc951aa
Document Array#flatten{,!} accept explicit nil argument [ci skip]
...
Fixes [Bug #10475 ]
2020-07-30 12:39:54 -07:00
Marc-Andre Lafortune
1b1ea7b3bc
Fix Array#flatten for recursive array when given positive depth [Bug #17092 ]
2020-07-30 09:53:42 -04:00
Burdette Lamar
35e5b8fb82
Enhanced RDoc for Array ( #3372 )
2020-07-29 18:25:24 -04:00
BurdetteLamar
e1b6e1d126
Enhanced RDoc for Array [ci skip]
2020-07-28 12:01:46 -07:00
Kazuhiro NISHIYAMA
946cd6c534
Use https instead of http
2020-07-28 19:51:54 +09:00
Burdette Lamar
5d04ac6ea2
Enhanced RDoc for Array ( #3350 )
...
* Enhanced RDoc for Array
Methods:
==
eql?
hash
include?
<=>
2020-07-22 19:06:49 -05:00
BurdetteLamar
a50750c8a9
Enhanced RDoc for Array
2020-07-21 17:07:12 -05:00
BurdetteLamar
d29de7b31b
Enhanced RDoc for Array
2020-07-21 17:07:12 -05:00
BurdetteLamar
8a974e0fcb
Enhanced RDoc for Array
2020-07-21 17:07:12 -05:00
Kenta Murata
b4e784434c
Optimize Array#min ( #3324 )
...
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
.
2020-07-18 23:45:25 +09:00
Kenta Murata
a63f520971
Optimize Array#max ( #3325 )
...
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|
2020-07-18 23:45:00 +09:00
Burdette Lamar
3b96ad9b54
Enhanced RDoc for Array#fill ( #3301 )
...
* 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>
2020-07-11 08:01:56 -05:00
Burdette Lamar
9fc25811d5
Enhanced RDoc for Array ( #3282 )
...
Methods:
reject!
reject
delete_if
zip
transpose
replace
clear
2020-07-08 09:27:10 -05:00
Burdette Lamar
e8010c7401
Enhanced RDoc for Array ( #3276 )
...
*Methods:
keep_if
delete
delete_at
slice!
2020-07-03 09:49:36 -05:00
卜部昌平
4f2425549a
rb_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.
2020-06-29 11:05:41 +09:00
卜部昌平
73f98d25eb
ary_join_1: 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.
2020-06-29 11:05:41 +09:00
卜部昌平
4dc83eefce
rb_ary_aset: 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.
2020-06-29 11:05:41 +09:00