[#61171] Re: [ruby-changes:33145] normal:r45224 (trunk): gc.c: fix build for testing w/o RGenGC — SASADA Koichi <ko1@...>
(2014/03/01 16:15), normal wrote:
[#61243] [ruby-trunk - Feature #9425] [PATCH] st: use power-of-two sizes to avoid slow modulo ops — normalperson@...
Issue #9425 has been updated by Eric Wong.
[#61359] [ruby-trunk - Bug #9609] [Open] [PATCH] vm_eval.c: fix misplaced RB_GC_GUARDs — normalperson@...
Issue #9609 has been reported by Eric Wong.
(2014/03/07 19:09), normalperson@yhbt.net wrote:
SASADA Koichi <ko1@atdot.net> wrote:
[#61424] [REJECT?] xmalloc/xfree: reduce atomic ops w/ thread-locals — Eric Wong <normalperson@...>
I'm unsure about this. I _hate_ the extra branches this adds;
Hi Eric,
SASADA Koichi <ko1@atdot.net> wrote:
(2014/03/14 2:12), Eric Wong wrote:
SASADA Koichi <ko1@atdot.net> wrote:
[#61452] [ruby-trunk - Feature #9632] [Open] [PATCH 0/2] speedup IO#close with linked-list from ccan — normalperson@...
Issue #9632 has been reported by Eric Wong.
[#61496] [ruby-trunk - Feature #9638] [Open] [PATCH] limit IDs to 32-bits on 64-bit systems — normalperson@...
Issue #9638 has been reported by Eric Wong.
[#61568] hash function for global method cache — Eric Wong <normalperson@...>
I came upon this because I noticed existing st numtable worked poorly
(2014/03/18 8:03), Eric Wong wrote:
SASADA Koichi <ko1@atdot.net> wrote:
what's the profit from using binary tree in place of hash?
Юрий Соколов <funny.falcon@gmail.com> wrote:
[#61687] [ruby-trunk - Bug #9606] Ocassional SIGSEGV inTestException#test_machine_stackoverflow on OpenBSD — normalperson@...
Issue #9606 has been updated by Eric Wong.
[#61760] [ruby-trunk - Feature #9632] [PATCH 0/2] speedup IO#close with linked-list from ccan — normalperson@...
Issue #9632 has been updated by Eric Wong.
[ruby-core:61347] [ruby-trunk - Feature #9602] Logic with `Enumerable#grep`
Issue #9602 has been updated by Sam Rawlins.
File select-to-accept-args.patch added
+1 to Matz's idea. I think this would work like `Enumerable#count`, taking `*args` _or_ a block, but not both:
%w{foo bar baz}.select #=> an Enumerator
%w{foo bar baz}.select {|e| e['b']} #=> an Array ["bar", "baz"]
%w{foo bar baz}.select(/b/) #=> an Array ["bar", "baz"]
%w{foo bar baz}.select(/f/, /z/) #=> an Array ["foo", "baz"]
%w{foo bar baz}.select(/b/) {|e| e['f']} # warns "given block not used", returns ["bar", "baz"]
I have a short patch for Enumerable#select [on GitHub](https://github.com/srawlins/ruby/compare/select-to-accept-args), and attached. This idea should be extended to Enumerable#reject, and Array's #select and #reject, and probably Array's #select! and #reject!, and maybe other classes that extend Enumerable, and override #select and #reject (like Struct#select).
If this patch is acceptable, I am happy to extend the patch for the other #select and #reject methods, and write tests.
----------------------------------------
Feature #9602: Logic with `Enumerable#grep`
https://bugs.ruby-lang.org/issues/9602#change-45668
* Author: Tsuyoshi Sawada
* Status: Feedback
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* Category:
* Target version:
----------------------------------------
`Enumerable#grep` is useful to filter things:
[nil, {}, [], 1, :foo, "foo"].grep(String)
# => ["foo"]
1. Often, the condition cannot be expressed as a single object on which `===` is applied, but as a disjunction over `===` applied to multiple objects. I would like `Enumerable#grep` to take arbitrary number of arguments, and when they are more than one, a logical disjunction applies, just as when there are multiple comma-separated objects after `when` in `case` condition:
[nil, {}, [], 1, :foo, "foo"].grep(String, Symbol, Array)
# => [[], :foo, "foo"]
2. Also, it often happens that I want the negation of grep. Perhaps, `Enumerable#grepv` (`grepv` comes from `grep -v`) can be implemented as negation of `Enumerable#grep`, i.e., select elements for which `===` returns false on any of the arguments:
[nil, {}, [], 1, :foo, "foo"].grepv(String, Symbol, Array)
# => [nil, {}, 1]
---Files--------------------------------
select-to-accept-args.patch (2.62 KB)
--
http://bugs.ruby-lang.org/