[Vm-dev] VM Maker: VMMaker.oscog-eem.597.mcz

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Wed Feb 5 21:55:00 UTC 2014


2014-01-31 Eliot Miranda <eliot.miranda at gmail.com>:

>
> Hi All,
>
>     I'd be grateful for a second set of eyes to review my changes in
> plugin land.  The idea here was to eliminate as many isIntegerObject: sends
> where the intent is to fail if interpreterProxy isImmediate:.  There are
> other cleanups too; some places where it is assumed the start of an object
> is object + 4 (instead of object + BaseHeaderSize, which hopefully will fix
> some Spur bugs, where BaseHeaderSize is 8).  But there are a fair few fixes
> and I could have made a mistake.
>
> TIA
>
>
>
Hi Eliot, I'm afraid that so many changes at once has a quite selective
effect...
That means significant time and effort to review.
Next time, I suggest distillating bugs on purpose just to check how
attentive the list is ;)

I don't know if I where careful enough, but there is only one thing I
noticed in #ffiIntegerValueOf:

We now either return a positive32BitValueOf: or a
signedMachineIntegerValueOf:
If sizeof(long)==4, then behavior is unchanged, otherwise there is some
sort of strange dyssymetry...
Shouldn't it then be positveMachineIntegerValueOf: (does not exist yet ?)

The sender #ffiArgByValue:in: will either pushByte short int or long long
(signed or not), but not long so there is an apparent mismatch...
Oh but wait, ffiPushSignedInt:in: calls longAt:put:...
Oh but wait, longAtPut: takes a sqInt...
...which is either an int or a long...
It is very disturbing to follow...

OK, OK, there is no ThreadedFFIIA64Plugin yet, but that's going to be
difficult to implement correctly...
Especially if sizeof(int) != sizeof(long), we are going to lack a pushInt
pushLong distinction.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20140205/d2579a71/attachment.htm


More information about the Vm-dev mailing list