comp.lang.ada
 help / color / mirror / Atom feed
* Long Float Error from Gnat
@ 1998-10-29  0:00 Al Christians
  1998-10-30  0:00 ` jrcarter001
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Al Christians @ 1998-10-29  0:00 UTC (permalink / raw)


I've hit an odd numerical error in a program that I've compiled
with GNAT 3.10p1 on NT 4 sp3.  I almost can't believe it, so I wonder 
if anyone else can tell me what's going on.  My number one suspect is 
that it's a floating point problem in my Pentium Pro.

Here's the code:
-------------------------------------------------------------------

with Ada.Text_Io;
with Ada.Long_Float_Text_Io;
with Ada.Integer_Text_IO;
procedure Num_Test is

   procedure Read_Num( S:  String ) is
      Num:            Long_Float;
      Last_Char_Pos:      Positive;
   begin
      Ada.Long_Float_Text_Io.Get( S, Num, Last_Char_Pos );
      Ada.Text_Io.Put( "Success: " &  S  & " = " );
      Ada.Long_Float_Text_Io.Put( Num );
      Ada.Text_Io.Put( "  Last Char Pos: " &  " = " );
      Ada.Integer_Text_Io.Put( Last_Char_Pos );
      Ada.Text_Io.New_Line;
   exception
      when others =>
         Ada.Text_Io.Put( "Error: " &  S  );
         Ada.Text_Io.New_Line;
   end;

begin
   Read_Num(  "1.0" );
   Read_Num(  "1.23456789" );
   Read_Num(  "1.2345678901234" );
   Read_Num(  "1.234567890E+1" );
   Read_Num( "-1.234567890E+1" );
   Read_Num(  "1.234567890E+39" );
   Read_Num( "-1.234567890E-39" );
   Read_Num( "-1.000000000E-32" );
   Read_Num(  "1.000000000E-32" );
   Read_Num( "-5.000000000E-32" );
   Read_Num(  "5.000000000E-32" );
   Read_Num( "-5.0000000000E-32" );
   Read_Num(  "5.0000000000E-32" );
   Read_Num( "-5.00000000E-32" );
   Read_Num(  "5.00000000E-32" );
   Read_Num( "-50.00000000E-33" );
   Read_Num(  "50.00000000E-33" );
   Read_Num( "-1.200000000E-32" );
   Read_Num(  "1.200000000E-32" );
   Read_Num( "-1.270000000E-32" );
   Read_Num(  "1.270000000E-32" );
   Read_Num( "-1.271110000E-32" );
   Read_Num(  "1.271110000E-32" );
   Read_Num( "-1.271113762E-32" );
   Read_Num(  "1.271113762E-32" );
   Read_Num(  "1.271113763E-32" );
   Read_Num( "-1.271113763E-32" );
   Read_Num( "-1.271113764E-32" );
   Read_Num(  "1.271113764E-32" );
   Read_Num(  "1.271113763E-33" );
   Read_Num( "-1.271113763E-33" );
   Read_Num(  "1.2711137638E-33" );
   Read_Num( "-1.2711137638E-33" );
   Read_Num(  "1.271113763E-30" );
   Read_Num( "-1.271113763E-30" );
   Read_Num(  "1.2E-32" );
   Read_Num( "-1.2E-32" );
end Num_Test;

-------------------------------End of Code -------------------------

Here's the output

--------------------------------------------------------------------

Success: 1.0 =  1.00000000000000E+00  Last Char Pos:  =           3
Success: 1.23456789 =  1.23456789000000E+00  Last Char Pos:  =         
10
Success: 1.2345678901234 =  1.23456789012340E+00  Last Char Pos: 
=          15
Success: 1.234567890E+1 =  1.23456789000000E+01  Last Char Pos: 
=          14
Success: -1.234567890E+1 = -1.23456789000000E+01  Last Char Pos: 
=          15
Success: 1.234567890E+39 =  1.23456789000000E+39  Last Char Pos: 
=          15
Success: -1.234567890E-39 = -1.23456789000000E-39  Last Char Pos: 
=          16
Success: -1.000000000E-32 = NaN******************  Last Char Pos: 
=          16
Success: 1.000000000E-32 = NaN******************  Last Char Pos: 
=          15
Success: -5.000000000E-32 = NaN******************  Last Char Pos: 
=          16
Success: 5.000000000E-32 = NaN******************  Last Char Pos: 
=          15
Success: -5.0000000000E-32 = -5.00000000000000E-32  Last Char Pos: 
=          17
Success: 5.0000000000E-32 =  5.00000000000000E-32  Last Char Pos: 
=          16
Success: -5.00000000E-32 = -5.00000000000000E-32  Last Char Pos: 
=          15
Success: 5.00000000E-32 =  5.00000000000000E-32  Last Char Pos: 
=          14
Success: -50.00000000E-33 = NaN******************  Last Char Pos: 
=          16
Success: 50.00000000E-33 = NaN******************  Last Char Pos: 
=          15
Success: -1.200000000E-32 = NaN******************  Last Char Pos: 
=          16
Success: 1.200000000E-32 = NaN******************  Last Char Pos: 
=          15
Success: -1.270000000E-32 = NaN******************  Last Char Pos: 
=          16
Success: 1.270000000E-32 = NaN******************  Last Char Pos: 
=          15
Success: -1.271110000E-32 = NaN******************  Last Char Pos: 
=          16
Success: 1.271110000E-32 = NaN******************  Last Char Pos: 
=          15
Success: -1.271113762E-32 = NaN******************  Last Char Pos: 
=          16
Success: 1.271113762E-32 = NaN******************  Last Char Pos: 
=          15
Success: 1.271113763E-32 = NaN******************  Last Char Pos: 
=          15
Success: -1.271113763E-32 = NaN******************  Last Char Pos: 
=          16
Success: -1.271113764E-32 = NaN******************  Last Char Pos: 
=          16
Success: 1.271113764E-32 = NaN******************  Last Char Pos: 
=          15
Success: 1.271113763E-33 =  1.27111376300000E-33  Last Char Pos: 
=          15
Success: -1.271113763E-33 = -1.27111376300000E-33  Last Char Pos: 
=          16
Success: 1.2711137638E-33 =  1.27111376380000E-33  Last Char Pos: 
=          16
Success: -1.2711137638E-33 = -1.27111376380000E-33  Last Char Pos: 
=          17
Success: 1.271113763E-30 =  1.27111376300000E-30  Last Char Pos: 
=          15
Success: -1.271113763E-30 = -1.27111376300000E-30  Last Char Pos: 
=          16
Success: 1.2E-32 =  1.20000000000000E-32  Last Char Pos:  =           7
Success: -1.2E-32 = -1.20000000000000E-32  Last Char Pos:  =           8

------------------------------End of Output ---------------------------

Question relates to the surprising incidence of NaN's in the output.
These all look like properly formatted strings.  It looks as if any
number with exponent E-32 and exactly 10 digits -> NaN. How could this
be?

TIA for any help.


Al




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Long Float Error from Gnat
  1998-10-29  0:00 Long Float Error from Gnat Al Christians
@ 1998-10-30  0:00 ` jrcarter001
  1998-10-30  0:00   ` Al Christians
  1998-10-30  0:00 ` Stephen Leake
  1998-10-30  0:00 ` Jerry van Dijk
  2 siblings, 1 reply; 15+ messages in thread
From: jrcarter001 @ 1998-10-30  0:00 UTC (permalink / raw)


Scary. I get the same results with 3.10p1 on Win95; using -gnato doesn't
change anything.

Using 3.10 for DOS (same machine) gives a SIGFPE on the first one that gives a
NaN with the Win compiler.

3.10p for Linux (Slackware)/Pentium gives +/-inf for the +/-50.0E-33 examples.

Hopefully, Dewar will tell us this is fixed in 3.11p, coming soon to a
computer near you.

Jeff Carter

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Long Float Error from Gnat
  1998-10-30  0:00 ` jrcarter001
