Skip to content

Release 0.7.4 "Flesh" - Polishing and refinements

Pre-release
Pre-release

Choose a tag to compare

@c3d c3d released this 14 Apr 15:01

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 sum and product functions
  • functions: Add combinations and permutations
  • functions: Implement number rounding operations (rnd and trnc)
  • graph: Add graphical rendering for cbrt (cube root) and xroot
  • graph: Graphical rendering of combinations, permutations
  • graph: Graphical rendering of sum and product
  • graphics: Add pixon, pixoff and pix? commands
  • graphics: Store and recall BMP files with sto and rcl
  • graphics: ToGrob command converting object to graphic
  • logical: Add SetBit, ClearBit and FlipBit commands
  • memory: Implement the Clone (NewOb) function
  • menus: Add log2 and exp2 to ExpLogMenu
  • menus: Place ListMenu as 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 Increment and Decrement

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 printf respects 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 Walk demo
  • 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 .tgz file
  • 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 SelfInsert with \t
  • ui: Ignore EXIT, BSP and ENTER keys when clearing error

New Contributors

Full Changelog: v0.7.3...v0.7.4