The Inbox: Kernel-ct.1297.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

The Inbox: Kernel-ct.1297.mcz

commits-2
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.!


Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Kernel-ct.1297.mcz

Christoph Thiede

@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? Can you tell me why you did not use a postscript for that? :-)

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.!




Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Kernel-ct.1297.mcz

David T. Lewis
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


Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Kernel-ct.1297.mcz

Christoph Thiede

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