@ 1998-10-30  0:00   ` Al Christians
  0 siblings, 0 replies; 15+ messages in thread
From: Al Christians @ 1998-10-30  0:00 UTC (permalink / raw)


I hit that error reading a file that was also created by a program
compiled by GNAT.  The file had nearly a million numbers in it, and
about 20% had been read before any producing an error was 
found.  In my case, the workaround was simple.  I went back and 
changed the program that wrote the file, replacing 'aft => 9'
with 'aft => 10'.  This increased file size by about a million 
bytes, giving yet more precision than I probably will ever need.
After this change everything ran with no problem, although I
have no idea if using aft => 10 will prevent all such errors.

I'll take a wild guess that this has something to do with 10 
non-zero decimal digits (1 before and 9 after) being the most 
that one can ever fit into a 32-bit integer.  How the exponent
of -32 relates to this IDK.  There was one posting on chat@gnat.com
about a month ago reporting something similar with exponents around
-33 or -34, but I didn't see find responses in the archive.

Actually, I am pleased to know that this is not the Pentium Pro 
numeric bug.  I was too busy and lazy back when that was in the
papers to do anything about getting Intel to provide me updated
processors.  Thanks for letting me know that this is not a case 
of me being skewered by my own sloth.


Al



jrcarter001@my-dejanews.com wrote:
> 
> Scary. I get the same results with 3.10p1 on Win95; using -gnato doesn't
> change anything.
>




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Long Float Error from Gnat
  1998-10-29  0:00 Long Float Error from Gnat Al Christians
  1998-10-30  0:00 ` jrcarter001
