Ok,

I hereby volunteer to update the documentation to clearly explain
shifting (with examples).

-Jason


On Wed, 2002-10-30 at 14:05, James Cox wrote:
> 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