------- Comment #2 from j dot d dot pryce at ntlworld dot com  2007-11-30 12:40 
-------
Subject: Re:  Directed rounding doesn't work on MacOS X

Dear Pinskia

On 28 Nov 2007, at 17:08, pinskia at gcc dot gnu dot org wrote:
> ------- Comment #1 from pinskia at gcc dot gnu dot org  2007-11-28  
> 17:08 -------
> I doubt that this is a gcc bug.

Consider this. Suppose I just downloaded the vanilla GCC system on to  
the shiny new Mac from which I am writing. And I find everything  
works fine except that whenever I use fprintf(), it crashes the  
system. I report this as a bug, and I get back the comment
                 "I doubt that this is a gcc bug."

In a strict sense maybe not. fprintf() in GCC works fine on other  
Unix-based systems. The trouble would be that GCC's communication  
with the OS kernel somehow screwed up on this particular system. So  
you can blame the kernel, not GCC. This is way beyond my capability  
as a user to fix or even understand, so I have to rely on you experts  
to fix it.

Of course as it's fprintf() that's crashing, you wouldn't say, in  
effect, "It's none of my business, guvnor". You would aim to fix it  
ASAP, because a C++ system without fprintf() is simply not credible.

Interval arithmetic IA is in a unique position. It *also* relies on a  
basic and simple communication with the OS, namely the ability to  
switch rounding mode. If you can do this, your IA software works. If  
you can't, it doesn't.

When it works, it can *provably* get correct answers to problems that  
are hard or even impractical by other means, e.g. see chapter 4 by  
Stan Wagon in the "100 dollar, 100 digit challenge" book.

The hardware hooks to switch rounding mode are there on any IEEE754- 
compliant CPU, as this one is. Languages support it: e.g. C has  
fegetround/fegetround.

The trouble seems to be that the detail of how rounding mode is  
handled at machine instruction level varies widely between machines.  
E.g. is the mode a global flag in the floating-point unit or is it  
encoded within each FP instruction? So perhaps it is tricky to make  
it work on each new architecture. While making fprintf() work is  
routine.

Tricky though it may be, the buck stops at you compiler writers.  
Interval computation is an increasingly important mainstream  
scientific computing activity. We interval folk haven't the skills to  
make it work on a new machine. If you don't help us, who will?

John Pryce
[EMAIL PROTECTED]


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34261

Reply via email to