Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/tests/lib/libc/locale



    Date:        Mon, 27 Nov 2017 18:44:38 +0100
    From:        Joerg Sonnenberger <joerg%bec.de@localhost>
    Message-ID:  <20171127174438.GA20936%britannica.bec.de@localhost>

  | Parsing a string constant is a well-defined
  | operation with precise result. A cross-compiler that doesn't do that
  | correctly is simply broken.

I don't disagree with that, if you can tell me the PR number for the
bug report on gcc (whichever version it is that the buildbots are using
to make the i386 builds that babylony5 uses to run the tests) then I
will happily mark the test as expected to fail on i386 until the PR
is fixed.

Tha is, of course, if that is what the problem is - it may also be that
it is the libc strtod() on i386 that doesn't make the correct (ideal)
conversion, and if that's true, then the PR number for that but would do
equally well.

I am not qualified to work out which it is - all I know is that the
numbers as printed from printf were identical, yet did not compare
equal, and apparently are equal within 1e-7, as the test now "works".

Way back when I first learned floating point programming (something I
have done astonishingly little of in the intervening decades) I was
told it was *always* wrong to compare floats for exact equality - but
of course, that was back in the days when almost all computing was
numerical (simultaneous equation solfving, ffts, ...) and almost all
written in fortran (the only language worthy of using) ...

kre



Home | Main Index | Thread Index | Old Index