2010/8/11 James Ladd <[email protected]>

>  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-bytecodes/


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
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to