On Mar 28, 2011, at 11:28 AM, Mariano Martinez Peck wrote:

> Hi folks. I would like to know which are the messages that are not really 
> executed, thus not being intercepted by proxies.
> So far, I know:
> 
> 1)  
> those are inlined by the compiler...
> 
yes.

> 2)  Special shorcut bytecodes that are in "Smalltalk specialSelectors" / 
> "ParseNode classVarNamed:  'StdSelectors'"  / "Smalltalk specialObjectsArray 
> at: 24"
> 
> Here I have a question...if I understand correctly, in this list of selectors 
> there are 3 cases:
> 
> 2.1)  methods may or may not be executed depending on the receiver/arguments. 
> For example
> 1 + 2  will never send the message #+ to 1.
> but 1 + 'mariano'   will do.
> 

yes.

> 2.2) methods that are NEVER sent,   like #class and #==
> 
yes

> 2.3) methods that are ALWAYS sent, like #new, #next, #nextPut:, #size, etc.
> 
> So...did I understand correclty this part? 
> 
I think so, yes.

> 
> are there more cases where a message may not be really executed?


You could see the block creation bytecode as a problematic case.
It's not a message, so you can't trap it. 

But then when we are on that level, the same is with iVar access. Or temp 
access.


--
Marcus Denker  -- http://www.marcusdenker.de
INRIA Lille -- Nord Europe. Team RMoD.

Reply via email to