RE: [PHP-DEV] Re: Unsigned Problems Revisited

2002-10-31 Thread Ford, Mike [LSS]
 -Original Message-
 From: Andi Gutmans [mailto:andi;zend.com]
 Sent: 30 October 2002 19:26
 
 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?

Well, although I think it's a good idea to add the missing shift
operator, I'd be a bit worried about the potential for confusion 
caused by having  and  operators that are not opposites of each 
other -- particularly with people trying to use  as a shift on the 
grounds that it ought to exist and wondering why the rest of their 
script had apparently disappeared down a black hole!

Whilst I don't want to start another lengthy discussion that ends up
going round the mulberry bush umpteen times, should we be considering
whether this is a case where PHP should strike out on its own and use
a slightly different operator for this?

Cheers!

Mike

-
Mike Ford,  Electronic Information Services Adviser,
Learning Support Services, Learning  Information Services,
JG125, James Graham Building, Leeds Metropolitan University,
Beckett Park, LEEDS,  LS6 3QS,  United Kingdom
Email: [EMAIL PROTECTED]
Tel: +44 113 283 2600 extn 4730  Fax:  +44 113 283 3211 


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




Re: [PHP-DEV] Re: Unsigned Problems Revisited

2002-10-30 Thread Andi Gutmans
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




RE: [PHP-DEV] Re: Unsigned Problems Revisited

2002-10-30 Thread James Cox
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 

RE: [PHP-DEV] Re: Unsigned Problems Revisited

2002-10-30 Thread Andi Gutmans
At 08:05 PM 10/30/2002 +, 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.


That was my initial worry too.

Andi


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




Re: [PHP-DEV] Re: Unsigned Problems Revisited

2002-10-30 Thread Jason T. Greene
On Wed, 2002-10-30 at 13:26, Andi Gutmans wrote:
 I think you guys have convinced me that having  only isn't too bad 

Great, I really think this is the way to go!

 (Jason will kill me now)
/me kills Andi

Just kidding, I am just glad we can come to an agreement, so I can start
working on a patch.

 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.

I will keep that in mind.

Thanks,
-Jason

 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]
  

RE: [PHP-DEV] Re: Unsigned Problems Revisited

2002-10-30 Thread Jason T. Greene
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
   

RE: [PHP-DEV] Re: Unsigned Problems Revisited

2002-10-30 Thread Mike Robinson
Jason T. Greene writes:

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

Excellent!
That way, I can't stop losing sleep wondering what the heck
someone would need this stuff for. :)

Best Regards
Mike Robinson



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




Re: [PHP-DEV] Re: Unsigned Problems Revisited

2002-10-29 Thread Jason T. Greene
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




Re: [PHP-DEV] Re: Unsigned Problems Revisited

2002-10-24 Thread David M. Lloyd
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.

 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.

 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.

Very well... then let's not put in the nonsense operator, and just have
three shift operations: , , and .

- D

[EMAIL PROTECTED]


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




Re: [PHP-DEV] Re: Unsigned Problems Revisited

2002-10-23 Thread David M. Lloyd
On Tue, 22 Oct 2002, Andi Gutmans wrote:

 Jason knows that my stand on this one is that if we have  we really
 should also have  which will clash with here-docs. Suggestions for
 other operators such as his  are a possibility.

Wrong on two counts.

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.

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?

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.

- D

[EMAIL PROTECTED]


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




Re: [PHP-DEV] Re: Unsigned Problems Revisited

2002-10-23 Thread Andi Gutmans
At 02:49 PM 10/23/2002 -0500, David M. Lloyd wrote:

On Tue, 22 Oct 2002, Andi Gutmans wrote:

 Jason knows that my stand on this one is that if we have  we really
 should also have  which will clash with here-docs. Suggestions for
 other operators such as his  are a possibility.

Wrong on two counts.

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).

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.


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?
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.

Andi


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