[e-lang] [Caja] Functional auditor for Cajita

Mark S. Miller erights at google.com
Tue Dec 8 09:22:09 PST 2009

On Tue, Dec 8, 2009 at 8:47 AM,  <ihab.awad at gmail.com> wrote:
> Thank you for the writeup; interesting. Just one point of motivation
> that perhaps I missed from the original post:
> On Mon, Dec 7, 2009 at 11:17 PM, David-Sarah Hopwood
> <david-sarah at jacaranda.org> wrote:
>> To dodge this issue, let's provisionally call a function *instance*
>> "copacetic" [*] if:
>>  - that instance has only captured copacetic values, and
>>  - it has no side effects and is deterministic whenever it is
>>   only called with copacetic argument values, and
>>  - it uses no side-effecting or nondeterministic primitives.
> I'm getting at something similar but distinct, call it "i-copacetic".
> :)  Specifically:
>  - it has no side effects on its lexical environment regardless
>     of its argument values
> The motivation is this: An object's state is managed by some
> surrounding system. However, it is allowed to expose "read()" services
> to the outside world that do not participate in this state management.
> Each "read()" service may side-effect the supplied arguments, but it
> must not side-effect the lexical environment of the service (i.e., the
> object itself).

How is this different from E's DeepFrozen or Joe-E's Immutable?

> Ihab
> --
> Ihab A.B. Awad, Palo Alto, CA


More information about the e-lang mailing list