Release 0.5.2 "Christmas Eve": Reaching hard limits on the DM42
Pre-releaseThis release was a bit longer in coming than earlier ones, because we are about
to reach the limits of what can fit on a DM42. This release uses 711228 bytes
out of the 716800 (99.2%).
Without the Intel Decimal Library code, we use only 282980 bytes. This means
that the Intel Decimal Library code uses 60.2% of the total code space. Being
able to move further requires a rather radical rethinking of the project, where
we replace the Intel Decimal Library with size-optimized decimal code.
As a result, release 0.5.2 will be the last one using the Intel Decimal Library,
and is release in parallel with 0.6.0, which switches to a table-free and
variable-precisions implementation of decimal code that uses much less code
space. The two releases should otherwise be functionally identical
New features
- Shift and rotate instructions (#622)
- Add
CompatibleTypes
andDetsailedTypes
setting to controlType
results - Recognize HP-compatible negative values for flags, e.g.
-64 SF
(#625) - Add settings to control multiline result and stack display (#634)
Bug fixes
- Truncate to
WordSize
the small results of binary operations (#624) - Fix day-of-week shortcut in simulator
- Avoid double-evaluation of immediate commands when there is no help
- Generate an error when selecting base 1 (#628)
- Avoid
Number too big
error on based nunbers - Correctly garbage-collect menu entries (#630)
- Select default settings that allow solver to find solutions (#627)
- Fix display of decimal numbers (broken by multi-line display)
- Fix rendering of menu entries for
Fix
,Std
, etc - Detect non-finite results in arithmetic, e.g.
(-8)^0.3
m (#635, #639) - Fix range-checking for
Dig
to allow-1
value - Accept large values for
Fix
,Sci
andEng
(for variable precision) - Restore missing last entry in built-in units menu (#638)
- Accept
Hz
and non-primary units as input forConvertToUnitPrefix
(#640) - Fix LEB128 encoding for signed value 64 and similar (#642)
- Do not parse
IfThenElse
as a command - Do not consider
E
as a digit in decimal numbers (#643) - Do not parse
min
as a function in units, but as minute (#644)
Improvements
- Add
OnesComplement
flag for binary operation (not used yet) - Add
ComplexResults
(-103) flag (not used yet) - Accept negative values for
B→R
(according toWordSize
) - Add documentation for
STO
andRCL
accessing flash storage - Mention
True
andFalse
in documentation - Rename
MaxBigNumBits
toMaxNumberBits
- Return HP-compatible values from
Type
function - Minor optimization of flags implementation
- Catalog auto-completion now suggests all possible spellings (#626)
- Add aliases for
CubeRoot
andHypothenuse
- Align based number promotion rules to HP calculators (#629)
- Expand the range of garbage collector integrity check on simulator
- Show command according to preferences in error messages (#633)
- Avoid crash in
debug_printf
if used before font initialization - Update performance data in documentation
- Add ability to disable any reference to Intel Decimal Floating-point library
- Simplify C++ notations for safe pointers (
+x
andoperartor bool()
) - Fix link to old
db48x
project inREADME.md
Full Changelog: v0.5.1...v0.5.2