On Fri, Aug 19, 2005 at 01:36:30AM +0800, Autrijus Tang wrote:
: On Thu, Aug 18, 2005 at 10:26:00AM -0700, Larry Wall wrote:
: > Sure.  Though it probably also wants to stay as metadata associated
: > with the signature, since part of the reason for putting it in
: > the signature in the first place is so that optimizers can install
: > constants on the caller end, at least for ordinary sub calls.  Also,
: > desugaring a predeclaration would tend to cloak the yadae at the end,
: > but maybe that's not a problem unless you use the presence of bare
: > yadae in the body to suppress redefinition warnings.
: 
: The full desugared form is, I think:
: 
:     our &foo;  # lifted to beginning of package!
:     ...
:     BEGIN {
:       &foo := a Sub is stub {
:           ($a) := &?Internals::GETARGS();
:           $a = 1 unless exists $a;
:           # real body begins here
:           ...
:       };
:     }
: 
: with the "is stub" -- not neccessarily exposed to the user level --
: filled in by a parser rule, i.e. a predefined macro.
: 
: Does this sound sane?

No, but it sounds least insane.  :-)

Larry

Reply via email to