On Wed, Apr 12, 2000 at 10:22:59PM -0500, Jim Studt wrote:
> Brendan Simon. wrote
> > I am a big PowerPC fan but I would like to know the reasoning behind the
> > Linux/PPC people choosing unsigned char as the default char type.  Why go
> > against the convention ?  I hope there is a really good reason that will 
> > help
> > progress the C programming environment to better things.
> 
> I'm told for ARM it is a performance issue.  I've handled dozens of
> these on the ARM port.  In almost all of them it is a getc/getchar
> that is being coerced down to a char before being checked agains EOF.
> 
> getc and getchar are (int) functions, EOF is an int.  You can't cast
> down to a char until you know you have a character and not an EOF.
> 
> Code with downcasts before checking EOF will fail one way on PPC and ARM
> and the opposite way anytime it encounters a (char)255 in its input
> stream.
> 
> Fortunately some wise soul extended the ARM compiler to print a warning
> when a `char' is compared to a negative constant.  We collect these during
> the builds and list them over at...
>       http://www.federated.com/~jim/arm/charhell.html
> ... there are only about 150 packages left with this problem.  
> There are still packages like gnome-pim that can't be detected by the
> compiler, but anytime a program hangs or fails to read a file this is
> the first thing to look for on the ARM port.
> 
> I'll write a little script to blow all the compiler detected problems
> into the BTS.  We'll see how many we can get cleaned up.

*applause*

I have my build daemon filter these into a separate mailbox; I've got
about 90 of them listed right now.  I won't post the list since it's a
subset of yours.

Thanks for the excellent description of the problem!


Dan

/--------------------------------\  /--------------------------------\
|       Daniel Jacobowitz        |__|        SCS Class of 2002       |
|   Debian GNU/Linux Developer    __    Carnegie Mellon University   |
|         [EMAIL PROTECTED]         |  |       [EMAIL PROTECTED]      |
\--------------------------------/  \--------------------------------/

Reply via email to