Capabilities in Squeak (attn: Lex Spoon and friends)
reefedjib at yahoo.com
Tue Oct 17 02:24:08 UTC 2006
On Oct 14, 2006, at 9:45 PM, Michael van der Gulik wrote:
> In the past there have been a couple of ambitious projects that
> allow security in Squeak such as Squeak-E. What became of these? Is
> there code floating around somewhere? I'm only seeing Squeak-ELib
> on squeakmap.
Squeak-Elib is the only result from Squeak-E. I also implement a
Future class (called a Promise) which accepts messages and forwards
them prior to resolving to a value. It fails in 2 senses.
First of all there are bugs when resolving the result of a
computation to a promise, particularly when going inter-vat, which is
handled differently than an intra-vat promise.
Secondly, FarRefs and promises don't understand all the base protocol
that a normal object understands so many of the tools in the image
don't deal well with eventual objects. Ultimately, this is your
issue with needing VM changes, I believe. Primitives cannot handle
eventual arguments. One example is when sending a #printString to an
eventual object returns a promise then is used as the argument for
rendering in Morphic. Another example is an eventual ref to true is
sent the message #ifTrue:. What I think you would want to have is to
protect the primitives. In a primitive, if an argument is eventual,
send an "invokePrimitive" message to that ref, such that the
primitive will be invoked eventually. That changes all primitives,
I have a vm changes file that changes #== and #class out there.
I have stopped development of Squeak-Elib.
I hope this helps,
More information about the Squeak-dev