Plus42 History

Home > Plus42 > History
2023-08-17: release 1.0.21

* Added string and list functions to the equation language. The new functions
  have been added to the FLAGS menu and CATALOG->FCN in the equation editor.
  List literals have the format {A:B:C}. List elements may be any type,
  including lists or matrices.
* Equations: Fixed stack access within matrix literals.
* Fixed LASTX option in the equation editor's stack menu (R↓ key).
* Fixed Y^X with units where X is a negative reciprocal.
* →LIST and LIST→ didn't print in TRACE mode. Fixed.

2023-08-11: release 1.0.20

* Added 1LINE and NLINE functions, to select 1-line or n-line mode. 1-line mode
  forces matrices and lists to be displayed in compact format, even if the
  display has more than 2 lines; n-line mode is the multi-line matrix and list
  display that was introduced in 1.0.17. The latter remains the default.
* INPUT would crash if R/S was pressed while the stack was empty, in NSTK mode.
* ANUM would consider a decimal point or comma by itself as zero, instead of
  ignoring it. Fixed.
* Added UNIT? to the UNIT.FCN menu.
* If an error occurs while evaluating an equation, which does not exist in the
  EQN list, going to EQN mode and pressing R/S will now add the equation to the
  EQN list, and then start editing with the cursor on the site of the error.
  This used to work only for equations that were in the EQN list beforehand.
* Added LASTX for equations, to work alongside REGX/REGY/REGZ/REGT, for
  read-only access to the RPN stack.
* EDIT, EDITN, and INDEX didn't clear flags 76 and 77 (matrix edge wrap and end
  wrap), while they should. Fixed.
* Decimal version: In HMS+ and HMS-, fixed handling of cases where either or
  both of the arguments has a number of minutes or seconds >= 60. (The binary
  version did not have this bug.)
* Binary version: max digits for SHOW increased to 17. This was necessary
  because 16 digits was actually never enough to begin with. For example, 5 1/X
  and 5 SQRT X^2 1/X both returned a result that looked like 0.2 in SHOW, even
  though they are different, as can be easily verified with X=Y? or by
  subtracting them. It takes 17 decimal digits to ensure that different binary
  numbers will always be rendered as different decimal numbers.

2023-05-05: release 1.0.19

* Fixed the definition of the 'ton' unit (U.S. short ton). It was 10^10 times
  too large, due to a missing sign in the units definition table.
* Equations like [1:2:3]=A, when entered without a name, weren't parsed
  correctly, because the part before the first colon would be incorrectly
  interpreted as a name. Fixed.
* When an error occurs while evaluating an equation, and that equation exists
  in the EQN list, pressing R/S in the EQN list view will now start editing
  that equation, with the cursor on the part of the equation where the error

2023-04-17: release 1.0.18

* Fixed crash when loading state, when the current program is an equation that
  is only referenced by SOLVE/INTEG internal variables.
* Changed Σ+/Σ- so that, in NSTK mode, they will accept a single real argument,
  assuming Y=0 in that case.
* Added STOP() function for equation debugging.
* In the equation editor, the named-equation catalog could select items from
  the wrong row.
* Fixed handling of LCLV of indexed matrix. It used to leave any pushed indexed
  matrix in limbo until RTN. With this change, the pushed indexed matrix is
  popped immediately.
* Tuned TONE frequencies to A440 scale.

2023-04-10: release 1.0.17a (iOS and MacOS)

* Copy in PRGM mode was dropping line 01, because of an optimizer bug in the
  latest compiler. Reduced optimization level from -Os to -O1 to work around
  this problem.

2023-04-05: release 1.0.17

* Matrices and lists in the X register are now shown in full, or as much of
  them as will fit anyway, when the display size is set to more than 2 rows.
* SOLVE in PLOT now provides more informative feedback for Extremum, Sign
  Reversal, and results from the direct solver.
* Fixed crash in RTNERR when switching back to NSTK mode after FUNC/L4STK.
* Fixed ASSIGN "" in programs.
* Added PRREG to the PRINT menu.
* NN→S now ignores the display mode and always acts like ALL mode is active.
  The idea being that if you care about the display mode, you'll probably be
  using N→S, and you only need NN→S if you specifically want to see full
  internal precision.

2023-03-17: release 1.0.16

* EDIT, EDITN, and INDEX now support lists, acting like they are 1-column
  matrices. (Empty lists are not supported, they must have at least one
  element. This limitation will be removed in a future release. Note that you
  can create a new 1-element list by simply doing NEWLIST 0 +.)
  This includes STOIJ, RCLIJ, STOEL, RCLEL, I+, I-, J+, J-, ←, ↑, ↓, →, INSR,
  DELR, and DIM.
* Equation editor: now inserts spaces around logical AND, OR, XOR, and NOT.
* Added PRREG. Because PRV "REGS" is not a good substitute.
* Added NN→S. This works like N→S (convert number to string on the stack), but
  without the 12-digit mantissa length limit, so you get full precision in ALL
* Fixed stack lift handling in DELR and STOFLAG.
* Fixed pasting 1/X, 10^X, and 4STK, when pasted without line number and with
  trailing space.
* PRP and LIST in TRACE mode now print line numbers for all lines that are
  targets of GTOL or XEQL, like it already did for LBL lines.
* Fixed pasting of GTOL and XEQL.

