Hi All,
finally the Spur Squeak trunk image is updateable. The image in http://www.mirandabanda.org/files/Cog/SpurImages/2014-10-16/ was created today and thanks to Bert Freudenberg's latest Monticello work can be updated independently of the non-Spur trunk. Spur VMs are available in http://www.mirandabanda.org/files/Cog/VM/VM.r3105/ (and later as they appear). Without wanting to appear too overconfident the Spur system looks to be ready for use apart from image segments (which I hope to have working some time next month). I'm really interested in having this stress tested by as many people as possible. Spur really does offer a significant performance and functionality improvement over the current system, but it needs testing to ensure its reliability. Esteban Lorenzano is hard at work on the Pharo bootstrap for Spur so I hope Pharo 4 Spur will be available soon. As far as trunk goes, using Spur alongside non-Spur trunk is going to be difficult to manage for the near future. Right now, Spur modifies the Collections, Compiler, Kernel and System packages, and this is done by auto-editing the non-Spur versions of those packages, something I do periodically as new versions arrive. I also auto-edit trunk configurations (the part of the image update scheme that ensures packages are loaded in the right order when there are dependencies between packages) from non-Spur "update" to Spur "update.spur" forms. This at east means that Spur can keep up with trunk. But it does /not/ provide a way of committing to Collections.spur, Compiler.spur, Kernel.spur or System.spur without getting out of sync with non-Spur trunk. Note that apart from these packages, one /can/ safely commit any other package from a Spur image to trunk. Right now the plan is to release both V3 (the pre-Spur format) and Spur versions of Squeak 4.6 (I hope it'll be called Squeak 5.0). This isn't my preference. I'd like to see just Spur released, once reliability is verified. But I understand the safety and backward-compatibility concerns (Spur won't be able to load V3 image segments, and vice verse). The issue is of course that we have this tricky package situation to manage where, to keep the two systems in sync, modifications to Collections, Compiler, Kernel and System need to be committed from V3 and auto-edited to Spur. I think that's too clumsy to be practicable. Perhaps allowing the two systems to fork and doing a manual merge will be acceptable, but it'll be work to keep them in sync. -- best, Eliot
|
Hi Eliot. I will make time to install Spur (assuming it's presently working on the Mac.) I'll use it as my primary VM unless I run into problems, in which case I will report them. I think I understood you, but I want to be clear; you're saying that (like Cog) changes needed to be made to the image to support the new VM. Query: can the Interpreter (either that or Stack) VM be modified to support images which run above Spur? Or is this necessarily a forking event? (CC Cuis folks.) Query: should incorporating the changes to the image that you have outlined below into Cuis allow Cuis to make use of the new VM? (I perhaps am digging very vaguely into what those changes are. Sorry I'm not presently equipped to ask smarter questions: I'm probably just beside myself with enthusiasm for your work and perchance "jumping the gun" a bit.) TIA, Casey P.S. Please forgive the pun, if you noticed it! :D
|
In reply to this post by Eliot Miranda-2
On Thu, 16 Oct 2014, Eliot Miranda wrote:
> Hi All, > finally the Spur Squeak trunk image is updateable. The image in http://www.mirandabanda.org/files/Cog/SpurImages/2014-10-16/ was created today and thanks to Bert Freudenberg's latest Monticello work can > be updated independently of the non-Spur trunk. Spur VMs are available in http://www.mirandabanda.org/files/Cog/VM/VM.r3105/ (and later as they appear). Without wanting to appear too overconfident the Spur > system looks to be ready for use apart from image segments (which I hope to have working some time next month). I'm really interested in having this stress tested by as many people as possible. Spur really > does offer a significant performance and functionality improvement over the current system, but it needs testing to ensure its reliability. Great news. > > Esteban Lorenzano is hard at work on the Pharo bootstrap for Spur so I hope Pharo 4 Spur will be available soon. > > As far as trunk goes, using Spur alongside non-Spur trunk is going to be difficult to manage for the near future. Right now, Spur modifies the Collections, Compiler, Kernel and System packages, and this is > done by auto-editing the non-Spur versions of those packages, something I do periodically as new versions arrive. I also auto-edit trunk configurations (the part of the image update scheme that ensures > packages are loaded in the right order when there are dependencies between packages) from non-Spur "update" to Spur "update.spur" forms. This at east means that Spur can keep up with trunk. But it does > /not/ provide a way of committing to Collections.spur, Compiler.spur, Kernel.spur or System.spur without getting out of sync with non-Spur trunk. Note that apart from these packages, one /can/ safely commit > any other package from a Spur image to trunk. > > Right now the plan is to release both V3 (the pre-Spur format) and Spur versions of Squeak 4.6 (I hope it'll be called Squeak 5.0). This isn't my preference. I'd like to see just Spur released, once > reliability is verified. But I understand the safety and backward-compatibility concerns (Spur won't be able to load V3 image segments, and vice verse). The issue is of course that we have this tricky > package situation to manage where, to keep the two systems in sync, modifications to Collections, Compiler, Kernel and System need to be committed from V3 and auto-edited to Spur. I think that's too clumsy to > be practicable. Perhaps allowing the two systems to fork and doing a manual merge will be acceptable, but it'll be work to keep them in sync. Squeak 5.0 at the same time? This way we could keep Trunk as is; pushing all changes to Trunk until 4.6 is released, then - leaving V3 behind - use the Trunk for Spur-only. Then any changes could be backported manually to the future squeak46 repository if needed. Levente > -- > best,Eliot > > |
In reply to this post by Casey Ransberger-2
Hi Casey,
And thank you, both for using it and for these great questions.
In fact, the 64k limit is also associated with support for two bytecode sets. And that leads to support for Sista, the adaptive optimizer we hope will be available later next year. The necessary change is to add Behavior>>identityHash to ensure a class's identityHash is its index in the VM's class table. This is what keeps Spur objects relatively compact, and keeps their header uniform. i.e. every object's header contains its class's index in a 22-bit field instead of a direct reference to its class object.
Anyone motivated to port Cuis should contact me to discuss and for me to show you around the code.
I missed it :-/ Eliot (phone)
|
In reply to this post by Levente Uzonyi-2
I guess this was intended to go to the squeak-dev list.
On Fri, 17 Oct 2014, Eliot Miranda wrote: > Hi Levente, > > On Oct 17, 2014, at 5:40 AM, Levente Uzonyi <[hidden email]> wrote: > >> On Thu, 16 Oct 2014, Eliot Miranda wrote: >> >>> Hi All, >>> finally the Spur Squeak trunk image is updateable. The image in http://www.mirandabanda.org/files/Cog/SpurImages/2014-10-16/ was created today and thanks to Bert Freudenberg's latest Monticello work can >>> be updated independently of the non-Spur trunk. Spur VMs are available in http://www.mirandabanda.org/files/Cog/VM/VM.r3105/ (and later as they appear). Without wanting to appear too overconfident the Spur >>> system looks to be ready for use apart from image segments (which I hope to have working some time next month). I'm really interested in having this stress tested by as many people as possible. Spur really >>> does offer a significant performance and functionality improvement over the current system, but it needs testing to ensure its reliability. >> >> Great news. >> >>> Esteban Lorenzano is hard at work on the Pharo bootstrap for Spur so I hope Pharo 4 Spur will be available soon. >>> As far as trunk goes, using Spur alongside non-Spur trunk is going to be difficult to manage for the near future. Right now, Spur modifies the Collections, Compiler, Kernel and System packages, and this is >>> done by auto-editing the non-Spur versions of those packages, something I do periodically as new versions arrive. I also auto-edit trunk configurations (the part of the image update scheme that ensures >>> packages are loaded in the right order when there are dependencies between packages) from non-Spur "update" to Spur "update.spur" forms. This at east means that Spur can keep up with trunk. But it does >>> /not/ provide a way of committing to Collections.spur, Compiler.spur, Kernel.spur or System.spur without getting out of sync with non-Spur trunk. Note that apart from these packages, one /can/ safely commit >>> any other package from a Spur image to trunk. >>> Right now the plan is to release both V3 (the pre-Spur format) and Spur versions of Squeak 4.6 (I hope it'll be called Squeak 5.0). This isn't my preference. I'd like to see just Spur released, once >>> reliability is verified. But I understand the safety and backward-compatibility concerns (Spur won't be able to load V3 image segments, and vice verse). The issue is of course that we have this tricky >>> package situation to manage where, to keep the two systems in sync, modifications to Collections, Compiler, Kernel and System need to be committed from V3 and auto-edited to Spur. I think that's too clumsy to >>> be practicable. Perhaps allowing the two systems to fork and doing a manual merge will be acceptable, but it'll be work to keep them in sync. >> >> How about releasing the V3 version as Squeak 4.6, and the Spur version as Squeak 5.0 at the same time? >> This way we could keep Trunk as is; pushing all changes to Trunk until 4.6 is released, then - leaving V3 behind - use the Trunk for Spur-only. >> Then any changes could be backported manually to the future squeak46 repository if needed. > > Works for me. Good idea! Objections? > > >> Levente >> >>> -- >>> best,Eliot > > Eliot (phone) > |
In reply to this post by Levente Uzonyi-2
> How about releasing the V3 version as Squeak 4.6, and the Spur version as
> Squeak 5.0 at the same time? Yes, that's the way to go! They (4.6 and 5.0) should be "equivalent" with each other -- Everything other than the VM and new restrictions (i.e., 64K restriction) would be the same. That way external apps can "port" to being Spur-compatible without worrying about any other functionality gaps between the two images causing problems. > This way we could keep Trunk as is; pushing all changes to Trunk until 4.6 > is released, then - leaving V3 behind - use the Trunk for Spur-only. > Then any changes could be backported manually to the future squeak46 > repository if needed. Yip. > > Levente > >> -- >> best,Eliot >> > |
In reply to this post by Eliot Miranda-2
Thanks to all of you
Le 17/10/2014 08:51, Eliot Miranda a écrit : > finally the Spur Squeak trunk image is updateable. The image > in http://www.mirandabanda.org/files/Cog/SpurImages/2014-10-16/ was > created today and thanks to Bert Freudenberg's latest Monticello work > can be updated independently of the non-Spur trunk. Spur VMs are > available in http://www.mirandabanda.org/files/Cog/VM/VM.r3105/ (and -- Dr. Geo - http://drgeo.eu iStoa - http://istoa.drgeo.eu |
In reply to this post by Eliot Miranda-2
Hi Eliot, Casey,
|
In reply to this post by Eliot Miranda-2
On Thu, Oct 16, 2014 at 11:51:20PM -0700, Eliot Miranda wrote:
> Hi All, > > finally the Spur Squeak trunk image is updateable. Yay! > The issue > is of course that we have this tricky package situation to manage where, to > keep the two systems in sync, modifications to Collections, Compiler, > Kernel and System need to be committed from V3 and auto-edited to Spur. I > think that's too clumsy to be practicable. When I look at the Spur related changes to these four large packages, it seems to me that we might be able to reduce the scope of the problem by moving the parts that require changes into separate packages or sub-packages. The portions of these packages that need to change are not insignificant, but if they were contained within well defined package boundaries, they might become simpler to manage. To illustrate: The changes in the Collections package are almost entirely related to class Character, whose instances are immediate in the Spur format. It might make very good sense if the methods directly related to immediateness of a character were localized in a package where they can be maintained independently of all the other Collections classes and methods. Looking at it from another angle, the Kernel package is arguably too large, and if I want to make changes to Kernel-Chronology (as I have recently been doing with UTCDateAndTime <http://wiki.squeak.org/squeak/6197> just as an example), then I have problems if I want to coordinate that external package with Squeak trunk. If I also want to coordinate my little project with all the updates required for both Kernel and Kernel.spur, the situation becomes impossible. I apologize in advance because I have not really thought this through in detail, but it seems to me that a bit of pragmatic reorganization of our package structure might make the Spur transition a lot easier to manage. I note that in the past we have put energy into reorganizing our package structures in the interest of making the image more modular. That is important, but managing the transition to Spur is even more important. If improving the package structure could make this easier, then we should make it a priority. > Perhaps allowing the two > systems to fork and doing a manual merge will be acceptable, but it'll be > work to keep them in sync. I agree. I also think that this kind of maintenance work is not enjoyable, and is not likely to be kept up on an ongoing basis. So we need to think of ways for the path forward to be A) enjoyable or B) not too much work or C) all of the above :-) Dave |
Hi David,
On Mon, Oct 20, 2014 at 6:35 PM, David T. Lewis <[hidden email]> wrote: On Thu, Oct 16, 2014 at 11:51:20PM -0700, Eliot Miranda wrote: While I'm happy to see packages decomposed I've chosen the approach to changing the four relevant packages Spur modifies for good reason. Essentially once we move to Spur I don't want there to be artifacts present which are simply to do with the change to Spur. So keeping Collections, Compiler, Kernel and System whole but in Spur-specific branches allows us to keep the system looking the same once we release it. Further, all the support for branching and editing these packages is now working and I'm really not keep on putting more effort into it to complicate it further. I've got lots of other things to do. So now that Spur works and is nearly ready for release can we let it be?
Well, we should discuss what the release criteria are at the next board meeting. We may be able to release before the end of the year, which would be great. best, Eliot
|
On Mon, Oct 20, 2014 at 07:18:14PM -0700, Eliot Miranda wrote:
> Hi David, > > On Mon, Oct 20, 2014 at 6:35 PM, David T. Lewis <[hidden email]> wrote: > > > On Thu, Oct 16, 2014 at 11:51:20PM -0700, Eliot Miranda wrote: > > > Hi All, > > > > > > finally the Spur Squeak trunk image is updateable. > > > > Yay! > > > > > The issue > > > is of course that we have this tricky package situation to manage where, > > to > > > keep the two systems in sync, modifications to Collections, Compiler, > > > Kernel and System need to be committed from V3 and auto-edited to Spur. I > > > think that's too clumsy to be practicable. > > > > When I look at the Spur related changes to these four large packages, it > > seems > > to me that we might be able to reduce the scope of the problem by moving > > the > > parts that require changes into separate packages or sub-packages. The > > portions > > of these packages that need to change are not insignificant, but if they > > were > > contained within well defined package boundaries, they might become simpler > > to manage. > > > > To illustrate: The changes in the Collections package are almost entirely > > related to class Character, whose instances are immediate in the Spur > > format. > > It might make very good sense if the methods directly related to > > immediateness > > of a character were localized in a package where they can be maintained > > independently of all the other Collections classes and methods. > > > > Looking at it from another angle, the Kernel package is arguably too > > large, and > > if I want to make changes to Kernel-Chronology (as I have recently been > > doing > > with UTCDateAndTime <http://wiki.squeak.org/squeak/6197> just as an > > example), > > then I have problems if I want to coordinate that external package with > > Squeak > > trunk. If I also want to coordinate my little project with all the updates > > required for both Kernel and Kernel.spur, the situation becomes impossible. > > > > I apologize in advance because I have not really thought this through in > > detail, but it seems to me that a bit of pragmatic reorganization of our > > package structure might make the Spur transition a lot easier to manage. > > > > I note that in the past we have put energy into reorganizing our package > > structures in the interest of making the image more modular. That is > > important, > > but managing the transition to Spur is even more important. If improving > > the > > package structure could make this easier, then we should make it a > > priority. > > > > While I'm happy to see packages decomposed I've chosen the approach to > changing the four relevant packages Spur modifies for good reason. > Essentially once we move to Spur I don't want there to be artifacts present > which are simply to do with the change to Spur. So keeping Collections, > Compiler, Kernel and System whole but in Spur-specific branches allows us > to keep the system looking the same once we release it. Further, all the > support for branching and editing these packages is now working and I'm > really not keep on putting more effort into it to complicate it further. > I've got lots of other things to do. So now that Spur works and is nearly > ready for release can we let it be? > Yes, for sure. If it does not make things easier, let's not do it. > > > > Perhaps allowing the two > > > systems to fork and doing a manual merge will be acceptable, but it'll be > > > work to keep them in sync. > > > > I agree. I also think that this kind of maintenance work is not enjoyable, > > and is not likely to be kept up on an ongoing basis. So we need to think > > of ways for the path forward to be A) enjoyable or B) not too much work or > > C) all of the above :-) > > > > Well, we should discuss what the release criteria are at the next board > meeting. We may be able to release before the end of the year, which would > be great. > Ok, good. Dave |
In reply to this post by Eliot Miranda-2
This is really great news. I tried it out with the latest CogSpur VM 3114 and the latest image from October 17th. When I update Squeak it runs into Merging Collections.spur-nice.583. I wonder what to do now? All Newer and Merge?
Cheers, Bernhard > Am 17.10.2014 um 08:51 schrieb Eliot Miranda <[hidden email]>: > > Hi All, > > finally the Spur Squeak trunk image is updateable. The image in http://www.mirandabanda.org/files/Cog/SpurImages/2014-10-16/ was created today and thanks to Bert Freudenberg's latest Monticello work can be updated independently of the non-Spur trunk. Spur VMs are available in http://www.mirandabanda.org/files/Cog/VM/VM.r3105/ (and later as they appear). Without wanting to appear too overconfident the Spur system looks to be ready for use apart from image segments (which I hope to have working some time next month). I'm really interested in having this stress tested by as many people as possible. Spur really does offer a significant performance and functionality improvement over the current system, but it needs testing to ensure its reliability. > > Esteban Lorenzano is hard at work on the Pharo bootstrap for Spur so I hope Pharo 4 Spur will be available soon. > > As far as trunk goes, using Spur alongside non-Spur trunk is going to be difficult to manage for the near future. Right now, Spur modifies the Collections, Compiler, Kernel and System packages, and this is done by auto-editing the non-Spur versions of those packages, something I do periodically as new versions arrive. I also auto-edit trunk configurations (the part of the image update scheme that ensures packages are loaded in the right order when there are dependencies between packages) from non-Spur "update" to Spur "update.spur" forms. This at east means that Spur can keep up with trunk. But it does /not/ provide a way of committing to Collections.spur, Compiler.spur, Kernel.spur or System.spur without getting out of sync with non-Spur trunk. Note that apart from these packages, one /can/ safely commit any other package from a Spur image to trunk. > > Right now the plan is to release both V3 (the pre-Spur format) and Spur versions of Squeak 4.6 (I hope it'll be called Squeak 5.0). This isn't my preference. I'd like to see just Spur released, once reliability is verified. But I understand the safety and backward-compatibility concerns (Spur won't be able to load V3 image segments, and vice verse). The issue is of course that we have this tricky package situation to manage where, to keep the two systems in sync, modifications to Collections, Compiler, Kernel and System need to be committed from V3 and auto-edited to Spur. I think that's too clumsy to be practicable. Perhaps allowing the two systems to fork and doing a manual merge will be acceptable, but it'll be work to keep them in sync. > -- > best, > Eliot > |
On Sun, Oct 26, 2014 at 1:46 PM, Bernhard Pieber <[hidden email]> wrote: This is really great news. I tried it out with the latest CogSpur VM 3114 and the latest image from October 17th. When I update Squeak it runs into Merging Collections.spur-nice.583. I wonder what to do now? All Newer and Merge? Yes, and afterwards, if the dirty package bothers you, resolve the dirty package by manually loading the latest Spur version. This crap should be temporary. Once we release things will work out (no patching and multiple parents any more).
best, Eliot
|
Hi Eliot,
Thanks for the tip. You are right, I like my Monticello packages clean. ;-) I loaded Collections.spur-cmm.585. All clean now. I am looking forward to the release. Cheers, Bernhard > Am 26.10.2014 um 21:49 schrieb Eliot Miranda <[hidden email]>: > > On Sun, Oct 26, 2014 at 1:46 PM, Bernhard Pieber <[hidden email]> wrote: > This is really great news. I tried it out with the latest CogSpur VM 3114 and the latest image from October 17th. When I update Squeak it runs into Merging Collections.spur-nice.583. I wonder what to do now? All Newer and Merge? > > Yes, and afterwards, if the dirty package bothers you, resolve the dirty package by manually loading the latest Spur version. This crap should be temporary. Once we release things will work out (no patching and multiple parents any more). > > > Cheers, > Bernhard > > > Am 17.10.2014 um 08:51 schrieb Eliot Miranda <[hidden email]>: > > > > Hi All, > > > > finally the Spur Squeak trunk image is updateable. The image in http://www.mirandabanda.org/files/Cog/SpurImages/2014-10-16/ was created today and thanks to Bert Freudenberg's latest Monticello work can be updated independently of the non-Spur trunk. Spur VMs are available in http://www.mirandabanda.org/files/Cog/VM/VM.r3105/ (and later as they appear). Without wanting to appear too overconfident the Spur system looks to be ready for use apart from image segments (which I hope to have working some time next month). I'm really interested in having this stress tested by as many people as possible. Spur really does offer a significant performance and functionality improvement over the current system, but it needs testing to ensure its reliability. > > > > Esteban Lorenzano is hard at work on the Pharo bootstrap for Spur so I hope Pharo 4 Spur will be available soon. > > > > As far as trunk goes, using Spur alongside non-Spur trunk is going to be difficult to manage for the near future. Right now, Spur modifies the Collections, Compiler, Kernel and System packages, and this is done by auto-editing the non-Spur versions of those packages, something I do periodically as new versions arrive. I also auto-edit trunk configurations (the part of the image update scheme that ensures packages are loaded in the right order when there are dependencies between packages) from non-Spur "update" to Spur "update.spur" forms. This at east means that Spur can keep up with trunk. But it does /not/ provide a way of committing to Collections.spur, Compiler.spur, Kernel.spur or System.spur without getting out of sync with non-Spur trunk. Note that apart from these packages, one /can/ safely commit any other package from a Spur image to trunk. > > > > Right now the plan is to release both V3 (the pre-Spur format) and Spur versions of Squeak 4.6 (I hope it'll be called Squeak 5.0). This isn't my preference. I'd like to see just Spur released, once reliability is verified. But I understand the safety and backward-compatibility concerns (Spur won't be able to load V3 image segments, and vice verse). The issue is of course that we have this tricky package situation to manage where, to keep the two systems in sync, modifications to Collections, Compiler, Kernel and System need to be committed from V3 and auto-edited to Spur. I think that's too clumsy to be practicable. Perhaps allowing the two systems to fork and doing a manual merge will be acceptable, but it'll be work to keep them in sync. > > -- > > best, > > Eliot > > > > > > > > -- > best, > Eliot > |
Free forum by Nabble | Edit this page |