[squeak-dev] Re: MNU during trunk update Kernel-ar.337

Andreas Raab andreas.raab at gmx.de
Tue Dec 22 17:35:54 UTC 2009


Igor Stasenko wrote:
> Oh... its harder to do than to say :)

Ah, but certainly doable. Get a halo on the debugger, explore it, find 
CompiledMethodTrailer>>new, find pointers to the receiver, this gets you 
into CompiledMethodTrailer class. Now inspect methodDict, remove #new 
and you're done :-)

(okay not exactly what you would have your mom do ...)

> The Kernel-ar.337
> removes #trailerClass before removing #new

Yup. And I suspect it worked for me when I tried it earlier due to MCs 
unreliable sort order (sigh... the image I used I had updated step by 
step while posting the changes to make sure I could load them). And of 
course *that* part of loading changes (i.e., unload) happens a little 
less careful than installing methods (which defers notifications). 
Double-sigh. I think we should consider changing all this to future 
messages - which makes it safe since it'll be processed when we're good 
and ready and not before.

> i think , for safety, a cleanup should be split on 2 phases:
> - remove CompiledMethodTrailer>>new
> - remove rest

Exactly. I'm on it, give me a few more minutes.

Cheers,
   - Andreas

> 2009/12/22 Igor Stasenko <siguctua at gmail.com>:
>> It seems a cleanup procedure is still broken.
>>
>> Remove the CompiledMethodTrailer class>>new by hand,
>> then you should be able to compile new methods in system.
>>
>> 2009/12/22 Randal L. Schwartz <merlyn at stonehenge.com>:
>>> MessageNotUnderstood: CompiledMethodTrailer class>>trailerClass
>>> 22 December 2009 8:09:25.698 am
>>>
>>> VM: Mac OS - a SmalltalkImage
>>> Image: Squeak3.10.2 [latest update: #8507]
>>>
>>> SecurityManager state:
>>> Restricted: false
>>> FileAccess: true
>>> SocketAccess: true
>>> Working Dir /Users/merlyn/Smalltalk/Squeak3.0/Squeak3.10.2-Trunk-090912
>>> Trusted Dir /foobar/tooBar/forSqueak/bogus
>>> Untrusted Dir /Users/merlyn/Library/Preferences/Squeak/Internet/My Squeak
>>>
>>> CompiledMethodTrailer class(Object)>>doesNotUnderstand: #trailerClass
>>>                      Receiver: CompiledMethodTrailer
>>>                      Arguments and temporary variables:
>>> <<error during printing>
>>>        Receiver's instance variables:
>>>                   superclass:         Object
>>>                                       methodDict:      a MethodDictionary(#clear->(CompiledMethodTrailer>>#clear "a Compil...etc...
>>>                                                        format:                                                   140
>>>                                                                                                                  instanceVariables:  #('data' 'encodedData' 'kind' 'size' 'method')
>>>                                                                                                                                      organization:          ('initialize-release' clear initialize method:)
>>> ('creating a meth...etc...
>>>             subclasses:        nil
>>>                                name:   #CompiledMethodTrailer
>>>                                        classPool:      a Dictionary()
>>>                                                        sharedPools:    nil
>>>                                                                        environment:    Smalltalk "a SystemDictionary with lots of globals"
>>>                                                                                        category:    #'Kernel-Methods'
>>>                                                                                                     traitComposition:  nil
>>>                                                                                                                        localSelectors:  nil
>>>
>>> CompiledMethodTrailer class>>new
>>>                      Receiver: CompiledMethodTrailer
>>>                      Arguments and temporary variables:
>>> <<error during printing>
>>>        Receiver's instance variables:
>>>                   superclass:         Object
>>>                                       methodDict:      a MethodDictionary(#clear->(CompiledMethodTrailer>>#clear "a Compil...etc...
>>>                                                        format:                                                   140
>>>                                                                                                                  instanceVariables:  #('data' 'encodedData' 'kind' 'size' 'method')
>>>                                                                                                                                      organization:          ('initialize-release' clear initialize method:)
>>> ('creating a meth...etc...
>>>             subclasses:        nil
>>>                                name:   #CompiledMethodTrailer
>>>                                        classPool:      a Dictionary()
>>>                                                        sharedPools:    nil
>>>                                                                        environment:    Smalltalk "a SystemDictionary with lots of globals"
>>>                                                                                        category:    #'Kernel-Methods'
>>>                                                                                                     traitComposition:  nil
>>>                                                                                                                        localSelectors:  nil
>>>
>>> CompiledMethod>>trailer
>>>        Receiver: (CompiledMethodTrailer class>>#trailerClass "a CompiledMethod(3360)")
>>>        Arguments and temporary variables:
>>> <<error during printing>
>>>        Receiver's instance variables:
>>> (CompiledMethodTrailer class>>#trailerClass "a CompiledMethod(3360)")
>>> CompiledMethod>>sourcePointer
>>>        Receiver: (CompiledMethodTrailer class>>#trailerClass "a CompiledMethod(3360)")
>>>        Arguments and temporary variables:
>>> <<error during printing>
>>>        Receiver's instance variables:
>>> (CompiledMethodTrailer class>>#trailerClass "a CompiledMethod(3360)")
>>>
>>>
>>> --
>>> Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
>>> <merlyn at stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
>>> Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
>>> See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion
>>>
>>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> 




More information about the Squeak-dev mailing list