[squeak-dev] Broken trunk update and workaround

David T. Lewis lewis at mail.msen.com
Tue Apr 4 20:23:14 UTC 2017


Specifically, Nicolas made a suggestion here:

http://lists.squeakfoundation.org/pipermail/squeak-dev/2017-March/193908.html

And Eliot suggested (sorry I don't have the link) the idea of making the
update stream smart enough to restart the update process at certain marked
points.

I looked at the updater a bit last weekend, and I'm not sure that the
"restart the update process" approach will actually handle this problem
(though I would be happy to be wrong). So maybe Nicolas' idea will work
out? Quoting from his earlier message:

>> maybe an option is to detach the Context* classes from the
>> SystemDictionary in some preamble so that they are immune
>> to any refactoring while still in use...

Dave

> update-eem.400.mcm may be going back too far, I think I got past the
> problem by starting with update-eem.403. Basically, if you can get up to
> the update-eem.406.mcm level, then manually load Kernel-eem.1078, you
> should be back in business.
>
> But we do need to get the update stream fixed. We have a couple of ideas
> bouncing around in emails, but as far as I know we don't yet have a
> working solution.
>
> Dave
>
>
>> When I try to load update-eem.400.mcm, I am getting an error,
>> "CompiledMethod cannot be changed."
>>
>> It's while loading Kernel-eem.10651...
>>
>> On Thu, Mar 30, 2017 at 9:32 PM, Eliot Miranda <eliot.miranda at gmail.com>
>> wrote:
>>> Hi All,
>>>
>>>     I'm very sorry to report that my recent changes (adding
>>> CompiledCode
>>> and
>>> CompiledBlock to the CompiledMethod hierarchy in anticipation of full
>>> blocks, and merging ContextPart and MethodContext and renaming them as
>>> Context, to eliminate obsolete block and closer implementations) has
>>> broken
>>> the update process.  I do not believe there is an easy fix as i think
>>> the
>>> issues are to do with the citations that exist on the stack while the
>>> update
>>> proceeds (the progress indicators).
>>>
>>> There is a clumsy work-around that appears reliable.  The pauses
>>> between
>>> loads get rid of the progress indication activations and hence avoid
>>> trying
>>> to upgrade running processes through these kernel changes.
>>>
>>> Open the trunk repository from your Monticello Browser.
>>> Locate the update package (the penultimate entry in the list of
>>> packages).
>>> Load (or merge) update-eem.400.mcm.
>>> Load (or merge) update-eem.403.mcm.
>>> Load (or merge) update-eem.406.mcm. Save your image.
>>> Local the Kernel package.
>>> Load Kernel-eem.1078. Save your image.
>>> Update
>>>
>>> I'm so sorry.
>>> Eliot
>>>
>>>
>>>
>>
>>
>
>




More information about the Squeak-dev mailing list