We're going to walk into a confusion where people will expect <<< to work
too, and get bitten. We have to be really careful that we explain it
properly.

 -- james

>
> I think you guys have convinced me that having >>> only isn't too bad
> (Jason will kill me now).
> Does anyone here on php-dev have any additional thoughts?
> I just want to point out that what convinced me wasn't the "anyone who
> knows twos complement would know that blah blah blah" argument. Don't
> forget that most of our PHP users aren't always that knowledgeable and we
> need to understand and respect that. Anyway, I just wanted to say that
> because I often get the feeling that people on php-dev forget that it's
> usually the more computer science oriented people on this list
> which isn't
> necessarily the average PHP user.
>
> Andi
>
> At 11:39 AM 10/29/2002 -0600, Jason T. Greene wrote:
> >On Thu, 2002-10-24 at 09:51, David M. Lloyd wrote:
> > > On Thu, 24 Oct 2002, Andi Gutmans wrote:
> > >
> > > > At 02:49 PM 10/23/2002 -0500, David M. Lloyd wrote:
> > > >
> > > > >The reality of twos-complement, bitwise arithmatic is that
> there are
> > > > >three basic shift operations:  shift left, bitwise shift right, and
> > > > >arithmetic shift right.  This simple fact is one of the
> basic ideas of
> > > > >dealing with twos-complement integers.
> > > >
> > > > I know that but I still wanted the opposite to be available to keep
> > > > things symmetrical. I'm not sure but I think CPU's do support both
> > > > logical and arithmetic shifts and just do the same with
> both (I might be
> > > > wrong though).
> > >
> > > Generally no, it's a waste of opcode space for modern CISC processors.
> > > RISC processors often have integrated barrel-shifters, so
> they don't need
> > > shift instructions at all.
> > >
> > > Intel carries over "arithmetic" shift right instructions from older
> > > architetures for backwards-compatibility with x86, but their RISC
> > > implementation (Itanium) does not contain support for the operation.
> > >
> > > One RISC example is ARM.  They give you four shift options:
> Logical left,
> > > logical right, arithmetic right, and rotate right.  Making
> the operation
> > > symmetrical is a waste of precious bit combinations, and
> would have meant
> > > either losing another shift operation or else adding another
> bit to the
> > > shift operation specifier, which means that another bit would
> have to be
> > > sacrificed elsewhere.
> > >
> > > Another example is SPARC, which implements shifting with discrete
> > > instructions, only implents one left shift operator.  PowerPC does not
> > > implement it either.
> >
> >Alpha has 3 instructions as well (log left, log right, arith right)
> >
> > > > >Given this fact, there is no reason to have a bogus fourth
> operator
> > in the
> > > > >name of symmetry.  Mathematical operaters are simply not always
> > > > >symmetrical.  There is no such thing as 'arithmetic shift left' or
> > > > >'logical shift left' in terms of twos-complement integers,
> so why invent
> > > > >it?
> > > >
> > > > I agree that they don't *have* to be symmetrical but I think it's
> > > > better.
> > >
> > > Better why?  Anyone who understands twos-complement will
> understand (and
> > > expect) the ability to do those three operations, and will not be
> > > surprised by the lack of two left shifts.  I argue that they
> *should NOT*
> > > be symmetrical because it is wrong.
> >
> >I have to say I agree, introducing a bogus operator could actually cause
> >confusion. Java, which has been used several times in past arguments of
> >"why we should not do XYZ", has not had a problem with having only the
> >operators that actually exist.
> >
> > > > >Second of all, my understanding of the here-doc operator
> is that it acts
> > > > >as a unary operation.  I don't see the conflict with the binary
> > > > >application of <<<, given the example of unary and binary
> -, if it is
> > > > >absolutely neccessary to fulfill the (somewhat psychotic) need for
> > > > >symmetry where it is not realy needed, or even strictly correct.
> > > >
> > > > psychotic? Can we please have discussions on a professional and not
> > > > personal level?
> > >
> > > It is true though, unless you can give me a sound
> mathematical reason that
> > > the ops should exist... and saying "it looks right" or "it is
> easier" is
> > > not a valid reason, becuase to those with even basic
> twos-complement math
> > > background, it looks wrong and is not easier.
> > >
> > > > As far as I remember it does clash with here-docs. I'm pretty sure I
> > > > thought of an example a while back. I can try and think of
> one again. In
> > > > any case, I wouldn't want an overloaded operator. We try
> and keep away
> > > > of that kind of stuff with PHP.
> >Clashing can occur with Constant values, and functions with a \n in
> >front of the ().
> >
> > > Very well... then let's not put in the nonsense operator, and
> just have
> > > three shift operations: <<, >>, and >>>.
> >
> >I agree
> >
> > > - D
> > >
> > > <[EMAIL PROTECTED]>
> > >
> > >
> > > --
> > > PHP Development Mailing List <http://www.php.net/>
> > > To unsubscribe, visit: http://www.php.net/unsub.php
> > >
> >-Jason
> >
> >--
> >Jason T. Greene <[EMAIL PROTECTED]>
> >                 <[EMAIL PROTECTED]>
> >
> >
> >
> >
> >--
> >PHP Development Mailing List <http://www.php.net/>
> >To unsubscribe, visit: http://www.php.net/unsub.php
>
>
> --
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to