[#55853] ruby 1.9.3 p448 breaks ABI — V咜 Ondruch <v.ondruch@...>

Hi,

13 messages 2013/07/08

[#55951] [ruby-trunk - Bug #8625][Open] IO#read(len, buf) shortens buf even if data is not read actually — "no6v (Nobuhiro IMAI)" <nov@...>

10 messages 2013/07/11

[#55976] [ruby-trunk - Feature #8629][Open] Method#parameters should include the default value — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

13 messages 2013/07/12

[#55985] [ruby-trunk - Feature #8631][Open] Add a new method to ERB to allow assigning the local variables from a hash — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

19 messages 2013/07/12

[#56004] [ruby-trunk - Feature #8636][Open] Documentation hosting on ruby-lang.org — "zzak (Zachary Scott)" <e@...>

18 messages 2013/07/15

[#56019] [ruby-trunk - Feature #8639][Open] Add Queue#each — "avdi (Avdi Grimm)" <avdi@...>

15 messages 2013/07/15

[#56027] [CommonRuby - Feature #8640][Open] Add Time#elapsed to return nanoseconds since creation — "tenderlovemaking (Aaron Patterson)" <aaron@...>

24 messages 2013/07/15

[#56041] [CommonRuby - Feature #8643][Open] Add Binding.from_hash — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

26 messages 2013/07/16

[#56087] [ruby-trunk - Feature #8658][Open] Process.clock_gettime — "akr (Akira Tanaka)" <akr@...>

23 messages 2013/07/19

[#56096] [CommonRuby - Feature #8661][Open] Add option to print backstrace in reverse order(stack frames first & error last) — "gary4gar (Gaurish Sharma)" <gary4gar@...>

18 messages 2013/07/20

[#56193] [ruby-trunk - Bug #8693][Open] lambda invoked by yield acts as a proc with respect to return — "rits (First Last)" <redmine@...>

33 messages 2013/07/26

[#56274] [ruby-trunk - Bug #8709][Open] Dir.glob should return sorted file list — "tommorris (Tom Morris)" <tom@...>

19 messages 2013/07/30

[ruby-core:56032] [ruby-trunk - Bug #8641][Open] Enumerator size argument is either mis-documented or should accept any callable

From: "avdi (Avdi Grimm)" <avdi@...>
Date: 2013-07-16 00:10:32 UTC
List: ruby-core #56032
Issue #8641 has been reported by avdi (Avdi Grimm).

----------------------------------------
Bug #8641: Enumerator size argument is either mis-documented or should accept any callable
https://bugs.ruby-lang.org/issues/8641

Author: avdi (Avdi Grimm)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN


I ran into this while wrapping Enumerators around Queues. The Enumerator docs state:

  * The optional parameter can be used to specify how to calculate the size
  * in a lazy fashion (see Enumerator#size). It can either be a value or
  * a callable object.

However:

  require 'thread'
  q = Queue.new
  eq = Enumerator.new(q.method(:size)) do |y|
    loop do
      y << q.pop
    end
  end
  eq.size # => 
  # ~> -:3:in `initialize': no implicit conversion of Method into Integer (TypeError)
  # ~> 	from -:3:in `new'
  # ~> 	from -:3:in `<main>'

It looks like the size can't be any callable; it must be Proc a or an Integer. The code uses rb_obj_is_proc().

Instinctively I'd say that the documentation has it right and it ought to take any callable. But if there's some reason it's limited to Procs, the docs should be changed.

If anyone can point me in the right direction I'm happy to do the legwork on this.


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

In This Thread

Prev Next