@ 1998-10-30  0:00 ` Stephen Leake
  1998-10-30  0:00   ` Al Christians
  1998-10-30  0:00 ` Jerry van Dijk
  2 siblings, 1 reply; 15+ messages in thread
From: Stephen Leake @ 1998-10-30  0:00 UTC (permalink / raw)


Al Christians <achrist@easystreet.com> writes:

> I've hit an odd numerical error in a program that I've compiled
> with GNAT 3.10p1 on NT 4 sp3.  I almost can't believe it, so I wonder 
> if anyone else can tell me what's going on.  My number one suspect is 
> that it's a floating point problem in my Pentium Pro.
> 
> Here's the code:

<snip>

running the same code with ObjectAda 7.1.2 NT 4 sp3 gives no NAN's.
Must be a bug/feature in the GNAT runtime. Wait till 3.11p comes out,
then submit a bug report :)

-- Stephe




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Long Float Error from Gnat
  1998-10-30  0:00 ` Stephen Leake
@ 1998-10-30  0:00   ` Al Christians
  1998-10-31  0:00     ` dewar
  0 siblings, 1 reply; 15+ messages in thread
From: Al Christians @ 1998-10-30  0:00 UTC (permalink / raw)


The problem is a little stranger than previously presented.  The 
program below will generate lots of errors with other values of
aft than 9.  The errors all seem to occur when the negative of the
exponent plus the digits after the decimal equals 41.  Wow!

Al

------------------------------------------------------------------------------

with Ada.Text_Io;
with Ada.Long_Float_Text_Io;
with Ada.Numerics.Long_Elementary_Functions;
with Ada.Numerics.Float_Random;
procedure Numeric_Test is

   The_Generator:  Ada.Numerics.Float_Random.Generator;

   function Generate_Random_Number return Long_Float is
   x:   Long_Float;
   begin
      X := Long_Float( Ada.Numerics.Float_Random.Random( The_Generator )
);
      X := X * 300.0 - 150.0;
      return Ada.Numerics.Long_Elementary_Functions.exp( X );
   end;


   Number_Of_Tests:   Natural := 1_000_000;
   X:       Long_Float;
   Y:       Long_Float;
   Count:   Integer  := 0;
   X_String,
   Y_String:   String(1..30);
   Last_Pos:   Natural;
   Largest:    Long_Float := -99.99E+99;
   Smallest:   Long_Float := +99.99E+99;

