Skip to content

Releases: c3d/db48x

Release 0.7.5 "Perfect Joy" - Polynomials and symbolic rewrites

04 May 21:43
@c3d c3d
Compare
Choose a tag to compare

This release contains a lot of groundwork in preparation for future work on symbolic expressions, symbolic solving and symbolic integration, as well as to improve compatibility with HP calculators. In particular, rewrite has been replaced with the HP equivalents, ↑Match and ↓Match, allowing top-down and bottom-up replacement, as well as support for conditions. Also, these commands return the number of replacements performed instead of just 0 or 1.

The other major user-visible new feature is the addition of a polynomials data type, which does not exist on HP calculators, exposing polynomial features in a way that is more consistent with the spirit of RPL. For example, Euclidean division of polynomials can be achieved using the regular / operation on polynomials instead of requiring a dedicated DIV2 command.

New features

  • Support for polynomials as a data type, including Euclidean division
  • Arithmetic operations on polynomials, including sq and cubed
  • Conversion functions →Poly and Poly→ to convert to and from polynomials
  • Optional case-sensitive symbol matching
  • Algebra configuration directory (like CASDIR on HP calculators)
  • rewrites: Replace rewrite command with HP-compatible ↑Match and ↓Match
  • rewrites: Add ExplicitWildcards option to match HP syntax (&A)
  • rewrites: Add rules to expand powers
  • rewrites: Add support for conditions when matching patterns
  • rewrites: Add support for step-by-step rewrites
  • rewrites: Add support for bottom-up rewrites
  • flags: Purge now resets system flags to default value

Bug fixes

  • editor: Fix unresponsive keys after using EXIT key while searching
  • complex: Avoid emitting syntax errors while parsing
  • rewrites: Avoid potential garbage collection corruption problem
  • rewrites: Disable auto-simplification during rewrites
  • rewrites: Factor out rewrite loop
  • expressions: Encode expressions with type ID >= 128 correctly
  • arithmetic: Add space around mod and rem in rendering
  • graph: Do not add parentheses for X*(Y/Z)
  • functions: Make percentage operations binary functions
  • functions: Turn min and max into algebraic functions
  • cycle: For expressions, cycle graphic/text rendering correctly
  • menus: Replace EquationsMenu with ExpressionMenu in other menus
  • ui: Insert space when inserting array inside function

Improvements

  • menus: Updates to PolynomialMenu to enter polynomials and for conversions
  • menus: Add product and sum to symbolic and algebra menus
  • menus: Make ToolsMenu select SymbolicMenu for symbols
  • expressions: Reorganize the code for rewrites
  • rewrites: Add recorders for rewrites that are actually done
  • tests: Some adjustments on color images
  • rewrites: Convert algebraics into expression as needed
  • complex: Parse 3i and i3 in addition to i
  • tests: Add support for more characters
  • simulator: Separator color and dm32 support
  • graph: Add space when rendering simple function
  • keyboard: Updated SVG files with latest menu labeling changes

Release 0.7.4 "Flesh" - Polishing and refinements

14 Apr 15:01
@c3d c3d
Compare
Choose a tag to compare

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

Release 0.7.3 "Perfume" - Mostly bug fixes

24 Mar 23:58
@c3d c3d
Compare
Choose a tag to compare

This release is mostly about bug fixes, improving the build on simulator, and accelerating the test suite while keeping it stable.

New features

  • simulator: Add F8 key to save state in the simulator
  • errors: Add a beep when an error is shown
  • linux: Add -s option for screen scaling (when Qt gets scaling wrong)
  • equations: Get library equation value for plotter, solver and integrator
  • characters: Add constant, equation and lib markers to RPL menu
  • characters: Add music-related characters and character menu
  • commands: Add missing stack commands (nip, pick3, ndupn, unrot, unpick)

