Rod Adams <[EMAIL PROTECTED]> wrote: > Leopold Toetsch wrote:
>>the method call in PIR can be written as: >> >> d = x."cos"() # normal method call >> d = Float."cos"(x) # class method, argument shifted down >> d = P6Num."cos"(x) # same >> d = cos x # PIR opcode syntax [1] >> cos d, x # PASM opcode syntax [1] >> >>There'll be a table of such builtins with name, namespace, signature, so >>that the current opcodes can be transparently replaced by methods. >> >> > This looks like it's taking > multi method Num::cos (Num|Str +$base) returns Num > and generating > multi sub cos (Num $x, Num|Str +$base) returns Num No. The above "lowlevel" C<cos> isn't aware of C<base> nor of C<$_> and nothing is autogenerated in Parrot. The C<cos> is something like: class __parrot_core::Float { multi sub cos(Float x) returns Float ... } This is presumably inherited by C<class P6Num> (the Parrot PMC) and bound to: multi sub *cos(Num $x) returns Num at the Perl6 level. leo