[squeak-dev] The Trunk: Traits-nice.299.mcz
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Sat Sep 21 21:43:09 UTC 2013
Ah now I understand better thanks!
funny miss-interpretation...
2013/9/21 Bob Arning <arning315 at comcast.net>
> I think the line
>
> Exception MessageNotUnderstood raised:
>
>
> means that MNU occurred (raised as in the java fanboy corruption of signal)
>
> Probably like this (from debug log posted moments ago):
>
> ClassDescription class(Object)>>doesNotUnderstand:
> #compile:notifying:trailer:ifFail:
> Receiver: ClassDescription
> Arguments and temporary variables:
> aMessage: compile: 'compile: text classified: category
> withStamp: changeStamp n...etc...
> exception: MessageNotUnderstood: ClassDescription
> class>>compile:notifying:trai...etc...
> resumeValue: nil
> Receiver's instance variables:
> superclass: Behavior
> methodDict: a MethodDictionary(size 167)
> format: 140
> instanceVariables: #('instanceVariables' 'organization')
> organization: ('initialize-release' forgetDoIts obsolete
> superclass:methodDicti...etc...
> subclasses: {TraitBehavior . Class . Metaclass}
> name: #ClassDescription
> classPool: a Dictionary(#TraitImpl->Trait )
> sharedPools: nil
> environment: Smalltalk
> category: #'Kernel-Classes'
>
> [] in MethodAddition>>createCompiledMethod
> Receiver: a MethodAddition
> Arguments and temporary variables:
> <<error during printing>
>
> Cheers,
> Bob
>
> On 9/21/13 3:52 PM, Nicolas Cellier wrote:
>
> Please send reports, I'm all ear.
> Though I'm not aware of any raised: no sender no implementor in my image.
> Or is it raised ? It's a Morph thing...
>
>
> 2013/9/21 Frank Shearar <frank.shearar at gmail.com>
>
>> For instance: http://build.squeak.org/job/SqueakTrunk/536/console
>>
>> Look for
>>
>> Exception MessageNotUnderstood raised:
>> Behavior class>>compile:notifying:trailer:ifFail:
>>
>> I don't know where it's coming from yet - that's the entire stack trace.
>>
>> frank
>>
>>
>> On 21 September 2013 18:17, Chris Muller <asqueaker at gmail.com> wrote:
>> > I would expect these changes to break a lot of code..
>> >
>> > On Fri, Sep 20, 2013 at 2:45 PM, <commits at source.squeak.org> wrote:
>> >> Nicolas Cellier uploaded a new version of Traits to project The Trunk:
>> >> http://source.squeak.org/trunk/Traits-nice.299.mcz
>> >>
>> >> ==================== Summary ====================
>> >>
>> >> Name: Traits-nice.299
>> >> Author: nice
>> >> Time: 20 September 2013, 9:45:04.474 pm
>> >> UUID: d6c18da8-7e93-4bcc-b94e-7f67426a2965
>> >> Ancestors: Traits-nice.298
>> >>
>> >> Don't pass a category to a Compiler, classifying is not its job.
>> >>
>> >> =============== Diff against Traits-nice.298 ===============
>> >>
>> >> Item was changed:
>> >> ----- Method: ClassDescription>>traitAddSelector:withMethod: (in
>> category '*Traits-NanoKernel') -----
>> >> traitAddSelector: selector withMethod: traitMethod
>> >> "Add a method inherited from a trait.
>> >> Recompiles to avoid sharing and implement aliasing."
>> >> | oldMethod source methodNode newMethod originalSelector |
>> >> oldMethod := self compiledMethodAt: selector ifAbsent:[nil].
>> >> oldMethod ifNotNil:[
>> >> "The following is an important optimization as it
>> prevents exponential
>> >> growth in recompilation. If T1 is used by T2 and T2 by
>> T3 then (without
>> >> this optimization) any change in T1 would cause all
>> methods in T2 to be
>> >> recompiled and each recompilation of a method in T2
>> would cause T3
>> >> to be fully recompiled. The test eliminates all such
>> situations."
>> >> (oldMethod sameTraitCodeAs: traitMethod)
>> ifTrue:[^oldMethod].
>> >> ].
>> >> originalSelector := traitMethod selector.
>> >> source := traitMethod methodClass sourceCodeAt:
>> originalSelector.
>> >> originalSelector == selector ifFalse:[
>> >> "Replace source selectors for aliases"
>> >> source := self replaceSelector: originalSelector
>> withAlias: selector in: source.
>> >> ].
>> >> methodNode := self newCompiler
>> >> + compile: source in: self notifying: nil ifFail:[^nil].
>> >> - compile: source in: self classified: nil notifying:
>> nil ifFail:[^nil].
>> >> newMethod := methodNode generate: self defaultMethodTrailer.
>> >> newMethod putSource: source fromParseNode: methodNode inFile: 2
>> >> withPreamble: [:f | f cr; nextPut: $!!; nextChunkPut:
>> 'Trait method'; cr].
>> >> newMethod originalTraitMethod: traitMethod.
>> >> ^super addSelectorSilently: selector withMethod: newMethod.!
>> >>
>> >>
>> >
>>
>>
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20130921/e9d97b00/attachment.htm
More information about the Squeak-dev
mailing list
|