[Pharo-project] Error loading update with AnObsoleteTranscript

Stéphane Ducasse stephane.ducasse at inria.fr
Wed May 18 13:11:38 CEST 2011


Yes this is why we also removed from Transcript show: from deep down in the system.
From that perspective having a self log: would be better since we could control it.
Right now there are plenty of places which holds a reference to the Transcript.
What is strange is that the migration code was recompiling all the methods that had a reference
to transcript so that they point to the new one.

Stef



> ahahahahhaha
> 
> HAHAHAHAHAHAHAHAHHAHAHH
> 
> SmalltalkImage >> fixObsoleteReferences
>     "SmalltalkImage current fixObsoleteReferences.
>     SystemNavigation default obsoleteBehaviors size > 0
>         ifTrue: [ SystemNavigation default obsoleteBehaviors inspect.
>             self error:'Still have obsolete behaviors. See inspector']"
> 
>     | informee obsoleteBindings obsName realName realClass |
>     Smalltalk
>         garbageCollect;
>         garbageCollect.
>     CompiledMethod allInstances
>         do: [ :method | 
>             obsoleteBindings := method literals
>                 select: [ :literal | literal isVariableBinding 
>                                     and: [ literal value isBehavior  and: [ literal value isObsolete ]]].
>             obsoleteBindings
>                 do: [ :binding | 
>                     obsName := binding value name.
>                     Transcript
>                         show: 'Binding: ';
>                         show: obsName;
>                         cr.
>                     realName := obsName copyReplaceAll: 'AnObsolete' with: ''.
>                     realClass := Smalltalk globals at: realName asSymbol ifAbsent: [ UndefinedObject ].
>                     binding key: binding key value: realClass ] ].
>     Behavior flushObsoleteSubclasses.
>     Smalltalk
>         garbageCollect;
>         garbageCollect
> 
> 
> 
> remove that lines in yellow and try again :)
> 
> 
> On Wed, May 18, 2011 at 12:30 AM, Alain_Rastoul <alr.dev at free.fr> wrote:
> When I do Smalltalk fixObsoleteReferences I have
> AnObsoleteTranscript class DNU show:
> :(
> "Mariano Martinez Peck" <marianopeck at gmail.com> a écrit dans le message de news: BANLkTin_Q9ArEvU6qHZRcT2x9r3VLFp39w at mail.gmail.com...
> 
> 
> On Wed, May 18, 2011 at 12:06 AM, Alain_Rastoul <alr.dev at free.fr> wrote:
> Hi,
> 
> Trying to upgrade my 1.3 image with Menu/System/Software Update,
> I had a MNU during update 13191 at
> AnObsoleteTranscript class >> cr
> which comes from:
> UndeclaredVariableWarning>>defaultAction
>  selector ifNotNil: [Transcript cr; nextPutAll: class name, '>>', selector,
> ' ']
>   ifNil: [Transcript cr ].
>  Transcript show: '(' , name , ' is Undeclared) '.
>  ^true
> 
> Something is missing or I did something wrong?
> 
> 
> Probably not. But probably Smalltalk fixObsoleteReferences also fixes it.
> 
>  
> TIA
> Regards,
> Alain
> 
> 
> 
> 
> 
> 
> 
> -- 
> Mariano
> http://marianopeck.wordpress.com
> 
> 
> 
> 
> -- 
> Mariano
> http://marianopeck.wordpress.com
> 




More information about the Pharo-project mailing list