#251 Conflict between ForwardingSlots & PassByCopy,etc...

Need_for_security
closed-fixed
8
2005-07-24
2005-07-18
No

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

Discussion

  • Steve Jenson

    Steve Jenson - 2005-07-18
    • status: open --> open-fixed
     
  • Steve Jenson

    Steve Jenson - 2005-07-18
    • status: open-fixed --> closed-fixed
     
  • Mark Samuel Miller

    • assigned_to: nobody --> caplet
     

Log in to post a comment.