Bug fixes

  • variables: Clone purged objects on stack after Purge
  • units: unit * symbolic is preserved as is (e.g. 'A'_m)
  • compare: Enforce the NumericalResults flag for comparisons
  • constants: Fix parsing of constants, equations and library items
  • sto: Repair file exists error storing to a source file
  • simulator: Do not try to create directory if it exists
  • Report file errors, e.g. permissions or I/O errors
  • equations: Mark c and R as constants in equations
  • simulator: Double clicks are now considered as virtual keyboard touches
  • ui: Emit only one beep, not two, for a syntax error on the command line
  • ui: Avoid rare null-dereference crash when menu label is not set
  • complex: Report a syntax error if the second half is empty
  • utf8: Do not accept constant/equation/library codepoint in names
  • units: Multiplying by 1_m is OK even with algebraic
  • tests: Avoid case where CLEAR does not clear errors
  • audio: Improve audio reliability on the simulator
  • linux: Rewrite the audio-generation code to avoid crashes
  • linux: Avoid infinite recursion in the tests
  • linux: Fix warnings about unused variables
  • linux: Avoid warnings about null pointer in strcmp
  • linux: Avoid build error due to bad ularge overload in settings
  • linux: Fix type issue for the Insert function (reported as a warning)
  • linux: Remove warning about mixing enums and integers
  • linux: Avoid error on printf format
  • linux: Avoid warnings about type qualifiers
  • linux: Remove warnings about incompatible function casts
  • linux: Address warnings about missing initializers
  • linux: Fix warning about prinf formats
  • linux: Address warning about signed vs unsigned
  • linux: Remove warning about fall-through switch statement
  • linux: Remove warnings about unused arguments
  • tests: Repair several tests that were unstable due to scrolling images
  • tests: Increase memory size to avoid occasional out of memory failures
  • object: Make as_uint32 and as_uint64 consistent for negative input

Improvements

  • ui: Emulate HP48/HP50G behavior for errors (do not require key to continue)
  • simulator: Add I/O wrapper around file state save/restore
  • dmcp: Remove double return in the code
  • simulator: Accept numeric keys in DMCP menus
  • doc: Add Kjell Christenson to list of authors
  • tests: Run command-line tests silently
  • tests: Clear settings the fast way for quick tests
  • dmcp: Do not treat the buzzer as a recorder error (avoid message noise)
  • simulator: Ensure error messages show up in a recorder dump
  • tests: Increase memory size to avoid failing tests
  • tests: Increase delay waiting for function plots to appear
  • tests: Refactor test suite interaction with RPL thread to accelerate it
  • tests: Add a delay before launching the test thread to load initial state
  • tests: Add missing reference picture for char-menu

Release 0.7.2 "Light" - Libraries, Characters menu

12 Mar 07:22
@c3d c3d
Compare
Choose a tag to compare

This release introduces four relatively significant features:

  1. An Equation Library
  2. A more general Library
  3. Character menus
  4. A character modification catalog

There are also a number of bug fixes and improvements.

Features

  • The Equation Library is similar in principle to what is found in the HP50G. It is intended to store equations covering a variety of topics. The Equation Library is accessible using the EQS key (🟦 '()'). It is presently only very sparsely populated, but a future release should add the equations listed in Chapter 5 of the HP50G Advanced User's Reference Manual. Elements of the Equation Library appear as named Equation Objects. The Equation Library is configured by file config/equations.csv.

  • The Library is similar to the Equation Library, but for all kinds of objects such as programs or code snippets. The Library is accessible using the LIB key (🟦 VAR). It can be used to customize your calculator, and is intended to play the roles of the CST variable (quick access to common features) and Library Objects / XLIB (external extensions to RPL). Elements of the Library appear as named Library Objects. The Library is configured by file config/library.csv.

  • The Characters Menu lets you enter Unicode characters easily, by presenting various classes of characters, such as RPL, Greek or Punct. The Characters Menus is accessible using the CHAR key (🟦 2). It can be used to enter international characters (e.g. Greek or Cyrillic), as well as special characters such as arrows or blocks. The Characters Menu is configured by file config/characters.csv.

  • The Characters Catalog appears when the Catalog is active and the cursor is inside some text object. It gives you access to characters that are visually close to the character on the left of the cursor. For example, after typing A, the presented choices include À, a or α. The Characters Catalog is configured by file config/characters.csv.

  • compare: Add comparisons for true and false values

  • Add TEVAL command (timed evaluation)

