
On Tue, Feb 8, 2022 at 10:20 PM Steven D'Aprano <steve@pearwood.info> wrote:
On Tue, Feb 08, 2022 at 05:48:46PM -0800, Gregory P. Smith wrote:
On Tue, Feb 8, 2022 at 2:41 PM Steven D'Aprano <steve@pearwood.info> wrote:
If the answer to those questions are Yes, that rules out using Unums, posits, sigmoid numbers etc as the builtin float. (The terminology is a bit vague, sorry.) Do we want that?
It does not rule anything else out should they become viable. This is just a statement that to build cpython we require ieee754 support. It does not say anything about how our Python float type is implemented internally.
Posits do not implement IEEE-754. They aren't merely a different internal representation of the IEEE-754 floating point standard, they implement a different numeric system altogether.
Things that IEEE-754 require, such as signed zero and signed infinity, are not supported by posits. Posits include a single unsigned zero and a single unsigned infinity.
Earlier, I made a mistake: I misremembered that posits support a single NAN, and so I removed Mark's question about requiring NANs from my quoting. I was wrong to do so: posits do not have any NANs.
So if we require NANs, or IEEE-754, that rules out posits as the builtin float.
As Greg said, all we are discussing is requiring NaN and IEEE-754 in order to compile CPython. There's nothing saying we can't change how things are implemented in CPython in the future if something else made sense. And if someone wants to fork CPython to implement something else they can as well. And none of this has any bearing on the language based on the trend of this conversation's answer to Mark's third question. So I am not seeing how any decision we make from this thread about CPython and IEEE-754 rules anything out in the future?