begin
   for I in 1..Number_Of_Tests loop
      X := Generate_Random_Number;
         for Digits_Aft in 6..12 loop
            begin
               Ada.Long_Float_Text_Io.Put( X_String, X, Aft =>
Digits_Aft );
               Ada.Long_Float_Text_Io.Get( X_String, Y, Last_Pos );
               Ada.Long_Float_Text_Io.Put( Y_String, Y, Aft =>
Digits_Aft );
               if  X_String /= Y_String then
                  Ada.Text_Io.Put( "Aft =>" & Integer'Image( Digits_Aft
) );
                  Ada.Text_Io.Put( Long_Float'Image(X) );
                  Ada.Text_Io.Put( "   ");
                  Ada.Text_Io.Put( Long_Float'Image(Y) );
                  Ada.Text_Io.New_Line;
                  if  x > Largest then
                     Largest := X;
                  end if;
                  if  x < Smallest then
                     Smallest := X;
                  end if;
                  Count := Count + 1;
               end if;
            exception
               when others =>
                  Ada.Text_Io.Put( "Exception:" & Long_Float'Image(X) );
                  Ada.Text_Io.Put( "   Aft:" & Integer'Image(Digits_Aft)
);
            end;
      end loop;
   end loop;
   Ada.Text_IO.Put_Line( "Largest:  " & Long_Float'Image(Largest) );
   Ada.Text_IO.Put_Line( "Smallest: " & Long_Float'Image(Smallest) );
   Ada.Text_IO.Put_Line( "Count:    " & Integer'Image(Count) );
end Numeric_Test;




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Long Float Error from Gnat
  1998-10-29  0:00 Long Float Error from Gnat Al Christians
  1998-10-30  0:00 ` jrcarter001
  1998-10-30  0:00 ` Stephen Leake
@ 1998-10-30  0:00 ` Jerry van Dijk
  2 siblings, 0 replies; 15+ messages in thread
From: Jerry van Dijk @ 1998-10-30  0:00 UTC (permalink / raw)


Al Christians (achrist@easystreet.com) wrote:

: I've hit an odd numerical error in a program that I've compiled
: with GNAT 3.10p1 on NT 4 sp3.  I almost can't believe it, so I wonder 
: if anyone else can tell me what's going on.  My number one suspect is 
: that it's a floating point problem in my Pentium Pro.

I'm no expert on this, but there seems to be something strange here.
I would have expected both procedures below to give identical results:

with Ada.Text_IO;
with Ada.Long_Float_Text_IO;

procedure My_Test is

   package Long_Float_IO is new Ada.Text_IO.Float_IO (Long_Float);
    
   procedure Check_Gnat (N : in Long_Float; S : in String) is
      Result : Long_Float;
      Last   : Positive;
   begin
      Ada.Text_IO.Put_Line (N'Img);
      Ada.Long_Float_Text_IO.Put (N);
      Ada.Text_IO.New_Line;
      Ada.Long_Float_Text_IO.Get (S, Result, Last);
      Ada.Text_IO.Put_Line ("Last is" & Last'Img);
      if Result = N then
         Ada.Text_IO.Put_Line ("String equals number");
      else
         Ada.Text_IO.Put_Line ("String does not equal number");
      end if;
      Ada.Text_IO.Put_Line (Result'Img);
      Ada.Long_Float_Text_IO.Put (Result); 
      Ada.Text_IO.New_Line;
      Ada.Text_IO.New_Line;
   end Check_Gnat;

   procedure Check_My (N : in Long_Float; S : in String) is
      Result : Long_Float;
      Last   : Positive;
   begin
      Ada.Text_IO.Put_Line (N'Img);
      Long_Float_IO.Put (N);
      Ada.Text_IO.New_Line;
      Long_Float_IO.Get (S, Result, Last);
      Ada.Text_IO.Put_Line ("Last is" & Last'Img);
      if Result = N then
         Ada.Text_IO.Put_Line ("String equals number");
      else
         Ada.Text_IO.Put_Line ("String does not equal number");
      end if;
      Ada.Text_IO.Put_Line (Result'Img);
      Long_Float_IO.Put (Result); 
      Ada.Text_IO.New_Line;
      Ada.Text_IO.New_Line;
   end Check_My;
   
begin
   Ada.Text_IO.Put_Line ("GNAT:");
   Check_Gnat (1.000000000E-32, "1.000000000E-32");
   Ada.Text_IO.Put_Line ("Mine:");
   Check_My (1.000000000E-32, "1.000000000E-32");
end My_Test;

-- 
-- Jerry van Dijk  | email: jdijk@acm.org
-- Leiden, Holland | member Team-Ada
-- Ada & Win32: http://stad.dsl.nl/~jvandyk




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Long Float Error from Gnat
  1998-10-31  0:00     ` dewar
@ 1998-10-31  0:00       ` Al Christians
  1998-11-01  0:00         ` dewarr
  0 siblings, 1 reply; 15+ messages in thread
From: Al Christians @ 1998-10-31  0:00 UTC (permalink / raw)


dewar@gnat.com wrote:
> 
> Remember that CLA may be an interesting place to discuss possible GNAT bugs
> but it is not the place to report them. If you think you have found a GNAT
> bug, always report it to report@gnat.com, if you want the ACT team to look
> at it, Thanks.
> 

Ok.  

I posted it here first, because I wasn't sure of the source of the
anomaly (I've only run it on Pentium Pro's I know have the FP bug), 
and I figured I would get a richer set of responses than the
person who posted something that looked about the same to GNAT chat
about a month ago and got no responses that I could find in the
archive.

Before the other postings came back confirming it on other hardware,
I also received by email a copy of what was evidently a bug report 
to ACT submitted by someone else for this same problem. It's got a bug 
number, ACT #273, attached, so I trust that I don't have to follow up 
directly by bug report on it now.  Is that correct?

BTW, the numbers that triggered the fault, approximately 1E-32 gave me
some reason to question what was going on in my application.  All my
data is within a few orders of magnitude of unity, and I couldn't 
figure out any scenario by which anything I was dealing with in the
program could possible come out non-zero but less than 1E-8. The 
roundoff error for Long_Float should not come out of a magnitude much 
less than 1E-16, since they are only good to about that many places. 
What was happening was that when a number was a summation of almost 
equal roundoff errors of different signs, the errors (of order 1E-16) 
would just about cancel, leaving a residual of order 1E-32. The program 
was not wrong, as the interpretation of the answers in no way 
distinguishes 1E-32 from zero,  but it's curious that an artifact of an 
artifact (or a phantom of a ghost for Halloween) produced the data that 
exposed this bug.


Al




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Long Float Error from Gnat
  1998-10-30  0:00   ` Al Christians
@ 1998-10-31  0:00     ` dewar
  1998-10-31  0:00       ` Al Christians
  0 siblings, 1 reply; 15+ messages in thread
From: dewar @ 1998-10-31  0:00 UTC (permalink / raw)


In article <363A49F3.DB0A0196@easystreet.com>,
  Al Christians <achrist@easystreet.com> wrote:
> The problem is a little stranger than previously presented.  The
> program below will generate lots of errors with other values of
> aft than 9.  The errors all seem to occur when the negative of the
> exponent plus the digits after the decimal equals 41.  Wow!


Remember that CLA may be an interesting place to discuss possible GNAT bugs
but it is not the place to report them. If you think you have found a GNAT
bug, always report it to report@gnat.com, if you want the ACT team to look
at it, Thanks.

Robert Dewar
Ada Core Technologies

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Long Float Error from Gnat
  1998-10-31  0:00       ` Al Christians
@ 1998-11-01  0:00         ` dewarr
  1998-11-01  0:00           ` Al Christians
  0 siblings, 1 reply; 15+ messages in thread
From: dewarr @ 1998-11-01  0:00 UTC (permalink / raw)


In article <363B6EBF.C67DA0DC@easystreet.com>,
  Al Christians <achrist@easystreet.com> wrote:
> dewar@gnat.com wrote:
> >
> > Remember that CLA may be an interesting place to discuss possible GNAT bugs
> > but it is not the place to report them. If you think you have found a GNAT
> > bug, always report it to report@gnat.com, if you want the ACT team to look
> > at it, Thanks.
> >
>
> Ok.
>
> I posted it here first, because I wasn't sure of the source of the
> anomaly (I've only run it on Pentium Pro's I know have the FP bug),
> and I figured I would get a richer set of responses than the
> person who posted something that looked about the same to GNAT chat
> about a month ago and got no responses that I could find in the
> archive.


GNAT chat is also not the place to post bug reports. We never take bug reports
from either CLA or from chat, only from explicit mail to report@gnat.com.

Robert Dewar
Ada Core Technologies

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Long Float Error from Gnat
  1998-11-01  0:00         ` dewarr
@ 1998-11-01  0:00           ` Al Christians
  1998-11-01  0:00             ` bob
  1998-11-02  0:00             ` Long Float Error from Gnat dewar
  0 siblings, 2 replies; 15+ messages in thread
From: Al Christians @ 1998-11-01  0:00 UTC (permalink / raw)


dewarr@my-dejanews.com wrote:
> 
> GNAT chat is also not the place to post bug reports. We never take bug reports
> from either CLA or from chat, only from explicit mail to report@gnat.com.

Sure.  I didn't expect that I was going to report a bug via GNAT chat.
When I wrote my posting here, I had not concluded that I had even found
a bug.  I was only posting something curious and Ada-related that I
did not understand.  This newsgroup seemed to me the most likely place
for me to learn more about what I was seeing.  That worked.  

I have not written a bug report on this item -- one of the first 
responses I got was "wait until 3.11 comes out, then submit a bug
report". Another was "it's fixed". Given that reply, I don't I will
submit a bug report.

Even not given that reply, I don't know if I would have submitted 
a bug report.  As I remember reading it, probably second hand, so 
correct me if I'm wrong, ACT's customers pay not less than $600/month
to be ACT's customers, and I pay nothing.  I expect that at least some 
of them read this newsgroup and would see my posting.  They obviously 
have some far more significant interest than me in having GNAT programs 
produce correct results.  If they can live with a system with this flaw 
that only shows up for numbers of magnitude around 1E-30 and less, and 
if none of those customers with their CMM software processes have found 
this problem that I unearthed within about 1 month of starting to use 
GNAT day-to-day for real work in my 1-person operation, and if none of 
them would ask ACT to fix it, who am I to complain?


Al




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Long Float Error from Gnat
  1998-11-01  0:00           ` Al Christians
@ 1998-11-01  0:00             ` bob
  1998-11-02  0:00               ` Bargin GNAT support prices (Was Re: Long Float Error from Gnat) taashlo
  1998-11-02  0:00             ` Long Float Error from Gnat dewar
  1 sibling, 1 reply; 15+ messages in thread
From: bob @ 1998-11-01  0:00 UTC (permalink / raw)


Don't despair Al,

I for one thank you for informing me/us of this.

As one of those paying $750.00 per month, I welcome anything which helps my
company and I out.

TKS...bob

Al Christians <achrist@easystreet.com> wrote in article
<363C8EAA.57DBA71C@easystreet.com>...
> dewarr@my-dejanews.com wrote:
> > 
> > GNAT chat is also not the place to post bug reports. We never take bug
reports
> > from either CLA or from chat, only from explicit mail to
report@gnat.com.
> 
> Sure.  I didn't expect that I was going to report a bug via GNAT chat.
> When I wrote my posting here, I had not concluded that I had even found
> a bug.  I was only posting something curious and Ada-related that I
> did not understand.  This newsgroup seemed to me the most likely place
> for me to learn more about what I was seeing.  That worked.  
> 
> I have not written a bug report on this item -- one of the first 
> responses I got was "wait until 3.11 comes out, then submit a bug
> report". Another was "it's fixed". Given that reply, I don't I will
> submit a bug report.
> 
> Even not given that reply, I don't know if I would have submitted 
> a bug report.  As I remember reading it, probably second hand, so 
> correct me if I'm wrong, ACT's customers pay not less than $600/month
> to be ACT's customers, and I pay nothing.  I expect that at least some 
> of them read this newsgroup and would see my posting.  They obviously 
> have some far more significant interest than me in having GNAT programs 
> produce correct results.  If they can live with a system with this flaw 
> that only shows up for numbers of magnitude around 1E-30 and less, and 
> if none of those customers with their CMM software processes have found 
> this problem that I unearthed within about 1 month of starting to use 
> GNAT day-to-day for real work in my 1-person operation, and if none of 
> them would ask ACT to fix it, who am I to complain?
> 
> 
> Al
> 




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Long Float Error from Gnat
  1998-11-01  0:00           ` Al Christians
  1998-11-01  0:00             ` bob
@ 1998-11-02  0:00             ` dewar
  1998-11-02  0:00               ` dennison
  1 sibling, 1 reply; 15+ messages in thread
From: dewar @ 1998-11-02  0:00 UTC (permalink / raw)


In article <363C8EAA.57DBA71C@easystreet.com>,
  Al Christians <achrist@easystreet.com> wrote:
> if none of those customers with their CMM software processes have found
> this problem that I unearthed within about 1 month of starting to use
> GNAT day-to-day for real work in my 1-person operation, and if none of
> them would ask ACT to fix it, who am I to complain?


As anyone in the compiler business will tell you, you can have thousands of
users, and have them run all kinds of extremely complex code, and then some
one comes along and does something amazingly simple, and you find a surprising
bug involving something simple that never worked, and it is hard to believe
that no one has noticed it. Actually this isn't unique to compilers, look at
all the simple bugs that exist in Windows 95 for example, after literally
thousands of beta testers had hammered it.

So it's not a matter of complaining at all, but simply noting that you have
found something strange, and you should not assume that all these "customers
with their CM processes" will have found the bug! We have lots of bug reports
from non-supported users, and some small but significant percentage turn out
to be real bugs that no one else has noticed. Even if you are paying ACT
nothing at all, we will look carefully at your report, and it is a bug, will
fix it in a future release -- not such a bad deal for $0.00! We can't promise
immediate response or an immediate fix, that guarateed response is reserved
for our supported customers, but we do look at EVERY report submitted
carefully, and if they represent bugs, will fix them. Note that it is always
more likely that we will look sooner, and fix the problem sooner, if your
report is simple and well documented (this is true for customers as well!)

Robert Dewar
Ada Core Technologies

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Long Float Error from Gnat
  1998-11-02  0:00             ` Long Float Error from Gnat dewar
@ 1998-11-02  0:00               ` dennison
  0 siblings, 0 replies; 15+ messages in thread
From: dennison @ 1998-11-02  0:00 UTC (permalink / raw)


In article <71j815$uv9$1@nnrp1.dejanews.com>,
  dewar@gnat.com wrote:

> As anyone in the compiler business will tell you, you can have thousands of
> users, and have them run all kinds of extremely complex code, and then some
> one comes along and does something amazingly simple, and you find a surprising
> bug involving something simple that never worked, and it is hard to believe
> that no one has noticed it. Actually this isn't unique to compilers, look at
> all the simple bugs that exist in Windows 95 for example, after literally
> thousands of beta testers had hammered it.

This certainly jibes with my experience. I seem to find at least 3 compiler
bugs within a week of starting to seriously use a new compiler. For the most
part they will be situations where I'm doing something weird (or illegal).
But I occasionally get some of the "there's no way this routine ever worked
for anyone" variety. It can't be a reflection on any one company, because
*everyone* seems to have the problem.

For just this reason I find Gnat very valuable. When I get a seemingly odd
result from vendor X, its really helpful to have a *second* compiler around
to run the code through. Even if that's what is *supposed* to happen, Gnat
may give me an error message I undersand better.

--
T.E.D.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Bargin GNAT support prices (Was Re: Long Float Error from Gnat)
  1998-11-01  0:00             ` bob
@ 1998-11-02  0:00               ` taashlo
  1998-11-03  0:00                 ` dewar
  0 siblings, 1 reply; 15+ messages in thread
From: taashlo @ 1998-11-02  0:00 UTC (permalink / raw)


"bob" <bklungle@junque.com> writes:

> Don't despair Al,
> 
> I for one thank you for informing me/us of this.
> 
> As one of those paying $750.00 per month, I welcome anything which helps my
> company and I out.
> 
> TKS...bob


How did you get GNAT support for only $750.00/month?  The
price quoted to me by ACT was $48,000/year for the first
year and $24,000/year for subsequent years.  That's 
$4,000/month for the first year.  There is no way that
my one-programmer, 2-3 year project can justify ~$75,000 
to ~$100,000 for GNAT support.

I haven't heard a reply to my response to ACT's quote
yet.  But our MS Exchange server has been acting a 
little flaky , so I resent my response this
morning.  In my response I asked if there was any
cheaper options.  It sounds as if there just might.

Tad Ashlock <taashlo@sandia.gov>
Sandia National Laboratories
Albuquerque, NM, USA




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Bargin GNAT support prices (Was Re: Long Float Error from Gnat)
  1998-11-02  0:00               ` Bargin GNAT support prices (Was Re: Long Float Error from Gnat) taashlo
@ 1998-11-03  0:00                 ` dewar
  0 siblings, 0 replies; 15+ messages in thread
From: dewar @ 1998-11-03  0:00 UTC (permalink / raw)


In article <u3e829kb5.fsf_-_@sandia.gov>,
  taashlo@sandia.gov wrote:
> "bob" <bklungle@junque.com> writes:
>
> > Don't despair Al,
> >
> > I for one thank you for informing me/us of this.
> >
> > As one of those paying $750.00 per month, I welcome anything which helps my
> > company and I out.
> >
> > TKS...bob
>
> How did you get GNAT support for only $750.00/month?  The
> price quoted to me by ACT was $48,000/year for the first
> year and $24,000/year for subsequent years.  That's
> $4,000/month for the first year.  There is no way that
> my one-programmer, 2-3 year project can justify ~$75,000
> to ~$100,000 for GNAT support.


There is not "one price fits all" for GNAT support. The prices you quote
above sound like quotes for an embedded version of GNAT (probably VxWorks).
Our experience is that embedded systems require much more specialized
systems work, and support, and the prices reflect this.

Robert Dewar
Ada Core Technologies

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~1998-11-03  0:00 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-10-29  0:00 Long Float Error from Gnat Al Christians
1998-10-30  0:00 ` jrcarter001
1998-10-30  0:00   ` Al Christians
1998-10-30  0:00 ` Stephen Leake
1998-10-30  0:00   ` Al Christians
1998-10-31  0:00     ` dewar
1998-10-31  0:00       ` Al Christians
1998-11-01  0:00         ` dewarr
1998-11-01  0:00           ` Al Christians
1998-11-01  0:00             ` bob
1998-11-02  0:00               ` Bargin GNAT support prices (Was Re: Long Float Error from Gnat) taashlo
1998-11-03  0:00                 ` dewar
1998-11-02  0:00             ` Long Float Error from Gnat dewar
1998-11-02  0:00               ` dennison
1998-10-30  0:00 ` Jerry van Dijk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox