On Mon, Feb 7, 2022 at 12:31 PM Gregory P. Smith <g...@krypto.org> wrote:

>
>
> On Mon, Feb 7, 2022 at 11:06 AM Victor Stinner <vstin...@python.org>
> wrote:
>
>> Hi Mark,
>>
>> Aha, good, you posted an email to python-dev, good :-) Last days, I
>> was trying to collect more data about this topic, especially find
>> platforms which *don't* support IEEE 754, before posting to
>> python-dev.
>>
>> Nowadays, outside museums, it's hard to find computers which don't
>> implement IEEE 754.
>>
>> * Since 1998, IBM S/390 supports IEEE 754.
>> * Compaq/DEC VAX didn't use IEEE 754, but are no longer built since
>> 2000 (you cant still use Python 3.10 if it can be built on it!)
>> * Some Cray computers like Cray SV1 (1998) don't implement IEEE 754,
>> but other Cray computers like Cray T90 (1995) implement IEEE 754.
>>
>> There are embedded devices with no hardware FPU: in this case, the FPU
>> is implemented in software. I expect it to implement IEEE 754. Is
>> CPython a good target for such small CPUs which have no hardware FPU?
>> MicroPython may better fit their needs.
>>
>> On the other side, all moderns CPU architectures support IEEE 754:
>> Intel x86, ARM, IBM Power and PowerPC, Compaq/DEC Alpha, HP PA-RISC,
>> Motorola 68xxx and 88xxx, SGI R-xxxx, Sun SPARC.
>>
>> Sources:
>>
>> *
>> https://en.wikipedia.org/wiki/Floating-point_arithmetic#IEEE_754:_floating_point_in_modern_computers
>> *
>> https://stackoverflow.com/questions/2234468/do-any-real-world-cpus-not-use-ieee-754
>>
>>
>> On Mon, Feb 7, 2022 at 7:25 PM Mark Dickinson <dicki...@gmail.com> wrote:
>> > - Should we require the presence of NaNs in order for CPython to build?
>> > - Should we require IEEE 754 floating-point for
>> CPython-the-implementation?
>>
>> In the past, when we deprecated the support for an old platform, we
>> didn't suddenly remove the code. We made sure that it's no longer
>> possible to build on it. So if anyone notices, it's easy to revert
>> (ex: remove the few lines in configure).
>>
>> Would it make sense to trigger a build error on plaforms which don't
>> support IEEE 754 in Python 3.11, and later decide if it's time to
>> remove the code in in Python 3.12?
>>
>> Well. If you ask *me*, I'm in favor of removing the code right now. If
>> someone needs to support a platform which doesn't support IEEE 754,
>> the support can be maintained *outside* the Python source code, as
>> external patches or as a Git fork, no?
>>
>> Honestly, I never got access to any machine which doesn't support IEEE
>> 754 (or nobody told me!).
>>
>>
>> > - Should we require IEEE 754 floating-point for Python-the-language?
>>
>> Right now, I have no opinion on this question.
>>
>>
>> > Note that on the current main branch there's a Py_NO_NAN macro that
>> builders can define to indicate that NaNs aren't supported, but the Python
>> build is currently broken if Py_NO_NAN is defined (see
>> https://bugs.python.org/issue46656). If the answer to the first question
>> is "No", then we need to fix the build under Py_NO_NAN. That's not a big
>> deal - perhaps a couple of hours of work.
>>
>> My comment on bpo-46656: "Python uses Py_NAN without "#ifdef Py_NAN"
>> guard since 2008. Building Python with Py_NO_NAN never worked. Nobody
>> reported such build failure in the last 14 years..."
>>
>> If anyone would try building/using Python on a platform without NAN, I
>> would expect that we would get a bug report or an email. I'm not aware
>> of anything like that, so it seems like nobody uses Python on such
>> platform.
>>
>> Victor
>>
>
> It's 2022. We should just require both NaN and IEEE-754.
>
> By the time a system is large enough to build and run CPython, it is
> exceedingly unlikely that it will not be able to do that. Even if it means
> software emulation of IEEE-754 floating point on something large yet odd
> enough not to have a FPU.
>
> The places where non-IEEE-754 and non-NaN floating point are likely to
> exist are in specialized parallelized coprocessor hardware. Not the general
> purpose CPU running CPython.
>

Do we have a buildbot that has a CPU or OS that can't handle IEEE-754? What
are the chances we will get one? If the answers are "none" and "slim", then
it seems reasonable to require NaN and IEEE-754.
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/QTJAUZ476W7UXL2LQR3VWZBB6CVQ7OA6/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to