Hi Stefan, On 10/24/2015 04:16 AM, Stefan Marr wrote:
Hi Robert:
On 22 Oct 2015, at 15:11, Robert Withers <robert.w.withers@gmail.com> 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