[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
|