I understand that Sista is operational. I would like to try. How can I build a Sista vm? I went to linux64x64/squeak.sista.spur and there is a file there NotYetImplemented. I appreciate any guidance. -- Kindly, Robert |
Hi Robert, I worked on sista and I don't think I have ever tried it on 64 bits. I run my experiments on x86. My expectation for 64 bits is that you have to write build files inspired from the 32 bits sista.spur and the 64 bits cog.spur files. Then you have to run it in the VM simulator and fix the various few problems you see (likely a few instructions are not implemented in the x64 back-end). Then you can build a system. It's not so much work. There was a released alpha version of Sista [1], which I used to run the benchmark of a research paper [2]. If you compile a VM with sources from that time (recent sources have difference that will break it), and follow the guidelines from the blog post [1], you should be able to reproduce the benchmark results from the paper. As I remember it, most benchmarks run without crashes at 1.5x and the development tools could be run for a while without crashes. Debugging and on-the-fly code changes in sista are only partially implemented (there's the potential to do it, but one has to implement it). I would say it is currently in a similar state as the strongtalk VM [3], while being compatible with Squeak and other Cog clients. I don't know what you mean by operational. If you're looking to experiment with it, tweak it to run some benchmarks, then you should be able to do it. If you're looking to deploy an application on a production VM, then significant work is left to do so (discuss directly with Eliot if that is the case). Have fun with the project :-) On Mon, Mar 23, 2020 at 3:43 PM Robert <[hidden email]> wrote:
|
Bonjour Clément, quoi de neuf? Eliot? This is all very interesting news. I am sad to hear that 64-bit
will need to be built. Then I decide not to be sad, that it is an
opportunity to build a good foundation. Therefore, I request of
the vm-dev list, who is a part of the Sista Team? Lots of good
work to be done. Let us get it on! PortPortPort. Which way is which what? Kindly, On 3/24/20 1:58 PM, Clément Béra wrote:
-- Kindly, Robert |
In reply to this post by Clément Béra
Hi Cl??ment, Sista works fine on 64 bits :-) Eliot added the necessary image support to Squeak, based on your eariler Pharo implementation. We switched Squeak trunk over to Sista in trunk a few weeks ago, and have had no problems at all. All Squeak development is proceeding with Sista as the default bytecode, and most of us are on 64-bits. So thank you! Dave On Tue, Mar 24, 2020 at 06:58:37PM +0100, Cl??ment B??ra wrote: > > Hi Robert, > > I worked on sista and I don't think I have ever tried it on 64 bits. I run > my experiments on x86. My expectation for 64 bits is that you have to write > build files inspired from the 32 bits > sista.spur and the 64 bits cog.spur files. Then you have to run it in the > VM simulator and fix the various few problems you see (likely a few > instructions are not implemented in the > x64 back-end). Then you can build a system. It's not so much work. > > There was a released alpha version of Sista [1], which I used to run the > benchmark of a research paper [2]. If you compile a VM with sources from > that time (recent sources have difference > that will break it), and follow the guidelines from the blog post [1], you > should be able to reproduce the benchmark results from the paper. > > As I remember it, most benchmarks run without crashes at 1.5x and the > development tools could be run for a while without crashes. Debugging and > on-the-fly code changes in sista are > only partially implemented (there's the potential to do it, but one has to > implement it). I would say it is currently in a similar state as the > strongtalk VM [3], while being compatible with > Squeak and other Cog clients. > > I don't know what you mean by operational. If you're looking to experiment > with it, tweak it to run some benchmarks, then you should be able to do it. > If you're looking to deploy an application > on a production VM, then significant work is left to do so (discuss > directly with Eliot if that is the case). > > Have fun with the project :-) > > [1] https://clementbera.wordpress.com/2017/07/19/sista-open-alpha-release/ > [2] https://hal.inria.fr/hal-01596321/ > [3] http://strongtalk.org/ > > On Mon, Mar 23, 2020 at 3:43 PM Robert <[hidden email]> wrote: > > > > > I understand that Sista is operational. I would like to try. How can I > > build a Sista vm? I went to linux64x64/squeak.sista.spur and there is a > > file there NotYetImplemented. > > > > I appreciate any guidance. > > > > -- > > Kindly, > > Robert > > > > > > > > -- > Cl??ment B??ra > https://clementbera.github.io/ > https://clementbera.wordpress.com/ |
Hi Dave, I thought I saw something about it. This is great! I'm git
stupid, how can I force merge with git to pull the latest vm code,
to overwrite my locally generated files? Which version of VMMaker
is appropriate? I'm excited! Kindly, On 3/24/20 2:40 PM, David T. Lewis
wrote:
Hi Cl??ment, Sista works fine on 64 bits :-) Eliot added the necessary image support to Squeak, based on your eariler Pharo implementation. We switched Squeak trunk over to Sista in trunk a few weeks ago, and have had no problems at all. All Squeak development is proceeding with Sista as the default bytecode, and most of us are on 64-bits. So thank you! Dave On Tue, Mar 24, 2020 at 06:58:37PM +0100, Cl??ment B??ra wrote:Hi Robert, I worked on sista and I don't think I have ever tried it on 64 bits. I run my experiments on x86. My expectation for 64 bits is that you have to write build files inspired from the 32 bits sista.spur and the 64 bits cog.spur files. Then you have to run it in the VM simulator and fix the various few problems you see (likely a few instructions are not implemented in the x64 back-end). Then you can build a system. It's not so much work. There was a released alpha version of Sista [1], which I used to run the benchmark of a research paper [2]. If you compile a VM with sources from that time (recent sources have difference that will break it), and follow the guidelines from the blog post [1], you should be able to reproduce the benchmark results from the paper. As I remember it, most benchmarks run without crashes at 1.5x and the development tools could be run for a while without crashes. Debugging and on-the-fly code changes in sista are only partially implemented (there's the potential to do it, but one has to implement it). I would say it is currently in a similar state as the strongtalk VM [3], while being compatible with Squeak and other Cog clients. I don't know what you mean by operational. If you're looking to experiment with it, tweak it to run some benchmarks, then you should be able to do it. If you're looking to deploy an application on a production VM, then significant work is left to do so (discuss directly with Eliot if that is the case). Have fun with the project :-) [1] https://clementbera.wordpress.com/2017/07/19/sista-open-alpha-release/ [2] https://hal.inria.fr/hal-01596321/ [3] http://strongtalk.org/ On Mon, Mar 23, 2020 at 3:43 PM Robert [hidden email] wrote:I understand that Sista is operational. I would like to try. How can I build a Sista vm? I went to linux64x64/squeak.sista.spur and there is a file there NotYetImplemented. I appreciate any guidance. -- Kindly, Robert-- Cl??ment B??ra https://clementbera.github.io/ https://clementbera.wordpress.com/ -- Kindly, Robert |
An update. I fetched and merged the changes in opensmalltalk-vm. So what do I need to do Sista? Get a VMMaker image with Sista loaded, which is what I thought BuildSqueakSpurTrunkVMMakerImage.st does. But it fails. k, m On 3/24/20 2:46 PM, Robert wrote:
-- Kindly, Robert |
Hi Robert, You do not need to build a VM to get Sista. Eliot put all of the Sista support into the VM a long time ago, so if you are any VM from the last year or two, it will have the necessary Sista support. To activate Sista in your Squeak image, start with a Squeak 5.3 image, set the update URL preference to point to http://source.squeak.org/trunk, and update your image. The update will switch your image over to use Sista. Dave On Tue, Mar 24, 2020 at 08:55:09PM +0000, Robert wrote: > An update. > > I fetched and merged the changes in opensmalltalk-vm. > I go to the image directory. > I run updatespur64SistaV1image.sh > Then, as there is no vmmaker script for Sista, I launch # squeak trunk6-sista-64.image & > Goto file list and select the file BuildSqueakSpurTrunkVMMakerImage.st and filein. > An error occurs from MultiByteFileStream(PositionalStream)>>#skipStyleChunk with this error: > > #primGetPosition: failed. I think it is in the middle of reading in the BuildSqueakSpurTrunkVMMakerImage.st, as in that is what the MultiByteFileStream is opened upon. > > So what do I need to do Sista? Get a VMMaker image with Sista loaded, which is what I thought BuildSqueakSpurTrunkVMMakerImage.st does. But it fails. > > k, m > > On 3/24/20 2:46 PM, Robert wrote: > > > Hi Dave, > > > > I thought I saw something about it. This is great! I'm git stupid, how can I force merge with git to pull the latest vm code, to overwrite my locally generated files? Which version of VMMaker is appropriate? > > > > quotar@ganymede:~/tribe/opensmalltalk-vm$ git pull > > remote: Enumerating objects: 619, done. > > remote: Counting objects: 100% (619/619), done. > > remote: Compressing objects: 100% (61/61), done. > > remote: Total 645 (delta 523), reused 617 (delta 521), pack-reused 26 > > Receiving objects: 100% (645/645), 8.11 MiB | 2.30 MiB/s, done. > > Resolving deltas: 100% (526/526), completed with 117 local objects. > > From https://github.com/OpenSmalltalk/opensmalltalk-vm > > 1861db582..00de58438 Cog -> origin/Cog > > * [new tag] 202003021730 -> 202003021730 > > Updating 1861db582..00de58438 > > error: Your local changes to the following files would be overwritten by merge: > > > > I'm excited! > > > > Kindly, > > mumbles > > > > On 3/24/20 2:40 PM, David T. Lewis wrote: > > > >> Hi Cl??ment, > >> > >> Sista works fine on 64 bits :-) > >> > >> Eliot added the necessary image support to Squeak, based on your eariler > >> Pharo implementation. We switched Squeak trunk over to Sista in trunk > >> a few weeks ago, and have had no problems at all. All Squeak development > >> is proceeding with Sista as the default bytecode, and most of us are > >> on 64-bits. > >> > >> So thank you! > >> Dave > >> > >> On Tue, Mar 24, 2020 at 06:58:37PM +0100, Cl??ment B??ra wrote: > >> > >>> Hi Robert, > >>> > >>> I worked on sista and I don't think I have ever tried it on 64 bits. I run > >>> my experiments on x86. My expectation for 64 bits is that you have to write > >>> build files inspired from the 32 bits > >>> sista.spur and the 64 bits cog.spur files. Then you have to run it in the > >>> VM simulator and fix the various few problems you see (likely a few > >>> instructions are not implemented in the > >>> x64 back-end). Then you can build a system. It's not so much work. > >>> > >>> There was a released alpha version of Sista [1], which I used to run the > >>> benchmark of a research paper [2]. If you compile a VM with sources from > >>> that time (recent sources have difference > >>> that will break it), and follow the guidelines from the blog post [1], you > >>> should be able to reproduce the benchmark results from the paper. > >>> > >>> As I remember it, most benchmarks run without crashes at 1.5x and the > >>> development tools could be run for a while without crashes. Debugging and > >>> on-the-fly code changes in sista are > >>> only partially implemented (there's the potential to do it, but one has to > >>> implement it). I would say it is currently in a similar state as the > >>> strongtalk VM [3], while being compatible with > >>> Squeak and other Cog clients. > >>> > >>> I don't know what you mean by operational. If you're looking to experiment > >>> with it, tweak it to run some benchmarks, then you should be able to do it. > >>> If you're looking to deploy an application > >>> on a production VM, then significant work is left to do so (discuss > >>> directly with Eliot if that is the case). > >>> > >>> Have fun with the project :-) > >>> > >>> [1] > >>> https://clementbera.wordpress.com/2017/07/19/sista-open-alpha-release/ > >>> [2] > >>> https://hal.inria.fr/hal-01596321/ > >>> [3] > >>> http://strongtalk.org/ > >>> On Mon, Mar 23, 2020 at 3:43 PM Robert > >>> [<[hidden email]>](mailto:[hidden email]) > >>> wrote: > >>> > >>>> I understand that Sista is operational. I would like to try. How can I > >>>> build a Sista vm? I went to linux64x64/squeak.sista.spur and there is a > >>>> file there NotYetImplemented. > >>>> > >>>> I appreciate any guidance. > >>>> > >>>> -- > >>>> Kindly, > >>>> Robert > >>> > >>> -- > >>> Cl??ment B??ra > >>> https://clementbera.github.io/ > >>> > >>> https://clementbera.wordpress.com/ > > > > -- > > Kindly, > > Robert > > -- > Kindly, > Robert |
Awesome, I guess I am running Sista now. That's what the bytecode set is. Thanks for making this such a breeze! K, m On 3/24/20 6:25 PM, David T. Lewis wrote: > Hi Robert, > > You do not need to build a VM to get Sista. Eliot put all of the > Sista support into the VM a long time ago, so if you are any VM > from the last year or two, it will have the necessary Sista support. > > To activate Sista in your Squeak image, start with a Squeak 5.3 image, > set the update URL preference to point to http://source.squeak.org/trunk, > and update your image. The update will switch your image over to use > Sista. > > Dave > > > On Tue, Mar 24, 2020 at 08:55:09PM +0000, Robert wrote: >> An update. >> >> I fetched and merged the changes in opensmalltalk-vm. >> I go to the image directory. >> I run updatespur64SistaV1image.sh >> Then, as there is no vmmaker script for Sista, I launch # squeak trunk6-sista-64.image & >> Goto file list and select the file BuildSqueakSpurTrunkVMMakerImage.st and filein. >> An error occurs from MultiByteFileStream(PositionalStream)>>#skipStyleChunk with this error: >> >> #primGetPosition: failed. I think it is in the middle of reading in the BuildSqueakSpurTrunkVMMakerImage.st, as in that is what the MultiByteFileStream is opened upon. >> >> So what do I need to do Sista? Get a VMMaker image with Sista loaded, which is what I thought BuildSqueakSpurTrunkVMMakerImage.st does. But it fails. >> >> k, m >> >> On 3/24/20 2:46 PM, Robert wrote: >> >>> Hi Dave, >>> >>> I thought I saw something about it. This is great! I'm git stupid, how can I force merge with git to pull the latest vm code, to overwrite my locally generated files? Which version of VMMaker is appropriate? >>> >>> quotar@ganymede:~/tribe/opensmalltalk-vm$ git pull >>> remote: Enumerating objects: 619, done. >>> remote: Counting objects: 100% (619/619), done. >>> remote: Compressing objects: 100% (61/61), done. >>> remote: Total 645 (delta 523), reused 617 (delta 521), pack-reused 26 >>> Receiving objects: 100% (645/645), 8.11 MiB | 2.30 MiB/s, done. >>> Resolving deltas: 100% (526/526), completed with 117 local objects. >>> From https://github.com/OpenSmalltalk/opensmalltalk-vm >>> 1861db582..00de58438 Cog -> origin/Cog >>> * [new tag] 202003021730 -> 202003021730 >>> Updating 1861db582..00de58438 >>> error: Your local changes to the following files would be overwritten by merge: >>> >>> I'm excited! >>> >>> Kindly, >>> mumbles >>> >>> On 3/24/20 2:40 PM, David T. Lewis wrote: >>> >>>> Hi Cl??ment, >>>> >>>> Sista works fine on 64 bits :-) >>>> >>>> Eliot added the necessary image support to Squeak, based on your eariler >>>> Pharo implementation. We switched Squeak trunk over to Sista in trunk >>>> a few weeks ago, and have had no problems at all. All Squeak development >>>> is proceeding with Sista as the default bytecode, and most of us are >>>> on 64-bits. >>>> >>>> So thank you! >>>> Dave >>>> >>>> On Tue, Mar 24, 2020 at 06:58:37PM +0100, Cl??ment B??ra wrote: >>>> >>>>> Hi Robert, >>>>> >>>>> I worked on sista and I don't think I have ever tried it on 64 bits. I run >>>>> my experiments on x86. My expectation for 64 bits is that you have to write >>>>> build files inspired from the 32 bits >>>>> sista.spur and the 64 bits cog.spur files. Then you have to run it in the >>>>> VM simulator and fix the various few problems you see (likely a few >>>>> instructions are not implemented in the >>>>> x64 back-end). Then you can build a system. It's not so much work. >>>>> >>>>> There was a released alpha version of Sista [1], which I used to run the >>>>> benchmark of a research paper [2]. If you compile a VM with sources from >>>>> that time (recent sources have difference >>>>> that will break it), and follow the guidelines from the blog post [1], you >>>>> should be able to reproduce the benchmark results from the paper. >>>>> >>>>> As I remember it, most benchmarks run without crashes at 1.5x and the >>>>> development tools could be run for a while without crashes. Debugging and >>>>> on-the-fly code changes in sista are >>>>> only partially implemented (there's the potential to do it, but one has to >>>>> implement it). I would say it is currently in a similar state as the >>>>> strongtalk VM [3], while being compatible with >>>>> Squeak and other Cog clients. >>>>> >>>>> I don't know what you mean by operational. If you're looking to experiment >>>>> with it, tweak it to run some benchmarks, then you should be able to do it. >>>>> If you're looking to deploy an application >>>>> on a production VM, then significant work is left to do so (discuss >>>>> directly with Eliot if that is the case). >>>>> >>>>> Have fun with the project :-) >>>>> >>>>> [1] >>>>> https://clementbera.wordpress.com/2017/07/19/sista-open-alpha-release/ >>>>> [2] >>>>> https://hal.inria.fr/hal-01596321/ >>>>> [3] >>>>> http://strongtalk.org/ >>>>> On Mon, Mar 23, 2020 at 3:43 PM Robert >>>>> [<[hidden email]>](mailto:[hidden email]) >>>>> wrote: >>>>> >>>>>> I understand that Sista is operational. I would like to try. How can I >>>>>> build a Sista vm? I went to linux64x64/squeak.sista.spur and there is a >>>>>> file there NotYetImplemented. >>>>>> >>>>>> I appreciate any guidance. >>>>>> >>>>>> -- >>>>>> Kindly, >>>>>> Robert >>>>> -- >>>>> Cl??ment B??ra >>>>> https://clementbera.github.io/ >>>>> >>>>> https://clementbera.wordpress.com/ >>> -- >>> Kindly, >>> Robert >> -- >> Kindly, >> Robert -- Kindly, Robert |
In reply to this post by Robert Withers-2
Hi Robert, Hi Clément, Hi interested folks, On Mar 24, 2020, at 11:28 AM, Robert <[hidden email]> wrote:
I don’t think Sista is anywhere near production. For me three major pieces of work need to be done: a) porting it to Squeak; this is a personal requirement; I’m productive in Squeak and the simulator. This is one half of that. b) refactoring the system so it runs alongside the simulator. In Sista/Scorch the Scorch optimizer lives in the image, alongside applications, and above the VM. The base Sista JIT inserts performance counters in conditional branches. When these counters trip a send back into the image is generated, just like a doesNotUnderstand: or aboutToReturn:through:. In a production deployment the send-back invokes the Scorch optimizer, which analyzes the code around the counter send-back, optimizes, generates and installs a new optimized method into the relevant method dictionary, and continues execution. The problem here is one of reliability. If there are bugs in the Scorch optimizer, just as if there are bugs in the bytecode compiler, ones image can break. The problem is much more challenging for Scorch since it Is a much more sophisticated compiler, and because it is invoked asynchronously, based on image activity. It is however straight-forward to restructure things so that - the vm simulator delivers the send back not within the simulation but to an instance of Scorch living in the current image alongside the simulator, - Scorch uses mirrors to access the class hierarchy, and a set of mirrors is writtten which access the simulated image, not the current image (of which Svorch would be none the wiser) Now Scorch can be developed against the simulation, and hence not damage the current image; it can be profiled without affecting actual performance, and repeatability is much more easily achieved. c) the JIT should be extended to do much better register allocation (this is work in progress) So what I’m interested in is people good at compilers who find this interesting to join me in this work. Taking this route should get us to a reliable Scorch/Sista more quickly than the develop-in-image approach Clément (& I) were taking previously. Robert, please wait until we’ve made more progress.
|
In reply to this post by David T. Lewis
Hi David, > On Mar 24, 2020, at 11:40 AM, David T. Lewis <[hidden email]> wrote: > > > Hi Cl??ment, > > Sista works fine on 64 bits :-) > > Eliot added the necessary image support to Squeak, based on your eariler > Pharo implementation. We switched Squeak trunk over to Sista in trunk > a few weeks ago, and have had no problems at all. All Squeak development > is proceeding with Sista as the default bytecode, and most of us are > on 64-bits. Using the non-optimizing standard part of the bytecode set is one thing and a long way from having a functional Scorch adaptive optimizer editing the system behind the scenes. Clément has this working in 32-bits in Pharo. I want it working in both 32 and 64 bits in Squeak, and as I just explained I want it working in the simulator first. Of course having the Sista bytecode art and full blocks as the default is good progress in the right direction toon, but there’s a ways to go yet. > > So thank you! > Dave > > >> On Tue, Mar 24, 2020 at 06:58:37PM +0100, Cl??ment B??ra wrote: >> >> Hi Robert, >> >> I worked on sista and I don't think I have ever tried it on 64 bits. I run >> my experiments on x86. My expectation for 64 bits is that you have to write >> build files inspired from the 32 bits >> sista.spur and the 64 bits cog.spur files. Then you have to run it in the >> VM simulator and fix the various few problems you see (likely a few >> instructions are not implemented in the >> x64 back-end). Then you can build a system. It's not so much work. >> >> There was a released alpha version of Sista [1], which I used to run the >> benchmark of a research paper [2]. If you compile a VM with sources from >> that time (recent sources have difference >> that will break it), and follow the guidelines from the blog post [1], you >> should be able to reproduce the benchmark results from the paper. >> >> As I remember it, most benchmarks run without crashes at 1.5x and the >> development tools could be run for a while without crashes. Debugging and >> on-the-fly code changes in sista are >> only partially implemented (there's the potential to do it, but one has to >> implement it). I would say it is currently in a similar state as the >> strongtalk VM [3], while being compatible with >> Squeak and other Cog clients. >> >> I don't know what you mean by operational. If you're looking to experiment >> with it, tweak it to run some benchmarks, then you should be able to do it. >> If you're looking to deploy an application >> on a production VM, then significant work is left to do so (discuss >> directly with Eliot if that is the case). >> >> Have fun with the project :-) >> >> [1] https://clementbera.wordpress.com/2017/07/19/sista-open-alpha-release/ >> [2] https://hal.inria.fr/hal-01596321/ >> [3] http://strongtalk.org/ >> >>> On Mon, Mar 23, 2020 at 3:43 PM Robert <[hidden email]> wrote: >>> >>> >>> I understand that Sista is operational. I would like to try. How can I >>> build a Sista vm? I went to linux64x64/squeak.sista.spur and there is a >>> file there NotYetImplemented. >>> >>> I appreciate any guidance. >>> >>> -- >>> Kindly, >>> Robert >>> >>> >>> >> >> -- >> Cl??ment B??ra >> https://clementbera.github.io/ >> https://clementbera.wordpress.com/ > |
Free forum by Nabble | Edit this page |