Change log for mixfloat.fs, mixfloat-test.fs -------------------------------------------- Unattributed changes are by David N. Williams. The revision dates in the source files may reflect cosmetic changes not recorded here. Version 0.9.2 28Dec20 * Added MIX>WIDE, experimental replacement for MIX>PARTS. Not released. 05Sep20 * Removed from DNW archive. Version 0.9.0 25Jul09 * Renamed hexfloat.fs, hexfloat-test.fs, and hexfloat.log as mixfloat.fs, mixfloat-test.fs, and mixfloat.log. More descriptive, and helps with naming for sublibraries. * Bumped version from 0.1.6 to 0.9.0. * Added conditionals to avoid redundancy with rawfloat.fs. 28Jul09 * Removed [IF] from behind a comment. 2Jul10 * Fixed typo in title, RAW64>MIX instead of RAW6>MIX. 1Aug10 * Replaced typos: old new HEX32>RAW80 HEX20>RAW80. RAW80>HEX32 RAW80>HEX20 23Dec10 * Another typo: RA128! RAW128! Change log for rawhexfloat.fs and rawhexfloat-test.fs ----------------------------------------------------- Version 0.9.6 14Oct20 * Added RAW-HEX-FLOAT signature word. * Replaced rawfloat code by cheap require of rawfloat.fs. 15Oct20 * Replaced 32-BITS/FLOAT and 64-BITS/FLOAT by bits/float expressions in both library and tests. 22Dec20 * Replaced "hex64" with "hex32" in rawhexfloat.fs 20Jan21 * Made rawhexfloat.fs BASE clean. Version 0.9.4 20Aug20 * Combined rawhex.fs 0.9.4 with rawfloat.fs 0.9.1 to make rawhexfloat.fs 0.9.4, and rawhex-test.fs 0.9.4 with rawfloat-test.fs 0.9.1 to make rawhexfloat-test.fs 0.9.4. * Added 64-BITS/CELL?. * Renamed: old new [LITTLE-ENDIAN] [LITTLE-ENDIAN?] hex$ pad$ 0hex$ 0pad$ hex$>s pad$>s hex+ pad+ 22Aug20 * Added RAW-HEX-FLOAT signature word. 23Aug20 * Added QFCREATE, a quad-aligned CREATE. * Rewrote bits/float to use comparison of default -0 to explicit data. * Removed #fbytes and tests based on it. * Started rationalization of raw formats: forth-style cell-based with with higher significance lower in memory, and unused bit 0-padding in most significant bits of most significant cell. 25Aug20 * Added 3@, 3!, 4@, 4!, and revised raw fetches and stores to use them. Removed hi16 and lo16 fetches and stores. 26Aug20 * Added conditional to omit SEE tests with iForth; they stop the tests. * Revised conversions between float and raw in code and tests. * Testing and revision for 32 bits on macOS Mojave. 27Aug20 * Renamed [LITTLE-ENDIAN?] as LITTLE-ENDIAN?, no longer immediate. * Fixed a nasty conditional alignment bug in qfpad, revealed accidentally by gforth when removal and restoration of MARKER made alignment randomly invalid. 03Sep20 * Fixed bug in raw>hex variants; they weren't enforcing hex mode. Added HDIGS+ and BL-HDIGS+ and used them in the conversions. 04Sep20 * Rewrote the overview, a hard job. 07Sep20 * Fixed hi-lo reversal in 1-dr constant for 32 bits/cell in rawhexfloat-test.fs, revealed by 32-bit tests on Mojave. Tricky because a compensating error in rawhexfloat.fs made the tests pass. * Fixed analagous reversal in RAW64>F and F>RAW64 in rawhexfloat.fs. Change log for rawhex.fs and rawhex-test.fs FROZEN ------------------------------------------- Version 0.9.4 16Aug20 * Replaced eventual 32-bit restriction in rawhex.fs, by 32- or 64-bit restriction at start. * Added uncommentable switch to use ttester-xf.fs in rawhex-test.fs. 17Aug20 * Made rawhex.fs and rawhex-test.fs 64-bit clean. * Added flag: 32-BITS/CELL? * Removed U>HEX+ and revised RAWxx>HEXxx to use LSHIFT>UD. * Changed spec for RAW32 format in 64-bit case to use the high 32 bits of its cell. Now all raw formats in both 32- and 64-bit systems occupy their cells starting at the most significant bit of the most significant cell in lowest memory, and working upward in memory to fill least significant cell as far as needed, starting at its most significant bit. 20Aug20 * Combined rawhex.fs with rawfloat.fs to make rawhexfloat.fs, and rawhex-test.fs with rawfloat-test.fs to make rawhexfloat-test.fs. No more updates here. 05Sep20 * Removed from DNW. 22Dec20 * Replaced "hex64" with "hex32" in rawhex.fs. * Removed environment query for floating point. Version 0.9.0 24Jul09 * Extracted rawhex.fs from version 0.9.0 of mixfloat.fs. 25Jul09 * Added missing ABORT for cells not 32 bits and for bits/float not 32, 64, 80, or 128. * Extracted rawhex-test.fs from mixfloat-test.fs 0.9.0. * Added conditionals to avoid redundancy with rawfloat.fs. 28Jul09 * Removed [IF] from behind a comment. * Released. 4Aug10 * Replaced "32" by "20" in HEX32>RAW80 and RAW80>HEX32 in HEX>RAW and RAW>HEX. Revealed by iForth tests. Change log for rawfloat.fs and rawfloat-test.fs ------------------------------------------------ Version 0.9.6 12Oct20 * Moved raw constants from ieeefp-ref.fs to rawfloat.fs, as well as: RAW-CONSTANT RAW-DROPS * Added negatives to raw constants. * Added and used in tests: FLITTLE-ENDIAN? * Moved tests from ieeefp-ref.fs to rawfloat-test.fs: RAW-CONSTANT RAW-DROPS 15Oct20 * Added signature noop RAW-FLOAT. * Removed MARKER -FLOAT-PARAMS section into its own file, float-bit-constants.fs, and started new log entries for it there. 10Dec20 * Made definitions conditional: QFALIGNED QFALIGN * Made definition conditional: QFCREATE 22Dec20 * Made ttester.fs vs ttester-xf.fs conditional in rawfloat-test.fs. 23Jan21 * Updated preamble for rawfloat-testfs. Removed fp loading for PFE. 19Jan21 * Made rawfloat.fs BASE clean. 9Feb21 * Fixed typo in user word list. Version 0.9.4 10Sep20 * Updated by copying rawfloat parts from rawhexfloat.fs and rawfhexfloat-test.fs 0.9.4. 29Sep20 * Revised s" FLOATING-EXT" ENVIRONMENT? to not abort. Put ABORT after [UNDEDFINED] F@ [IF]. * Revised the MARKER computation of BITS/FLOAT to use F- and F0= instead of F~. Version 0.9.1 30Jul09 * Started revision to allow 64-bit cells. * Removed the shift words and their tests. * Used bytes, not cells, in QFPAD bits/float calculation. * Testing with 64-bit intel gforth revealed bugs. 31Jul09 * Fixed 64-bit little-endian bugs -- 64-bit big-endian untested. 01Aug09 * Listed QFPAD as a user word. 20Aug20 * Combined rawfloat.fs with rawhex.fs to make rawhexfloat.fs, and rawfloat-test.fs with rawhex-test.fs to make rashexfloat-test.fs. No more updates here. 05Sep20 * Removed from DNW. Version 0.9.0 24Jul09 * Extracted rawfloat.fs and rawfloat-test.fs from version 0.9.0 of mixfloat.fs and mixfloat-test.fs. 25Jul09 * Added missing ABORT for cells not 32 bits and for bits/float not 32, 64, 80, or 128. * Added conditionals to avoid redundancy with mixfloat.fs and rawhex.fs. 28Jul09 * Removed [IF] from behind a comment. * Released. 29Jul09 * Removed HEX20>F and F>HEX20, inadvertently left in, and hidden behind XF@ conditional compilation. Change log for hexfloat.fs and hexfloat-test.fs FROZEN ----------------------------------------------- Version 0.1.6 21Jul09 * Added: FM. 22Jul09 * Added ABORT when arithmetic is not two's complement. 23Jul09 * Bumped version number of hexfloat-test.fs to 0.1.6. No new tests. 25Jul09 * Declared frozen, to be replaced by mixfloat.fs and mixfloat-test.fs. Version 0.1.5 1Jul09 * Started revision to fix mistaken assumption that both single and double formats reside on the same fp stack, and to make raw formats the central theme. 16Jul09 * Massive revision completed. Some highlights: -MIX>PARTS works with quad instead of double cells. -Added quad left and right shifts. -Added 80-bit and 128-bit formats. -Added raw store/fetch with big- and little-endian treatment. -Removed DF and SF words. -Added tests to prevent hexfloat.fs from loading when bit-sizes don't fit the code assumptions. -Added floating-point stack conversions that work when the default float is 32-, 64-, 80-, or 128-bits, assuming nonstandard words for the latter two cases: XF! XF@ QF! QF@ -Based the tests in hexfloat-test.fs on a "complete" set of floating-point bit patterns. 17Jul09 * Released. Passes tests on Mac OS X ppc and intel, and linux. * Fixed bad digits in extended and quad bit-patterns in hexfloat-test.fs. 18Jul09 * Marcel Hendrix tested with iForth and found bugs in RAW80>F, F>RAW80, HEX20>F, F>HEX20, and the corresponding quad words, as well as the tests for HEX20>F and F>HEX20. Fixed. The quad fixes can't be tested yet. * Removed restriction to singles or doubles as the default from hexfloat-test.fs. Should work with any of the four as default format. Version 0.1.4 20Mar09 * Moved change logs for hexfloat.fs and hexfloat-test.fs to this file. * Added: HEX16>MIX HEX8>MIX HEX>MIX MIX>HEX16 MIX>HEX8 MIX>HEX * Changed names: old new HEX>RAW64 HEX16>RAW64 HEX>RAW32 HEX8>RAW32 RAW64>HEX RAW64>HEX16 RAW32>HEX RAW32>HEX8 HEX>DF HEX16>DF HEX>SF HEX8>SF DF>HEX DF>HEX16 SF>HEX SF>HEX8 * Added tests: HEX16>MIX HEX8>MIX HEX>MIX MIX>HEX16 MIX>HEX8 MIX>HEX They also serve as regression tests for the examples in hexfloat.fs. * Revised examples to use new conversions instead of composites. * Released. Tested with pfe 0.33.70 (with and without separate fpstack) and gforth 0.7.0, on OS X 10.5.6 ppc and intel, and on Linux 2.6.21.3 i686. 18May09 * Fixed some stack specs. * Deleted redundancy in 64BIT-FLOATS? definition and renamed as 64BIT-FLOATS. Version 0.1.3 15Mar09 * Replaced "7FF0000000000000." by "00000000 7FF00000". 16Mar09 * Added ABORT when cells are not 32 bits. * Started simplification by logical completion by adding: RAW>F F>RAW MIX>RAW RAW64>MIX RAW32>MIX RAW>MIX * Added: BITS/AU BITS/FLOAT 64BIT-FLOATS? 17Mar09 * Added: RAW64>HEX RAW32>HEX RAW>HEX * Revised examples to use RAW64>HEX and RAW32>HEX. * Added "FLOATING-EXT" environment query so pfe loads floating point. * Revised tests to use ttester.fs instead of ftester.fs. * Replaced "." notation for doubles by two singles in tests. * Added tests: RAW>F F>RAW MIX>RAW RAW64>MIX RAW32>MIX RAW>MIX RAW64>HEX RAW32>HEX RAW>HEX * Added system parameter reports to hexfloat-test.fs 19Mar09 * Added: HEX>DF HEX>SF HEX>F DF>HEX SF>HEX F>HEX HEX>RAW64 HEX>RAW32 HEX>RAW * Added ABORT when floats are neither 64 nor 32 bits. * Added tests: HEX>RAW64 HEX>RAW32 HEX>RAW HEX>F HEX>DF HEX>SF F>HEX DF>HEX SF>HEX Version 0.1.2 2Feb05 * Interchanged T2P1 and R2P1 in examples to agree with Kahan's notation. * Started DF>MIX. 3Feb05 * Finished DF>MIX, added SF>MIX, F>MIX. * Fixed bugs in MIX>FRAW32 and MIX>FRAW64 for converting zero. 6Feb05 * Renamed file from hex2float.fs to hexfloat.fs, since we convert both ways now. 2Mar05 * Changed "FRAW" to "RAW", because the float context is always clear, and we found ourselves forgetting to type the "F". * Added overflow to signed infinity and subnormal conversion with underflow to signed zero to MIX>RAW64 and MIX>RAW32. 10Mar05 * Fixed subnormal bugs in MIX>RAW64 and MIX>RAW32. * Added subnormal output to DF>MIX and SF>MIX. 11Mar05 * Added signed infinity, signed zero, and NaN output to DF>MIX and SF>MIX. * Started hexfloat-test.fs. 12Mar05 * Finished hexfloat-test.fs and fixed a few bugs it revealed. * Replaced [UNDEFINED] by standalone [UNDEF]. * Replaced generic " NaN" output in DF>MIX and SF>MIX by " NaN" and "-NaN". The sign of NaN is not portable, but is accessible in IEEE 754. 15Mar05 * Added a few more input syntax tests. Version 0.1.1 22Feb03 * Added single precision example. Version 0.1.0 25Jan03 * Start. 1Feb03 * Last revision.