[#31647] [Backport #3666] Backport of r26311 (Bug #2587) — Luis Lavena <redmine@...>

Backport #3666: Backport of r26311 (Bug #2587)

13 messages 2010/08/07

[#31666] [Bug #3677] unable to run certain gem binaries' in windows 7 — Roger Pack <redmine@...>

Bug #3677: unable to run certain gem binaries' in windows 7

10 messages 2010/08/10

[#31676] [Backport #3680] Splatting calls to_ary instead of to_a in some cases — Tomas Matousek <redmine@...>

Backport #3680: Splatting calls to_ary instead of to_a in some cases

10 messages 2010/08/11

[#31681] [Bug #3683] getgrnam on computer with NIS group (+)? — Rocky Bernstein <redmine@...>

Bug #3683: getgrnam on computer with NIS group (+)?

13 messages 2010/08/11

[#31843] Garbage Collection Question — Asher <asher@...>

This question is no doubt a function of my own lack of understanding, but I think that asking it will at least help some other folks see what's going on with the internals during garbage collection.

17 messages 2010/08/25
[#31861] Re: Garbage Collection Question — Roger Pack <rogerdpack2@...> 2010/08/26

> The question in short: when an object goes out of scope and has no

[#31862] Re: Garbage Collection Question — Asher <asher@...> 2010/08/26

Right - so how does a pointer ever get off the stack?

[#31873] Re: Garbage Collection Question — Kurt Stephens <ks@...> 2010/08/27

On 8/26/10 11:51 AM, Asher wrote:

[#31894] Re: Garbage Collection Question — Asher <asher@...> 2010/08/27

I very much appreciate the response, and this is helpful in describing the narrative, but it's still a few steps behind my question - but it may very well have clarified some points that help us get there.

[#31896] Re: Garbage Collection Question — Evan Phoenix <evan@...> 2010/08/27

You have introduced something called a "root node" without defining it. What do you mean by this?

[#31885] Avoiding $LOAD_PATH pollution — Eric Hodel <drbrain@...7.net>

Last year Nobu asked me to propose an API for adding an object to

21 messages 2010/08/27

[#31947] not use system for default encoding — Roger Pack <rogerdpack2@...>

It strikes me as a bit "scary" to use system locale settings to

19 messages 2010/08/30

[#31971] Change Ruby's License to BSDL + Ruby's dual license — "NARUSE, Yui" <naruse@...>

Ruby's License will change to BSDL + Ruby's dual license

16 messages 2010/08/31

[ruby-core:31811] [Feature #3715] Enumerator#size and #size=

From: Marc-Andre Lafortune <redmine@...>
Date: 2010-08-21 04:43:50 UTC
List: ruby-core #31811
Issue #3715 has been updated by Marc-Andre Lafortune.


Hi,

On Thu, Aug 19, 2010 at 9:08 PM, Run Paint Run Run <redmine@ruby-lang.org> wrote:
> An enumerator is effectively immutable. 

Indeed, it would be better to specify the size (value or proc) at creation time. I suggest some possibilities further down. 

> I find the semantics of Enumerator#size's block argument confusing.

Maybe if it was called "count" instead which is also a verb, it would less confusing?

> It will often be the case that `obj.e(&b)` returns an object that responds to #size itself, allowing the general case of `obj.e(&b).size`.

I'm suggesting the block form just for completion's sake. The main gain is the lazy form without block and if it is deemed too confusing, the block form can definitely be left out.


On Fri, Aug 20, 2010 at 12:25 AM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
> Hi,
>
> In message "Re: [ruby-core:31785] [Feature #3715] Enumerator#size and #size="
>    on Fri, 20 Aug 2010 10:08:44 +0900, Run Paint Run Run <redmine@ruby-lang.org> writes:
>
> We have discussed the issue in the ruby-dev before.  The conclusion we
> had then was that:
>
>  * it is nice to have a way to tell the number of items without
>    actual iteration.

Indeed

>  * but Enumerator#size is not a good API, since not all enumerators
>    would have the way to tell the numbers of items.  Permutations and
>    combinations are rather exceptions.

I'm not sure I follow. The builtin enumerators can tell the numbers of items (more than 70), except a very small number of exceptions (mainly the IO ones). Users programming their own enumerators would decide to specify a lazy counter if they choose to.

>  * Enumerator#size= was worse, since it would make enumerators mutable.

Agreed, I should have thought about this better. Has the following possibility been discussed on the ruby-dev thread?

Enumerator.new's call sequence could be:

 *    Enumerator.new(obj, method = :each, *args)
 *    Enumerator.new(obj, count, method = :each, *args)
 *    Enumerator.new { |y| ... }
 *    Enumerator.new(count) { |y| ... }

where count is either a value or a Proc/method.

Similarly, to_enum's call sequence would be:

 *    obj.to_enum(method = :each, *args)
 *    obj.to_enum(count, method = :each, *args)

--
Marc-André

----------------------------------------
http://redmine.ruby-lang.org/issues/show/3715

----------------------------------------
http://redmine.ruby-lang.org

In This Thread