[Pharo-project] Fwd: [Vm-dev] Image freeze because
handleTimerEvent and Seaside process gone?!
eliot.miranda at gmail.com
Tue Dec 7 18:47:39 UTC 2010
On Tue, Dec 7, 2010 at 3:41 AM, Lukas Renggli <renggli at gmail.com> wrote:
> > One change that I don't understand, although it probably is unrelated, is
> in :
> > LargePositiveInteger removeSelector: #=!
> > LargePositiveInteger removeSelector: #bitAnd:!
> > LargePositiveInteger removeSelector: #bitOr:!
> > LargePositiveInteger removeSelector: #bitShift:!
> > LargePositiveInteger removeSelector: #bitXor:!
> > LargePositiveInteger removeSelector: #'~='!
> > Why would one want to remove these primitive calls from large integers?
> AFAIK, Cog needs those.
That's right. Those methods used SmallInteger primitives (7, 8, 14, 15, 16
& 17) and in Cog SmallInteger primitives only work on SmallIntegers, not on
up to 64-bit LargeIntegers; i.e. they don't bother to test the receiver for
being a SmallInteger and hence crash if installed on LargeInteger. I
probably made a mistake in deciding to save a tag test, but I did. Instead
these methods should use the relevant LargeInteger primitives. The issue is
I think those are missing in the standard VM. See primitives 27 28 34 35 36
37 primitiveEqualLargeIntegers, primitiveNotEqualLargeIntegers,
in the Cog VM and perhaps the standard VM. If they're missing in teh
standard VM it should be fine to redefine those methods to include the 27 28
34 35 36 & 37 primitive numbers. If they're defined differently someone
needs to check that using those numbers works in the standard VM.
> Lukas Renggli
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Vm-dev