Fwd: About the #logChange error in SqueakMap

Germán Arduino garduino at gmail.com
Thu Mar 23 16:50:07 UTC 2006


Hi Damien:

This is because the class to patch, SMInstallationRegistry isn't in the image.

Seems that SMInstallationRegistry is downloaded by the SM update
process (from 2.0 to 2.1) but I don't know very well this process of
update (I meant I don't know were is SMInstallationRegistry and from
were is downloaded).

Then, the easy way to patch is:

1) Start the SM upgrading.
2) When you get the DNU error, start the debugger and go to the wrong
method and replace Smalltalk logChange by SmalltalkImage current
logChange.
3) Hit Proceed and is done.

HTH
gsa.



2006/3/23, Damien Cassou <damien.cassou at laposte.net>:
> Germán Arduino a écrit :
> > As neither responded, I'm attaching a .cs that solves the problem.
>
> I can't file-in your .cs. I'm running a 3.9a-7015, opened the 'file
> list' tool and try to filein the file. I get the following :
>
> UndefinedObject(Object)>>doesNotUnderstand: #methodsFor:stamp:
>         Receiver: nil
>         Arguments and temporary variables:
>                 aMessage:       methodsFor: 'installation' stamp: 'gsa 3/15/2006 11:20'
>         Receiver's instance variables:
> nil
>
> UndefinedObject>>DoIt
>         Receiver: nil
>         Arguments and temporary variables:
>
>         Receiver's instance variables:
> nil
>
> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>         Receiver: a Compiler
>         Arguments and temporary variables:
>                 textOrStream:   'SMInstallationRegistry methodsFor: ''installation''
> stamp: ''gsa...etc...
>                 aContext:       nil
>                 receiver:       nil
>                 aRequestor:     nil
>                 failBlock:      [] in Compiler class>>evaluate:for:notifying:logged: {[^ nil]}
>                 logFlag:        false
>                 methodNode:     DoIt
>         ^ SMInstallationRegistry methodsFor: 'installation' stamp: 'g...etc...
>                 method:         a CompiledMethod (2342)
>                 value:  nil
>         Receiver's instance variables:
>                 sourceStream:   a ReadStream 'SMInstallationRegistry methodsFor:
> ''installation''...etc...
>                 requestor:      nil
>                 class:  UndefinedObject
>                 category:       nil
>                 context:        nil
>                 parserClass:    Parser
>
> Compiler class>>evaluate:for:notifying:logged:
>         Receiver: Compiler
>         Arguments and temporary variables:
>                 textOrString:   'SMInstallationRegistry methodsFor: ''installation''
> stamp: ''gsa...etc...
>                 anObject:       nil
>                 aController:    nil
>                 logFlag:        false
>         Receiver's instance variables:
>                 superclass:     Object
>                 methodDict:     a
> MethodDictionary(#compileNoPattern:in:context:notifying:ifFail:->...etc...
>                 format:         142
>                 traitComposition:       {}
>                 localSelectors:         nil
>                 instanceVariables:      #('sourceStream' 'requestor' 'class' 'category'
> 'context' 'p...etc...
>                 organization:   ('error handling' notify: notify:at:)
> ('public access' compile:in...etc...
>                 subclasses:     nil
>                 name:   #Compiler
>                 classPool:      a Dictionary()
>                 sharedPools:    nil
>                 environment:    a SystemDictionary(lots of globals)
>                 category:       nil
>
>
> --- The full stack ---
> UndefinedObject(Object)>>doesNotUnderstand: #methodsFor:stamp:
> UndefinedObject>>DoIt
> Compiler>>evaluate:in:to:notifying:ifFail:logged:
> Compiler class>>evaluate:for:notifying:logged:
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> Compiler class>>evaluate:for:logged:
> Compiler class>>evaluate:logged:
> [] in MultiByteFileStream(PositionableStream)>>fileInAnnouncing: {[val
> := (self peekFor: $!)     ifTrue: [(Compiler evaluate: self nextChunk l...]}
> BlockContext>>on:do:
> [] in MultiByteFileStream(PositionableStream)>>fileInAnnouncing: {[:bar
> |  [self atEnd]   whileFalse: [bar value: self position.    self skipS...]}
> [] in ProgressInitiationException>>defaultMorphicAction {[result :=
> workBlock value: progress]}
> BlockContext>>ensure:
> ProgressInitiationException>>defaultMorphicAction
> ProgressInitiationException>>defaultAction
> UndefinedObject>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ProgressInitiationException(Exception)>>signal
> ProgressInitiationException>>display:at:from:to:during:
> ProgressInitiationException class>>display:at:from:to:during:
> ByteString(String)>>displayProgressAt:from:to:during:
> MultiByteFileStream(PositionableStream)>>fileInAnnouncing:
> MultiByteFileStream(FileStream)>>fileIn
> MultiByteFileStream>>fileIn
> FileStream class>>fileIn:
> SimpleServiceEntry>>performServiceFor:
> PluggableButtonMorph>>performAction
> [] in PluggableButtonMorph>>mouseUp: {[:m | (m containsPoint: evt
> cursorPoint)   ifTrue: [m performAction]]}
> Array(SequenceableCollection)>>do:
> PluggableButtonMorph>>mouseUp:
> PluggableButtonMorph(Morph)>>handleMouseUp:
> MouseButtonEvent>>sentTo:
> PluggableButtonMorph(Morph)>>handleEvent:
> PluggableButtonMorph(Morph)>>handleFocusEvent:
> [] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.
> ActiveEvent := anEvent.  result := focusHolder     han...]}
> [] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
> BlockContext>>on:do:
> PasteUpMorph>>becomeActiveDuring:
> HandMorph>>sendFocusEvent:to:clear:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendMouseEvent:
> HandMorph>>handleEvent:
> HandMorph>>processEvents
> [] in WorldState>>doOneCycleNowFor: {[:h |  ActiveHand := h.  h
> processEvents.  capturingGesture := capturingGest...]}
> ...etc...
>
>
> --
> Damien Cassou
>
>
>



More information about the Squeak-dev mailing list