Bug fixes

  • Do not add unnecessary parentheses in ratios, e.g. (A+B)/(X-Y)
  • Make sure we can save back the configuration files correctly
  • Improve access path checks to accept config:constants.csv.
  • Avoid syntax error in 1/(1+x) due to 1/ being seen as a fraction
  • unitfile: Remove slight risk of bad menu display after garbage collection
  • date/time: Make sure we save the stack and last args for Date, Time, ...
  • parser: Skip spacing when parsing numbers (to parse back →Text result)
  • time: Fix rendering of DMS time in lists, matrices, vectors
  • catalog: Fix a subtle bug on DM32 leading to a crash using the catalog

Improvements

  • constants: Get values of special π and e by name
  • constants: Add prefix in editor to identify constants, equations and xlib
  • constants: Represent constants with an index for memory and performance
  • constants: Parse units containing text
  • constants: Allow RCL to recall a constant value
  • units: Direct insertion of units after numbers
  • menu: Update Roll and RollDown menu entries
  • show: Show all decimals for decimal values
  • help: Display the correct on-line help topic for constants
  • catalog: Use less memory for the sorted IDs
  • integrate: Use numerical computations for faster convergence
  • locals: Improve error message for bad locals
  • graph: Improve graphical rendering of constants (bold) and equations
  • graph: Do not add unnecessary parentheses in ratios
  • tests: Add tests for characters menu/catalog
  • tests: Fix the . vs 0. test
  • ui: Do not enter DMS inside text
  • tests: Display disabled tests in gray
  • catalog: Keep a single spelling, e.g. no add duplicates
  • tests: Add extra delay in the wait for update
  • makefile: Add dependency of 'all' to the decimal constants
  • save: Improve rendering control when saving files
  • stack: Do not save stack in plot, integration or solver
  • debug: Disable debugging when launching a program from function key
  • simulator: Avoid piling up QT draw requests
  • doc: Update performance numbers for 1M loops
  • simulator: Add sound support
  • simulator: Lazy screen refresh
  • dmcp: Add UI refresh callback
  • simulator: Move QT-dependent code out of dmcp.cpp
  • Add reduced font
  • runtime: Various changes to isolate QT build from the rest

Release 0.7.1 "Whip" - Bug fixes

04 Mar 00:40
@c3d c3d
Compare
Choose a tag to compare
Pre-release

Inserting variables, constants or units in a program was broken!
Also a few less critical fixes.

Bug fixes

  • decimal: Apply MinimumSignificantDigits to Sig modes
  • tests: Fix missing ] at end of vector
  • ui: Insert commands for unit conversions, constants and variables
  • tests: Adjust help screen snapshot for authors
  • menus: Do not clip text for hierarchical menus
  • constants: Do not use units that don't parse correctly
  • dmcp: Day of week convention adjustment
  • help: Fix YouTube video preview

Full Changelog: v0.7.0...v0.7.1

Release 0.7.0 "Temple" - Graphics Equation Rendering

02 Mar 14:42
@c3d c3d
Compare
Choose a tag to compare

This release introduces a few major improvements, including graphical rendering of equations and matrices, the Show command to display large objects full-screen, customizable constants, and date-related operations.

