[UPDATES] 57 for Squeak3.7alpha

Doug Way dway at mailcan.com
Fri Mar 5 23:36:07 UTC 2004


Actually, it looks like the update stream problem is a bit more 
serious... if you start with a 5707 or earlier alpha image, and load 
updates, it will stop at 5764 even if there are more updates in the 
stream after that.  Kind of makes sense that that would happen, since 
the UI process is being terminated.

To see this in action, file in the attached seeInternalUpdates-dew.cs to 
see the internal/test update stream, where I've added an additional test 
update 5765, and then load updates (by selecting "SqC Internal 
Updates*").  The updates stop at 5764 since the UI process is terminated 
(it doesn't even redraw the screen).  Then you have to go re-fetch 
updates again to proceed, click past the "Sorry that name is already 
used" dialog, to get up to 5765.

I think we should probably try to avoid this.  Here are some possible 
solutions:

1. Re-do the postscript of 5764GenieRemoval-nk so that it no longer does 
a "Project spawnNewProcessAndTerminateOld: true".  Is there any other 
way that the appropriate cleanup can happen for this changeset besides 
killing the UI process?  I don't think any previous updates have ever 
killed the UI process.

2. Somehow change the behavior of the update stream loading so that it 
spawns a separate process for each update, so that it will still 
continue on even if an update kills its UI process.  I'm not sure if 
this is easily doable.

3. Other solutions?

- Doug


Bruce O'Neel wrote:

>I noticed that too.
>
>
>On Fri, Mar 05, 2004 at 12:27:16AM -0500, Doug Way wrote:
>  
>
>>On Wednesday, March 3, 2004, at 02:16 PM, Ned Konz wrote:
>>
>>    
>>
>>>On Tuesday 02 March 2004 11:55 pm, goran.krampe at bluefish.se wrote:
>>>      
>>>
>>>>>Hmm, maybe. ?This happens for me too, although the changeset looks 
>>>>>okay
>>>>>in the changesorter. ?I haven't looked into why this happens. ?Any
>>>>>idea, Ned?
>>>>>          
>>>>>
>>>>Yep, look in the postscript, last line:
>>>>Project spawnNewProcessAndTerminateOld: true.
>>>>
>>>>Same trick I used in my SM bootStrap - it essentially kills the 
>>>>running
>>>>Process. Possibly because Ned don't want the code running that is 
>>>>filing
>>>>in the .cs to return - because it would possibly be running old 
>>>>Obsolete
>>>>code etc.
>>>>
>>>>So short answer is - it is intentional. :)
>>>>        
>>>>
>>>Right. I have to make a new Hand for the World after this, or things 
>>>break.
>>>      
>>>
>>It looks like this will cause a minor glitch when additional updates 
>>are added to the update stream.  I added an extra update in the test 
>>(internal) update stream, and if you load updates, you'll get a "Sorry 
>>that name is already used" prompt because it's trying to reload 
>>5764GenieRemoval-nk again.  It's probably trying to load this one again 
>>because it never was properly marked as being loaded the first time, 
>>since the process was terminated.
>>
>>(Actually, you can see it happen just by reloading updates in a regular 
>>5764 image.)
>>
>>It's not a huge problem in this case, it just brings up the prompt and 
>>then skips trying to reload that update.
>>
>>Still, we might not want to do this sort of thing in the update stream 
>>in the future.  Maybe there are other ways to achieve a similar 
>>effect...
>>
>>- Doug
>>
>>
>>
>>    
>>
>
>  
>

-------------- next part --------------
'From Squeak3.3alpha of 18 January 2002 [latest update: #4924] on 24 July 2002 at 10:40:24 am'!
"Change Set:		seeInternalUpdates-sw
Date:			24 July 2002
Author:			Scott Wallace

Private to SqC!!  File this in and your image will subsequently be able to update from the SqC internal update servers.  When confronted with the prompt for which update server to use, choose the one named 'SqC Internal Updates*'

This update also includes a method for *removing* the SqC internal update stream from the list of update servers groups."!


!Utilities class methodsFor: 'fetching updates' stamp: 'sw 7/24/2002 10:19'!
assureAbsenceOfInternalUpdateStream
	"Check to see if the SqC Internal Updates server is in the list; if it is, *remove* it.  This is the *opposite* of #assureAvailabilityOfInternalUpdateStream"

	UpdateUrlLists ifNil: [UpdateUrlLists _ OrderedCollection new].
	UpdateUrlLists _ UpdateUrlLists select:
		[:pair | pair first ~= 'SqC Internal Updates*']


"Utilities assureAbsenceOfInternalUpdateStream"! !

!Utilities class methodsFor: 'fetching updates' stamp: 'sw 7/24/2002 10:13'!
assureAvailabilityOfInternalUpdateStream
	"Check to see if the SqC Internnal Updates server is in the list; if not, add it"

	UpdateUrlLists ifNil: [UpdateUrlLists _ OrderedCollection new].
	UpdateUrlLists do:
		[:pair | (pair first =  'SqC Internal Updates*') ifTrue: [^ self]].

	UpdateUrlLists addFirst: #('SqC Internal Updates*' #('update.squeakfoundation.org/external/'))

"Utilities assureAvailabilityOfInternalUpdateStream"! !

"Postscript:"
Utilities assureAvailabilityOfInternalUpdateStream.
!



More information about the Squeak-dev mailing list