[#123414] [Ruby Bug#21629] Ruby-3.4.7 fails to build using clang / llvm — "debo (David Bohman) via ruby-core" <ruby-core@...>

Issue #21629 has been reported by debo (David Bohman).

18 messages 2025/10/07

[#123433] [Ruby Misc#21630] Suggest @Earlopain for core contributor — "kddnewton (Kevin Newton) via ruby-core" <ruby-core@...>

Issue #21630 has been reported by kddnewton (Kevin Newton).

9 messages 2025/10/08

[#123484] [Ruby Bug#21640] Core Pathname is missing 3 methods / is partially-defined — "Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>

Issue #21640 has been reported by Eregon (Benoit Daloze).

21 messages 2025/10/15

[#123504] [Ruby Bug#21645] Can't `require "resolve"` on Windows under Bundler without warnings — "Earlopain (Earlopain _) via ruby-core" <ruby-core@...>

Issue #21645 has been reported by Earlopain (Earlopain _).

9 messages 2025/10/20

[#123506] [Ruby Misc#21646] Propose Luke Gruber as a Ruby committer — "jhawthorn (John Hawthorn) via ruby-core" <ruby-core@...>

Issue #21646 has been reported by jhawthorn (John Hawthorn).

8 messages 2025/10/20

[#123576] [Ruby Bug#21654] Set#new calls extra methods compared to previous versions — "tenderlovemaking (Aaron Patterson) via ruby-core" <ruby-core@...>

Issue #21654 has been reported by tenderlovemaking (Aaron Patterson).

16 messages 2025/10/29

[#123582] [Ruby Bug#21655] segfault when building 3.3.10, regression from 3.3.9 — "kurly (Greg Kubaryk) via ruby-core" <ruby-core@...>

Issue #21655 has been reported by kurly (Greg Kubaryk).

15 messages 2025/10/29

[#123586] [Ruby Misc#21656] Exclude dependabot PRs from automated gem release notes — "Earlopain (Earlopain _) via ruby-core" <ruby-core@...>

Issue #21656 has been reported by Earlopain (Earlopain _).

8 messages 2025/10/29

[#123595] [Ruby Misc#21657] Question: Is Ruby 4.0 planned for December 2025 or later? — "dmitry.pogrebnoy (Dmitry Pogrebnoy) via ruby-core" <ruby-core@...>

SXNzdWUgIzIxNjU3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGRtaXRyeS5wb2dyZWJub3kgKERtaXRy

22 messages 2025/10/29

[#123626] [Ruby Bug#21659] rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10 — "wsfulton (William Fulton) via ruby-core" <ruby-core@...>

SXNzdWUgIzIxNjU5IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHdzZnVsdG9uIChXaWxsaWFtIEZ1bHRv

10 messages 2025/10/31

[ruby-core:123488] [Ruby Feature#21615] Introduce `Array#values`

From: "mame (Yusuke Endoh) via ruby-core" <ruby-core@...>
Date: 2025-10-16 02:53:04 UTC
List: ruby-core #123488
Issue #21615 has been updated by mame (Yusuke Endoh).


This feels like opening Pandora's box. If this is accepted, I can foresee the following discussions arising, just off the top of my head:

* Should `Array#keys` be defined as a method that returns `(0...ary.size).to_a`?
* `Array#find_index` and `Hash#key` are (roughly) counterparts. Should they be aliased to each other?
* Should `Hash#each_key` and `Array#each_index` also be aliased to each other?
* What about order-related operations? Wouldn't we also need methods like `Hash#reverse`, `Hash#rotate`, and `Hash#sort`? (Note that `Hash#sort` would be incompatible with `Enumerable#sort`).
* Should methods like `Array#rehash` and `Array#compare_by_identity` be provided (perhaps as no-ops)?
* Wouldn't `Array#default` and `Array#default=` also be necessary?
* Should operators like `Array#<=` be defined to align with `Hash#<=`?
* While `Array#transform_values` could be defined straightforwardly, how should `Array#transform_keys` behave?
* The different meanings of `Array#include?` and `Hash#include?` are surprising.
* The different meanings of `Array#assoc` and `Hash#assoc` are surprising.

After all, I personally feel that `Array` and `Hash` are not inherently polymorphic.
If you want to use them polymorphically, I think you should limit their polymorphic use to `#[]` only.

----------------------------------------
Feature #21615: Introduce `Array#values`
https://bugs.ruby-lang.org/issues/21615#change-114861

* Author: matheusrich (Matheus Richard)
* Status: Open
----------------------------------------
## Motivation

In Ruby code, it's common to accept arrays and hashes and treat them uniformly as collections of values. `Hash` exposes `#values`, but `Array` does not, which pushes developers toward `is_a?`/`respond_to?` branching.

Following the **Principle of Least Surprise**, users may reasonably expect `Array#values` to exist because:

* Both `Array` **and** `Hash` already implement `#values_at`.
* `Hash` implements `#values` but `Array` does not.

### Example

Today:

```ruby
def normalize_records(input)
  items = input.respond_to?(:values) ? input.values : input

  items.each do |item|
    do_stuff_with_item(item)
  end
end
```

With `Array#values`:

```ruby
def normalize_records(input)
  input.values.each do |item|
    do_stuff_with_item(item)
  end
end
```

## Proposal

Add `Array#values`, returning a copy of the elements of `self`.

This yields a uniform interface for `Array` and `Hash` values without type checks.

### Alternatives considered

* `Enumerable#values`: defaulting to `to_a`, but I found it too broad of a change.
* `Array#each_value`: redundant as `Array#each` already covers iteration.


Patch: https://github.com/ruby/ruby/pull/14641



-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/


In This Thread