On Thu, 24 Dec 2009, csrabak@bol.com.br wrote:
Em 24/12/2009 01:21, Levente Uzonyi < leves@elte.hu > escreveu:
On Thu, 24 Dec 2009, csrabak@bol.com.br wrote:
Em 23/12/2009 22:51, Nicolas Cellier escreveu:
2009/12/24 :
Igor, Sometimes a fallacy can be written by clever people, by accident. If you pay attention to the line: (size := self size) = otherCollection size ifFalse: [^false]. I all Smalltalks [Except Pharo to what I wrote a comment in issue 1637 http://code.google.com/p/pharo/issues/detail?id=1637] this would return false if self be not Collection or otheCollection isKindOf: Collection not. This happens because in these Smalltalks Object>>size returns zero. Not so sure. Try 1.0 size, then 1.0 at: 1.0 size in you favourite dialect. Nicolas, In Squeak 3.10.2-7179: 1.0 size -> 2 "OK I'm surprised here" It's not surprising since Float is a variable word subclass of Number. :)
1.0 at: 1.0 size -> 0 "this will not work anymore in Pharo because indices have to be Integer in Pharo right now" The index is 2, so it will work. Btw, I wonder how pharo can force Integer indices if the vm accepts Floats too.
Levente,
In fact VM _does_ _not_ accept Floats as indices. There is a hack in Squeak code (which in fact contradicts the comment in the method) in the #at: methods that make a conversion from Number to Integer.
If you comment that code out you'll see the VM #at: (via the primitive) will fail with Floats.
True, and cool, since this hack can be removed. Now I wonder why did I assume that the vm has this hack. :) Levente
-- Cesar Rabak
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project