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-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
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project