Release 0.7.4 "Flesh" - Polishing and refinements
Pre-release
Pre-release
This release is mostly about polishing various aspects of the implementation to make it more convenient and more efficient. It also adds user-defined functions parsing and evaluation, pixel-manipulation commands, bit operations on binary numbers, memory operations like sto+ or incr, loading and saving BMP files, color support in the simulator, and more.
New features
- editor: Implement configurable word wrapping
- expressions: Add code for n-ary functions like
sum - expressions: Parse user-function calls like
F(1;2;3;4) - expressions: Ensure funcall objects are evaluated immediately
- functions: Add
sumandproductfunctions - functions: Add combinations and permutations
- functions: Implement number rounding operations (
rndandtrnc) - graph: Add graphical rendering for
cbrt(cube root) andxroot - graph: Graphical rendering of combinations, permutations
- graph: Graphical rendering of sum and product
- graphics: Add
pixon,pixoffandpix?commands - graphics: Store and recall BMP files with
stoandrcl - graphics:
ToGrobcommand converting object to graphic - logical: Add
SetBit,ClearBitandFlipBitcommands - memory: Implement the
Clone(NewOb) function - menus: Add
log2andexp2toExpLogMenu - menus: Place
ListMenuas a keyboard-accesisble menu - parsing: Parse n-ary functions
- program: Add vertical program rendering mode
- stack: Display error message emitted during stack rendering
- ui: Add colorization parameters for the user interface
- ui: Add some colorization
- variables: Add
Sto+,Rcl+and other variable arithmetic - variables: Implement
IncrementandDecrement
Bug fixes
- decimal: Fix precision when computing gamma/lgamma
- decimal: Fix rounding bug when rounding increases exponent
- doc: Add missing dependencies on Fedora (submitted by @vkadlcik)
- files: Do not error when opening constants/equation/library files
- files: Open only one configuration file at a time
- graphics: Fix bug drawing a line of width 0
- graphics: Use foreground color for parenthese and ratio
- lists: Separate list sum/product from regular sum/product
- renderer: Make sure
printfrespects target buffer size - simulator: process double-clicks correctly (submitted by @kjellc)
- tests: Change the height of ignored header
Improvements
- command: Factor out arity for all commands
- constants: Report parse error location for invalid constants
- demo: Add HP-48 style slow walk to
Walkdemo - demo: Modernize the code a little
- demo: Modify performance benchmarks to use
TEval - demo: Replace imaginary unit constant
- doc: Remove reference to Intel Decimal Library
- files: Convert all file names to lowercase (Linux support)
- functions: Make it possible to interrupt a running sum/product
- graph: Improve rendering of
exp,exp2,exp10 - graphics: Separate color conversion step
- help: Do not display command name while editing
- ids: Make room for a few additional 1-byte commands
- locals: Document the absence of compiled local variables
- makefile: Add configuration files to the release
.tgzfile - parsing: Make the error message for sub-expressions more local
- readme: Remove reference to DM42 from top-level readme
- simulator: Avoid crash rendering %t in recorder
- simulator: Convert simulator code to support color
- simulator: Replicate open files limitations
- simulator: Separate db50x and db48x builds
- tests: Add colorized images to testing
- tests: Avoid occasional errors on some long-running tests
- ui: Define cursor position in
SelfInsertwith\t - ui: Ignore EXIT, BSP and ENTER keys when clearing error
New Contributors
Full Changelog: v0.7.3...v0.7.4