- status: open --> open-fixed
FIXED
From
http://www.eros-os.org/pipermail/e-lang/2004-January/009428.html
> > (Digression: It seems to me that the presence of
ForwardingSlots may be
> > a concern for real PassByCopy objects, since any
use of one makes those
> > objects mutable, whereas they must not be for
proper PassByCopy
> > behavior.)
>
> A good point. Note that this problem only comes up
for an "interactive"
> top level scope. For the kind of top-level scope seen
by emakers or
> caplets, all its slots are FinalSlots.
>
> But this still leaves open the question of
"interactive" contexts, which
> includes both interactive rune use and automated
updoc scripts. We have a
> real conflict of principles here. It's not clear what
the right answer is
> (though I can make some painful suggestions).
Indeed. I'm sure you don't want to introduce the
audited-code-fixed-point problem. :)
Hmm:
? e`
> def x implements PassByCopy {
> ...
> }
> `.eval(meta.getStateSnapshot())
(With appropriate sugar, of course.)
Followups
Comment Date By
Mutable outer Scopes and ForwardingSlots are no more.
Instead, evaluation yields a pair of a value and a
derived replacement scope. Old use occurrences continue
to be bound to the defining occurrence visible to them,
regardless of later possible interactive rebindings of
the same name. 2004-Jul-09 06:30 markm