[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Object orientation in es, and a bug?



Scott Schwartz writes:
> | Well, yes, it's probably a bug if you want to think of es as a pure
> | lambda calculus, but it's a necessary consequence of using fork and the
> | environment on Unix.
> Isn't it the case that a more complex serialization could preserve the
> sharing?  Something like common lisp's external representation of
> circular objects?

Some serialization and/or tagging of common objects would help, but the
real problem is that environment variables are not shared on Unix
between parent and child processes.  I can't do anything in a child
process to affect the values in its parent's environment.

And before anyone points out that Plan 9 lets parents and children share
environments, the problem with that is that it's too coarse grained for
what es wants, which is sharing variables by default, but replacing them
in a child for that process and its children.  That is, es conceptually
wants the environment to be a set of fluid variables.

> | Trying to shoehorn the semantics of the lambda calculus on top of Unix
> | may not have been the smartest idea I ever had.
> Heretic!

Well, I have been reconsidering all my rather dogmatic beliefs.  Feel
free to put me up in front of the Unix inquisition.

I'm not saying I don't still like es.  I've had concerns all along that
its model doesn't match Unix's very well.  I'd go so far as to say the
problems in es are fundamentally the tension between two different 1970s
computer systems, Unix and the Lisp machines.

Paul