diff --git a/doc/4-ReleaseNotes.md b/doc/4-ReleaseNotes.md index dd1c69a6..7ca97e4f 100644 --- a/doc/4-ReleaseNotes.md +++ b/doc/4-ReleaseNotes.md @@ -1,5 +1,71 @@ # Release notes +## Release 0.6.4 "Healing": Testing and fixes + +This release focuses on heavy testing of the new variable-precision +decimal stack. Adding tests also means finding bugs. + +Another significant change is support for fixed-precision +hardware-accelerated floating point, using 32-bit and 64-bit IEEE754 +binary floating-point representation. Since this uses a binary format, +some decimal values do not map to decimal correctly. For example, +displaying 1.2 with a large number of decimals will show residue, +because 1.2 does not have an exact (zero-terminated) representation in +binary. + +### New features: + +* plotting: Make refresh rate configurable +* menu: Add `/` key to `FractionsMenu` +* hwfp: Add support for hardware-accelerated floating-point +* menus: Add hardware floating-point flag to `MathModesMenu` +* ui: Allow multiple uses of `.` to insert DMS separators +* HMS: Editing of HMS values in HMS format + +### Bug fixes: + +* stats: Fix crash on `variance` with single-column statistics +* algebraic: Clear error before evaluating the function +* functions: Correctly emit a type error for non-algebraics +* ui: Make sure we save stack if closing the editor +* logical: Fix mask for rotate left with 64-bit size +* logical: Make sure we save args for single-argument logicals +* flags: Update flags on `FlipFlag`, consume them from `BinaryToFlags` +* stack: Show multi-line objects correctly +* lists: Returns `Bad argument value` for index with bad arguments +* lists: Return an empty list for tail of empty list +* arithmetic: `→Frac` should not error on integers +* power: Do not shut down during `WAIT` if on USB power + +### Improvements: + +* menu: Shorten the labels `→QIter` and `→QPrec` to avoid scrolling +* stack: Avoid running same code twice on simulator +* ids: Add aliases for hardware floating point +* functions: Optimize abs and neg +* ui: Replace calls to `rt.insert` with calls to `insert` +* menu: Reorganize fractions menu +* dms: Do the DMS conversion using fractions +* list: Adjust multi-line rendering +* copyright: Update copyright to 2024 +* text: Return null text when indexing past end of text + +### Testing: + +* tests: Increase the delay for help to draw +* tests: Add tests for hardware-accelerated floating-point +* tests: Add shifts and rotate tests +* tests: Check flag functions +* tests: Test DMS and HMS operations +* tests: Add test for `integrate` using decimal values +* tests: Test multi-line stack display +* tests: Add tests for `GETI` +* tests: Min and max commands +* tests: Repair last regression test +* tests: Check behaviour of 0^0 +* tests: Avoid string overflow in case of very long message + + ## Release 0.6.3 "Come and See": Repair test suite The focus of this release was to reactivate the test suite and fix the diff --git a/doc/6-Performance.md b/doc/6-Performance.md index 636aecc5..395c9c39 100644 --- a/doc/6-Performance.md +++ b/doc/6-Performance.md @@ -117,16 +117,24 @@ For 1000 loops, comparing variable-precision decimal with the earlier Intel deci | 0.6.4 (VP6) | 6905 | 5623 | | 0.5.2 (ID) | 2154 | 1434 | -| | DM32 (ms) | DM42 (ms) | -|--------------|--------------------------------------------|--------------------------------------------| -| Version | HW7 | HW16 | VP6 | VP12 | VP24 | VP36 | HW7 | HW16 | VP6 | VP12 | VP24 | VP36 | -| 0.5.2 (ID) | 2154 | | | | | | 1434 | | | | | | -| 0.6.0 (Note) | | | | | 23773 | | | | | | 17685 | | -| 0.6.2 | | | 7436 | 16017 | 34898 | 62012 | | | 5842 | 10782 | 23714 | 42269 | -| 0.6.4 | 1414 | 1719 | 6905 | 13720 | 32346 | 60259 | 422 | 705 | 5623 | 10548 | 23811 | 42363 | +Time in millisecond for 1000 loops: -Note: Results for 0.6.0 are artificially good because intermediate computations -were not made with increased precision. +| DM32 Version | HW7 | HW16 | VP6 | VP12 | VP24 | VP36 | +|--------------|------|------|------|-------|-------|-------| +| 0.6.4 | 1414 | 1719 | 6905 | 13720 | 32346 | 60259 | +| 0.6.2 | | | 7436 | 16017 | 34898 | 62012 | +| 0.6.0 (Note) | | | | | 23773 | | +| 0.5.2 (ID) | 2154 | | | | | | + +| DM42 Version | HW7 | HW16 | VP6 | VP12 | VP24 | VP36 | +|--------------|------|------|------|-------|-------|-------| +| 0.6.4 | 422 | 705 | 5623 | 10548 | 23811 | 42363 | +| 0.6.2 | | | 5842 | 10782 | 23714 | 42269 | +| 0.6.0 (Note) | | | | | 17685 | | +| 0.5.2 (ID) | 1434 | | | | | | + +Note: Results for 0.6.0 with variable precision are rtificially good because +intermediate computations were not made with increased precision. ## Drawing `sin X` with `FunctionPlot` diff --git a/help/db48x.md b/help/db48x.md index 86c4f620..d53aab50 100644 --- a/help/db48x.md +++ b/help/db48x.md @@ -1794,6 +1794,72 @@ the corresponding unit in the units file, for example: ``` # Release notes +## Release 0.6.4 "Healing": Testing and fixes + +This release focuses on heavy testing of the new variable-precision +decimal stack. Adding tests also means finding bugs. + +Another significant change is support for fixed-precision +hardware-accelerated floating point, using 32-bit and 64-bit IEEE754 +binary floating-point representation. Since this uses a binary format, +some decimal values do not map to decimal correctly. For example, +displaying 1.2 with a large number of decimals will show residue, +because 1.2 does not have an exact (zero-terminated) representation in +binary. + +### New features: + +* plotting: Make refresh rate configurable +* menu: Add `/` key to `FractionsMenu` +* hwfp: Add support for hardware-accelerated floating-point +* menus: Add hardware floating-point flag to `MathModesMenu` +* ui: Allow multiple uses of `.` to insert DMS separators +* HMS: Editing of HMS values in HMS format + +### Bug fixes: + +* stats: Fix crash on `variance` with single-column statistics +* algebraic: Clear error before evaluating the function +* functions: Correctly emit a type error for non-algebraics +* ui: Make sure we save stack if closing the editor +* logical: Fix mask for rotate left with 64-bit size +* logical: Make sure we save args for single-argument logicals +* flags: Update flags on `FlipFlag`, consume them from `BinaryToFlags` +* stack: Show multi-line objects correctly +* lists: Returns `Bad argument value` for index with bad arguments +* lists: Return an empty list for tail of empty list +* arithmetic: `→Frac` should not error on integers +* power: Do not shut down during `WAIT` if on USB power + +### Improvements: + +* menu: Shorten the labels `→QIter` and `→QPrec` to avoid scrolling +* stack: Avoid running same code twice on simulator +* ids: Add aliases for hardware floating point +* functions: Optimize abs and neg +* ui: Replace calls to `rt.insert` with calls to `insert` +* menu: Reorganize fractions menu +* dms: Do the DMS conversion using fractions +* list: Adjust multi-line rendering +* copyright: Update copyright to 2024 +* text: Return null text when indexing past end of text + +### Testing: + +* tests: Increase the delay for help to draw +* tests: Add tests for hardware-accelerated floating-point +* tests: Add shifts and rotate tests +* tests: Check flag functions +* tests: Test DMS and HMS operations +* tests: Add test for `integrate` using decimal values +* tests: Test multi-line stack display +* tests: Add tests for `GETI` +* tests: Min and max commands +* tests: Repair last regression test +* tests: Check behaviour of 0^0 +* tests: Avoid string overflow in case of very long message + + ## Release 0.6.3 "Come and See": Repair test suite The focus of this release was to reactivate the test suite and fix the diff --git a/help/db50x.md b/help/db50x.md index 6c808d7a..2581dfe0 100644 --- a/help/db50x.md +++ b/help/db50x.md @@ -1794,6 +1794,72 @@ the corresponding unit in the units file, for example: ``` # Release notes +## Release 0.6.4 "Healing": Testing and fixes + +This release focuses on heavy testing of the new variable-precision +decimal stack. Adding tests also means finding bugs. + +Another significant change is support for fixed-precision +hardware-accelerated floating point, using 32-bit and 64-bit IEEE754 +binary floating-point representation. Since this uses a binary format, +some decimal values do not map to decimal correctly. For example, +displaying 1.2 with a large number of decimals will show residue, +because 1.2 does not have an exact (zero-terminated) representation in +binary. + +### New features: + +* plotting: Make refresh rate configurable +* menu: Add `/` key to `FractionsMenu` +* hwfp: Add support for hardware-accelerated floating-point +* menus: Add hardware floating-point flag to `MathModesMenu` +* ui: Allow multiple uses of `.` to insert DMS separators +* HMS: Editing of HMS values in HMS format + +### Bug fixes: + +* stats: Fix crash on `variance` with single-column statistics +* algebraic: Clear error before evaluating the function +* functions: Correctly emit a type error for non-algebraics +* ui: Make sure we save stack if closing the editor +* logical: Fix mask for rotate left with 64-bit size +* logical: Make sure we save args for single-argument logicals +* flags: Update flags on `FlipFlag`, consume them from `BinaryToFlags` +* stack: Show multi-line objects correctly +* lists: Returns `Bad argument value` for index with bad arguments +* lists: Return an empty list for tail of empty list +* arithmetic: `→Frac` should not error on integers +* power: Do not shut down during `WAIT` if on USB power + +### Improvements: + +* menu: Shorten the labels `→QIter` and `→QPrec` to avoid scrolling +* stack: Avoid running same code twice on simulator +* ids: Add aliases for hardware floating point +* functions: Optimize abs and neg +* ui: Replace calls to `rt.insert` with calls to `insert` +* menu: Reorganize fractions menu +* dms: Do the DMS conversion using fractions +* list: Adjust multi-line rendering +* copyright: Update copyright to 2024 +* text: Return null text when indexing past end of text + +### Testing: + +* tests: Increase the delay for help to draw +* tests: Add tests for hardware-accelerated floating-point +* tests: Add shifts and rotate tests +* tests: Check flag functions +* tests: Test DMS and HMS operations +* tests: Add test for `integrate` using decimal values +* tests: Test multi-line stack display +* tests: Add tests for `GETI` +* tests: Min and max commands +* tests: Repair last regression test +* tests: Check behaviour of 0^0 +* tests: Avoid string overflow in case of very long message + + ## Release 0.6.3 "Come and See": Repair test suite The focus of this release was to reactivate the test suite and fix the diff --git a/recorder b/recorder index 9b1b214a..8b0b079b 160000 --- a/recorder +++ b/recorder @@ -1 +1 @@ -Subproject commit 9b1b214ab22828367b37819624ff5739a104685a +Subproject commit 8b0b079b5462a75db285dd0a240735cb052c131c diff --git a/src/dm32/qspi_crc.h b/src/dm32/qspi_crc.h index 53d3a487..3469932b 100644 --- a/src/dm32/qspi_crc.h +++ b/src/dm32/qspi_crc.h @@ -1,4 +1,4 @@ -#define QSPI_DATA_SIZE 190020 +#define QSPI_DATA_SIZE 191052 #define QSPI_DATA_CRC 0x000cfed6 diff --git a/src/dm42/qspi_crc.h b/src/dm42/qspi_crc.h index 3683050e..c5663f31 100644 --- a/src/dm42/qspi_crc.h +++ b/src/dm42/qspi_crc.h @@ -1,4 +1,4 @@ -#define QSPI_DATA_SIZE 189588 +#define QSPI_DATA_SIZE 190620 #define QSPI_DATA_CRC 0x000cfed6