[Pharo-project] Fwd: [Vm-dev] Image freeze because handleTimerEvent and Seaside process gone?!

Eliot Miranda 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 [2]:
> >
> > 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,
primitiveBitAndLargeIntegers, primitiveBitOrLargeIntegers,
primitiveBitXorLargeIntegers, primitiveBitShiftLargeIntegers
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.

HTH
Eliot

>
> Lukas
>
> --
> Lukas Renggli
> www.lukas-renggli.ch
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20101207/b0ffc974/attachment.htm


More information about the Vm-dev mailing list