-
Notifications
You must be signed in to change notification settings - Fork 693
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a FutureFeatures.md section discussing full IEEE-754 conformance. #171
Conversation
|
||
## Full IEEE-754 conformance | ||
|
||
IEEE-754 NaN [bit pattern] propagation is presently permitted but not |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What are the square brackets for?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I may have been thinking of adding a link, but didn't. I'll remove them.
Link to #148? |
8f4009e
to
f8ea8d5
Compare
It's possible we'll resolve #148 by having a mode where subnormals are supported, if nothing else, in which case we won't need a link. Let's see where that discussion goes first. |
lgtm, but I imagine @kripken may want to take a look. |
|
||
Debugging techniques are also important, but they don't necessarily need to be | ||
in the spec itself. Implementations are welcome (and encouraged) to support | ||
execution modes with alternate default rounding modes, or alternate execution |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps specify "non-standard execution modes enabled only from developer tools"?
lgtm |
fad4535
to
dc5ff3e
Compare
in the spec itself. Implementations are welcome (and encouraged) to support | ||
non-standard execution modes, enabled only from developer tools, such as modes | ||
with alternate rounding, or evaluation of floating point expressions at greater | ||
precision, to support [techniques for detecting numerical instability] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this is too new, but Herbie sounds interesting too!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These paragraphs are addressing important use cases on popular hardware platforms that typically involve global (per-thread) floating point control/status registers, which is something that we may wish to avoid. The previous paragraph covers local override use cases, which covers most of the use cases I'm aware of. This paragraph explains how we can address the main use case that actually wants a global mode, by observing that debug techniques don't necessarily need to be specified in the spec. And I tossed in the idea of greater precision evaluation because it's another technique mentioned in the same paper which doesn't end up being completely futile and which would be straight-forward to implement.
Herbie looks neat, and correct me if I'm wrong, but it doesn't appear to require any special platform support, so there'd be no reason why users can't use it on WebAssembly implementations.
dc5ff3e
to
6ab650b
Compare
@jfbastien I added a mention that subnormals are still under discussion to the main AstSemantics, with a link to #148. |
And provide a link to background reading about numerical debugging techniques.
6ab650b
to
b771579
Compare
Taking the liberty of merging based on LGTMs above, even though I added a few extra minor sentences. I don't expect they're controversial. |
Add a FutureFeatures.md section discussing full IEEE-754 conformance.
Some people I spoke to had concerns about the IEEE-754 section. This patch adds a FutureFeatures.md section discussing a possible path to full conformance in the future, to help people understand where we are. As with all features in FutureFeatures.md, we'd need further discussion before we'd actually standardize anything here.