teapot-spreadsheet/NEWS
Glen Whitney 7b794f90b9 fix: Always compute cells without clocked expressions using current values (#91)
Prior to this change, when a cell was clocked, it was always computed with prior values of referred-to cells. This had the effect, for example, of making cells defined only with a base expression as a total of a column, for example, to be out-of-date in that they would take on the value of the total of the prior values of the column, not the total of new current values of the column. This behavior was very counterintuitive.

With this change, updates of cells that have no clocked expression are delayed until after clocked expressions have been recomputed based on prior values and their cells' current values have been updated. Then the computations of those base-only cells use all of the new current values, leaving the spreadsheet in a (maximally) self-consistent state.

Resolves #90.

Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Reviewed-on: #91
2023-04-30 16:19:12 +00:00

128 lines
5.4 KiB
Plaintext

This is development version 2.3.0devel of teapot (Table Editor And Planner, Or: Teapot),
a spread sheet program for UNIX.
The changes compared to 2.3.0 are:
o Added examples updating the life simulation to illustrate the color and
computed style features.
o You can compute the styles for cells, with an additional expression per cell.
o Computation of current values for cells without clocked expressions now
always depends on contemporaneous current values rather than prior values,
even when the sheet is clocked. This means, for example, an entry whose base
value is the sum of a column and which has no will always resolve to the
current sum of that column, even if the column contains clocked values.
(This is a breaking change in that prior to this modification, such a cell
when clocked would contain the sum of the prior values in that column.)
o New token types: style and bool.
o Comparison operators return bool rather than int (Note this can be a breaking
change; you may need to wrap comparisons in int() if you are using the result
in a numerical computation.)
o Foreground and background color style attributes for cells.
o Variable row height for cells.
o Addition of a find() macro to search for a cell satisfying a condition.
o Addition of an is(VALUE, TYPE, TYPE,...) predicate
o Addition of functions for unit displacements in the six cardinal directions
(left, right, up, down, above, below)
o TPA is now the default file format
o Addition of hexact float format, which allows for exact round trips to ASCII
o New token type: funcall (which basically amounts to an expression). This
allows parsed rather than unparsed expressions to be stored in cells, and
allows macros which receive their arguments unevaluated.
o New region/accumulator operation count() that counts truthy cells (rather
that just nonempty cells as n() does) added.
o All region/accumulator operations including sum(), min(), and max() can
now operate over their list of arguments as well as over a block.
o All region/accumulator operations can take an optional expression when
operating over a block that generates the values to be accumulated (rather
than just taking the values directly from the block).
o Added floor(), ceil(), trunc(), and round() functions for finding integers
associated with doubles, eliminating (note possible breaking change) the
int conversion with two rounding directions.
o Precedence of unary "-" made lower than exponentiation "^" to match Python;
note possible breaking change.
o Evened out the depth of the attribute menu in console teapot.
o Relative and "Excel-style" addressing as well as absolute addressing.
o Bitwise logical functions on integers.
o Fill With operation for quickly filling the selected block with a single cell.
o Additional arithmetic operations on locations.
o Documentation better aligned with current behavior.
o Additional key commands for clocking/resetting the sheet.
o New -F command line argument to set the overall font size for fteapot.
Bug fixes:
o Occasional early coredumps of teapot have been eliminated.
o Phantom values resulting from clocking, resetting, and clocking again
have been eliminated.
Internal changes:
o Added pretty-printer for Token values in gdb.
o Compilation warnings with reasonably strict settings eliminated.
o tabouteq() should scale better with respect to the magnitude of the compared
values.
o Funcall tokens print in infix notation.
o All operators are also available as built-in functions, to allow for
use in parsed expressions/funcall tokens.
o Function identifiers are now values in an enum, for easier use and debugging.
o style, cell, and token definitions moved into their own source files.
o Source code arranged into subdirectories.
The changes compared to 2.2.1 are:
o visual garbage fixed (curses version)
o made unquoted strings default, added "-q" flag to turn quotes back on
o made attributes menu more user friendly: no more question when changing a single cell, one menu option optimized away
o added "-H" command line flag to hide row/column headers; in FLTK, this means you can only change sheets via Ctrl-Shift-PgUp/PgDn
o expanded command line help
The changes compared to 2.2.0 are:
o Help system improved
o Compile fix for MacOS
o Link shared by default. Set option ENABLE_STATIC to statically link FLTK.
o Bugfixes for CSV export
o Bugfixes for console mode
o Added font styles bold and underline
The changes compared to 2.1.0 are:
o UTF-8 support for curses frontend
o various bug fixes
The changes compared to 2.0.2 are:
o switched to CMake as build system
o Win32 compatibility
o usage improvements in the GUI version
o various bug fixes
The changes compared to 2.0.1 are:
o Low-resource builds (leaving out the help system)
o various bug fixes
The changes compared to 2.0 are:
o Fix a possible crash and some minor bugs
o improve FLTK navigation and cell editing (moving around and
selecting cells now works while editing a formula)
o automatically start a string value when typing a letter
o fix build system
The changes compared to 1.09 are:
o Several bug fixes and changes how files are handled
o FLTK user interface
o Built-in Help and About screen (currently only in FLTK)
o License changed to GPL (see mbox file in doc folder for permission)
The changes compared to 1.07 are:
o Use KEY_HOME additional to KEY_BEG to move to the beginning of
the line in the line editor
A GNU zipped tar file is available from:
http://www.syntax-k.de/projekte/teapot/
Michael