From: Mauricio Fernandez Date: 2007-04-26T19:40:19+09:00 Subject: Re: [BUG] Proc#arity regression or bug in RDoc On Thu, Apr 26, 2007 at 06:55:46PM +0900, Mauricio Fernandez wrote: > $ ruby19 -v -e "p proc{}.arity" > ruby 1.9.0 (2007-02-07 patchlevel 0) [i686-linux] > 0 > $ ./ruby19 -v -e "p proc{}.arity" > ruby 1.9.0 (2007-04-26 patchlevel 0) [i686-linux] > -1 > > However, the RDoc documentation attached to proc_arity still says that it > should return 0, so there's a bug, either in the code (wrong iseq->argc ?) or > in the docs (if the latter, the patch below should do). It seems it's a regression after all; no time to fix it now, but I've found when it happened: ruby-trunk-12116$ ./ruby -v -e "p proc{}.arity" ruby 1.9.0 (2007-03-21 patchlevel 0) [i686-linux] 0 ruby-trunk-12117$ ./ruby -v -e "p proc{}.arity" ruby 1.9.0 (2007-03-21 patchlevel 0) [i686-linux] -1 The regression was introduced in Wed Mar 21 20:05:07 2007 Koichi Sasada * compile.c, parse.y, eval.c, intern.h, iseq.c, lex.c, node.h, proc.c, vm.c, vm_macro.def, vm_macro.def, yarvcore.c, yarvcore.h, debug.c, debug.h: merge half-baked-1.9 changes. The biggest change is to change node structure around NODE_SCOPE, NODE_ARGS. Every scope (method/class/block) has own NODE_SCOPE node and NODE_ARGS represents more details of arguments information. I'll write a document about detail of node structure. PS: there's already a test in test/ruby/test_proc.rb def test_arity assert_equal(0, proc{}.arity) assert_equal(0, proc{||}.arity) ... maybe it should also be added to sample/test.rb, so it gets executed on make test w/o requiring a full make test-all ? -- Mauricio Fernandez - http://eigenclass.org - singular Ruby ** Latest postings ** On GC and finalizers in Ruby, corrected weak hash table implementations http://eigenclass.org/hiki/deferred-finalizers-in-Ruby simplefold: better vim folding (Ruby, Objective Caml, Perl, PHP, Java) http://eigenclass.org/hiki/simplefold