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?

Thanks,
/Autrijus/

Attachment: pgpVR42LVke0G.pgp
Description: PGP signature

Reply via email to