Spreadsheet::Engine is a Modified Version of SocialCalc 1.1.0, which in turn started as modifications to the wikiCalc(R) program, version 1.0.
wikiCalc 1.0 was written by Software Garden, Inc.
Portions (c) Copyright 2007, 2008 Tony Bowden Portions (c) Copyright 2007 Socialtext, Inc. Portions (c) Copyright 2005, 2006, 2007 Software Garden, Inc.
Numerous tests are adapted from the Open Formula specification. Copyright (c) 2006 OASIS 2006. All Rights Reserved.
Changes from the Standard Version (SocialCalc 1.1.0) are detailed below.
== v0.14 == (January 22, 2008)
Summary: Better testing, more extraction
(this silences warnings when we want a number but don't get one) -- Add accurate tests for TODAY() and NOW() based on time
(Open Formula spec can't do this)
== v0.13 == (January 21, 2008)
Summary: Restructuring
Function/ is now just for packages that are spreadsheet functions and Fn/ for helper classes (including base classes) -- Extracted logical.pm baseclass -- Extracted functions IF(), AND(), OR(), NOT(), EXACT(), CHOOSE(),
IRR() -- Simplify EXACT() by pre-sorting operands by type -- Simplify IF() into a trivial ternary -- Rewrite depreciation functions -- Extracted Fn/Approximator for Newton-Raphson approximations -- Added temporary(?) top_of_stack method to base.pm -- Removed ability for 'series' functions to return a listref
== v0.12 == (January 19, 2008)
Summary: Harmonise operand handling in Functions
-- Promote string arg handling to standard 'signature' method -- Replace math arg handing with new signature approach -- Allow functions to declare a maximum number of args -- optype() doubles up a single argument if required -- Miscellaneous tidying of other arg handling code -- Corrected LEFT() and RIGHT() to take exactly 2 args -- Corrected investment functions to require at least 3 args
== v0.11 == (January 17, 2008)
Summary: Value objects
FV(), NPER(), PMT(), PV(), RATE(), NPV()
== v0.10 == (January 16, 2008)
Summary: Pluggable date and time functions
HOUR(), MINUTE(), SECOND(), TIME() -- More refactoring of error handling (several functions now give
generic 'invalid arguments' errors rather than function specific errors)
== v0.09 == (January 15, 2008)
Summary: Further abstraction of functions
ISERROR(), ISLOGICAL(), ISNA(), ISNONTEXT(), ISNUMBER(), ISTEXT(), NA(), PI(), TRUE()
== v0.08 == (January 6, 2008)
Summary: Pluggable math functions
DEGREES(), EVEN(), EXP(), FACT(), INT(), LN(), LOG10(), ODD(), RADIANS(), SIN(), SQRT(), TAN() -- Extracted functions ATAN2(), MOD(), POWER(), TRUNC() -- Extracted functions FIND(), LEFT(), LEN(), MID(), PROPER(),
REPLACE(), REPT(), RIGHT(), SUBSTITUTE(), TRIM() -- Allowed MID() to accept a zero length per OpenFormula spec
== v0.07 == (January 1, 2008)
Summary: Open Formula test cases
t/of-count.t, t/of-database.t, t/of-datetime.t, t/of-errors.t, t/of-financial.t, t/of-is.t, t/of-limits.t, t/of-logical.t, t/of-lookup.t, t/of-math.t, t/of-names.t, t/of-numbers.t, t/of-operators.t, t/of-params.t, t/of-references.t, t/of-rounding.t, t/of-stats.t t/of-strings.t, t/of-value.t t/of-whitespace.t -- Add test coverage summary as coverage.txt
== v0.06 == (December 23, 2007)
Summary: Pluggable series functions
== v0.05 == (December 18, 2007)
Summary: Pluggable text functions
== v0.04 == (December 14, 2007)
Summary: Fix cpantesters problems
with suitable unicode support. In theory this could work with earlier perl versions if sheet data was restricted to ascii. YMMV)
== v0.03 == (December 13, 2007)
Summary: provide basic interface via Engine.pm
== v0.02 == (December 12, 2007)
Summary: silence warnings exposed by test suite
step_through_range_down(), execute_sheet_command() parse_sheet_save() -- Tidy parse_header_save(), recalc_sheet() -- Shortcircuit empty commands in execute_sheet_command() -- Shortcircuit empty lines in parse_sheet_save() -- Remove unnecessary use of Time::Local
== v0.01 == (December 11, 2007)
Summary: Created from SocialCalc 1.1.0
(i18n and l10n be damned, for now anyway)
extensibility