In my case, the proxy class is CompiledMethodProxy and it is a subclass of AbstractCompiledMethodProxy which is a subclass of ProtoObject.

In AbstractCompiledMethodProxy I have:

AbstractCompiledMethodProxy >> doesNotUnderstand: aMessage
    self mareaIsProxyInstalled
        ifTrue: [ ^ CompiledMethodProxyHandler mareaHandleDoesNotUnderstand: aMessage forProxy: self]
        ifFalse: [ ^ super doesNotUnderstand: aMessage ].
CompiledMethodProxy >> mareaIsProxyInstalled
    ^ fileName isNil not

Now....I was checking in VM side, method Interpreter >> lookupMethodInClass: class
and still cannot understand how can I get a  'Recursive not understood error encountered'  error, because in the previous loop, it MUST find the method dnu, since it is implemented in ProtoObject.  I am confused :(

Thanks in advance for any help


On Mon, Dec 6, 2010 at 10:09 PM, Mariano Martinez Peck <> wrote:

On Mon, Dec 6, 2010 at 8:34 PM, John M McIntosh <> wrote:

On 2010-12-06, at 12:38 AM, Mariano Martinez Peck wrote:
You should look at the Objective-C bridge I wrote  , the Objective-C proxy object  that is based on ProtoObject and contains the 
required methods to ensure a debugger will come up. It *does* override does not understand so it can transform the unknown 
message into a primitive call. 

Excellent!! How can I load such code?  (squeaksource is down now and I cannot search)

Thanks John!


Thanks John, I found it once SqueakSource came back. Now, I still don't understand how is this (adding some methods to ProtoObject for debugging, inspecting, printing) related to the "Recursive not understood error encountered" crash ?  or this is just extra help information ? ;)


John M. McIntosh <>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.