Please read before Thursday's meeting...
Here are my notes from Wednesday's meeting. If you read it
before Thursday it will save me having to read it to you during
the meeting. Thanks. - Dan
Notes for meeting at Hewlett Packard in Palo Alto on Wednesday
7/13/05 in the Von Neumann Room in Building 4. Peter Markstein
hosted us. Dick Delp, Mike Cowlishaw, Jim Thomas, David Hough,
& Dan Zuras attended. Eric Schwartz, Mark Erle, & Jeff Kidder
were on the phone.
We started with the draft review & finished around 2:20.
We began with debug.txt (1-6). People generally seem to think
its too vague to move into the body of the draft for now.
Next: snan.htm (2-6). To make signalling NaNs (& now trapping
NaNs) optional. There have been objections raised from the sNaN
column. Some also object to the introduction of an optional
trapping NaN for various reasons.
Next: static-modes.htm (2-5). To apply modes (rounding, et al)
statically. Mike objected on the grounds that an interpretive
language can be purely dynamic in its scoping rules. This
'meta' problem can be used by sufficiently malicious programmers
to conceal a change of modes that defeats any reasonable notion
of 'static'. We ended up discussing that rather than a static
mode what we really have in mind that the programmer should have
the expressive power to say (a) I would like this operation/
expression/block to be evaluated in this precision/rounding/
exception mode, or (b) I would like it to be evaluated as if
some mode change (external to me) would apply to this code, or
(c) I don't care. Also this should be a requirement & therefore
a SHALL. Making it a SHOULD would defeat the purpose. We also
discussed just how 'paranoid' a compiler should be about the
convention that function calls don't change some global mode.
The reckless level would be to not know & not care. The truely
paranoid level would be to save & restore all modes on the
procedure call. Jim argued that an adequate level of paranoia
was to not move code around function calls. While that seems
practical is seems barely more than reckless to me.
Next: resumable.htm (1-5). Resumable modes are abrupt
underflow, presubstitution, & the scaled product functions (in
lieu of counting mode). We spent some time discussing whether
the definition of operations which take arrays as operands or
used unusual arithmetic in the intermediates. There is an
obvious ULP*(N/2) error bound on the result & we would like it
to be unbiased but its not clear how to both specify & test
that. Jeff was also concerned that the product of a great many
numbers which can be arrived at exactly SHOULD be computed
Next: nonresumable.htm (1-2). Nonresumable modes could be
implemented by some sort of try/catch mechanism.
Dave mentioned that he withdrew the user trap proposal as it is
largely covered by the resumable trap proposal.
We adjourned around 4:30.