Embed Notice
HTML Code
Corresponding Notice
- Embed this notice@sicp @scathach @jeffcliff @p @Suiseiseki > Sounds proprietary. :absolutely_proprietary:
It's comparable to a lambda in Emacs Lisp (to a more limited extent, Elisp gets weird about the lexical vs dynamic situation and there are a bunch of caveats) or Common Lisp.
One can put access to some resources inside of one, and from within the language there is simply no way for anything receiving that lambda to crack it open and retrieve that resource (at least without messing with FFI and starting to parse the runtime's memory).
> A process shouldn't have to give away the resources you don't need, but whatever you get your hands on you should be able to do with what you please. If you're just sending blunt data it's not even a problem.
Consider C as the host language. It permits any function to dig into any memory it feels like. There is no simple way to have separate programs share memory without also enabling ambient authority of that sort.
And so an additional runtime capable of enforcing sane isolation properties becomes necessary.
That said, Common Lisp as standardized isn't sufficient for a single runtime with arbitrary program threads. Nesting environments without arbitrary access to others (via various dynamic/special elements) would be necessary (concepts written about in SICL, first-class global environments).