Skip to content
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

Merged
merged 4 commits into from
Jun 16, 2015

Conversation

sunfishcode
Copy link
Member

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.


## Full IEEE-754 conformance

IEEE-754 NaN [bit pattern] propagation is presently permitted but not
Copy link
Member

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?

Copy link
Member Author

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.

@jfbastien
Copy link
Member

Link to #148?

@sunfishcode sunfishcode force-pushed the full-ieee754 branch 2 times, most recently from 8f4009e to f8ea8d5 Compare June 15, 2015 17:49
@sunfishcode
Copy link
Member Author

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.

@jfbastien
Copy link
Member

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
Copy link
Member

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"?

@kripken
Copy link
Member

kripken commented Jun 15, 2015

lgtm

@sunfishcode sunfishcode force-pushed the full-ieee754 branch 2 times, most recently from fad4535 to dc5ff3e Compare June 15, 2015 23:24
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]
Copy link
Member

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!

Copy link
Member Author

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.

@sunfishcode
Copy link
Member Author

@jfbastien I added a mention that subnormals are still under discussion to the main AstSemantics, with a link to #148.

@sunfishcode
Copy link
Member Author

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.

sunfishcode added a commit that referenced this pull request Jun 16, 2015
Add a FutureFeatures.md section discussing full IEEE-754 conformance.
@sunfishcode sunfishcode merged commit f1696e1 into master Jun 16, 2015
@sunfishcode sunfishcode deleted the full-ieee754 branch June 16, 2015 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants