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/ |
On Sat, 20 Jun 2020 at 21:37, Fabio Niephaus <[hidden email]> wrote: Hi all, This is super cool Fabio. Ever since a long time ago I noticed... Behaviour >> compilerClass I always thought Squeak/Pharo might make a good polygot platform. I notice in the video [4] that you just run things from the Workspace (which itself is great) but you don't make use of the Squeak's code browser or the debugger. What are the constraints there? cheers -ben |
On Sun, 21 Jun 2020 at 12:31, Ben Coman <[hidden email]> wrote:
Also, what would need to be done to make FFI calls using GraalSqueak?
|
In reply to this post by fniephaus
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 |
Oh wow! Great presentation! This is fantastic work you have done. It is
on my list! 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? 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 > > |
In reply to this post by Ben Coman
Hi Ben:
On Sun, Jun 21, 2020 at 6:31 AM Ben Coman <[hidden email]> wrote: > > On Sat, 20 Jun 2020 at 21:37, Fabio Niephaus <[hidden email]> 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 super cool Fabio. Ever since a long time ago I noticed... > Behaviour >> compilerClass > I always thought Squeak/Pharo might make a good polygot platform. > > I notice in the video [4] that you just run things from the Workspace (which itself is great) > but you don't make use of the Squeak's code browser or the debugger. What are the constraints there? Thanks! And correct... at the moment, the system browser can't be used to write code in different languages. We've tried out some ideas that involve compilerClass, but we haven't found a good way to integrate GraalVM languages nicely yet. As you know, most languages are file-based and don't have built-in support for persistence, so there are some interesting problems to tackle. If you have any ideas in that direction, please let us know! Cheers, Fabio > > cheers -ben > > |
In reply to this post by Ben Coman
On Sun, Jun 21, 2020 at 7:35 AM Ben Coman <[hidden email]> wrote:
> > > > On Sun, 21 Jun 2020 at 12:31, Ben Coman <[hidden email]> wrote: >> >> On Sat, 20 Jun 2020 at 21:37, Fabio Niephaus <[hidden email]> 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 super cool Fabio. Ever since a long time ago I noticed... >> Behaviour >> compilerClass >> I always thought Squeak/Pharo might make a good polygot platform. >> >> I notice in the video [4] that you just run things from the Workspace (which itself is great) >> but you don't make use of the Squeak's code browser or the debugger. What are the constraints there? > > > Also, what would need to be done to make FFI calls using GraalSqueak? Some of our students worked on an FFIPlugin for TruffleSqueak (see [1]), but it's far from being complete. Just like other GraalVM languages, it's based on TruffleNFI (see [2]), an internal language that can be used to call native libraries. TruffleSqueak CI actually runs the FFIPluginTests (among many others), so you can find out what works already and what doesn't for the release at [3]. However, the polyglot API is superior in many ways, so the FFIPlugin is currently not a priority. Anyway, all contributions are well! :) Fabio [1] https://github.com/hpi-swa/trufflesqueak/commit/04507ea7eb17172f9861e30526a2cbb59a1f071b [2] https://github.com/oracle/graal/blob/87b3ac3862dcfb470bb3963f1713d73d2473d358/truffle/src/com.oracle.truffle.nfi/src/com/oracle/truffle/nfi/Parser.java#L53-L92 [3] https://github.com/hpi-swa/trufflesqueak/runs/787359010?check_suite_focus=true#step:11:2266 > >> >> cheers -ben >> > > |
In reply to this post by Ben Coman
On Sun, Jun 21, 2020 at 6:31 AM Ben Coman <[hidden email]> wrote:
> > On Sat, 20 Jun 2020 at 21:37, Fabio Niephaus <[hidden email]> 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 super cool Fabio. Ever since a long time ago I noticed... > Behaviour >> compilerClass > I always thought Squeak/Pharo might make a good polygot platform. > > I notice in the video [4] that you just run things from the Workspace (which itself is great) > but you don't make use of the Squeak's code browser or the debugger. What are the constraints there? Sorry, I forgot to talk about the debugger. This one is tricky because polyglot debugging is only supported through external instruments, not from the main thread. It might be possible to add support for debugging other languages when they run in a different thread, but we haven't tried that out yet. Anyway, GraalVM supports debugging languages using the Chrome debugger [1], and that somewhat works for Squeak. If you run TruffleSqueak with `trufflesqueak --inspect`, you can debug the image on the bytecode level starting right after the snapshot primitive: Cheers, Fabio [1] https://www.graalvm.org/docs/tools/chrome-debugger > > cheers -ben > > |
In reply to this post by David T. Lewis
On Sun, Jun 21, 2020 at 4:53 PM David T. Lewis <[hidden email]> 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. Thanks, Dave! And I agree, being able to send messages to objects from other languages is very different from talking to some other language through FFI or IPC. Squeak's tools are a great fit I think, too. > > > 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? Sure, but I must admit that I haven't contributed a new page to the wiki yet. Where would be a good place to put this? Fabio > > Dave > > |
In reply to this post by Squeak - Dev mailing list
On Sun, Jun 21, 2020 at 6:58 PM Robert Withers via Squeak-dev
<[hidden email]> 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 > > > > > > |
In reply to this post by fniephaus
On Windows 8.1, after following the instructions at
https://github.com/hpi-swa/trufflesqueak TruffleSqueak consumes 100% of two cores and is not very responsive. It this expected or am I missing something? Stef |
Hi Stef,
Sorry about that. I'm afraid I don't have access to a native Windows machine at the moment, but I'll try to have a look at it. Does the CPU usage drop after a couple of minutes? And is the UI more responsive after that? It's possible that you are observing warmup behavior, the Graal compiler is known to quite slow in terms of warmup. The GraalVM team is aware of this and actively working on it. Fabio On Sun, Jun 21, 2020 at 8:10 PM Stéphane Rollandin <[hidden email]> wrote: > > On Windows 8.1, after following the instructions at > https://github.com/hpi-swa/trufflesqueak TruffleSqueak consumes 100% of > two cores and is not very responsive. It this expected or am I missing > something? > > Stef > |
In reply to this post by fniephaus
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 interesting. 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! Kindly, Robert [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 > <[hidden email]> 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 >>> >>> >> |
In reply to this post by fniephaus
Le 21/06/2020 à 20:18, Fabio Niephaus a écrit :
> Hi Stef, > > Sorry about that. I'm afraid I don't have access to a native Windows > machine at the moment, but I'll try to have a look at it. Does the CPU > usage drop after a couple of minutes? And is the UI more responsive > after that? Here is the behavior as far as I can see: at startup, uses up to 30% of my overall CPU, then stabilize at 25% (that's two cores at 100%). Then it calms down to a couple %, but jumps back at 25% at every action in the Squeak image, even seemingly innocuous one, such as opening a browser, clicking in a workspace, etc.. All these take time (a browser takes about 2 seconds to open) Tested over the course of 20 minutes; I cannot do this for too long because my laptop heats up very fast in those conditions, unfortunately. Best, Stef |
In reply to this post by Squeak - Dev mailing list
On Sun, Jun 21, 2020 at 8:36 PM Robert Withers <[hidden email]> wrote:
> > 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 > interesting. > > Yes, I see, so it is not 16 squeak images, each running within a Java > Thread on the GraalVM. Good, so you'd only have to put your classes/jars on the classpath.Then, you should be able to access them through the Java class (e.g. `Java type: 'java.lang.System'`). > > Still, this is super work. The other awesome thing is using swing for > the UI. So squeak apps can be using native UI. Awesome! Thanks again! The JavaToolBuilder prototype is surprisingly simple, however it might be even more powerful to have something similar for Morphic. Also, I recently added support for rendering R plots directly into Morphs. You can find a demo at [1]. Fabio [1] https://twitter.com/fniephaus/status/1264839969115340800 > > Kindly, > Robert > > [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 > > <[hidden email]> 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 > >>> > >>> > >> > |
In reply to this post by Stéphane Rollandin
On Sun, Jun 21, 2020 at 9:24 PM Stéphane Rollandin
<[hidden email]> wrote: > > Le 21/06/2020 à 20:18, Fabio Niephaus a écrit : > > Hi Stef, > > > > Sorry about that. I'm afraid I don't have access to a native Windows > > machine at the moment, but I'll try to have a look at it. Does the CPU > > usage drop after a couple of minutes? And is the UI more responsive > > after that? > > Here is the behavior as far as I can see: at startup, uses up to 30% of > my overall CPU, then stabilize at 25% (that's two cores at 100%). Then > it calms down to a couple %, but jumps back at 25% at every action in > the Squeak image, even seemingly innocuous one, such as opening a > browser, clicking in a workspace, etc.. All these take time (a browser > takes about 2 seconds to open) It shouldn't stabilize with two cores at 100%, something might be off. If you have some time, maybe run VisualVM [1] (ships with GraalVM) and see what's causing the load. I'm happy to help if you have any questions. Nonetheless, there will always be some inefficiencies compared with OpenSmalltalkVM. For example, we don't have direct access to and control over the Java GC, so it's quite hard to make allInstances very fast. That's also the reason why some tools open with a slight delay. But then again, warmup is quite bad and it's expected that when you do new things, the JIT needs some time to make it fast. A demo of TruffleSqueak and OSVM running the BouncingAtomsMorph side-by-side is at [2]. Fabio [1] https://visualvm.github.io [2] https://twitter.com/fniephaus/status/1021366253045387265 > > Tested over the course of 20 minutes; I cannot do this for too long > because my laptop heats up very fast in those conditions, unfortunately. > > Best, > > Stef > |
Am So., 21. Juni 2020 um 22:24 Uhr schrieb Fabio Niephaus <[hidden email]>:
> A demo of > TruffleSqueak and OSVM running the BouncingAtomsMorph side-by-side is > at https://twitter.com/fniephaus/status/1021366253045387265 Impressive. Almost like a human being, except that this machine both learns and computes much faster. :-) |
On Sun, Jun 21, 2020 at 11:06 PM Jakob Reschke <[hidden email]> wrote:
> > Am So., 21. Juni 2020 um 22:24 Uhr schrieb Fabio Niephaus <[hidden email]>: > > A demo of > > TruffleSqueak and OSVM running the BouncingAtomsMorph side-by-side is > > at https://twitter.com/fniephaus/status/1021366253045387265 > > Impressive. Almost like a human being, except that this machine both > learns and computes much faster. :-) > Peak performance is really good, but I'm not sure you want this sort of noticeable warmup behavior in graphical tools or something like a game. Imagine playing Tetris: the JIT would make it orders of magnitudes harder to play. Fabio |
Nope, but your game simulation should not depend on the frame rate
anyway. :-) So it is rather the gaps of slowness that would make it hard to play. But why get distracted from Tetris by browsing the menus anyway... Am So., 21. Juni 2020 um 23:21 Uhr schrieb Fabio Niephaus <[hidden email]>: > > On Sun, Jun 21, 2020 at 11:06 PM Jakob Reschke <[hidden email]> wrote: > > > > Am So., 21. Juni 2020 um 22:24 Uhr schrieb Fabio Niephaus <[hidden email]>: > > > A demo of > > > TruffleSqueak and OSVM running the BouncingAtomsMorph side-by-side is > > > at https://twitter.com/fniephaus/status/1021366253045387265 > > > > Impressive. Almost like a human being, except that this machine both > > learns and computes much faster. :-) > > > > Peak performance is really good, but I'm not sure you want this sort > of noticeable warmup behavior in graphical tools or something like a > game. Imagine playing Tetris: the JIT would make it orders of > magnitudes harder to play. > > Fabio > |
In reply to this post by fniephaus
On Sun, Jun 21, 2020 at 07:40:37PM +0200, Fabio Niephaus wrote:
> On Sun, Jun 21, 2020 at 4:53 PM David T. Lewis <[hidden email]> 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. > > Thanks, Dave! And I agree, being able to send messages to objects from > other languages is very different from talking to some other language > through FFI or IPC. Squeak's tools are a great fit I think, too. > > > > > > > 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? > > Sure, but I must admit that I haven't contributed a new page to the > wiki yet. Where would be a good place to put this? > > Fabio > This might be a good place to add your new link: http://wiki.squeak.org/squeak/1340 The topic is "A Tour of the Squeak Object Engine" (extracted from Tim Rowledge's chapter of that name in the "Open Personal Computing and Multimedia". You could add a link there to your new page, then edit that new page to fill in the content. Adding new content to the wiki requires authentication with our top secret and super-sophisticated authentication protocol. The user name is "Squeak" and the password is "viewpoints". Don't tell anyone ;-) Once your page is in place, people will probably link to it from other pages. Dave |
Free forum by Nabble | Edit this page |