New features

  • Graphical rendering of equations, fractions, matrices, vectors and lists. In graphical rendering mode, variables are showin in italics.
  • Constants in the ConstantsMenu, split into categories, and loading from an optional config/constants.csv file, in a way similar to what existed for units.
  • Inverse trigonometric functions (asin, acos and atan) now produce unit objects with the current angle mode as a unit. This can be configured by the SetAngleUnits / NoAngleUnits flags.
  • Cycle (EEX key) now cycles between angle units.
  • R→D and D→R commands to convert between degree and radian in a purely numerical way (no unit). This is for compatibility with HP.
  • Add →Deg, →Rad, →Grad, →πr commands, which convert a number to the target unit using current angle mode, and convert an angle to the target angle unit.
  • Conversion from DMS to HMS and from HMS to DMS
  • Rendering of dates: 19681205_date renders as Fri 5/Dec/1968, with a format configuration using the same flags as for the header. Note that the date format is YYYYMMDD, not the same as on HP calculators. This allows YYYYMMDD.hhmmss for dates with time.
  • Date and Time command to return the current date and time. Additionally, DateTime returns both date and time, and ChronoTime returns the time with 1/100s precision.
  • →Date and →Time commands to set the system date and time
  • Date+, DDays and date arithmetic using + or -, using day units for the results. As an extension relative to HP calculators, these will accept fractional days, or other time units. For example, adding 1000000_s to 19681205_date generates a date with time result, Tue 16/Dec/1968, 13:46:40
  • JulianDayNumber and DateFromJulianDayNumber commands to convert between dates and Julian day numbers. These commands also accept fractional input.
  • Show command showing a full-screen graphical rendering of the result on the stack. The resut is size-adjusted. For example, you can display all digits in 200!. If the result does not fit on the screen, you can scroll using the ◀︎ and ▶︎, as well as 8, 6, 4 and 2. The maximum pixel size for Show is set by MaxW (default is the width of the LCD), the maximum height is set by MaxH (default is 2048 pixels).
  • AutoScaleStack and NoAutoScaleStack settings to automatically adjust the font size for the stack elements.
  • Support for system flags -20 to -26 (infinite results, overflow and underflow).

Bug fixes

  • simulator: Adjust DMCP month off-by-one error
  • Repair insertion of while loops and similar commands on the command line
  • Use stack format when drawing an object with DrawText (DISP)
  • Arithmetic on unit objects no longer auto-simplifies, e.g. 1_s 1_s - returns 0_s and not 0.
  • Perform computations for →Q using integer values, which avoids an issue where increasing the number of iterations with an unachievable precision could prodduce 1/1 as the fractional result.
  • Repair auto-simplification for i*i=-1
  • Display a negative mixed fraction as -1 1/3 and not 1 -1/3.
  • Do not insert () after a multiplication in algebraic mode
  • Accept units and tagged objects in PolarToReal and RealToPolar
  • Accept angle units as input for →DMS
  • Off-by-one clipping error in header, erasing the shift annunciator
  • Fix help for FC? (incorrectly stating that it tested for flat set)
  • Lookup units and constants in a case sensitive way
  • Fix labels for ExpFit and LinFit in RegressionMenu.

Improvements

  • tests: Adjust tests to match bugs fixed in v0.6.5
  • dms: Accept entering minutes without third dot, e.g. 1.2.3 ENTER
  • menus: Split the Time, Date and Alarm menus
  • Split rendered objects at space boundaries. This notably ensures that large numbers are split at digit grouping boundaries, and makes it possible to display larger programs on the stack. The rendering of programs and matrices/vectors/lists has also been fine-tuned.
  • The "white circle" glyph has a thicker border, makes it more readable in menus.
  • doc: Update the list of unimplemented features
  • menus: Draw a white circle for disabled flags, and allow the menu function to toggle the flag. This made it possible to reduce the number of menu entries for flag-heavy menus.
  • Mixed fractions are now the default, as opposed to improper fractions
  • doc: Improve the quickstart guide
  • doc: Improve the documentation for sin, cos and tan
  • tests: Make it possible to interrupt a running test
  • help: Skip HTML tags, e.g.
  • simulator: Add screenshot capability, and reduce window height
  • menus: ToolsMenu selects time, date or angle menu based on units

