Steve Fink wrote:

The invoke op is bothering me -- namely, it disturbs me that it
implicitly operates on P0. I know that P0 is the correct register to
use according to pdd03, but I dislike having it be implicit. The user
is required to set the rest of the pdd03 conventions up manually, so I
don't see any need for invoke to be different. And it makes it much
more clear what registers are being used if you have to pass in a PMC
as an argument.


Sean O'Rourke proposed a long time ago, that with should have B<invoke_p> too. The current B<invoke> is fine for pdd03 only (where (almost) all other P registers might be parameters, but for calling Subs, compiled code, coroutines and so on, there is really no need, to not be able to select the object, which should get invoke'd.


So would anyone mind if I eliminated the zero-arg invoke op in favor
of a one-arg invoke that takes a single PMC? (I may also have
situations where I don't need to follow pdd03, and it would be more
convenient to use a different register.)

Yep. At least add B<invoke Px>.


leo



Reply via email to