[squeak-dev] The Trunk: Kernel-cmm.760.mcz

Chris Muller asqueaker at gmail.com
Mon May 27 19:33:21 UTC 2013


Yes.  After looking at it, it appears the "goal" of Igor's
MessageCatchingProxy is to have a "clean slate" proxy.  I don't know
how this differs from simply inheriting from nil, unless it's to help
the tools (Browsers, etc.), which may rely on some Object/ProtoObject
methods, to work.

I can understand perhaps for a message counting or logging tool,
MessageCatchingProxy would make a lot of sense.  In my case for a DB
proxy, I'd end up copying at least several of the methods from
ProtoObject.

Whether one wants their proxy be a "clean slate" or inherit a "minimal
API", depends on what they want to do..

On Mon, May 27, 2013 at 1:20 AM, Tobias Pape <Das.Linux at gmx.de> wrote:
> This is new to me, but sounds interesting.
> However, i know a lot code that creates proxies
> Using ProtoObject …
> Am 27.05.2013 um 02:50 schrieb Levente Uzonyi <leves at elte.hu>:
>
>> On Sun, 26 May 2013, Chris Muller wrote:
>>
>>> Why?
>>
>> Because there's a better way: http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-November/132554.html
>>
>> IIRC Igor extended his implementation, and it's probably part of Pharo since 1.x.
>>
>>
>> Levente
>>
>>>
>>> On Sun, May 26, 2013 at 1:11 PM, Levente Uzonyi <leves at elte.hu> wrote:
>>>> On Sun, 26 May 2013, commits at source.squeak.org wrote:
>>>>
>>>>> Chris Muller uploaded a new version of Kernel to project The Trunk:
>>>>> http://source.squeak.org/trunk/Kernel-cmm.760.mcz
>>>>>
>>>>> ==================== Summary ====================
>>>>>
>>>>> Name: Kernel-cmm.760
>>>>> Author: cmm
>>>>> Time: 26 May 2013, 11:25:19.426 am
>>>>> UUID: 523782ae-3096-40ec-8031-77432a691908
>>>>> Ancestors: Kernel-fbs.759
>>>>>
>>>>> - Move #isKindOf: to ProtoObject to allow the PointerFinder to work with
>>>>> Proxies.
>>>>
>>>>
>>>> Proxies shouldn't be implemented by subclassing ProtoObject.
>>>>
>>>>
>>>> Levente
>>>>
>>>>
>>>>>
>>>>> =============== Diff against Kernel-fbs.759 ===============
>>>>>
>>>>> Item was removed:
>>>>> - ----- Method: Object>>isKindOf: (in category 'class membership') -----
>>>>> - isKindOf: aClass
>>>>> -       "Answer whether the class, aClass, is a superclass or class of the
>>>>> receiver."
>>>>> -
>>>>> -       self class == aClass
>>>>> -               ifTrue: [^true]
>>>>> -               ifFalse: [^self class inheritsFrom: aClass]!
>>>>>
>>>>> Item was added:
>>>>> + ----- Method: ProtoObject>>isKindOf: (in category 'testing') -----
>>>>> + isKindOf: aClass
>>>>> +       "Answer whether the class, aClass, is a superclass or class of the
>>>>> receiver."
>>>>> +       ^ self class == aClass or: [ self class inheritsFrom: aClass ]!
>>
>


More information about the Squeak-dev mailing list