[Pharo-project] Closure bytecodes?
Hi All, This list has been amazinly quick and helpful so thank you all. I'm continuing my adventure through the bytecode and I have a question about the bytecodes for closures. Below is an example dump of a closure ([]) 165 <8F 10 00 1E> closureNumCopied: 1 numArgs: 0 bytes 169 to 198 169 <10> pushTemp: 0 170 <C7> send: class 171 <83 11> send: selectors 173 <83 10> send: asSortedCollection 175 <52> pushLit: WriteStream 176 <53> pushLit: String 177 <CC> send: new 178 <EA> send: on: The number on the left I will refer to as the line number to make my questions more clear. Firstly, on line 165 the closure is reporting num copied 1. What is the 1 thing that it is copying? Secondly, the send bytecode on line 171 is different to that on line 175. Is it because 175 is using a set of known selectors while 171 has to refer to a literal table? Rgs, James.
2010/8/11 James Ladd <james_ladd@hotmail.com>
Hi All,
This list has been amazinly quick and helpful so thank you all.
I'm continuing my adventure through the bytecode and I have a question about the bytecodes for closures. Below is an example dump of a closure ([])
165 <8F 10 00 1E> closureNumCopied: 1 numArgs: 0 bytes 169 to 198 169 <10> pushTemp: 0 170 <C7> send: class 171 <83 11> send: selectors 173 <83 10> send: asSortedCollection 175 <52> pushLit: WriteStream 176 <53> pushLit: String 177 <CC> send: new 178 <EA> send: on:
The number on the left I will refer to as the line number to make my questions more clear.
Firstly, on line 165 the closure is reporting num copied 1. What is the 1 thing that it is copying?
http://www.mirandabanda.org/cogblog/2008/06/07/closures-part-i/ http://www.mirandabanda.org/cogblog/2008/07/22/closures-part-ii-the-bytecode... Secondly, the send bytecode on line 171 is different to that on line 175.
Is it because 175 is using a set of known selectors while 171 has to refer to a literal table?
I think you mean lines 171 & 177 right? If so, then yes, #new is a special selector (see Smalltalk specialSelectors). best Eliot
Rgs, James.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
participants (2)
-
Eliot Miranda -
James Ladd