Full Changelog: v0.6.5...v0.7.0

Release 0.6.5 "Testimony": Small bug fixes

11 Feb 23:20
@c3d c3d
Compare
Choose a tag to compare

This release does not contain much because FOSDEM took a lot of energy.

New features

  • menu: Connect ceil and floor functions
  • Add real to polar conversions
  • units: Add dms unit to angles menu

Bug fixes

  • decimal: Compute ln(0.002) correctly
  • integer: Do not parse degree sign if in a complex
  • units: Fix parsing of angle units
  • font: Add radian glyph

Full Changelog: v0.6.4...v0.6.5

Release 0.6.4 "Healing": Testing and fixes

05 Feb 00:28
@c3d c3d
Compare
Choose a tag to compare

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

Full Changelog: v0.6.3...v0.6.4

Release 0.6.3 "Come and See": Repair test suite

21 Jan 23:32
@c3d c3d
Compare
Choose a tag to compare

The focus of this release was to reactivate the test suite and fix the problems that were found activating it.

Recording of a full run of the test suite

New features:

  • HMS and DMS operations
  • unit: Rendering of dms and hms units
  • Allow · as a multiplication sign in equations
  • ui: Display 'E' cursor inside parentheses
  • graphics: Accept based integers as position for DrawText
  • complex: Add setting to switch between 2+3i and 2+i3.

Bug fixes:

  • decimal: Fix precision loss for addition with carry
  • Base: limit range of bases to 2-36
  • files: Do not add a trailing zero when reading a text file
  • decimal: Adjust MinimumSignificantDigits behaviour
  • units: Do not auto-simplify 1.0 during conversion
  • decimal: Normalize parsed numbers
  • solver: Fix sign error in epsilon exponent for solve/integrate
  • parser: Accept x! as input
  • simulator: Avoid faulty break-through in switch statement
  • complex: Make tag higher-priority than complex
  • editor: Adjust cursor and select correctly during replace
  • decimal: Fix display of 0.2 in NoTrailingDecimal mode
  • complex: Save this in a GC pointer when it can move
  • arithmetic: Do not fail because of surrounding error
  • decimal: Clamp int32 conversions from decimal
  • commands: Parse exp10 correctly in expressions
  • decimal: Avoid infinite loop computing expm1
  • ids: Do not allow parsing of structures
  • dmcp: Make sure the tests don't block on wait_for_key
  • decimal: Use correct angle unit for negative gamma values

Improvements:

  • settings: Add classes that save/restore a given setting
  • Add XSHIFT to shift to XSHIFT state directly
  • Add NOSHIFT constant to simplify test writing
  • ui: Add a variant of close_editor without trailing zero
  • decimal: Cache gamma_ck values (accelerate gamma and lgamma)
  • Replace magic constant -1 with EXIT_PGM
  • doc: Record performance data for 1000 iterations of SumTest
  • decimal: Add tracing for gamma / lgamma function

