Hi Stefan,
On 10/24/2015 04:16 AM, Stefan Marr wrote:
Hi Robert:
On 22 Oct 2015, at 15:11, Robert Withers <[email protected]> wrote:
My thoughts in the VM are to add a pool to the stack and the queue of an
event-loop. For processes/continuations what are waiting for a signal, they
are not scheduled into the queue. I believe that this model is a good one for a
single-image-threaded execution machinery: a scheduling event-loop. This is
pure intuition.
There is no need for changing the VM, it is already doing that. When a process
is blocked on a semaphore, it is not on the scheduler queue, but on the
semaphore, and will only be scheduled once the semaphore has been signaled.
With an event-loop as the core construct of the VM, hypothetically
speaking from my intution, the async FFI and threeaded VM would have a
structural solution. This context changes the mechanics of semaphores, I
think. As well semaphores are how the VM signals into Pharo/Squeak so
they would definitely change.
Pharo/Smalltalk brings all the basics for implementing the model, except any
form of strong guarantee for isolation between vats. But that’s the usual
restriction with libraries, so, shouldn’t come as a surprise.
(Also, Smalltalk’s classes really do not play well with vats. What about their
state for instance?)
Yes, indeed. Globals are a security evil. Newspeak gets this right. If
Squeak went to hierarchical namespaces, changed literal lookup and
eliminated Globals, it would be much more secure I think.
Robert
Best regards
Stefan
Best,
Robert
Stef