I'd like a ruling that &?CALLER::BLOCK is not a general-purpose
block promoter, but only works if the calling block already marked
itself as callable, perhaps by mentioning &?BLOCK in its body.

First, I like the idea that all blocks act as if they were subs WRT
being callable and accepting parameters.  However, the "as if" part of
that statement is very important to a compiler.

AFAICT, to achieve reasonable performance, a compiler must be able to
assume that in the absence of markers or predeclaration, a given block
need not be given all the accoutrements and instrumentation of a full
subroutine, because nobody is going to call it _as_ a subroutine.

It therefore would a Bad Thing if &?CALLER::BLOCK worked generally.
If the caller _is_ a block that was already marked at compile time as
requiring full sub properties then, of course, it's no problem to use
the syntax &?CALLER::BLOCK to denote it.
-- 
Chip Salzenberg <[EMAIL PROTECTED]>

Reply via email to