Re: [Pharo-project] Which methods are really not executed?
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.
participants (1)
-
Marcus Denker