AndreasSystemProfiler missing CompiledMethod>>who

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

AndreasSystemProfiler missing CompiledMethod>>who

David T. Lewis
This is just a convenience method that probably belongs in the AndreasSystemProfiler
package (or in Squeak trunk?).

Or if I am guessing right it might be just a matter of changing the printOn:

QSystemTally>>printOn: aStream
        aStream print: class; nextPutAll: '>>'; print: (method ifNotNil:[method selector storeString]).
        aStream nextPutAll: ' -- '; print: tally.


TIA,
Dave




MNU-CompiledMethod-who.png (40K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: AndreasSystemProfiler missing CompiledMethod>>who

Frank Shearar-3
On 5 March 2013 00:46, David T. Lewis <[hidden email]> wrote:
> This is just a convenience method that probably belongs in the AndreasSystemProfiler
> package (or in Squeak trunk?).
>
> Or if I am guessing right it might be just a matter of changing the printOn:
>
> QSystemTally>>printOn: aStream
>         aStream print: class; nextPutAll: '>>'; print: (method ifNotNil:[method selector storeString]).
>         aStream nextPutAll: ' -- '; print: tally.

I'd imagine it does something like CompiledMethod >> #timeStamp, that
is, displays a bit of the CM's metadata. That seems like a good
candidate for trunk.

frank

Reply | Threaded
Open this post in threaded view
|

Re: AndreasSystemProfiler missing CompiledMethod>>who

Bert Freudenberg
On 2013-03-05, at 12:06, Frank Shearar <[hidden email]> wrote:

> On 5 March 2013 00:46, David T. Lewis <[hidden email]> wrote:
>> This is just a convenience method that probably belongs in the AndreasSystemProfiler
>> package (or in Squeak trunk?).
>>
>> Or if I am guessing right it might be just a matter of changing the printOn:
>>
>> QSystemTally>>printOn: aStream
>>        aStream print: class; nextPutAll: '>>'; print: (method ifNotNil:[method selector storeString]).
>>        aStream nextPutAll: ' -- '; print: tally.

That's the right fix, yes.

> I'd imagine it does something like CompiledMethod >> #timeStamp, that
> is, displays a bit of the CM's metadata. That seems like a good
> candidate for trunk.
>
> frank

#who was removed recently when we introduced method properties. It used to answer {class. selector} of the method. The reason was that it was a very expensive operation, it used to scan all classes to find the new method. So if you needed both the class and selector, it would have to do the scan twice.

Now it would be simple enough to re-implement for compatibility, but then it is very easy to change the senders, too. And since it makes the senders a lot more readable we have not re-implemented #who.

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: AndreasSystemProfiler missing CompiledMethod>>who

Frank Shearar-3
On 5 March 2013 11:12, Bert Freudenberg <[hidden email]> wrote:

> On 2013-03-05, at 12:06, Frank Shearar <[hidden email]> wrote:
>
>> On 5 March 2013 00:46, David T. Lewis <[hidden email]> wrote:
>>> This is just a convenience method that probably belongs in the AndreasSystemProfiler
>>> package (or in Squeak trunk?).
>>>
>>> Or if I am guessing right it might be just a matter of changing the printOn:
>>>
>>> QSystemTally>>printOn: aStream
>>>        aStream print: class; nextPutAll: '>>'; print: (method ifNotNil:[method selector storeString]).
>>>        aStream nextPutAll: ' -- '; print: tally.
>
> That's the right fix, yes.
>
>> I'd imagine it does something like CompiledMethod >> #timeStamp, that
>> is, displays a bit of the CM's metadata. That seems like a good
>> candidate for trunk.
>>
>> frank
>
> #who was removed recently when we introduced method properties. It used to answer {class. selector} of the method. The reason was that it was a very expensive operation, it used to scan all classes to find the new method. So if you needed both the class and selector, it would have to do the scan twice.
>
> Now it would be simple enough to re-implement for compatibility, but then it is very easy to change the senders, too. And since it makes the senders a lot more readable we have not re-implemented #who.

OK, so AndreasSystemProfiler was just a bit out of date. That's fine;
I just don't want to see loads of packages having to extend
CompiledMethod to get some metadata.

frank

> - Bert -
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: AndreasSystemProfiler missing CompiledMethod>>who

David T. Lewis
In reply to this post by Bert Freudenberg
On Tue, Mar 05, 2013 at 12:12:51PM +0100, Bert Freudenberg wrote:

> On 2013-03-05, at 12:06, Frank Shearar <[hidden email]> wrote:
>
> > On 5 March 2013 00:46, David T. Lewis <[hidden email]> wrote:
> >> This is just a convenience method that probably belongs in the AndreasSystemProfiler
> >> package (or in Squeak trunk?).
> >>
> >> Or if I am guessing right it might be just a matter of changing the printOn:
> >>
> >> QSystemTally>>printOn: aStream
> >>        aStream print: class; nextPutAll: '>>'; print: (method ifNotNil:[method selector storeString]).
> >>        aStream nextPutAll: ' -- '; print: tally.
>
> That's the right fix, yes.
>
> > I'd imagine it does something like CompiledMethod >> #timeStamp, that
> > is, displays a bit of the CM's metadata. That seems like a good
> > candidate for trunk.
> >
> > frank
>
> #who was removed recently when we introduced method properties. It used to answer {class. selector} of the method. The reason was that it was a very expensive operation, it used to scan all classes to find the new method. So if you needed both the class and selector, it would have to do the scan twice.
>
> Now it would be simple enough to re-implement for compatibility, but then it is very easy to change the senders, too. And since it makes the senders a lot more readable we have not re-implemented #who.
>
> - Bert -

Thanks. It's a trivial change to QSystemTally>>printOn: so that's probably
the right place for it.

Dave


Reply | Threaded
Open this post in threaded view
|

Re: AndreasSystemProfiler missing CompiledMethod>>who

Nicolas Cellier
In reply to this post by Bert Freudenberg
Recently means a bit more than 3 years ago.
CompiledMethod>>who was in 39Deprecated-ar.12.mcz and removed in :


http://source.squeak.org/trunk/39Deprecated-ar.13.mcz

==================== Summary ====================

Name: 39Deprecated-ar.13
Author: ar
Time: 12 November 2009, 1:16:02 am
UUID: 5505bcd8-c454-6a4d-bbc4-c91be4bc06eb
Ancestors: 39Deprecated-ar.12

Remove support for isolation layers.

=============== Diff against 39Deprecated-ar.12 ===============

Item was removed:
- ----- Method: CompiledMethod>>who (in category '*39Deprecated') -----
- who
- "Answer an Array of the class in which the receiver is defined and the
- selector to which it corresponds."
-
- self deprecated: 'use #methodClass and #selector directly'.
- self isInstalled ifFalse: [^#(unknown unknown)].
- ^{self methodClass . self selector}.
- !

snip...

I guess deprecation has occured in 3.9, it would be around 2006
39Deprecated-md.12.mcz from july 2006 already has it.

Nicolas

2013/3/5 Bert Freudenberg <[hidden email]>:

> On 2013-03-05, at 12:06, Frank Shearar <[hidden email]> wrote:
>
>> On 5 March 2013 00:46, David T. Lewis <[hidden email]> wrote:
>>> This is just a convenience method that probably belongs in the AndreasSystemProfiler
>>> package (or in Squeak trunk?).
>>>
>>> Or if I am guessing right it might be just a matter of changing the printOn:
>>>
>>> QSystemTally>>printOn: aStream
>>>        aStream print: class; nextPutAll: '>>'; print: (method ifNotNil:[method selector storeString]).
>>>        aStream nextPutAll: ' -- '; print: tally.
>
> That's the right fix, yes.
>
>> I'd imagine it does something like CompiledMethod >> #timeStamp, that
>> is, displays a bit of the CM's metadata. That seems like a good
>> candidate for trunk.
>>
>> frank
>
> #who was removed recently when we introduced method properties. It used to answer {class. selector} of the method. The reason was that it was a very expensive operation, it used to scan all classes to find the new method. So if you needed both the class and selector, it would have to do the scan twice.
>
> Now it would be simple enough to re-implement for compatibility, but then it is very easy to change the senders, too. And since it makes the senders a lot more readable we have not re-implemented #who.
>
> - Bert -
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: AndreasSystemProfiler missing CompiledMethod>>who

David T. Lewis
In reply to this post by Bert Freudenberg
On Tue, Mar 05, 2013 at 12:12:51PM +0100, Bert Freudenberg wrote:

> On 2013-03-05, at 12:06, Frank Shearar <[hidden email]> wrote:
>
> > On 5 March 2013 00:46, David T. Lewis <[hidden email]> wrote:
> >> This is just a convenience method that probably belongs in the AndreasSystemProfiler
> >> package (or in Squeak trunk?).
> >>
> >> Or if I am guessing right it might be just a matter of changing the printOn:
> >>
> >> QSystemTally>>printOn: aStream
> >>        aStream print: class; nextPutAll: '>>'; print: (method ifNotNil:[method selector storeString]).
> >>        aStream nextPutAll: ' -- '; print: tally.
>
> That's the right fix, yes.
>
Trivial patch attached. Ron or Eliot, can one of you update this on
http://ss3.gemstone.com/ss/AndreasSystemProfiler?

Thanks!
Dave
 



QSystemTally-printOn.st (323 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

RE: AndreasSystemProfiler missing CompiledMethod>>who

Ron Teitelbaum
Thanks for the fix.  I added it.


All the best,

Ron Teitelbaum
Head Of Engineering
3d Immersive Collaboration Consulting
[hidden email]
Follow Me On Twitter: @RonTeitelbaum
www.3dicc.com


> -----Original Message-----
> From: [hidden email] [mailto:squeak-dev-
> [hidden email]] On Behalf Of David T. Lewis
> Sent: Wednesday, March 06, 2013 7:15 AM
> To: The general-purpose Squeak developers list
> Cc: [hidden email]
> Subject: Re: [squeak-dev] AndreasSystemProfiler missing
> CompiledMethod>>who
>
> On Tue, Mar 05, 2013 at 12:12:51PM +0100, Bert Freudenberg wrote:
> > On 2013-03-05, at 12:06, Frank Shearar <[hidden email]> wrote:
> >
> > > On 5 March 2013 00:46, David T. Lewis <[hidden email]> wrote:
> > >> This is just a convenience method that probably belongs in the
> > >> AndreasSystemProfiler package (or in Squeak trunk?).
> > >>
> > >> Or if I am guessing right it might be just a matter of changing the
printOn:
> > >>
> > >> QSystemTally>>printOn: aStream
> > >>        aStream print: class; nextPutAll: '>>'; print: (method
ifNotNil:[method

> selector storeString]).
> > >>        aStream nextPutAll: ' -- '; print: tally.
> >
> > That's the right fix, yes.
> >
>
> Trivial patch attached. Ron or Eliot, can one of you update this on
> http://ss3.gemstone.com/ss/AndreasSystemProfiler?
>
> Thanks!
> Dave
>