[V3dot10] Going to beta ?

Keith Hodges keith_hodges at yahoo.co.uk
Sun May 13 04:31:07 UTC 2007


Ralph Johnson wrote:
> My interpretation of "going to beta" means that we stop adding
> features and just fix bugs.  I am in favor.
I would suggest, just fix bugs in the base image, but also be able to 
update to the latest tools, those that are conceptually also beta/final. 
For example SqueakMap has had some GUI updates. In the case of tools it 
should be easier to revert to the original tool if there is a problem 
before going final. I would also like to vote for my improved 
SUnit/TestRunner etc.

Investigating Monticello, in particular 309, I think that there are a 
couple of bugs in there. For example, If you browse a snapshot and 
manually load a method, this calls #load on the MCMethodDefinition. 
Under your atomic loading scheme this only compiles the method it does 
not install it.

I shall spend a couple of more days on monticello to see if I can knock 
it into shape. I need to use it for a porting project before tuesday.

I thought that my first release had your 'atomic loading' code in it. 
Since it didn't I have since been looking at a more comprehensive solution.

I so far I have set up the following sequence, #loadOver: [ #install 
#postinstall ] #postloadOver: , for additions and [ #remove ] 
#postinstall for removals, where the bracketed items are the atomic bits 
that happen 'simultaneously'. Now I just need to work out  what actions 
should best happen at what step.

The TTFCache fix broke on loading because the a new Class definition 
removed a number of Class variables which were then used by the old 
methods, before the new methods get loaded in.

I am attempting to change the class definition first (at #loadOver:) to 
something that represents the union of the old and new definitions, then 
having compiled the new methods. The atomic loading installs the 
compiled methods, and removes the old methods 'atomically'. The class 
definition can then be changed to its final state in postLoadOver.

I like this solution because the #initialize function is will have 
access to both the old and the new class vars  simultaneously (etc) so 
making migrations theoretically possible.

> changes, losing some history.   It would be cool to go back and
> recover that history and put it in the history database.
>
> Even cooler, we could go back and get all the history in Squeak 1 and
> Squeak 2, so we could have a complete history of all code that had
> ever been in the Squeak image.  This would only require changing the
>
and even cooler, you could trawl monticello repositories for yet more 
method history.
> So, here is a summary of my proposal.  I want to know what you think 
> about it!
Sounds great

Keith


More information about the V3dot10 mailing list