> Lots of responses here.
> 1) I'd be in favor of an object-based API. I'll probably post tomorrow with
> some thoughts on that. I only provided the tuple-based API because already
> have it in all impls (except 1.9) and it already works.

I agree that a simpler implementation (like one that didn't include
default values--just names) would probably be easier.

I wonder if you'd be able to create fairly easily an implementation
for 1.9.1 [note--not 1.9.2] using InstructionSequence.   I'd be happy
to help :)
Surprising there's not some gem out there that simplifies this process.
Thanks much.
-=R


>> class Go; def go3(a, b=2, &block); end; end
>> print RubyVM::InstructionSequence.disasm Go.allocate.method(:go3)
== disasm: <RubyVM::InstructionSequence:go3@(irb)>======================
local table (size: 4, argc: 1 [opts: 2, rest: -1, post: 0, block: 2] s0)
[ 4] a<Arg>     [ 3] b<Opt=0>   [ 2] block<Block>
0000 putobject        2                                               (  15)
......