[#123172] [Ruby Bug#21560] RUBY_MN_THREADS=1 causes large performance regression in Puma 7 — "schneems (Richard Schneeman) via ruby-core" <ruby-core@...>

Issue #21560 has been reported by schneems (Richard Schneeman).

13 messages 2025/09/03

[#123197] [Ruby Misc#21566] Transfer Shopify/yjit-bench and speed.yjit.org to ruby/ruby-bench and *.ruby-lang.org — "k0kubun (Takashi Kokubun) via ruby-core" <ruby-core@...>

Issue #21566 has been reported by k0kubun (Takashi Kokubun).

7 messages 2025/09/08

[#123207] [Ruby Bug#21568] Requiring core libraries when already requiring mutliple user defined libraries with the same name can error — "alexalexgriffith (Alex Griffith) via ruby-core" <ruby-core@...>

Issue #21568 has been reported by alexalexgriffith (Alex Griffith).

9 messages 2025/09/10

[#123209] [Ruby Bug#21569] [armv7, musl] SIGBUS in ibf_load_object_float due to unaligned VFP double load when reading IBF — "amacxz (Aleksey Maximov) via ruby-core" <ruby-core@...>

SXNzdWUgIzIxNTY5IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGFtYWN4eiAoQWxla3NleSBNYXhpbW92

8 messages 2025/09/10

[#123257] [Ruby Misc#21606] DevMeeting-2025-10-23 — "mame (Yusuke Endoh) via ruby-core" <ruby-core@...>

Issue #21606 has been reported by mame (Yusuke Endoh).

9 messages 2025/09/16

[#123261] [Ruby Bug#21607] require 'concurrent-ruby' causes segfault with Ruby 3.4.6 on linux/i686 — "satadru (Satadru Pramanik) via ruby-core" <ruby-core@...>

Issue #21607 has been reported by satadru (Satadru Pramanik).

17 messages 2025/09/16

[#123279] [Ruby Misc#21609] Propose Stan Lo (@st0012) as a core committer — "tekknolagi (Maxwell Bernstein) via ruby-core" <ruby-core@...>

SXNzdWUgIzIxNjA5IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHRla2tub2xhZ2kgKE1heHdlbGwgQmVy

12 messages 2025/09/17

[#123288] [Ruby Bug#21610] Use ec->interrupt_mask to prevent interrupts. — "ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>

SXNzdWUgIzIxNjEwIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh

7 messages 2025/09/18

[#123319] [Ruby Feature#21615] Introduce `Array#values` — "matheusrich (Matheus Richard) via ruby-core" <ruby-core@...>

Issue #21615 has been reported by matheusrich (Matheus Richard).

9 messages 2025/09/23

[#123350] [Ruby Bug#21618] Allow to use the build-in prism version to parse code — "Earlopain (Earlopain _) via ruby-core" <ruby-core@...>

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

15 messages 2025/09/30

[ruby-core:123184] [Ruby Feature#21564] Extend permutation, repeated_permutation, combination and repeated_combination argument

From: "toy (Ivan Kuchin) via ruby-core" <ruby-core@...>
Date: 2025-09-07 19:00:20 UTC
List: ruby-core #123184
Issue #21564 has been reported by toy (Ivan Kuchin).

----------------------------------------
Feature #21564: Extend permutation, repeated_permutation, combination and repeated_combination argument
https://bugs.ruby-lang.org/issues/21564

* Author: toy (Ivan Kuchin)
* Status: Open
----------------------------------------
When using functions `permutation`, `repeated_permutation`, `combination` and `repeated_combination`, often one needs not one, but multiple permutation/combination sizes. Currently all functions accept one Integer argument (for `permutation` it is optional and defaults to array size), and it would be more powerful if it would accept also a range or a Enumerable:

```ruby
a = [1, 2, 3]

a.permutation(1..3).to_a # => [[1], [2], [3],
                         #     [1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2],
                         #     [1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

a.permutation([1, 3]).to_a # => [[1], [2], [3],
                           #     [1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

a.permutation([3, 1]).to_a # => [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1],
                           #     [1], [2], [3]]

a.repeated_permutation([2, 1]).to_a # => [[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3],
                                    #     [1], [2], [3]]

a.combination(1..3).to_a # => [[1], [2], [3],
                         #     [1, 2], [1, 3], [2, 3],
                         #     [1, 2, 3]]

a.repeated_combination(1..3).to_a # => [[1], [2], [3],
                                  #     [1, 1], [1, 2], [1, 3], [2, 2], [2, 3], [3, 3],
                                  #     [1, 1, 1], [1, 1, 2], [1, 1, 3], [1, 2, 2], [1, 2, 3], [1, 3, 3], [2, 2, 2], [2, 2, 3], [2, 3, 3], [3, 3, 3]]
```

Ruby code to enhance current `permutation` would be:
```ruby
class Array
  alias_method :original_permutation, :permutation

  def permutation(counts, &block)
    return to_enum(__method__, counts) unless block

    if counts.is_a?(Enumerable)
      counts.each do |count|
        original_permutation(count, &block)
      end
    else
      original_permutation(counts, &block)
    end
  end
end
```



-- 
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

Prev Next