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
On Thu, Apr 28, 2011 at 1:21 PM, Frank Shearar frank.shearar@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,
- browse implementors of chooseInstVarThenDo:
- 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
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@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,
- browse implementors of chooseInstVarThenDo:
- 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
On 29.04.2011, at 14:28, Frank Shearar wrote:
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
My change made ObjectTracer a subclass of ProtoObject instead of nil so it inherits some essential methods to make it work. Maybe re-classifying subclasses of nil is broken?
- Bert -
On Thu, Apr 28, 2011 at 1:21 PM, Frank Shearar frank.shearar@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,
- browse implementors of chooseInstVarThenDo:
- 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
squeak-dev@lists.squeakfoundation.org