[squeak-dev] [ANN] TruffleSqueak 20.1.0 released

Robert Withers robert.withers at pm.me
Sun Jun 21 18:36:42 UTC 2020

I do have a ParrotTalk Java implementation [1] and am working to bring 
Raven (now called PromisesRemote in Squeak) online in Java. I will 
be(Java)/am(Squeak) switching to ASN1 encoding for PromisesRemote.

A vat is a single event loop for processing sends from a queue. (It is 
actually a single process consuming from a 4-level priority queue) This 
is the boundary of a remote capabilities service. If we can use argument 
passing to send eventual messages between vats, that's potentially 

Yes, I see, so it is not 16 squeak images, each running within a Java 
Thread on the GraalVM.

Still, this is super work. The other awesome thing is using swing for 
the UI. So squeak apps can be using native UI. Awesome!


[1] ASN1, ParrotTalk & Raven : https://github.com/CallistoHouseLtd

On 6/21/20 1:48 PM, Fabio Niephaus wrote:
> On Sun, Jun 21, 2020 at 6:58 PM Robert Withers via Squeak-dev
> <squeak-dev at lists.squeakfoundation.org> wrote:
>> Oh wow! Great presentation! This is fantastic work you have done. It is
>> on my list!
> Thanks a lot, Robert!
>> It struck me in a question towards the end about manipulating Java
>> Threads. Here we have a solution to the multi-core case.
>> In PromisesRemote, with a 16 core processor, create 15 Java Threads and
>> have a different Vat running on each thread. Instead of doing a network
>> connection between vats on the same core, use TruffleSqueak's foreign
>> language argument passing to another Java Thread's Vat and do not touch
>> it again. Do you think something like this might work?
> I see no reason why this shouldn't work, at least conceptually. I'm
> not sure what a Vat is, but I'm afraid you can't run TruffleSqueak on
> multiple threads just yet. So far, that use case hasn't been a
> priority... but you can let Java or some other GraalVM language with
> proper threading support do any kind of work for you of course.
> Cheers,
> Fabio
>> Kindly,
>> Robert
>> On 6/21/20 10:53 AM, David T. Lewis wrote:
>>> On Sat, Jun 20, 2020 at 03:37:09PM +0200, Fabio Niephaus wrote:
>>>> Hi all,
>>>> I'd like to officially announce the first stable release of
>>>> TruffleSqueak [1], a Squeak/Smalltalk VM and Polyglot Programming
>>>> Environment for the GraalVM [2]. As some of you know, we at HPI [3]
>>>> have been working on this for quite a while and open-sourced it a few
>>>> weeks after our presentation at ESUG'19 [4].
>>>> The virtual machine is implemented in Truffle [5], GraalVM's
>>>> Java-based language implementation framework. The image has direct
>>>> access to GraalVM's language interoperability protocol [6] and based
>>>> on this, we have adapted the workspace and inspection tools so that
>>>> they work consistently for objects from Javascript, Python, R, Ruby,
>>>> and all other languages supported by GraalVM. In addition, the image
>>>> comes with our polyglot notebook system [7] and a polyglot code editor
>>>> [8]. You may also find our paper on TruffleSqueak (formerly
>>>> GraalSqueak) [9] and our blog post on "Smalltalk with the GraalVM"
>>>> [10] an interesting read. Nonetheless, please keep in mind that
>>>> TruffleSqueak is a research project, so there will be bugs (please
>>>> report them at [11]) and things left to do (feedback is welcome!).
>>>> You can follow TruffleSqueak on Twitter [12] for more updates. On June
>>>> 24, I'm also going to talk about TruffleSqueak in the UK Smalltalk
>>>> User Group meeting [13], and you are invited to join us.
>>>> Lastly, I???d like to thank everyone who has contributed to
>>>> TruffleSqueak and I'm excited to see what you???re going to do with it.
>>>> Fabio
>>>> [1] https://github.com/hpi-swa/trufflesqueak
>>>> [2] https://www.graalvm.org
>>>> [3] https://hpi.de/swa
>>>> [4] https://www.youtube.com/watch?v=FAk3Ec8hmzk
>>>> [5] https://github.com/oracle/graal/tree/master/truffle
>>>> [6] https://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/interop/InteropLibrary.html
>>>> [7] https://doi.org/10.1145/3328433.3328434
>>>> [8] https://medium.com/graalvm/hpi-polyglot-programming-seminar-3fd06ffa59d2
>>>> [9] https://doi.org/10.1145/3357390.3361024
>>>> [10] https://www.javaadvent.com/2019/12/smalltalk-with-the-graalvm.html
>>>> [11] https://github.com/hpi-swa/trufflesqueak/issues
>>>> [12] https://twitter.com/TruffleSqueak/
>>>> [13] https://www.meetup.com/UKSTUG/events/cbklbrybcjbgc/
>>> This is really interesting work, and it is a lot of information to absorb.
>>> I just watched the ESUG video, which is a good place to start. It is quite
>>> a different perspective to think of "foreign" objects that can interact
>>> directly without the need for layers of remote calls.
>>> Thank you for collecting alll of these links all into an announcement here.
>>> May I suggest that you paste it into a page on wiki.squeak.org as well?
>>> Dave

More information about the Squeak-dev mailing list