[squeak-dev] The Trunk: Kernel-nice.746.mcz

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Sun Mar 10 20:23:07 UTC 2013


2013/3/10 David T. Lewis <lewis at mail.msen.com>:
> On Sun, Mar 10, 2013 at 09:01:59PM +0100, Nicolas Cellier wrote:
>> 2013/3/10 David T. Lewis <lewis at mail.msen.com>:
>> > On Sun, Mar 10, 2013 at 06:53:11PM +0000, commits at source.squeak.org wrote:
>> >> Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
>> >> http://source.squeak.org/trunk/Kernel-nice.746.mcz
>> >>
>> >> ==================== Summary ====================
>> >>
>> >> Name: Kernel-nice.746
>> >> Author: nice
>> >> Time: 10 March 2013, 7:52:48.738 pm
>> >> UUID: 0f9d411b-68a9-49eb-b37a-1bc4fb8fa36d
>> >> Ancestors: Kernel-bf.744
>> >>
>> >> Fix ClassBuilder which previously failed to flush the cache of old CompiledMethod when the class changes of format.
>> >> This failure to invoke primitive 116 can lead to COG VM crash (a cogit jitted method is not unlinked).
>> >> This does not affect old interpreter which clear the caches thru primitive 119.
>> >> It is essential that the newClass points to identity-preserved CompiledMethods of oldClass methodDictionary before recompiling so that primitive 116 be correctly invoked, particularly we must not clear methodDictionary with a MethodDictionary new..
>> >>
>> >
>> > Really good job of debugging to find this problem and fix it :)
>> >
>> > Dave
>> >
>>
>> :(
>> Il ne faut pas vendre la peau de l'ours avant de l'avoir tu?.
>> My last attempt to update a Squeak 4.4 image just failed while loading
>> Compiler-nice.256...
>>
>> Nicolas
>
> Well, I see that the bear is putting up a good fight ;)
>
> Dave
>

Ah ah, it could be that the old methods are re-jitted before we end
the compilation of newClass.
I put a super hammer Object flushCache in ClassBuilder>>mutate:to: and
the update went well.
I don't know how many attempts are ncessary to prove the theory...

Nicolas


More information about the Squeak-dev mailing list