A new version of Kernel was added to project The Inbox:
http://source.squeak.org/inbox/Kernel-ct.1297.mcz ==================== Summary ==================== Name: Kernel-ct.1297 Author: ct Time: 14 February 2020, 3:23:39.631118 pm UUID: ea664fbd-d8aa-c345-855b-f9b61348f064 Ancestors: Kernel-tonyg.1293 Repairs ObjectTracer. Following issues were resolved: - ObjectTracer does not understand #notify - Do not use #sentTo: if #doesNotUnderstand: (wrong lookup class) Futher changes: - added multilingual support - removed an outdated note from the ProtoObject class comment. =============== Diff against Kernel-tonyg.1293 =============== Item was removed: - ----- Method: ObjectTracer class>>initialize (in category 'initialize-release') ----- - initialize - "Fix for inconsistent image state in which ObjectTracer improperly appears as a subclass - of Class. This initialization should appear in the Squeak update stream in order to repair - existing images, and may be removed in a future update." - - Class removeSubclass: ObjectTracer class! Item was changed: ----- Method: ObjectTracer>>doesNotUnderstand: (in category 'very few messages') ----- doesNotUnderstand: aMessage + "Present a debugger before proceeding to re-send the message" - "All external messages (those not caused by the re-send) get trapped here" - "Present a dubugger before proceeding to re-send the message" + "All external messages (those not caused by the re-send) get trapped here" + nil notify: ('About to perform: {1}' translated format: {aMessage selector storeString}). + ^ aMessage sendTo: tracedObject! - self notify: 'About to perform: ', aMessage selector. - ^ aMessage sentTo: tracedObject. - ! Item was changed: nil subclass: #ProtoObject instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Kernel-Objects'! + !ProtoObject commentStamp: 'ct 2/14/2020 15:14' prior: 0! + ProtoObject establishes minimal behavior required of any object in Squeak, even objects that should balk at normal object behavior. Generally these are proxy objects designed to read themselves in from the disk, or to perform some wrapper behavior, before responding to a message. Current examples are ObjectOut and ImageSegmentRootStub. - !ProtoObject commentStamp: '<historical>' prior: 0! - ProtoObject establishes minimal behavior required of any object in Squeak, even objects that should balk at normal object behavior. Generally these are proxy objects designed to read themselves in from the disk, or to perform some wrapper behavior, before responding to a message. Current examples are ObjectOut and ImageSegmentRootStub, and one could argue that ObjectTracer should also inherit from this class. ProtoObject has no instance variables, nor should any be added.! |
@David:
> Item was removed: > - ----- Method: ObjectTracer class>>initialize (in category 'initialize-release') ----- > - initialize
> - "Fix for inconsistent image state in which ObjectTracer improperly appears as a subclass
> - of Class. This initialization should appear in the Squeak update stream in order to repair
> - existing images, and may be removed in a future update."
> -
> - Class removeSubclass: ObjectTracer class!
Von: Squeak-dev <[hidden email]> im Auftrag von [hidden email] <[hidden email]>
Gesendet: Freitag, 14. Februar 2020 15:23:46 An: [hidden email] Betreff: [squeak-dev] The Inbox: Kernel-ct.1297.mcz A new version of Kernel was added to project The Inbox:
http://source.squeak.org/inbox/Kernel-ct.1297.mcz ==================== Summary ==================== Name: Kernel-ct.1297 Author: ct Time: 14 February 2020, 3:23:39.631118 pm UUID: ea664fbd-d8aa-c345-855b-f9b61348f064 Ancestors: Kernel-tonyg.1293 Repairs ObjectTracer. Following issues were resolved: - ObjectTracer does not understand #notify - Do not use #sentTo: if #doesNotUnderstand: (wrong lookup class) Futher changes: - added multilingual support - removed an outdated note from the ProtoObject class comment. =============== Diff against Kernel-tonyg.1293 =============== Item was removed: - ----- Method: ObjectTracer class>>initialize (in category 'initialize-release') ----- - initialize - "Fix for inconsistent image state in which ObjectTracer improperly appears as a subclass - of Class. This initialization should appear in the Squeak update stream in order to repair - existing images, and may be removed in a future update." - - Class removeSubclass: ObjectTracer class! Item was changed: ----- Method: ObjectTracer>>doesNotUnderstand: (in category 'very few messages') ----- doesNotUnderstand: aMessage + "Present a debugger before proceeding to re-send the message" - "All external messages (those not caused by the re-send) get trapped here" - "Present a dubugger before proceeding to re-send the message" + "All external messages (those not caused by the re-send) get trapped here" + nil notify: ('About to perform: {1}' translated format: {aMessage selector storeString}). + ^ aMessage sendTo: tracedObject! - self notify: 'About to perform: ', aMessage selector. - ^ aMessage sentTo: tracedObject. - ! Item was changed: nil subclass: #ProtoObject instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Kernel-Objects'! + !ProtoObject commentStamp: 'ct 2/14/2020 15:14' prior: 0! + ProtoObject establishes minimal behavior required of any object in Squeak, even objects that should balk at normal object behavior. Generally these are proxy objects designed to read themselves in from the disk, or to perform some wrapper behavior, before responding to a message. Current examples are ObjectOut and ImageSegmentRootStub. - !ProtoObject commentStamp: '<historical>' prior: 0! - ProtoObject establishes minimal behavior required of any object in Squeak, even objects that should balk at normal object behavior. Generally these are proxy objects designed to read themselves in from the disk, or to perform some wrapper behavior, before responding to a message. Current examples are ObjectOut and ImageSegmentRootStub, and one could argue that ObjectTracer should also inherit from this class. ProtoObject has no instance variables, nor should any be added.!
Carpe Squeak!
|
Hi Christoph,
On Fri, Feb 14, 2020 at 02:40:05PM +0000, Thiede, Christoph wrote: > @David: > > > > Item was removed: > > > - ----- Method: ObjectTracer class>>initialize (in category 'initialize-release') ----- > > > - initialize > > - "Fix for inconsistent image state in which ObjectTracer improperly appears as a subclass > > - of Class. This initialization should appear in the Squeak update stream in order to repair > > - existing images, and may be removed in a future update." > > - > > - Class removeSubclass: ObjectTracer class! > > > Is this ok? Thanks for checking. Yes, removing this #initialize method is ok. > Can you tell me why you did not use a postscript for that? :-) There are only two possible explanations: 1) Stupidity 2) Ignorance I don't recall which of the two it was it in particular case, but either way you are right in suggesting that I should have used a postscript :-) Looking back through the commit history, it was introduced here: Name: Kernel-dtl.856 Author: dtl Time: 15 June 2014, 10:42:28.524 am UUID: 5a0967c5-86ae-4631-9d20-d960cd97abb1 Ancestors: Kernel-cmm.855 Fix inconsistent image state as reported on squeak-dev: Date: Wed, 11 Jun 2014 23:44:42 -0400 From: Florin Mateoc To: The general-purpose Squeak developers list Subject: [squeak-dev] Class subclasses I think this is an old bug, presumably since ProtoObject was introduced (and presumably because ObjectTracer was used in the process). If you ask Class for its subclasses (or if you inspect it) you see that ObjectTracer class is listed along with ProtoObject class, although ObjectTracer's superclass is ProtoObject. This can lead to some funny bugs if you try to write some hierarchy traversing code. For background, the original problem report and discussion are at http://lists.squeakfoundation.org/pipermail/squeak-dev/2014-June/178522.html Dave |
Perfect, thank you! Von: Squeak-dev <[hidden email]> im Auftrag von David T. Lewis <[hidden email]>
Gesendet: Samstag, 15. Februar 2020 01:59:51 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Inbox: Kernel-ct.1297.mcz Hi Christoph,
On Fri, Feb 14, 2020 at 02:40:05PM +0000, Thiede, Christoph wrote: > @David: > > > > Item was removed: > > > - ----- Method: ObjectTracer class>>initialize (in category 'initialize-release') ----- > > > - initialize > > - "Fix for inconsistent image state in which ObjectTracer improperly appears as a subclass > > - of Class. This initialization should appear in the Squeak update stream in order to repair > > - existing images, and may be removed in a future update." > > - > > - Class removeSubclass: ObjectTracer class! > > > Is this ok? Thanks for checking. Yes, removing this #initialize method is ok. > Can you tell me why you did not use a postscript for that? :-) There are only two possible explanations: 1) Stupidity 2) Ignorance I don't recall which of the two it was it in particular case, but either way you are right in suggesting that I should have used a postscript :-) Looking back through the commit history, it was introduced here: Name: Kernel-dtl.856 Author: dtl Time: 15 June 2014, 10:42:28.524 am UUID: 5a0967c5-86ae-4631-9d20-d960cd97abb1 Ancestors: Kernel-cmm.855 Fix inconsistent image state as reported on squeak-dev: Date: Wed, 11 Jun 2014 23:44:42 -0400 From: Florin Mateoc To: The general-purpose Squeak developers list Subject: [squeak-dev] Class subclasses I think this is an old bug, presumably since ProtoObject was introduced (and presumably because ObjectTracer was used in the process). If you ask Class for its subclasses (or if you inspect it) you see that ObjectTracer class is listed along with ProtoObject class, although ObjectTracer's superclass is ProtoObject. This can lead to some funny bugs if you try to write some hierarchy traversing code. For background, the original problem report and discussion are at http://lists.squeakfoundation.org/pipermail/squeak-dev/2014-June/178522.html Dave
Carpe Squeak!
|
Free forum by Nabble | Edit this page |