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

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
This commit is contained in:
Christophe de Dinechin 2024-02-05 00:08:30 +01:00
parent c7be6b14ec
commit 2dbbec4ad7
7 changed files with 218 additions and 12 deletions

View file

@ -1,5 +1,71 @@
# Release notes # 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 ## Release 0.6.3 "Come and See": Repair test suite
The focus of this release was to reactivate the test suite and fix the The focus of this release was to reactivate the test suite and fix the

View file

@ -117,16 +117,24 @@ For 1000 loops, comparing variable-precision decimal with the earlier Intel deci
| 0.6.4 (VP6) | 6905 | 5623 | | 0.6.4 (VP6) | 6905 | 5623 |
| 0.5.2 (ID) | 2154 | 1434 | | 0.5.2 (ID) | 2154 | 1434 |
| | DM32 (ms) | DM42 (ms) | Time in millisecond for 1000 loops:
|--------------|--------------------------------------------|--------------------------------------------|
| 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 |
Note: Results for 0.6.0 are artificially good because intermediate computations | DM32 Version | HW7 | HW16 | VP6 | VP12 | VP24 | VP36 |
were not made with increased precision. |--------------|------|------|------|-------|-------|-------|
| 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` ## Drawing `sin X` with `FunctionPlot`

View file

@ -1794,6 +1794,72 @@ the corresponding unit in the units file, for example:
``` ```
# Release notes # 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 ## Release 0.6.3 "Come and See": Repair test suite
The focus of this release was to reactivate the test suite and fix the The focus of this release was to reactivate the test suite and fix the

View file

@ -1794,6 +1794,72 @@ the corresponding unit in the units file, for example:
``` ```
# Release notes # 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 ## Release 0.6.3 "Come and See": Repair test suite
The focus of this release was to reactivate the test suite and fix the The focus of this release was to reactivate the test suite and fix the

@ -1 +1 @@
Subproject commit 9b1b214ab22828367b37819624ff5739a104685a Subproject commit 8b0b079b5462a75db285dd0a240735cb052c131c

View file

@ -1,4 +1,4 @@
#define QSPI_DATA_SIZE 190020 #define QSPI_DATA_SIZE 191052
#define QSPI_DATA_CRC 0x000cfed6 #define QSPI_DATA_CRC 0x000cfed6

View file

@ -1,4 +1,4 @@
#define QSPI_DATA_SIZE 189588 #define QSPI_DATA_SIZE 190620
#define QSPI_DATA_CRC 0x000cfed6 #define QSPI_DATA_CRC 0x000cfed6