2022-12-14: release 1.0.15

* Fixed a couple of bugs in Paste of scalars in BINM, OCTM, and HEXM modes.
* Fixed pasting of U+22A2 and U+22A6 ('append' characters used by i41CX and
  Emu42) and U+00B7 ('bullet' character used by Emu42).

2022-11-19: release 1.0.14

* Added support for new SI prefixes: R (ronna, 10^27), Q (quetta, 10^30), r
  (ronto, 10^-27), and q (quecto, 10^-30).

2022-11-12: release 1.0.13

* Fixed crash with one-arg RADIUS, ANGLE, XCOORD, and YCOORD.

2022-10-27: release 1.0.12

* SOLVE does a better job of reporting Sign Reversal when a function changes
  sign around a vertical asymptote, instead of reporting it as a root.
* When returning to the equation editor after a parse error, the text could be
  positioned incorrectly on the screen, and the editor could even crash, in
  some cases. Fixed.
* Added Boolean operators to the equation editor's PGM.FCN menu.
* Made I%YR solver a bit more robust.
* BASE: complex numbers and numbers with units were being copied or shown in
  non-decimal bases in some cases.
* Better HEXM and OCTM handling in SHOW.
* Fixed number entry in PRGM mode when BINM/OCTM/HEXM active.
* No longer setting flag 22 if number entry ends with DROP in NSTK mode.
* →PAR now produces more helpful output in TRACE mode.
* Windows, Mac, and Linux versions: added Alt-1 through Alt-6 as mappings for
  the second row of the keyboard.

2022-10-01: release 1.0.11

* Fixed crash in SHOW for certain complex numbers.
* Added A...F function. This allows programs to turn on HEXM mode with the
  A...F menu activated.
* Added UBASE and UVAL to the equation parser.
* PLOT: Fixed coordinate rounding at the top of the display.
* Raised precedence of _ operator, so expressions like 40000_"km"/1_"d" can now
  be written without parentheses.
* The direct solver now converts the solution to match the units of the
  previous value of the variable being solved for, if it existed already and
  had compatible units. In all other cases, the variable is overwritten, as
* iOS version: Added Calculator / Print-Out swipe direction configuration
  option to Preferences.
* Android, iOS, and MacOS ARM versions: Fixed incorrect Out of Range error
  returned by BASE functions in certain cases, e.g. BRESET 64 WSIZE 1 ENTER

2022-08-13: release 1.0.10

* Fixed crash in PARSE when parsing ITEM().
* Fixed (re,im) complex pasting. This was broken by localized copy & paste.
* Special cases for pure real and pure imaginary in SQRT.

2022-06-19: release 1.0.9

* SGN() didn't evaluate its parameter, and instead consumed the value from
  level 1. Fixed.
  Note that this was a code generator bug; any expressions containing SGN()
  will have to be re-parsed in order to eliminate the effects of this bug.
* SOLVE in PLOT, when used with a function with X:<STK>, would create an
  extraneous variable named "". Fixed.

2022-06-18: release 1.0.8

* I%YR iteration robustness improvements.
* Localized Copy & Paste.
* Fixed handling of invalid number keys in BASE.
* Setting AMORT->TABLE parameters to 1 initially.
* Fixed #P parameter check so it doesn't allow 0.
* iOS and MacOS versions: Fixed skin rendering for iOS 16 and MacOS 13.

2022-06-11: release 1.0.7

* Fixed crash in variable catalog.
* I%YR robustness improvements.

2022-06-08: release 1.0.6

* Fixed I%YR when PMT=0 (broken in 1.0.5)

2022-06-08: release 1.0.5

* TVM: PMT returned incorrect results in BEGIN mode. Fixed.
* TVM: In some cases, I%YR could return inaccurate results because of poor
  starting guesses for the iteration. Fixed.
* More accurate complex ACOS and ACOSH.
* Android version: Now removes itself from the task list if exited using OFF.

2022-05-17: release 1.0.4

* TVM: Fixed error checks in N.

2022-05-13: release 1.0.3

* SOLVE now handles functions that are always positive or always negative a bit
  better, reporting Extremum when the iteration appears to be bouncing around
  without improving, instead of continuing indefinitely.
* PLOT now detects <Not a Number> in XMIN/XMAX/YMIN/YMAX and reports Invalid
  Data, instead of freezing.

2022-05-09: release 1.0.2

* Added code to prevent freeze in PLOT under certain circumstances.

2022-05-09: release 1.0.1a (Android only)

* Fix for crash on startup with Android versions before 4.3.

2022-05-05: release 1.0.1

* DIM "X", when X existed but was not a matrix, would cause a crash. Fixed.
* Equations: NOT was broken, not recognized as Boolean operator. Fixed.
* Equations: Added TYPE? and UNIT? functions.

2022-05-05: release 1.0a (Windows and Linux)

* More efficient display updating, so long-running programs that update the
  display a lot don't waste a lot of CPU time repainting the display faster
  than the human eye can see, and spend more time actually running the program
  instead. Note that this update is for Windows and Linux only, because the
  Android, iOS, and MacOS versions already worked this way.

2022-04-27: release 1.0

* Based on Free42 3.0.11, with the addition of: a larger and resizable display,
  algebraic equations, attached units, directories, time value of money and
  amortization schedules, and function plotting.

Go to Plus42 home page