New tests:

  • Add tests for arithmetic truncation on short bitsizes
  • Add tests for on-line help
  • Add test for plotting flags
  • Add test for Unicode to text conversions
  • Add test for rectangular complex display options
  • Add tests for plot scaling functions
  • Add tests for the sorting functions
  • Add test for parsing text with quotes inside
  • Add test for file-based STO and RCL
  • Add test for 2^256 computation (buf #460)
  • Fix indentation of [PASS] or [FAIL] for UTF8 characters
  • Add tests for units and conversions
  • Add a keyboard test checking the single-colon insert in text
  • Add test for i*i=-1 auto-simplification
  • Add basic test for numerical integration
  • Add test for fraction formats
  • Add solver test
  • Add missing tests
  • Add test for immediate STO (#390)
  • Add tests for the Cycle command
  • Add test for catalog feature
  • Add test for "smart" keyboard shortcuts introduced in 0.4.6
  • Add regression test for #371
  • Add tests for editor operations
  • Test stack operations
  • Add test for GXor, GOr and GAnd
  • Add test for ResetModes
  • Add plotting test for every decimal function
  • Add image checking for graphical tests
  • Add tests for graphic and text drawing commands
  • Make it possible to individually run tests.
  • Add plotting tests
  • Add test parsing the various spellings for commands

Full Changelog: v0.6.1...v0.6.3

Release v0.6.2 "Kephas": Restoring the test suite

15 Jan 00:38
@c3d c3d
Compare
Choose a tag to compare

The focus of this release was to complete the transition to the variable-precision decimal code. The full regression test suite was restored, with only two tests still failing (complex asin and asinh). The two missing functions, Gamma and LogGamma, were implemented. This also exposed many bugs that were fixed.

New features:

  • NumberedVariables setting to allow 0 STO to ease RPN transcoding (#690)
  • ClearStack (CLEAR) command
  • Variable-precision gamma and lgamma functions (#710)

Bug fixes:

  • Do not leave bad expression on stack after error (#663)
  • Reject unit conversion between undefined units (#664)
  • Accept names of menus on the command line (#669)
  • tests: CLEAR clears stack and errors (#672)
  • The : characters now starts a tag on empty command line (#673)
  • Do not evaluate tagged objects too early (#674)
  • test: Entry and editing of equations (#677)
  • test: type returns negative values in "detailed" mode (#678)
  • Run loop end pointer not GC-adjusted for last allocated object (#679)
  • Do not erase alpha indicator when clearing busy cursor (#680)
  • Do not emit trailing space when rounding 1.999 to 2. (#687)
  • Allow expression rewrites to deal with pow (#694)
  • Reject « character in symbols and commands (#695)
  • Rendering of spacing for decimal numbers (#699)
  • Improve precision of atan function
  • Rendering of + and - operators in compatibility modes (#700)
  • Rounding of decimal numbers no longer generates bad characters (#702)
  • No longer error out rendering symbolic complex (#703)
  • Parse complex numbers correctly inside equations (#704)
  • Ensure sqrt(-1) has a zero real part (#705)
  • Do not drop last digit of decimal subtraction (#706)
  • Evaluate expressions during expression pattern matching (#708)
  • LastMenu executes immediately while editing (#711)
  • Add back missing angle glyphs in font (#712)
  • Return correct angle quadrant for atan2 (#715)
  • Get no longer rejects arrays as index values (#718)
  • Get returns correct error for bad argument types (#718)

Improvements:

  • Update .gitignore entry
  • Automated testing of setting flags (#657)
  • Automated testing of non-flag settings (#670)
  • Test fixed-base based numbers using HP-compatible lowercase notation (#675)
  • Test fraction rendering using fancy digits (#676)
  • Add test for "compatible" variant of type command (#678)
  • test: Recover from error during data entry (#681)
  • Increase default MaxNumberBits to 4096 (#686)
  • tests: Add test for cube root of -8 (#685)
  • tests: Data entry for Σ, and (#689)
  • Restrict STO to names, natural numbers and specific IDs (#688)
  • doc: Document flas file access for STO and RCL (#691)
  • list: Optimize iterators to avoid copies (#692)
  • tests: spacing-independent testing of structure rendering (#693)
  • tests: adjust test suite for variable-precision decimals (#696)
  • tests: Automatically exit if -T option is given (#697)
  • tests: Check we don't accept . as meaning 0. for RPL compatibility
  • Add modulus alias back for abs (#707)
  • Improve convergence speed and accuracy for logarithms
  • Add decimal::make to minimize risk of sign errors
  • Display stack level at top of stack level, not bottom (#709)
  • Improve complex sqrt accuracy on real axis (#714)
  • tests: Test decimal functions at full 34 digits precision (#716)
  • Complex sqrt and cbrt with full precision (#717)
  • tests: Take into account additional expression simplifications

Signed-off-by: Christophe de Dinechin [email protected]

Full Changelog: v0.6.0...v0.6.2