Releases: c3d/db48x
Release 0.9.17 - Rational approximation, indexing, Android fixes
This incremental release delivers new features and fixes a number of bugs.
New features
- Add
→Qπcommand for rational approximation with π, √n, ln(n) and e - Apply
→Qand→Qπto numbers in expressions - Add array/list indexing support in algebraic expressions e.g.
'L(1)' - Add ability to
Store/CopytoL(1) - Add "real"
ConstantNameandConstantValuecommands
Bug fixes
- Fix parentheses around exponents in graph rendering of
'(a+b)^(c+d)' - Fix label for
ToRelativeUncertainty,→RelRndinstead of→RelUnc - Fix command alias mapping for
RNrm - Improve parsing of implicit multiplication for a number of edge cases
- Fix
utf8_nextfor garbage bytes following ASCII characters - Fix unsatisfied symbol errors with gcc/emcc in the WASM build
- Save Android system state when app is suspended or hidden
- Ensure Android help resources are extracted and available at runtime
- Restore image testing functionality in the test framework
- Updated test images that had become obsolete
- Report errors when saving reference files in tests
- Avoid stack corruption / crash when parsing malformed help index
- Fix computation of
DFC(2.3) - Fix null-pointer crash if the multiple equation solver fails
Enhancements
- Constrain
→Qand→Qπbehavior to FIX/SCI/ENG setting (like HPs) - Minor optimization for
program::run - Save about 3.4K of RAM on physical devices
- Speed up test runs while increasing default wait time for stability
- Documentation cleanup and additions, add more RPL examples
- Add clear build-time error message when a help topic exceeds 80 characters
- Add demo for interactive menu use
- Optimize away redundant argument checking
- Documentation for DCF and DCF2F
Signed-off-by: Christophe de Dinechin christophe@dinechin.org
Release 0.9.16 - Factorization, precision fixes, and documentation
This release adds prime and factorization features, improves numeric precision,
and expands simulator and user documentation.
New features
- Add
IsPrime,Factors,PrevPrimeandNextPrimecommands - Add
MaxFactorsBitsandMaxFactorIterationssettings for factorization - Add
TRIGSINcommand for Pythagorean identity rewrites - Add a Unix man page and simulator documentation
- Add simulator recorder dump on
F16; move demo playback toF13-F15 - Paint navigation arrows in
SHOW - Accept
CR/LFline endings when reading Windows files - Display keyboard access paths in help for commands
Bug fixes
- Fix
expm1precision loss for small arguments, including complex values - Fix
ln1pprecision loss for small arguments - Fix shift behavior after transient alpha, and support shift/xshift for transalpha
- Reset
show_xandshow_ywhen exitingSHOW - Ensure the simulator creates the
screensdirectory when needed - Fix an infinity optimization regression in arithmetic
- Add missing null-dereference checks in factorization code
- Treat
^as right-associative like on the HP50G
Enhancements
- Refactor and optimize the decimal factorization code path, with expanded tests
- Add conversion support to
floatanddoublein algebraic code - Update to recorder v1.2.3
- Add documentation updates (DeepWiki reference, legal notice updates)
- Add build preparation for upcoming make-it-quick integration
- Welcome several new authors to the team, see AUTHORS file
- Add LEGAL-NOTICE.md about compliance with California and Colorado laws
- Add menu entries for
hypotandatan2
Signed-off-by: Christophe de Dinechin christophe@dinechin.org
Release 0.9.15 "Myriam" - GitHub automation, portability
This release focused on GitHub and GitLab automation, and provides automated macOS, Linux, Windows and Android builds. You can still download the artefacts the usual way, but there should be new links attached to the release as well with artefacts generated through this new GitHub workflow.
New features
- GitHub automation automatically builds various packages
- Preparation for GitLab automation (still largely untested)
- Windows simulator
- Android package
- WebAssembly application (WASM) now has help and configuration files
- DM42n build (differs from DM32 only in the help files)
- Dockerfile to create a container with the simulator
- Add
ρinRangesMenu - Accept units when creating a range from components
- Add
Range→command that expands ranges with units
Bug fixes
- Corrected typos in some builtin constants
- Spelling and grammar fixes in documentation
- Build failure for wasm due to use of
source, abash-only syntax - WebAssembly application no longer uses 100% CPU
- The simulator can now be launched from any directory
- The macOS simulator correctly launches from the Finder or Dock
- Portability bug fixes in the DMCP emulation
- The Settings menu is now correctly refreshed after
ResetModes - Fix double-shifted arrow keys
- Correctly show help for
Swap,Negate, andCycle - Fix order on stack for
Explodeon a range value - Android build bug fixes
Enhancements
- Add osx program in lauch.json
- The simulator no longer overwrites configuration files by default
- Builds that use
gccnow enable more warnings - Simplify shift-handling logic
Release 0.9.14 "Latran" - Android preparation
This is a very minor release with bug fixes notably for Android
New features
- The screen updates when rendering and
PICTis set
Bug fixes
Waitfor durations longer than 1 second now works in simulator→%Range,→∆RangeandRange→now use displayed values- 0.9.13 regression, leftover input value after error during plotting
Improvements
- Semi-working Android build
Release 0.9.13 "Saints" - Truth plot, colors, and bug fixes
This release focuses on graphics and a few user-reported bug fixes
New features
binscomputes frequency bins from statistics dataRessets the resolution when plottingHistogramPlotdraws a histogram (frequency) plot from an arrayHSVgenerates a color pattern from hue, saturation and valueColorgenerates a color pattern from an object, including namesTruthPlotrenders a truth value plot, with grayscale and color options- Add a new
XYPlotsdemo illustratingTruthPlotvariants
Bug fixes
- Update the screen in
ShowwhenPictis set - Fix crash in
Date+when adding invalid dates - Correctly update the
UserModeMenuand annunciator when changing User mode - The
STOoperation now works sensibly on flags - Fixed a rare on-startup crash running tests in the debugger
- Invalidate the font cache when changing settings (notably
FixedWidthDigits) - Fix transient
Inputvalidation errors after text-editor errors - Remove two extra parentheses in the documentation for settings
Improvements
- Transient Alpha now preserves existing Alpha / Lowercase mode
- Remove dependency on external
crc32utility, now use a local implementation - Remove dependency on
tac, replace it withtail -r - Rendered graphics are now preserved in case of auto-power-off
- Avoid transient build errors on missing help directory
- Add documentation for
ResetModesand usage example forModes - Negative dates now show as
BCinstead of with a minus sign
Release 0.9.12 "Alive" - Return to active duty
This release focuses on simulator improvements, bug fixes, and enhanced mathematical functionality, marking a return to active development and maintenance after the hiatus caused by Christophe de Dinechin's move.
New features
- Enhanced trigonometric functions with exact angle reduction when possible
- Improved simulator graphics by smoothing the output when rescaling
Bug fixes
- Compute Julian day number conversion with negative Gregorian years
- Fixed crash in
lgammafunction on DM32 / DM42n platforms - Fixed undefined symbol issue in WASM builds
- Fixed platform-specific compilation errors on Android
- Fixed incorrect simplification for
sqrtfunction - Fixed display of checksum in the
Infobox - Fixed hang when reading CSV files containing unit objects
- Do not reorder mean and standard deviation parts in uncertain numbers
- Avoid possible null-dereference in several statistical functions
Improvements
- The simulator now preserves a fixed aspect ratio while resizing
- The simulator now builds cleanly on Qt5
- Added 2 new tests for Julian day number conversion
- Updated copyright year in About message
- Improved description of "Julian day number" commands in documentation
- Improved build system to select qmake6 on Arch Linux
- Show
→Numspelling in compatibility mode - Updated AUTHORS list
- Remove documentation for newRPL commands UDEFINE and UPURGE
- Improve implementation status section of the documentation
Release 0.9.11 "Prayer" - Uncertain numbers
This release implements arithmetic and basic functions on uncertain numbers.
This propagates uncertainty using quadradic superposition, in a way similar to OpenRPNCalc, with a generalization for correlated variables.
New features
- Arithmetic and basic functions on uncertain numbers
- Add support for complex-valued unit objects, e.g.
5+3ⅈ Ω - Add support for range-valued unit objects, e.g.
1…3 Ω - Support arithmetic operation on infinities, e.g.
∞ 42 + - Add commands to generate mathematical constants (π, ℮, ∞ and −∞)
- Parsing and editing of ranges containing infinities
- Accept infinities in
→Rangeand variants - Comparison of infinite values and finite values
- Add union and intersection commands for ranges
- Add operations to build ranges and uncertain numbers from components
- Add derivative for
erfanderfc
Bug fixes
- Do not leave bad expressions behind after errors on ranges
- Obey the
InfinityErrorflag when detecting divide-by-zero in ranges - Avoid crash pushing null pointer after unit evaluation error
- Avoid spurious inconsistent units error due to date computations
- Null-protection in variadic
list::make, fixes null-deref crash
Improvements
- Accelerate error exit from arithmetic operations
- Render uncertain numbers as
110±σ15instead of110±15σ - Accept
−as valid input in constants (for−∞) - Record performance data for iPhone 16
- Change spelling to
→σRangeinRangeMenu - Use
ASSERTfor divide by zero inner checks (remove dead code)
Release 0.9.10 "Best" - Ranges and documentation
This release is primarily a refinement of ranges and a documentation update.
New features
- Always display infinity ranges with range notation
- Add constant for
-∞ - Add support for ranges in
Explode/Obj→ - Add support for delta and percent ranges in
ToDecimal - Allow
Copyto target a local variable or setting - Support
TrueandFalsein→Num
Bug fixes
- Replace
logwithln, makelogbe base-10 logarithm - Check zero-divide in ranges
- Fix the implementation of trig functions for ranges
- Fix incorrect command associated to the
%Talias (should be%Total) - Adjust help for
log10andln - Avoid pushing a null pointer on the stack on error evaluating constants
- Add missing
Ⓒsign in uncertainty forEpl - Fix constant evaluation referencing
thisafter it may have moved - Report missing current directory in
Purge - Report errors when purging invalid objects in
PurgeandPurgeAll - Avoid
ClearThingsMenuin tests, the key maps to forward delete in editor
Improvements
- keyboard: Update layout to include
σcharacter - Remove the
state/Test.48Sfile, it's not longer relevant - Add
constantcase toobject::is_negative - Add
DATE-as an alias forDDAYS - Add
PgAllas an alias forPurgeAll - More systematic purging of environment and variables between tests
- Add check in test suite that we actually purged special variables
- Refresh authors list
- Move documentation for
PPARtoplot.md - Avoid date conversions during constant evaluation
- Accelerate and improve the display of constant values in menus
- Add
launch.jsonandtasks.jsonbuild configuration generated by Cursor - Send a
START_TESTcommand at start of test, refresh simulated battery - Cursor-assisted review of missing command documentation
- Cursor-assisted generation of content in the Quickstart guide
- Cursor-assisted improvements to grammar and spelling
- Documentation and examples for
Blankvariants - Documentation and examples for
GrayandRGB - Documentation and examples for
PMIN,PMAX,XRNG,YRNG - Documentation and examples for
Eqand equations - Add examples for list sum, product and difference commands
Release 0.9.9 "Headrest" - Ranges
This release introduces four range types to perform computations on ranges, and fixes serious graphical regressions that remained undetected by the test suite.
New features
- Three range types, known as interval (
1…3), delta range (2±1) and percent range (2±50%), for which arithmetic and most operations have been implemented. - An uncertain type (
2±3σ), for which arithmetic and operations are not implemented yet. - A new flag,
ShowAsDecimal, presents integers and fractions using a decimal format. This is useful for people working in banking, who can use2 FIXmode for all values. In that mode,50will display as50.00, and3/4will display as0.75. TheShowcommand still shows the original value. - The simulator now strips CR/LF when pasting on Windows.
- The
^operator now operates on arrays
Bug fixes
- The image comparison code has been broken since January. As a result, various regression regarding graphical output remained undetected.
- One particular case is the generation of incorrect BMP files after the default format for graphic objects was switched to
bitmap. - A possible crash was eliminated when converting a number to integer, to fraction or to decimal.
Improvements
- The
σ(used for uncertain numbers) replacesρ(unused at the moment) on the keyboard in alpha mode.
Release 0.9.8 "Crowdfeeding" - Bug fixes
This is a minor release with bug fixes.
Bug fixes
- isolate: Fix patterns for exponentials and logs
- doc: Fix list of currently supported models
- derivation: Allow simplification when matching against constant
- solver: Do not emit type error when guesses are constants
- expressions: Correctly substitute names in list substitutions
- menu: Fix label for
ConstantsMenuinMainMenu
Improvements
The INSTALL.md file now describes the installation procedure.