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 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

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.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`

View file

@ -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

View file

@ -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

@ -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

View file

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