Gregor N. Purdy: # > Parrot_set_i_i(in,out): \x8b \x0d &IR2 \x89 \x0d &IR1 # # I'm tempted to push the specification of this information all the way # back to the syntax of .ops files, since the code that lives there # should behave the same wrt read/write on args. # # Dan likes C-like syntax as much as possible in other parts of the ops # file. Thats why I chose 'inline' as the tag for 'trivial' ops # (although # that's a C++-ism). # # If we didn't mind the verbosity, a C-like syntax would be: # # inline op set(register INTVAL, const register INTVAL) { # $1 = $2; # } # # instead of # # inline op set(i, i) { # $1 = $2; # } # # The problem is, we lose the nice space/time/etc. saving capability of: # # inline op set(i, i|ic) { # $1 = $2; # } # # But, we could still adopt the C-ism 'const' as meaning read-only, and # assume all non-const arguments are written: # # inline op set(i, const i|ic) { # $1 = $2; # } # # Or, do we really need to have the three-way in/out/inout tagset? # # inline op set(out i, in i|ic) { # $1 = $2; # }
Or we could go with the Perl 6-ism: inline op set(i is rw, i|ic) { $1=$2; } --Brent Dax [EMAIL PROTECTED] Configure pumpking for Perl 6 "Nothing important happened today." --George III of England's diary entry for 4-Jul-1776