Hi Eliot,
There are several other changes in that package that could generate
different behavior. Are they correct? They are:
BlockClosure >> value
used to call primitive 201, now calls 205
used to check for zero args, now checks for one (!?)
BlockClosure >> value:
used to call primitive 202, now calls 205
BlockClosure >> value:value:
used to call primitive 203, now calls 205
BlockClosure >> value:value:value:
used to call primitive 204, now calls 205
Primitive 205 was previously only used for #value:value:value:value:, so
I wonder if this might be a mistake.
Thanks,
Juan Vuletich
Eliot Miranda wrote:
On Tue, Jul 6, 2010 at 12:51 PM, stephane ducasse
<stephane.duca...@free.fr <mailto:stephane.duca...@free.fr>> wrote:
Eliot
should this fix be applied to pharo?
http://code.google.com/p/pharo/issues/detail?id=2655
Yes please. Almost everything I'm likely to put in Compiler, Kernel
or System on Squeak 4.1 belongs in all dialects using the closure
compiler.
Is there a dependency?
What's happing here is that very old primitive failure code that
allowed the closure system to run on old VMs without closure support
depended on BlockClosure>>asContext, which had a bug in it. So the
changes reflect the bug fix but are enclosed in false ifTrue: []
because they really are obsolete, but the code is retained because its
useful documentation of how the closure primitives should work. I
hope this makes sense!
best
Eliot
Stef
_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project