<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000"><span style="font-family:arial,sans-serif;color:rgb(34,34,34)">On 19 February 2018 at 16:23, Tony Garnock-Jones </span><span dir="ltr" style="font-family:arial,sans-serif;color:rgb(34,34,34)"><<a href="mailto:tonyg@leastfixedpoint.com" target="_blank">tonyg@leastfixedpoint.com</a>></span><span style="font-family:arial,sans-serif;color:rgb(34,34,34)"> wrote:</span><br></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
About a year ago I accidentally a small Erlang-style Actors<br>
implementation for Squeak, based on subclassing Process, using Message<br>
for, er, messages, and using Promise for RPC.<br>
<br>
It draws on my experience of Erlang programming in a few ways: it has<br>
links and monitors for between-actor failure signalling; it has library<br>
actors representing sockets; it has a simple tracing facility. There's<br>
crude and no doubt heavily problematic support for basic Morphic<br>
interaction.<br>
<br>
Over the past couple of weeks I've been dusting it off, fleshing it out,<br>
and documenting it. (Hence some of the stuff I've been trying out wrt<br>
Promises.)<br>
<br>
It's available at <a href="http://squeaksource.com/Actors.html" rel="noreferrer" target="_blank">http://squeaksource.com/<wbr>Actors.html</a>.<br>
<br>
Installation instructions, documentation and tutorials can be found at<br>
<br>
    <a href="https://tonyg.github.io/squeak-actors/" rel="noreferrer" target="_blank">https://tonyg.github.io/<wbr>squeak-actors/</a><br>
<br>
(I spent rather too much time writing documentation.)<br>
<br>
It's by no means as ambitious as Squeak-E or Henry's Raven - it only<br>
deals with single-image in-image messaging between actors, and doesn't<br>
have the E-style ability to refer to objects within a vat. Instead it<br>
follows Erlang in having references denote actors (i.e. vats, roughly),<br>
rather than anything more fine-grained.<br>
<br>
Next steps could be:<br>
<br>
 - a Workspace that was actor aware, i.e. each Workspace an actor.<br>
 - better Supervisors.<br>
 - tools for visualizing the current constellation of actors,<br>
   perhaps based on Ned Konz's Connectors?<br>
 - an ActorEventTrace subclass that is able to draw message interaction<br>
   diagrams as a Morph.<br>
 - a screencast of building an IRC client maybe?<br>
<br>
Cheers,<br>
  Tony<br>
<br>
PS. I did try to port it to Pharo. The first obstacle was lack of class<br>
Promise - fairly easily overcome. The second, worse obstacle was weird<br>
failures and incompatibilities in Socket support. I gave up at that point.<br>
<br>
PPS. I'd love to see it running on Cuis.<br>
<br>
</blockquote></div><br></div><div class="gmail_extra"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">​Nice!</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">- Bert -​</div><br></div></div>