On Thu Nov 29 22:08:11 2007, [EMAIL PROTECTED] wrote: > Will Coleda wrote: > > > > 1) using getclass (aka, reject this ticket) > > 2) doing something custom for the say method here (like, say, > > translating say 'what' into something like "getstdout P0; > > P0.'say'('what');" > > 3) eliminating the automagic method translation used here and just > > writing a 'say' opcode. > > 4) find a syntax that works generically like the current method does; > > > > There are currently 42 of these automagic translations (found in > > src/builtins.c) > > > > What's the desired approach here? I'd prefer 4 slightly over 3; neither > > requires a deprecation cycle (unless as part of 3 we decide to not > > support opcodes/faux-opcodes for some of them.); 2 is evil. I am neutral > > on 1. > > Another alternative is to update ParrotIO so it works with the new > 'get_class'. That change is in the works, I/O will be integrated into > the new OO model, instead of using its own custom OO-like system. But > the new I/O model is scheduled for completed implementation in May, and > it'd be nice to remove 'getclass' before then. > > I'm in favor of making 'say' a standard opcode, whatever else we do. > That is, assuming it's worth keeping. Show of hands if you use it and > want to keep it. > > Allison >
In order to facilitate the removal of the getclass opcode, I've created a branch "no_builtin_methods" to experiment with removing the special translation that exists for many methods on builtin PMCs and, if necessary, replacing them with actual opcodes. (Especially the 'say' variants.) -- Will "Coke" Coleda