Skip to content

Commit dc5ff3e

Browse files
committed
Clarify the status of alternate execution modes.
And provide a link to background reading about numerical debugging techniques.
1 parent e24a7ce commit dc5ff3e

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

FutureFeatures.md

+12-8
Original file line numberDiff line numberDiff line change
@@ -317,11 +317,15 @@ operations the possibility of having side effects.
317317

318318
Debugging techniques are also important, but they don't necessarily need to be
319319
in the spec itself. Implementations are welcome (and encouraged) to support
320-
execution modes with alternate default rounding modes, or alternate execution
321-
modes which evaluate floating point expressions at greater precision, to support
322-
techniques used to detect numerical instability. Implementations are welcome to
323-
support execution modes where floating point exceptions trap by default,
324-
although this will be tricky because it may cause programs not written to
325-
anticipate this to fail spuriously. Implementations are welcome to produce quiet
326-
NaN values that contain identifiers helping programmers locate where the NaNs
327-
were first produced.
320+
non-standard execution modes, enabled only from developer tools, such as modes
321+
with alternate rounding, or evaluation of floating point expressions at greater
322+
precision, to support [techniques for detecting numerical instability]
323+
(http://www.cs.berkeley.edu/~wkahan/Mindless.pdf).
324+
325+
To help developers find the sources of floating point exceptions,
326+
implementations may wish to provide a mode where NaN values are produced with
327+
payloads containing identifiers helping programmers locate where the NaNs first
328+
appeared. Another option would be to offer another non-standard execution mode,
329+
enabled only from developer tools, that would enable traps on selected floating
330+
point exceptions, however care should be taken, since not all floating point
331+
exceptions indicate bugs.

0 commit comments

Comments
 (0)