ObjectTracer inheritance problem (was: Re: [squeak-dev] Tool problem: flattenHierarchy...)

Frank Shearar frank.shearar at angband.za.org
Fri Apr 29 17:28:33 UTC 2011


On 2011/04/29 17:38, Chris Muller wrote:
> After some digging, I finally discovered the cause of this "tool"
> problem is that there are two classes in the system which each have
> ObjectTracer class (and, therefore its subclass, ObjectViewer class)
> as a subclass.  The two superclasses are, Class and ProtoObject class.
>   I guess Class should have ObjectTracer class removed as its other
> subclass besides ProtoObject?
>
> This is true even in our latest Squeak4.3alpha-11314 image on the ftp
> server.   :-(
>
> I see that Kernel-bf.565 made a change related in this area.
>
> Any advice or action is greatly appreciated.
>
>   - Chris

That matches my investigations: I've been trying to narrow down the 
problem, and knew it had _something_ to do with ObjectTracer.

_Not_ a pretty problem to chase down.

Prior to Kernel-bf.565 we have

ProtoObject subclass: #ObjectTracer
	instanceVariableNames: 'tracedObject recursionFlag'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Kernel-Objects'.
ObjectTracer superclass: nil

and after we have

ProtoObject subclass: #ObjectTracer
	instanceVariableNames: 'tracedObject recursionFlag'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Kernel-Objects'

A bit beyond my Squeak knowledge!

(What's extra weird is that the Monticello diff shows what looks to be 
an _equivalent_ change, but not the _same_ change. To gitify:

--- nil subclass: #ObjectTracer
+++ ProtoObject subclass: #ObjectTracer
)

frank

> On Thu, Apr 28, 2011 at 1:21 PM, Frank Shearar
> <frank.shearar at angband.za.org>  wrote:
>> On 2011/04/28 16:47, Frank Shearar wrote:
>>>
>>> On 2011/04/28 16:33, Chris Muller wrote:
>>>>
>>>> Sorry, I can't work on this - to reproduce,
>>>>
>>>> 1) browse implementors of chooseInstVarThenDo:
>>>> 2) try to spawn a hierarchy from the opened MessageSet.
>>>>
>>>> After a longish pause, a debugger opens; nil is getting into the
>>>> hierarchy.
>>>
>>> The long pause is understandable: ClassDescription generates a large
>>> hierarchy, which you can examine by evaluating:
>>>
>>> Browser new createHierarchyTreeOf: ClassDescription allSuperclasses,
>>> {ClassDescription}, ClassDescription allSubclasses
>>>
>>> I'll look at what I broke this afternoon/evening.
>>
>> Huh. It's not actually Browser's fault. I have an image based on trunk
>> #11196 where I did all my Browser hacking; loading the latest
>> Tools(-cmm.345) spawns a ClassDescription hierarchy just fine.
>>
>> That doesn't mean I know where the problem _is_, just one place where it is
>> _not_.
>>
>> (What might be really cool is if we could have something that, when
>> something's added to a repository (like Trunk), generates a browseable
>> history thing: lists of versions, diffs between versions, and so on. I don't
>> care if that's in-image or in a web browser; it'd just make things like
>> finding out the current problem a lot easier.)
>>
>> frank
>>
>>
>
>
>




More information about the Squeak-dev mailing list