Archive: forth/ieeefp-drafts

Up to parent directory

This directory contains drafts of a proposal for an optional IEEE 754, binary floating-point word set for Forth 200x. I was the drafter, and there were several comp.lang.forth contributors, especially Andrew, Anton, Ed, and Marcel (alphabetical order). Draft version 0.5.4a was submitted ([forth200x] Digest Number 153, August 30, 2009) for the 2009 Forth 200x meeting, basically as a progress report, and my understanding was that it was well-received.

The last two draft versions 0.5.4a and 0.5.5 do not differ substantially from 0.5.4. The cover letter for draft version 0.5.4a lists some of the unresolved issues. Version 0.5.5 (unsubmitted as far as I know) had two additions:

  1. A requirement for a separate fp stack,
  2. Added definitions of normal and subnormal in the Binary floating-point formats section.

Proposal Drafts for Optional IEEE 754 Binary Floating-Point Word Set

The last in the list of drafts is an experimental proposal, which adds a Floating-Point Exceptions section. It replaces GET-FSTATUS and SET-FSTATUS in version 0.5.5 by GET-FFLAGS, SET-FFLAGS, and CLEAR-FFLAGS, and adds exception handling words. —dnw
ieee-fp-0.5.0.txt 12Aug20 13:08:02EDT 28K comp.lang.forth
ieee-fp-0.5.1.txt 12Aug20 13:08:02EDT 26K comp.lang.forth
ieee-fp-0.5.2.txt 12Aug20 13:08:02EDT 33K comp.lang.forth
ieee-fp-0.5.3.txt 12Aug20 13:08:02EDT 43K comp.lang.forth
ieee-fp-0.5.4.txt 12Aug20 13:08:02EDT 44K comp.lang.forth
ieee-fp-0.5.4a.txt 12Aug20 13:08:02EDT 44K
ieee-fp-0.5.5.txt 12Aug20 13:08:02EDT 44K
ieee-fp-excepts.txt 12Aug20 13:08:02EDT 7.6K comp.lang.forth
ieee-fp-words.txt 02Oct20 09:34:22EDT 3.4K My personal list, for experimental implementation and testing.

Discussions in comp.lang.forth

Archives of newsgroup discussions of some of the above drafts, ending on October 5, 2009. The .zip files contain email folders in mbox/unix format, which it should be possible to import into a standard email client to facilitate viewing. They can be read as text, but the email header data is distracting. 28Sep20 12:28:19EDT 337K 28Sep20 12:28:23EDT 57K 28Sep20 12:28:49EDT 18K 28Sep20 12:28:55EDT 7.7K

754-2008 IEEE Standard

Official site: 754-2008 - IEEE Standard for Floating-Point Arithmetic. It appears that full access to the text is available for some people. Copies have been found on the web.
ieee-754-2008.pdf A copy of the full text.

754-2019 IEEE Standard

Official site: 754-2019 - IEEE Standard for Floating-Point Arithmetic. So far, I have not found the full text on the web.
ANSI/IEEE Std 754-2019 A summary with links. Especially useful for the section, “Changes in 754-2019 from ANSI/IEEE Std 754-2008”.

Reference Implementation Snapshots

The files below are snapshots of a Forth 754-2008 reference implementation for a subset of the draft proposal. Each .zip file inflates to a directory with the same name, including the date. The directory contains the reference source library and a test file, along with all files needed to load them and run the tests. The current versions of the library and test files are ieeefp-ref.fs and ieeefp-ref-test.fs.

The source library is implemented as a module, so the reference words can either be in the search order ahead of any words defined with the same names by the Forth host, or can be removed from the search order so that host words take precedence. The test file takes advantage of that with a switching mechanism that allows user-selected groups of tests to run with native instead of reference definitions. 31Oct20 09:46:39EDT 40K 31Oct20 11:09:32EDT 44K 01Nov20 09:58:10EST 44K Made tests of quieting for signaling NaNs conditional on HAS-QUIETING. The default is to test quieting only for reference definitions. 26Dec20 22:45:41EST 45K Added missing 128-bit code, some quad float updates in tests. Made fp classification tests conditional on individual existence of word definitions.

Up to top of archive