[Vm-dev] Signed/unsigned shifting
Ben Coman
btc at openInWorld.com
Sat Nov 22 23:54:22 UTC 2014
Eliot Miranda wrote:
>
>
>
> ------------------------------------------------------------------------
>
> Hi Bert,
>
> On Sat, Nov 22, 2014 at 5:12 AM, Bert Freudenberg <bert at freudenbergs.de
> <mailto:bert at freudenbergs.de>> wrote:
>
>
> On 21.11.2014, at 23:01, Eliot Miranda uploaded
> VMMaker.oscog-eem.950.mcz
> >
> > Introduce >>> as an explicitly signed shift.
>
> Ugh, can we pick something else, please? It's really confusing. In
> various languages (notably Java and JavaScript), >> is signed and
> >>> unsigned. I don't know any language that has both operators and
> the meaning reversed.
>
>
> This is confused because of history. What I'd like is to use >> as a
> signed shift (because that's what it is) and >>> as an unsigned shift.
> And I'd like to change bitShift: to generate signed shifts and introduce
> unsignedBitShift: and ditch signedBitShift:. But that means changing
> all uses of >> in VMMaker. This would be my preferred solution but I
> think its *really* important that if we go this route we change
> VMMaker.oscog, VMMaker and VMMakerJS at the same time. Can we
> synchronise this?
>
>
>
>
> And >> still means signed or unsigned depending on context. Not nice
> at all.
>
>
> Right. And there's the signedBitShift: bogosity too.
>
>
>
> How about ...
>
> >> signed/unsigned depending on type (what we have now)
> >>+ force unsigned shift
> >>- force signed shift
>
>
> That's funny. For me the + screams signed. So I would accept
>
> >> signed/unsigned depending on type (what we have now)
> >>+ force signed shift
> >>- force unsigned shift
>
> But I don't think you're right about >> being context dependent. At
> least in VMMaker.oscog >> is always unsigned. The change I made to
> generation was to not coerce a 64-bit receiver to 32-bits, but I didn't
> change the signedness.
>
> --
> best,
> Eliot
The use of both + and - still leaves room for ambiguity. How about...
>>> force unsigned
>>+ force signed
cheers -ben
More information about the Vm-dev
mailing list