Commit graph

1258 commits

Author SHA1 Message Date
Burdette Lamar
74888846e5
[DOC] Relateds for combo methods (#11483) 2024-08-29 10:43:54 -04:00
Burdette Lamar
dba9601e0f
[DOC] Array comparing doc (#11486) 2024-08-28 17:17:21 -04:00
BurdetteLamar
ec88979a06 Related for Array#<< 2024-08-28 16:51:33 -04:00
BurdetteLamar
acafb92464 [DOC] Remove Array#abbrev 2024-08-28 15:05:52 -04:00
BurdetteLamar
a7cec438a1 [DOC] More xrefs for array creation 2024-08-28 15:05:04 -04:00
BurdetteLamar
91c6c2bdb5 Related methods for Array#delete 2024-08-28 10:43:37 -04:00
BurdetteLamar
8f700db4ed [DOC] Tweaks for Array#delete_if 2024-08-27 13:01:42 -04:00
Burdette Lamar
0228cf74e3
[DOC] Tweaks for Array#cycle (#11459) 2024-08-27 12:59:31 -04:00
Peter Zhu
2459e79b80 Assume that shared array is not embedded
An array cannot be shared and embedded at the same time, so we can assume
that a shared array is not embedded.
2024-08-27 09:58:38 -04:00
BurdetteLamar
51aadefb4d [DOC] Tweaks to Array#delete_at 2024-08-26 13:21:21 -04:00
BurdetteLamar
efa4ec0f98 [DOC] Tweaks to Array#delete 2024-08-26 11:20:22 -04:00
Burdette Lamar
76e0ea28ea
[DOC] Tweaks to Array#combination (#11440) 2024-08-24 21:22:33 -04:00
BurdetteLamar
fd0263d7ef [DOC] Tweaks for Array#concat 2024-08-24 11:51:28 -04:00
BurdetteLamar
bd19d3d163 [DOC] Tweaks for Array#count doc 2024-08-24 11:49:58 -04:00
BurdetteLamar
e962c9c4c3 [DOC] Tweaks to Array#compact! 2024-08-24 11:45:01 -04:00
BurdetteLamar
418e85b120 [DOC] Tweaks for Array#compact 2024-08-24 11:44:29 -04:00
Burdette Lamar
784ccd0115
[DOC] Tweaks for Array#collect! (#11434) 2024-08-22 20:59:59 -04:00
BurdetteLamar
53e3795379 [DOC] Tweaks to Array#bsearch_index 2024-08-21 12:07:28 -04:00
BurdetteLamar
65b3bcede3 [DOC] Tweaks for Array#collect 2024-08-21 11:59:20 -04:00
BurdetteLamar
ee6c7ab0cf [DOC] Tweaks for Array#clear 2024-08-21 11:56:35 -04:00
BurdetteLamar
124f1754df [DOC] Tweaks for Array#bsearch 2024-08-21 11:42:20 -04:00
Burdette Lamar
77ac853c15
[DOC] Tweaks to Array#assoc (#11384) 2024-08-16 16:11:55 -04:00
BurdetteLamar
33bffde923 [DOC] Tweaks for Array#at 2024-08-15 12:52:09 -04:00
BurdetteLamar
d2361ba156 [DOC] Tweaks for Array#push 2024-08-15 12:49:46 -04:00
BurdetteLamar
edda29a117 [DOC] Fix Related for Array#all? 2024-08-15 12:48:27 -04:00
BurdetteLamar
1f994683b6 [DOC] Tweaks for Array#any? 2024-08-15 12:46:18 -04:00
Burdette Lamar
85f99b3828
[DOC] Tweaks to Array#all? (#11365) 2024-08-14 13:47:28 -04:00
Jean Boussier
6ee9a08d32 rb_setup_fake_ary: use precomputed flags
Setting up the fake array is a bit more expensive than would be
expected because `rb_ary_freeze` does a lot of checks and lookup
a shape transition.

If we assume fake arrays will always be frozen, we can precompute
the flags state and just assign it.
2024-08-10 10:09:14 +02:00
Burdette Lamar
ec5436bc3a
[DOC] Tweaks for Array#[]= (#11329) 2024-08-08 16:09:32 -04:00
BurdetteLamar
b9a9564c1f [DOC] Tweaks for Array#[] 2024-08-08 16:08:15 -04:00
BurdetteLamar
d657205c58 [DOC] Tweaks for Array#[] 2024-08-08 16:08:15 -04:00
BurdetteLamar
6fee51069c [DOC] Tweaks for Array#== 2024-08-08 16:05:42 -04:00
Burdette Lamar
3719b3d74d
[DOC] Tweaks to Array#- (#11303) 2024-08-07 15:59:57 -04:00
Burdette Lamar
2a31410ebe
[DOC] Tweaks to Array#+ (#11302) 2024-08-07 15:59:01 -04:00
BurdetteLamar
fa3d9fdaed [DOC] Tweaks to Array#<=> 2024-08-06 15:51:31 -04:00
BurdetteLamar
3471437630 [DOC] Tweaks for Array#<< 2024-08-06 15:45:45 -04:00
BurdetteLamar
a793b5376c [DOC] Tweaks to Array#* 2024-08-06 15:38:29 -04:00
BurdetteLamar
66181fdda5 [DOC] Tweak to Array#& 2024-08-06 15:37:51 -04:00
BurdetteLamar
8aeca5ce40 Tweaks to Array::try_convert 2024-08-06 15:37:23 -04:00
BurdetteLamar
be959c040e [DOC] Tweak for Array::[] 2024-08-06 14:39:16 -04:00
Jeremy Evans
cc81437260 Rewrite Array.new documentation
Use plain paragraphs instead of a nested unordered list.

Remove some examples, including examples that produce warnings in
verbose mode or raise exceptions.

Explicitly document the common pitfall of using an expression as a
default value instead of using a block.
2024-07-31 13:04:42 -07:00
Burdette Lamar
d2b8fd0f37
[DOC] Tweaks to Array.try_convert (#11260) 2024-07-30 16:31:33 -04:00
Burdette Lamar
91bb6afa75
[DOC] Tweaks for Array.new (#11259) 2024-07-30 10:09:06 -04:00
BurdetteLamar
b44a154959 [DOC] Tweaks for Array#& 2024-07-30 10:06:41 -04:00
Aaron Patterson
2c1655314a Revert moving things to Ruby
This is slowing down benchmarks on x86, so lets revert it for now.
2024-07-29 14:18:11 -07:00
Burdette Lamar
477f672592
[DOC] rb_ary_s_create (#11256) 2024-07-29 09:11:35 -04:00
eileencodes
6f6aff56b1 Don't shrink array in ary_make_shared
This change adds back the assertions removed in #11092 and removes the
call to `ary_shrink_capa` from `ary_make_shared` when the array is
frozen.
2024-07-09 10:22:29 -07:00
Aaron Patterson
b974c84606 Move Array#map to Ruby
Improves activerecord by about 1% on the interpreter:

```
before: ruby 3.4.0dev (2024-07-03T18:40:10Z master f88841b8f3) [arm64-darwin23]
after: ruby 3.4.0dev (2024-07-03T18:41:14Z ruby-map 6c0df4eb32) [arm64-darwin23]

------------  -----------  ----------  ----------  ----------  -------------  ------------
bench         before (ms)  stddev (%)  after (ms)  stddev (%)  after 1st itr  before/after
activerecord  235.2        0.8         233.6       0.7         1.01           1.01
------------  -----------  ----------  ----------  ----------  -------------  ------------
Legend:
- after 1st itr: ratio of before/after time for the first benchmarking iteration.
- before/after: ratio of before/after time. Higher is better for after. Above 1 represents a speedup.
```

Improves YJIT by about 4%:

```
before: ruby 3.4.0dev (2024-07-03T18:40:10Z master f88841b8f3) +YJIT [arm64-darwin23]
after: ruby 3.4.0dev (2024-07-03T18:41:14Z ruby-map 6c0df4eb32) +YJIT [arm64-darwin23]

------------  -----------  ----------  ----------  ----------  -------------  ------------
bench         before (ms)  stddev (%)  after (ms)  stddev (%)  after 1st itr  before/after
activerecord  142.1        1.2         137.0       0.6         1.00           1.04
------------  -----------  ----------  ----------  ----------  -------------  ------------
Legend:
- after 1st itr: ratio of before/after time for the first benchmarking iteration.
- before/after: ratio of before/after time. Higher is better for after. Above 1 represents a speedup.
```
2024-07-03 12:32:53 -07:00
Aaron Patterson
4c9134d2b2 Move Array#select to Ruby
This speeds up the mail benchmark by about 7% on the interpreter:

```
before: ruby 3.4.0dev (2024-07-03T17:01:41Z master f4b313f733) [arm64-darwin23]
after: ruby 3.4.0dev (2024-07-03T17:45:50Z ruby-select de282cacd5) [arm64-darwin23]

-----  -----------  ----------  ----------  ----------  -------------  ------------
bench  before (ms)  stddev (%)  after (ms)  stddev (%)  after 1st itr  before/after
mail   72.9         0.8         68.2        1.0         1.02           1.07
-----  -----------  ----------  ----------  ----------  -------------  ------------
Legend:
- after 1st itr: ratio of before/after time for the first benchmarking iteration.
- before/after: ratio of before/after time. Higher is better for after. Above 1 represents a speedup.
```

YJIT is about 13% faster:

```
before: ruby 3.4.0dev (2024-07-03T17:01:41Z master f4b313f733) +YJIT [arm64-darwin23]
after: ruby 3.4.0dev (2024-07-03T17:45:50Z ruby-select de282cacd5) +YJIT [arm64-darwin23]

-----  -----------  ----------  ----------  ----------  -------------  ------------
bench  before (ms)  stddev (%)  after (ms)  stddev (%)  after 1st itr  before/after
mail   51.0         0.8         45.2        0.6         1.00           1.13
-----  -----------  ----------  ----------  ----------  -------------  ------------
Legend:
- after 1st itr: ratio of before/after time for the first benchmarking iteration.
- before/after: ratio of before/after time. Higher is better for after. Above 1 represents a speedup.
```
2024-07-03 11:32:40 -07:00
Jean Boussier
786cf9db48 array.c: Remove outdated assertions
Following [Feature #20589] it can happen that we change the
capacity of a frozen array, so these assertions no longer make
sense.

Normally we don't hit them because `Array#freeze` shrinks the
array, but if somehow the Array was frozen using `Object#freeze`
then we may shrink it after it was frozen.
2024-07-03 17:16:17 +02:00