summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog13828
1 files changed, 13828 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..26b6c65
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,13828 @@
+# Generated by Makefile. Do not edit.
+
+commit aad765d54425bc02ea55d498f45b1389d445d927
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 26 20:49:41 2023 -0400
+
+ Add entry for the upcoming release
+
+commit ce840fa2f8591a7fd79613e0be4646e41e5c7846
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 26 20:35:14 2023 -0400
+
+ Regen doc and test data lists
+
+commit 2a3b4a7bf0285a5b35dfa6dd81257aec2af4ba74
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 26 20:29:26 2023 -0400
+
+ Clean up bin directory
+
+ Most of these wrapper scripts are obsolete since libtool can provide
+ the same functionality.
+
+commit ebb8c990d08f9e80e38f3941024925ff671cb19a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 26 19:53:25 2023 -0400
+
+ Set the version number to 0.19.0
+
+ The release is right around the corner...
+
+commit 247b882a37ab875abc9d6654ba128a830c088c01
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 26 18:19:46 2023 -0400
+
+ Fix build with MSVC
+
+ error C2440: '<function-style-cast>': cannot convert from 'initializer list' to 'ixion::resolved_stack_value::value_type'
+
+commit d4e514b9e698b4c3481cce2076c73795b2006738
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 23 19:50:23 2023 -0400
+
+ Inline arrays are now supported
+
+commit aa90417e4cacbcbff3e0a458272b3071bb221112
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 23 19:43:18 2023 -0400
+
+ Make sure MMULT can operate on inline matrices
+
+commit 6231f4bd122494bd3eb04d299da86ca273a870c5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 23 19:27:26 2023 -0400
+
+ Support {inline matrix} & {inline matrix} concat operation
+
+ and add a test case for all three variants of string concatenation
+ operations.
+
+commit 0a549fdebc4be8de72760b650c67dc0ebf68b906
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 22 21:20:16 2023 -0400
+
+ Support string & {inline matrix} (concat operation)
+
+commit 14f7e62dc45f7e6a865e026a492ee7ce0b4249bc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 21 21:31:31 2023 -0400
+
+ Support {inline matrix} & "string" (concat operation)
+
+commit ec0c2d5d6df66c2159a5120e8c52d1b49a0a9c66
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 21 18:19:36 2023 -0400
+
+ Rename matrix_or_numeric_t to allow it to store string value too
+
+commit dd7bd5359c4355f8808997d2bcf9f3531a51dfd0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 20 21:16:09 2023 -0400
+
+ Rename functions for consistency
+
+commit aab3a644e7e0d70e3105599695f3ed8be40fae92
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 20 21:11:49 2023 -0400
+
+ Handle division between matrix and scalar value
+
+commit 97be548cc03d0f87818e3d69edc3dffa1408e05f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 20 19:07:32 2023 -0400
+
+ Capture potential error condtion in operation on numeric value pair
+
+commit 6d15bc26dc4f4df08ca435779c438f416da46f11
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 20 18:27:49 2023 -0400
+
+ Wrap std::variant in class to avoid using raw index() values
+
+commit f2877afe86c0507a7a8d6d4087b36d16ccd032fa
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 19 20:28:24 2023 -0400
+
+ Handle exponent (^) operator in matrix-value operations
+
+commit 66e0ce43f210c4bd548cc21ce4857a76cff44330
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 19 19:28:31 2023 -0400
+
+ Make multiply_op a template argument
+
+commit 1725326a2b69349e98f3a937dd1b422c121e7559
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 19 19:17:46 2023 -0400
+
+ Add a test case involving string values
+
+commit 1a779b85a084b7eadc9287e7e44e47e9ece47efd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 19 19:06:13 2023 -0400
+
+ Add support for matrix by matrix multiplication
+
+ It works differently than the mathematical matrix by matrix
+ multiplication.
+
+commit 1986ca0aa2ce3b13e60d597d12830359f8d97f5e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 18 22:01:01 2023 -0400
+
+ Make it clear what's not supported
+
+commit ed1bfc394c6b3b6708dfafc39a5f6a1994765e09
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 18 21:59:20 2023 -0400
+
+ Support range reference as matrix
+
+commit c545e05e3c62ab2c3e3a6783fa7f2c855d5216b6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 18 20:32:10 2023 -0400
+
+ Support multiplication between a matrix and a numeric value
+
+commit 156cffe5afc81e83feb7cafbce301fb2618503b8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 18 18:17:47 2023 -0400
+
+ Better to use braces here as a local variable is defined within
+
+commit e68f1d4203d44f0b7713ae610f2fdf08ca8a20ad
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 18 17:33:36 2023 -0400
+
+ Unnecessary nested anonymous namespace
+
+commit fac1ac6dd17350a364b2dec1ef7a73b0aea86d0f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 18 17:29:50 2023 -0400
+
+ Support value <op> matrix
+
+commit 53c601ec72dbef79f9ab1499a5bfd3170860b7af
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 15 19:33:56 2023 -0400
+
+ Add test file for the matrix to numeric value operators
+
+commit 38c54c751755a0a0ffcd1e517cba9501767c9eec
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 15 19:24:38 2023 -0400
+
+ Add support for the rest of the operators
+
+commit bc4e9a6b26cbc463f49fffde56c17c430b6c250e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 15 18:24:11 2023 -0400
+
+ Support inline array - numeric value
+
+commit a1633278bbd01ffec6713826cacabcb95f6ab738
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 14 23:31:11 2023 -0400
+
+ Support inline array + numeric value
+
+ Other operator types will follow soon.
+
+commit 4c84fe43d194a7dce3f0a9beb0809d383f145ea3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 14 21:54:34 2023 -0400
+
+ Refactor pop_stack_value_or_string() to return result
+
+commit d5df6c560fbaaf1594ec57a4a1033f645b40d028
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 13 22:19:38 2023 -0400
+
+ Add a test case for inline arrays
+
+commit 88291bf50eb1fd21003052f7a264debf33c904d5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 13 22:17:35 2023 -0400
+
+ Use std::deque to store string values in the pool
+
+ This is to avoid fragmented string instances across memory.
+
+commit ea0780827d4b52493673b9f73e23add9f79daf1d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 13 22:13:32 2023 -0400
+
+ Extract common code block to retreive a string value
+
+commit 80f1ef5b656ff9429d0bdbdb10226fbf7955c1ec
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 13 21:58:53 2023 -0400
+
+ Remove 'using namespace std'
+
+commit 61f7db4915ae5280fb5617e7eb6afa5bc3a7656e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 13 21:37:36 2023 -0400
+
+ Handle plus or minus sign tokens correctly for numeric values
+
+commit 7cb8516bbf850990f8dbbfef478d8e5368bb6708
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 13 21:16:23 2023 -0400
+
+ Support string values inside inline arrays
+
+ It is still optimized for all numeric arrays.
+
+commit 91ebaf269c3f3870a2e9617b764141e59ba5c600
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 12 21:22:46 2023 -0400
+
+ First cut on parsing inline arrays
+
+ Numeric values only for now.
+
+commit efdd40679b5327a783a48ad5d964eef0a4223b1b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 11 22:48:41 2023 -0400
+
+ Add a token for array row separator
+
+commit 8652b155759baa2deda5b86c404f118d73303894
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 11 22:24:24 2023 -0400
+
+ Let's avoid whitespaces in token names
+
+commit f1dd7836d922edf45af6fa5f3eedf18561f3f6bb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 11 22:07:35 2023 -0400
+
+ Add array-open and array-close opcode types
+
+commit e0ef477aee90281e6ba4a8ecfb48e5a5b3dc7829
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 11 21:56:13 2023 -0400
+
+ Define operator chars and reduce repeated operator case entries
+
+commit 1234cb0bcb32d280afc0e8f9bfc9e436c1adf576
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 11 21:55:32 2023 -0400
+
+ Make it clear what types of tokens these are
+
+commit 6d952f0387b8b0cbf13463f6e2e6c41233336692
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 19 22:52:05 2023 -0400
+
+ named_expressions_iterator to support move construction
+
+commit e47bac341e4de67fa2507a1772f9318d251999f6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 19 22:31:20 2023 -0400
+
+ Add the ability to specify sheet display preference when printing
+
+commit 863557629ecd4712523888a76dab5ed69193aaa4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 19 21:09:38 2023 -0400
+
+ Use ranged for loop
+
+commit c0a83340e059698219ed503ed701bb13c3db704e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 19 19:44:33 2023 -0400
+
+ Add set_sheet_name() to both model_context and document classes
+
+commit 9a4618ab8a9fd16bc18e3ac76bcda336f90ed43f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 19 18:19:35 2023 -0400
+
+ Set the version to 0.18.99 (pre 0.19.0)
+
+commit ac210d4d535fdbb454c3224904ff65cad05580c0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 15 19:51:27 2023 -0400
+
+ Try to fix the gitlab CI
+
+commit 79a9daa3db16239b8057aa21cbbdefb5aa4fbb3c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 15 19:45:31 2023 -0400
+
+ Fix build issue with Clang 16 on Windows
+
+ Thanks to Stefan for the suggested fix.
+
+ c.f. #53 (https://gitlab.com/ixion/ixion/-/issues/53)
+
+commit 44e9254f71fa550a8c240c13740cec1a18ed41d7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 31 19:43:04 2023 -0500
+
+ Update CHANGELOG
+
+commit 4734a9d6af7e13e71973979e3949f3c164f320e4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 31 19:27:52 2023 -0500
+
+ Set the version to 0.18.1
+
+commit 672a267edde2ef2c657735161a9ea2fc31eb517f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jan 28 11:30:36 2023 -0500
+
+ Fix 32-bit build, as reported on Debian (#52)
+
+commit 3747d5cc91d9e7dbb1c416b39b2f5108405bf103
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jan 7 12:39:42 2023 -0500
+
+ Let's call it 'index', to be consistent with 'genindex'
+
+commit 9f5cc8006d6d25301227ab5fc2bced2d5a323dd0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jan 7 12:34:35 2023 -0500
+
+ Set anchor named 'root' at the project root
+
+ This is to be used by another project to reference the landing page
+ of the ixion doc.
+
+commit 6289bd8b667052b05b0c84f4415fc89a11b0fdba
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 16 22:35:50 2022 -0500
+
+ Finish up the list of features for 0.18.0
+
+commit a2848b3ba5b64d99e72cda87cb6108c792c8930c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 16 21:45:57 2022 -0500
+
+ Adjust for the recent test executable changes
+
+commit 1333b7092db2c4ede04fe610901bc74e24350c27
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 16 21:29:13 2022 -0500
+
+ Set the next version number
+
+commit f564dcb694d42c31b178f2da69c153baf8ad9191
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 14 17:52:18 2022 -0500
+
+ formula_token is a struct now
+
+commit 4f69e1bbd760fa0a94ea00cba8e6542e7ddb4c67
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 21:54:44 2022 -0500
+
+ Use range-based for loop
+
+commit 61424140d0902fddaa0decf48b7910e821a50cc1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 20:55:11 2022 -0500
+
+ Finally, remove mem_str_buf class itself
+
+commit 9175d708c52e6b8477dae463646c2287cc660f64
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 20:51:59 2022 -0500
+
+ This is definitely not needed anymore
+
+commit c0bb45905db5fc9c07318dc9dc292092c1cec93a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 20:50:11 2022 -0500
+
+ These header includes are no longer needed
+
+commit 60ee943feb2a008c6bb24e179b35057c11cdd7c1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 20:14:27 2022 -0500
+
+ Replace mem_str_buf with std::string_view
+
+commit 250ab29d41015040d289ea3a5edb1d80bbe90bd6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 20:14:27 2022 -0500
+
+ Replace mem_str_buf with std::string_view
+
+commit 29f06ae82ecaff3822b557132f959b6ac0f8ae84
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 20:14:27 2022 -0500
+
+ Replace mem_str_buf with std::string_view
+
+commit 64809bdf4ac76000ccf0eb380fe35a2c40f880fe
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 20:14:27 2022 -0500
+
+ Replace mem_str_buf with std::string_view
+
+commit 3d6ead63638dc53e0886b4f8fa12a6d2201da62b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 20:14:27 2022 -0500
+
+ Replace mem_str_buf with std::string_view
+
+commit 369a7018a5c68d9fc9705d9d42bfda2286d5bc94
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 20:06:21 2022 -0500
+
+ Replace mem_str_buf with std::string_view
+
+commit 123f5bef5f91c7a9bd29aa9483de20b18e72cd7b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 20:00:41 2022 -0500
+
+ unused
+
+commit dc0da3bd7b4302d3f1b94d9c216847d8f42c3a99
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 19:56:35 2022 -0500
+
+ mem_str_buf is not used here
+
+commit 0283638b6a86b1eb5203d86883c5cf20c236cc74
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 19:46:38 2022 -0500
+
+ unused
+
+commit 40a2d66b6dcca4dfd6bdf8cb2e5863b4d8f83b35
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 19:45:24 2022 -0500
+
+ Let's not pass token to these methods for consistency
+
+commit 7ff59d7738e80bf62b0876c9e3116f242d5345e0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 19:24:00 2022 -0500
+
+ Re-implement lexer token storage structure
+
+commit f61dd1672caee7be683e85372350022ddbe3372b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 18:10:17 2022 -0500
+
+ No need for this explicit == operator; it's now implcit
+
+commit 20ab083f68ac057e9e94d8afa7cd26d41e627b9b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 9 18:08:48 2022 -0500
+
+ Fix build with logging enabled & simplify the code a bit
+
+commit e8a154fe9d5799b2017b9300e91179485da0d41c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 8 23:21:37 2022 -0500
+
+ More on documenting the code
+
+commit 9892a8b6fae40ff662a46a8d79ac6b4a9ddac37f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 8 22:43:12 2022 -0500
+
+ More on documenting the formula token symbols
+
+commit d124fd10c9d3b10fe755f62ece7d05e231cf6de1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 8 22:24:04 2022 -0500
+
+ Replace mem_str_buf with std::string_view
+
+commit bd81ae078202f488824e715276b9a46c4e20ae44
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 8 22:16:18 2022 -0500
+
+ Remove 'using namespace std'
+
+commit 50c5cd1521554ce7dddb03fe6c0c8b51c8673e70
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 8 22:08:54 2022 -0500
+
+ Imporove formula_token doc & safety check on opcode-only token
+
+commit 8c0a24d385531a4c55706fe12a1e347b4895d208
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 8 20:56:41 2022 -0500
+
+ Clarify the purpose of create_formula_error_tokens()
+
+ This is currently used in orcus to store the state of invalid formulas
+ in cells.
+
+commit 9619d128e121eacdbae032885e83cb710d0b5945
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 8 20:03:24 2022 -0500
+
+ Add test cases for multi-sheet references in SHEETS()
+
+ We now support multi-sheet references in Excel A1.
+
+commit 933b831d15b12d6db693d14b99ee3a30bf1523cb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 8 19:43:37 2022 -0500
+
+ Make table_t streamable
+
+commit 6f5ec9679aaf3b6a721f3fdbfb0ef10155d42553
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 8 19:34:44 2022 -0500
+
+ Merge write_string() with operator<<()
+
+ This standalone write_string() feels a bit awkward.
+
+commit d22619b00270cf71db4c32ba2e47b441305931f6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 8 19:11:27 2022 -0500
+
+ formula_tokens_t to store formula_token objects directly
+
+ This should prevent memory fragmentation, and simplifies the code
+ quite a bit.
+
+commit 14ef0a028ade655f70ad106dd26e99a087e3a9b3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 8 18:32:47 2022 -0500
+
+ This is now a struct
+
+commit a5d3b15b0de1f395c79711c94b318c88825e1246
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 7 22:22:21 2022 -0500
+
+ Reimplement formula_token with std::variant and no virtual functions
+
+commit f75c0abb8ae8d666854c9f8fd77981477d2a64ba
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 7 20:02:38 2022 -0500
+
+ Remove 'using namespace std'
+
+commit 0e97fbdd10aac8ccb8f4bb851866dd34c74a5053
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 7 19:02:55 2022 -0500
+
+ I don't think this is really necessary
+
+commit 129923beacc51d23d10090d12916516ddf7afe4e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 7 18:55:53 2022 -0500
+
+ parsed_addr2 is not necessary here
+
+commit 5610de6793e83e9ebb8fb7a3992d9a8422c87055
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 7 18:54:55 2022 -0500
+
+ parse_address_excel_r1c1() to not take the model context
+
+commit 99de8982479c13bf94b1e5ab6e931d88466be40b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 7 18:54:03 2022 -0500
+
+ Implement multi-sheet parsing for Excel R1C1
+
+commit 4a7fec78fba96624ec4ffbb1a5755c337f6daf73
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 4 21:02:33 2022 -0400
+
+ parse_address_excel_r1c1() to take the end position
+
+commit c9b4d1052cc7c4ee3717224f682607a70c96ce2a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 4 20:53:36 2022 -0400
+
+ parse_address_r1c1() to take the end position
+
+commit 75a0c08647db1b84e4359dba4da4ca7a23f89ea3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 4 20:41:21 2022 -0400
+
+ parse_number() to take the end position not the last valid char position
+
+commit 5b4895ec6d76f4e4b9ad24930f6a4555af3cda65
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 4 18:46:48 2022 -0400
+
+ Set the 'was_quote' flag correctly for non-quote chars
+
+commit 019711a8ae317bcbefb9617a1aeb9cc588186b55
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Nov 3 23:21:34 2022 -0400
+
+ Fix MSVC build via cmake
+
+ ixion-test clashed with the static test-only library of the same name.
+
+commit 799389c591ecc778c89f15ffc70f3b56b52268be
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Nov 3 22:57:23 2022 -0400
+
+ Correctly handle sheet name with double quote i.e. `"`
+
+commit 8d4ccf9ce5c964df9a46d1166f5cd23978c5d57c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Nov 3 22:42:10 2022 -0400
+
+ Add some negative cases
+
+ I may add more later as I discover them.
+
+commit 00bdcf6a2fa8f467a706f60423f0f76f8647443e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Nov 3 22:21:34 2022 -0400
+
+ Initial version of reworked Excel sheet name parsing for sheet ranges
+
+commit 570acb86bf9c563a2bebda3b79c3dd3d019fff5a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 2 21:54:02 2022 -0400
+
+ Use std::optional to consolidate two output parameters
+
+commit b8cce1a9a780a18b94c6bc13c0d7216eb6b23848
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 2 21:36:34 2022 -0400
+
+ parse_address_excel_a1() to take the end position
+
+commit 88c4e7b0207a3a6cd1aa57dc2d59f2a7fcb90458
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 2 21:31:53 2022 -0400
+
+ Have the callers skip the separator upon successful sheet name parsing
+
+commit f3772f95d059e1465e24d2802a040cd3b567130f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 2 21:23:41 2022 -0400
+
+ parse_sheet_name() to take the end position
+
+commit 4568321f0adc6157b24188c6ff951100726bf0aa
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 2 21:20:14 2022 -0400
+
+ parse_sheet_name_quoted() to take the end position not the last char position
+
+commit f209a673660a01fa537f86b23b16929657f38ffc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 2 21:00:36 2022 -0400
+
+ parse_address_a1() to take the end position, not the last char position
+
+commit 1df121225e9cf4721b4c2c147202f9d55f85e3c1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 2 17:54:17 2022 -0400
+
+ test_name_resolver_ prefix to just test_
+
+commit 63555c3bcdfd890e8e260f5af8219ab8142fcfa6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 1 22:28:54 2022 -0400
+
+ Split the name resolver test cases into separate test program
+
+ The cmake part is not tested.
+
+commit d8b12988a07f4882a1926104c9fef00dc0e5012d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 1 22:10:56 2022 -0400
+
+ Standardize the way to print test case scopes
+
+commit 9b0518c05030613f70b9b1c27280eb96086eb352
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 1 19:46:01 2022 -0400
+
+ Include test_global.hpp first in every test source file
+
+commit de28507fe548977bd71811031bab0951986e35aa
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 31 22:02:19 2022 -0400
+
+ Adjust in response to the 'trait' to 'traits' change in mdds
+
+commit e6f1d52230a3224b02c99563abf349b9867a32b6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 17 10:01:53 2022 -0400
+
+ Fix symbol import export macros
+
+commit 30ce7b11689cd7e8e6b4a37d64bab6c2df9eec39
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 17 18:53:12 2022 -0400
+
+ The gitlab ci doesn't have autoconf 2.71 or newer
+
+commit 9effd90cb57e8bd5e647445c364a9a9e91d36f32
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 17 18:45:35 2022 -0400
+
+ Switch to mdds-2.1 as its new dependency
+
+commit 9d28e19f419fb614355143af41af02bfec1f8ed2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 17 16:59:28 2022 -0400
+
+ Update config generation step to use autoreconf
+
+commit 7f7777a9e5e59e46547572862476e26f97a9261b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Apr 28 22:21:55 2022 -0400
+
+ Update the changlog.
+
+commit 60c6bb7e2115b51d7f2d6c68f69e1972699bc28d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Apr 28 21:53:51 2022 -0400
+
+ Implement MODE() function (#47)
+
+commit 85fea7f8638431685ddc1f8e1f018041a97ecf6c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Apr 28 20:49:15 2022 -0400
+
+ Extract the block that appends values from value stack into a function.
+
+ This can be generally useful.
+
+commit 07f2792da5b3511475975ec773da6703c217a020
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 27 22:37:06 2022 -0400
+
+ Capture and set a formula error globally in interpret() method
+
+commit eb0e440a4ddacf31f7e544538dbcb64213d49250
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 27 22:22:01 2022 -0400
+
+ This is a constant.
+
+commit 4bdb9c47234f66f23e9b76c25ed0bbb72a1c0945
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 27 22:19:53 2022 -0400
+
+ Use static array for read-only data.
+
+commit 46c8d499ca7660e5c4dea9cba3b3d7aee965041d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 27 21:05:08 2022 -0400
+
+ Implement MEDIAN() function (#47)
+
+commit 01f059eb77983756e402c7d548455126eba22685
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 26 22:19:03 2022 -0400
+
+ Implement TEXTJOIN() function (#47)
+
+commit b50bd7c13f63029b46ef7a0ad6d855066203fe71
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 26 20:59:50 2022 -0400
+
+ Turns out we support both horizontal and vertical directions.
+
+commit e4cfd9e48cf9be14fe4f4f5f276770defe3c776c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 20 22:29:15 2022 -0400
+
+ Implement SUBSTITUTE() function (#47)
+
+commit 0971bae74337c03dc651c7a853a97b207803f8eb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 13 21:39:37 2022 -0400
+
+ ISERROR() should handle error value on the stack.
+
+commit 413be13d7dc6c054f7e5186da5d3a56fc65ec292
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 13 21:18:22 2022 -0400
+
+ Add a nested function test case.
+
+commit b3874166f48d90ed88be4c1807aad97bf192bccd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 13 21:10:03 2022 -0400
+
+ Implement REPLACE() function (#47)
+
+commit a6572d1e0de06a71caaa1087f1e8475f8f616e53
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 12 20:29:47 2022 -0400
+
+ Add note about case-sensitive search.
+
+commit ddea0a568acc6cfd6489f9342e993ef581844a42
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 12 20:16:11 2022 -0400
+
+ Implement FIND() function (#47)
+
+commit 05643f02789ec84037896c0780f34f7a3d71cac3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 6 21:00:34 2022 -0400
+
+ Put a string result value in quotes & display the result type.
+
+commit 31c409a1093facf224a06fd85ae177e7f93dd890
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 6 20:15:28 2022 -0400
+
+ Implement EXACT() function (#47)
+
+commit a4325cdd00d4cc889ed18e4d46209a692b21e148
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 6 18:20:12 2022 -0400
+
+ Implement T() function (#47)
+
+commit c0665623bd44e9ed86b2203d5e23fcb766461db8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 5 21:08:18 2022 -0400
+
+ Implement REPT() function (#47)
+
+commit a48e977913648f7c32f65ace03dade6a3cefa8a6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 5 20:45:44 2022 -0400
+
+ Implement TRIM() function (#47)
+
+commit ef35755373a0e3148b312003218bee7c31a44e7e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 4 22:05:45 2022 -0400
+
+ Fix LEN() function to correctly process UTF-8 string.
+
+commit 2e60de38c8309544bd67dce84d7bf4b3076addd9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 4 21:57:48 2022 -0400
+
+ Implement MID() function (#47)
+
+commit 9205fe1040a968481a669a49c907106c1fd49630
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Apr 2 11:14:33 2022 -0400
+
+ Add a test case for the 2nd argument missing.
+
+commit 33e946f42b3a15cc31d0c227930f2e60c27a9c3f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 31 21:47:37 2022 -0400
+
+ Update the specs.
+
+commit 39c90a5fc704337b1de6181781bd6909880bfd24
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 31 21:25:48 2022 -0400
+
+ Implement RIGHT() function (#47)
+
+commit 045d086e9cd925cb4132c7d6ab389430825fb05a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 29 19:54:18 2022 -0400
+
+ Fix the CI build.
+
+commit f84fe525ed7e25167f0d7ce91465ff1dd40d83ab
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 29 19:49:38 2022 -0400
+
+ Add C++ preprocessing rules for slickedit workspace.
+
+commit 63ff88e67815f438104662f65245595ddf885b54
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 29 19:45:51 2022 -0400
+
+ Fix the LEFT() function to handle utf-8 strings correctly.
+
+commit a3e999871c80416f2af2be9f848c04316e2b4a86
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 29 18:00:54 2022 -0400
+
+ Organize the function declarations by their categories.
+
+commit 481249d967c9059a89dfcb1c9cce6ebe35aac6e8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 29 17:39:58 2022 -0400
+
+ Implement N() function (#47)
+
+commit 633d996bcb60b53a5a959be9e8868868ffac16c2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 29 16:40:01 2022 -0400
+
+ Implement TYPE() function (#47)
+
+commit 3d8cb558a0e16beb2714f92a8b2e1406462e8f59
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 22 22:46:06 2022 -0400
+
+ Implement ISNA() function (#47)
+
+ This change also introduces error as a new stack value type.
+
+commit 8b103b17975d9ec8acebcdeac5195542b4be7cb4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 22 22:08:13 2022 -0400
+
+ Implement NA() function (#47)
+
+commit c404e1dcc4bd1ec67cc7d325d619f634268cba0a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 22 20:32:58 2022 -0400
+
+ Implement SHEETS() function (#47)
+
+commit bed6b1fb2403826102c6e23847a88f7581cdaaea
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 21 22:10:26 2022 -0400
+
+ Implement SHEET() function (#47)
+
+ This commit also introduces #N/A formula error type.
+
+commit d78e7b6cefb0ba937bd41f656e9546fd91f7dad7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 21 21:31:33 2022 -0400
+
+ Add COLUMNS and ROWS to the specs.
+
+commit 8b63fa5e7fa1c07aac2399ef25286879f5484ea1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 21 21:22:14 2022 -0400
+
+ Implement COLUMNS() and ROWS() functions (#47)
+
+commit 8f7c7d356e305fef218dc6c9043269ea87a228e2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 17 22:12:44 2022 -0400
+
+ Add ROW and COLUMN to the specs.
+
+commit af9bdd0865f23a3978e4fe99cb9140142d03684e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 17 22:09:04 2022 -0400
+
+ Implement ROW() function (#47)
+
+commit 6378346f54594be075b57071bcdf92adc7eaa9d5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 17 21:57:15 2022 -0400
+
+ Implement COLUMN() function (#47)
+
+commit 246c7e35a2ac8973df6d77049ed45b581eaedd85
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 16 21:10:22 2022 -0400
+
+ Add COUNTBLANK to the specs.
+
+commit 07d65d38b2e4db0c17d39f85e6aa028acfe90865
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 16 21:07:54 2022 -0400
+
+ Implement COUNTBLANK() function (#47)
+
+commit 3ccc6d585076d6a963a3433988e5b899ba3d9ccc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 14 22:37:52 2022 -0400
+
+ Specify the return types for COUNT and COUNTA.
+
+commit b34a18d34c1f39074b0450cc32d5dc8e36e5d637
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 14 22:25:52 2022 -0400
+
+ COUNT is now implemented.
+
+commit 90479f4de467aed5ecf307194f3d527246f18f0f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 14 22:10:22 2022 -0400
+
+ Make sure a whole column range can be used within COUNT().
+
+ Also values_t only contains a single int; we can pass it by value.
+
+commit 8efc34b8bb93babe82503e36d5e8ab3629913975
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 14 21:49:28 2022 -0400
+
+ Fix COUNTA() function to allow static string args & no args.
+
+commit 479567d8c07f70f6b56db441a831f792ebd1dabd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 14 21:43:11 2022 -0400
+
+ Add another test case for COUNT that involves formula cells as inputs.
+
+commit 17377c2e6e0654efa172d01eec7983318fe155ac
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 14 21:35:02 2022 -0400
+
+ Implement COUNT() function (#47)
+
+commit af05fbf9d22d0c12c23e030bbcba2a83130bd823
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 3 21:57:14 2022 -0500
+
+ Replace all uses of IXION_N_ELEMENTS with std::size().
+
+commit 3d2fae9a33c8c0be6609b014290610fdccadc1cc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 3 21:53:40 2022 -0500
+
+ Add a public to_formula_error_type() function and use it to ...
+
+ ... parse an error string e.g. #VALUE! in the model parser.
+
+commit 41441ee4e62e1f1b446e80173a7fddd2b8af0d2f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 3 21:22:25 2022 -0500
+
+ Behave consistently for getting a numeric value too.
+
+ i.e. trigger #VALUE! when the value type doesn't allow implicit
+ conversion to numeric value.
+
+commit f8b6ca84fd30c8048b68eaf62fb8ce4d21898d8f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 3 21:20:04 2022 -0500
+
+ =NOT(A7) where A7 is empty should be true.
+
+ In other words, when the referenced cell is empty it's equivalent of
+ being false when requesting a boolean value.
+
+commit d352a524f3fd68113445b8a11e5b3114286770e1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 3 21:14:46 2022 -0500
+
+ Add return types for TRUE() and FALSE().
+
+commit 3bc0a995479871c7eb6b3e0fd0d8e1da73701999
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 3 21:13:50 2022 -0500
+
+ Implement NOT() function (#47)
+
+commit a38429cfc485aa1a4111dd8e183fa8ddaea1d8c3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 3 20:42:57 2022 -0500
+
+ Update the specs with TRUE and FALSE functions.
+
+commit 29ecad5c8265fcce6a5d61b61beabf1de2c740fa
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 3 20:40:33 2022 -0500
+
+ Implement TRUE() and FALSE() functions (#47)
+
+ These are no brainers.
+
+commit 52c0a381aff9bcefb5daf9fdcace0560211d9fb6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 23 21:43:43 2022 -0500
+
+ Don't forget to move here.
+
+commit ed45e4d13f26226357135f3d2fea0ff75aee10c1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 23 21:38:04 2022 -0500
+
+ Some cosmetic change, to have 'break' tucked inside the case scope.
+
+commit 55e1d44028852015633bb94af5b72a0d0a630ab2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 23 21:06:29 2022 -0500
+
+ Add a missing header include.
+
+commit 496dd4390edb7051542b9ff26afdc0832cf71a7f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 23 21:01:38 2022 -0500
+
+ Update the specs to add entry for OR.
+
+commit 0b3da75dc831c0ea0151ea7e89777d032e702575
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 23 20:56:50 2022 -0500
+
+ Implement built-in OR function (#47)
+
+commit ae72e7b206689fbcf7a944af9618e1bf01c974c5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 23 18:44:57 2022 -0500
+
+ Extract parts of the AND function implementation into another function.
+
+ This is so that I can re-use it for the upcoming OR function.
+
+commit 01d89e8a5e5c77b35cf5949470fd0cdd33edd257
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 23 18:14:15 2022 -0500
+
+ AND function should return a boolean result.
+
+commit 32d7189e0780c79eb7517c5302ca6ad52ac41b1d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 23 17:47:55 2022 -0500
+
+ Start recording the return types of functions.
+
+commit 5caf524ac3f4fdc669ae44462179f4b1715cf0c1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 22 21:48:37 2022 -0500
+
+ Update the specs wrt ISLOGICAL function.
+
+commit 95300e55a4918561322b03b50e0e78b8397ce482
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 22 21:46:50 2022 -0500
+
+ Implement ISLOGICAL built-in function (#47)
+
+ Also convert the result types of other ISFOO functions to boolean.
+
+commit 1af9abf5112bd8b0ef7b858507186d451e4ad1b4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 22 20:40:34 2022 -0500
+
+ Let's write debug outputs to stderr.
+
+commit 3a9a0837279ea417a1f468324c1e933d257b0eea
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 22 20:36:18 2022 -0500
+
+ Chase and fix the boolean result being displayed as numeric value.
+
+commit c1195dfa606c0bbe92b55fc9f6086e925fb1ec5b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 22 19:59:14 2022 -0500
+
+ Add boolean type to stack_value.
+
+commit 827367a74c1d0da53f4eb871ddf6238464f49997
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 22 19:31:23 2022 -0500
+
+ Switch to using std::variant in stack_value.
+
+commit ee06c267e5b1091b7c3856c76d14c32f56e3abbf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 22 19:01:08 2022 -0500
+
+ Add boolean formula result type.
+
+commit df6346faa297d466487d2fdbeae3974bee366080
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 22 18:21:59 2022 -0500
+
+ AND function is now considered implemented.
+
+commit 95d9b5bec12e007600c71734864d7cbded5ba4b6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 22 18:15:51 2022 -0500
+
+ Add brief descriptions.
+
+commit 6b49b65e3980008fe558fe83a5751c49470f8423
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 21 23:25:35 2022 -0500
+
+ Handle boolean element blocks in AND function.
+
+ Note the special treatment for std::vector<bool>.
+
+commit 7949daadf4b5f6ab47156d763efdb34b39a22dca
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 26 19:17:59 2022 -0500
+
+ Add a reminder for handling boolean block type.
+
+commit bc7f11c4d273c52cd636f6cbcf0eb49b25336830
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 26 19:10:08 2022 -0500
+
+ Create general functions to get element ranges.
+
+commit 74a88569acef271ca4c4aefda17aba81fd9e39d4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 20 23:36:13 2022 -0500
+
+ Implement built-in AND function (#47)
+
+commit 29797bc0158daa85f155d4882e8e2d1e3cc3fc56
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 19 21:47:04 2022 -0500
+
+ Set the version to 0.17.99 and the API version to 0.18.
+
+commit 0874438d6c64e9ba8c727d0e56b39fb770ef77c8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 19 21:22:31 2022 -0500
+
+ Remove formula_model_access header file.
+
+commit 70058443153ddc0b83c2e6ff75e645f2cef5b694
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 19 21:13:14 2022 -0500
+
+ Remove inheritance from model_context.
+
+commit 84dc1bbc97d517dbff94bbfea73ff3e4dbdceaff
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 19 20:55:52 2022 -0500
+
+ Remove all uses of formula_model_access with model_context.
+
+commit 74cd249517a968021d1fc60336d06bb1f728364e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 19 20:23:40 2022 -0500
+
+ Fill the specs for AND function. Not implemented yet.
+
+commit 77cbbb94e9e5471367d445514eeb627d4e6cd911
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 17 15:31:52 2022 -0500
+
+ Implement ISERROR function (#47)
+
+commit 009a93e413a7c54a67ee202884e60d46a37d7eb9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 17 14:15:18 2022 -0500
+
+ Add some notes for future implementations.
+
+commit c5832e7a468db23b106d4a4f68b067999478ea37
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 17 13:59:15 2022 -0500
+
+ Implement ISODD and ISEVEN functions (#47)
+
+commit b726e308262c159e6180e15c352a7608f4be4065
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 17 13:15:12 2022 -0500
+
+ Update the specs file.
+
+commit 5394c20dfcb5b1247eba7593013a78db940ac6b6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 17 13:14:21 2022 -0500
+
+ Implement ISREF function (#47)
+
+commit 03c9d8933b1a81c47390c6550f4715d06ae04522
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 17 12:49:43 2022 -0500
+
+ Update the specs file.
+
+commit dc190e0f0bd56160127912937a0fe8af68e49411
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 17 12:47:25 2022 -0500
+
+ Implement ISNONTEXT function (#47)
+
+commit ac16f94a4a107b1cd042596c50ad05964b99b354
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 17 12:40:11 2022 -0500
+
+ Implement ISTEXT function (#47)
+
+commit 29db5d3013343386a7436ac790c98ef7705fc81f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jan 15 17:24:35 2022 -0500
+
+ This was checked in by mistake.
+
+commit 0503c13a46e8cc50d0d830f45579ac09a08f1df4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jan 15 12:37:35 2022 -0500
+
+ Add another nested function test.
+
+commit e608f25cfc2d77ed63f5f6dfb3b2912b20aa428f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 14 18:56:04 2022 -0500
+
+ Implement ISFORMULA function (#47)
+
+commit a2f0294ccf73c41521a59d6c1290521c85af84e6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 14 18:21:24 2022 -0500
+
+ Update the specs.
+
+commit 5693262ac1159d250de8fc3201ee5410156f8afd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 14 18:15:23 2022 -0500
+
+ Implement ISNUMBER function (#47).
+
+ Also add the test case file for ISBLANK which I forgot to add.
+
+commit 877d6be7df17d845fbd9df212566d3a42ad788c5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 14 15:39:23 2022 -0500
+
+ Leave a note about passing a range ref to ISBLANK.
+
+commit 16d723c91038bbcde5dec046f5b79cfb1e551b6f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 14 15:11:46 2022 -0500
+
+ Implement ISBLANK with range reference. (#47)
+
+commit 24ae2ca0423d41dde3cbfd519767d8905616a7d1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 14 14:16:12 2022 -0500
+
+ ISBLANK should allow non-reference value.
+
+ If the passed argument is not a reference type, it should return
+ false.
+
+commit fbd69aeae29d3f39cd3cbe915d58ff28db3dc489
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 13 22:30:45 2022 -0500
+
+ Implement ISBLANK function (#47)
+
+commit b82ef2a78433a540b15b9a73a910dda8c387c683
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 13 22:06:31 2022 -0500
+
+ Implement ABS function (#47)
+
+commit 5485a1892b714632376d81cc4a48ac26166f78b6
+Author: Fred GOT <fred.gotpub@gmail.com>
+Date: Mon Nov 15 13:19:37 2021 +0000
+
+ Update README.md
+
+commit 4d579eae8e7be88272ba5b0746fe2269e7a3b6ca
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Oct 28 21:27:40 2021 -0400
+
+ Categorize items.
+
+commit a28bcd35a51ae25fa6f1bd0f61c729cefa5dc4b2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Oct 28 21:24:28 2021 -0400
+
+ Set the doc version to 0.17.0.
+
+commit 6fa7b812e8ce92097f67b44435937b4b3857a8c1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Oct 28 21:06:59 2021 -0400
+
+ Set the version to 0.17.0 and populate CHANGELOG for this version.
+
+commit 99f4c37250f8592c7d1f9c0d9ff99972616a5bcb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 25 13:27:41 2021 -0400
+
+ Build fix for VS 2017.
+
+commit bf8183e391cd197d757be6a38a8781e6c43a7c2c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 25 10:31:35 2021 -0400
+
+ Install the vulkan module via cmake.
+
+commit e032ae53dea1b785ec30941c1bb980df4ce3b135
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 25 10:10:33 2021 -0400
+
+ Fix cmake build.
+
+commit 2ee72fdfd4ccad7d03c34c34b8380ca686441972
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 24 10:05:55 2021 -0400
+
+ The parameter min max values may be 0 instead of missing.
+
+commit 0b31c99ca3e705bccfa956773ef9c32cf6fe71ad
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 23 20:42:43 2021 -0400
+
+ Add another rpath to libixion-<api>.so.
+
+ This is so that it can find the vulkan module after installation.
+
+commit fea608f29a1baa8c57ee16cc9335d2e63b5ffcb8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 23 20:29:54 2021 -0400
+
+ This is no longer relevant.
+
+commit fb8155ac4b3c1a4099a22609590170d5fbc52a24
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 23 20:10:21 2021 -0400
+
+ Add script to parse function specs and generate markdown table.
+
+commit 584ed350d24ff583df00af26acd8cdf9c2a31356
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 23 19:05:47 2021 -0400
+
+ Add entries for non-yet-implemented functions.
+
+ Also add 'implemented' properties too.
+
+commit 1bf06863f3655bca49edcaf8f82a1bd33f9737be
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 22 22:54:21 2021 -0400
+
+ Add symbols related to formula function opcodes.
+
+commit 64a6740b235a2a50719bc0fbe2a2580a117b1ff6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 22 22:33:41 2021 -0400
+
+ Update code example in the doc.
+
+commit 9826a2e125ecaae5a40b77b83c7e05f316ec4bd2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 22 21:39:04 2021 -0400
+
+ Remove symbols that no longer exist.
+
+commit 5a8fd0d6f66276f662f3d9b72cadc8c825d37c2e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 22 21:34:30 2021 -0400
+
+ {@link ...} tags don't work well with doxygen.
+
+commit ad82f9efc8aed53ab3f5435a44b02cbdc0da6e24
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 22 10:45:15 2021 -0400
+
+ Use std::variant for the value in formula_name_t.
+
+commit 750d58bffb32855181dd1981ed6bd54e6b5759ba
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 21 22:51:38 2021 -0400
+
+ Use std::variant for model_iterator::cell::value.
+
+ For an empty cell, store a boolean value of false so that equality check
+ works as expected.
+
+commit 658dad65511fe4417e0bf59c294f2ab59c4a1c3b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 21 22:30:16 2021 -0400
+
+ @link doesn't work well with doxygen.
+
+commit f388b4102b51fcdfcb23acc5f52a19e3a89f6d1c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 21 22:27:33 2021 -0400
+
+ matrix::element to store std::variant value instead of using union.
+
+ Also convert a whole bunch of related methods' return value types
+ from const std::string* to std::string_view.
+
+commit ede3c27dac5d0c793241e92fa755bb990e016afc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 17 22:05:47 2021 -0400
+
+ Remove deprecated model_context::erase_cell().
+
+ Call empty_cell() instead.
+
+commit ccc70ad81dd3a7df9bb09f2e169dc80aca25665f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 17 22:03:26 2021 -0400
+
+ Remove deprecated model_context::get_all_formula_cells().
+
+commit 852ecff7f78965c580529f311776363976934e80
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 17 21:51:44 2021 -0400
+
+ model_context::get_identifier_from_string() to take string_view.
+
+commit 131cca72d73b8d327fae20f2237588d9a5b9cbbc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 17 21:36:28 2021 -0400
+
+ model_context::set_named_expression() to take std::string instead of ...
+
+ ... a char pointer and a size. The caller can move a string into this
+ call.
+
+commit f86a29cfdf93e8bc307e0edea1587b4b671fb5d9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 17 21:06:10 2021 -0400
+
+ Remove append_sheet that takes a char pointer and a string size.
+
+ It is just a front for the other variant that takes std::string.
+
+commit 5d7e0ca147e890ea80ec8878d36c23e45d3b52f4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 17 20:50:32 2021 -0400
+
+ model_context::set_string_cell() to take string_view.
+
+commit b49a270b9f5f10efafe13eecbcb9e3c2fb4ee9ad
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 16 22:37:16 2021 -0400
+
+ Move mem_str_buf.hpp header out of public space.
+
+ This class will be slowly phased out in favor of std::string_view.
+
+commit 1a6c2c0975e8d6c7ae611f154360b8707765604c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 16 22:25:00 2021 -0400
+
+ Refresh slickedit project.
+
+commit 1e64cc932800e4ac160e25859730da815025f980
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 16 22:16:45 2021 -0400
+
+ Use std::variant in model_context::input_cell.
+
+commit 46a181c9df834345ee6cacf7b57c22f9bde6688b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 16 22:03:46 2021 -0400
+
+ Use std::string_view in formula_name_t::table_type.
+
+commit 53a73e69565d5d4cf61677890f9b082dd5a7a5b7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 16 21:26:16 2021 -0400
+
+ std::string_view in create_formula_error_tokens().
+
+commit 6f35182a42c5eb8be67cd5dab248236695c5ce0e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 16 21:10:42 2021 -0400
+
+ Use std::string_view in parse_formula_string().
+
+commit fc62d9d57ad2cd5334506e7691ad25b07681fb63
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 16 20:52:13 2021 -0400
+
+ More on switching from const char* to std::string_view.
+
+commit 3537dfacffdac40c2cd928fc918175d63d4b51f9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 16 20:42:32 2021 -0400
+
+ Use std::string_view in lieu of raw const char*.
+
+commit 969823a9edf6dcc6e163b67e00531c392cefb5ed
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 16 20:28:04 2021 -0400
+
+ Use std::variant to replace union.
+
+commit 9917be8478030d17ddbd1c06c8121f69af1c9f66
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 16 20:10:29 2021 -0400
+
+ NULL is no more.
+
+commit 8337c191143827b17a2f0a26b99d59b856975c26
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 16 20:05:53 2021 -0400
+
+ Simplify formula_result::parse().
+
+ It no longer takes formula_model_access since string formula results
+ aren't converted to string ID's.
+
+commit 193cfc41f06d6267bb1315ae60d1d895d3f4b2ce
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 23:24:17 2021 -0400
+
+ get_sheet_index() to take string_view.
+
+commit 4f2cb393d795d0b422e5ecd92b4b61a7ee05d352
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 23:17:35 2021 -0400
+
+ add_string() and append_string() to take string_view.
+
+commit c8c64774915883f203388cc8d0d2eb582bdc50d9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 22:56:16 2021 -0400
+
+ append_string() doesn't need to be a part of the formula_model_access interface.
+
+ It is supposed to be called only from initial document loading and not
+ during formula calculation.
+
+commit 0c3f9589442847d7aab2ec7ed4b2a31553425293
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 22:46:13 2021 -0400
+
+ get_named_expression() to take string_view.
+
+commit f326039b7434c93d405abcac77b3c46c051c994a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 22:33:25 2021 -0400
+
+ session_handler to use string_view in lieu of const char*.
+
+commit 4a65f07753dff608eb644b8e4e72d3338bc6163b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 22:30:28 2021 -0400
+
+ resolve() method to take string_view.
+
+commit 611fbd7a7c60c787286dfab2ef8899f91ac40c2a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 21:03:17 2021 -0400
+
+ Use relative header paths in public headers.
+
+commit ab0e25d2672f770fb569ad420f8a9db0ff577cfb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 20:46:14 2021 -0400
+
+ Use string_view in function opcode functions.
+
+commit 7bcdc99800146e4bf0f4dfc2d2a61c3562777be9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 20:29:36 2021 -0400
+
+ Update exceptions' signatures to post C++11.
+
+commit feb6465f7e0cd571ac6803b3793587c27afadbe7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 19:48:03 2021 -0400
+
+ to_bool() to take string_view.
+
+commit 0e5224286f7fa7fcf551384de1cbf8f2bd7a92d1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 19:44:19 2021 -0400
+
+ to_double to take string_view.
+
+commit 66b77e1f8f4c17c79cd38dfd885f3da43c88ef11
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 19:31:34 2021 -0400
+
+ Get rid of this weird global class with no state.
+
+commit 6dc7f14841377072822573575e59694b177c91b4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 19:13:40 2021 -0400
+
+ Move formula_error class to exceptions.hpp.
+
+commit 7f82a65a087766cf06b722cb98b4a509a52a6e80
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 00:15:37 2021 -0400
+
+ Hide load_file_content() from public API.
+
+ Also add app_common.?pp which I forgot to add previously.
+
+commit c1ff8c1f87f894b313191d7ed3744c3bcebb02bf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 15 00:04:00 2021 -0400
+
+ Use std::isdigit, and remove is_digit from public API.
+
+commit 5cf46ddc52c3a2f49ab4a99cc1c67461e7f1b59f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 14 23:38:01 2021 -0400
+
+ Move or remove weird global functions from public API.
+
+commit bc7256124ff2d1ad31ede41df3f5ff3c41fbb491
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 14 23:21:15 2021 -0400
+
+ Use std::variant in lieu of union.
+
+commit e35d13f5a3b416b7b698a3a49eb3d12c75761ba3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 14 22:49:41 2021 -0400
+
+ document::set_formula_cell() to take string_view.
+
+commit 8e4b88002a36f60cfd214447fde25032311cecc3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 14 21:20:35 2021 -0400
+
+ document::set_string_cell() to take std::string_view.
+
+commit 8fe449fab279ae15a43448cd40c784901d8bc8b7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 14 21:02:30 2021 -0400
+
+ const char* to std::string_view in compute_engine.
+
+commit ee62da6d9025654f26b6cc197a0669cfadf7484a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 13 22:55:23 2021 -0400
+
+ You still need to make the extern "C" function visible...
+
+commit 9b13065f97147a84640142bf9a5aac9c1a2a1e92
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 13 22:44:41 2021 -0400
+
+ Implement module loading on Windows and get the Vulkan test working.
+
+commit 407201fce72db313fa317688f39435e53d636482
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 13 21:38:15 2021 -0400
+
+ Enable assert macros even in release builds.
+
+commit d76a6bd2a8115cb6b254f88cba3383a4f21329bb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 13 21:20:45 2021 -0400
+
+ Add option to build vulkan module via cmake.
+
+commit 636e4287dc740030a5aa6a2235b17a9a09ad5ec8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 9 13:21:54 2021 +0000
+
+ Fixed a bug in wording.
+
+commit b36239ea91728ff4e1667bfdf87d0226965b20f5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Aug 14 11:03:45 2021 -0400
+
+ Remove all doxygen warnings.
+
+commit b2b546a28f5a224b2d42e526c17284c75dcc51a8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 13 20:51:07 2021 -0400
+
+ Address some doxygen warnings.
+
+ We need to start replacing {@link ...} with simple method_name().
+ The latter works better with doxygen.
+
+commit 548f08966d3b64fcfd06eeb6caa5d52bc2b0dc00
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 13 20:09:35 2021 -0400
+
+ Turn this into a compile-time check & add check for the function ID too.
+
+commit 2cb6891fb53749932dde1a577644df7b01fdd837
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 13 19:43:59 2021 -0400
+
+ Make sure that string ID values don't exceed 32-bit size.
+
+commit f3a4981db86411d5df3fe217ee4c95e85cd59b36
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 13 19:31:31 2021 -0400
+
+ Explicitly store unsigned 32-bit integer with formula tokens.
+
+ Also fix the size of string ID's to 32-bit, and rename get_index() to
+ get_uint32() to make its intent explicit.
+
+commit 735db7ea4276bea0c43ee5ff8a72c15972fb886b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 13 16:21:21 2021 -0400
+
+ Fix documentation building.
+
+commit 7e60507821190ee18739d45166803af028ee2e19
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 13 15:14:15 2021 -0400
+
+ Update the doc build settings for the readthedocs site.
+
+ Mostly carried over from the mdds project.
+
+commit 48eeb9791d84767ba5c0da971694ce145a01c318
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 12 20:33:21 2021 -0400
+
+ Fix build with MSVC.
+
+commit 70544c957c29ef6113c4d740cc355a428ee04985
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 11 19:54:56 2021 -0400
+
+ Fix the build with MSVC.
+
+ Actually I'm surprised the old code built with gcc.
+
+commit e40fdf8cc7d87cb4b15588f6d91835f6d61d2f0e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun May 30 00:52:56 2021 -0400
+
+ Wrong namespace labels.
+
+commit 55c8b509240a689abc72cd61c1fbec48bfe7feec
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 26 23:20:20 2021 -0400
+
+ Declare this derived class final.
+
+commit f6e6fee1815415373265505d38e2ebaf94b56612
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 26 20:36:11 2021 -0400
+
+ Improve inline comments to describe the vulkan pipeline more.
+
+commit ab54161ebd2f1454455f3df544572c3fca9158c3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 26 11:46:10 2021 -0400
+
+ Print only the first 15 and last 5 values & measure running times.
+
+commit 88a3c4985e4735c5a253375e792dba9d803ee976
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 25 23:54:18 2021 -0400
+
+ Specify runpath to $ORIGIN so that it can find the vulkan module ...
+
+ ... without relying on IXION_MODULE_PATH being set.
+
+commit b4d344e1228652342b8110c3586bc44f8ab42104
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 25 22:09:01 2021 -0400
+
+ I don't think I need this, since I use fence to wait.
+
+commit c6625ca1cec1b5db2f97b09000dd4c2c45395e47
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 25 22:05:19 2021 -0400
+
+ Ensure that the flush / invalidate range is a multiple of the atom size.
+
+commit dc00a9165101d055700e6a91a0a90c7b8b5f8095
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 25 21:44:40 2021 -0400
+
+ Add CPU implementation of fibonacci numbers.
+
+commit 7cc28dae3e4777064b33d216114e8f6d6dd3693b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 25 21:20:26 2021 -0400
+
+ Generalize the raw data byte size calculation.
+
+commit 452af0058bcc1617c07e46fc324dcaff9282a506
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 25 21:08:04 2021 -0400
+
+ Finish fibonacci computation all the way.
+
+commit 81139e61e5048a27eafd17b9ef0a5fdff5d639a1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 24 22:51:03 2021 -0400
+
+ Create a pipeline instance.
+
+ Also pass BUFFER_ELEMENTS as a special constant to the shader code.
+
+commit b64911793e52a1b203d54134f89172e7ec398309
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 21 23:16:25 2021 -0400
+
+ Actually I don't need to go through std::ostringstream for this...
+
+commit 6c75526dc47cc48442c864d4f01796b10cafb787
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 21 22:39:31 2021 -0400
+
+ Create a shader module instance for fibonnaci computation.
+
+commit 1b0b1f5031046d70eb8abd1439c60e7694f46295
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 21 16:44:37 2021 -0400
+
+ Print test function names.
+
+commit 58d3fdf74d6854bdd80caa6ec78500127d3f7eb5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 14 20:36:51 2021 -0400
+
+ Fix CMake build.
+
+commit a24a3c55fb28970552aff2cb90128e06334c421e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 4 08:39:02 2021 -0400
+
+ Maybe use gfortran-9?
+
+commit ed94dd5db9349f29c794a0e6e974f3f1aaefd3d4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 4 08:34:41 2021 -0400
+
+ Remove gfortran-8 package usage.
+
+commit 5c5a509a8740c1c380090f3c69901a389890be4d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 23 21:01:35 2021 -0400
+
+ Create a pipeline cache next. This one is no brainer.
+
+commit 79013b8bb23039fcd35ab7618ada70ae43729999
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 22 22:36:51 2021 -0400
+
+ Update the descriptor set with the content of the buffer.
+
+commit 97a74069313d9e4a7499e8c000cb4d3bae53798d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 22 22:03:27 2021 -0400
+
+ Allocate a descriptor set from the descriptor pool and layout.
+
+ I believe there is no need to destroy descriptor sets individually
+ since destroying the pool will take care of that?
+
+commit 7e3cf8c8c2d5168968f7859fae6f031009b2aa9e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Mar 19 21:39:20 2021 -0400
+
+ Create a pipeline layout.
+
+commit cf6fa61678b666ff1bbd03192da1ec7d61fd8ae8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Mar 19 20:57:05 2021 -0400
+
+ Create descriptor set layout and its wrapping class.
+
+commit 8b3eb803513b9bf850890418918407fe200ced12
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 17 23:29:34 2021 -0400
+
+ Pass initializer_list by value.
+
+commit 6ac5b7fe4139bfb585f1e9b0e103ae34dc1786bf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 17 23:24:49 2021 -0400
+
+ Move the buffer-copy part into its own function, and create ...
+
+ ... a descriptor pool. Also write down the rest of the steps as
+ a reminder.
+
+commit d7a7de2827ee6d3904c0f18e6be043a68cfacdc8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 16 20:39:02 2021 -0400
+
+ Finally submit the copy command to the queue and wait on it via fence.
+
+commit b3e80edc1c60121e2bae4998f0efc86fb8ada2ec
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 15 21:14:43 2021 -0400
+
+ Record command for copying from one buffer to another.
+
+ All I have left to do is to submit it to the queue.
+
+commit 00c871b3e22482329d5e6fcf96d57e01f70422d6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 15 20:00:09 2021 -0400
+
+ Let's flush the modified memory range before unmapping.
+
+commit 3d9631b4d6883dbe012cdb02c77d1ff5929e4d4f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Mar 14 17:06:15 2021 -0400
+
+ Let's not forget to initialize this with a null value.
+
+commit 6b8a97868cd1307fb67984754a12c189b409b21a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Mar 13 21:37:23 2021 -0500
+
+ Create a device-local buffer too. To be continued.
+
+commit 4276fc1d04491f075a72a79f439d482737386122
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Mar 13 15:14:58 2021 -0500
+
+ write_to_memory sounds better.
+
+commit 03139ba4e33852ce1a40637bd5ea55b62b806994
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Mar 13 15:07:52 2021 -0500
+
+ Don't forget to account for the size of the integer.
+
+commit e1d2e840458626ef95995c554571dc972c8e4853
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Mar 13 14:52:57 2021 -0500
+
+ WIP: set up a method to compute fibonacci sequence, and ...
+
+ ... go far enough to allocate buffer memory and populate it with
+ input data.
+
+commit 96a4674f4ca47ad1016bae3892870e31b43bf899
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Mar 12 23:03:23 2021 -0500
+
+ WIP: RAII wrapper for buffer object. Not finished yet.
+
+ I still need to find & allocate memory and assign data to it.
+
+commit 46acda579331d9a686e871a57fee4e326880e7e4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Mar 12 20:44:05 2021 -0500
+
+ Create a command pool.
+
+commit 9b973355b1816aa59d43ad6ba269a1aa9150daf8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 11 22:04:37 2021 -0500
+
+ Create a logical device and pick a compute queue family.
+
+ For now we are picking the first available physical device.
+
+commit 3bec790b4731be7f8c64c0615cdaae5709f3f9ca
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 10 22:16:41 2021 -0500
+
+ Set up a wrapper for VkDevice and query for available physical devices.
+
+ Still not done yet. I need to work on obtaining a compute queue family.
+
+commit 4add59dcbdd12ccbdef13edf258c5e6c74faac3b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 10 21:07:13 2021 -0500
+
+ Create vk_instance to wrap VkInstance creation and destruction.
+
+commit 19584cf6f4df55e114dd1f0644dc09117b515153
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 10 19:35:51 2021 -0500
+
+ Change the header guard name.
+
+commit 2e89a87a219ea491ffe454f7c299e687601ebe20
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 9 21:05:20 2021 -0500
+
+ Set up a callback function for validation layer.
+
+ Without this no messages from the validation layer would be printed.
+
+commit bc7c0b0ff62b7df62334cbdae1d774ffa8694748
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 9 20:47:05 2021 -0500
+
+ VK_EXT_debug_report is deprecated.
+
+commit 98fce03d3a476b3a0f5b6a7975c9a7d90262077c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 9 20:43:37 2021 -0500
+
+ Use khronos validation layer instead.
+
+commit a41122664344ba6f4ef30d6ad822dc67af9cb997
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 9 20:36:16 2021 -0500
+
+ Detect validation layer before enabling it.
+
+commit b3fedd075c9712254519d268e8d23bf19ce14a78
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 9 20:17:12 2021 -0500
+
+ Detect and set up vulkan library & create vulkan instance.
+
+commit 1284577aaf2170e3f290b47a4e5c0fad01e8855b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 8 22:01:09 2021 -0500
+
+ Rename all the cuda bits to vulkan.
+
+ This will be used to experiment with vulkan as a potential compute
+ engine.
+
+commit 6a2286d547824f66dd84fbe27ee025831d8d3107
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 8 21:41:11 2021 -0500
+
+ Let's print something during test run.
+
+ Also remove debug statements from the cuda compute engine.
+
+commit dcb164c8c56861d70befca03f1fe026e011c1c48
+Author: David Tardon <dtardon@redhat.com>
+Date: Sun May 2 21:41:04 2021 +0200
+
+ fix cell count check
+
+commit c159098d377313a5c2dbc6d1053714b35cbb0f04
+Author: David Tardon <dtardon@redhat.com>
+Date: Sun May 2 21:35:56 2021 +0200
+
+ fix assertion
+
+commit ecfd2f08fafab3da627b655fcfc4d6ec231e463d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 9 23:11:41 2021 -0500
+
+ Add all currently implemented function specs.
+
+commit 774d3f2760d7fabbc24bf97dce24834e168704f2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 9 22:54:26 2021 -0500
+
+ Add a work-in-progress builtin function specifications.
+
+ This will be also used to track already implemented functions vs
+ all function opcodes to query those not yet implemented.
+
+commit b37e8a76b84110930e853726b235908c4b0033db
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 9 22:02:34 2021 -0500
+
+ Sort the cases alphabetically.
+
+commit 13c52de54179be8d30c4a7f296a14e3155a35bef
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 8 09:14:26 2021 -0500
+
+ Up the CMake minimum version to silence warnings.
+
+commit 5f55b86bbbe443c0286673e117e576e615d08b40
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 6 11:00:56 2021 -0500
+
+ Fix the build with VS 2019.
+
+commit 0d067ac80e89f4617c6a999dff776f58c5d75d56
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 5 17:30:27 2021 -0500
+
+ Fix CMake build with VS 2017.
+
+commit 4b01623c619e1eefee94c926d6ade5c3dcb04a29
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 6 23:28:55 2021 -0500
+
+ Print argument separators correctly.
+
+commit c8be04fa69c05f27f2ce237fa4b8190d59ad40a7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 6 22:55:12 2021 -0500
+
+ Implement LEFT() built-in function. (#43)
+
+commit 1992b8ab9c7765b8da06b6054bb3c0ab990c62f7
+Author: orbea <orbea@riseup.net>
+Date: Wed Oct 28 08:13:31 2020 -0700
+
+ Fix build with clang.
+
+commit bafe7037c63bf741f84020ea6a6d3fdedfe11af3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Oct 16 16:35:21 2020 -0400
+
+ We need to allow dots in names but not as the first characters (#41)
+
+commit f3a538b52df6b72039364bccd395ec14b657594a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Oct 16 15:25:23 2020 -0400
+
+ Also check against empty names and names starting with ...
+
+ ... numeric characters (#41)
+
+commit aab0d51d613a9267ede24904734ff7e85708b105
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Oct 16 15:21:22 2020 -0400
+
+ Add a test case for named expression name validation (#41)
+
+commit 16969ebfd35397c1b3e1a927ab7836ee7ef3a22f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Oct 16 14:58:10 2020 -0400
+
+ Validate the name of each named expression (#41)
+
+commit 444b07079e3c472eaec06f8b9af965777981f04c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 30 18:30:19 2020 -0400
+
+ Set the required mdds API version to 2.0.
+
+commit d838eab48af378af75671b4d305efd5763d02605
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 30 12:49:26 2020 -0400
+
+ Set the new C++ baseline in cmake too. (#37)
+
+commit b3b5a7072ef0748bf905b1d8fdc28602d377e10d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 30 09:52:14 2020 -0400
+
+ Nobody should be using this anymore.
+
+commit d97a14d119ae9b20536457c403288c26bc24593e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 30 09:50:07 2020 -0400
+
+ As a first test, replace all uses of ixion::make_unique with ...
+
+ ... the one in the std namespace.
+
+commit f9cfcbc8e2a84059496ea3e6abab4c634ccf8278
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 30 09:43:31 2020 -0400
+
+ Set the C++ baseline to C++17. This is related to #37.
+
+commit c087433eceaa9ead1b3d968f0d7eb3873fe20b73
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 29 19:28:25 2020 -0400
+
+ Internalize column_store_type.hpp header file.
+
+commit 1e0290e888e92675a0826b2facedf1985bad17f4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 29 19:12:41 2020 -0400
+
+ Remove get_column() and get_columns() from model_context.
+
+ model_context_impl will continue to have them.
+
+commit f77ab7591bfc95a542218cceda566ea1d5960491
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 29 17:18:48 2020 -0400
+
+ Mark these methods deprecated.
+
+commit aa10eacfee3af66955cb4ef6e605860e165dc971
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 28 17:33:43 2020 -0400
+
+ Set the version number up to 0.16.99 and the API version to 0.17.
+
+commit 3ae006fae016f1d169501216b673879a17a6554f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 28 17:13:31 2020 -0400
+
+ Adjust model_iterator to use detail::model_context_impl instead.
+
+ This is in preparation for the future removal of get_column(s)
+ methods from model_context. (#38)
+
+commit def5cc4b6c7d846b05714e7495eddf0346ec401c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 26 13:34:26 2020 -0400
+
+ Update CHANGELOG.
+
+commit 5bb042296272e82a9b80489223dccfe87d4a9108
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 26 13:27:18 2020 -0400
+
+ Set version number to 0.16.1.
+
+commit f5571274b3a8ee06f30dbf75c054ab78cc966b99
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 23 21:28:18 2020 -0400
+
+ Work around the floating point rounding errors esp. on 32-bit platforms.
+
+ This is related to #39.
+
+commit 49c0b5fdfc315bdec5a111b118ce025b6365dc01
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 23 20:35:35 2020 -0400
+
+ Make the size of void* available as a macro, and use it to ...
+
+ ... specify uint32 as the size of string_id_t on 32-bit platforms.
+
+ This is related to #39.
+
+commit 41b79d2a1ddb170abbf978161e48c8118da8fa12
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 21 21:15:57 2020 -0400
+
+ Print the min and max values of string_id_t.
+
+commit 6b1c2e308e903536ca7bc9584215f1d68ed13222
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 21 21:12:18 2020 -0400
+
+ Check the size of string_id_t which is an alias to uint64_t.
+
+commit 931219140de262da261cbebdde578f40a2d19b1b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 21 21:00:58 2020 -0400
+
+ Add a debug statement in case we have an invalid string index.
+
+commit f9b8a29cf96cda39bfd36ffda64e942f17fa0f1e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 1 21:04:13 2020 -0400
+
+ Move the old package download table out of README.
+
+commit 04642ce02382f242efc476d04060c7ac68a58441
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 1 20:59:18 2020 -0400
+
+ Typo.
+
+commit 220f5ea876744655c32c2e27de444f77b054f999
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 1 20:47:34 2020 -0400
+
+ Use the prefix without the 'lib' for package URLs.
+
+commit f7cd800a2787c112b2e1da13249f1c30f940531a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 1 20:44:59 2020 -0400
+
+ Add script to generate the release page template.
+
+commit ced976c201d9dd6177c6051ccee0efde0b7af002
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 1 20:10:46 2020 -0400
+
+ Populate the CHANGELOG from the 0.16.0 milestone task list.
+
+commit 5e8e63bb3b3bf4c6127ee0ded0e388c47b64efdf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 1 19:45:04 2020 -0400
+
+ Add a space in between.
+
+commit 1727664370aef3b0433fbc00def439edbbddb01e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 31 23:42:26 2020 -0400
+
+ Fix build with Visual Studio 16.
+
+commit 29952cd406c5b704d92eb5ddd3c2ed39ac62fe75
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 31 20:49:30 2020 -0400
+
+ Fix make distcheck.
+
+commit 1494c38fc6a78249a7565c26e5a785e3e10057fe
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 31 20:16:46 2020 -0400
+
+ Set the version number to 0.16.0, in preparation for the release.
+
+commit 1bf35e21626249375530067296cdd0ff7c8a711f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Aug 29 12:23:19 2020 -0400
+
+ Let's not call them "planned" features.
+
+ They may or may not be implemented, depending on time and interest.
+
+commit d6d27b77d5053a8c512805be29b5c64256239ef5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Aug 29 12:21:29 2020 -0400
+
+ Omit manually printed function names from the debug outputs.
+
+commit f77e226acdefccfe579eac0d4bd4589160652de0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Aug 29 11:03:15 2020 -0400
+
+ Remove spdlog bits from doc and cmake build script.
+
+commit 196479d26c2cedfed9231de2d22ce01dc1611425
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Aug 29 10:51:17 2020 -0400
+
+ Tweak the logging output prefixes.
+
+commit 9b187523e5105da85ccc235762a9fa1c78976839
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Aug 29 10:36:46 2020 -0400
+
+ Replace all uses of SPDLOG_DEBUG and _TRACE with IXION_*.
+
+ While spdlog is great, my need for logging is limited to compile
+ time and wasn't worth the extra hussle of having another run-time
+ dependency. IXION's own logging is very simple, and is inspired by
+ the logging facility implemented in LibreOffice which was done by
+ Stephan Bergmann. That said, the one in ixion is very simplified
+ version of LibreOffice's logging.
+
+commit 69279d8d3b43f5e4711ba521628675b1177e7b5a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 27 21:08:37 2020 -0400
+
+ matrix class to no longer allow storage of string ID's.
+
+commit 266d0f951c27ef5c673ab2d11784958071d26b0b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 27 20:46:54 2020 -0400
+
+ Add test for retrieving a single string value from an array result.
+
+ With this, I can remove the TODO marker.
+
+commit 1aa58b66b6ea3f1c0f47c5b1cb788814f330696b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 27 19:57:40 2020 -0400
+
+ Rename get_string_value() to get_string().
+
+commit 7ea3235d409e7e655344161fc0c2432838151b82
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 27 19:49:01 2020 -0400
+
+ Let's switch to event notification method.
+
+ This way I only need one virtual method & it can be extended to
+ add other event types if needed.
+
+commit 647e97171d5111bcca40577f0f2c48d1b456b56c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 26 23:25:33 2020 -0400
+
+ get_string_value() on empty cell should return an empty string.
+
+commit 479f682ea9ad27c28cacc1c3493fcd33ad25ee64
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 26 23:05:02 2020 -0400
+
+ Store the wait policy directly in model_context, and switch ...
+
+ ... between the two policy modes automatically before and after
+ the calculation. In theory we should be in block mode only during
+ calculation.
+
+commit 9a375dc22481eb4e50d430a7ff97762392c67b46
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 25 21:51:51 2020 -0400
+
+ Introduce a policy on what to do when querying for a formula ...
+
+ ... result when the result itself is not yet available. With this,
+ I can retire the *_nowait() methods.
+
+commit cf63d04c4dec7d836287b6cf4d4bc29729000258
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 25 20:37:00 2020 -0400
+
+ Actually this method no longer makes sense, since formula cells ...
+
+ ... don't produce string ID's anymore.
+
+commit 62caaa5cf0aa9b66f808667492e2a97814f3eac2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 25 20:26:38 2020 -0400
+
+ Formula cells no longer produce string IDs.
+
+commit 8115bb08c0a6a75018d11075fa1a2a8e09f2f1d0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 25 20:17:03 2020 -0400
+
+ formula_result to no longer allow storing of string_id.
+
+ And rename the 'string_value' enum member to just 'string'.
+
+commit 04e2face20b750f2392bf4ed6243b28d23b88de6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 24 22:55:10 2020 -0400
+
+ Switch to storing raw string values in formula results for real.
+
+commit 0858319efc83e20621ab35187c6b8d8b9752aa5b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 24 22:51:29 2020 -0400
+
+ Add the ability to run gdb and valgrind with python interpreter.
+
+ This is copied from orcus.
+
+commit f7ece24cd5f487275d304702b4950d1cc67741fa
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 24 21:39:17 2020 -0400
+
+ Support storage of raw string values in ixion::matrix.
+
+commit 3e2d6aa4c824f25ee9ec60f1b308742b61f25a99
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 24 21:03:25 2020 -0400
+
+ Add a string_value result type and in formula_result, and ...
+
+ ... allow storage of raw string values in formula results. It is
+ not yet used. Also, I need to adjust ixion::matrix to allow storage
+ of raw string values there too.
+
+commit 2cb3b6157e0012419299b97eaabfdef6e185d380
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 23 10:02:32 2020 -0400
+
+ Fix the cmake build with MSVC.
+
+commit 49a7280b735e8c67ccb7c3bb363ad4473a19691c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 15 22:39:34 2020 -0400
+
+ Expose the formula function name to opcode function to public.
+
+ Also add function docs and make the size of the opcode explicit.
+
+commit 076f6576e7398842457d34fd68140512795c7e00
+Author: Lars Wendler <polynomial-c@gentoo.org>
+Date: Fri May 15 12:42:20 2020 +0200
+
+ configure.ac: avoid bashisms
+
+ or else we end up with unpredictable results if shell != /bin/bash:
+
+ ./configure: 19427: test: xno: unexpected operator
+
+ Reported-by: Matt Whitlock <gentoo@mattwhitlock.name>
+ Gentoo-bug: https://bugs.gentoo.org/723128
+ Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+
+commit bf9b343de50ce8d3f5a670db699e30c600327ca8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 11 19:18:48 2020 -0400
+
+ Add links to the quick start sections.
+
+commit 7493472d473858ab3e39e61cb0224d43cbee1634
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 11 19:12:08 2020 -0400
+
+ Tuck the Matrix section under Types.
+
+ Thereby leaving room for possibly other types to come in.
+
+commit 79a836f214189047b28efe5ad35e74d97f76b968
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun May 10 13:53:00 2020 -0400
+
+ Add a link to the complete code example.
+
+commit 5031816a99f9cd8fa69db64da4760ef8f4f4166d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun May 10 13:47:19 2020 -0400
+
+ Add a section code example for cell_access.
+
+commit 8e36882fd655e4099eed525eb733bc9eaacaf0e6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun May 10 12:54:12 2020 -0400
+
+ dirty_cell_tracker doesn't make use of formula_model_access.
+
+ And in theory it shouldn't, as it does its things purely based on
+ cell and cell range addresses.
+
+commit ac21faeb8ab536e2b2f1024662a15bca1212ca77
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun May 10 12:51:59 2020 -0400
+
+ Add missing types and classes to the doc.
+
+commit 01ace390ffaf102e0eba18e45d9b596287049838
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun May 10 12:17:49 2020 -0400
+
+ Tweak the wording.
+
+commit 625c28cdfd9d6f26af1fa55659f43a872fee3b6a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun May 10 12:10:13 2020 -0400
+
+ Add some verbiage to the front page.
+
+commit 50aacbbb49c757a4f36a4f8b96df3dca85dabc85
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 21:12:48 2020 -0400
+
+ Re-word project summary.
+
+commit 48719838034579982575f0e737887cc839a7b7a2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 12:31:42 2020 -0400
+
+ Example code should be more liberally licensed. Let's use MIT license.
+
+commit 510ce08ffbf36edda0522a8bc37050b5b3d423b7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 12:23:31 2020 -0400
+
+ More on documenting the global types.
+
+commit 0d86ef3039d4b56a04287ed20eb2b346309140af
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 11:35:50 2020 -0400
+
+ Add rst files to slickedit workspace.
+
+commit fd443f2f8b5618107b2bc31ce2f58527626b2c8b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 11:32:59 2020 -0400
+
+ Rename Overview->Quickstart for the Python API section too.
+
+commit a1acef326962d7dab7bfcd5f41105e1964ec8c40
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 11:31:31 2020 -0400
+
+ Add some very brief project overview.
+
+ This needs to be expanded later.
+
+commit a5f90ee11c56071d851293befc10390efe4fcff9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 11:20:52 2020 -0400
+
+ maxdepth of 2 is probably more convenient.
+
+commit 9b08d1c9f5a17541ed8befd971bd3cc13ac8a6da
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 11:18:34 2020 -0400
+
+ Move all formula related sections under a common 'Formula' section.
+
+commit 18c4d70a1aa47db01ce479539768dbf0d94bfc3f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 10:45:46 2020 -0400
+
+ Moving sections around for (hopefully) better organization.
+
+commit 1af29b12d0d4a8d01dbd8c4ea599b03d6f2db403
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 10:13:54 2020 -0400
+
+ Sigh...
+
+commit 1e8e70147fa8afa58535c36f961f68f7da57c800
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 09:45:20 2020 -0400
+
+ Change the section title here too.
+
+commit 90b9008e9a6ec87556ffd8b908b57217ff0f5840
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 09:41:22 2020 -0400
+
+ I need to rename it here too.
+
+commit aedfd971acb71e77a940413970e2ead1041c8348
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 09:38:30 2020 -0400
+
+ Rename C++ Overview to Quickstart.
+
+commit 6ff9650c33c38af20c8688fe4b4de8dae9ced028
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 09:15:48 2020 -0400
+
+ Drop hard-coded VS 15 generator.
+
+commit ca13a1875f832bb82b7d09cd2779e2f1abe8033b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 7 20:51:29 2020 -0400
+
+ Finish up the "using document class" section of the documentation.
+
+commit 44f4e32b49648f3f44bd8fb386c9439252fee479
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 6 22:39:36 2020 -0400
+
+ Work on the "using ixion::document" section of the doc ...
+
+ ... and while at it, add a new constructor to the class to allow
+ specifying a non-default cell address syntax.
+
+commit f109d053aa24bd2ab0b026a344783f318637b1a6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 6 19:36:29 2020 -0400
+
+ Add a new example code for using ixion::document.
+
+commit 1fc618f57ebf1d1f7fdf483c37103a49ca7b1365
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 5 22:05:09 2020 -0400
+
+ Add warning about registering and unregistering formula cells.
+
+commit 525e9dbd84488219fba8d047e5ec51058fd2d829
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 5 21:29:11 2020 -0400
+
+ Add a hook for writing doc on ixion::document.
+
+ To be completed later.
+
+commit d8177567bb3fcbc8eb25acf7d2d2c27b9ea7ba3f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 5 20:52:10 2020 -0400
+
+ Update the sphinx documentation to include ixion::document.
+
+ Also organize the API around data storage a bit.
+
+commit 8f1c8f6910e59e89a9b8079e212212a22ca3b6e4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 5 20:41:50 2020 -0400
+
+ Implement empty_cell() in document.
+
+commit 1ae04b33cd11b35bf93f0aea536a443c829fba40
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 5 20:13:05 2020 -0400
+
+ Deprecate erase_cell() method both in model_context and ixion.Sheet.
+
+ Let's call it empty_cell().
+
+commit cfedc8b3efc5eae48774f42422ebaa05f1a9da77
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 4 22:37:52 2020 -0400
+
+ Don't forget to unregister formula cells when modifying cells.
+
+commit 891b17a04565ba89a4c890ee0e09720791c52a0d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 4 22:22:35 2020 -0400
+
+ Add boolean I/O and a test case for it.
+
+commit 1acd666b9a76a85df043fb9a2c7a9d0dbd9e9335
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 4 21:44:49 2020 -0400
+
+ Add string I/O to document.
+
+commit ed316fe75de7f16cbdda5ea5ba38f98b041f1d32
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 4 21:10:02 2020 -0400
+
+ Take care of running calculations.
+
+commit 567a110845830a89ed78069c1a5903857299e1ac
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 4 20:41:20 2020 -0400
+
+ Add bits for numeric value io & add a test case.
+
+commit d1f36c65afec60b6610dc5b489a36423250cf9a2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 4 19:46:51 2020 -0400
+
+ Add a skeleton ixion::document class definition.
+
+commit 9f3ac7f3d63ee9e7f366ed80019bd1e8e47deae4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 2 12:37:15 2020 -0400
+
+ Add cell_access to the documentation.
+
+commit 1e17eee6ba9570d1d0e2b2a01323470c8225a8ac
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 2 12:23:18 2020 -0400
+
+ Add some hint.
+
+commit 350b1597d40cc507deaa6eea320138653ba37059
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 2 12:08:22 2020 -0400
+
+ Clarify the expectation of those range set parameters.
+
+commit ba402b369316aa4f40955f0811ce79e37f858e0c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 2 10:36:28 2020 -0400
+
+ Add a bit more example to the quickstart page.
+
+commit 8bc777e5bffc8978045231d7af8243cc8d4e9284
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 1 22:43:17 2020 -0400
+
+ Extra guard protection.
+
+commit d957d3706c04d26b83e3d595e0403bae3be12997
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 1 22:32:24 2020 -0400
+
+ No need to manually prefix library name with 'lib' in cmake.
+
+ I believe that's done automagically when building it on unix.
+
+commit f5401b79f861a3027aaa22b96bb80a0802f878dd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 1 22:26:16 2020 -0400
+
+ Fix MSVC build.
+
+commit 5d9fe99309513bf3c0eb7e7dcd16b8be4cc8cf7d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 1 21:45:35 2020 -0400
+
+ Add cell_value_t enum which factors in formula cell result type.
+
+commit 69fe820d9aa33e928985e79c6001aa52d0a50d37
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 1 21:12:13 2020 -0400
+
+ Add test case for cell_access's get_string_value().
+
+commit d94fcf78b1deb50861d7010c282c9696e6246063
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 1 20:53:18 2020 -0400
+
+ Add get_string_value() to cell_access.
+
+ Test code will be added for this later.
+
+commit d95e31efc4dac954ba1d4434f5b3a0329ad78cc8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 1 20:08:20 2020 -0400
+
+ Add methods to access four types of cell values, and ...
+
+ ... use them in model_parser.
+
+commit e73090e1b16b72d279fa642cde41121d684050ec
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 1 18:48:59 2020 -0400
+
+ Set up cell_access class.
+
+commit f8edefb81f15dc5df1c542dbc87204cea71142cc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Apr 30 21:58:03 2020 -0400
+
+ Use mtv's position objects to avoid double lookups of cell position.
+
+ First to get the cell type, and second to retrieve the cell value.
+ Use of position objects will avoid this.
+
+commit e2b166af8450c958f676dcd25a35b00d9b3ab954
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Apr 30 21:30:52 2020 -0400
+
+ Add get_string_value(...) method that returns actual string value...
+
+ ... instead of a string identifier.
+
+commit fd05b1be4b1148328dd54e9fe3e63d65bac20f25
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Apr 30 20:25:45 2020 -0400
+
+ Produce a better exception message when a numeric result is requested ...
+
+ ... on a string result.
+
+commit 8df4d85fee2924bdb2ff4401762f07ccf8e8ea40
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Apr 30 19:08:09 2020 -0400
+
+ formula_error to optionally store a specific error message.
+
+commit 902abb6c4ab46dfa888e222b6a37846fb6e2337f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Apr 24 21:20:51 2020 -0400
+
+ Print both opcode name and its representation string.
+
+commit de1fbd8c5443072f7cea1d3a6904fd039d76b649
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Mar 28 14:19:03 2020 -0400
+
+ Fix windows build wrt M_PI constant.
+
+commit 2a0591855123bbeaaaf846c760c27ea24db46d8b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 22 11:36:58 2020 -0500
+
+ Add a URL to the complete source code example.
+
+commit 579ffa487e600c02c15993b1ae20bccbe67b359f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 22 10:42:04 2020 -0500
+
+ Finish up the last sub-section to conclude this section.
+
+commit 7a2a51d5f42b09286f7c77f64a412ce044286666
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 21 11:57:49 2020 -0500
+
+ Remove weird sentence.
+
+commit 37ef219ef4b3093e4c8ed4ae481268aedbcfdb88
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 21 11:50:18 2020 -0500
+
+ Finish up the rest of the sub-section.
+
+commit 0e27e88eb02dfe08d525bc072cb7c4dcb8ff474f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 21 10:50:56 2020 -0500
+
+ Move the Overview to Quickstart, and tuck it under a parent Overview.
+
+commit 23e4de7ec5595031b37f6a3c1f7dd1935e957328
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 21 10:40:26 2020 -0500
+
+ More editing of doc.
+
+commit 0a2750c38f5d8616d1044ac93eed6098ce4c1700
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 19 19:27:31 2020 -0500
+
+ More editing.
+
+commit c053f03a31795ca8aacbff9b013ef580a93029a7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 19 09:37:34 2020 -0500
+
+ More editing of the doc.
+
+commit cba6ac19762693c5ab675a863f42dc1a1c5c23da
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 15 16:15:01 2020 -0500
+
+ Annotate the first section.
+
+commit f9cc76fe9eede1929ca0a46e1c18ff52253b38fb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 14 09:03:41 2020 -0500
+
+ More files to ignore.
+
+commit 1a09a8aebaeb15ee4c4bbf514dd63fafbe518468
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 14 09:02:52 2020 -0500
+
+ Set up the C++ Overview section and add code snippets.
+
+ Text body to be added later.
+
+commit ac54622159b54b43fb8b9b8a50783d797333ea00
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 12 09:16:46 2020 -0500
+
+ Re-work it a bit.
+
+commit 2bbbcb572bc029319bf73ef45cc966b38a000321
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 12 08:49:47 2020 -0500
+
+ Remove formula cell and insert a new one.
+
+commit 0f4f8e300ccbe0f0d8fd8c719861338e1b739c86
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 11 19:33:41 2020 -0500
+
+ Pass the formula cell pointer to register.
+
+commit bb31e0aaf1f9a9f12b13defdb0af3e39e90d35c1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 11 19:18:04 2020 -0500
+
+ Rename IXION_DEBUG to IXION_LOGGING because it's literally for logging.
+
+commit 2360ef0e943dfcf3a2103826fa6ae4308b529d85
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 11 19:14:04 2020 -0500
+
+ Add --enable-debug-utils and use it for extra check when ...
+
+ ... registering formula cells.
+
+commit 747877aff8268a9d603b283fe4a24bdf90cb9692
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 11 18:36:26 2020 -0500
+
+ register_formula_cell(...) to take an optional formula_cell pointer.
+
+commit b712a38eaa9e0a12c5bb0dc3cc9661bee029ed1b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 11 10:56:11 2020 -0500
+
+ Have set_formula_cell(...) methods to return a pointer to formula_cell.
+
+commit f94cc48732889b8d9bca6d80d1d5e67d145c8b5d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 11 10:26:37 2020 -0500
+
+ Rename model-context to model-context-simple.
+
+commit f5ba5dbdb26dac2365652ddff43dfeef24a90fb0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 11 10:25:12 2020 -0500
+
+ Complete the code example.
+
+commit 9b2043fe61a5cbca947201926e86e4ac9b134edc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 10 23:11:24 2020 -0500
+
+ Add an example code to use in future documentation.
+
+ More to come later.
+
+commit faf43b8ecaf63a528e32c6c304c64f32ff7c4370
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 10 10:12:26 2020 -0500
+
+ Remove get_string_identifier(char*,size_t) from the model access interface.
+
+ And rename it to something else to avoid confusion.
+
+commit f0703363a2d085c7f140f9710b4a12d461c15281
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 10 09:27:35 2020 -0500
+
+ Move the string pool code into its own class.
+
+ And synchronize the add_string() method.
+
+commit 492831552871bf6862f6c80456f2efcf461d006b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 10 08:38:38 2020 -0500
+
+ Adjust stack_value to store a raw std::string value.
+
+commit de2ce7376508c92431499edc66106652de877d48
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 5 13:06:56 2020 -0500
+
+ Revert "Add a get method that takes a name."
+
+ This reverts commit b900d2bd9d2b51379acdd81adfd69e1726c0a92c.
+
+commit b900d2bd9d2b51379acdd81adfd69e1726c0a92c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 5 13:04:43 2020 -0500
+
+ Add a get method that takes a name.
+
+commit 20d13d85a1550712806c62d272e49891ba00da23
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 4 22:32:25 2020 -0500
+
+ Add size() that returns the number of named expressions.
+
+commit a208e22569dc342a0429ba4547408f7328d52168
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 3 14:40:57 2020 -0500
+
+ Add a test case for storing named expressions with their origins.
+
+commit 62e29ab0f1faae195d3831775941c6cb78b99c06
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 3 14:17:25 2020 -0500
+
+ I forgot to add this file.
+
+commit 51b14522e2f62ad33f55a93ea316756cdebf62e2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 3 14:00:18 2020 -0500
+
+ get_named_expression() to return named_expression_t*.
+
+commit ee05a97585f07c740f59f59c96b6fce3b65def82
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 3 13:32:48 2020 -0500
+
+ Add variants of set_named_expression() that take the origin cell position.
+
+commit 51be2a7d8821cf82ad9a555f472f9a483b1df306
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 3 13:21:12 2020 -0500
+
+ Change the backend storage to make room for the origin value.
+
+commit 042b6092cc9fa408e29de1f89a8bc3352a52c3d6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 3 11:46:10 2020 -0500
+
+ Make sure we can't change the sheet size after the fact.
+
+commit bb199950a4ac3750902c9ec70ff282e8edca146a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 3 09:15:14 2020 -0500
+
+ Specify the sheet size at model_context construction time.
+
+commit be1711ad5c7a7c98c3b06113e03fc9928710ea63
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 30 10:25:23 2020 -0500
+
+ Re-organize the opcode printing piece a bit.
+
+commit 43993020942148f1625e106472a65ca1b4744753
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 29 19:05:19 2020 -0500
+
+ Let's not print anything on error tokens.
+
+ We'll wait until we have a concrete use case for printing non-empty
+ strings for error tokens.
+
+commit 1b7ee66ee6cb33f182ca034e0b65b06de5efcc5e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 28 20:47:41 2020 -0500
+
+ A bit of cleanup around logging output.
+
+commit d1874e96c48fa4cc6bfa8fdd428215b9713e826f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 28 13:30:22 2020 -0500
+
+ Specially craft formula string output for error formulas.
+
+ And for now, I'm turning it into json.
+
+commit dd2ab1bbd0f3bd92c2e270841fc0b2e617c82d4a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 28 12:39:10 2020 -0500
+
+ Create a dedicated token for invalid formula condition.
+
+ And have it store the number of message tokens that follow.
+
+commit ad4c1cd3fb01becf18ae7cfbd3f60dab88f9b0e1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 28 10:15:16 2020 -0500
+
+ Add another public function to create formula error token set.
+
+commit 6e4a7c1138dbafb342b29784fe88cf2c6b698c47
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 27 13:59:07 2020 -0500
+
+ Add a test case for iterating over sheet local named expressions.
+
+commit bdf85dbd4f5f8bbb2b5c0941e0d2b499697e4323
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 27 12:54:40 2020 -0500
+
+ Add a test case for iterating through global named expressions.
+
+commit a6b66bbd1e4cbb38c021c167bf57704086848bc8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 27 10:56:32 2020 -0500
+
+ Initial implementation of named_expressions_iterator. Not tested yet.
+
+ This change also moves model_context_impl into a separate set of files
+ in order for it to be accessible outside of model_context.
+
+commit 12d10e926e656e04045234935c1687673aa53823
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 24 13:09:37 2020 -0500
+
+ Fix handling of nested scopes involving [] and ''.
+
+commit ccc9f0f5007bffc313f214531a37a7450c8e9bd6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 24 12:05:08 2020 -0500
+
+ Handle a lexer name that contains a single-quoted segment.
+
+commit a65528d770741ee51647892cc466e73e2d6d143c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 23 18:26:46 2020 -0500
+
+ Parse empty string tokens correctly.
+
+ This fixes e.g. =IF(A1="","A","B") becoming =IF(A1=,"A","B").
+
+commit 7825cc33c567b891165fbcfc6af22298fbb1452c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 23 15:21:29 2020 -0500
+
+ Implement PI and INT built-in functions.
+
+commit bb2b89c0863fdd499d92f374ac4020ccdbb9c815
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 23 13:15:30 2020 -0500
+
+ Correctly resolve a named expression in ODFF resolver.
+
+commit fae7341565e7fd9aaa4941c26ac12da238693fb8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 23 12:49:30 2020 -0500
+
+ Add tracing on inserted named expressions.
+
+commit 60b0f11f4c3e07899acaad64b18a2a98a1aeeb54
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 23 11:00:25 2020 -0500
+
+ Add trace statements, mostly to use the to_string() function.
+
+commit 03494ddd002bdd70879e0ed6d38fe27340419717
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 23 10:43:41 2020 -0500
+
+ Add a set of test cases for the new ODF cell-range-address syntax.
+
+ And it passes! For the record, this syntax also cover ODF's
+ cell-address syntax (9.2.1) as well.
+
+commit 5e90ad585bca651547337216b3a43d673ae2c5c6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 23 09:51:29 2020 -0500
+
+ Refactor calc_a1_resolver into dot_a1_resolver with func objects.
+
+ And use it to create a new resolver for ODF cell-range-address syntax.
+
+commit ec142f3d10aded0e89a94868b1c73e00a6ae8a8f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 22 14:53:16 2020 -0500
+
+ Add a method doc, to make it clear that the base sheet position ...
+
+ ... is to be used when the reference string does NOT contain an explicit
+ sheet name.
+
+commit 89ff83b481c4ef33c52cb8a223f42fe0479d6eaf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 22 07:52:45 2020 -0500
+
+ Retire DEBUG_NAME_RESOLVER in favor of using spdlog.
+
+commit 866f8327d40df2185738fef3f0261c1ccb8b7d44
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 21 22:29:56 2020 -0500
+
+ Remove this comment as this is no longer true.
+
+commit 8aaa34d23334af2839b047cdc64b674b60984f92
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 21 17:27:05 2020 -0500
+
+ Add a test case for ODFF resolver...
+
+ ... to make sure the ODFF resolver doesn't have the same issue I
+ just fixed in the Calc A1 resolver. Turns out it does not.
+
+commit 1701b8894ea43ba476e32727ec5cd9c36acc9a3e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 21 17:24:57 2020 -0500
+
+ Add a few more test cases and fix the handling of absolute sheet flag.
+
+commit f46a1cb98ff6eebe883f40e89972e8802fa07df3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 21 16:00:31 2020 -0500
+
+ Ensure that it resolves relative sheet indices correctly.
+
+commit 7fcdb2fc4c0da2a266adba37a89e04be97c64eef
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 21 15:50:49 2020 -0500
+
+ Correctly handle multi-sheet range references.
+
+commit 459506839fd289e3d49bb8c6bfae32eb63e5f006
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 21 14:22:01 2020 -0500
+
+ Add range reference round-trip test cases for Excel A1 too.
+
+ Turns out we didn't test this function.
+
+commit 8cacc92b263dab877985b4a5b44f87e87ac79058
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 21 13:54:01 2020 -0500
+
+ Handle Calc A1's absolute sheet names.
+
+commit d396b2eaf6a9ead2b4b77b1cb26dcc93fa536c92
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 21 13:49:53 2020 -0500
+
+ Add absolute address markers to stir things up.
+
+commit 3056974f3e2b258295aa788a691e49ba59f3c8c4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 21 13:45:57 2020 -0500
+
+ Remove duplicate code blocks.
+
+commit d8f017d92329d65c344a89909f49cc3a6f333278
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 21 13:35:45 2020 -0500
+
+ Handle absolute sheet names correctly & handle range references.
+
+commit 35ae51cff6c9c1a5d604749d53470ac67f5b2ea2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 21 11:38:41 2020 -0500
+
+ Initial Calc A1 resolver implementation.
+
+ Mostly a copy-n-paste from Excel A1, with different sheet name separator.
+
+commit 6a4f4bfd2d17eafe910b0750cc9f6fc199403393
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 17 17:51:44 2020 -0500
+
+ Let's not catch all exceptions silently during formula tokenization.
+
+commit 72c0e62782056b091b8d161a3808bbe2e14e27e6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 17 11:44:40 2020 -0500
+
+ Make sure we print in-equality opcode tokens correctly.
+
+commit 489fef59813114a9421d2b497a0eaae42c5fb34d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 16 19:44:20 2020 -0500
+
+ Fix build MinGW Boost linking errors.
+
+ This is related to #25. Thanks for Stefan for pointing this out.
+
+commit b914abfc123e1916edb489390adca0d38a445f50
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 15 14:25:01 2020 -0500
+
+ Implement print_formula_token() (single token as opposed to multiple).
+
+ This is related to #24.
+
+commit 4f8a3a816f268d0076cd92a4cfd71c8857e3649c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 14 11:08:20 2020 -0500
+
+ Add a test case for the newly-added concat (&) operator.
+
+commit 5806d72aa73cb1725b8804fe2de2b82f33d7ba3c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 14 11:02:47 2020 -0500
+
+ Implement a concat (&) operator.
+
+commit 9b9b9bc5a5a2dcf1963e765924dad75239e15c92
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 14 09:23:13 2020 -0500
+
+ Probably not a good idea to set this resolver instance static.
+
+commit 823c897d3c24c64ac924662dd88e9723aaaf72e6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 14 08:11:36 2020 -0500
+
+ Recover from a parsing error on numeral, and fall back to parsing it as a name.
+
+commit a2ce99cb1158f3f3b3602b81d163b77608b49ce0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 13 20:33:03 2020 -0500
+
+ Add meat to the test case.
+
+commit 5b8e807366d7e07015a44c56c6aeabf23593505d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 13 16:00:25 2020 -0500
+
+ Add a new test case and partially implement it.
+
+ Also in the test debug output, include sheet indices.
+
+commit 56b377095464bc53b752b934b8c326d3b7c3a1d1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 13 15:17:41 2020 -0500
+
+ Iterate through sheet range when adding or removing range listeners.
+
+ This code is not tested yet.
+
+commit 56837f1ff3ec7f2b9ef43fe86687a65ffcc41437
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 13 15:05:35 2020 -0500
+
+ These are redundant. abs_range_t::valid() checks the same condition.
+
+commit 561c587b9baf3213000d693b57354c5eb2b0d4e6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 13 15:00:38 2020 -0500
+
+ Officially allow a range of sheets in abs_range_t.
+
+commit 631ea8d05ed0a2687bf3657cf0a2a27d873b548d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 13 14:12:08 2020 -0500
+
+ Print the source range too.
+
+commit 56f3dc41f30fc8200f3b92f4281efd96fd0ad303
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 10 16:09:32 2020 -0500
+
+ Handle odff sheet range where the second sheet name is omitted.
+
+commit f037890603f5ce05f95aa98ec44ec31aba3a788f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 10 14:38:21 2020 -0500
+
+ Handle invalid sheet index correctly.
+
+commit 4187207987a452d08eea42be732f245ee48725b3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 10 11:22:13 2020 -0500
+
+ Do the same check in all the other places.
+
+commit ee8e90e85c74d1a4fe921b6a6f5fa308632c0654
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 10 11:06:27 2020 -0500
+
+ Throw a more specialized exception.
+
+commit 0463b3a80eacba307e577b3fd7b5e437b079359e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 10 10:54:52 2020 -0500
+
+ Check for a valid sheet index, and throw if invalid.
+
+commit c2ea69a9d845492d461083be614432868c1cd1b0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 7 11:05:05 2020 -0500
+
+ Let's make the implicit sheet address absolute, not relative.
+
+commit 1c851b1ac34f52b2431dd268c87bef77453ef4e3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 7 11:02:28 2020 -0500
+
+ Add another constructor that takes abs_address_t and column and row spans.
+
+commit 45b2fc44a7452d4c44bedcd466bd4273bad9ba5d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 7 09:23:37 2020 -0500
+
+ Properly parse ODFF addresses (both single and range) containing sheet names.
+
+commit f431f05e49034b2180a1f12f9bef64c1b895e5f6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 6 20:56:45 2020 -0500
+
+ Nobody appears to be using these error condition tokens.
+
+ Probably a relict from the earlier prototypes.
+
+commit a539339de6adde95e5fb22de92057551b3d5e56f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 6 20:36:53 2020 -0500
+
+ Use char values rather than literal strings.
+
+commit b3366b002ffa8666105b11e8c366d7e9e924045f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 6 20:31:20 2020 -0500
+
+ Add support for the exponent (^) operator.
+
+ This addresses #21.
+
+commit f835f0f10310069c2d26559fb84f012797ace365
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 6 14:30:11 2020 -0500
+
+ Add test case for cached formula results for grouped formula cells.
+
+commit b3129ba7b641f3186b8c07acdf99ca298ee14d8d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 6 13:39:15 2020 -0500
+
+ Support all four result types.
+
+commit 999b70336457c564b78e629795348e2774fada6f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 6 13:30:13 2020 -0500
+
+ Allow initialization with precise error value.
+
+commit 9ab4db6922e76bb641a5718bd02cce9dde1c5f7c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 6 13:04:23 2020 -0500
+
+ Add method to define grouped formula cells with cached result values.
+
+commit fd62705816cab649813f1dbe2154a8c6798c49aa
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 6 11:52:52 2020 -0500
+
+ Add a test case for storing non-numeric values to matrices.
+
+commit ebb2a5b3e5a0a54fd81c3940a8f1ddda3801aaa7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 6 11:46:53 2020 -0500
+
+ Support setting cached results to grouped formulas.
+
+commit f8e1c4155604eb262a3a12ab01000b03bd5a5b59
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 6 11:01:41 2020 -0500
+
+ Support storage of error values in matrices.
+
+commit 09af51b961cb549cdb563efac8d180c3734ab8ef
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 3 11:51:15 2020 -0500
+
+ Reordering of the formula_function_t members breaks API compat.
+
+ Therefore up the API version.
+
+commit 2f860bf9ba1c1ec9d6c9ee8bd80d1e6d72a1d281
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 3 11:47:50 2020 -0500
+
+ Try to use the variants of set_formula_cell() that takes token stores.
+
+commit e3f85fc09f42429c34c4eaa5407990c8fb123fc5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 3 11:34:30 2020 -0500
+
+ We need a variant of this set_formula_cell that takes formula_result.
+
+ To be primarily used by orcus.
+
+commit bbf1f9e1eaddbcbac7e2e75de87c0c4f0f2a8ee8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 3 11:03:56 2020 -0500
+
+ Set the version to 0.15.99. It's officially a next-release development.
+
+commit cbedadd740f512ef2c14748bed1020034da8e2f6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 2 15:16:47 2020 -0500
+
+ Add a method doc.
+
+commit 3a27a89a5f66479ff89124261a88bcafe37b5310
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 2 14:52:04 2020 -0500
+
+ Make sure it also works with cached error results.
+
+commit 08c5edd269e091734dcd6f7ad108aa967a960d61
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 2 11:51:55 2020 -0500
+
+ Add result-cache mode and get that to work as expected.
+
+ This commit also includes a brand-new test case.
+
+commit 5f12a8d01d44e6bd65df1612f4648193ba0e70c5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Dec 20 14:38:11 2019 -0500
+
+ More descriptive error message.
+
+commit 1900475f72fa109fa31e28b7d80551a15a7a7051
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Dec 20 13:21:28 2019 -0500
+
+ Add trace on sheet insertion.
+
+commit 85296c2163bb61cfe732352d63aa7c826b422c3f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Dec 20 13:08:44 2019 -0500
+
+ We can do away with just one version of append_sheet() here.
+
+commit 82b27f68b5e6bf94ea8de690b11ffbb9ccafc1b1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Dec 20 11:35:51 2019 -0500
+
+ Add tracing statements during formula cell registration.
+
+commit 8ef603de776d777e75b201b74731dc2afbb4a6ca
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Dec 20 09:13:12 2019 -0500
+
+ Really correctly handle unset column or row ranges.
+
+ And add a test case to go with it.
+
+commit cdb6cf501eec2123adfa07df89a20792e5fd54ca
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Dec 19 15:19:08 2019 -0500
+
+ Correctly handle unset column and row ranges.
+
+commit accc2331852992bf348e2737b21d61b0acc67a94
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Dec 19 10:42:40 2019 -0500
+
+ Get the --sheets option to actually work.
+
+commit 577d095bf512085702e6283d63ebba8c2613c988
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Dec 19 09:37:25 2019 -0500
+
+ Print formula cell information prior to calc when log tracing is on.
+
+commit 707a5a203da405a61ee25be4776e7b86401eb4af
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 18 08:54:59 2019 -0500
+
+ Use this script to fill function name enum values and literals.
+
+commit 0acb9af5184f2620b0422e72af52e5e8348e4de0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 18 08:50:08 2019 -0500
+
+ Script to generate C++ code from function name lists.
+
+ And add a list of functions that are specific to ixion. Right now
+ there is only one such function "WAIT".
+
+commit c21020a8438ef93203a00fcbd49c61f8c756a957
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Dec 16 09:27:40 2019 -0500
+
+ Scan all function names from libreoffice repo.
+
+ All but a few. Some are skipped.
+
+commit 5515f92a1b9ade36ea413997a56540c24047709b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 4 19:11:22 2019 -0500
+
+ This is a very outdated illustration.
+
+commit c6dbafb9be570d191fe3bfa7513c95e0688cd29f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 4 19:08:29 2019 -0500
+
+ Quick-n-dirty script to extract function names from libreoffice code.
+
+ Use this script on formula/inc/core_resource.hrc.
+
+commit 7d3d1cfc8d7b68804e2eafb25c2c655fb94b29a4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 4 19:07:57 2019 -0500
+
+ We don't need this script anymore.
+
+commit 2d203c52cf8c031fb2e6720c661d30ed5221bd62
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 20 14:43:53 2019 -0500
+
+ Handle disordered range references properly.
+
+ This addresses #18.
+
+commit 534786f659348c31b03e523d93c67a515a55b9bc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 19 14:44:41 2019 -0500
+
+ More on ensuring that a token exists before accessing it.
+
+commit 8bdf770492fd16e5d5862ad0717c0dd1c084a743
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 18 15:12:43 2019 -0500
+
+ Support reordering of range boundaries.
+
+ We need this for handling ODS formulas which allow unordered range
+ values.
+
+commit 13d7e7991177335f485fda285fc3e5094cdbce53
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 18 14:33:17 2019 -0500
+
+ Add a few missing function names to help the parsing process.
+
+ They are not implemented yet.
+
+commit f6e3409d4f8c6766a179c3692ff4d4dd112ecc84
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 18 14:22:53 2019 -0500
+
+ Add debug statement for non-printing tokens.
+
+ And add a '<>' token to the list of printed tokens.
+
+commit cdf5f1c9bbbfca559cd49adb5442ad5739486f6a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 18 13:46:24 2019 -0500
+
+ Add trace statements in the formula parsing code.
+
+commit 693a11a3b02911a423dc93459685b787050b7be0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 18 11:13:39 2019 -0500
+
+ Throw a better message than just 'TODO'.
+
+commit 1093f79dffac8ddb052830d260bce8744fd7f084
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 18 11:04:41 2019 -0500
+
+ Add a test case for handling leading signs.
+
+commit a3c0afb76346ba809f297d5d3c274206bc464b2b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 18 10:43:09 2019 -0500
+
+ Allow a leading sign token as part of a factor.
+
+ It appears to work in common cases. I need to do more testing.
+
+commit df170e8adfcb645d134480ccece6335400959b22
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 18 09:01:44 2019 -0500
+
+ Add a test case for nested functions.
+
+commit 367db49ffeaadf4402f290d4ef22232564b285fb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 18 08:37:51 2019 -0500
+
+ Use std::deque over std::vector with std::unique_ptr.
+
+commit b37ea4247c1dfe5ec675addaae22a29d0d4b3909
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 18 08:24:14 2019 -0500
+
+ Push a new stack in each function call, and pop one when finished.
+
+ And when poping a stack, grab the result value and push that value
+ onto the previous stack.
+
+commit 28b2bd2b0d67c4b50cc2c2464ed62d39435efc2a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 18 07:48:48 2019 -0500
+
+ Switch to using a stack of value stacks.
+
+ It needs to have at least one element at any given moment.
+
+commit 22b349f524cb564126968143f57fcf8c76815cf9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Nov 16 13:11:05 2019 -0500
+
+ Abstract access to the stack.
+
+commit 22d3f6cbcbde3995d248bb70c269960facdc9667
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 15 22:04:07 2019 -0500
+
+ Make it officially non-copyable.
+
+commit 118e24646646bff281fe0735f838200919f17356
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 15 21:59:15 2019 -0500
+
+ Rename value_stack_t to formula_value_stack.
+
+commit 2b8c45ea488e89a074e2e744a4af727e7f2e2e07
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 15 18:55:08 2019 -0500
+
+ Trace stack activities.
+
+commit defd860e858d926f451b8662dcb48133ea9905a9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 15 17:51:33 2019 -0500
+
+ Switch to using spdlog for these debug statements.
+
+commit f6f23fcb07bac0e8396832fdcc338ea01fed047e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 15 15:31:38 2019 -0500
+
+ This debug output is not all that useful.
+
+commit 3325e895e1e7d9cc2de68e34317d8da6ab58b967
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 15 15:06:30 2019 -0500
+
+ We don't need this now.
+
+commit 0828824e8c388114d6588b731f2b6c360a3cce62
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 15 15:02:39 2019 -0500
+
+ Print function token name for debugging.
+
+commit 7e0d2baa4395c22476da0245a00057cb8786dc41
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 15 14:53:46 2019 -0500
+
+ Create better output for formula cells.
+
+commit 4a0d24a885067ec8bd4e97426d70fd2c893dc2af
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 15 13:39:15 2019 -0500
+
+ Print the internal indices of the cell position.
+
+commit bd7bfcdfc6baf7624b19f3c01bf8a61f4bcb1ab9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Nov 15 12:57:02 2019 -0500
+
+ Use spdlog here.
+
+commit 0891528c3ebbf59b0634d01b57499183bac1974b
+Author: orbea <orbea@riseup.net>
+Date: Mon Sep 23 12:09:37 2019 -0700
+
+ Fix build with gcc and an external fmt.
+
+commit a8fe2c542b16ee30723ab3d7f3b643ee479e9723
+Author: orbea <orbea@riseup.net>
+Date: Fri Aug 23 08:50:28 2019 -0700
+
+ Fix build with clang.
+
+commit 288bb07e1e23e797384125c88bfd26fcd7150619
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 8 18:45:18 2019 -0400
+
+ 0.15.0 is officially out now.
+
+commit f0f9410a96d93958cf79e0468d28133b15e7f2e6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 8 17:10:37 2019 -0400
+
+ Add links to the 0.15.0 packages.
+
+commit 5975e27faf73f8f5aac2d0e14a2538785dfa8228
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 8 16:58:39 2019 -0400
+
+ Up the version to 0.15.0.
+
+commit 55afa4e90e04df35af06b5235c896e1802098d6e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 8 09:03:07 2019 -0400
+
+ Update CHANGELOG for changes that will go into the upcoming 0.15.0.
+
+commit def4adf84671fad25fbbdde4efb2808d4cbe07b6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 7 21:32:11 2019 -0400
+
+ Update the AUTHORS info.
+
+commit 2dd7efc7c35abeb9b05f98e2e0ae07500d0e6b88
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 5 21:40:53 2019 -0400
+
+ Fix make distcheck.
+
+commit 4eba89d54c2602430eec9398c2a62207c02abf91
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 2 20:14:52 2019 -0400
+
+ Ignore this artifact.
+
+commit 4a2bc113c7440edfa130a37ac3a3e06d6ea946a6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 1 20:42:15 2019 -0400
+
+ Add all cmake scripts to slickedit workspace.
+
+commit 98a18a47f34bef05f8a2547565d0f857ea8223d8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 31 22:06:33 2019 -0400
+
+ Make the location of the configued inline file more explicit.
+
+commit 575aba02774d934647f9f09ec5f7ea8953f1d619
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 24 16:18:50 2019 -0400
+
+ Apply workaround for the gitlab default ci-runner.
+
+ Borrowed from the same workaround applied against orcus.
+
+commit 389c8def65406ae92077686a2e9095afebab28f4
+Author: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Wed Jul 24 20:01:01 2019 +0200
+
+ Fix build when built against spdlog without bundled fmt
+
+commit bc5e4cb8f9b1928b2c42ed4a7d038f095e6ca089
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 11 20:13:18 2019 -0400
+
+ cmake: Apply the API version to the library name as well.
+
+commit 756bfeb330fdb8f7080863b2e03c019330a00b7c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 11 19:54:39 2019 -0400
+
+ cmake: fix the install target.
+
+ There was supposed to be a ixion directory underneath ixion-<API_VER>.
+
+commit 28abf1bb0bc9e3a5a78683202f60de0746600c75
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Mar 8 23:07:53 2019 -0500
+
+ Use virtual dtor for class inheritance with virtual methods.
+
+commit 0915864bd3e439d8f5fb0606ad18c3047814565a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 7 21:42:16 2019 -0500
+
+ Implement fill_down_cells() in model_context.
+
+ For now, filling down of formula cells is not supported.
+
+ This addresses #15.
+
+commit 1f72b58bf552491ad0646ee33c46f3224b01dbca
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 21 18:14:14 2019 -0500
+
+ Point to the readthedocs for API doc.
+
+commit af832b5277c76c8dd5e50b5fe2f460172f089ff4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 21 18:10:21 2019 -0500
+
+ Add doc requirements.
+
+commit 6d5fb75a8116ae785cebad2b98b5990d4c2b6403
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 21 18:06:53 2019 -0500
+
+ Switch to RTD theme and add hook for readthedocs integration.
+
+commit 98b1ec3ae66f086818f4c40a7d7df1a1a49b553d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 29 07:44:35 2019 -0500
+
+ Run tests quietly during the build.
+
+ You can always manually run tests by 'ctest -V' after the build.
+
+commit 732fef514bfd3578363163e6e1fce0e9e52ea35f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 28 22:12:53 2019 -0500
+
+ Treat individual test files as individual test cases.
+
+commit d0fd7237c68d947b5c456cca6a6d233927958776
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 28 21:59:03 2019 -0500
+
+ Properly execute thread parser tests as part of ctest.
+
+ This fixes #14.
+
+commit a94043d823599540f8509acfdb0a6398e0c9ad77
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 28 20:58:35 2019 -0500
+
+ Minor wording tweak.
+
+commit ad59e3d5f88c4edba5da6b773433d043f93daedc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 28 20:57:01 2019 -0500
+
+ Actually you don't need to always build Boost as static libs.
+
+commit 1c549b83250dce48b50542e30d5fe73002d1463d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 28 20:41:42 2019 -0500
+
+ We can simply use CMake's configure_file here.
+
+ This way there is no need for the gen-files.py script any more.
+
+commit b973ea807baaed39dde6e71fb10f420c3c988f3b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 28 20:36:21 2019 -0500
+
+ Split CMakeLists.txt one per directory.
+
+commit 90a52b77af7a1dcc1556daad0d0ad34910da8b57
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 28 17:20:08 2019 -0500
+
+ Further tweak the cmake script.
+
+ The option function is for boolean options. For a string option, we
+ should use set() with CACHE STRING properties.
+
+ Also further silence warnings on inplicit conversions.
+
+commit e7398c373e79ef365168b301af6503381dc9cef0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 28 08:31:31 2019 -0500
+
+ grouped_ranges is no longer in use. Remove its files.
+
+commit 1a93f6a9c0680eae205eaaa84df78837016b9e69
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 23 09:25:13 2019 -0500
+
+ Use foreach to clean things up a bit.
+
+commit 9d80a94ceb6b7b491aa651f66b8282958a587d7f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 23 08:15:46 2019 -0500
+
+ Suppress warnings on implicit integer conversions.
+
+commit 703859e9ba4c758b218642c56f2c3cf7959002c3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 15 22:28:57 2019 -0500
+
+ Add a full MPL 2.0 license file.
+
+commit bb14f190ac9926b98150d939e2b3d6180379e37b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 15 22:11:42 2019 -0500
+
+ Add the parser tests to the cmake-based test suite.
+
+commit 6393fa1a74e05c6edaedfb94a3966c07cc1e4a8a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 15 21:31:29 2019 -0500
+
+ Add two more tests to the cmake-based test suite.
+
+commit 7ca80a0ce29a3681e3d4f47f1f5b1d7557d0dd8c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 15 21:26:00 2019 -0500
+
+ Use deque to store worksheet instances.
+
+ This is also to reduce level of indirection.
+
+commit 9fcd740eea86344116018015221fd4d08bb9e42c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 15 21:22:27 2019 -0500
+
+ Use deque to store column stores to reduce indirection levels.
+
+commit d264028960e2d5639ccc921456f43c02ccc11359
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 15 18:02:17 2019 -0500
+
+ Avoid object slicing on deletion of the impl instance.
+
+commit 14e7d97184aa26a9ea2dd37b9e03a4c11964a3fb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 15 09:01:16 2019 -0500
+
+ Add track-dependency test to the list of tests.
+
+commit 68f6544bfee38963862de88091f0e22bf48f2042
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 15 08:53:00 2019 -0500
+
+ Add a check target and add ixion-test to its first test.
+
+commit e9e2a497a28f6d41b48f4035c292cd2b677086b7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 14 22:43:34 2019 -0500
+
+ Let's not forget the install target.
+
+commit 3f901dce8c895095ae2c33270ae214ddbccfd290
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 14 22:40:22 2019 -0500
+
+ Point to CONTRIBUTING.md.
+
+commit 00a862d533f30b4219d055f775f654c6652432af
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 14 22:30:05 2019 -0500
+
+ Support install target for cmake.
+
+commit f5147b7e71f08eba72951db353bfbb21910a9b62
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 14 21:43:13 2019 -0500
+
+ Get Windows build to work again.
+
+commit 31e2af7ceb0526f6314334567998dc078b1e58b6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Nov 29 17:30:25 2018 -0500
+
+ rc_abs_range_t to construct from abs_range_t.
+
+ It loses the sheet indices, of course, but the rest should be copied
+ over.
+
+commit e3192ab3e4013efb07b7214c785dde7a9842f4ec
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Nov 29 07:54:47 2018 -0500
+
+ Let's consistently use ';' as separators in ostream outputs.
+
+commit 35b3e96e22b9e871624519a103f18cc879151064
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 28 18:46:28 2018 -0500
+
+ Add a test case where only one cell is to be iterated over.
+
+commit cbb4e3859122d4ab1268dbf3c5c17617ca36676e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 28 18:44:12 2018 -0500
+
+ Add test cases for ranged vertical iteration, and fix one issue found.
+
+commit add3c0b1d4b8ab06bc5665035405205e4097768b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 27 22:28:21 2018 -0500
+
+ Actually use the clipped row range. Still untested.
+
+ The test comes next.
+
+commit 34b673666a396086d44bd3f4045c3689ddc666ba
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 27 19:22:34 2018 -0500
+
+ Clip the row range for the vertical iterator. Not tested yet.
+
+commit 53565e8467a9a5436d3aa63fa31cf98fb9511b56
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 27 19:05:04 2018 -0500
+
+ Clip the column range for the vertical iterator. Not tested yet.
+
+commit 999915d961e9a849776cff51315c6740313c119b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 27 17:19:48 2018 -0500
+
+ Add test for column clipping.
+
+commit 245990557a8ed7babd3b8e7ee68b20db88db529a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 27 08:29:08 2018 -0500
+
+ Add another test case for row-wise clipping.
+
+commit e13b2de9e43134c952f7ea0b55d6adda60872dfd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 27 08:15:37 2018 -0500
+
+ Add the first test for row-range clipping.
+
+ More to be added later.
+
+commit 8f1cd00ef44c4392b70c1a02927d7eded81d636a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 26 21:33:11 2018 -0500
+
+ Add a convenience method to mass-insert a range of cell values.
+
+ Not optimized yet. Mostly to be used from unit test code.
+
+commit 7139d0cedeecf3f257480064cbf29c1fa0633458
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 26 19:33:22 2018 -0500
+
+ set sub-range for horizontal iteration. Not tested yet.
+
+commit 031d313ef595c02e430cfc51b97fd3fe891b4694
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 26 18:28:08 2018 -0500
+
+ Additional parameter to specify range on the sheet to iterate over.
+
+ For now it has no effects.
+
+commit e095bb7ddafcebe0401577063eacaf121e758836
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 21:19:20 2018 -0500
+
+ Let's not forget to check for this.
+
+commit 3fbf4c9fd091dd732bd093d0a89116f4901f88a2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 21:15:10 2018 -0500
+
+ Simplify the code a bit by using the static `get` method.
+
+ It now handles boolean_element_block as well.
+
+commit 7ee12c4a8668e6e71e9244d796875e9adc1d134a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 20:10:24 2018 -0500
+
+ Remove duplicated blocks & make it a bit more readable.
+
+commit 9a5de32154edc3286c670ecdba6bb4df3563885e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 20:08:40 2018 -0500
+
+ Add a test on empty model context.
+
+commit 7b9b8e36367b17476a184680d9f6ea0fd586c003
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 20:03:16 2018 -0500
+
+ Add formula cells to the test as well.
+
+commit 0ae430c87d98ef06d57c631da87457f149c1d938
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 19:48:44 2018 -0500
+
+ Add test cases that check for cell values.
+
+ And fix the issue with boolean values.
+
+commit 733f5b1a5ddb6666f8890be46886b592473a36ea
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 18:35:06 2018 -0500
+
+ Avoid unnecessary updates of current cell.
+
+commit 913eb85916bcd7a85668a16fb483ae7fed293cdb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 18:27:52 2018 -0500
+
+ Add a first test case for vertical iteration, and fix bugs.
+
+commit e3dac73cac8aa4c65eeb8c2c713bd40bda27303d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 15:10:13 2018 -0500
+
+ m_it_cols must be initialized even for empty columns.
+
+commit 9470fee636c91f1b39fb220e812b88a954d38984
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 15:09:09 2018 -0500
+
+ Don't forget to store the column row positions.
+
+commit 575b193dc987ca328d7ef8a4410fdb663bde8a17
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 15:02:41 2018 -0500
+
+ Implement vertical (i.e column-wise) iteration. Not tested yet.
+
+commit f3e5aa21b8ade854ced33e3302f8e8319a95d191
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 13:42:42 2018 -0500
+
+ Skeleton implementation for the vertical iterator.
+
+commit 5404cc2269754f2d600678499baa5e9c4541d426
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 13:30:26 2018 -0500
+
+ Rename vertical to horizontal. No idea why I called it vertical.
+
+commit 7252602c9291237252fb73dfaedfbc4ced33afbf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 13:22:42 2018 -0500
+
+ Reduce the number of indirections.
+
+ model_iterator::impl serves as the base interface class for the core
+ iterator implementation. The impl class needs to have public visibility
+ for the derived classes to have access to it.
+
+commit 35fe473d31c18483ed15454251c84232a8d348f4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Nov 25 11:38:18 2018 -0500
+
+ Refactor the model_iterator implementation to make room for another core.
+
+commit cce6af6a4e707f5c2fab21f604a673aad7347c2c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Nov 24 13:07:53 2018 -0500
+
+ This method should be deprecated in favor of model_iterator.
+
+commit 95ca423e637b6ebbe8e3a014a2a61c6f132bfd8a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Nov 24 13:03:21 2018 -0500
+
+ Add test cases for iterating over non-empty cells.
+
+commit 8e5e7f1512aa2de0e9af2e4d9f4546cbe9f31859
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Nov 24 12:06:01 2018 -0500
+
+ Add a method doc.
+
+commit 2554165c15215b865a69a7ea432df67f5c9de232
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Nov 24 11:52:20 2018 -0500
+
+ Rename model_iterator_direction_t and re-use it in abs_address_iterator.
+
+commit 392fb1445be57216da6a41f444b8e0f336ca5b60
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Nov 24 11:38:50 2018 -0500
+
+ Implement the iteration using mdds::mtv::collection.
+
+ With an empty sheet for a starter.
+
+commit a62d172832aa6f90af330e72f10503d074fbe764
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 21 20:42:32 2018 -0500
+
+ Set up a skeleton model_iterator class. Still massively WIP.
+
+commit 1a529f8c402890fa4fa00cf101c1c37f489b2698
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 19 21:02:51 2018 -0500
+
+ Update types.
+
+commit 80144fedc6e9e1f26583d4b67d3fae24ce142280
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 19 18:43:16 2018 -0500
+
+ Update in response to the API change in 0.14.
+
+commit ffb458dbedb3515277ac2c1063e7790542fb9209
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Nov 7 18:30:52 2018 -0500
+
+ Switch documentation theme to cloud theme.
+
+commit e35246009c8abc57df08615522ceb11c487423bb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 5 17:26:15 2018 -0500
+
+ Switch to mdds-1.5 and make all necessary adjustments.
+
+ mdds-1.5 uses standard integer types.
+
+commit ede6b5dc06b3675755778ecefc603b0f7815881e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Nov 1 08:02:27 2018 -0400
+
+ Add --enable-werror compile time option.
+
+ But for now we need to disable -Wwrite-strings, else the python
+ layer code would not compile.
+
+commit dff02ec79280ff489c0d21b6e428a51ed11e0597
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Oct 31 18:36:08 2018 -0400
+
+ We don't use boost log any more.
+
+commit 447ed474bd42a6936ade3b50c95bafb22773b183
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Oct 10 07:26:28 2018 -0400
+
+ Ensure that libixion-<ver>.so built in the current build is used.
+
+ Occasionally we build a shared object that is binary incompatible with
+ the one currently installed on the system with the same so name.
+
+commit a447b910a970e5213747c4dac6e189be2f15da31
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 9 23:11:14 2018 -0400
+
+ Add configure switches for compile time logging.
+
+commit ae2716d919a3aaab8bb6af2c697d11a783e367a1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 9 22:37:09 2018 -0400
+
+ Switch from boost log to spdlog, for compile-time logging on/off.
+
+commit cfa42a1644942a14db1151643b9caea8c50347ec
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 9 19:30:34 2018 -0400
+
+ Replace own logging with boost log.
+
+commit 509495114c3991206764df1cde4e8cbcb7197f47
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 9 19:12:04 2018 -0400
+
+ Tweak the wording a bit.
+
+commit 2983fa7d241e4b35cad5b5ef665a5cb99064d7c6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 9 17:27:18 2018 -0400
+
+ Add --debug option to turn on and off the debug outputs.
+
+commit 9df5e91fa2f6287dc1cc1311eb79b86c348c6c02
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 9 17:08:25 2018 -0400
+
+ Move the circular safe flag to the calc status object.
+
+ This fixes the #REF! problem.
+
+commit b03111d944c1515d089ef1798be024bff32a9a49
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 9 08:33:02 2018 -0400
+
+ Add more debug statements to aid my debugging attempt.
+
+commit 6dc35d78a90d2ad1b2e5bf100a0ebdc0f942b800
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 9 08:11:05 2018 -0400
+
+ Modify the test case to exhibit the problem.
+
+commit ae94606dfef2f0f8cbf72dc1970af347d18d481a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 9 07:56:44 2018 -0400
+
+ Update supported features list.
+
+commit 62eb8eba978d3dabe952bd1f11673c24bfbcad85
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 9 07:53:41 2018 -0400
+
+ Add more details on this item.
+
+commit db3bed259fdbd20866ca28bfc596290c440771c7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 9 07:37:40 2018 -0400
+
+ Add new items.
+
+commit 7dda2a820e3bf67558db023674087cb976dc2c9c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 8 20:04:55 2018 -0400
+
+ Pass the entry structure to the formula queue manager.
+
+ This way we can avoid having to fetch the formula cell instances
+ again during the interpretation.
+
+commit 41b9a3fb313b450b3f99bc9e0a1e7d0a08629c06
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 8 18:49:39 2018 -0400
+
+ Avoid repeatedly fetching each formula cell from the model.
+
+commit e13a738c23cbe3a51aed09abd233dcc6a25e0b98
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 8 18:37:41 2018 -0400
+
+ Rework the implementation of calculate_sorted_cells().
+
+ And remove topo_sort_calculator and all its files.
+
+commit 57df912f041f86df725044285b52f224197658ed
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 8 18:21:14 2018 -0400
+
+ calculate_cells() will be no more.
+
+commit 964ad009c70bd5020764906486aea45aa779712b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 8 18:17:49 2018 -0400
+
+ Add documentations for the new public functions.
+
+commit b4718510e67871ef7ce5f51e2fa4e87e9c9da71d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 8 08:52:14 2018 -0400
+
+ Modify test_volatile_function() to use the new calculation API.
+
+commit c25917a14eae13e83b318c775121ee59c7b46c37
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 8 07:42:19 2018 -0400
+
+ Use the new calculation API in the python layer.
+
+commit 2a5d537d0f8af4f8309bd14854127a33f5099e78
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 8 07:31:18 2018 -0400
+
+ We don't need to declare a formula cell a modified cell.
+
+ A formula cel becomes a dirty cell if edited, which implies that
+ it's a modified cell from the implementation's prospective.
+
+commit 27ab0c8f00b820774d5b0ac55b4f7bf237fd48c8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Oct 5 20:04:07 2018 -0400
+
+ Perform recalculation using the new API too.
+
+ All tests pass!
+
+commit 53e32cd3c5d442638315dca94477c20dc092c22e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Oct 5 19:52:22 2018 -0400
+
+ Perform full calculation via new API.
+
+commit c50e90c3864edbc36f1c0406111c7ab9c0147689
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Oct 5 19:45:52 2018 -0400
+
+ Allow optionally specify known dirty formula cells when querying.
+
+ These known dirty formula cells should be treated the same way as
+ modified cells except that modified cells are not formula cells and
+ therefore don't end up included in the final sorted formula cells,
+ and the dirty formula cells do end up in the final sorted formula
+ cells.
+
+commit f61db97f29a231e6328347048ec86255ec411cbe
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Oct 5 17:52:15 2018 -0400
+
+ Ensure that those that track volatile cells are marked dirty.
+
+commit 9bd94df1d3f9a7734eb742ee3a39333da6515b85
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Oct 5 08:14:44 2018 -0400
+
+ m_dirty_formula_cells to store cell ranges rather than single cells.
+
+commit c345546ac8cc9e1479a9123e960b54c2940b5a9d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Oct 4 20:33:48 2018 -0400
+
+ Add calculate_sorted_cells() as a public free function.
+
+ This one takes an array of formula cells, grouped or otherwise, which
+ are already topologically sorted.
+
+commit 6f03d0a8e4cc0dbb103805fcbcaf0f59407e4682
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Oct 4 19:50:06 2018 -0400
+
+ Add free-function variant of query_and_sort_dirty_cells().
+
+ And modified_cells are now a set of cell ranges.
+
+commit f6cc49b05a41bfee073bc5040084981fcf961e0d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Oct 4 19:42:22 2018 -0400
+
+ query_dirty_cells() to return a set of ranges.
+
+commit b426c404455eddcee8f04df020e4c143a349ea7d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Oct 4 18:04:57 2018 -0400
+
+ Rename the method to query_and_sort_dirty_cells().
+
+ Also add a bit more test for this method.
+
+commit 88a160d442e5891afcc20d3e5719db4dd25c4c33
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Oct 4 17:31:50 2018 -0400
+
+ Add the first test on in-place topological sort.
+
+commit 5ed2e9291f555276d5848f5c0a386e642111ae09
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Oct 4 08:15:40 2018 -0400
+
+ Actually perform topological sort in query_dirty_cells_sorted().
+
+ And adjust depth_first_search's ctor to make it more flexible wrt
+ the source value container.
+
+ This code is still untested.
+
+commit 971beb32b50b5ffe92e63eb0f578ff4af91b8b05
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Oct 3 21:42:58 2018 -0400
+
+ Return an array of ranges to avoid unnecessary conversions.
+
+commit c9e4a8e6f9cc7cea3c62add819ee26b9409c9cce
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Oct 3 20:17:37 2018 -0400
+
+ Add back_inserter to depth_first_search to remove duplicated code.
+
+commit f6e73d32cc806962cdba80acd38cf3a81e9f9b5a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Oct 3 19:18:02 2018 -0400
+
+ Adjust for the relocation in slickedit project.
+
+commit a931e64934394c554553d5ed9ec546a8f4a8afdb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Oct 3 18:45:35 2018 -0400
+
+ Move depth_first_search.hpp into a private place.
+
+ This class should not be in a public place.
+
+commit e390de074ea1fe0e5656fe87e470580842328f53
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Oct 3 18:38:00 2018 -0400
+
+ Use ranged for loop for this.
+
+commit 7d017836531c5fdda2e5b7eeb693a9dc5eb73cc9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Oct 3 18:33:46 2018 -0400
+
+ Some cleanup & modernization of depth_first_search.
+
+commit 75b71bdbf74b92f4d00a5b1fa77098150eb8fcca
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Oct 3 08:54:20 2018 -0400
+
+ Add a new member method that performs in-place topological sort.
+
+ It's yet to be implemented.
+
+commit ccec3aac16469297dcd9970ad6d9974a8b9fbdb7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Oct 3 08:10:44 2018 -0400
+
+ Extend this test case to cover a bit more complex scenario.
+
+commit 2bac6a011fe28a54645c39bd94a05bbd94d1c9c4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Oct 3 07:59:44 2018 -0400
+
+ Remove factual error from the method documentation.
+
+ get_affected_cell_ranges() only returns directly affected ranges.
+
+commit 86290a1db084a2ac016e38ce7b88033531ade720
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 2 20:37:13 2018 -0400
+
+ Fix the issue of not properly picking up a cell in a range.
+
+commit f4abd1e05229e949f611f31ced9749c7f2e91759
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 2 17:58:08 2018 -0400
+
+ Correctly keep track of range-to-cell and range-to-range relations.
+
+commit ad9e8402a56da4d128417b5da5460f0c93e7d43a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 2 08:23:39 2018 -0400
+
+ Reduce the amount of duplicated code.
+
+commit 39b18447c5f0dd903669bd7d152754c38e47d407
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 1 20:56:40 2018 -0400
+
+ Implement 'print dependency' command.
+
+ For now, volatile cells are not printed.
+
+commit c537e5847c60bd097ac74fa33ea1334f00293d96
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 1 19:59:29 2018 -0400
+
+ Use enum class for the parser commands.
+
+ And use mdds::sorted_string_map for converting the command strings
+ to their enum counterparts.
+
+commit 755d565ae4a6fafe6f405273f0b52e9d24ec4df2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 1 18:23:10 2018 -0400
+
+ Rename these two members to fit their roles better.
+
+ And make them less confusing.
+
+commit 5fb4f462286a8f25dc93182756c22d5df779cea7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 1 18:02:10 2018 -0400
+
+ insert_depend() -> set_reference_relation().
+
+ The former IMO is less awkward and more representative of what it
+ actually does.
+
+commit 3ea7a74d56b8922b2acc3cefb648293a65129ba0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 1 17:54:14 2018 -0400
+
+ topo_sort_cells() -> sort_cells(), and have it return the results.
+
+commit 139d1aff1b103984dbf4fd801117dd8304efa82c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 29 13:11:17 2018 -0400
+
+ Rename depend_tracker to topo_sort_calculator.
+
+ I believe the new name is more fitting than the old one. This class
+ didn't really track dependency the way the dirty_cell_tracker does;
+ it only performs topological sort based on formula cell's reference
+ information.
+
+commit 7e223a0dab8aead84eb01077d92b1228a3b88648
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 29 12:48:03 2018 -0400
+
+ Rename function param to make its role a bit more clear.
+
+commit 963d31e0f73c047509d236468d00b2b3127589a4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 29 12:46:12 2018 -0400
+
+ Same thing applies here.
+
+ The new code is much simpler than the old one.
+
+commit 17d2b35cfee5b0fc207debdbe522064302917bac
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 29 12:44:10 2018 -0400
+
+ Use range-for loop instead of std::for_each with function object.
+
+commit d265db0444c42254b0c8885c52a4ba5c1a1f7841
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 28 20:21:50 2018 -0400
+
+ Add this item.
+
+commit 1ff315a87a1d844c7063d2f7f205ed1524b979c3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 28 12:28:07 2018 -0400
+
+ cell_listener_tracker is officially no more.
+
+commit eace8a1339ab5a51e8a4287b66e3ab6fb80d54b0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 28 12:10:24 2018 -0400
+
+ Add test case for recursive tracking.
+
+ Mostly to make sure we don't go into an infinite loop.
+
+commit ec5ef8ac2c5e262f269c4a0b9bc907c979bcd40d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 28 11:25:46 2018 -0400
+
+ Detect presence of circular dependency to avoid infinite loops.
+
+ Now we can re-enable the parser tests.
+
+commit 15d69a69c99f0c30dba65c43d7b154ed561eb4e8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 28 11:13:49 2018 -0400
+
+ Add a method doc.
+
+commit 6c4338f73c1f1331c5f9c341f8980e9d62978fe2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 28 10:50:03 2018 -0400
+
+ Swap cell_listener_tracker with dirty_cell_tracker.
+
+ The parser tests currently hang because of circular dependency
+ creating infinite loops.
+
+commit 6a1048c2b7f46c8a38b6f16664da4a2612538919
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 28 10:34:39 2018 -0400
+
+ There is no reason this has to be a heap-instance.
+
+commit f7f1dadfdf90aab60d8d1f283c941aeff8714a64
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 28 10:14:19 2018 -0400
+
+ Unnecessary forward declaration.
+
+commit 5ffa7e069cdc8744040a2da8b24742abc1b3ceb6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 27 20:37:36 2018 -0400
+
+ Add test for tracking between different sheets.
+
+commit d56eec7ec917c434b3b67ed49cc84028e6c549e8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 27 19:20:34 2018 -0400
+
+ Same with true with the remove() methods. Consolidate them into one.
+
+commit c968d238de18046f96f90d818e8e1a693d9917e6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 27 19:12:18 2018 -0400
+
+ We don't need two variants of add(), as it turns out.
+
+commit 363a0eb5ef234f960b42644b0b304070889a6a22
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 27 19:02:34 2018 -0400
+
+ Test volatile cells.
+
+commit 307bd630d2d918bb3944766a1de2ca116651332e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 26 22:43:23 2018 -0400
+
+ Implement removal of cell-to-range tracking & its test.
+
+commit bb44c11104328cea673d1a163d3e42afe049307a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 26 21:59:48 2018 -0400
+
+ Check for invalid input range here.
+
+commit d8381c31e45876ef504a9e93119f00fe75190079
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 26 18:30:52 2018 -0400
+
+ Go a bit further on the test.
+
+commit 53e6f3d38c191284ac8c8d5c5fbc23ff15d74a87
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 26 18:25:20 2018 -0400
+
+ Implement and test removal of cell-to-cell tracking.
+
+commit 291cb20be79063fbb1418297a00a8e0193e94d13
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 26 18:01:27 2018 -0400
+
+ Make the cell addresses a bit more clearer.
+
+commit 2d79ac808ce8a15add769fdf2499646143dc7047
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 25 22:22:23 2018 -0400
+
+ More testing on chained tracking involving ranges.
+
+commit bed77c21087fe3610c4642ef0d8cd4a1388362d3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 25 21:20:12 2018 -0400
+
+ Implement cell-to-range tracking.
+
+ Also test for empty queries to make sure we don't crash.
+
+commit f0750a3182031760b092d41d60bc3c8f2f38a399
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 24 21:53:39 2018 -0400
+
+ Rework the internal to pass around cell ranges rather than cells.
+
+commit fd608d7a595a8b354da57309f5507bcefea0476c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 24 18:27:57 2018 -0400
+
+ Add test for indirect dependency i.e. A1->A2->A3.
+
+commit 8597a6cf28d935331e98afcce60dad00cd0c0b2d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 22 16:25:46 2018 -0400
+
+ Progress on the test case.
+
+commit 104bb1e285346c266324beddc55eefa5eca07171
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 22 15:41:55 2018 -0400
+
+ Do resize the array correctly.
+
+commit 555e69bce9ac71fb7bbb80759f7c43ebfa0bc0db
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 22 15:28:05 2018 -0400
+
+ Add a test case for dirty_cell_tracker.
+
+ This currently fails with an exception thrown in mdds::rtree.
+
+commit 277a3a54d1bf7bad184d2ca824e2dd6e1a6cfeb2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 21 22:03:35 2018 -0400
+
+ Implement adding a cell-to-cell listener.
+
+ This has yet to be tested.
+
+commit 4db00351e2603bad988e929d249bc01230101d65
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 21 19:20:22 2018 -0400
+
+ Rename cell_address_set_t to abs_address_set_t.
+
+ The latter feels more consistent with the rest of the address names.
+
+commit 398bc3a3951cb257630c8545d39dd09e14faf13f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 20 22:12:06 2018 -0400
+
+ Add volatile cell handling.
+
+ This one is identical to cell_listener_tracker.
+
+commit 54523e70fca10312af730ecdc97320e60bf8b5b7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 20 20:33:43 2018 -0400
+
+ Empty implementation of dirty_cell_tracker.
+
+ This will be a drop-in replacement for cell_listener_tracker, and will
+ use mdds::rtree for its implementation.
+
+commit 80f10111505a2db29f15004a03face26dc7247f7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 19 18:45:52 2018 -0400
+
+ Replace all uses of get_all_dirty_cells() with query_dirty_cells().
+
+ And remove get_all_dirty_cells().
+
+commit a6e76cd01fe6ce70c9d09976a0555e49a3cc00a9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 18 22:57:57 2018 -0400
+
+ Add query_dirty_cells(), to later replace get_all_dirty_cells().
+
+ The replacement hasn't happened yet. That's my next step.
+
+commit b5da9ceca5e7e0edfa65d619933853b0f7dfe9aa
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 18 19:19:22 2018 -0400
+
+ Let's just use cell_address_set_t for this too.
+
+ It's not clear why we need to use a vector for this rather than just
+ re-using cell_address_set_t.
+
+commit 559ce4de64f75a0190869f392b211188484b1ac0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Sep 18 19:06:07 2018 -0400
+
+ Remove dirty_formula_cells_t. Just use cell_address_set_t directly.
+
+commit b74639b03c0250c0a25f93ac2baceb57acbcec3c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 17 18:30:51 2018 -0400
+
+ Let's not check if the volatile cell is a formula cell.
+
+ 1) It's an expensive call, and
+ 2) The caller should check that prior to inserting each vc position.
+
+commit 71dc3af34885533674b5707cbfd52c744138c9ac
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 17 18:26:02 2018 -0400
+
+ get_volatile_cells() should be an impl. detail too.
+
+commit eee5a25e739051eeaa57c326fc3f2fa2b2fd862a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 17 18:18:05 2018 -0400
+
+ Move these privates methods into its pimpl to hide them entirely.
+
+commit dcabed28301a06a5a500345663e866eac38c6e50
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 17 18:12:23 2018 -0400
+
+ Make the following member methods private.
+
+ These are only called from get_all_dirty_cells().
+
+ * get_all_cell_listeners()
+ * get_all_range_listeners()
+
+commit 99dcf9b2478818e0ed473ff61e440fe25db4ddfc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Sep 17 18:01:31 2018 -0400
+
+ Move get_all_dirty_cells() to cell_listener_tracker.
+
+commit e0af36bb2f046d632fa2d0753380007f2aea7230
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 14 19:57:14 2018 -0400
+
+ The concept of grouped ranges is obsolete, and not to be used.
+
+ Let's remove it.
+
+commit d702c67d0e63bffd7d6463a1c2ce9bc2c248277d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 14 16:38:17 2018 -0400
+
+ Add URL's to the 0.14.1 packages.
+
+commit 4b986374d46f431dc432c192cbcb286968c693fa
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 7 19:52:52 2018 -0400
+
+ CID#191665: Resource leak (RESOURCE_LEAK)
+
+ The code loaded dynamic modules via dlopen() but it would never
+ unload them properly via corresponding dlclose(). This change will
+ hopefully address this.
+
+ Unfortunately this change will require an API change, thus bumping
+ up the API version.
+
+commit 7895668bb09a973a93074c8e8ad0f9fc65f30ddb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 7 19:10:56 2018 -0400
+
+ CID#191667: Uninitialized pointer field (UNINIT_CTOR)
+
+commit 2752eeb74adca7245564801281fccd6fa11150c9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 7 19:06:00 2018 -0400
+
+ CID#191669: Dereference null return value (NULL_RETURNS)
+
+ dereference: Dereferencing a pointer that might be null ps_expected
+ when calling operator <<. [Note: The source code implementation of
+ the function has been overridden by a builtin model.]
+
+commit ae13970c7471c21874d0d1386a82b7382538d699
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 7 19:01:00 2018 -0400
+
+ CID#54470: Structurally dead code (UNREACHABLE)
+
+ unreachable: This code cannot be reached: this->m_stack.push_value(0.);.
+
+commit c015f6c723c5e669d78da2236327d9a0389676ba
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 7 18:57:54 2018 -0400
+
+ CID#191666: Uninitialized scalar field (UNINIT_CTOR)
+
+commit 4198916c3ff2b5c9aacef82b6658f9d0990f4dd8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Sep 7 18:54:09 2018 -0400
+
+ CID#191664: Uncaught exception (UNCAUGHT_EXCEPT)
+
+ root_function: In function main(int, char **) an exception of type
+ boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_any_cast> >
+ is thrown and never caught.
+
+commit b198a6d8edd41669a318f86fa22a7aad6cda7305
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 28 23:07:40 2018 -0400
+
+ Add bits about fixing some build issues.
+
+commit 869492c9f3f61aaab0d1ecdda147ea9adbdb04d5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 28 22:58:49 2018 -0400
+
+ Fix build issues on 32-bit platforms.
+
+ The string ID's are stored in mdds's unsigned long block, but we
+ have changed the underlying type of string ID's from unsigned long
+ to uint64_t. Because of this, on 32-bit systems it caused a type
+ mismatch. On 64-bit systems this was fine since unsigned long was
+ the underlying type for uint64_t...
+
+commit 68eede673d290f64376ba0d6a12e09daa046a9e3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 27 18:35:10 2018 -0400
+
+ Add -Wshadow and remove all warnings triggered by this.
+
+commit e666d0b349d445f4e352ec7161be8e27a275c362
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 22 20:34:13 2018 -0400
+
+ Add the ref-counted formula cell object bits.
+
+commit b74ec638a9851ccc9a4624594a63d5f8d5bcb583
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 22 20:22:16 2018 -0400
+
+ And don't forget the up the API version.
+
+commit 3c4134a0668169b3d71e93792a289cede417ece6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 22 20:21:39 2018 -0400
+
+ Update the checksum on re-generated 0.14.0 packages.
+
+commit dbb229782d26e256819b8e81006f4fa72ad1fb9e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 22 20:11:33 2018 -0400
+
+ Actually there is API incompatible change. Bumping up the API version.
+
+commit 934179c0365151d9555dbbda200877ee89792f9a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 22 20:01:29 2018 -0400
+
+ Add URL's to the 0.14.0 packages.
+
+commit 4d3075c04e4bda15bbff18ba2179424519eab71d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 22 18:33:16 2018 -0400
+
+ Up the version to 0.14.0.
+
+commit e436596999557e18fecd2536d544c056c3596c65
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 21 22:13:05 2018 -0400
+
+ mdds 1.4.0 is released.
+
+commit 06837d2b084bb4024eb105f9a1402a42697d3016
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jun 12 22:27:45 2018 -0400
+
+ It now depends on the master branch of mdds.
+
+commit 603729483b2c167f283c5383d35e4a7ce174c8d1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 16 18:39:50 2018 -0400
+
+ The gettimeofday call is no longer used.
+
+commit 18f62b00f17dfd794c3bcfe23a18a124b0238d6a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 16 18:29:10 2018 -0400
+
+ Use cross-platform way to query seconds since epoch.
+
+commit 2719761a74396021ac911c89c12d092978186f69
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 16 18:16:14 2018 -0400
+
+ There is no need to append an extra character like this.
+
+commit bb09b2a2522d78660c26b75282a4ebf0936a112c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 9 17:22:35 2018 -0400
+
+ Make get_single_result_cache() -> get_result_cache().
+
+ This method should be the primary method to be called to get a
+ formula result.
+
+commit e477bd775e8ded376760b37c807a13ec299b65b7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 8 21:20:18 2018 -0400
+
+ Add new changes.
+
+commit be91d1b029064f8bad829379aa424f0e15de9657
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 8 20:14:18 2018 -0400
+
+ Add a boolean 'grouped' member to formula_group_t.
+
+commit 5c8af00f910b1cf68ce2a11bc027edd0604328ee
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 8 20:07:49 2018 -0400
+
+ Add a method to determine the parent position of a group.
+
+commit 5e128e40f5918907e2d0934c1450569f8ad183fa
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 4 18:17:55 2018 -0400
+
+ Change the wording for clarity.
+
+ * whole_column -> all_columns
+ * whole_row -> all_rows
+
+commit fe7fe672c339493f1032cf1285188d4408adb5f7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 2 20:53:25 2018 -0400
+
+ Revert "Use the grouped range to move the listening destination."
+
+ This reverts commit 401231d770591a3fd6619a7c31aa8cee823a88a4.
+
+commit 401231d770591a3fd6619a7c31aa8cee823a88a4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 2 20:35:06 2018 -0400
+
+ Use the grouped range to move the listening destination.
+
+ In case the listening destination cell is within a grouped range,
+ move to its origin position (top-left cell) for the purpose of
+ tracking dependencies.
+
+commit 817396a1bda3082ad41534ea65047db7c66e6faf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 2 18:36:25 2018 -0400
+
+ Re-implement grouped_range with rectangle_set.
+
+ flat_segment_tree wouldn't have worked since two goruped ranges may
+ still overlap by either column or row direction without them actually
+ overlapping with each other.
+
+commit 7a4066b617efddcdac68b315048f947e2517d34b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Mar 31 09:41:12 2018 -0400
+
+ Store group size with the calc_status instance.
+
+ And add a method to formula cell that returns formula group
+ properties.
+
+ This commit also renames sheet_size_t to rc_size_t, to make it sound
+ more generic and be usable in other areas.
+
+commit eb29194b87a7ad73b01a0c0e377af8d2042830a8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Mar 30 22:49:43 2018 -0400
+
+ Keep track of grouped ranges so that we can find their origins.
+
+commit 0c64338400e823dc7cfa67647a7eaf91032d84c9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 29 20:39:35 2018 -0400
+
+ Remove unused method.
+
+ I don't think there is any value keeping this method around.
+
+commit 158699bdaf8ea17634a07e320605455f07e3b143
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 29 19:32:05 2018 -0400
+
+ Use ranged for loop and remove unused function object.
+
+commit 5c10772ae03f9e2b4f1d4c801d079b6d4d3aaf6e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 29 19:14:42 2018 -0400
+
+ Fix a bug in get_all_dirty_cells().
+
+ * C5 listens to A1:C1.
+ * A10 listens to C5.
+
+ When A1 gets modified, the old code would only return C5 as its
+ dependent, but it should actually return both C5 and A10. This change
+ fixes it.
+
+commit 62f4d060dd071357dba0b7ba1de6592b0855aa2b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 28 23:10:22 2018 -0400
+
+ Add a separate test program for dependency tracking.
+
+ Currently range tracking isn't working. I need to look into this.
+
+commit 85cf3b39cdcf1bf30aea66971349568ef6ef58e7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 28 21:57:29 2018 -0400
+
+ Be more descriptive.
+
+commit e91f61cb44ad39021a805c009d7ec5a13034eb8d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 28 21:44:49 2018 -0400
+
+ Retrieve a single numeric value from a matrix result.
+
+commit 62f46e18c0eafd9e17511b4d5ebe72825ecf4ee1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 28 20:08:59 2018 -0400
+
+ Check for re-calculation as well.
+
+commit 4f6245bb0b28ff59bbf18edb52fbee0d4904d09f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 28 19:59:19 2018 -0400
+
+ Add a function that always returns a single cell result value.
+
+ And use it when validating formula cell calculation results. With
+ this, now we can enable the MMULT function calculation test which
+ returns a matrix result.
+
+commit 1bfabe2e2663946028ced59db57cfb9cb89da128
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 27 21:46:30 2018 -0400
+
+ Add some rudimentary test for matrix and numeric_matrix.
+
+commit c421a8413f1cbd378810280c3e9deefb65f5ad4b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 27 20:32:56 2018 -0400
+
+ Make nuemric_matrix column-major.
+
+ Since the matrix class is column-major, we need to make
+ numeric_matrix also column-major as well, else it would transepose
+ the content when being passed to the matrix constructor.
+
+commit c03353d24078f8b5d790336b4046cbdcef80fece
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 27 20:28:00 2018 -0400
+
+ Print out the matrix result for real.
+
+commit 5e1b7103e10e1aef0a3a597eb3fd86dc85a21e00
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 26 21:34:07 2018 -0400
+
+ Remove unused & non-functional class.
+
+commit 42934079d6a3741c56dfb482c6ccb4b700ce9014
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 26 21:31:13 2018 -0400
+
+ Get the matrix formula cell to calculate & fix the display string.
+
+commit 790c5d97ca25ff9683a3acdfedbcaa4c18abe3f1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 26 21:15:33 2018 -0400
+
+ Finally manage to insert grouped formula cells for matrix values.
+
+ Still not working fully yet.
+
+commit e1177987476fae59ba0ed4428da500b0b9bbc197
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 26 18:38:43 2018 -0400
+
+ Discover and parse matrix formula definitions.
+
+ Matrix cells are not yet created.
+
+commit c7023be5b6afb55f24f9c93fafb985883f349a9d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Mar 24 13:30:15 2018 -0400
+
+ Add test case for ranged definitions with duplicate values.
+
+commit d4b11e8967890947ebcb02072e3b59ebae2527fe
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Mar 24 12:49:45 2018 -0400
+
+ Support iterating in either horizontal or vertical direction.
+
+commit fe5e0c3d13465339c83493c03b55bc921129d477
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Mar 24 11:18:44 2018 -0400
+
+ Add iterator for absolute address ranges.
+
+ And use it to iterate through cells within range.
+
+commit 320f7026c64492d970bc437189ce9b2dfb8a0eb9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Mar 23 22:28:31 2018 -0400
+
+ Work on supporting assignment to cell range.
+
+ The goal is to let you do things like:
+
+ {A1:C3}=1
+
+ to mass-assign the same value to multiple cells which in this case
+ is A1:C3. Not finished yet.
+
+commit f825b566f7eed096d0a1d86a28bfa5dbe01e0402
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Mar 23 20:01:11 2018 -0400
+
+ Remove non-buildable debug statement code.
+
+commit 6b02023e674424dd22df2d7911f712c6b1fb6bdf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 22 17:43:45 2018 -0400
+
+ Stack is LIFO, not FIFO.
+
+commit fcdaa998f94a243f599b3cc2023a7aa8985f5a88
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 21 21:20:49 2018 -0400
+
+ Add the ability to store matrix result to formula cell.
+
+commit f83adb060523ac41bfb140a46d8b92e7a40b14b5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 21 19:53:04 2018 -0400
+
+ Add these files to slickedit project.
+
+commit 21c2a34c2226586fab4a242eca13ab6d2e7d66a3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 21 18:39:22 2018 -0400
+
+ Share single calc_status instance amongst all grouped cells.
+
+commit a062604d5df1fb691f0e2ee03ea78daad3d55a6c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 20 22:35:14 2018 -0400
+
+ Add a class that manages creation of grouped formula cells.
+
+ I still need to work on sharing the calc status object amongst the
+ grouped cells.
+
+commit ea5770cb1ca2e3a8313b00fc528dbe0b7f7bd488
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 20 21:22:18 2018 -0400
+
+ Make sure we calculate only the top-left cell of a group.
+
+ Of course if it's not grouped, it's okay to calculate.
+
+commit d3186c61746b5d2686e1645488650ff60b59388d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 20 21:15:21 2018 -0400
+
+ Reduce the amount of dereferencing.
+
+commit 68ff9546747556030b31173ec78a69c9050f8596
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 20 20:46:35 2018 -0400
+
+ Rename interpret_status to calc_status. Easier to type.
+
+commit 84675c852edac57b9be4ab097132785799e9bb07
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 20 19:30:44 2018 -0400
+
+ Preparing formula_cell to be groupable...
+
+ Store group position info, and make the interpret_status object
+ shareable.
+
+commit 804f13bcea5f0a7a25820791f30a219368f9d07c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 19 22:06:20 2018 -0400
+
+ Disambiguate make_unique.
+
+commit 03b4c383f2094566694b2d5307c072988944e0cd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 19 21:55:59 2018 -0400
+
+ Push matrix result onto the value stack.
+
+commit 94813f3bad6bb9f1700d5f9416965dd3b05e169d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 19 21:12:52 2018 -0400
+
+ Implement MMULT partially.
+
+ Only the top-left matrix value is returned as the result for now.
+
+commit ac52c79fba6251f9f2a51f1b3858ec7d1c63f883
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Mar 16 21:27:09 2018 -0400
+
+ Add function hook for MMULT.
+
+ I have yet to properly implement this function.
+
+commit 95685e1986a0fe64f76e2e6f88cd7cb2103c7ecb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Mar 16 18:18:32 2018 -0400
+
+ Rename get_store() to just get().
+
+commit ad384af0a7ca768bb8a538d630389c632d3abc87
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 15 22:02:03 2018 -0400
+
+ We don't need this struct now.
+
+commit 67de163f742cff925766137ea76bd48b837b24ec
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 15 21:56:28 2018 -0400
+
+ Use std::unique_ptr for this.
+
+commit 1964aa6b90c8fef7f993984651aef53076cac5a0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 15 21:42:47 2018 -0400
+
+ Add a variant of set_formula_cell() that takes shared formula tokens.
+
+commit 194de0da5ed511ccaca2a85874bb85c997d74668
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 15 21:25:11 2018 -0400
+
+ Change set_formula_cell() to take formula_tokens_t instead.
+
+commit 4dba364ccda347823b7c920faf5b56acc7d9df47
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 15 20:41:53 2018 -0400
+
+ No more separate tokens storage with model_context.
+
+commit 2df2be51a49602cc09e7733c1dda0f4ecac7a6f2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 15 20:19:37 2018 -0400
+
+ No more shared flag in formula_cell.
+
+commit 5caa380f9c8481bcac9914955778afa48f43982f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 15 20:17:53 2018 -0400
+
+ Remove identifer storage from formula_cell, and get it working.
+
+commit 7b138c958ac9d16997941e4e324e14091baf7e62
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Mar 15 18:49:57 2018 -0400
+
+ This method doesn't need to be in the interface.
+
+commit e6247cb934abff67f30ee9c024f605de08fe7a93
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 13 22:28:11 2018 -0400
+
+ Getter is const. Also let's return a const reference instead.
+
+commit 53e6ba8587a6f454eb4233ff013af0ec8bf04284
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 13 21:25:34 2018 -0400
+
+ Make the formula_tokens_store's pointer type forward-declareable.
+
+ And add setter and ctor for this in formula_cell.
+
+commit d3c70591b3e7d49cfa2bde2fb38b7e5d05f49641
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 13 19:26:00 2018 -0400
+
+ Let's not forget to add a way to get the actual tokens.
+
+commit 3ebb94cf06dffcd01a4d1fa76f9366f1f7a46c28
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 13 19:18:14 2018 -0400
+
+ Add a staic create() method and write some test code on ref-counting.
+
+commit 6fd3a15cc58346582584f00d7979e2fe7be14d27
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 13 18:55:28 2018 -0400
+
+ Add a new class to store ref-counted formula tokens.
+
+ Not used or tested yet.
+
+commit 14101da22a1bdf2238783c4a9dd6c334ff2706f7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 19 10:57:12 2018 -0500
+
+ Support configuration option for output precision.
+
+commit ea8a160b021494d59fc9add18537bf95151b57a0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 12 18:24:52 2018 -0500
+
+ Do actually make use of the argument separator specified in the config.
+
+commit a0df598f829864cf346de7c1fad4d0b2feeec23c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 10 11:58:13 2018 -0500
+
+ Add a test case for the built-in CONCATENATE function.
+
+commit 2ae3fa659555f1a90ee0a37e2194416e3a0f0cfd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 6 22:17:30 2018 -0500
+
+ Up the version to a development version.
+
+commit 32ee682a379e1626f5f5a06765fa67504ca20cfe
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 6 22:09:32 2018 -0500
+
+ This part is not cross-platform. Conditionalize it against _WIN32.
+
+commit cefe6073242891a74aeaab3c5ffa3f0ecad182cf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 6 21:59:15 2018 -0500
+
+ Put the compute engine and related code under 'draft' namespace.
+
+ They are still largely experimental.
+
+commit 381484fcce806bc6d5742bb548b0c3343147130d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 6 21:48:51 2018 -0500
+
+ Let's call the default compute engine "default" instead of "base".
+
+commit edf79aa57df59488a1202764389620e497523d15
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 5 18:46:14 2018 -0500
+
+ Add --enable-cuda build option to enable/disable CUDA compute engine.
+
+commit c928f23e5037c8352fa85b29c5eebb4a723df94d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 28 20:29:38 2017 -0500
+
+ Use boost filesystem for real.
+
+commit 26832e00afafbfa97c078765178e20d1ce9fcac2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 28 18:53:34 2017 -0500
+
+ Change it so that new module types can be added later.
+
+commit 392458df4d8fa119408e53eb9969ad4e6f5ad24d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 27 20:23:50 2017 -0500
+
+ Avoid hard-coding the API version string.
+
+commit e95147daeecf04a8db1e74649c93f8f8e6d2bd92
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 20 21:12:36 2017 -0500
+
+ Add class and method docs.
+
+commit a02450f9de44b0964851f2e44a75eb8cf4ba2b38
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Nov 20 20:57:48 2017 -0500
+
+ Store the create/destroy function pointers for compute_engine classes.
+
+commit 59e6d0ea6ec956177412c04cc6f8f8dd2ce1e1ac
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Nov 18 22:38:40 2017 -0500
+
+ Get module definition data from the cuda module.
+
+commit b9c8815a28436bbdaa3e427a0e90d33426d15692
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Nov 18 21:06:49 2017 -0500
+
+ Set up a test environment for the new compute_engine class.
+
+commit cabbb69afbbed81a2e8b5346893ae540f305d5ea
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Nov 18 18:59:36 2017 -0500
+
+ Use nullptr.
+
+commit a00f1c8c39ca136eb4dd4b686318dc303ddcf75e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Oct 8 21:42:49 2017 -0400
+
+ Remove obsolete Visual Studio solution files.
+
+ Use cmake instead.
+
+commit 2aa13f6f281da3dda38046d5df9ba44b504a493a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 15 20:54:48 2017 -0400
+
+ Update the authors list.
+
+commit b4f8fb210e389844a488be843fdc13ddd258d62e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 15 19:34:52 2017 -0400
+
+ Add URL's to the 0.13.0 packages.
+
+commit 789a08ebc3e7fc2a3914fc34b2497bf476952bfc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 15 19:18:03 2017 -0400
+
+ Update the changelog.
+
+commit bc55f21bbefc4ca9e73164453c60c859cd8ec5dc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 15 19:10:39 2017 -0400
+
+ Up the version to 0.13.0.
+
+commit 1bee3e9977e10818b75c7f44fcaaa9fa1aa49801
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 4 21:23:17 2017 -0400
+
+ Another failing test case and a fix for it.
+
+commit 9819ad4284d173e81106d4dd55a67ab2048dd8d3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 4 21:06:14 2017 -0400
+
+ With this change, the newly-added test now passes.
+
+commit 1e57b24c3acb9797847eed776d92750c8fc2afc0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 3 20:58:58 2017 -0400
+
+ Add a test that currently fails.
+
+commit 7a075c84cfe4a1963d18c107004200c87c7e9b73
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jul 13 18:29:09 2017 -0400
+
+ Remove code duplicates.
+
+commit 352b95e4adf49a697166313fa590068553a8cc05
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jul 13 17:51:44 2017 -0400
+
+ Test boolean values with SUM.
+
+commit bc7b844c203e5a0cd8dd9ebd68f8452a1cba8dba
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jul 13 17:50:15 2017 -0400
+
+ Get boolean values to work in COUNTA function.
+
+commit 2f488e2af2353e52be14222b01f525b556758cfe
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 12 21:48:04 2017 -0400
+
+ cmake: enable parallel build with MSVC backend.
+
+commit beb852797fc2232c93a89719a4a95421fac8c304
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 12 21:39:19 2017 -0400
+
+ cmake: silence some known compiler errors for MSVC.
+
+commit 7687a5a674c84503a01f47c56a1808cbf6c45d0e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 12 21:07:43 2017 -0400
+
+ Add initial boolean value type support.
+
+ Still experimental, and not all corner cases are expected to be
+ working.
+
+commit 1cdb0489d2b825c04079e5ac38940df75c409aca
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 12 18:45:03 2017 -0400
+
+ More descriptive exception message.
+
+commit 7a92289de22b9be106cdb9bf8e9a19bc6f12669c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jun 8 16:47:16 2017 -0400
+
+ Tweak the wording a bit.
+
+commit 14b28d947ae04be1d13469461b055a1b28ef73b0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jun 7 21:24:25 2017 -0400
+
+ Add a contribution guide.
+
+commit 8b22a794a3b4545748e06367ac64fb118f2a0b10
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jun 7 21:12:59 2017 -0400
+
+ cmake: add ixion-sorter and ixion-formula-tokenizer executables.
+
+commit 4abf226d052663f42ba9c2433a04033758f96824
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jun 7 21:03:38 2017 -0400
+
+ cmake: add ixion-parser target.
+
+ And fix one build error.
+
+commit ffb9ad7e66285526ca8b2a97f8164b90cc31ba8d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jun 7 20:40:03 2017 -0400
+
+ cmake: define necessary compiler definitions for a DLL build.
+
+commit 3270d6b1f541fc011da062942cb96ac02d690712
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jun 7 20:27:23 2017 -0400
+
+ Perform pre-build file generation the same way autoconf does.
+
+ We need this for non-autoconf build system i.e. cmake.
+
+commit 31495ad282df5acc66e9b8d40fbdd4e7095572d7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jun 7 18:40:56 2017 -0400
+
+ Fix the build on vs2017.
+
+commit 699333f0b227ccde92271cf83719180cda835ebd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jun 7 17:49:11 2017 -0400
+
+ cmake: add all the source files for libixion target.
+
+ Still not buildable.
+
+commit c1f85fe0c245c56736a192456feceeb185ecc553
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Thu Jun 8 04:21:59 2017 +0200
+
+ fix missing header include
+
+commit d300ed3caadba1f73a30000280477f059f300418
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Thu Jun 8 04:10:55 2017 +0200
+
+ we might no longer need the old ABI
+
+commit 7212efdbd79c4af43588cfd68886d2c0795a930b
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Thu Jun 8 03:52:51 2017 +0200
+
+ more debugging help
+
+commit aa1c9681a77f71fdefe794b9fc124679ab56cbc4
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Thu Jun 8 03:48:15 2017 +0200
+
+ help in debugging failure in ci job
+
+commit bd73d17226c751ae4fc7b3dbc8697d26f109d8ea
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Thu Jun 8 03:30:09 2017 +0200
+
+ recognize gcc 5.4 and gcc 6.3 in boost.m4
+
+commit 927808c7d6d4a78acb824d1416f3c86bb3766176
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Thu Jun 8 03:25:25 2017 +0200
+
+ update boost.m4
+
+commit 432ed93f59c0cbe764cc3718bc7f653f99ca71b1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 9 21:30:18 2017 -0500
+
+ Support named expression parsing with Excel R1C1.
+
+commit a726d8d64a441ad6febc6797e4f1152adaf0ae32
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 7 19:33:36 2017 -0500
+
+ When the sheet name is given and isn't found in the model, it's invalid.
+
+commit 150e0ac7793e8ed6aea10a18c1fc92fd841a2480
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 6 21:50:08 2017 -0500
+
+ parse_formula_string() and print_formula_tokens() to return value.
+
+ With C++11's move semantics, this makes more sense...
+
+commit a21ee8087c2d18f7b52f5a4cf1045e79b7a804fa
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 3 21:50:09 2017 -0500
+
+ Add test case to handle invalid name error.
+
+commit 10e9a8c9f69c2ebe60accc38c78eee83b4f2388e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 3 21:49:38 2017 -0500
+
+ Handle '#NAME?' error in the formula result.
+
+commit 0a7a8b2c6727d6d2d017324e5beaf9cdba4a7bd0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 3 21:14:28 2017 -0500
+
+ Fix wrong error message.
+
+commit cbc4fb5c9d131d6f038c6d74836d597309cee3b4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 3 21:08:12 2017 -0500
+
+ Use parse_assignment() method to simplify the code a bit.
+
+commit edb4f8853fa580c08296aae38d21e89547ee8092
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 3 20:15:25 2017 -0500
+
+ Generate #NAME? error on non-existing named expression.
+
+commit 3b5c7a37c6f136932eaad6c554537dc28d19b7c5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 3 18:55:51 2017 -0500
+
+ Throw a more specialized exception for non-existing named expression.
+
+commit 4e069dbf47c29c0523b033ad283fff6b0ee626da
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 3 18:36:46 2017 -0500
+
+ Let's remove this. This has become bit-rotted.
+
+commit 36f578bccfe73ade51b9176453951a4e5643ac0b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 3 18:35:23 2017 -0500
+
+ Add new error type for #NAME?.
+
+commit 2c83e6fb3c7d498a07aeff719b5fbaa34cb35563
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 3 18:25:04 2017 -0500
+
+ Print named expression names.
+
+commit c57d435fca8163d0fbab849183c924c51d4e4fc6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 3 18:20:24 2017 -0500
+
+ Print individual token data via formula-tokenizer.
+
+commit 079b58d8ca2097c73b410d8064d26d5dbf1d9065
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 3 17:31:45 2017 -0500
+
+ Make sure the 'exit' command really exits.
+
+commit 12768b2c7f7ccecbf6b6bc5b2a81cdb0a33b82a4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 2 22:32:18 2017 -0500
+
+ Check the sheet index against the sheet count.
+
+commit f5a72147fe4f46ea16ce061c4071054fa723a67c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 2 22:17:12 2017 -0500
+
+ We can't assume that mp_cxt is never nullptr.
+
+commit 7aef80602ad02e2bac0f200b5319e8cca7f58a8f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 2 21:13:32 2017 -0500
+
+ We don't need this interface method now.
+
+commit b55d48d1c39cdbf811d8fac556d47f4a546fd674
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 2 20:29:48 2017 -0500
+
+ Check the results and test the recalc after editing.
+
+ Now I can add this to the official list of test cases.
+
+commit 4ae122f9d9af80e067ed6a1ecd4899d90c1a0ba0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 2 20:12:56 2017 -0500
+
+ Pass the "show sheet name" flag to the session handler too.
+
+commit 3f60def1bf25d3cab79bc12c7d8a87a69ff19639
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 2 18:36:58 2017 -0500
+
+ Test file for sheet-local named expression.
+
+commit d64f1b93f8fdb36b708e8755cbab6d8c5432c71a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 1 18:45:37 2017 -0500
+
+ Handle sheet-local named expressions.
+
+commit 01debe03a12d5b672630063f4e072d8ea6a31c74
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 30 22:44:45 2017 -0500
+
+ Add new session command to toggle sheet name display.
+
+commit 0bdd9bd21f8dd7442a75619c63392c339a187382
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 25 22:18:33 2017 -0500
+
+ Use override keywords.
+
+commit 0ca4162e1650d9a47d52d858ef746435bb85d2d1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 25 22:13:34 2017 -0500
+
+ Make this test case an official part of the test collection.
+
+commit d01a86a5ca8db35f7a980acec43aacefe71760e8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 25 22:12:48 2017 -0500
+
+ Test for editing and re-calculation.
+
+commit 7e64bbe109eabcdfd78f2f5db5727da36753dade
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 25 20:04:22 2017 -0500
+
+ Make sure that address position outside the sheet boundaries is invalid.
+
+commit b38de9a120440cd1f964d57108876ec75142c688
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 25 19:26:29 2017 -0500
+
+ Ensure that the column value won't overflow.
+
+commit db8837fa7bf43b67793f02a9a144076607cf0a41
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 25 19:04:16 2017 -0500
+
+ Add test for named expressions.
+
+ It currently fails on 'MyRange2'.
+
+commit 9417577fa8a78df5657df3cf2c6d10fe785d8f9b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 25 16:38:48 2017 -0500
+
+ Remove bitrotted debug code...
+
+commit 71f5957549e7de302c419fc848b8269167b21aa2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 24 23:00:29 2017 -0500
+
+ Refactor a bit to expand named expression during reference retrieval.
+
+commit a50d0c8f7e73960e6049db95dd9521caa1b656d0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 24 21:28:08 2017 -0500
+
+ And push the named expression into the model for real.
+
+commit 9cb27dedabb4ba99ef6c77b7ddab2ee718bd91c0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 19 22:20:37 2017 -0500
+
+ Parse the named expression block.
+
+ Next step is to push it into the model.
+
+commit d0f40e3d3f4f07586b7c784f7b381eaeabd453b6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 18 18:45:39 2017 -0500
+
+ Store formula_tokens_t for named expression instead of formula_cell.
+
+ And this will bump up the API version.
+
+commit b1997764afc3c8660a5f9b90f68a6ea455cb8b2e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 18 18:18:54 2017 -0500
+
+ Parse named expression blocks.
+
+commit 1c13ab7efd9f5f5d128b298ae670671ffb6f5ea2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 17 21:44:37 2017 -0500
+
+ Parse session block.
+
+commit 7f91f8389cade81691b09bd5f45bd7ef43525219
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 17 20:36:10 2017 -0500
+
+ Refactor the model parser a bit...
+
+commit f5b7e16ac36b052b2e33a7d3eb21e00826b511a5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 16 22:46:40 2017 -0500
+
+ Test file that I need to support. It doesn't work yet.
+
+commit 66f8238d7309165ddd005a2b7ddcb024a388e798
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 16 22:46:16 2017 -0500
+
+ Prepare for upcoming session mode.
+
+commit 26cb9b2d026a185841def623aba01d5c9d3e7ee9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 16 22:20:14 2017 -0500
+
+ Require an explicit 'exit' command.
+
+commit da294fc2d80772b4cdc43e23595cb23d619a4760
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 16 19:59:38 2017 -0500
+
+ Implement setters for the sheet-local named expressions.
+
+commit 16353df35408c3c6f6afd7727ad9d2dc6ecd1a3a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 16 18:47:11 2017 -0500
+
+ Implement getter methods for sheet-local named expressions.
+
+commit 3d7e11aef952947c4c1041c5149bd7fb042620ba
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 16 18:07:47 2017 -0500
+
+ Move the named expression type into a common place.
+
+commit 5fed7a42cc4582ba785074661248e52d07d4f32d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 13 19:51:37 2017 -0500
+
+ Add rudimentary formula string tokenizer.
+
+ Use for debugging.
+
+commit c4e6aff5a34e7cec2b360284d8bd241dba5105bc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 14 21:18:31 2016 -0500
+
+ Add URL's to the 0.12.2 packages.
+
+commit 59c2852a4ccc2fc736e0a11a1135bf5de881c8d4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 14 21:01:02 2016 -0500
+
+ Up the version to 0.12.2.
+
+commit 95abcd359ebe848566d710e7b3ad54bb35138252
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 14 20:59:54 2016 -0500
+
+ Update the CHANGELOG.
+
+commit 7c75ce333a27c808069d9b7f541968d4cad9181d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 14 20:55:22 2016 -0500
+
+ Fix lexer tokenizer to get R1C1 addresses properly parsed.
+
+ For now, a lexer name that contains a '[' and ']' pair can have any
+ characters in-between, in order to have e.g. 'R[-5]C' properly
+ parsed as a name.
+
+commit 5daa352543d12e10e81307210728dab3d0063ef5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 14 18:38:47 2016 -0500
+
+ Fix a range address parsing error.
+
+ It previously failed to parse 'R[-5]C:R[-1]C'.
+
+commit 496bb1a2332f809029f934fd31ce1e2f0f434d7e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Dec 13 22:46:24 2016 -0500
+
+ Add a test case that ixion currently fails to parse.
+
+commit 13a5896b9a8ed558b1ed23170d565e56e5a441f7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 29 20:10:12 2016 -0400
+
+ Export these hash::operator(...) symbols.
+
+commit 27e8cbda4bfab21c92cffc70d8478dd7b1ffcf42
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Wed Sep 21 23:36:47 2016 +0200
+
+ add CI config
+
+commit 51af38eb0788f95339cecb98f588d16643b98edb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 17 15:35:17 2016 -0400
+
+ Add entry to 0.12.1.
+
+commit f5d9be4201a23267b94d4c9584e27a53d6658b48
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 17 12:05:31 2016 -0400
+
+ Set the version to 0.12.1.
+
+commit 38ea08e184dc84bd22b3f8962f5bf1be5b55a64a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 17 12:00:20 2016 -0400
+
+ Add extra check to make sure the file is not really compiled.
+
+commit d05cad7e901a2a558c8645fcf820271be49d828d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 10 15:36:00 2016 -0400
+
+ Add --enable-threads configure option.
+
+ When the threads are disabled, the thread count parameter will be
+ ignored and the calculation is always performed single-threaded.
+
+commit 466e7d9ecfeb7ead6d359ef2b6af60e571a90d43
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 15 22:15:59 2016 -0400
+
+ Update.
+
+commit 7014df346fcec57710686438e29b2df7f81bd9d8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 15 22:13:51 2016 -0400
+
+ Add 0.12.0 to the download table.
+
+commit d85839c616293d3b73fd685a2a2bf3ff36200019
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 15 20:04:36 2016 -0400
+
+ Remove unused.
+
+commit adf09865453a9d89f935b265d54b49d73c56aaf7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jul 14 22:22:11 2016 -0400
+
+ CID 164670: Uncaught exception.
+
+ In function "main(int, char **)" an exception of type
+ "ixion::depth_first_search<...>::dfs_error" is thrown and never caught.
+
+commit f0442f4475350034ba3881d791297e2a935a98dd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jul 14 22:17:13 2016 -0400
+
+ CID 164669: p0 may be nullptr and get dereferenced.
+
+commit ec9c561bf182e0370c67f5ffb60e578833484a6a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jul 14 22:03:18 2016 -0400
+
+ CID 164668: Remove the code block that would never get reached.
+
+commit 9d5da4d09ff07cf613baea85612ba34b54fed9e4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 13 16:01:09 2016 -0400
+
+ Variable 'len' is reassigned a value before the old one has been used.
+
+commit 930f5cbc400a424ca924dec56c3660aee05dc3b2
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Wed Jul 13 13:56:30 2016 +0200
+
+ use enum class to avoid name conflict with local variable
+
+commit ad5767e6cdf4474b87bea2f6cc59d32308f18ff7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 12 22:44:36 2016 -0400
+
+ Fix this.
+
+commit 423b797d71309bc69e34d954eb749e937f802b14
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 12 22:41:40 2016 -0400
+
+ Manage to get make distcheck to pass.
+
+commit 58da528ec301a25db0f1b345af4ac22d92432142
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 12 22:30:06 2016 -0400
+
+ Remove build-time dependency on boost thread.
+
+commit 8237d4633e6dbc84eb903ce7e5570d4fc2d0e7e3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 12 22:26:20 2016 -0400
+
+ Set the version to 0.12.0 & some copy-n-paste of docs.
+
+commit b14272ae48cea590ac55f7859eab323c53ab14ba
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 12 22:22:50 2016 -0400
+
+ More on documenting the code.
+
+commit 84f6e0a3e739d743f3b52fb62eafc5030b0a1b52
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 12 21:44:56 2016 -0400
+
+ Update.
+
+commit ddc24b16ce10e4f3ee2e0b6bb8952ab156d70478
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 12 21:41:31 2016 -0400
+
+ Add link to the doc.
+
+commit deedbf2e5b4f21e8265481247553ea98baf66db0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 12 21:34:59 2016 -0400
+
+ Split the doc into sections.
+
+commit 3dacc7be0ff4e6a1a75e1f46ed9ee4793a32119b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 12 21:15:00 2016 -0400
+
+ Move formula_error_t and associated function to types.hpp.
+
+ It makes more sense that way.
+
+commit aeda3d18990d205a7c247f458f4ecde64950f352
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 12 21:05:26 2016 -0400
+
+ More on documentation.
+
+commit 503b9fc48a91559b6310138e4ce66380dcc8757c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jul 11 21:05:11 2016 -0400
+
+ Get ixion to build on OSX again.
+
+ and make check passes too.
+
+commit cd98e73ab2c97299cc0573a90fbb0840baac15df
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 6 22:26:16 2016 -0400
+
+ get_all_formula_cells() to return the list directly.
+
+commit 3e861d01843d0187574bfeb08f4defb1986ef636
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 6 22:13:08 2016 -0400
+
+ Add more to the doc. We are far from complete.
+
+commit c72fe3684bd0d5cd64ed88fab9dcafcff90c84c3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 6 21:42:47 2016 -0400
+
+ Document address types.
+
+commit 0e9006be552f728048142a1943312a691a588f16
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jul 6 21:07:41 2016 -0400
+
+ Document the main formula API and interface classes for C++.
+
+commit aa2afd6bab5e618b9424ba443c92fa49251ffc3f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 22:32:12 2016 -0400
+
+ Attributes should come up front.
+
+commit 7db11cc2422b62bdc59c3f0ff28e65c39f94eb2d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 22:29:46 2016 -0400
+
+ Be sure to set appropriate exception object when returning a nullptr.
+
+commit 092f989ca9b4fa1b8d5cb7f49830c9dbedf46bde
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 22:11:23 2016 -0400
+
+ NULL->nullptr
+
+commit d48315a3dcc0f9888aab0664c83b4cb7e34c2462
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 22:05:18 2016 -0400
+
+ Document all the method parameters.
+
+commit 580a9e67467a497b43ee4721fa8d9b7d860f3f90
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 21:56:26 2016 -0400
+
+ Update the document to add the new 'threads' parameter.
+
+commit 0b806053ddd7a27239c88b126da3afabc9df6857
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 21:49:59 2016 -0400
+
+ Update the documentation to reflect the change.
+
+commit 9d3b592deb6b34fb237e4c019503bf70ee762311
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 21:46:20 2016 -0400
+
+ Turn get_sheet_names() method into a sheet_names read-only attribute.
+
+ That's probably more pythonic.
+
+commit 1a0582f9300616f73f99274a6ea9dfe074afe51d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 20:53:20 2016 -0400
+
+ Rename document to pyobj_document.
+
+ To disambiguate it from non-python document class.
+
+commit b128857229849a570eb600d2803ea0cca2dac0eb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 20:42:35 2016 -0400
+
+ Revise the doc for ixion.Document.
+
+commit edb2f7bb4a40476c612ba2141bc6059e6bfd1192
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 19:28:14 2016 -0400
+
+ Set current module correctly.
+
+commit 54c3e3121fc8d6efd99b5252306de924d9874176
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 19:23:32 2016 -0400
+
+ Restructure the sphinx doc.
+
+commit 8ef58dda013241f3510a919fa05646dc438d4324
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 19:10:18 2016 -0400
+
+ Use breathe & bootstrap in sphinx doc.
+
+commit bac9f2de781e5620e58f2913a6ce1d68c8c6f696
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 5 19:05:06 2016 -0400
+
+ Set up build targets for documentation.
+
+ For both doxygen and sphinx.
+
+commit dfa56f9064ee48ddf09a8bae6fd0338d5de5a13e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jul 3 20:56:02 2016 -0400
+
+ Add threaded calculation support in the Python API.
+
+commit 5f617a2dfdb2e028461ad4ded0d07421f266aba6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 20:18:54 2016 -0400
+
+ Add an entry for a bug fix in threaded calculation code.
+
+commit f68aedf5d4aae66c77313793e2a2118a9cc2414f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 20:14:30 2016 -0400
+
+ Execute parser tests for 1-8 threads.
+
+commit beaac157ef44192f28dc7ab2ca794c7f805bf3b8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 19:00:14 2016 -0400
+
+ We need to block on get_result_cache().
+
+ Else threaded calculation would sometimes generate wrong results.
+
+commit 00649a301f7d693863e458a556b73629f776db74
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 17:57:11 2016 -0400
+
+ Print out more details.
+
+commit efb654942443d314d2f25f8ccd98728954a71fbe
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 13:11:04 2016 -0400
+
+ pimplize matrix.
+
+commit 0bc8cde0fd31f94af4aaa1070171c5ef734ecf3d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 12:22:55 2016 -0400
+
+ get_ref_tokens() to actually return the tokens.
+
+commit e3fa536be4be874d3081d0a3c92c43e695fddfe3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 12:12:56 2016 -0400
+
+ Cleanup.
+
+commit 518b6fd7477c8dfaac99d4ad56e547e4fc36ea5e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 12:09:43 2016 -0400
+
+ Export these symbols.
+
+commit bad4c3549637c14636090c95cd4b78fe6f3950d5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 12:06:03 2016 -0400
+
+ Rename formula_token_base to formula_token.
+
+commit e091c6c91560280944b41315c6976b5b3bd73208
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 12:04:09 2016 -0400
+
+ Hide concrete formula tokens implementations.
+
+commit 53bfe28022afacb3b431d85d02c17c5bb2da6e17
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 11:53:52 2016 -0400
+
+ Make formula_result::result_type an enum class.
+
+commit 1cc41e64a341b01645f9025e373a3d783115a552
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 11:47:38 2016 -0400
+
+ Apply pimpl to formula_result.
+
+commit ed239880808f8ae807fc32e69ba9bfa1bf2a62e6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 11:17:43 2016 -0400
+
+ Rename formula_name_type to formula_name_t, and export its symbols.
+
+commit 6ee03e5c45e1306f7dbe96b523def0ce3f52d144
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 11:06:20 2016 -0400
+
+ is_volatile doesn't need to be in a public header.
+
+commit d85e5ee2c838e2310b4d36cc13eaafb477d3ef6d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 11:02:43 2016 -0400
+
+ Hide cell_queue_manager.hpp too.
+
+commit c1a207453c6d8acf2deca4bf34731d6e8975e76d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 10:53:58 2016 -0400
+
+ Hide lexer_tokens.hpp.
+
+commit 968ebdb508d9ff14b31a284d193b01ff19b7c8de
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 10:19:31 2016 -0400
+
+ Hide formula_parser.hpp.
+
+commit d664b1cc9f93fa6b58f897b5cbf763fe39ab00e9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 10:13:29 2016 -0400
+
+ formula_lexer.hpp doesn't need to be a public header.
+
+commit c997858e7c3ec4587e1932f78d9f71122f9e70b6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 10:09:21 2016 -0400
+
+ Cleanup.
+
+commit eca83edcb153eb045588fefeeaba443d96ab2512
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 09:55:35 2016 -0400
+
+ Get the threading to work with pthread.
+
+ Apparently -Wl,--no-as-needed is required to work around a bug in
+ gcc 4.8.
+
+commit f63fc1acbf926dfffa6496b2287d229c082e3cbe
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 09:20:11 2016 -0400
+
+ No need to have global sleep method.
+
+commit aae2d7ba78c0643732dfd5c35a3b9451944e9303
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 09:10:10 2016 -0400
+
+ formula_error_t to be enum class.
+
+commit 7cea7717fc5a253d66fe3e4802f2465e594d4153
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 09:01:36 2016 -0400
+
+ lexer_opcode_t to be enum class.
+
+commit 5c4a3f65fda1fe498279f386532fb473cd18fbc3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 08:51:15 2016 -0400
+
+ We don't use include/ixion/thread.hpp.
+
+commit b94f2e222d130864acd7088c9ebb5abac79a199b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 08:46:43 2016 -0400
+
+ Update the comment about number of threads.
+
+commit b349a2d782ce320bfc646ae5c39d0089960d5895
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 08:45:08 2016 -0400
+
+ Remove additional boost header includes.
+
+commit e6e72a78f35d3b241c69dec57bbf3ed4fc2475b5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 1 08:41:57 2016 -0400
+
+ Replace use of boost/noncopyable with the standard '= delete'.
+
+commit 92dad84273ab88e430b2acbc16be976de26ed2ee
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jun 30 21:56:27 2016 -0400
+
+ pimplize session_handler.
+
+commit 5ffd2c4e625f6e900cd5e6360da0e99bb517f6ff
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jun 30 21:47:41 2016 -0400
+
+ Update CHANGELOG.
+
+commit 7a497071467917dd8f9b9bc0a75733af3b824a07
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jun 30 21:44:30 2016 -0400
+
+ Exception-safe way to join a thread.
+
+ Because the wait_one() method may throw.
+
+commit 21af4316f83aaf439fa4adf1f22cf6abf223e5be
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jun 30 21:41:31 2016 -0400
+
+ We can unlock mutex a bit earlier.
+
+commit c680e67057caa4b9482b5f0ee19215d96b14a533
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jun 30 21:39:31 2016 -0400
+
+ Prevent crash when a session factory is not set.
+
+commit 4daba7922e7c52aff90543122b0decfb1b9a20ef
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jun 30 21:34:05 2016 -0400
+
+ Make the output from the session handler multi-thread friendly.
+
+commit 3be5f21a6cdf6947eff682b6ceace5dd9472181d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jun 30 21:18:05 2016 -0400
+
+ Create one session handler instance per cell.
+
+ It's a step toward making it thread safe.
+
+commit f8bae849c2f757de69796982f88aa099ba5882e9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jun 30 17:15:27 2016 -0400
+
+ Re-implement the multi-threaded formula calculation engine.
+
+ Using C++11's async API makes the logic much, much simpler.
+
+commit d696bb517965ea00d3f41956e47c6e9ab3414aa9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jun 28 22:02:49 2016 -0400
+
+ Set up a skeleton API for the new formula cell queue manager.
+
+commit d788cfcc7828832f824029ad99d41a350f9ef8e9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 27 21:58:33 2016 -0400
+
+ Early bailout to reduce scope level.
+
+commit 764f401fbcdcf1478465cdbf8a6fd0b1bf2f9145
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 27 21:49:38 2016 -0400
+
+ lock_guard over unique_lock when we don't need to unlock/lock.
+
+commit f2e8b7d537ea0d9b721fb81a04d77eae92fe71d8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 27 21:48:32 2016 -0400
+
+ Notify outside of the locked scope.
+
+commit b4c20414d3668cbc8f56b072be0ad182d5fbed2e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 27 21:47:35 2016 -0400
+
+ Avoid naked new operator in favor of unique_ptr.
+
+commit 61059b571a4ac07a4cec8398787c34fade6f1cb4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jun 26 14:27:23 2016 -0400
+
+ More cleanup of the header file.
+
+commit d22416673fc50c0080c2c82ca1fc6064c0f9878e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jun 24 23:45:59 2016 -0400
+
+ Use C++11's standard thread API.
+
+commit 9704b5942462fc95f80b369267b06fe6fa1bd7f8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jun 24 23:35:58 2016 -0400
+
+ We can use lambda here.
+
+commit 1af8f02511d11186bcc951bda929a5439752775d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jun 24 21:37:41 2016 -0400
+
+ Entirely hide the private methods & boost headers.
+
+ This will break API compatibility, hence the API version change.
+
+commit 55f482b4de88e17c5b2f42c317405e2ba391d2fc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jun 24 21:22:59 2016 -0400
+
+ pimplize formula_cell.
+
+commit 19bd124cef90f8492c6b082c8d52888c37dced7b
+Author: David Tardon <dtardon@redhat.com>
+Date: Thu Jun 16 15:03:37 2016 +0200
+
+ update boost.m4 to fix version detection with gcc 6.1
+
+commit a60c813d91833beb98cf5435cb66f40df697fba6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 16 22:31:28 2016 -0400
+
+ Nodify while the mutex is still held.
+
+commit 4852fc91cf7609b292683e07d4b2eba84f6d2f67
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 16 22:30:17 2016 -0400
+
+ Fix python's version requirement.
+
+ Not sure why I set that to 0.28.
+
+commit f853792a5c3dec3c390f37b79c51cc4a0ee4460d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 13 20:19:16 2016 -0400
+
+ Slightly make the threaded mode better.
+
+ Still broken.
+
+commit a1a2108c86de36a59e936bc6a9272eacecb8bce8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 13 19:53:05 2016 -0400
+
+ Use closures.
+
+commit 79244d856bf822b0bb679dc11ea1b8a92ffc2e30
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 13 19:46:16 2016 -0400
+
+ Remove non-functioning debug conditionals.
+
+commit 7ffde1134c20f31897523b70d07a5ad68b619d3e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 11 20:49:11 2016 -0400
+
+ Add 0.11.1 source packages.
+
+commit 3ffd62e7882bf948cdf593c2d7afb3229a4d596f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 11 20:35:33 2016 -0400
+
+ Update it.
+
+commit 44539859a75774d3ad14f1ff5edccabeafca3d42
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 4 20:03:05 2016 -0400
+
+ Add method docs.
+
+commit c1dc87c6c1284aa89b9d8a7af0bf5e5673df590f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 4 19:37:26 2016 -0400
+
+ It now requires mdds API version 1.2 (from the master branch).
+
+commit 5ebabdacfde847e7000e00ed79c7056c967b230f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Apr 2 20:37:12 2016 -0400
+
+ Add model_context::get_columns().
+
+commit b0787b0d01b509559ec8779e3b06669d484f062b
+Author: David Tardon <dtardon@redhat.com>
+Date: Sun Feb 14 17:07:03 2016 +0100
+
+ MDDS_HASH_CONTAINER_BOOST was removed in mdds 1.0
+
+commit 97b5fe6bf868341e743b7b6e106b8991fc6b3684
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Feb 14 08:32:08 2016 -0500
+
+ Fix one factual error. cell.hpp still depends on boost::thread.
+
+commit 8da8a5b402e9e2861210baa0c1b236cf3750c964
+Author: David Tardon <dtardon@redhat.com>
+Date: Sun Feb 14 09:04:18 2016 +0100
+
+ distribute LICENSE
+
+commit cb8626668248d1de109c725569e97eadf96e7d28
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 13 12:19:11 2016 -0500
+
+ We don't use shared_lock in ixion.
+
+commit aad829b30a0a4c13dcad84ff3a8fa883b08977de
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 13 10:02:04 2016 -0500
+
+ Added URLs to the 0.11.0 packages.
+
+commit e7b9b3f2dd5314ff99dfe893c0c130707ce2c650
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 13 08:37:47 2016 -0500
+
+ Finally make check passes on OSX.
+
+commit 0df924770c2dd01451bdf29b2ff2514c6cf0dcff
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 12 23:19:48 2016 -0500
+
+ Fix make distcheck on linux.
+
+ This breaks make check on OSX, but I have no other choice.
+
+commit 705df7fad38c09861dc218e9893bbed5cfcc0887
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 12 23:00:16 2016 -0500
+
+ Finally make check passes on OSX.
+
+commit 826d69a613ad35b5b7791812ed84791cc0964f40
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 12 22:54:03 2016 -0500
+
+ Add /usr/local/* path.
+
+commit c06d6fc9c609f8173351cc08f83de2c375c92439
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 12 22:28:07 2016 -0500
+
+ Add special script to run python tests on OSX.
+
+commit 550f0f3394127eb36235e27a10c4e5fbd4f673d8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 11 21:36:40 2016 -0500
+
+ mdds 1.1.0 is officially out now. Make that a new requirement.
+
+commit a9f085f425ec5d591047df5301da5180e32abda8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Nov 3 17:32:19 2015 -0500
+
+ mdds 1.0.0 is officially out now.
+
+commit 24c8320a72b6bade1e313d8492f1faae88c285d4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 13 19:14:02 2015 -0400
+
+ Add note about building from the master branch wrt mdds.
+
+commit e96f9a5280e3197ec44ff79b035dca7db8eb2bc3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 13 19:05:25 2015 -0400
+
+ Add build instructions.
+
+commit 6f1c764cf094b57aea67aefa00f1b63b3f410d15
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Oct 11 12:14:34 2015 -0400
+
+ Update.
+
+commit 37768b18396410f5156c603d73a98be0cf37cc46
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Oct 11 11:58:17 2015 -0400
+
+ COPYING->LICENSE
+
+commit 608095d04525f4e7dcd64d681f52d573dee0f873
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Oct 11 11:57:14 2015 -0400
+
+ Fix make distcheck.
+
+commit 8c8685df6d076345aaca6be6ffb08661d2bcda18
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Oct 11 10:49:02 2015 -0400
+
+ NEWS->CHANGELOG
+
+commit a9b2e13887f81d168e22eab1bd286d6227e616fd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Oct 11 10:48:34 2015 -0400
+
+ Update NEWS.
+
+commit df1b8eb69779e74999ddb41ae86473aa6092298c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Oct 11 10:22:15 2015 -0400
+
+ Manually specify API versions from now on, starting with 0.11.
+
+commit 6f00eefd2656ab77fd3379f177bcc0b3d90a2e23
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Sep 19 15:29:58 2015 +0000
+
+ Use table syntax for the download section.
+
+commit df58c0c2a15be373f284b0bad0d23eb4fc0aae15
+Author: Kohei Yoshida <kohei.yoshida@collabora.com>
+Date: Sat Aug 22 18:50:38 2015 -0400
+
+ Set DYLD_LIBRARY_PATH in more places to let 'make check' finally pass.
+
+commit b95bc9c5115e870cd8b2b461bf940e1cc374ca33
+Author: Kohei Yoshida <kohei.yoshida@collabora.com>
+Date: Sat Aug 22 17:52:26 2015 -0400
+
+ Explicitly define destructors, else model_context_error won't get caught.
+
+ In the try-catch block in document_append_sheet(), the catch block for
+ model_context_error wasn't being visited unless I defined its destructor
+ explicitly. It was hitting the catch block for general_error instead.
+
+commit a2cfa39722bea16ea71475bb0fa2003b5920d7ee
+Author: Kohei Yoshida <kohei.yoshida@collabora.com>
+Date: Sat Aug 22 15:30:16 2015 -0400
+
+ Make sure that we pick up the shared object from the build first.
+
+commit 56df9ab761a1445f8b18308f5fdc12902308432c
+Author: Kohei Yoshida <kohei.yoshida@collabora.com>
+Date: Sat Aug 22 14:42:56 2015 -0400
+
+ Fix a bug with the life cycle of string objects in the model.
+
+ std::string objects must be heap-allocated, else they would get copied
+ when the vector's buffer reallocates.
+
+commit 484a812b86e6d19fb82c06a70e05b027ce302742
+Author: Kohei Yoshida <kohei.yoshida@collabora.com>
+Date: Sat Aug 22 13:14:39 2015 -0400
+
+ Add method to help debug string pool in model_context on OSX.
+
+commit 200d1c7989df86f4f19308729780bbeeb17ee8f7
+Author: Kohei Yoshida <kohei.yoshida@collabora.com>
+Date: Sat Aug 22 11:46:29 2015 -0400
+
+ Add test cases for the string pool, which seems to be broken on OSX.
+
+commit 2fd42abda91a3740836fb82fe4cb820d6dad392e
+Author: Kohei Yoshida <kohei.yoshida@collabora.com>
+Date: Sat Aug 22 09:07:31 2015 -0400
+
+ Export correct symbol for python3.
+
+commit 3ef6cedf268c8e923efe534471a5fa1eb7ac5118
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 18 21:02:18 2015 -0400
+
+ Some cleanup of the configure script and set default value for --enable-python.
+
+commit 2a14960fcf75e5f87fef329f89f7e90e7a2c358e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 18 12:54:44 2015 -0400
+
+ Fix the handling of --enable-python switch.
+
+ Turns out that conditionalizing the SUBDIRS doesn't work all that well.
+
+commit f15c376d251dd49b2202005ffed157f7d32c4393
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jul 7 22:19:33 2015 -0400
+
+ Use the master branch of mdds.
+
+commit e26a5b8bde8fd4f090e772b0ee1cb167552339b4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 29 19:40:38 2015 -0400
+
+ IXION-ize it and use full file path.
+
+commit 72175bfe0da274bd1ccff81a7d8b16efafeb7097
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 29 19:30:44 2015 -0400
+
+ Better script to run arbitrary python scripts within ixion.
+
+ Copied over from orcus.
+
+commit 4fffef148e327419c125a58ab96e0525f3e7df07
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jun 13 12:54:17 2015 -0400
+
+ Use = delete to explicitly delete special member methods.
+
+commit 739d454598d3510b0a6378037c9e0726ad7ef257
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jun 13 12:41:32 2015 -0400
+
+ Remove boost::noncopyable from the public headers.
+
+commit f3926ffa212faaf4be0614f1ad28300245f53a51
+Merge: 41958a9 0e1c1d3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jun 7 15:19:42 2015 +0000
+
+ Merge branch 'python-optional' into 'master'
+
+ Python optional
+
+ This patch makes python bindings optional if requested through --disable-python.
+
+ Also fixed configure and a typo (the latter exists in 0.9 branch as well).
+
+ See merge request !1
+
+commit 0e1c1d3a0964eef7d0dfc47f2e45ac6cfde918e8
+Author: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
+Date: Sat Jun 6 21:48:43 2015 +0200
+
+ configure.ac: Drop hash_container
+
+commit f972e7e8f6f831b4cc40acf59258148f0c231ee4
+Author: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
+Date: Sun May 31 11:55:08 2015 +0200
+
+ src/Makefile.am: Fix typo
+
+commit c10d840ff1f138dd5d8bdfca7d18673f0e30de05
+Author: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
+Date: Sun May 31 10:14:17 2015 +0200
+
+ python: Make it optional
+
+ python bindings are built unless disabled
+
+commit 41958a9e824890acb1f60b758affb75f12155f00
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jun 4 20:01:18 2015 -0400
+
+ We don't need these anymore since we no longer use ptr_vector.
+
+commit 17a85111371e9efa60c71f1272f5e73369b2cc40
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 1 20:51:46 2015 -0400
+
+ formula_function_t to be enum class.
+
+commit fbd990e1acb49e6eba558463533839fe7cdb95e6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 1 20:42:07 2015 -0400
+
+ Remove the last use of ptr_vector.
+
+commit b4996fec7be4dd454a871841229b80f51a667f68
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 1 19:11:10 2015 -0400
+
+ Add these files to the slickedit project.
+
+commit 3993cbbe39333b3cfcd008abfcc61465da628298
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 1 19:09:18 2015 -0400
+
+ These headers no longer exist. Remove them from the slickedit project.
+
+commit 131a41f7d994169ce0f5941a2c3c01ab01e358c8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 1 19:05:53 2015 -0400
+
+ Replace another use of ptr_vector with std::vector with std::unique_ptr.
+
+commit e553d43926ec7b7a75dc93b156dfd7cc44693597
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 29 19:35:35 2015 -0400
+
+ Remove rarely used formula_tokens_fwd.hpp.
+
+commit 289879c6a09b405fb7c472ff51993d5bd44a630b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 29 19:19:04 2015 -0400
+
+ Replace boost::ptr_vector with stuff from the standard.
+
+commit f8e15d3d5a5d83ae72d1ee5f08b1f58aa5171c72
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 23 15:08:08 2015 -0400
+
+ Replace use of boost::ptr_vector with std::vector.
+
+commit 3502eab844731af72002b58a3abcb653ac936976
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 23 14:49:48 2015 -0400
+
+ Remove use of boost::ptr_map from model_context_impl.
+
+commit 1a67cf59b848a5fa3092afb14b02595f6a03f7a3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 23 14:45:26 2015 -0400
+
+ Remove use of boost::ptr_map from table_handler.
+
+commit a29475edfca04bf39ffe22ab3ede68a1b9921e26
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 23 14:24:23 2015 -0400
+
+ Remove use of boost::ptr_map from depth_first_search.
+
+commit 6972a3bd45496148b0227cba41ac9f9bd9fece2a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 22 19:28:14 2015 -0400
+
+ Re-use general_error for size reduction.
+
+commit 7d5812579420ccf08eb1f9c3d0e33e407a4f1e1e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 21 22:12:29 2015 -0400
+
+ We don't need these hash_container macros anymore.
+
+commit 7465c8039878a787323664cb45cd6d2376026f14
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 21 21:50:12 2015 -0400
+
+ Replace boost::ptr_vector with std::vector with std::unique_ptr.
+
+commit eb8eea0c8f557b8ebe86e0228efe81af9eebcd66
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 21 21:32:19 2015 -0400
+
+ Move value_stack_t and its friends out of a public header.
+
+commit a2c6c461693e2607b3012626c081db4df77006ed
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 21 20:06:16 2015 -0400
+
+ stack_value_t to use enum class.
+
+commit ad219afdde35e8c91866fcc9a2f2b8fe1b3ad338
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 21 20:00:03 2015 -0400
+
+ Header cleanup.
+
+commit e07b04343b6e56fbe3d0bba24a0630e8eb198c5b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 21 19:54:02 2015 -0400
+
+ Use std::unique_ptr.
+
+commit 9b0a817247ddb1973a608dc27cb26897e01a0367
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 12 14:43:33 2015 -0400
+
+ Convert celltype_t to enum class.
+
+commit ce79c771b0d94578be89e12b0cd9cee682bcb88c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 12 14:33:48 2015 -0400
+
+ Convert formula_name_resolver_t to enum class.
+
+commit 9e52b19a946aad536ce58516050177444a0e539a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 9 12:36:57 2015 -0400
+
+ python: ixion.column_label() to optionally take name resolver type.
+
+ It's an integer type whose value corresponds with the enum value of
+ formula_name_resolver_t.
+
+commit 45260bb942d8cd50e2da53acebfc8a6f7958f473
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 8 22:51:23 2015 -0400
+
+ R1C1: implement all the other missing methods.
+
+ Table names should be identical to the A1 counterpart's.
+
+commit c48db1c3f187b858638a127d7d39f6dfc5a40866
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 8 22:31:49 2015 -0400
+
+ Handle sheet name containing single quote(s) correctly.
+
+ Two consecutive single quotes ('') represent a single quote.
+
+commit 092a0fc799d532897935b65b3a668cdfa0a4e183
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 8 19:21:09 2015 -0400
+
+ R1C1: Implement get_name() for range addresses.
+
+commit a46c2d7a731c3dc01681b0e5034d9f073f5bf6b4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 8 19:01:52 2015 -0400
+
+ Rename write_sheet_name->append_sheet_name.
+
+commit f45cc9876cef8c04a47db681d6b4a674bd16eb15
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 8 18:54:24 2015 -0400
+
+ R1C1: more test case on ranges with sheet names.
+
+commit 51ad6182446bd1b5b16531e67f8370eb5ec9d117
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 8 18:16:24 2015 -0400
+
+ R1C1: more test cases on range parsing.
+
+commit 5a90fa60b8ac4eb239e78c6269b82d3ccc489bb0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 7 23:03:56 2015 -0400
+
+ R1C1: parse range addresses.
+
+ More test cases to be added later.
+
+commit bec1a9445d5c635249a0ec74d2c76ea011cbfbe8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 7 21:58:19 2015 -0400
+
+ R1C1: make sure the parser is case-insensitive.
+
+commit 5a271916ef5308b1693cdac6c23c0d9d2119ef00
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 5 21:24:02 2015 -0400
+
+ Another invalid address.
+
+commit d9d80cc319f28c21ea1c40f09bbe5cc9c072a219
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 5 21:21:35 2015 -0400
+
+ R1C1: add test for invalid addresses & handle 1-based vs 0-based addresses.
+
+commit 34b3fbd508f76f67502a25f0eece77a420ad804f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 1 22:25:32 2015 -0400
+
+ R1C1: write sheet name to address string when requested.
+
+commit 8ba0a30055f3c2f7fdd785caf0971f1c189f1d06
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 1 19:32:23 2015 -0400
+
+ R1C1: Fix some issues with parsing single cell addresses.
+
+commit a5e82d7e14fe120408794415086bb6ed9ffa3016
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Apr 30 22:47:38 2015 -0400
+
+ R1C1: Implement single cell reference parsing.
+
+commit 63ce46e99a91ae484af6b282705e57b7ed00a069
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 27 22:30:19 2015 -0400
+
+ We no longer use boost::scoped_ptr.
+
+commit 754bfb7329298f59456dba484d105d4c569e5795
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 27 22:26:51 2015 -0400
+
+ Set up basic unit test for R1C1 resolver. The test currently fails.
+
+commit 1f6781495eb6ec4b8dbb208c8102b2739a4ec7c2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 27 22:25:23 2015 -0400
+
+ Allow use of valgrind and gdb with unit test binaries.
+
+commit a24fa1f0e58b4819711989ecf61056fb83ad9cda
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 27 20:58:37 2015 -0400
+
+ Have formula_name_resolver::get() return std::unique_ptr.
+
+commit 198ed0e9dd2dbe3a4f974632fd2c8330e6aa038e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 27 19:25:15 2015 -0400
+
+ Create skeleton for the new Excel R1C1 name resolver.
+
+commit aa3d5102be634de3d7362dfb4376fb62af6d03ba
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 27 19:14:07 2015 -0400
+
+ Enable C++11.
+
+ Just copying what Markus did in orcus.
+
+commit 52ceda5a8b942fc15e382196b59f720b75fd3085
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 26 12:57:22 2015 -0400
+
+ python: write test case for ixion.column_label().
+
+commit d309a04c47e143af6eab70b09c33bc130c2e0900
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 26 12:29:05 2015 -0400
+
+ Rename the python test file to make room for another one.
+
+commit d778db376578568e563be53747f11c7b7a1ef3f6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Apr 23 22:57:35 2015 -0400
+
+ python: implement module function 'column_label'.
+
+ This returns a tuple of column labels for specified numeric column
+ range.
+
+commit 31bc48224dc8999b75fd99580aa013dd17e52cd0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 22 21:16:10 2015 -0400
+
+ Up the API version.
+
+commit 810d378bf8058356fec0f05e374075d6d13bd3f9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 22 21:05:21 2015 -0400
+
+ http://bugs.python.org/issue11587
+
+commit 30fdfa47dc29219fb20c0e0665662fbb6042b11a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 20 23:05:31 2015 -0400
+
+ Port python binding from python 2 to python 3.
+
+commit 88ea80126aec04c934791db4e55e2dbc1c921265
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 6 22:30:46 2015 -0400
+
+ coverity#54467: Wrapper object use after free.
+
+commit a079b576399f7ad5de76a9034ffaf4770ffdca65
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 5 14:24:35 2015 +0000
+
+ Add 0.9.1 source package to README.
+
+commit 5e6bd296ca5183c347048f51822b78565f2890ff
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 5 10:15:49 2015 -0400
+
+ Do this only when it's a git checkout.
+
+commit 823c96ff213760bf3e4e9f26c7b456b1e522b0f2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 5 10:07:10 2015 -0400
+
+ Update AUTHORS.
+
+commit dee0ffa0a7ea98e33d305b7d56216030a9712448
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 5 10:00:30 2015 -0400
+
+ Create README on the fly.
+
+commit 4e3686355f73d3b1f69651b5f6a31e6a1e5da2ef
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 5 09:41:26 2015 -0400
+
+ Set the version to 0.9.1.
+
+commit 2bd12372cef579d5c644b844ffb3b198b51c5bce
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 5 12:54:59 2015 +0000
+
+ Reformatted the Download section to make it appear better.
+
+commit 2684b41e7d17adb8326a1eb5db58c64c49f4598e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 5 08:46:40 2015 -0400
+
+ Add Download section content to README.
+
+commit 2ac9865bef5bd7def83272c0e44d5ccc541ddc3b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 5 08:29:25 2015 -0400
+
+ Put the project's old wiki home content into README.
+
+commit e9b71b7d083bddd291f12efd07113d7aec9f87ff
+Author: David Tardon <dtardon@redhat.com>
+Date: Sun Apr 5 10:55:49 2015 +0200
+
+ add something to NEWS
+
+commit a833414d6f8a841da968692a9773bd86dc873ed6
+Author: David Tardon <dtardon@redhat.com>
+Date: Fri Mar 6 08:33:19 2015 -0500
+
+ match argument and format unit
+
+ This makes ixion.sheet work correctly on s390x.
+
+commit 877f3e2fe6b38d320a6732c5d569652b7cbdc872
+Author: David Tardon <dtardon@redhat.com>
+Date: Fri Mar 6 14:12:12 2015 +0100
+
+ set correct CPPFLAGS for the python module
+
+commit 9e7763aa51d50b941754ad678fd5ec8e4fe5670f
+Author: David Tardon <dtardon@redhat.com>
+Date: Fri Mar 6 10:17:55 2015 +0100
+
+ let python do the arg parsing
+
+commit e7806c150283ed4e7dbbeda82f9408ece9139841
+Author: David Tardon <dtardon@redhat.com>
+Date: Fri Mar 6 10:14:01 2015 +0100
+
+ add cast
+
+commit 209bea9422b2e4675cc87eb63ab98790e60a73e7
+Author: David Tardon <dtardon@redhat.com>
+Date: Fri Mar 6 09:56:46 2015 +0100
+
+ use METH_NOARGS flag
+
+commit 21e8f74df328006a24096f4587e8d668f75ac185
+Author: David Tardon <dtardon@redhat.com>
+Date: Thu Mar 5 17:47:30 2015 +0100
+
+ add missing includes for assert()
+
+commit 6acd183e4db7b8dc4c6336750f01b68de3fb4fb1
+Author: David Tardon <dtardon@redhat.com>
+Date: Thu Mar 5 16:26:37 2015 +0100
+
+ fix python test on some platforms
+
+ Functions with METH_VARAGS flag (of type PyCFunction) do not take
+ keywords. Attempt to use a 3rd argument would access some irrelevant
+ data on the stack.
+
+commit a32dad8961413056a10f61881843fa4a895c89c9
+Author: David Tardon <dtardon@redhat.com>
+Date: Wed Feb 18 08:42:02 2015 +0100
+
+ fix make distcheck
+
+commit b85f73c1ad4e665e265330d22f3f5c319b58c541
+Author: David Tardon <dtardon@redhat.com>
+Date: Wed Feb 18 07:57:58 2015 +0100
+
+ package ixion-python-test.py
+
+commit c940a1c061e98ff0cce8119e6ced2565996e6f5a
+Author: David Tardon <dtardon@redhat.com>
+Date: Mon Feb 9 21:20:04 2015 +0100
+
+ add compile to .gitignore
+
+commit a359ee803fb24a3c190941974bc61dc3ff4443d6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 16 20:29:19 2015 -0500
+
+ Add python doc files to automake file.
+
+commit 4232d1b8b1ec3d350ca8ce1d2f981d29171d2b84
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 16 20:16:53 2015 -0500
+
+ Add Makefile target to build python documentation.
+
+commit 993cade2e3a03a8c50b9f0b04a693edb5ab50bc8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 16 19:52:37 2015 -0500
+
+ python-doc: correct way to reference API's.
+
+commit fbc1fb3969eed8043ec175883f2cb5c23825a1f5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 16 19:22:38 2015 -0500
+
+ Let's throw an exception when appending a sheet with an existing name.
+
+commit 8728e84af73cecb4ffdab5545accdd849ca2efce
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 16 19:19:34 2015 -0500
+
+ Forgot to add this file.
+
+commit d71d9991c855c80ff34cf2ae9451cdb74b6f30df
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 16 18:00:18 2015 -0500
+
+ python-doc: more editing.
+
+commit 3f5eae7f0bfcaa0895a1da8b1f163a1b3c3b0efb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 16 17:47:54 2015 -0500
+
+ python-doc: warn about potential perf issue with get_sheet().
+
+commit de9f3e00016d7c5ab06f2ede6df0f2e080874cda
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 16 07:28:07 2015 -0500
+
+ python-doc: sounds better this way.
+
+commit a4a3e319fad108813c4739d06bf8f99527b71f10
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Feb 15 23:08:04 2015 -0500
+
+ python-doc: write doc for Document.get_sheet().
+
+commit 8c492986b2e4a7b39c08aa7b62b562ba0fa8a8c9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Feb 15 23:07:38 2015 -0500
+
+ python: don't forget to set IndexError when no sheet object is found.
+
+commit 8cf1ce46b7b8061f380b4351257497e98389b62b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Feb 15 22:56:16 2015 -0500
+
+ python: Document.get_sheet() to accept string argument as well.
+
+ When the argument is of type string, it finds a sheet object by sheet
+ name.
+
+commit 1401156149f09e00980b0380da3a25822731027a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Feb 15 22:29:04 2015 -0500
+
+ python: add Document.get_sheet() to get sheet object by index.
+
+commit 874316069fba43ca61de3cb3fa26dd8c74f14831
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Feb 15 21:54:29 2015 -0500
+
+ python-doc: add Document.get_sheet_names() to the doc.
+
+commit 1af723891805e4d4fbde6055775f59b2a4f8711d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Feb 15 21:49:44 2015 -0500
+
+ python: Document.get_sheet_names() to get a tuple of sheet names.
+
+ The return value can also be used to examine how many sheets are
+ present in the document.
+
+commit 845d384d98ce3bfd0f90cc565a93e0811957d00b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Feb 15 17:00:39 2015 -0500
+
+ python-doc: let's not make each method a sub section.
+
+commit 4b7b622bf41fb0302caf2f730333f6eae4b798b3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Feb 15 10:15:15 2015 -0500
+
+ python-doc: add more texts to the Sheet API.
+
+commit 685149522f680474783fbc82a45556306cbde2df
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 14 21:37:24 2015 -0500
+
+ python-doc: more editing.
+
+commit 7068b4d5fd9d314a1f8d1329e1c226032dae89e1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 14 21:05:37 2015 -0500
+
+ python-doc: Add Document and Sheet API pages.
+
+commit c86c8b565013ddd9e8b9919b9ccc59d27f3d247e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 14 19:10:03 2015 -0500
+
+ python: raise SheetError when dealing with detached Sheet objects.
+
+commit f6b9e35d69dc3212dc0695b9e34aa484a0e69983
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 14 17:06:54 2015 -0500
+
+ python: more doc editing.
+
+commit a5e4835a01b663ac4914eabb927c0b6b8ef72cd6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Feb 14 12:28:11 2015 -0500
+
+ python: put 2 whitespaces before comment (per PEP8).
+
+commit d063c8cced202ae50301693d7928c45bb484a02b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 13 22:27:05 2015 -0500
+
+ python: slight wording change.
+
+commit 18cf0558cbf11d9b6ac76f7b53c2d34fb2b6e257
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 13 22:08:48 2015 -0500
+
+ get_string_value() should return string formula result.
+
+ To be consistent with get_numeric_value() which already returns
+ numeric formula result.
+
+commit 07d7e992c25b888467fc095d6dae446d24da5317
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 13 18:07:46 2015 -0500
+
+ python: more editing of Overview doc.
+
+commit dfb89929bc9d51ad6ab850f5625618ebad2ff6e3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 12 22:02:34 2015 -0500
+
+ python: put this in a Note box.
+
+commit 2a12698f130136e4c73e6031d8866b1672f2d172
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 12 21:52:22 2015 -0500
+
+ python: add more content to the documentation.
+
+commit eebcae84fce0b674596d71910f3982a87484a8cd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 12 20:49:27 2015 -0500
+
+ More updates.
+
+commit ca8c8fcd1b3f092d9a5f2b3e1727274487c9c90f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Feb 11 23:18:44 2015 -0500
+
+ python: start writing some documentation.
+
+commit 37411214938491605da289fd604cbb30e6e1fe06
+Author: David Tardon <dtardon@redhat.com>
+Date: Mon Feb 9 21:17:47 2015 +0100
+
+ update boost.m4
+
+ The old one breaks on detecting boost version when used with gcc 5.
+
+commit 2c4ba9ec2a5fba8a6e81a4c433208f15e1ec62f6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 6 21:25:29 2015 -0500
+
+ Update the interface description to match the renaming.
+
+commit 93fe268de59a2f95eeadf34eda344cd54b2ddf5f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 6 21:22:48 2015 -0500
+
+ Rename the header file name to match the renamed interface name.
+
+commit eea1a7e7ce7c35af5e282f80e11d2f268d3db426
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Feb 6 21:15:22 2015 -0500
+
+ Rename iface::model_context to iface::formula_model_access.
+
+ The interface was meant to be used only from the formula interpreter
+ and its associated classes. Let's make that explicit by renaming
+ the interface name.
+
+ This also resolves the confusion between the interface and its
+ implementation which were both named model_context.
+
+commit c269975f8439d892c11cfdaec8ae27666cd717da
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 5 21:54:23 2015 -0500
+
+ ixion now requires mdds 0.12.0 (due to segment_tree API change).
+
+commit d1488b4d778a99264418402c93440e3ff0e980f1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 5 20:55:41 2015 -0500
+
+ python: make the test fail when wrong exception is raised.
+
+commit 723c82559876145318a099bb16d7896b57440fbf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Feb 5 18:58:40 2015 -0500
+
+ python: Implement Sheet.erase_cell().
+
+commit 0c8236b3a6415bdd29a0153106fc805821eff00c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 3 23:06:12 2015 -0500
+
+ Next version will be 0.9.0.
+
+commit 2afd110fbc7e617af9375f0b75e196b96392edd2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 3 23:02:23 2015 -0500
+
+ python: Add test case for partial recalculations of formula cells.
+
+commit f634014df02536d9e696fd00095b59ffc0b94e22
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 3 22:53:07 2015 -0500
+
+ Remove compiler warnings.
+
+commit ba2c6a9cd9bf1038272e05d674032e455bab5280
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 3 22:43:29 2015 -0500
+
+ python: have Document.calculate() to do partial calculation.
+
+ i.e. only calculate the ones that need to be re-calculated.
+
+commit 0d8311fb07876607e5f0606eedf1dcdf7b9b079a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 2 23:03:30 2015 -0500
+
+ Remove duplicate code blocks.
+
+commit 5b8ecb5f1f97587007241812cba3d27464bcd6c6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 2 22:58:21 2015 -0500
+
+ python: Sheet.get_numeric_value() to raise TypeError when appropriate.
+
+ When trying to fetch numeric value from a formula cell when its result
+ is not yet available, we should not block. Instead we should raise
+ an exception.
+
+ For now TypeError is raised. But in the future we should raise our
+ own exception such as ixion.FormulaError.
+
+commit 138953f96eb5200f07af58773f86b71b40e5e9f8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Feb 2 22:17:36 2015 -0500
+
+ Document the blocking nature of get_numeric_value().
+
+commit 0f459cb681509923dba1b956298c302410e5ac3b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Feb 1 12:53:11 2015 -0500
+
+ python: add test cases for string value I/O.
+
+commit 3783216146c09543d6c515aee0ef469518fd10b0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Feb 1 12:47:37 2015 -0500
+
+ Use ixion::element_type_string here.
+
+commit 0b7d81dd189758a81653fdf0399c40bc44a93ef4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Feb 1 12:39:32 2015 -0500
+
+ python: use absolute path to the test file when setting sys.path.
+
+ This way the script can be run anywhere independent of the current
+ working directory.
+
+commit b0f9ab52134bb3e93daeef3bc03a7c5afe6283f8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jan 31 23:23:42 2015 -0500
+
+ python: Make sure the sheet name attribute is not writable directly.
+
+commit d783e3f18d3374e8426ec5b7a34d434726421b6d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jan 31 23:19:40 2015 -0500
+
+ python: add test for sheet insertions.
+
+commit 55a942cb1bfad944c43ef0754a8fcb562dbeec1b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jan 31 23:10:00 2015 -0500
+
+ python: add formal unit test.
+
+ This gets run when running 'make check'.
+
+commit 6b3f9ca8912f857b114474c0be0ad2d883b987b5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jan 31 19:04:28 2015 -0500
+
+ python: implement Document.calculate(), though still a bit crude.
+
+ Full calculations of all formula cells for now.
+
+commit 2a4f1d15d01d67cb22f6c5303eb8d6ba4e88cb78
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jan 31 16:21:45 2015 -0500
+
+ python: add skeleton for Document.calculate().
+
+commit e6dbbe01483985d9082be558f4f23ff614cebf88
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jan 31 16:09:36 2015 -0500
+
+ python: implement set_string_cell() and get_string_value().
+
+commit 122e45d81b38c3298305cbdc31a47eddedb116a3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 30 22:18:24 2015 -0500
+
+ python: create & store formula resolver instance in a shared place.
+
+commit f09f37ad85137af66af41fbff368c0cba51db4c6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 30 20:52:53 2015 -0500
+
+ python: implement set_formula_cell() and get_formula_expression().
+
+commit 5a502eb15b0365d81b38d17e4a61d62db74801dd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 28 21:32:18 2015 -0500
+
+ python: implement get_numeric_value() in Sheet class.
+
+commit deb445c2b73fe875b1f6de034236e3ec94c343bb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jan 28 20:52:11 2015 -0500
+
+ python: implement set_numeric_cell() for Sheet class.
+
+commit 4ea1af15d1274043c0e49065fec0cd3568be4f7f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 27 21:37:37 2015 -0500
+
+ python: Pass model_context (pointer) to the sheet object.
+
+ It will be used later to store cell values.
+
+commit d5fd6244dd3b239610647636d77be7dcd61ea817
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jan 27 21:21:31 2015 -0500
+
+ Move the sheet vector to document_data.
+
+commit dbd1d2e07d47275f965a964a720733946416831c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 26 22:26:27 2015 -0500
+
+ Set up non-python part of the document storage.
+
+ Use model_context there.
+
+commit 165723f5b2dedb49aea8cd20117a525d67ebfdbe
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 26 21:52:57 2015 -0500
+
+ Append sheet instance to the document when append_sheet() is called.
+
+commit 81e9ba542fddba134c9ddf432c9a7f50d64ba7c2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jan 26 21:44:25 2015 -0500
+
+ Maybe I don't have to bail out on failing tp_init.
+
+ That might leak actually.
+
+commit 9c388d392abdd6730b09dfade98b3f0d6bae8ec1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jan 25 21:52:15 2015 -0500
+
+ python: Make Sheet.name read-only.
+
+commit e4f498a2df1225c4ceadc6de294ac0cd5b70afa9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jan 25 19:31:42 2015 -0500
+
+ python: Add 'name' member to 'Sheet' class.
+
+commit 351aa18bcbe904e814072f700de1a45199996cd1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jan 25 17:56:23 2015 -0500
+
+ Have Document.append_sheet() return an inserted sheet instance.
+
+commit 4e7273adefaaf73b604c9b1bfd17119dfdc544cf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jan 25 13:13:00 2015 -0500
+
+ Add skeleton for 'Sheet' class.
+
+ Still not sure how to have Document's append_sheet return a Sheet
+ object...
+
+commit bfc99bfeb5a7998521396922204d839b69a00cb6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jan 25 12:54:32 2015 -0500
+
+ Move the 'document' code to its own source/header files.
+
+commit 0ace22812e1a37b792ba0e16416582663186e5e6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jan 25 11:46:46 2015 -0500
+
+ Add python.cpp to the slickedit project file.
+
+commit 03fcf407aa857a3f7a17c343f8715a742b0bd536
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jan 24 23:18:46 2015 -0500
+
+ Add class 'Document' placeholder to the python module.
+
+commit f1eb785ac0fac9a01ee367211cdf09b62e37420c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jan 23 19:29:27 2015 -0500
+
+ ixion.info() to print the real version number string.
+
+commit acdb47f4ea53706776425f1c5296338a229431c5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jan 22 22:04:53 2015 -0500
+
+ Initial hook to build ixion python module.
+
+commit ae9d116d34ab635c1d2742f4ddfac3d54938c6e1
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Fri Jan 9 20:31:13 2015 +0100
+
+ adapt ixion to mdds::rectangle_set change
+
+commit e7c1189aef95f3cdd0bce7062eb45bc5500c0233
+Author: Andreas Schwab <schwab@linux-m68k.org>
+Date: Fri Dec 19 20:10:28 2014 +0100
+
+ Avoid spurious testsuite failure due to excess floating point precision
+
+ Neither 0.1 nor 0.2 are exactly representable in binary floating point,
+ accumulating rounding errors while summing them up. If the sum is
+ computed in excess precision it no longer compares equal to a value that
+ is rounded to double precision.
+
+commit d6d0f99c908f2282506f8ea26b94dcb13ab6e7a0
+Author: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
+Date: Fri Oct 10 18:20:36 2014 +0200
+
+ multiple build system fixes
+
+ 1/ automake: error: using '$(top_srcdir)' in TESTS is currently broken: '$(top_srcdir)/test/ixion-parser-test.sh'
+ 2/ ixion-test not finding boost symbols on linking
+
+commit ed340d93d62310a078b4538667d58c676dc474ad
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 4 17:46:51 2014 +0200
+
+ Add test cases for more variants of table references.
+
+commit 25fac85221431425ee2c906b4ef43948a61ec969
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 4 17:45:09 2014 +0200
+
+ Add debug output for table reference method.
+
+commit 95618c7cd28d8d14901e30507cd732b4519527e1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 4 16:11:08 2014 +0200
+
+ Parse table reference with separator characters correctly.
+
+ The key is to keep track of nest levels with [] and don't treat separator
+ characters as separators when next level is > 0.
+
+commit 3fd476fc2a7232edb6b37b6eb7ff2e39dc34dbb5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Sep 4 15:37:38 2014 +0200
+
+ Fix printing of table token for a single argument case.
+
+commit c9978c9db817dcdc49c27f5fc59df0b9497ce772
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 29 00:10:24 2014 -0400
+
+ Adjust for area specifiers for single column table references.
+
+ No test for this yet. There is some parsing error that prevents this
+ from working.
+
+commit 4e5c55097d35de2c4e3de042deb2953ce639d1d9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 28 23:52:02 2014 -0400
+
+ Correctly determine table reference range for area specifier only cases.
+
+commit 37347f08363511bacf0c5e8462d21b0f20c86390
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 28 23:30:07 2014 -0400
+
+ Properly print table references.
+
+commit 16b2bf6a8acad5ffca297cd672f4b1b0f4825d69
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 28 17:39:54 2014 -0400
+
+ Add 3 more test cases.
+
+commit c422131c44c4d80555aaa1661d432ae04f003fa8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 28 17:30:34 2014 -0400
+
+ More check for COUNTA.
+
+commit 0007c0240635e96aab6b74b0c7b32b17202c3c77
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 27 22:37:10 2014 -0400
+
+ Add COUNTA built-in function.
+
+commit 905368f182a66f5048b1e1e6e39032d63c70cdfd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 26 18:32:12 2014 -0400
+
+ Update the table_handler interface to support column range and areas.
+
+ The implementation has yet to be updated to properly support column
+ ranges and area specifiers.
+
+commit 42f79a29a97cb6fba9be8b7789b2bdad37f09e6f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Aug 23 09:46:18 2014 -0400
+
+ Parse column range in table reference correctly.
+
+commit cf4baf7f1232559882a292b27e63c4e7823849f3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Aug 23 09:26:35 2014 -0400
+
+ Prepare for supporting column range in table references.
+
+ A reference such as 'Table[[#Headers],[Col1]:[Col2]]' is valid.
+
+commit 729fe8681bd0af9e281d90b2d01106f3250f13a2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 22 21:09:15 2014 -0400
+
+ Table reference without a column name is valid.
+
+ As long as at least one area specifier is given.
+
+commit 59bc58094ea552f79269156e06e6acc8bc363ae6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 22 20:19:37 2014 -0400
+
+ It's actually '#Headers' plural not '#Header' singular.
+
+commit cabb037cbe5eca70d88cf55c2d28b273470a5f59
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 22 20:15:58 2014 -0400
+
+ Add more test cases.
+
+commit 72e17d5d6274be251783a27a78e16fb248718f1d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 22 20:08:41 2014 -0400
+
+ Parse area specifier in table reference.
+
+commit 000416f37dcdcff987709f247ad7af158ab88d04
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Aug 22 17:50:44 2014 -0400
+
+ A table reference may specify more than one area types.
+
+ Let's prepare the types for this first.
+
+commit e765d83821c3f66e3d5792617f94c9c0859987df
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 21 23:03:12 2014 -0400
+
+ Support resolving Table[Column] syntax.
+
+commit 1dd658c0da9aa0971c95ec4b4a9d58ffa01e0a76
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 21 22:38:32 2014 -0400
+
+ Parsing a table reference should be done purely based on syntax.
+
+ IOW, it should not depend on whether or not the document model has
+ a string identifier for the table name, column name etc. This is to
+ allow tokenization of formula expressions before registering tables
+ to the document.
+
+commit 39d92de5583b97343773729522cfaf2eae8a932a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 21 21:49:03 2014 -0400
+
+ Actually, table_handler is not needed just to parse table references.
+
+ It's needed when we need to resolve table references.
+
+commit f5095b9b217cbb4232770be4172ded0d97841e31
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 21 21:33:13 2014 -0400
+
+ Check the result of SUBTOTAL in this test case.
+
+commit b1c8d303d071ed0a363f7c2dde006026a081840c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 19 23:15:06 2014 -0400
+
+ Correctly calculate SUBTOTAL for the test case.
+
+ Still far from being complete.
+
+commit 5728eaa6f3ab046e731acd637fe7fd907d6d05a0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 19 09:38:14 2014 -0400
+
+ Add table.hpp to the makefile.
+
+commit 38257e49d548af57b81e1ccde67a037251da61fb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 18 22:05:08 2014 -0400
+
+ Initial cut on handling table references.
+
+ Still work in progress.
+
+commit b69db21a2a6d384e44996c1d9141f94263e7065f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 14 22:02:22 2014 -0400
+
+ Add dummy SUBTOTAL function. For now it always returns 123.
+
+commit fd07473bf8ad0743083c4758be5c7d8c78a07027
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 14 17:58:08 2014 -0400
+
+ Parse table column names.
+
+commit 1953240cea371cf1a275c1e2e5ad214bdfb3b64f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Aug 13 23:04:26 2014 -0400
+
+ Add support for defining tables. Still work in progress.
+
+ I just need to work on parsing the column definitions.
+
+commit 41eae2c6e41061d545a2e645972ad0ce87638540
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 12 18:45:06 2014 -0400
+
+ model_context impl to NOT manage the life cycles of the handlers.
+
+ Let the client code manage it.
+
+commit 234593621c568b8e25ee6017da5bd7134ab6bffc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 11 21:19:44 2014 -0400
+
+ Set up skeleton table_handler implementation.
+
+commit 92ce349c6179923ce2f51aaf1e14356dda1466b5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 11 21:08:17 2014 -0400
+
+ Rename table interface to table_handler interface.
+
+ To be consistent with session_handler...
+
+commit de42e461e9722dc07cac30ec2666713a1ba8f291
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 11 17:40:35 2014 -0400
+
+ Move session handler implementation out of libixion.
+
+ It makes more sense to move it to ixion-parser than to leave it in
+ libixion.
+
+commit 0216e573a923cf5703cb7eddb79a650e81d26d4b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 11 11:21:36 2014 -0400
+
+ Move ixion_test into src/libixion.
+
+commit b507c4b786dd97c5f6b6d97114cc2c64bbf674bd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 11 11:08:29 2014 -0400
+
+ Hide this private method.
+
+commit ab1dc5df50b0e4a24d22f74693b9888374cad29d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 11 11:02:58 2014 -0400
+
+ Just use boost::unordered_set.
+
+commit b4a483a760bd3fb1d4b8d2d5561b36a2903ebbc2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Aug 11 09:31:37 2014 -0400
+
+ Use pimpl for cell_listener_tracker.
+
+commit 7fead5cbce430f42818801360e74afb1c6a4e541
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Aug 10 22:41:00 2014 -0400
+
+ Hide depends_tracker.hpp. This is also an implementation detail.
+
+commit d992b1487b039a69d1edc698f32ff8765b9ca41e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Aug 10 22:19:14 2014 -0400
+
+ Remove unused header includes.
+
+commit 7370e126fb3ca7c019d8bd285e780f002adf7b28
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Aug 10 22:15:39 2014 -0400
+
+ Update slickedit project file.
+
+commit 0ce16e69ab8794d206a1af535dc5f46e9d795d3e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Aug 10 22:14:31 2014 -0400
+
+ Hide formula_interpreter.hpp too.
+
+commit 50f74ea8f5243736c96face212b077131ba333e5
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Aug 10 22:09:24 2014 -0400
+
+ Hide formula_functions.hpp header.
+
+commit e6a8545d0840b7d74fe9c7255d39272cab0df4fe
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Aug 10 21:56:25 2014 -0400
+
+ Use string_id_t to store string identifiers in all places.
+
+commit ee82bba97ae495f1c3900574d8595e4afd44b656
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Aug 10 21:52:14 2014 -0400
+
+ Update slickedit file.
+
+commit b34247cf827cb124a5d0def3d51363ec06afc32f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Aug 9 13:53:19 2014 -0400
+
+ function_objects.hpp header is an implementation detail. Hide it.
+
+commit 4cd09036c37b294d5e1cf73450368111d110609b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Aug 9 13:26:20 2014 -0400
+
+ Make get_session_handler() a non-const method.
+
+ Since it returns a non-const pointer which may point to the internal
+ state of the model context.
+
+commit a573dad918a77a6f19d7304c209d5a6796b12a9a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Aug 9 10:30:35 2014 -0400
+
+ Make get_session_handler() an optional virtual method.
+
+ The client code doesn't need to implement this interface if it doesn't
+ wish to support session_handler.
+
+ And add interface.cpp which I forgot to add in the last commit.
+
+commit db6f90f28c33dc69f443763d17dcbb370e58f187
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Aug 9 10:25:23 2014 -0400
+
+ Hide the destructor implementations & add table interface.
+
+ Table interface will be used to resolve table references.
+
+commit 5ca89562793d8a21e1ba812e4b684c5553692060
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Jun 11 19:35:21 2014 -0400
+
+ Support stream output of range_t and address_t.
+
+commit d9195d86a32cd4163ff11de568b96f175416ca9c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jun 10 22:23:42 2014 -0400
+
+ Remove 2 of the 4 variants of get_name() from formula_name_resolver.
+
+ To simplify the interface a bit.
+
+commit 2ba5cb9f2d99975bb94320f577fd7a393c482d46
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jun 10 22:16:09 2014 -0400
+
+ Use relative A1 style for displaying cell names again.
+
+ It looks better this way.
+
+commit 18b3c9e115324c64c2061867a3c5998356e6ee0d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Jun 10 22:01:29 2014 -0400
+
+ Use multi_type_matrix to implement ixion::matrix.
+
+ mixed_type_matrix has been long deprecated.
+
+commit b868125f104a0f4f1b9809684a3ecad3f2ba58fe
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Jun 9 21:06:26 2014 -0400
+
+ Fix built-in AVERAGE function when its has range reference as input.
+
+commit f180104a683848ecc1d3f9488a360f7f21873370
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jun 8 23:24:32 2014 -0400
+
+ Let's not store formula_name_resolver instance in model_context.
+
+commit a4940d628ed75949cf04ab6d6d16befc87a81dc3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jun 8 18:56:13 2014 -0400
+
+ Fix variable description.
+
+commit fc4c2a18b9f4075485d549c415dc00cb84a2ce73
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jun 8 18:51:27 2014 -0400
+
+ parser_formula_string() and print_formula_tokens() to take name resolver.
+
+ To prevent each call from creating a resolver instance which is a waste
+ especially when calling these functions repeatedly.
+
+commit abcd0d478902c2c5ff82ebfc67b74bbb6dbae030
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jun 8 17:26:04 2014 -0400
+
+ Simplify get_name() implementations of formula name resolvers.
+
+ Those that take absolute address / range without anchor position should
+ simply re-use the other variants that take address_t / range_t with
+ anchor position.
+
+commit e520257a2b7c2daf89d7c924e747be7b2f4a11d8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jun 8 16:37:46 2014 -0400
+
+ Handle range reference name resolution for ODFF.
+
+commit 8a15df406e913ede1e8469cdf7c7e023a345e26a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jun 8 13:34:36 2014 -0400
+
+ Use to_address() for this.
+
+commit ba1b5c76ed08859d89faec6cd476af31fe165c0d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jun 8 13:19:43 2014 -0400
+
+ Some cleanup.
+
+commit 3c98e9404fca7d1d949465022d7eb38c2c6fe84d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jun 8 13:03:41 2014 -0400
+
+ Handle single cell reference in ODFF.
+
+ Much of the code is a re-use of existing Excel A1 name resolver.
+
+commit 44e854e24fc6b4f139a1af6ba2b356fef7634087
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jun 8 11:27:43 2014 -0400
+
+ Make these methods inline, now that the whole class is hidden.
+
+commit 8eda0889c96ccc01cc6e5b2b4f1a111bb1d541a0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Jun 8 11:21:26 2014 -0400
+
+ Skeleton name resolver for ODFF.
+
+commit db913b3f46ad9dd7ed63260ac4f245a9c5aca8ce
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jun 7 21:57:57 2014 -0400
+
+ Rename test name accordingly.
+
+commit 015a103945895ca839b2632abc90b4f644bdef9e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jun 7 21:53:25 2014 -0400
+
+ rename formula_name_resolver_a1 -> excel_a1.
+
+ Short name now that it's just a hidden implementation detail.
+
+commit eaa52644871dce06c7baeb9000ea7e42e450f357
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jun 7 21:51:15 2014 -0400
+
+ Hide the name resolver concrete class.
+
+commit f8b439b96b02b6fab5867c229d93738902619a37
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jun 7 21:23:57 2014 -0400
+
+ formula_parser to support different name resolver types.
+
+commit 6e02d3bf03ab82bfa3adbe771eba987321840bc6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Mar 10 12:57:01 2014 -0400
+
+ Bump the mdds version check to 0.9.0.
+
+commit 778110a62cfc7b2b446d87d4a8efbbe3a4422e96
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Dec 13 14:40:18 2013 -0500
+
+ Another compiler warning due to signed vs unsigned.
+
+commit 70e2e1c13e048224885d303b4e69828cf35184df
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Dec 13 14:36:09 2013 -0500
+
+ Remove compiler warnings.
+
+commit 873d0fc370e4bb9e09e0e89b108bbbd0610ed929
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Dec 13 14:31:43 2013 -0500
+
+ Forgot return statement here.
+
+commit 0c0f2b2e528729945196d78f3ca867c4b1370d46
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 15 00:32:59 2013 -0400
+
+ Surround literal strings with double-quotes when printing formulas.
+
+commit 2e9a863381bb0f1fa22f964fc58756bc52efdad7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Oct 14 22:46:45 2013 -0400
+
+ Support a way to append strings without checking for duplicates.
+
+ This is needed in case of duplicate strings one of which is unformatted
+ while the other has format runs. In xlsx these two are assigned different
+ string ID's.
+
+commit 53928bdab6eadb20267b1b9cf89fc4a207fba5a6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Oct 5 10:41:37 2013 -0400
+
+ Scripts to change licenses and add modelines in source files.
+
+commit c0571cf95a65996c4bc479dc487747014bf210de
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Oct 5 10:38:33 2013 -0400
+
+ Update for the license change.
+
+commit 016d252260cedbd427c3be4933443638552dd8d2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Oct 5 10:37:04 2013 -0400
+
+ Change license from MIT to MPL 2.0.
+
+ Also add emacs and vim modelines.
+
+commit 7d8a563229aa86553db23a52e55c3d9f3b14d3b9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Jun 8 10:56:29 2013 -0400
+
+ Adjust for recent change in mdds.
+
+commit 8210ff5aba1a14648f195ffbcb433d2d7e04527c
+Author: Fridrich Å trba <fridrich.strba@bluewin.ch>
+Date: Wed May 29 10:11:26 2013 +0200
+
+ Some cleanup of pkg-config file
+
+commit ff2dd5fb758843a0c2dd47863c9ecb7b3de7d769
+Author: Fridrich Å trba <fridrich.strba@bluewin.ch>
+Date: Thu May 23 07:47:13 2013 +0200
+
+ Ignore more files and make the *.pc file generation easier
+
+commit a3e9bc077cd06459d4c05e02362e76afd781d466
+Author: Fridrich Å trba <fridrich.strba@bluewin.ch>
+Date: Wed May 22 16:10:31 2013 +0200
+
+ Some little build-system refactoring
+
+commit 025be4f5abf9be2b7115f8be4d24adcf332903d8
+Author: Fridrich Å trba <fridrich.strba@bluewin.ch>
+Date: Wed May 22 16:09:48 2013 +0200
+
+ Try to get the ixion exports right on both windows and *nix
+
+commit deade5700bee1ea2c3946434eb7d811404824a1b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun May 19 11:50:08 2013 -0400
+
+ Let the caller specify sheet size on each sheet insertion.
+
+commit 176e3e93abdac071b0b6c3ff370959f80a04225a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 14 18:20:14 2013 -0400
+
+ Add a method that returns textural column name from numeric one.
+
+commit 4b022a3f080a469e67afbe786c1984d6dfc362b3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 14 18:14:48 2013 -0400
+
+ Let's remove this simple name resolver. We'll never use it.
+
+commit 58288751c52105236171251041ddab1c7e1d1b31
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 14 18:11:20 2013 -0400
+
+ Use callback macro and custom block func template from mdds.
+
+commit f53d4ba5adab8b0daed47dbc6cee175ddfb91a3a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 10 19:32:19 2013 -0400
+
+ Avoid returning a temporary.
+
+commit 339563b43691ef12dbd1185a189e55feafd7e39d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 10 19:30:12 2013 -0400
+
+ Export this function.
+
+commit 9e12603ad46d5bf19b774bd88096aa80eeab6b58
+Author: Fridrich Å trba <fridrich.strba@bluewin.ch>
+Date: Thu May 2 17:44:19 2013 -0400
+
+ Fix build on Windows.
+
+commit e3e9f4cd29f68ecf1008364b48a35543bcf41829
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 29 20:44:04 2013 -0400
+
+ Specify element and element block types in ixion namespace.
+
+commit a5933070becc6ae15ad1a2bb3cea1e4a74f3ee14
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 28 19:38:35 2013 -0400
+
+ Up the version to make it an API incompatible change.
+
+commit 7ac94772f287627cc332fa0c8337710543f6d3a0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 28 19:35:16 2013 -0400
+
+ Provide a way to retrieve column from model_context.
+
+commit cd9eb6de66be91c17ef64d4fbcced800ed285aff
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 28 19:04:33 2013 -0400
+
+ Dedicated header for column_store_t - column storage using mdds::multi_type_vector.
+
+commit ae2b95c9ccbc16bd90d07a9e9d164fd866818f21
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 28 17:44:12 2013 -0400
+
+ A bit of cleanup.
+
+commit 8d771a8cbd98fc4fabe21cf87a3f8f43bd759a5e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Apr 26 17:46:12 2013 -0400
+
+ We need mdds here too.
+
+commit 6b414567f22c17204e1f7e9428517d2437d5ac07
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Apr 26 14:21:12 2013 -0400
+
+ Simplify mdds package detection, by using pkg-config.
+
+commit 04ebfc0c72272e4bb775a1516328679507cfa130
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Mar 27 09:56:06 2013 -0400
+
+ Fix incorrect initialization order.
+
+commit faa6de5d792092b6018741b4a6f4f4c0097d7980
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 26 13:55:59 2013 -0400
+
+ Update boost.m4 from [ https://github.com/tsuna/boost.m4 ].
+
+commit 2c691f65ff050c251cd5fda3a02e6884aafe8ebf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 26 13:49:48 2013 -0400
+
+ test_PROGRAMS doesn't work for me. I get "test_dir not defined" error.
+
+commit 1c30fa93a573460f4a0ba4c19e5ca4f1ab78c2e8
+Author: Tomas Chvatal <tchvatal@suse.cz>
+Date: Tue Mar 26 18:15:12 2013 +0100
+
+ Build test binary only for tests not for install.
+
+commit 821cdb2f83af7d554f135e9136c0a595e2faf849
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 26 10:04:36 2013 -0400
+
+ Add this include, else the build may break.
+
+commit 632b597b7ee4dba727a2c52d5a78050f6cbc5bf0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 26 01:34:47 2013 -0400
+
+ Fix packaging.
+
+commit 4a81d78f71bd60535254a4dfaca8030644ebeffb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Mar 26 00:53:50 2013 -0400
+
+ Add tar.bz2 and xz as package formats.
+
+commit 4cdfad58f6a60b7dcf23311ee90ec1632004ee81
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 19 19:01:51 2013 -0500
+
+ A little cleanup.
+
+commit 64117fd4ae5beb99543e9086352a95896d2ac94c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Feb 19 18:55:07 2013 -0500
+
+ Use position hint during cell value import to speed things up.
+
+ This eliminates the lookup scalability problem, and with some documents
+ speeds up the import of cell values from (too long to measure) to a few
+ seconds.
+
+ This change needs mdds 0.7.0 to compile.
+
+commit f97d747eaa89d3522cce20369345e0c605b2c852
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Sun Jan 20 18:33:20 2013 +0100
+
+ add boolean cell support
+
+commit 061c984b4a76b8cfbfd581d9d10490079c34489f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 19 14:03:51 2012 -0500
+
+ Fix the naming inconsistency.
+
+commit c73b834ff42202b654bc6ee60f3c5a7534b9f6fb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 19 14:02:11 2012 -0500
+
+ A little more fix here.
+
+commit 305e67bcc01bb241242323e42e7ab99c0862cf29
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Wed Dec 19 19:37:26 2012 +0100
+
+ this variable is only used in the DEBUG case
+
+commit 539fcebca4e659eaf22d29d047373b023915b73a
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Wed Dec 19 19:28:10 2012 +0100
+
+ rethrowing the same exception instead of a copy
+
+commit 16dcdddd852ff533d0821ef98397bda72788e222
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Dec 19 13:11:38 2012 -0500
+
+ Test for name resolver on parsing names without row indices.
+
+commit 860926323b5f9b522bacde5e0e8bae89de5a2218
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Wed Dec 19 18:41:06 2012 +0100
+
+ prevent to recognize [A-Z]* strings as cell address
+
+commit f5a3a73fb0f8093cde1547f641ead9dbd799325f
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Wed Dec 19 03:29:34 2012 +0100
+
+ output "=" for fop_equal
+
+commit 1727fa063396fa44f49370f12355244b59440cbe
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Dec 11 19:04:29 2012 -0500
+
+ Actually we can't use an ID of 0 for empty string. Use the max value.
+
+commit cdcf940a9033e7f503dccd2164b9bdf1592dfe19
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Oct 6 18:16:49 2012 -0400
+
+ Don't forget to insert an empty string.
+
+ Empty string is associated with a special ID of 0 (via empty_string_id).
+
+commit f9fa0cffb5dc198d4227471d821f312169dadd30
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 2 10:42:44 2012 -0400
+
+ Support parsing absolute column and row positions in A1 syntax.
+
+commit 71af10432fdf7bb2cd5685ea521915fa60300ffa
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Oct 2 09:46:00 2012 -0400
+
+ Remove duplicated code blocks.
+
+commit d39fdfce77796389df618fbe8e77783d1938733e
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Sat Sep 29 20:31:14 2012 +0200
+
+ support shared formual without range attached
+
+commit 68750ae77fb4837fd1dfd1178994a9b33a7dcc7a
+Author: Rene Engelhard <rene@debian.org>
+Date: Tue Sep 11 09:20:39 2012 -0400
+
+ Another mdds header to check.
+
+commit 5423f5bb7d15beaa3f6620aa2e5147c18699b350
+Author: Markus Mohrhard <markus.mohrhard@googlemail.com>
+Date: Wed Sep 5 22:55:07 2012 +0200
+
+ extract common parts into own Property File
+
+commit 28a1c1f9b501d0b71b8ed24c9982c297ed65f97b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Sep 5 14:24:22 2012 -0400
+
+ The working version for the next release will be 0.5.0.
+
+commit 0b59ed6e8abac0a29bf874edac60a366e4143673
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 30 15:44:10 2012 -0400
+
+ Fixed a crasher bug on Windows (32-bit).
+
+ Forgot to replace this size_t with string_id_t.
+
+commit a038588b121fb2759682980ba598e5c13087e00f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Aug 30 13:27:33 2012 -0400
+
+ On Windows a dll file doesn't start with lib.
+
+ libixion.dll -> ixion.dll.
+
+commit 24b0dd8988f1e722e8479fb91435551c7d33954d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Aug 28 21:45:32 2012 -0400
+
+ Get it to build again on Windows.
+
+commit a827456bfca6242395c53f5e9956b0d4c82f5e74
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri Jul 27 16:50:14 2012 -0400
+
+ Get ixion to build against latest mdds master.
+
+ mdds no longer supports size_t as standard type. Switch to using
+ unsigned long for string identifiers (for now).
+
+commit ba55441d19f7d409de586df3e683c97879e71a1b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jul 12 22:43:11 2012 -0400
+
+ Renamed file.
+
+commit bb4fc447bae13d0ab1988f2cdc153db70fff4d3e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jul 12 22:37:29 2012 -0400
+
+ Template function is implicitly inline.
+
+commit 2a47ab2288f40ad9e31c794b7f57cf6cbc8874fc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu Jul 12 22:25:09 2012 -0400
+
+ Get it to build with the latest mdds master.
+
+commit 826f07c3d21e2215b15584844b8d899940f59476
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 26 18:25:34 2012 -0400
+
+ Updating the years of my copyright.
+
+commit fd244a2d3b03f328a60c07dc44ae3d4fa038343f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 26 18:13:06 2012 -0400
+
+ Support row-only range addresses (e.g. 3:3).
+
+commit acb05194ebba40cadb9074f747756c85230433ad
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 26 12:52:29 2012 -0400
+
+ Another test case for multiple whole columns.
+
+commit 2ab21889ad5d6eb4470e6c794b03a7fe048cb7b0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 26 12:51:18 2012 -0400
+
+ More strict checking of reference address.
+
+commit 27f7b91783428dd8ead7e9f62cf3d8cd7977c557
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 26 12:20:15 2012 -0400
+
+ Handle ranges whose row ranges are not set (= whole columns).
+
+commit ac67211b2732fa1d27f54e019f2d1cdb55004251
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 25 19:42:36 2012 -0400
+
+ Use address_t to store transient parsed address value.
+
+commit 5eab880300d0dcff04c270465c2b98287ba1992e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 25 19:28:44 2012 -0400
+
+ Export these constants.
+
+commit 7ef7ffde6bbb079799ad6bcefeac38d269c3f393
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 25 19:12:07 2012 -0400
+
+ Allow range types to specify whole column or whole row.
+
+commit 2c7838f0920734e93bd5017a97eeea3eb6e4e1f6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 24 17:46:14 2012 -0400
+
+ Fixed build with name resolver's debug turned on, new test case.
+
+ Currently we fail to parse H:H (whole column reference) correctly.
+
+commit 1684cdd3f95a2aff9f652c24e4cf2dea43e2227e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 24 17:34:11 2012 -0400
+
+ Fixed build with formula parser debug enabled.
+
+commit 81a448b410e8d2a3530e6d8f48ffae0956afbc6a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 22 01:35:03 2012 -0400
+
+ << operator should take a const reference.
+
+commit f74e93ea5131c59094fd43dd5dd5f0ca8e14b9ea
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 15 18:12:12 2012 -0400
+
+ These too.
+
+commit 72224869e750593e29fbf9ba3de818a7b342d4b3
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 15 18:07:18 2012 -0400
+
+ Use at() to access sheet and column instances.
+
+ It's more STL-ish that way.
+
+commit d17a2958072cc63c196edb7e4266ef5836d7b2c1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon May 14 19:18:27 2012 -0400
+
+ Init model_context with no sheet, then have the client code append them.
+
+commit 1f657727a3c514799999bf2f4bda7e39432a94af
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun May 13 20:17:05 2012 -0400
+
+ More changes to formula cell handling and shared formula tokens.
+
+commit 090856f4896fa013e91dd2b6b1e04aeeabd00b0a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun May 13 19:28:35 2012 -0400
+
+ Forgot to remove this one too.
+
+commit 955589850865b322af78ac092111b18aa3ca4ceb
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 12 17:05:29 2012 -0400
+
+ Let's not store an empty string to the shared string pool.
+
+commit c35d10df1ed3fa1525086cb30b65e386f95b79f7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 12 16:46:26 2012 -0400
+
+ Added get_string_count() to the model_context.
+
+commit a8599ad83a25bf9fcf199f96ae6687a6e035fbac
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 12 12:31:55 2012 -0400
+
+ Export formula_cell::get_identifier().
+
+commit f1996b992752f1b74afb64ba7353559c517dd7f6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 12 00:52:34 2012 -0400
+
+ Return invalid range when sheet is empty.
+
+commit 376f89825bec2c5927db77992ee9b322d67a6ebf
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 12 00:50:03 2012 -0400
+
+ Support invalid state in addresses and ranges.
+
+commit 9f60cefd3eb61ba8c2bc75d7f0a926ca253a1a11
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 11 22:37:41 2012 -0400
+
+ More test on data range.
+
+commit 974b5eab9cd43de5304ce10e5fd64686eefe98e6
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 11 22:18:13 2012 -0400
+
+ More test code for get_data_range(), and found&fixed a bug.
+
+commit 0e24dab34639e617b8b53e59ecf59b9d8cc64bea
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 11 21:05:32 2012 -0400
+
+ Hopefully better data range calculation algorithm.
+
+commit b9c797f5c8d2886b4664a975107908a01a4e8c93
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 11 20:39:44 2012 -0400
+
+ Some silly fixes. Let's not forget return statements.
+
+commit 9a92828ece22f4ae0b3c3b6d3ba0ea743f4020d0
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 11 19:31:10 2012 -0400
+
+ Implemented get_data_range() that returns data range of a sheet.
+
+commit cacf4c1b26bfcf6ef5db39da215165ba488ecb4d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat May 5 13:25:26 2012 -0400
+
+ Aded more methods to model_context implementation for external use.
+
+commit 6de0e250eb06079160b3d92538c53aea6695e0ad
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 4 19:20:53 2012 -0400
+
+ Add an empty cell type which makes code a bit simpler and more efficient.
+
+commit 98011202b26b0e7e82999ae1fea6b3c4194a48f2
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri May 4 19:13:58 2012 -0400
+
+ Renamed typedefs to make them less confusing.
+
+ And wrote descriptions.
+
+commit 30e5945de00de076de72ea1ecc133db363ea3ff9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 3 18:07:49 2012 -0400
+
+ Not using boost::noncopyable reduces the size of the class by 8 bytes.
+
+commit c94c06314a8437b6a8da3037f7a33dda68945535
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 3 18:04:43 2012 -0400
+
+ More cleanup for formula_cell.
+
+commit ec3da3e12decec8b10229cf18cec6cd64c97c430
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 3 17:51:42 2012 -0400
+
+ base_cell is history. Good riddance!
+
+commit 54b502c23feaa09a19d13a6a1a0e9e7bca2409c8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 3 17:46:03 2012 -0400
+
+ Started moving stuff from base_cell to formula_cell.
+
+commit 0dc12178f72c92ebc8c6beaaade48d14017e7d97
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 3 17:33:21 2012 -0400
+
+ Removed these callbacks for ptr_map. I use mdds::grid_map for cell storage now.
+
+commit 4ae6eb99e6a17460bcdfe451c48813b6ec911c00
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 3 17:31:22 2012 -0400
+
+ string_cell and numeric_cell are no more.
+
+ Now mdds::grid_map stores raw values directly. No need to have those
+ cell classes around.
+
+commit 9b1b846b37c77688b975adfec3d0c0ae96a1a60e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 3 17:26:07 2012 -0400
+
+ New scripts to enable gdb and valgrind runs during test.
+
+commit 74d8a787ccb08cd4f2ace5ee9ac9e51e1f694a5e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Thu May 3 16:52:36 2012 -0400
+
+ Added another test for model_context that currently causes segfault.
+
+commit 4a32648cb0a26e68f5728b5bfdb0bc9ba514e5c4
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 2 23:23:17 2012 -0400
+
+ Let's not access result cache directly here...
+
+commit 5ffa2d45c6aad183d21ef4936a1b20b94f6f758d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 2 23:12:30 2012 -0400
+
+ Fixed range listener code.
+
+commit 9ae4762d2d5e9474efb4647a76f275d4d194d796
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 2 22:41:21 2012 -0400
+
+ I need to check for the emptiness here as well.
+
+commit 4ab52a661c0bedaa6850831de504b01b5825592f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 2 22:33:30 2012 -0400
+
+ get_cell_name() is no more.
+
+commit 9a655d21040d15b06394eb3d1ac76319f5e9e698
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 2 22:25:40 2012 -0400
+
+ I can't query cell type on empty cell.
+
+commit a21f7e3c292975e12f9cacb2c2947893b60e06dc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 2 22:03:54 2012 -0400
+
+ I needed to keep dirty_cell_addrs_t which stores modified cells.
+
+commit f645aba4e403c402004ea7c782176ed44868d5c7
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 2 21:01:06 2012 -0400
+
+ I need to manually insert a changed cell here.
+
+commit 4e9c899750cbbcd5a3af783f745f5177726af24c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 2 20:50:36 2012 -0400
+
+ Some debugging & fixed get_numeric_value() for formula cells.
+
+commit a35ece90e640003f57fbb06976a598d646f9093c
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 2 19:51:22 2012 -0400
+
+ get_cell_position is no more.
+
+commit e6f7a2b6ffd2eca26bb5a85213406ef0e8bb4e11
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed May 2 19:23:02 2012 -0400
+
+ dirty_cells_t now stores abs_address_t insttead of formula_cell pointers.
+
+commit bc9294228e2eed40a0f9941e813d29ea6b46861f
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 1 19:11:07 2012 -0400
+
+ Let's return respective empty values when the cell type does not match.
+
+commit 14f17e43f7ca15ff7cea8825b62b223a2869bbe8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 1 19:05:42 2012 -0400
+
+ Adjust to changes in grid_map's method changes.
+
+commit 19b37fbb917043f86dc416041a81e2dfcbc81bfc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 1 18:48:56 2012 -0400
+
+ Adjusted to avoid mdds storage error.
+
+commit 0b122e1b725c60e30a10c10d5726131ea58895ce
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue May 1 18:47:23 2012 -0400
+
+ Added test for model context storage.
+
+commit 75010dc7c2c0012a88d2e85033110b36c87e7b2b
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 30 23:38:03 2012 -0400
+
+ Totally switched to the new mdds::grid_map based cell storage.
+
+ But tests crash everywhere. More work ahead.
+
+commit 8147ce6ebbf63b0d553c5417bed158325018bc66
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sun Apr 29 14:03:36 2012 -0400
+
+ Defined cell block for formula cells.
+
+commit 7e50569409abab879c55acbf4c5a9a091354e8a8
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Apr 28 15:46:28 2012 -0400
+
+ Required callbacks for formula_cell_block.
+
+commit 97cae9857fa3ab7675cc166d175437078e993cf9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Apr 28 12:26:46 2012 -0400
+
+ Make room for the new cell storage type using mdds::grid_map.
+
+ I have yet to add some customization to this new storage.
+
+commit dea9761eadb8fdafb483e5a312c64e2a22080580
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 25 17:28:11 2012 -0400
+
+ I don't need this forward declaration.
+
+commit 2813b36827c3ab4d89820f9ad037781b626a9839
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 24 19:29:36 2012 -0400
+
+ The whole private part is now in the impl class.
+
+commit fc2a93150601e06060065e8bfe6e809762c2fddc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 24 19:12:30 2012 -0400
+
+ Worked on moving stuff from model_context into its impl class.
+
+commit 1e9de7ff9caf58af4b93bffca94dafef0306fb51
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 11 17:46:04 2012 -0400
+
+ Cell instances, except for formula_cell, shouldn't be used outside model_context.
+
+commit 6a600d7bcdcec1d2e1aed9ee518c23786fce9531
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 11 17:36:36 2012 -0400
+
+ Use empty_string_id instead of raw value of 0.
+
+commit 0e814ba846a6482b5c1312e0c990035991fc9689
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 11 01:02:39 2012 -0400
+
+ cells_in_range is totally gone from the source tree.
+
+ I won't miss it.
+
+commit 4065c31f460549c3a09b6bdea96fd41dc091c3ea
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 11 00:53:14 2012 -0400
+
+ The idea of cells_in_range was a big mistake.
+
+commit d6e8a1f40f9175253fdd4af767b3afa199f2702e
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 11 00:12:36 2012 -0400
+
+ Trying to remove external use of base_cell.
+
+commit 4eb40415cd31c66c34bcfde3a3000eb789c518f9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 11 00:05:35 2012 -0400
+
+ get_string_identifier() sounds more fit for what it does.
+
+commit f17496d0c49178265bde1da3971fa6d4ac22d4c9
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 11 00:01:27 2012 -0400
+
+ get_cell() is now gone.
+
+commit b12e9468396815e2393599fdf4d7281ad1dbf597
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Wed Apr 11 00:00:25 2012 -0400
+
+ Last use of get_cell() eliminated.
+
+commit 35d482f4e93f8a9a6777947faa241a03b43bfd7d
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 10 23:46:48 2012 -0400
+
+ Even less get_cell(). Almost there...
+
+commit a1c974014c392a20f3ba586c595539b0dc9ba025
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 10 22:26:39 2012 -0400
+
+ Silly typo.
+
+commit 9a257c83802149ceab9734aaa6ee64f5eeff62ab
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 10 22:02:38 2012 -0400
+
+ More on avoiding use of get_cell().
+
+commit 7b5bddf37ba37435a61a3a0f225f69aeab65fa30
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 10 19:52:00 2012 -0400
+
+ Method to get string value directly from the model.
+
+commit e255e8ca24627e03c9f2da932fdb4441b0914935
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 10 19:37:33 2012 -0400
+
+ More reduction on use of get_cell().
+
+commit 81deb1829b8135b08fb35cc25c602b5cc3b69798
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 10 18:55:58 2012 -0400
+
+ Encapsulate formula_cell retrieval.
+
+ For now, we need to keep using the formula cell instances externally.
+
+commit ee83a379b4bf5926e6701e8c5e60dfd77f3b3291
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 10 18:35:18 2012 -0400
+
+ Encapsulate numeric cell value access.
+
+commit af06df2a1edbdc8aa407e39606569dddf327a5dd
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Tue Apr 10 18:08:38 2012 -0400
+
+ set_cell() is no more.
+
+commit c6c839ab664e99afee1d6b884fbc936926e741c1
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 9 19:33:26 2012 -0400
+
+ Pass raw formula strings to the model to have the model handle it internally.
+
+commit 13fdee07c70fe16428c1522d1a9f632a264eaa11
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 9 19:12:46 2012 -0400
+
+ Pass string cell values to the model context the same way.
+
+commit 821552de72c3ebd9b067bf1777184008746d2adc
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Mon Apr 9 19:05:19 2012 -0400
+
+ Pass the values of numeric cells to the model instead of passing cells.
+
+ First step toward limiting the use of cell objects outside the model
+ context. Eventually no cells will be used outside the model.
+
+commit 072670db4281563d5e5f9bd5a74c0a1c7dd00b6a
+Author: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Sat Mar 10 00:05:29 2012 -0500
+
+ Export cell_listener_tracker.
+
+commit 79f8c20d5e5efcdf6c3803ec5741e47b71206cff
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Jan 4 19:35:02 2012 -0500
+
+ New test case for logical functions.
+
+ For now it only contains tests for IF.
+
+commit 7abbb3d7a49f17669f88b683821ed3626449ad76
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Jan 4 19:30:19 2012 -0500
+
+ Implemented IF function.
+
+ Also added fnc_ prefix to the methods that implement built-in functions
+ to avoid naming clashes with C++ keywords (such as 'if').
+
+commit 43f31024c789036136aea31b97e2d4f4d7f43f40
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Jan 3 18:27:32 2012 -0500
+
+ Extracted methods to make the execution flow clearer.
+
+commit aa0f2fdab650daeda9f876b0644c6680ce8380cc
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Dec 29 16:09:11 2011 -0500
+
+ Basic test case for relational comparison of string values.
+
+ It's far from comprehensive, but it's a start.
+
+commit dc697a52be0e00118de74b7d4fe3df5730399fda
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Dec 29 15:52:32 2011 -0500
+
+ Fixed an error in test script.
+
+commit a6752b14381199651fef75437d0b670542332d00
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Dec 29 15:43:48 2011 -0500
+
+ Relational comparisons with strings & test with referenced numbers.
+
+commit 2778940d884a3bce06c77167158d620009e97485
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 28 19:37:45 2011 -0500
+
+ Getting ready for mixed type relational comparison support.
+
+commit d680f97697049632249d5fdd72a95ad7fbeaef7f
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 28 19:32:33 2011 -0500
+
+ Removed excessive debug statements.
+
+commit ebf6ca556e64c53211b35d31673db88662d75bb0
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 28 19:12:20 2011 -0500
+
+ Some debugging attempt.
+
+commit 979b7c5d3f48faa497621ff3b8ffc115e7a6b950
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 28 14:12:12 2011 -0500
+
+ Support not equal "<>" operator.
+
+commit 6b00140ecddaed120cf6047bc96be814e2461649
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 28 13:59:41 2011 -0500
+
+ Interpret less equal and greater equal operators correctly.
+
+commit 1109cf4dd17aeee5f59f8941a080b4f628b03484
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 28 13:41:49 2011 -0500
+
+ Abstract away iteration steps.
+
+commit 6ca6546f264c10ac91f9fe7b023769a94eab57c5
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Dec 22 17:38:36 2011 -0500
+
+ Added formula tokens for less and greater equals.
+
+ The test case still fails, however. I still need to adjust the parser
+ to correctly translate the lexer tokens.
+
+commit 28cd70e8d31fa5c1d09dc7e5dc8f9f10a7802da0
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Dec 22 17:30:07 2011 -0500
+
+ Removed duplication.
+
+commit a593530a475a19f34dbf9a86376dc9ddeb6ccb46
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 21 19:28:31 2011 -0500
+
+ Added less '<' and greater '>' operators.
+
+commit eecbdaf6a6a56c5b4ebeeca4146ba69c0db08997
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 21 19:19:05 2011 -0500
+
+ A little cleanup.
+
+commit ed440626fc76005f6a9984443b3de31bf9f2cfb6
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 21 19:06:34 2011 -0500
+
+ Correctly interpret equal operator. New test case for relational operators.
+
+commit ec859df573e770d22b32c57bb606ba126d7a0c16
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Dec 20 18:45:23 2011 -0500
+
+ Throw an error when not all tokens get interpreted.
+
+commit 8ef98f2b4182a9dbbbe19510cba75a1b18d9f7cc
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Dec 20 18:31:52 2011 -0500
+
+ Added equal operator to the lexer.
+
+commit 76b611e23cba95b51fcbb02a17a4b191ef0d71b5
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Dec 17 19:37:41 2011 -0500
+
+ Format fix.
+
+commit f28e25890e5588379f439ce15307875f3b86d59d
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Dec 16 19:23:06 2011 -0500
+
+ Test the delta value between two invocations of NOW().
+
+commit 631bdcdb6c72a8ab8b9264baf2a15c14e6c2ef54
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Dec 15 17:49:58 2011 -0500
+
+ Add test code for volatile cell re-calculation.
+
+ However, the volatile cell is not being recalculated since the cached
+ formula result is not cleared.
+
+commit aaf443ee18f598314e001a7ef556f3211dbe903d
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Dec 15 17:15:00 2011 -0500
+
+ Always append volatile cells to the list of dirty cells.
+
+commit 5d58bfab49f0e23fbbbab38340adbc17d17e2d4c
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 14 20:21:17 2011 -0500
+
+ Keep track of volatile cells.
+
+commit ed8b86536de475eb7267030a03c9a96751d020b5
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 14 19:32:07 2011 -0500
+
+ Unregister existing formula cell before setting a new one into the model.
+
+ And let's not implicitly unregister when registering. that's wasteful.
+
+commit fb5e711c161c6cad7d5d473642f3b6b73eae7376
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 14 19:28:39 2011 -0500
+
+ Added NOW() built-in function. But it only returns useless value at the moment.
+
+commit 5e8912dddbab27c1a75556fa31fe8b128262b4b1
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 14 19:04:18 2011 -0500
+
+ Added function that checks volatility of function.
+
+ For now it always returns false.
+
+commit 583e65f144fd3614e9c3783c5e6225034db0f673
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Dec 8 17:15:54 2011 -0500
+
+ Test the formula calculation flow using the public API.
+
+ Test for volatile functions will be added after I implement it.
+
+commit 19f362bf921dedeff960a7ca853d5dca2a72bfe0
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 7 19:39:14 2011 -0500
+
+ Started writing a test code for volatile functions. Still in progress.
+
+commit 320a9c382f5d0bf811736548844ba6269f84331b
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Dec 7 19:18:41 2011 -0500
+
+ Public API to unregister formula cell.
+
+commit 1ba0ee7ba0a89547d96697af0ec0e46cbd874d9e
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Dec 2 19:27:24 2011 -0500
+
+ More appropriate test name.
+
+commit 219eb0a805f9fc3cb33cb9486829ecee24128c35
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Dec 1 17:55:49 2011 -0500
+
+ Added CONCATENATE built-in function.
+
+ Unfortunately this forced me to use non-const model_context instance
+ all over the interpreter, since that function may add a new string
+ to the shared string table.
+
+commit 4340b68aa2144b48c406da885e5465e1d249f2da
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Nov 29 20:14:48 2011 -0500
+
+ Fixed a bug and check the result.
+
+commit 06e62089652977195c3f2d873bac144a3c084aef
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Nov 29 19:53:48 2011 -0500
+
+ pop_string() now properly supports a single cell reference.
+
+commit d9f5e0c48a6a2c91ed229489605fd4dda41a5838
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Nov 29 18:29:23 2011 -0500
+
+ formula_result now stores string as an identifier instead of raw string.
+
+commit b530be3c8ddec5b1018640157e73e01746c13a12
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Nov 23 12:54:15 2011 -0500
+
+ More on pop_string().
+
+ I need a common method for all cell types that return a string ID.
+
+commit 586f37ae647a943bdcd191f9f2acc3b811aebc26
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Nov 18 19:34:41 2011 -0500
+
+ Adding a method to pop string for all stack value types.
+
+ It's not complete yet...
+
+commit b6877c13ac847cc2946d15fdc3d45f29a49892b9
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Nov 18 19:22:33 2011 -0500
+
+ Handle numeric argument in LEN.
+
+commit 65238e453413aa11351b1930eb1afbb218c33bde
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Nov 18 19:09:13 2011 -0500
+
+ Added new built-in function LEN.
+
+ For now it can only handle inline string argument.
+
+commit 0f583efa0384ce48a1f7483f1fcc8dbaec54db5f
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Nov 18 18:43:50 2011 -0500
+
+ Test referencing cell that contains string & quote the string results.
+
+commit 23a7b4e2dd42b9b3a41ec14f618963a20eb3c943
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Nov 18 18:33:12 2011 -0500
+
+ Interpret string tokens correctly.
+
+commit 8eea9b0a6390c6bd7293fa0800a9090b7cf812fd
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Nov 17 17:54:29 2011 -0500
+
+ Parser inline strings into string tokens.
+
+commit d547c7bfa9407742e77691b9413b28c18dca318b
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Nov 17 17:10:58 2011 -0500
+
+ New test case for inline string support.
+
+commit 685238cb3a371a0d11e8b64b23f307c439e66293
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Nov 16 19:20:13 2011 -0500
+
+ Support parsing of sheet names with space.
+
+ Such sheet names must be surrounded with single quotes.
+
+commit 46815aa04054750b35a1a01e14117261890b1028
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Nov 16 18:51:45 2011 -0500
+
+ New macro for literal strings.
+
+commit a640c7632fe1d084d9aa11e6dc0dab8dbc2641b8
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Nov 16 18:29:20 2011 -0500
+
+ Make cell listener tracker a non-singleton.
+
+ This allows the same client process to spawn multiple model context
+ instances.
+
+commit c0ec0fa1431b94f874be4ef461c96912a6c08a29
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Nov 15 18:39:34 2011 -0500
+
+ Support case insensitive function name lookup.
+
+commit 3ac9c8a12c2854b670c51da40aad234a77f9e920
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Nov 14 18:43:49 2011 -0500
+
+ Added new test for case insensitive resolution of built-in function names.
+
+ This test currently fails since ixion currently assumes all function
+ names are UPPERCASE.
+
+commit 78659697e53682761c105cab31c103d35c00a82f
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Nov 14 18:31:11 2011 -0500
+
+ Re-named to a more accurate test name.
+
+commit af10f51599dd66ecad511e2ef7774c79ab2138e2
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Nov 10 17:31:07 2011 -0500
+
+ More symbols to be exported.
+
+commit a3fd37a7669ad3630f8b243b109173083d2598a3
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Nov 10 17:08:01 2011 -0500
+
+ Turn symbol visibility off by default, and avoid name clashing.
+
+commit 8f97307c260fb0e75c70487aa059bf5f9a6445d2
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Nov 6 22:00:57 2011 -0500
+
+ Forgot to add env.hpp to the makefile.
+
+commit 1eb6bafaba3e829b51940b0ac9de1c2064ab7531
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Nov 6 14:52:31 2011 -0500
+
+ Added Visual Studio solution and project files.
+
+ Generated using Visual Studio 2008.
+
+commit da20e401ff5824866c4ef997cb03d7d7f6e37404
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Nov 6 13:56:45 2011 -0500
+
+ Exported all necessary symbols under MSVC++.
+
+ ixion-parser.exe now runs under Windows. Whoo Hoo!
+
+commit 08513c1385fa35e4fa318f0660689dbeec8cde99
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Nov 6 01:10:35 2011 -0400
+
+ Started exporting symbols for generated dll on windows.
+
+commit 0ec4c85e80e8655e9da3ae277950d6bd899b607b
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Nov 6 00:19:34 2011 -0400
+
+ renamed namespace interface to iface.
+
+ 'interface' is a keyword with MSVC++.
+
+commit 3e120af0f9e04fa85969d28a5b947ff84f3ac36a
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Nov 5 23:56:48 2011 -0400
+
+ Removed build error and warnings with MSVC++.
+
+commit 17d460ccb970f97eb9214a182c3b0db77269dac0
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 26 23:09:58 2011 -0400
+
+ The pack script now does not run libtoolize nor autoconf etc.
+
+ This will make it easier to build RPMs for multiple platforms with a
+ single spec file.
+
+commit 04ed911fc7be387753cbc3f916d692be15468231
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 26 23:00:04 2011 -0400
+
+ More rpm spec tweaking. It's in good shape now.
+
+commit 17de54116e44b739ff951e6c3ea411eeed481f0c
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 26 19:50:21 2011 -0400
+
+ No need to specify standard directories.
+
+commit 0ef9db7bf94a57cc5f97d2a6fe800ee4643a8f72
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 26 19:40:59 2011 -0400
+
+ Summary should not end with a dot (per rpmlint).
+
+commit c66034b638bcff1e832aa07d805d56e2fd3c1a9a
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 26 19:34:13 2011 -0400
+
+ Tweaked the rpm spec file.
+
+commit 00b3c731f627b276d445694a43dfc1e30dd3809f
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 26 02:10:54 2011 -0400
+
+ More tweaks with package scripts.
+
+commit 4c5c896809f0b1cd67ce79a3470dd97599df829c
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 26 02:03:53 2011 -0400
+
+ RPM script shouldn't use custom mdds path.
+
+commit 7a190c68f43f0f4a290f72a5f32de92ca18ad581
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 26 02:01:19 2011 -0400
+
+ More changes to autoconf & packaging.
+
+commit 7df69deab81b504cc4118c9e791a5f72d4884b38
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 26 01:47:57 2011 -0400
+
+ Check mdds header usability even when custom include path is given.
+
+commit 22d35c1b8a817fd92534260bd08a750a26c1e1c6
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 26 01:21:29 2011 -0400
+
+ Auto-detect system mdds headers if present.
+
+commit 6743dfa37fcede458983980d5d35c1dfe50a9240
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 26 00:00:09 2011 -0400
+
+ configure.ac now generates the rpm spec file.
+
+commit d22263d99cfbdea39e84e984040e35625e5475ef
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Oct 25 23:43:32 2011 -0400
+
+ Initial version of package script and rpm spec file.
+
+ They still need work.
+
+commit 4fdb609f3e0532deb57f326ebb5d1ffde9511645
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Oct 24 20:50:15 2011 -0400
+
+ Function description.
+
+commit 2507e42d990faf173815b36835b76dfadc9eb470
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Oct 24 19:23:06 2011 -0400
+
+ Moved ixion-sorter code out of the libixion part.
+
+ That code doesn't belong there.
+
+commit b7915ed78333739f5497612f163fa1f43bf645ac
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Oct 24 01:53:57 2011 -0400
+
+ Wrapper for boost::interprocess::unique_ptr and use it for formula cell.
+
+commit 79ea5f8eaf82c239f0d6eb0b63a649828e5c45b3
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Oct 24 01:37:21 2011 -0400
+
+ Re-implemented shared formulas and removed unused code.
+
+commit 64543fe3f82169afd45f77cb29270c68cdf1cb77
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Oct 24 01:05:32 2011 -0400
+
+ Simplify it a bit.
+
+commit 6fafbed46a7ef6af7ad07dac848ac9443fa0c4aa
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Oct 24 00:42:23 2011 -0400
+
+ String cell definition now doesn't have to be quoted.
+
+ This simplifies parsing of string cell definitions.
+
+commit 4385e46c2b2217ecccd665ba157e897f8a97800b
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Oct 24 00:36:04 2011 -0400
+
+ New test case for re-calculating formula cells referencing numeric cell.
+
+commit 27aa80f1011d5d7ac72934fd32fc6fb9091e3282
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Oct 24 00:25:59 2011 -0400
+
+ Removed unused stuff.
+
+commit fa905351f6704b812beb51aee356736ad705f368
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Oct 24 00:20:06 2011 -0400
+
+ Fixed referencing cells not re-calculating when the referenced cell was not
+ formula cell.
+
+commit 408e49e8b1c09c104b0e1f97ade1c8d8b63d6a8d
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 18:26:46 2011 -0400
+
+ Fixed some stuff.
+
+commit b44cf20d769ffe04570cf72f48ae9dd0ea7b2503
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 15:22:28 2011 -0400
+
+ Convert string number to numeric value without lexer.
+
+ It's much simpler this way.
+
+commit 59e2dcc04ee4bf5ec58d150fde653bee6bd31848
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 15:06:16 2011 -0400
+
+ Valid name with empty definition should remove the cell.
+
+commit 0e264d93b938e68446d8fdce8300fde44b3e6aff
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 15:03:11 2011 -0400
+
+ Get all tests to pass.
+
+commit ed8904a40a499bb1a610ea2ced914728dc4f867b
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 14:48:44 2011 -0400
+
+ Use unique_ptr to wrap raw pointer instance for exception safety.
+
+commit 01130d73e778a856bc1be36bcfd0dfa9cefab0b3
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 12:09:30 2011 -0400
+
+ Reduce indentation level.
+
+commit 451cb272bcd408cd9fe8f095fc9d38cdb32be9ae
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 12:05:11 2011 -0400
+
+ Re-do the re-calc code using the formula API.
+
+commit b2f5e1e249fa5a95c74010e2b3eb97ab3c3aa259
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 02:05:16 2011 -0400
+
+ Cleanup.
+
+commit b81719b2b2b17a11f48adcdbc3ae178ca84505c3
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 02:01:34 2011 -0400
+
+ Check results without using parse_data.
+
+commit 44979ee3d31c4c8189673ec17d2e4686050dc59a
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 01:47:00 2011 -0400
+
+ Clean-up.
+
+commit d908cee6672bb5f854243e73590d808c7a194f56
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 01:42:55 2011 -0400
+
+ Use the formula API to calculate cells.
+
+commit d266a9ba2f73b53015c668bdb85cba538f305943
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 01:39:13 2011 -0400
+
+ Print separator before first non-formula cell is printed.
+
+commit 4ff28e0293768a2c45976a3ee75f768a936447cd
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 01:28:36 2011 -0400
+
+ Now I don't need to convert lexer tokens to formula tokens before calculation.
+
+commit 55ab9a95dac3ae0bd3b9444ab5381dac912d3833
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 23 01:21:35 2011 -0400
+
+ Re-wrote parse_init.
+
+ Now, the initialization directly creates cells and puts them into
+ the model context.
+
+commit 47eefd981c2afb94bbf4ffc9457a7883eb757579
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Oct 22 20:51:20 2011 -0400
+
+ Added model_parser.hpp to Makefile.am.
+
+commit 84380057e1243ad79472a513d73639e2e1192ff1
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Oct 21 22:20:43 2011 -0400
+
+ const-ness.
+
+commit 5e7103cb25eb86cc7d47cb7c9ef7f22fcd6acde4
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Oct 21 22:09:46 2011 -0400
+
+ Use for_each to simplify the code a bit.
+
+commit 7e4d3094f438552401fa6bdecc8998d17c18702a
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Oct 21 21:46:54 2011 -0400
+
+ Moved model_parser code out of libixion.
+
+ This code does not belong to the library part of the code.
+
+commit e2d562fe348b2720dc35ed6b7bf6749ab2c9c4d0
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Oct 21 19:36:30 2011 -0400
+
+ Better wording.
+
+commit 571da4c1b21ffaec7fa9796dce43cc34c0902842
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Oct 21 19:34:07 2011 -0400
+
+ Added function descriptions etc.
+
+commit 6ee652ce1d5c0733f5c958ee870b7fd5729090f5
+Author: Miklos Vajna <vmiklos@frugalware.org>
+Date: Sat Oct 15 15:13:03 2011 +0200
+
+ Fix doxygen syntax to avoid misleading output
+
+commit 41bbee32712519ec1bcf95330ef8df7d5b0b43b1
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Oct 6 01:28:06 2011 -0400
+
+ Use the sheet index of the cell when a sheet name is not explicitly given.
+
+commit 811d36f2c75c24586a0a9adb7571c0efc5e5dac2
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 5 19:04:11 2011 -0400
+
+ Ranges with sheet names.
+
+commit 39f89a378f8af4f392913bf62a46dbae0bb0f4de
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 5 18:57:54 2011 -0400
+
+ Test resolving sheets that are not the first sheet.
+
+commit 35dec931593b5d19462129fb900d708c3d7b8dcf
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 5 18:49:46 2011 -0400
+
+ Append sheet name to the reference name for real.
+
+ Now all tests pass again.
+
+commit 36240fed316a92ad1a7cb06232843242971b25fc
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Oct 5 18:33:07 2011 -0400
+
+ Additional flag to toggle sheet names in reference names.
+
+commit 4ec3c1c52e45e275843fa334f80646682df45842
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Oct 4 19:00:54 2011 -0400
+
+ Handle sheet names and indices in the model_context implementation.
+
+commit abe14ebafacff459c6352bb571be709aa06bc98e
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 2 13:58:26 2011 -0400
+
+ Added test case for 3D references. This currently fails.
+
+ The implementation will follow.
+
+commit 9100879779d493e5404e8db5e7d7cc31c097649f
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 2 13:36:10 2011 -0400
+
+ Removed methods from interface that are not needed from the formula parser.
+
+ The formula parser / interpreter only need read-only access to the context
+ model. The only exception is access to the formula cells in order to
+ update their circular dependency check flags.
+
+commit 7e819e4d2ae4cfb4b39b94aee548859ca6588035
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Oct 2 13:16:04 2011 -0400
+
+ I can put everything but main() in the anonymous namespace here.
+
+commit 4e13e0856ef222b2266adba0968978cc91962deb
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 28 10:57:44 2011 +0900
+
+ Optionally pass model_context instance to the resolver for sheet name resolution.
+
+commit 208730f8757d43f52b86a2d33b6120a7911e91ba
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 28 09:43:23 2011 +0900
+
+ Fixed a bug or two.
+
+commit 2a37396c5ea7580c8a965134fcd458fa658496e0
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Sep 27 14:42:48 2011 +0900
+
+ We don't use this constructor. Revert this.
+
+commit 0d1ab576e0cb71e6deabcd8c8902f422301cda51
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Sep 27 13:56:33 2011 +0900
+
+ Get shared formula cells to finally work.
+
+commit 099e8d2b434edfb75ce5385581359b20b81ce326
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Sep 27 11:40:35 2011 +0900
+
+ Handle shared token ranges.
+
+commit 5c9969040125aa04ad4b3053b88c042f2738b6ba
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 26 17:21:26 2011 +0900
+
+ Now share the tokens for real if applicable.
+
+commit ca3b707d2fa56cfffec8c2715d01863fb9ed9fec
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 26 16:28:08 2011 +0900
+
+ Unresolved ref token is no more.
+
+commit d9f94ea8142d4bc6b005af63d61c17a01c84a4e4
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 26 16:17:24 2011 +0900
+
+ Started working on supporting shared formulas.
+
+commit a89395ededbdf2b2f496797c4c2198a8e7cd6f22
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 26 13:57:36 2011 +0900
+
+ Let's reset the cell listener tracker in the dtor of model_context.
+
+commit 6ad5bb59d2eba6462be6d03260239f2b01aca304
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 26 13:53:50 2011 +0900
+
+ Shared token bit in formula_cell.
+
+commit c8047f090a81e5496d859f69d0f0363006380e8b
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 26 13:49:17 2011 +0900
+
+ Turns out that I need to reset the cell listener tracker for each file.
+
+ Otherwise it causes ill-behavior when parsing multiple model files
+ in one go.
+
+commit 4974a8759d45d570358c6e7d5eeb817f5b736cca
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 26 11:53:43 2011 +0900
+
+ New test case for sharing formula tokens across contiguous cells.
+
+commit cdb8a75f32baa9c5b3002c4b6fb90d1fc4441c62
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 26 09:57:57 2011 +0900
+
+ Test name resolution of single and range references.
+
+commit 8ca750c9cf9e8caabe3f8fa2e25493b4ce35a41e
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 26 09:54:03 2011 +0900
+
+ Print range names.
+
+commit 5107c0cd4d9afa851f22a3dc62085ea4f76fe89a
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Sep 25 12:36:27 2011 +0900
+
+ Removed the non-const version of get_formula_tokens().
+
+ It makes no sense to have this method; once the tokens are set for
+ a cell, we don't modify them. We either add them or remove them.
+
+commit 1cd07895e4ec2be8fba73af4d3eed326d682a60c
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Sep 25 12:22:27 2011 +0900
+
+ Method descriptions.
+
+commit 77067877cacf5e03e629489940c26a3c96d983bb
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Sep 25 12:02:14 2011 +0900
+
+ Implemented const_cells_in_range and other associated changes.
+
+commit c90f3fa414213767967149829f97ebe184aed72b
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Sep 25 10:47:50 2011 +0900
+
+ Throw model_context_error on errors related to model_context behaviors.
+
+commit 8208a270606aab5ae3c30f55916c1022cb5c5a9d
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Sep 25 10:39:46 2011 +0900
+
+ Move common exceptions into own exceptions.hpp.
+
+commit e76d48f4bda3b0a0cb22d840265ef5be917428c2
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Sep 24 00:53:19 2011 -0400
+
+ The method expects formula_cell instance. Let's make that explicit.
+
+commit 3e1963490179ae6ce00a7eb2974023add4dba89a
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Sep 24 00:46:44 2011 -0400
+
+ Wrong indentation.
+
+commit c9e804ff178f07ded8987a2d00e21727e373551a
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Sep 24 00:41:56 2011 -0400
+
+ Throw an exception on NULL formula tokens.
+
+commit 1521c17c999ff512703d27f54a60be0611baab3b
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Sep 24 00:23:07 2011 -0400
+
+ Moved more function objects to be used from calculate_cells() in formula.cpp.
+
+commit 0e66e662ba2f5bed109d6d3fb3b9cbf264b5df31
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Sep 23 23:50:15 2011 -0400
+
+ Moved dirty_cells_t to types.hpp.
+
+commit a4d2f28bc2b7ee750f0fd6d895949fe51a7c9936
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Sep 23 23:24:38 2011 -0400
+
+ Removed unused code.
+
+commit 9b0c402cd035b481b4718df6cbdda62c9cf50916
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Sep 23 23:13:55 2011 -0400
+
+ We only have to track dependency between formula cells.
+
+ So, let's not use base_cell but use formula_cell type directly.
+
+commit 7b6b89d94f96b018dd2f762c7cc1bc402d99a9d1
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 22 16:20:00 2011 -0400
+
+ register_formula_cell() requires non-const model context.
+
+ This is because it needs to have a list of non-const formula_cell
+ pointers in the listener tracker.
+
+commit fe0954399bd883c073380d3c86cbcf02719bf835
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 22 16:01:52 2011 -0400
+
+ Make const where possible.
+
+commit 6c6ec44feb038eb9a659c89290ac4570512d550d
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 22 15:54:30 2011 -0400
+
+ Made formula_cell_listener_handler shareable.
+
+ I need to use this in formula.cpp.
+
+commit 816427340077133679cb31eb2b5b0518eaf25922
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 21 18:58:57 2011 -0400
+
+ Moved basic typedef's to types.hpp (new header).
+
+commit e687bffc0e65ee3f0d82ec67396ca62e88153c7c
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 21 18:44:22 2011 -0400
+
+ Store formula tokens per sheet.
+
+ To prevent us from running out of the identifiers.
+
+commit 9de988531d6cf3a13f281a896c299fa11d1682eb
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Sep 17 11:36:47 2011 -0400
+
+ Avoid allocating string just to parse result strings.
+
+commit e53e89c7d073e3a7e73c99199fe372f39bf6c6a0
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Sep 16 22:02:18 2011 -0400
+
+ Try not to create a string object just to convert it to a double.
+
+commit cb799a9600f9a87ade33e02e52d44316f372a126
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Sep 16 20:46:54 2011 -0400
+
+ A little cleanup.
+
+commit 29912f43a4a120887c6b4a07c1c69068e8863fdd
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Sep 16 19:43:07 2011 -0400
+
+ Done refactoring the lexer. Now no more buffer to consider.
+
+ This is much easier to read & understand.
+
+commit 6186b2a7e05f7adafa2a23a5806eebbe39a4c950
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Sep 16 19:19:50 2011 -0400
+
+ More on refactoring the lexer.
+
+commit 5b4a5d753b45601de6eef2c4763dd51adfd281d3
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 23:51:54 2011 -0400
+
+ Refactored lexer code to make it more readable.
+
+commit d6c9c5cdcb5652a1a1a31dbfb2ff83e5a34d4d78
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 22:53:47 2011 -0400
+
+ resolve() now takes char pointer and size instead of string instance.
+
+ This saves the caller from having to instantiate a string object just
+ to call this method.
+
+commit fd9a09cc1bdb3213687aec02d1b5cd7fe82556a5
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 21:28:11 2011 -0400
+
+ Done supporting string formula result.
+
+commit 1258cee519298483372ef5920ccd7a209e5ce798
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 18:22:09 2011 -0400
+
+ Began working on supporting string formula result.
+
+commit 3173d4fa091ef5eb9f667353c227c503c6ca8154
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 17:51:01 2011 -0400
+
+ Compare string values during the chek run.
+
+commit d600ffa871cb8b4a95a06a205986f8f40bfdf587
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 17:41:59 2011 -0400
+
+ Use the pointer to the new string instance, not the old one.
+
+ The passed const char* pointer will be invalid by the time I need
+ to do the lookup.
+
+commit 84dad21ac3f4e0ac2511c614dbc8a23824f27fa9
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 17:34:05 2011 -0400
+
+ Store string instances with the model context for real.
+
+commit 6b1f8d9138920480f2f3914b65feaee2df69e34c
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 17:06:32 2011 -0400
+
+ Parse string result to check string cell contents.
+
+commit d18124b67f4e31e82a177cb98e9fb1ab15471ad8
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 16:44:02 2011 -0400
+
+ Test file for defining string cells.
+
+commit 55e5cc6c3c700ba96fa301d98a692aff0347461c
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 01:49:05 2011 -0400
+
+ model_cell's name can also be mem_str_buf.
+
+commit b5eb92ab0edb87f8844dd31228a1c9c785e09587
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 01:31:57 2011 -0400
+
+ Let's not create string instances for lexer tokens.
+
+ While the raw string expression is being tokenized, there is no
+ reason to create duplicate string instances. Re-use the raw string
+ expression buffer and avoid creating excess string instances.
+
+commit a01f09c8aa53ba7edf05491f3212870bf6a3f8f4
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 01:01:25 2011 -0400
+
+ Convert to string cells.
+
+commit b3ed3f66e47458547569e69da118d4c65dff843c
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 15 00:38:37 2011 -0400
+
+ Parse quoted strings in the lexer.
+
+commit 1cb5a8ba16d61ef4c7f6ba02f4509d4123c2c909
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 14 21:07:16 2011 -0400
+
+ I call them numeric cells, not value cells.
+
+commit 86e0e72fe60842aae9cc9374e7a827cf48d5b311
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 14 19:28:58 2011 -0400
+
+ Extracted common code block into a method.
+
+commit cbef0c304bfe820352ac436a648b4891d52c0de4
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 14 19:14:14 2011 -0400
+
+ Adjusted output to print numeric cells to stdout.
+
+commit bbc3661d90029e56bf0c62604d4dbdf069cd21c6
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 14 19:04:47 2011 -0400
+
+ Sum up the value cells in formula.
+
+commit 54c36f3544e0eab921ad7b8b48eaf354d5b2e93f
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 14 18:47:32 2011 -0400
+
+ I prefer the term "numeric cell".
+
+commit 778de2bb1d97701449b8b41c06df0d8c7e3ed9bb
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 14 18:46:17 2011 -0400
+
+ Only treat the first ':' as the separator.
+
+ This interfered with range reference definitions.
+
+commit f0acbb3ca4ff8492717ebff411a25214e6d42801
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 14 18:34:21 2011 -0400
+
+ Verify results on numeric cells.
+
+commit bd8b46901bdc6b309ff5f2c514298bdfc732e49f
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 14 01:48:48 2011 -0400
+
+ Convert cells containing values into numeric_cell instances.
+
+commit eff9c0b9e8bd9dfbec6a363f625c584cb2e16db3
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 14 00:40:53 2011 -0400
+
+ Parse value difinitions whose separator is ':' instead of '='.
+
+commit fd4aadc3f06869ddc7f2c1c534b46f90e753fb47
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Sep 13 18:46:19 2011 -0400
+
+ New test file for testing value cell definitions.
+
+commit 77c9790b442bacbaecc4b2c388bac14d7c984efe
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Sep 13 21:30:56 2011 -0400
+
+ Various build fixes.
+
+commit 61aa1777be9d543e308ca33b9f6ab22e4119f7af
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Sep 10 16:52:45 2011 -0400
+
+ Clean up.
+
+commit 443d9e036c7c24abc028c2725935b7fcbd1e91ac
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Sep 10 16:34:23 2011 -0400
+
+ Lastly, use the session handler to print circular references.
+
+ This removes manual printing to stdout from formula_cell.
+
+commit b204b98eeeffc16ce9b8cbe4547e544f605b5340
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Sep 10 16:25:28 2011 -0400
+
+ Print formula inrepretation runs to stdout via session handler.
+
+ Thus avoiding manually printing in the formula interpreter code.
+
+commit dba4f5ef8007de96328e9b8e2bd72a233555e094
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Sep 10 14:16:35 2011 -0400
+
+ Make the cell listener tracker instance a static local in the method.
+
+commit 103f1a61420cee4ce5eddf4b85bf0998095a4527
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Sep 10 13:54:36 2011 -0400
+
+ Updated description of base_cell.
+
+commit 1e8570e5ef338d2222c42a299e5a3a7e9f196356
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Fri Sep 9 20:40:49 2011 -0400
+
+ Added session handler to encapsulate the code that writes to stdout.
+
+commit 91c1abeab38fb113a191fbfcda17404f6dbb6dc4
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 8 20:27:38 2011 -0400
+
+ Some cleanups. Trying to remove formula cell methods that take context.
+
+commit d211b73e83c2acbc433a32efb819cb1f429f1e0c
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 8 20:16:41 2011 -0400
+
+ Removed redundant method.
+
+commit f7624eb26902ab6c7ed78a3e8b43cd9ea3f98542
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 8 19:58:13 2011 -0400
+
+ Now, formula_cell stores identifier for its formula tokens.
+
+ With this, the cell instance itself no longer stores the tokens but
+ just an integer ID to retrieve them from the model context. This
+ will also serve as a stepping stone for the future shared formula
+ work.
+
+commit 7ee516c43ea4ea524b1c3b343a2f7433f6cc64ea
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 8 17:28:56 2011 -0400
+
+ Have model context manage the life cycles of formula tokens instances.
+
+commit a34c840b270bc75921f9a5ab3967a96e64afdb1f
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 8 17:03:03 2011 -0400
+
+ Disable public instantiation of cell listener tracker.
+
+ It's a singleton now.
+
+commit 2a89ec1b5f9af27b5f6a803ba6e302f65096b564
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 8 16:58:35 2011 -0400
+
+ Turn cell range tracker into a singleton, and remove it from model_context.
+
+commit 991fa7818e86453f0bd674357afd1e8ee8085384
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Sep 8 16:44:00 2011 -0400
+
+ Have cell listener tracker use interface::model_context.
+
+ Also, the interface now needs to provide access to non-const cell
+ instances.
+
+commit 12a9c3c92bc2413bfff1564821fbfec1f7c68307
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 7 19:16:39 2011 -0400
+
+ Make the raw data member private to base_cell.
+
+commit cf23a0a366d3b44507bb785eac90d093baeff43b
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 7 19:10:59 2011 -0400
+
+ Get the size of formula_tokens_t.
+
+commit c0f561ce35514661026688998357dd29318e12b2
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Sep 7 18:57:04 2011 -0400
+
+ Cell type doesn't need a full 32-bit range; use the higher 24-bits for flags.
+
+ This saves 8 bytes from the size of formula_cell, by not having an extra
+ boolean data member for the circular safe flag and also due to memory
+ alignment.
+
+commit db075e57293775c9eaa847b438db548511b28d7e
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Sep 6 19:11:25 2011 -0400
+
+ Prep for squeezing in bit flags into a cell type value.
+
+commit e182f0fff0a727f9ba7b4b90126f71cbcdf530e1
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 22:58:03 2011 -0400
+
+ Reduce scoping of a local var.
+
+commit 4bbd127d7614b6e44f694ba1226f62cd62ad0422
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 22:47:58 2011 -0400
+
+ Removed blank lines.
+
+commit f470fa3e5b89d91552ea8519b87cf14aadbac8af
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 22:46:03 2011 -0400
+
+ Prevent base_cell from being instantiated.
+
+commit fc6ae5280a8b5be629b140a5c5ad042de0f635fc
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 22:43:13 2011 -0400
+
+ Removed virtual-ness from the cell classes.
+
+commit 7df87a9a2c46a38935d41f003da7c7a5957471a5
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 21:54:51 2011 -0400
+
+ No one uses base_cell::print().
+
+commit 4eaacf060f77e0df999e465380322b382851caa1
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 18:44:23 2011 -0400
+
+ Cosmetics.
+
+commit f9636f85a06c0c1c49058a8c2790afac85880828
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 18:30:20 2011 -0400
+
+ Cell instances should not be copyable.
+
+ I need to implement cloning for cells later.
+
+commit 4513153f0d3d3889d7b8102fda2c58c42c192892
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 18:16:20 2011 -0400
+
+ base_cell no longer stores listeners.
+
+commit b1a0169823311d2d268ab03f1f8ec62b5daa1134
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 17:45:34 2011 -0400
+
+ Minor build fixes when using from external code.
+
+commit 5bfa5e6a09253cc542e54c9bb33cfc4829c0059f
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 16:24:38 2011 -0400
+
+ Put local stuff into anonymous namespace.
+
+commit 70b5f13a814c7d36d43b01d04ea256c0829cf1be
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 14:36:22 2011 -0400
+
+ Function description.
+
+commit 603d70fa73d16f5dc25ee198b750928ddff33d2a
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 14:34:46 2011 -0400
+
+ Return the config instance for real.
+
+commit d936bece4ae0ac055ecdfb36580cee37a212ee96
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 14:29:35 2011 -0400
+
+ Added config struct to configure ixion's run-time behavior.
+
+ It doesn't change any run-time behaviors as of yet.
+
+commit 5b79232c01e79eceaf8fb5c8a82a82c7b1e9bcbe
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 14:03:13 2011 -0400
+
+ Re-arranged parameter order.
+
+ To have both functions begin with the identical set of parameters.
+
+commit 7298301d471933d98f5b5690a15907e34b2d5c75
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 13:57:25 2011 -0400
+
+ Use for_each instead of manual loop.
+
+commit a0899b60b099e46e32e74e0d104f41887ad39885
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 13:48:57 2011 -0400
+
+ Print separators and function names.
+
+ These need to be configurable in the future.
+
+commit d62e16ff6bc0a7bb1ce65991315069936af54f33
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 12:48:19 2011 -0400
+
+ Initial work on printing formula tokens.
+
+commit 882ad2974537c8fd3ba9ddb9b354145c5731c5ab
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 01:19:15 2011 -0400
+
+ Now parse the lexer tokens and turn them into formula tokens.
+
+commit deab0c44df326978bd53486d6946b11e36da5f0a
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 01:01:48 2011 -0400
+
+ Wrong header guard name.
+
+commit bb36aa6a185a57e4a40dc5d6181a1dfa1f96b508
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 00:55:27 2011 -0400
+
+ First, convert incoming raw formula string into lexer tokens.
+
+commit 924314c4bc9bb1809a38e052ed21a8a881dff39a
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 00:33:24 2011 -0400
+
+ Added skeleton method to print formula tokens.
+
+commit 786e368c4f43d3219abfbc967645bb248579f9fa
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Mon Sep 5 00:15:36 2011 -0400
+
+ Removed types.hpp. It was a bad idea.
+
+commit beb740645d738cf1bcdc813c35cc1ec53b0f180e
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Sep 4 23:47:32 2011 -0400
+
+ Wrapper script to run ixion-test.
+
+commit 9a978462b9cbe8398cdaefb564bef609964c85c8
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sun Sep 4 23:46:29 2011 -0400
+
+ New files to start adding useful functions for external apps to call.
+
+commit 4b515a5161398b694efbf12d45f4aeb9b70e3685
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Sat Sep 3 16:03:11 2011 -0400
+
+ Added Makefile.am files under include to correctly install headers.
+
+commit 03221d3765ae3b305753d59a46965988ed1b0afc
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Aug 11 18:25:14 2011 -0400
+
+ Added documentation.
+
+commit 4a0a4c85aa101afe1ee3b621a8fb3b458a4f34a6
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Aug 11 18:02:43 2011 -0400
+
+ More use of interface::model_context.
+
+commit ab6d5767f3f7dcbedab50992fd25b721e188be3b
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Aug 11 17:45:27 2011 -0400
+
+ Renamed formula_name_resolver_base to remove _base.
+
+commit 4966ad37ed02d2216b673143e7e0b03bf69accb7
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Thu Aug 11 17:37:23 2011 -0400
+
+ Now the entire formula interpreter uses interface::model_context.
+
+commit bbc18027b5dc9f5b3692f5f45878d98b0acd5289
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Aug 10 19:30:42 2011 -0400
+
+ More methods that need to be virtual.
+
+commit 078a50e8ea9c48cc2bbc5737f037cbb32a195df0
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Wed Aug 10 19:20:12 2011 -0400
+
+ Added two interface headers and started adopting the existing code.
+
+commit a2b97487e23faacea808288579cf3ba10e11673f
+Author: Kohei Yoshida <kohei.yoshida@suse.com>
+Date: Tue Aug 9 19:06:56 2011 -0400
+
+ Removed standard iterator and moved to first(), next() based iterator.
+
+ This is to allow abstraction of this class which I'll work on soon.
+
+commit 78a5c4a63026d4cbc611e986c6bcef3eb5c672f6
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Aug 9 18:22:31 2011 -0400
+
+ Header description for cells_in_range.
+
+commit 7e5b4eeb52cc464034dce1368e43e023a0a3f72e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Aug 9 18:18:50 2011 -0400
+
+ Extracted a common code block into a method.
+
+commit b06581b186a398a349fb3abadd5e43f9b7475d16
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Aug 8 00:20:10 2011 -0400
+
+ Removed friend-ness and moved data members to the bottom.
+
+commit 22b87027d354816838ac7542d4759b809c0861bf
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Aug 7 23:54:19 2011 -0400
+
+ Changed method name.
+
+commit 5bf7a4b55119f154f58f5bdeb6bf3a4ab8bf70e3
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Aug 7 23:50:07 2011 -0400
+
+ Added note for the future plan of model_context class.
+
+commit 0738cba43a8c4c3a61095a22d266b87e4a6718f2
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Aug 7 23:46:39 2011 -0400
+
+ Updated the year of my copyright notices.
+
+commit 16c88c40bbfa1a8980aa3b9cd594f737b7b41a0e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Aug 7 23:10:28 2011 -0400
+
+ Turned off all debug statements.
+
+commit 848b490b9b3c25b0f1a313a0a01a20721df51ebf
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Aug 7 23:07:05 2011 -0400
+
+ Implemented cells-in-range iterator and finally detected circular dependency!
+
+commit 20113f2f13c225c8fd190f6baafda84e31e7f6ea
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Aug 6 23:38:55 2011 -0400
+
+ This was never supposed to be checked in.
+
+commit 918b817f1004309df4eb911e7dc1472ac5bd768d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Aug 6 23:38:04 2011 -0400
+
+ Added skeleton for cells_in_range class.
+
+ This class will allow iteratoring through non-empty cell instances
+ for specified range.
+
+commit 93f65f664b2b3ef62028e02f7af3b33f43608206
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Aug 6 21:33:23 2011 -0400
+
+ Spit a debug message on unprocessed token types during circular reference check.
+
+commit 1b247fd1802a8424eab7fc5b407ada780a8cf4b9
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Aug 6 17:14:24 2011 -0400
+
+ More debugging. Finally found out where I'm deadlocking.
+
+commit e4c06c577548a284d006f41103e46225895694f6
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Aug 6 16:50:50 2011 -0400
+
+ Started debugging dependency tracker.
+
+commit 6bf4bcd591e0dc788a400b71b4ea07296bf53da0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Aug 5 19:40:46 2011 -0400
+
+ I'm finished with this TODO item.
+
+commit 0d38ca86caa5a4b439b857dd3084005db2130245
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Aug 5 19:37:18 2011 -0400
+
+ Started debugging again.
+
+commit 9fbd5937e8b3d83db51c4f3b51f7b3abab973390
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Aug 5 19:26:59 2011 -0400
+
+ Oops.
+
+commit 5392a498ddf4ec79f90274fb609b8632251f839c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Aug 5 19:24:37 2011 -0400
+
+ I'm not supposed to be using cout directly this way.
+
+commit 0044c837c9a16aa36b052bd74f44330878254708
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Aug 5 14:40:49 2011 -0400
+
+ More debugging on range listener tracking in presence of circular references.
+
+commit ac70129496fe924f8212787d0a1d3d670e074312
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Aug 5 11:01:26 2011 -0400
+
+ Range listener tracker is no more. The name is cell listener tracker.
+
+commit 4b34407cb1222e9a0ae2d219d09267f85ef34023
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Aug 4 18:10:29 2011 -0400
+
+ More debugging statements.
+
+commit fda8a308e4f523f7755055f92b713de7b55b7c37
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Aug 4 17:42:23 2011 -0400
+
+ Don't check for presence of cell instance when adding or removing listeners.
+
+ This fixes the failure to detect circular references when adding
+ formula to empty cell(s).
+
+commit 40bac736b437aaeb7a4b0c39fd4a351c49be3e38
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Aug 4 17:38:12 2011 -0400
+
+ Support 'exit' command to explicitly exit the interpretation.
+
+ This is useful when you only need to partially execute the model for
+ debugging.
+
+commit c172d81d56ebd94a7311741899d3740e06f8ab39
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Aug 3 19:17:59 2011 -0400
+
+ Completely removed listeners from cell instances.
+
+commit d88355aca824602fb1f23b3ed4e331a3ab42b2e3
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Aug 3 18:48:21 2011 -0400
+
+ Changed file names.
+
+commit 6b6c8072189b678b6518d2d4dc62cd5c33bc4e6b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Aug 3 18:42:32 2011 -0400
+
+ More on class name change.
+
+commit eb59309a67c53554d0817031d79b0c3b3ddc6b13
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Aug 3 18:40:52 2011 -0400
+
+ Renamed range_listener_tracker to cell_listener_tracker.
+
+ This class now keeps track of single cell listeners as well as range
+ listeners.
+
+commit 9fa0f1e24bd4054c04941398ee750eeb45af9918
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Aug 1 19:12:24 2011 -0400
+
+ Added method to pick up all listeners of single cell addresses.
+
+commit 31d234fa2d0dc7acb6e4ae98695ff64700b96df4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Aug 1 18:46:36 2011 -0400
+
+ Renamed methods.
+
+commit 38de132a07a086cc74402b864f41b138cc6764a4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Aug 1 18:38:16 2011 -0400
+
+ Typo
+
+commit 92b53330c8c4724aeb04bb69ce7dc10307b381c1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Aug 1 18:37:23 2011 -0400
+
+ New methods to add and remove cell listeners.
+
+commit efa57e6f513ce37dfb8296552114404d1569ab08
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Aug 1 18:24:24 2011 -0400
+
+ Added new data member to store single cell listeners.
+
+commit 2f72c05a965fa574e5ea625d8f51e84473f3a485
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jul 29 19:38:43 2011 -0400
+
+ Replace debug cout with __IXION_DEBUG_OUT__.
+
+commit 40c738fde56d6bd7559d3f0bc5b2e1786b45a6cc
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jul 28 20:40:53 2011 -0400
+
+ Hmm. I forgot to check this change in !?
+
+commit 0238e413af52ae78928180c6805e9a131740eaed
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jul 28 20:36:38 2011 -0400
+
+ I didn't mean to commit this.
+
+commit 5d7be3290738c5f26ab28c402a8158526791fec5
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jul 28 18:33:28 2011 -0400
+
+ New test for detecting circular reference of single cells during edit.
+
+ The engine currently fails to detect this.
+
+commit e106b47d845436409daa58750b4596127155f52b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jul 28 18:32:44 2011 -0400
+
+ Stop traversing range references when the original target address is reached.
+
+commit dffdb4013a068e65c9755ae2680b6fbcff03a8f5
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jul 28 18:02:36 2011 -0400
+
+ New test for circular range references.
+
+ This currently crashes the engine.
+
+commit a791163b40b1eb6867b16555ec5a7029f3a4a2ae
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jul 28 17:53:03 2011 -0400
+
+ Adding more test cases for range ref tracking.
+
+commit abee3e2dc4462a49641aca8fc175ebaabfd5e469
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jul 28 17:41:41 2011 -0400
+
+ Perhaps a better way to avoid checking listeners of the same target twice.
+
+commit e3216d0d23ac837e7077e7df8e2bd6004301a77d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jul 28 17:33:18 2011 -0400
+
+ Remove bogus circular reference check during range listener traversing.
+
+ Also, make sure we only check values of those cells that are defined
+ in the run, by clearing previously held check values from the last run.
+
+commit ca4cf332abfd3d51138efdf5303b6f7cccf70c3d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jul 27 19:27:07 2011 -0400
+
+ This is the year 2011.
+
+commit 90c43fc0efac581a9e36a5ac5846b939a908058d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jul 27 19:21:34 2011 -0400
+
+ A5 has a constant value of 5.
+
+commit fca7e4edde6e9beb10f9ea7c774dfd801e296f9f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jul 27 19:10:52 2011 -0400
+
+ New test case for chained reference tracking.
+
+ cell -> range -> cell -> range -> cell referencing. This currently
+ fails.
+
+commit 899690d956f8f13ada972e266334fce3871ee489
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jul 27 19:00:48 2011 -0400
+
+ Make sure to check for the boundary case.
+
+commit 171e1e480aab8376c4a89aa1001f85f732d24e98
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jul 27 18:53:16 2011 -0400
+
+ I got the row and column backward when searching for the range listeners!
+
+ No wonder the search would turn up no hits. Now fixed & all tests pass.
+
+commit 51c30ab4b6aa5ab48f728e7962278b5501513fbd
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jul 27 18:07:01 2011 -0400
+
+ Debugging the range listener tracker...
+
+commit f4dc801cc416e8aa3aa24d9a736f50b3ccdf78bf
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jul 26 18:46:25 2011 -0400
+
+ More debugging. Added name resolver methods for absolute refs.
+
+commit 470762a4f7a6ba858f8f618d8c1bc4e4869c8d28
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jul 26 14:38:27 2011 -0400
+
+ More test case for editing an existing value cell.
+
+ This currently fails.
+
+commit 676f7122cfe7b191e362d3e923ad60f4dc715fed
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jul 26 14:28:18 2011 -0400
+
+ Account for relative addresses when generating names from addresses.
+
+commit 949015d245fcde11570a2fa5c8eba39231648b71
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jul 26 14:17:00 2011 -0400
+
+ Test range listener's ability to trigger recalc on value cell addition.
+
+ Previously, adding a value to a cell that used to be empty didn't
+ trigger a recalc because no existing cell was modified. With the new
+ way of tracking range references, this should correctly trigger a
+ recalc.
+
+commit a1b88117cfe5982381dbfdc46b8a05bfcf8da0ac
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jul 26 13:44:56 2011 -0400
+
+ More debugging on resolving range refs & fixed relative range address storage.
+
+commit 457ef93e751f6cfa9b6ee8c69ecad9e3871f27ea
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jul 26 12:51:31 2011 -0400
+
+ More systematic way of producing debug outputs for range tokens.
+
+commit bcfc8b03f0d2be6f33362da7bdd03f692b7c4e9f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jul 26 11:48:57 2011 -0400
+
+ New test file for very simple, basic range reference tracking.
+
+commit b156930689974f1d6a38c624619663c886c39d2a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jul 26 11:37:49 2011 -0400
+
+ Fully implemented get_all_listeners().
+
+commit 81e98ba8448bcb1da61fe72efbc780a63287a05c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jul 26 10:47:15 2011 -0400
+
+ get_all_listener() should conceptually be a const function.
+
+commit 0df90c95bf7a5ee20cbdf3f731431cc44f5a19d0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jul 26 10:02:10 2011 -0400
+
+ More on range listener implementation.
+
+ Partially implemented range listener query method. Not done yet.
+
+commit 717228c2f9a6da88629ea5980ff60df0824cc5f8
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jul 22 19:42:28 2011 -0400
+
+ Added macro to toggle debug statements & ensure open-ended ranges.
+
+ rectangle_set's ranges are open-ended; we need to ensure x1 < x2 and
+ y1 < y2.
+
+commit c0a4ca8af9044db78d76f77af4f81ef45190b59d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jul 21 18:34:34 2011 -0400
+
+ Let's not forget to delete all the listener set instances in dtor.
+
+commit ea5a266d5e0e59bdcfe6333eb448c721c4ecb5e0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jul 21 18:29:07 2011 -0400
+
+ Implemented addition and removal of range listener tracker.
+
+commit dd3fe6122679e45f200f9abd2956eafb33734fdc
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jul 21 17:21:47 2011 -0400
+
+ Set up storage data member for range listeners.
+
+commit 68837ca14d1fcd92f864ab25b2e992b50ea8bc58
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jul 20 23:29:52 2011 -0400
+
+ Re-arranged formula ref handler to make use of range listeners.
+
+ At this point, the dependency based on range-to-cells is broken
+ temporarily because I haven't implemented the range listeners'
+ methods yet.
+
+commit f044bf4cb5f330da0f23f0c66912427682f66d6f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jul 19 19:28:41 2011 -0400
+
+ Defined some data member types.
+
+commit 255db4d8925e9f6d7602bcfb667ce19e0588c5be
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 8 19:10:48 2011 -0400
+
+ Added empty skeleton for range listener tracker. To be filled later.
+
+commit 7a2fbc23d31858e30ac8c343d0e979386b09cd0c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 1 00:02:51 2011 -0400
+
+ A little safeguard to test the logic.
+
+commit 0a2b8a84c13366f4f7a2f6683de81a191f0f649a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue May 31 23:55:09 2011 -0400
+
+ Push cell references to the stack, and resolve them later.
+
+ We need this behavior for functions that manipulate reference addresses.
+
+commit 3800aeccb53f35a34cd943f69079fc23817cc92c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 26 21:18:15 2011 -0400
+
+ Version 0.3.0.
+
+commit 69676ee136e0d83188e2b3434ec13cec12786859
+Merge: 24f08d1 f7ada18
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 26 21:04:50 2011 -0400
+
+ Merge branch 'range-ref-support'
+
+commit f7ada189c6db529c49c1e6c00f8a742329fc36b0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 26 21:04:09 2011 -0400
+
+ Added permanent test case for range reference handling.
+
+commit 5a0d678d1823f750a029671f9682be73dbbd0f74
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 26 20:10:08 2011 -0400
+
+ Handle dependency tracking with range references correctly.
+
+ Now the cells should be calculated in the correct topological
+ order even in presence of range references.
+
+commit 8b6b7f375636d10d368b5f1b2a40c3b531893121
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 26 17:13:16 2011 -0400
+
+ Pick up range references from formula cells.
+
+commit f2972035fc99c153193d03cc16c1240d864dc500
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 26 17:07:27 2011 -0400
+
+ Only debug model parser for now.
+
+commit 9dd722efd1def07bc94a181b6862b24f4f0630f1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 25 19:13:21 2011 -0400
+
+ Removed debug statement.
+
+commit e9dd58ff09ea3329c5d5b453ee06f794cc5d9961
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 25 18:58:58 2011 -0400
+
+ Fixed range value retrieval from the context.
+
+ But right now this causes deadlock since range reference dependency
+ is not properly tracked. That's to be worked on later.
+
+commit ce6264297ea14d9b73444e62fa7e7824e3b0be59
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 25 18:37:09 2011 -0400
+
+ Properly implement summation of matrix value.
+
+commit d4379cf4f252640b2093d6e85875d8b2c7082c0f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 25 18:19:59 2011 -0400
+
+ Updated copyright years.
+
+commit c27aba7c3a3e67e693ba458f807a74e7207d729d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 25 00:42:55 2011 -0400
+
+ More on getting range reference to work properly during formula interpretation.
+
+commit faa7dd15ba237d4cc11eea689d7c469316134326
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 25 00:14:44 2011 -0400
+
+ Implemented model_context::get_range_value for real.
+
+commit d9f50ad110a56213b766e611f0dd25629f17d145
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue May 24 23:34:11 2011 -0400
+
+ Class description.
+
+commit 0b2e10095d2bd42f6a020153eb5d850ccf78bc2b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue May 24 18:47:46 2011 -0400
+
+ Added a means to get range values from the context.
+
+ A range value is represented by a matrix object.
+
+commit 57b67f002fc8ddb7cecc6c2063071cdb96e78824
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue May 24 18:22:50 2011 -0400
+
+ Pass model_context to the value stack container.
+
+commit 24f08d143e79b09e2d61924a0f6a19e97e777618
+Author: Cédric Bosdonnat <cedric.bosdonnat.ooo@free.fr>
+Date: Tue May 24 12:05:44 2011 +0200
+
+ Fixed automake tooling
+
+commit 0ad33f7bc6e02c3f78483e986ce241f9445f0b42
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue May 24 11:50:23 2011 -0400
+
+ A little cleanup in built-in functions.
+
+commit abad946428591bda2730eb8645d9b0aa64229e0c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue May 24 10:46:59 2011 -0400
+
+ Properly initialize the matrix storage.
+
+commit 82fb7252a9d230b65971b0179963c5b667afc1a6
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue May 24 10:39:58 2011 -0400
+
+ Added new class ixion::matrix.
+
+ This class will store range data, as well as in-line matrix data
+ during formula interpretation.
+
+commit 28eee36bab7b3990961899c004bd2f250eca5228
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon May 23 20:14:45 2011 -0400
+
+ Cleaned up a bit.
+
+commit 55fab8ec41cacb0aa9d01a83d1adb62df8193bb5
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon May 23 18:50:34 2011 -0400
+
+ Added configure switch to specify mdds header include path.
+
+commit 5a7948b54726382a07891399d4ded7412d3875bb
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 19 18:50:12 2011 -0400
+
+ Removing TODO comment...
+
+commit f108d2edea1eb31a59515e60e786696d94e4dc4b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 19 17:30:52 2011 -0400
+
+ Finally push range reference to the stack.
+
+commit 331404a34c3c9609d4394f478b08f51164153011
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 19 17:07:29 2011 -0400
+
+ Debug output for range references.
+
+commit 5809a4c94337dc09d058d1425f7de11c8ee4affd
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 19 16:55:17 2011 -0400
+
+ Use push_value and pop_value of value_stack_t directly.
+
+commit 9199537b5965cdb37ef254d3f3269a4ee7d3cd7f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 19 16:51:11 2011 -0400
+
+ Methods to push single and range refs to the stack values.
+
+commit 7d0fccb1530889f2e4faef312c9b46fe1e137bc8
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue May 17 18:48:03 2011 -0400
+
+ A bit cleaner algorithm making better use of the stack value API.
+
+commit c2ef94c07f85ebc7f0d71c1aba0fc3ab2b821c88
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 15 00:15:45 2011 -0400
+
+ Each function to return its result to the stack instead of return value.
+
+commit da4f839b1c18f02575c797c70730e42d8995f8ec
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 14 23:43:19 2011 -0400
+
+ value_stack_t as a separate class.
+
+ To allow adding methods that handle stack values.
+
+commit b021ea9adb89966dd7d5feecab8793fa5a8d455c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 14 22:22:23 2011 -0400
+
+ factor may no longer include named expression.
+
+commit eedecf5f26b193a79200730f0d2b7be2d5763074
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 14 22:09:41 2011 -0400
+
+ Turn formula_function into a non-static class that can be instantiated.
+
+commit 45dcee9f0e0e887b18eab4296020106eb6936687
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 14 22:05:12 2011 -0400
+
+ Allow stack_value to store single and range references.
+
+commit df8c71c7090065c1f94809804b3f943b348c3eeb
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 14 21:34:20 2011 -0400
+
+ Make stack_value a class instead of a struct.
+
+ Also did some other work to store references as stack values, instead
+ of resolving references on the spot. We need to keep them for functions
+ such as OFFSET, which modifies reference addresses.
+
+commit 3a64a37cdb23957c59c3558cc458b27f72b5e5dd
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 14 20:02:29 2011 -0400
+
+ In-line comment.
+
+commit 63ece902b6e17864b89f0ded91cf95d5d51ebcd0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 14 19:58:45 2011 -0400
+
+ Re-use value stack container for formula functions.
+
+commit 471949e976dec29fd54f5c1d96bef8cc922253b6
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 14 19:41:55 2011 -0400
+
+ Moved stack value related stuff to global.
+
+commit c576b98f7f641e639fc34d1028377491269bf42f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 14 17:26:44 2011 -0400
+
+ Convert stack values to arguments all in one go.
+
+commit ab102bf7248c8edb732f628015e621acfe6f72ff
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 14 16:51:42 2011 -0400
+
+ Added class description.
+
+commit a0ce6909c9d4b4cdf3738d0c9d7aa5fdd5f4b6d4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri May 13 02:30:55 2011 -0400
+
+ Fixed syntax error. I wonder why this ever compiled with newer gcc...
+
+commit 98dca4fd9214fa87f11ca60b1b300b96029eb3b2
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 12 21:45:56 2011 -0400
+
+ Just make sure that we have the correct stack size at the end of interpretation.
+
+commit 8039f56a4cd02b3aabc975a099ce8116329ed530
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 12 19:57:16 2011 -0400
+
+ A little cleanup.
+
+commit 655dddfc796187a22b9e35145664025f92c3fa57
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu May 12 19:38:49 2011 -0400
+
+ Switch to using variable stack to pass value around in formula interpreter.
+
+commit d64928c541381d36905bc2e9a816f89d7473bd6c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 11 19:12:11 2011 -0400
+
+ Turn on debug for interpreter only.
+
+commit a74abeb536b0d4bbea2cf823cd36811b9d28afa0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 11 18:59:35 2011 -0400
+
+ Correctly convert range type names into range reference tokens.
+
+commit e753b006ff26716753caf7c65357ba5c6293d3cf
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 11 18:19:06 2011 -0400
+
+ include/Makefile.in is no longer there.
+
+commit f62b681a4a439de91dd872c98ccdaa6ea3fbe43a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon May 9 00:40:29 2011 -0400
+
+ Correctly parse 2D range references.
+
+commit b293088e9238187b0381284affd2b64c7a822b17
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 8 23:41:19 2011 -0400
+
+ Extracted method that parses single cell address part.
+
+commit 2b0a4b29d56b4380ab5f1feed247c50fd0d858bf
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Apr 25 00:00:53 2011 -0400
+
+ Don't forget to remove itself as the listener of its referenced cells.
+
+ When editing a formula cell, the cell needs to be removed from its
+ references as a listening cell prior to updating its formula tokens.
+
+commit 484378967d79898cfc9fad3adb8c70cdd4551ec1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 24 23:27:22 2011 -0400
+
+ Added description for the function object.
+
+commit 8cf1f7db23ee2dc353da78f86930c5f8f0bfd3dc
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 24 23:15:11 2011 -0400
+
+ Extracted another code block into function object with for_each.
+
+commit b1947f22a70e499bed18dc9db76a85c3b27dbfaf
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 24 12:34:26 2011 -0400
+
+ Extracted code block that convert lexer tokens into formula tokens.
+
+commit 2dc745561c7547f5771920d8e498cce7093c8a90
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 24 11:32:36 2011 -0400
+
+ Added class/method descriptions.
+
+commit 089be4845a97a96ece9564f7ac8faf1a44c24ce7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 24 10:37:12 2011 -0400
+
+ Added absolute range and general range types.
+
+commit 6977ddc852f91ebfdb7e7ea21c9a73aa7010f8fb
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 23 16:45:05 2011 -0400
+
+ Removed Makefile's from the include directory.
+
+ It builds fine without those makefiles. Let's remove them.
+
+commit 83cf4f5caf7a249118714edccb1fe293638529ec
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 23 16:33:51 2011 -0400
+
+ Created include/ixion directory & moved header files into include/ixion.
+
+commit 74c3801b1b1ce6347a02506fd41997e1e70127c7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 23 16:12:18 2011 -0400
+
+ Renamed header directory from inc to include.
+
+commit 4da04f608e2fa51b90ed455a6486fbbff341a967
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 17 18:58:44 2011 -0400
+
+ Comment.
+
+commit a51ff556970bd1698e21793ea658a0ad677e1ef4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 17 18:38:08 2011 -0400
+
+ Let's support line comments. Lines that start with '%%' are considered comments.
+
+commit e471f1c55bbdc16e271723f85bca4fed4e44e53d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 17 18:12:43 2011 -0400
+
+ Removed test that's a bit redundant.
+
+ 04-function-single.txt now tests all built-in functions. Let's use
+ that one.
+
+commit 30319487a72cc72ae964643a8dea35882e41f2af
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 17 18:12:06 2011 -0400
+
+ Verify the results of fractions.
+
+commit 4c10bc4fd5e614f5272d3365e5c88bb0044ee4d4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 17 18:06:23 2011 -0400
+
+ Simple test for built-in functions.
+
+commit 3aa90ca7863ff6bd93664a6c55be48a011ce77f7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 17 17:23:20 2011 -0400
+
+ Verify the result.
+
+commit 5d3a4bd2cf2319bf12bdf050c924b2065b176a3c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 17 15:22:58 2011 -0400
+
+ Check the result.
+
+commit 942e9a1b5908fca9fd9aa473ca614762a39e77c2
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 17 13:34:33 2011 -0400
+
+ Use abs_address_t instead of address_t where appropriate.
+
+ Some methods always expect absolute addresses. Let's use abs_address_t
+ for those.
+
+commit d82dcb1f03fde7b7e91e9776d027ead799f9cf90
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 17 13:05:36 2011 -0400
+
+ Added abosolute address type abs_address_t.
+
+commit 749abd11ada204808f71ab4f72009f31fe84c7a6
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Apr 11 01:10:51 2011 -0400
+
+ Fixed class description.
+
+ Class single_ref_token may store either relative or absolute address.
+
+commit d5772294a1ffbd16fc37f28016076433aba0b4f2
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Apr 11 01:01:07 2011 -0400
+
+ Fixed circular dependency detection.
+
+commit 8beb4961618750503a3fdafc8be4915baec31948
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Apr 11 00:33:25 2011 -0400
+
+ Make all necessary changes to get it to work.
+
+commit 873aa76c4eafb68ec7aa64d3ffaa238ffc3562e7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 9 15:33:45 2011 -0400
+
+ Let's defer setting the reference position with the formula parser.
+
+ We need to first parse the cell name in order to get the correct
+ reference position, then pass that onto the formula parser.
+
+commit 0014c44a509c813f0e86740f2090438b484bae62
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 9 15:16:17 2011 -0400
+
+ address_t to carry relative/absolute flags & modified resolve().
+
+ resolve() call now takes reference position in case it needs to
+ calculate relative address.
+
+commit c7de370d0b7169e48b659bb8f7d3e2af5a733b1d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 9 13:44:09 2011 -0400
+
+ Set class descriptions to make it clear what single_ref_token should store.
+
+commit bbbad74ae326cfec5144ed7c53164bd2af8c76d8
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 9 11:44:21 2011 -0400
+
+ Moved thread test files out.
+
+commit 4930af983b3d6b0d36920ff60217f5b112c5aa92
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Apr 4 00:22:35 2011 -0400
+
+ Run the parser tests as part of make check once again.
+
+commit e0888667170e8fc2d2f0e99b35a5ca59801f4e4d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 3 23:28:30 2011 -0400
+
+ Use formula name resolver to print cell address.
+
+ This is so that even the names of empty cells can be properly printed.
+
+commit 5d9b9f57a226c444c9bf7435e05dce8456f43fcf
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 3 22:48:41 2011 -0400
+
+ Fixed handling of listener cells during re-calculation.
+
+commit 54c1d649be3ce67a5fb35d767a375ac28e900e80
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 2 13:12:34 2011 -0400
+
+ Removed the old slickedit project files.
+
+commit 6580e2f4f532656a8bad2deb5b80044cae1dbb1c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 2 12:35:53 2011 -0400
+
+ Added wrapper script to execute development version of ixion-parser.
+
+commit ba00e5ce199100eb8be28cdc93673b6bbdd5e22e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 31 17:57:47 2011 -0400
+
+ Fixed re-calc.
+
+ ptr_map does NOT overwrite existing value unlike std::map. You need
+ to remove existing value first.
+
+commit 888afd8f550b4004fd1d288449fdc0b4d0f7063d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 27 21:15:00 2011 -0400
+
+ Fixed cell name resolution during formula result check.
+
+commit 5b08429f4577ba49e074323ee911278dfb8791af
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 20 10:56:56 2011 -0400
+
+ Resolve function names first, over A1 cell names.
+
+commit fdf35cca32a48450e9e473946004381f532809b7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 20 01:15:49 2011 -0400
+
+ More test, and removed debug statements.
+
+commit 3b379947ddd9e9914dd6121158438ff11d7c6b7e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 19 18:38:59 2011 -0400
+
+ Fixed address to A1 name conversion & more test cases.
+
+commit 3e80712491c7c45334d9fbd98fc2e0266bbca02d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 19 17:56:10 2011 -0400
+
+ Set up a simple test code that gets runing during make check.
+
+ Right now, I'm only testing A1 name resolution.
+
+commit a4dea11ebd7ab3ce139512543fa17e0694d3b871
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 19 13:36:49 2011 -0400
+
+ Removal of unused methods, typedef's etc.
+
+commit ecab0f58a0275d47a468bf1c5927b7d1e8080cd0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 19 13:27:09 2011 -0400
+
+ Dependency tracker now uses dirty cells instead of name to cell map.
+
+commit 9e7c5287724e1369a6986a5ff2f5329f793960a4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 19 13:13:59 2011 -0400
+
+ More on removing usage of name-to-pointer cell map.
+
+commit e478014b5521cb5081a3efe2d111977081a157e1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 19 12:40:43 2011 -0400
+
+ Fixed listener cell registration, plus some cleanup.
+
+commit d1912a72a9bf0c84680d2f84e83159ffff773e23
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 19 11:48:09 2011 -0400
+
+ More on using context to get cell names.
+
+commit e90e515218c315a6b7ceb7f95681b760e918a896
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 19 11:34:28 2011 -0400
+
+ Finally identified and fixed the cell dependency breakage.
+
+commit 546b98207a0743be970cab4022d6639b50b1c69f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 19 11:13:34 2011 -0400
+
+ More attempts to remove usage of global::get_cell_name().
+
+commit 2015b3601458a0d4a1294a1a4dcfad23e2e9a510
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Mar 14 02:54:37 2011 -0400
+
+ Some work toward getting cell name from cell pointer via context.
+
+commit bfc6b7ab10e8958ec89b52ef875459a6922c8b1d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 13 16:53:53 2011 -0400
+
+ Print single ref tokens.
+
+commit 83abb9fb2b9b1d2356125dd81b94668dbdc80793
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 13 14:05:40 2011 -0400
+
+ Insert a single ref token for cell reference during lexer-to-formula token conversion.
+
+commit eae9891fbe56b82762119aaaf44d753a1a8967b2
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 13 13:56:58 2011 -0400
+
+ Convert all formula tokens first, then pick up dependency info in another loop.
+
+commit a7c9c480227c45efbeae71fdea2a877717a53946
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 13 03:32:22 2011 -0400
+
+ Store cell listeners by cell address, not by pointer value.
+
+commit fe09a12415a2800a9ed7dba4f4253af347287675
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 13 03:08:24 2011 -0400
+
+ cell's print listener now uses the context object to resolve listener names.
+
+commit 133d90a07635d7a75ebfa8722a66f641de3be73e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 13 01:58:52 2011 -0500
+
+ Store cell instances into the context for real.
+
+commit eec2bad92e1c38c334d1b6c5e0f5e1f4c7cb622c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 13 01:26:10 2011 -0500
+
+ I tend to use foo_type naming convention for typedef in class scope.
+
+commit 0626c47527867efb0980bca12296ed7431c41205
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 13 01:23:00 2011 -0500
+
+ Correctly recognize definitions of formula cells and put them into context.
+
+ I have yet to properly store cell instances into the context.
+
+commit be0e9cf8b5f1bc147b7544a5ac6d95ff41109f4a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 13 00:14:42 2011 -0500
+
+ parse A1-style cell reference, and store 3D cell address with cell ref token.
+
+ Instead of storing a pointer to a cell instance, a cell ref token now
+ stores the address of a cell, and the cell instance is looked up
+ from the context.
+
+commit d8619146748bd73f027ccb8b342cde6df8ed02a3
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Mar 7 01:48:36 2011 -0500
+
+ Code cleanup.
+
+commit e5f402786803db8a4827d8e486f3d53150ae0ec1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Mar 7 01:43:07 2011 -0500
+
+ Removed usage of pointer-to-name map from the thread manager.
+
+ We now use the context to manage stuff like that; no need to carry
+ around a separate cell pointer to name mapping object.
+
+commit c06d8263d1f7f146c9a7997400d2909b4813e4bf
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Mar 7 01:17:11 2011 -0500
+
+ You can pass a const reference thru boost::bind if the class is not copyable.
+
+commit b974b065344fe88e25d6948eb781898b3b8cf92d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Mar 7 00:58:46 2011 -0500
+
+ Print named expression names during debugging of lexer conversion.
+
+commit 307f0b0e21b19b574ae0db967666aec6e0e7a9a6
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Mar 7 00:46:38 2011 -0500
+
+ Print the name of named expression for interpreter debugging.
+
+commit 5b0363cd47a4b2ec4bc999aea5f0b9250b1694f4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Mar 7 00:30:32 2011 -0500
+
+ Detect circular referencing of named expressions, and throw an error.
+
+commit 3ddde30cb18ec23ae60799ed4c14aadf286065cf
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 23:53:32 2011 -0500
+
+ Expand named expressions before interpreting tokens.
+
+commit 2b3d7ef82f2efef07527848bdbfe6ce8b83ab00c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 23:22:01 2011 -0500
+
+ Make a duplicate token set for the interpreter.
+
+commit 9222326f7379392817308fbc0b05102e9392300f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 22:51:06 2011 -0500
+
+ This is now a requirement rather than a future wish list item...
+
+ Nested interpretation of named expression won't resolve circular
+ dependency of named expressions...
+
+commit 2c7af07ee25780d4395b2f62271ab40b76c052dd
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 22:43:32 2011 -0500
+
+ Added note for the future.
+
+ We should avoid nested interpretation as much as we can, since that
+ may create too many recursions and at worst case stack memory
+ overflow.
+
+commit a1ae6979659e22870180c46612f8c09d42bee179
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 22:19:06 2011 -0500
+
+ Interpret named expression recursively.
+
+commit b088be1e8066d6bdb44b0bf63bbae06bfb8b7324
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 18:19:34 2011 -0500
+
+ Treat each target as named expression, and pass the context object around.
+
+commit 5a3a42b634a7154c7faf3935cafe0608b9ac9f8e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 17:29:47 2011 -0500
+
+ Added header guard. I somehow forgot.
+
+commit 838f8f91c722185dc50b1d2f8714a18ca0271039
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 15:52:10 2011 -0500
+
+ Removed unused method.
+
+commit b6d9c910676d1b99270a2c7b0d92a45485c74c93
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 15:45:34 2011 -0500
+
+ Renamed several names to fit their purpose better.
+
+ Cells that one cell depends on are called "precedents".
+
+commit 938ab3145a9617f7f264d73501e59b50105d6169
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 15:34:27 2011 -0500
+
+ Added named expression container to the context, plus code comments.
+
+commit dfd46e3ac1af5a6c6459eb047234139403ac9bf6
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 14:00:42 2011 -0500
+
+ Added model_context class (still empty) to fill it with context specific data.
+
+ Also some code cleanup and commenting.
+
+commit 558c8d5e92ffe2cabda645ae7771f9333d9f24ce
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 12:42:05 2011 -0500
+
+ Wrote a skeleton for simple name resolver.
+
+commit deddd7c3896bc0191de131e8e5d520a00761d3b3
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 02:24:22 2011 -0500
+
+ Added new files for formula name resolver classes.
+
+commit bcd57843fb2dafc593267dbd47f53ed0b13d597c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 01:25:40 2011 -0500
+
+ Avoid returning a pointer to a temorary instance.
+
+ When returning const char* pointer, the pointer must point to a
+ live object, not a temporary.
+
+commit b7ab02261dc5c678c13b3cbb4959862d5a3fc376
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 00:41:19 2011 -0500
+
+ Added workspace and project files for slickedit.
+
+commit b53c2bdda2b1ee45f30292493fe3cf2fd8ccdf74
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 6 00:28:51 2011 -0500
+
+ Added documentation for get_opcode_name().
+
+commit 1fe8e3536e4bbe6e02660f64b7ccdcfc33f9747b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 5 23:58:14 2011 -0500
+
+ In-line comments.
+
+commit 8a465d59a0ff862b1e0ff0fdeaba9b9a877f359f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 5 23:54:18 2011 -0500
+
+ Fixed a typo.
+
+commit 0aacf3391bd9d2b1fbb6d5ead3af294d02c0d0f9
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Nov 11 17:30:59 2010 -0500
+
+ Removed unnecessary header includes.
+
+commit 15a6fabd6dc5c80b417bc0f7b8baa994e964975a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Sep 29 17:32:42 2010 -0400
+
+ Another place where I forgot to remove boost/unordered_set.hpp
+
+commit 14d8165b40ff1efef57fc93c694496878be21da0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Sep 29 17:30:19 2010 -0400
+
+ Forgot to remove #include <boost/unordered_set.hpp>.
+
+commit 43da20b81263d8b085a3fd6142be97f1f482b109
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Sep 29 13:14:35 2010 -0400
+
+ Skip boost >= 1.36 and boost::unordered check when the hash compat is ON.
+
+commit 9c4f1b689fcb0599a695ea4b813ecd9ada8c63cc
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Sep 29 12:54:36 2010 -0400
+
+ Added --with-hash-container-compat configure switch to use std::hash_foo.
+
+ Without this switch, ixion uses boost::unordered_*. With this switch
+ it expects to find std::hash_* instead.
+
+commit 06337dc63574268e91d28d214a34a5940347a13a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Sep 29 12:12:56 2010 -0400
+
+ Added compatibility layer for hash containers.
+
+ Define _IXION_HASH_CONTAINER_COMPAT compiler macro to use
+
+ ::std::hash_map
+ ::std::hash_set
+
+ instead of
+
+ ::boost::unordered_map
+ ::boost::unordered_set
+
+commit 76bc0d08b8b89093bb8e8ee0b4a8a4207698b716
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Sep 20 07:58:16 2010 -0400
+
+ Some fix on const ref argument passing.
+
+ Avoid unnecessary copying of string instance in constructor.
+ Let's stick with const foo_type& foo instead of foo_type const& foo
+ coding style.
+
+commit 4b1926a698c4197ced16d64d000341515ab78ed8
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Sep 20 07:48:27 2010 -0400
+
+ Simple indent fix to keep it consistent with the rest of the code.
+
+commit 8d3e01a77d081a9b3e853127a2665e6f09e4d6c1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Sep 20 07:47:27 2010 -0400
+
+ Adopted the new file structure.
+
+commit ea95cc76d4fede584e13ab79d1233a6437994480
+Author: Cédric Bosdonnat <cedricbosdo@openoffice.org>
+Date: Fri Sep 10 16:41:44 2010 +0200
+
+ Added example file for the calculations tests
+
+commit fb634c83b58da8f8d8121244daf9e34000da85e3
+Author: Cédric Bosdonnat <cedricbosdo@openoffice.org>
+Date: Fri Sep 10 16:40:03 2010 +0200
+
+ Added SUM function and implemented MIN and AVERAGE
+
+commit 981c3cf518d6296275063b862cedd130fe3ebcf4
+Author: Cédric Bosdonnat <cedricbosdo@openoffice.org>
+Date: Thu Sep 9 14:01:07 2010 +0200
+
+ Forgot to add the makefile.mk to the distribution
+
+commit 6d098b745a06a36cc7dbfc166b19d8fd9ba67a0e
+Author: Cédric Bosdonnat <cedricbosdo@openoffice.org>
+Date: Thu Sep 9 13:52:28 2010 +0200
+
+ Removed the use of -std=c++0x and switch to boost
+
+commit 9b0b525b4e35868b9aa344eede11b5d88cb15098
+Author: Cédric Bosdonnat <cedricbosdo@openoffice.org>
+Date: Thu Sep 9 13:49:03 2010 +0200
+
+ Added dmake script for integration in OOo
+
+commit c0d3bcfd532b0f2558e2964085e534bf6e19c66e
+Author: Cédric Bosdonnat <cedricbosdo@openoffice.org>
+Date: Wed Sep 8 18:08:01 2010 +0200
+
+ Possibility to ignore unresolved names in formula parser
+
+ Added a mode to the formula parser to create an unresolved_ref_token for
+ the unresolved names instead of failing. The default behaviour is the
+ previous one: fail when the name isn't resolved.
+
+commit a9c513e2eda26de6501f026fc83fe14fbb8167ac
+Author: Cédric Bosdonnat <cedricbosdo@openoffice.org>
+Date: Tue Sep 7 16:18:11 2010 +0200
+
+ Some packaging improvements
+
+ * Changed version to 0.2.0 as this is a first release
+ * Automaticaly generate ChangeLog for make dist
+ * add the .pc.in file to the dist
+
+commit c554a35fcea10e7c0365fedd7dd0999513509436
+Author: Fridrich Å trba <fridrich.strba@bluewin.ch>
+Date: Tue Sep 7 15:56:12 2010 +0200
+
+ Make libixion build as shared library on windows and make the detection of boost libraries to use the boost.m4 from http://github.com/tsuna/boost.m4/raw/master/build-aux/boost.m4
+
+commit 067af9f41a1402e12c0170dde8b4936220f815a2
+Author: Cédric Bosdonnat <cedricbosdo@openoffice.org>
+Date: Tue Sep 7 13:57:50 2010 +0200
+
+ Automated the test running
+
+commit 0c0fff479235fd37a60c2b3ab642e4b67dc6c05c
+Author: Cédric Bosdonnat <cedricbosdo@openoffice.org>
+Date: Tue Sep 7 12:44:29 2010 +0200
+
+ Extracted a library and added use of autotools
+
+commit f98d1516ed96dce98846297b7df61614423e5c91
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jul 12 22:30:31 2010 -0400
+
+ Code cleanup.
+
+commit 3fb0116319c775a9e811c2bbb714d1de45b30e89
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jul 12 21:54:11 2010 -0400
+
+ Fixed a serious bug in depth_first_search.
+
+ index to cell node mapping was entirely wrong! The fact that the
+ formula cell dependency worked correctly was entirely pure luck.
+
+commit 8433d9fe2e5cd06abe7d81490daf2ce6e8a91350
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jul 12 20:45:32 2010 -0400
+
+ Done parsing sort input and run depth first search.
+
+ The result is incorrect. I need to look into this.
+
+commit a82c262b3bc8c2b431b7b02ed41aaa19bd4c5f0d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jul 12 19:04:40 2010 -0400
+
+ More work on sort input parsing.
+
+commit 6c73ac1ddfedccce4f965394d870ecbc3a2a2459
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jul 12 16:47:51 2010 -0400
+
+ Load file content into memory.
+
+commit a8d09cb063f99db5e235a9cfada3ecae1eb0e93f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jul 12 16:32:45 2010 -0400
+
+ Added skeleton for sort input parser.
+
+commit 14288ee57a0f2a8685d3da144c266e7cc996326d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jul 12 15:29:10 2010 -0400
+
+ Use templatized depend_set to keep track of dependencies.
+
+commit c46b243b35a5ddf35258036907252250a210a257
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jul 12 14:18:15 2010 -0400
+
+ Removed depth_first_search::cell_handler base class, in favor of using template's typename.
+
+commit 1ca3fd7dd8e2831bfc5cdc6ff931b47b3da82afb
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jul 12 13:21:48 2010 -0400
+
+ Removed code relevant to printing dot script code.
+
+commit ce1193e301a7fe318437b4c0b28075d0a56fd21e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jul 12 13:12:43 2010 -0400
+
+ Fully templatized depth_first_search.
+
+commit b0445a752b41bd59ba965ddb09a2329059ea94f4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jul 9 23:31:50 2010 -0400
+
+ Replaced all uses of base_cell with typedef'ed value_type inside depth_first_search.
+
+ This is in preparation for templatizing depth_first_search.
+
+commit 4d19f5b366cd62b4a8b48f061d2639cb4527c612
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jul 9 23:22:17 2010 -0400
+
+ Fixed indentation.
+
+commit ec079a9d4482a14018190114b262c72583c7b716
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jul 9 23:19:55 2010 -0400
+
+ Let's not use const base_cell* in depth_first_search.
+
+commit d3dbd2e210c9c4b2802e9c6f275302ddd97ad3c8
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jul 9 23:07:16 2010 -0400
+
+ More work on making depth_first_search independent of depends_tracker.
+
+commit eee5b59f9a6d813683011493a6105a0fcfad1a83
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jul 9 22:40:26 2010 -0400
+
+ Always use base_cell type to represent cells inside depends_tracker.
+
+commit 48a2dfa7d982d34cc205414161fd0867bfb0b01d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jul 9 20:22:32 2010 -0400
+
+ More on sorter.
+
+commit 7ce5248673dbb08af9d0b46bed99241a5094246a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jul 9 19:54:29 2010 -0400
+
+ Removed unnecessary parens from the return statements.
+
+commit 82b05d8766c2fe6bc56370cb5f194c422cd9630e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jul 9 19:31:52 2010 -0400
+
+ A bug in Makefile...
+
+commit 4223307a000e06887aa7d835be33e51d626f8b4e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jul 9 18:01:28 2010 -0400
+
+ Added ixion-sorter executable and its stub entry.
+
+commit 51d3b363f373fb9ea7de772e081f2cc347b2e422
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jul 9 17:55:55 2010 -0400
+
+ Renamed main.cpp to ixion_parser.cpp.
+
+commit 68ff1f23ffd8d27572e68e59a22da25074a26257
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jun 21 20:04:57 2010 -0400
+
+ Some files I used for illustration in my blog post.
+
+commit b275e90361833ce920b1088235a635babb79ecde
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jun 21 14:41:25 2010 -0400
+
+ Added graphbiz file for test case 01.
+
+commit a952fdf4ebfbd762f321a69d152248ac4fa2a757
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jun 21 11:17:31 2010 -0400
+
+ Fix a typo.
+
+commit 532f84f8640a8a296236be55de856260cdf7a552
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jun 21 11:10:23 2010 -0400
+
+ Tweaked the help text for the --thread, -t option.
+
+commit 067287bf5dee2f72aaec25e140a2c8006614a9d4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jun 21 00:39:30 2010 -0400
+
+ Put another global function into the global class space as its static method.
+
+commit d5224c34cc98a2ef901b335073f7bef2232ff689
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 20 20:43:35 2010 -0400
+
+ Better wording for dirty_cells_t.
+
+commit a19e3f512b62c62c40e524a0298676a835d3d4d1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 20 20:40:35 2010 -0400
+
+ Moved sleep() into global class space.
+
+ Let's use the global class as a placeholder for all platform dependent
+ calls.
+
+commit a84fee70f8e696cdd844e6c35500b7bb66ad00ec
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 20 20:26:38 2010 -0400
+
+ Moved get_current_time() into global class space.
+
+commit 4eff75672d565ccbc2a2f259ad0ced834f918c8c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 20 20:20:51 2010 -0400
+
+ Removed thread_test.cpp. I don't need it any more.
+
+commit 5f70c4fbef99f133da385dd502d3e47249593af0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 20 18:09:34 2010 -0400
+
+ Moved the header include line.
+
+commit 31dbacc23f8cb30248a4d06fcfa10b97a770b400
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 20 18:06:59 2010 -0400
+
+ Always use boost::program_options, and remove the getopt code entirely.
+
+commit e12126f563a39ad476bf040cf33fa2d56b4562e9
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 20 18:02:46 2010 -0400
+
+ Fix a build break when getopt is used.
+
+commit 023693ec1a652a405d36d5843eff69bf47e338a6
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 20 17:54:03 2010 -0400
+
+ More on formatting the help output.
+
+commit 81e6031e73d28440e4c2f2d82e3d81a5956afc84
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 20 17:38:36 2010 -0400
+
+ Use boost::program_options to parse command line options.
+
+commit 54e02d8b1887006b9e091e820e598c597ae16d8d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 20 01:10:49 2010 -0400
+
+ Make it buildable on Windows, by defining WIN32.
+
+commit 032780b7284b5acfad9a7a7df4e1e7b66dcdc1bd
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 20 01:09:19 2010 -0400
+
+ Additional re-calculation test.
+
+commit e16fe8d751777cca43c8589be2ead35f0200aa4b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jun 18 21:08:35 2010 -0400
+
+ Move all function objects near the top of the file.
+
+commit ae09653ac14a7c910420ef5567940c94a80da87b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jun 18 20:32:21 2010 -0400
+
+ Re-calculate only dirty cells.
+
+commit 63bd7a9c970668cbf6a6408a8f5fe76659d379c5
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jun 18 19:30:51 2010 -0400
+
+ Calculate only dirty cells.
+
+commit 75788f00bc10634b57ee30ed3672c1e39e565538
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jun 18 17:33:46 2010 -0400
+
+ Have calc() take the list of recalc cells as an argument.
+
+commit f6a50e6757ef956ce767987ba8bef6771f26a885
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jun 18 17:20:22 2010 -0400
+
+ Have lexer token's print() return std::string instead of c string.
+
+commit 909ee5cceb439866a7f465bee0dc8349ae0ae70c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jun 18 15:15:55 2010 -0400
+
+ Register listener cells when converting lexer tokens to formula tokens.
+
+commit 3ae1d567d0fd5bfd020631aa4e8fff4d0e43c57c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jun 18 09:50:40 2010 -0400
+
+ Check the re-calculation results.
+
+commit 0a8fc2da4f7cc11f33aea65bc5ad0c76b4ff4e26
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jun 18 00:22:27 2010 -0400
+
+ Removed unused header includes.
+
+commit 7c2f4fed209e0ac19d15ab1a97a00aadbe239c69
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Jun 18 00:18:28 2010 -0400
+
+ Removed unused stack printer.
+
+commit 7856bd5666fcf438540528b9b8d70bd27ce5d67d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 23:53:25 2010 -0400
+
+ Removed parse_mode_input() function, which no longer makes sense.
+
+commit f4e9fd855edd80afc68845c992ddcbc416cc1d3f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 23:47:32 2010 -0400
+
+ Combined two near identical functions into one.
+
+commit f0df9f87f51d7a2187f742d66a72cce0e756d1a1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 23:41:44 2010 -0400
+
+ add_listener() sounds better.
+
+commit f9f749bc329e33446c2336caab8715bbee33dfe7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 23:36:19 2010 -0400
+
+ It's actually the base_cell that needs to keep track of listening formula cells.
+
+commit ed02117bca6c02bc365470d486df8067c767424d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 23:14:25 2010 -0400
+
+ Formula cells need to keep track of listening cells.
+
+commit bd2764c6a8f1c0935f6599b8b378e7bf52e975fb
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 21:54:39 2010 -0400
+
+ Fixed a bug in lexer.
+
+commit 55ca6694b34c43e5abe331809774575decac2d2a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 21:33:09 2010 -0400
+
+ Parse fractional numbers correctly.
+
+commit 717009f03600812c29817332b7fa90a1a891eeb4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 21:11:47 2010 -0400
+
+ Reworked lexer for efficiency.
+
+commit 1b476e907a704be1b496253d015f21288c5fda86
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 19:35:25 2010 -0400
+
+ Use mem_str_buf in the lexer code for efficiency.
+
+commit 5448c756ead98a98e046e0fa7faa550ccd3ea3ef
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 18:16:58 2010 -0400
+
+ Started working on parsing fractional numbers. To be continued.
+
+commit 6f4e25430f4ac36c537506e951cfc8a6af2a0991
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 18:02:10 2010 -0400
+
+ Added appropriate commands to all test documents.
+
+commit 48de79afa718d4edfaf73573fad6269a9ba0deb5
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 17:53:11 2010 -0400
+
+ Clear the parse data only once after switching to edit mode.
+
+commit 8b05a4129a8c6ba79b2cab515ed70222ccfe8181
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 17:39:55 2010 -0400
+
+ Reset global data for thread control before performing threaded calculation.
+
+ Recalc failed because I forgot to reset global thread control data before
+ performing recalculation.
+
+commit 98a48fce23d56e63b62b2fc025a2973dd9f19a34
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 16:42:35 2010 -0400
+
+ Make cell pointer name map globally accessible.
+
+commit f07207f208758ad4e5a3f34bdb0c8342dd89fbf1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 15:15:27 2010 -0400
+
+ Used typedef'ed name.
+
+commit d23ee9605d01642794fe5b4da8d554f5cc8820c5
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 14:34:30 2010 -0400
+
+ A little code cleanup.
+
+commit aeb5dc5f7d6fd8136cbd77b83340756db085f233
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 14:23:53 2010 -0400
+
+ mode-init -> mode init, mode-result -> mode result etc.
+
+ Let's make the mode command its own command and have it take one
+ argument to switch modes.
+
+commit 4ccdc9b5fe43b578fda3ce9738e2f8a47fa6f748
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 14:11:42 2010 -0400
+
+ Dynamically create cell pointer-to-name map during calculation.
+
+commit d67c8e63983751cb3d95337897a156eaa6e35c3c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 17 12:46:23 2010 -0400
+
+ Refactored the calculation code to prepare for re-calc support.
+
+commit 5b8a31c6fad59b8c449a082d7a3073ed99b3fe51
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 23:22:51 2010 -0400
+
+ formula_result class in its own files.
+
+commit 803e89a49b9cee94bfaa79cd097f06269f01f688
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 23:08:14 2010 -0400
+
+ Finally verify calculation results and throw exceptions if results differ from the expected.
+
+commit 62e6cd2d17552a617252d0c1b53c031ef8d0d44f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 21:36:37 2010 -0400
+
+ model_parser::check() method to check formula calculation results.
+
+commit c27c9d7475343bbfbfd2fe14d617a97f6333f00b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 21:25:05 2010 -0400
+
+ Use formula_result to cache result instead of formula_cell::result_cache.
+
+commit 1da88470f9ec5539606f697cc006429f43d4ae5f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 21:08:26 2010 -0400
+
+ Fix a build break.
+
+commit ae44d9338c175b1a786a28b61b5c510f6c84b4a7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 20:38:57 2010 -0400
+
+ Parse error results.
+
+commit aca608083f100b2d39621b7271e893979beb0a75
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 19:55:04 2010 -0400
+
+ mem_str_buf in its own files.
+
+commit 5d7a5797a908a21ed7162fce7dae2e7477b11413
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 19:36:20 2010 -0400
+
+ More on parsing formula results.
+
+commit c9af4839b0e7b7b625653f35274b83ffdaa83bed
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 17:22:38 2010 -0400
+
+ Empty parse_result call, to be completed later.
+
+commit 0b65699ce7bd3227e24640b4d7dad6ce9874cda9
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 17:10:16 2010 -0400
+
+ Add error data member to formula_result.
+
+commit f17b00eef749b4bc5ee452f280b74fd1153e0e1e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 16:47:20 2010 -0400
+
+ Refactored model_parser to support different parse modes.
+
+commit 756c1afa1ab318736ac515993af0748f91c04a4d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 15:08:54 2010 -0400
+
+ More on model parser change.
+
+commit 497dc2d598b9d0315370ab11cb2120842c8a3665
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 14:01:46 2010 -0400
+
+ Remove unused data member and methods.
+
+commit 453e048c54f32ba08498a7e9ac45b41c8c2d0383
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 12:34:27 2010 -0400
+
+ A little cleanup.
+
+commit 1913efa01ea2bad82fde9f25d0fa1faa82e66ba9
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 12:15:22 2010 -0400
+
+ Perform full calculation during parsing of the model input file.
+
+commit b88eda8081397f1674a3229fe7fb16609f0892c6
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 16 10:02:57 2010 -0400
+
+ Modified help output.
+
+commit f72ccea3856ba139b90290124c292ee855ead101
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 23:14:51 2010 -0400
+
+ More on model input parsing.
+
+ Pick up commands. When a line begins with a '%', it contains a
+ command name.
+
+commit 707360c5288a5b6825002d992066fa179025db5f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 22:05:24 2010 -0400
+
+ More efficient parsing of model input files.
+
+ Load the entire content of model input file into memory and use char
+ pointer to keep track of current string buffer. It's much faster
+ this way.
+
+commit 65a9510d373a77eb7f67bc6b451d357c86511530
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 20:29:55 2010 -0400
+
+ Use std::string instead of vector<char>.
+
+commit f338aef1d116f50c22418ae77655711757d35135
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 18:22:26 2010 -0400
+
+ Moved inputparser.?pp to model_parser.?pp.
+
+commit 22c1fbf10e15afb79eeb6416fee1f6ef165190aa
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 17:20:22 2010 -0400
+
+ More javadoc comment etc.
+
+commit 78ce47e041c4ce25f66ab118b7ed9f8ba820f542
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 16:45:10 2010 -0400
+
+ Display the number of threads specified.
+
+commit 6da385b9810fdd6a2671bd92e13c82b24c5c115d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 16:43:11 2010 -0400
+
+ Add ability to specify number of threads at run-time.
+
+commit 5a8e737d482c51fb189dd0742c7415bb4a3366b5
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 14:07:31 2010 -0400
+
+ is_circular_safe() should be a private method.
+
+commit 2aff1ee49040c73e4ede494f763846fe69df9390
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 13:57:37 2010 -0400
+
+ Javadoc comments for some methods.
+
+commit 43b85ce5165f400bb0ef731a74ecf15ca9748c14
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 13:47:03 2010 -0400
+
+ Fixed incorrect mutexing of the interpret() method.
+
+ It was actually not locking the mutex at all during cell interpretation!
+
+commit 1f26e5cc6c91ebed234d5e25ed757a99614530ae
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 13:36:00 2010 -0400
+
+ New test file for testing concurrency.
+
+ This file is much simpler than the 05 file.
+
+commit e82ba1d707d672cf3f6810564d92107e105315ba
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 13:33:35 2010 -0400
+
+ More on fixing synchronization problem. Now the results are calculated correctly.
+
+commit 4134714a86a95f351a37e4082dee3787df6167c1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 12:20:15 2010 -0400
+
+ Removed unused class.
+
+commit b694205f79979b737adbf5f1f8235bb0c1f0a719
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 12:19:20 2010 -0400
+
+ A little cleanup.
+
+commit d647c54da6ab5921500448ac481444727f7054ef
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 12:11:34 2010 -0400
+
+ Improved debug statement generation to make each output set atomic, and fixed one synchronization error which caused incorrect results.
+
+commit 8cd7f407943824abd048a23f1b3f2aedc7880814
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 00:56:38 2010 -0400
+
+ Cleaned up the output format a little to make it easier to read.
+
+commit 322beba25b08df939c42dfed9c0188daed80f1e4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Jun 15 00:32:14 2010 -0400
+
+ Fixed a single-thread calculation.
+
+commit 2573b78fb633b76b4ee56ed1aa6905ca6ea1546b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jun 14 21:52:57 2010 -0400
+
+ Display the number of CPUs.
+
+commit 40eeb92a2a46820639d38d2cd074a41463164274
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jun 14 20:09:53 2010 -0400
+
+ Build fix & disabled debug statements for the formula cell code.
+
+commit f27b4950bd658a76de0b20ec0b5bacfaf62543ea
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jun 14 18:14:26 2010 -0400
+
+ Interpret cells using threads for real, after circular dependencies have been detected.
+
+commit e36752329054114deb6e341e4f4327e23fbd00ad
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jun 14 16:49:00 2010 -0400
+
+ Started working on circular dependency detection in threaded mode.
+
+commit 3802a2c3a1a0eedc14bd2249ef8f2545069891fa
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Jun 14 11:25:36 2010 -0400
+
+ Print total duration for each test case.
+
+commit d3dff7900d3f23817d9555874075967ce20e0c29
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 13 16:52:51 2010 -0400
+
+ Display if the process is using threads.
+
+commit 644317629c67a3e58ae23e7c95ebb9c683f1b886
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 13 16:42:55 2010 -0400
+
+ -t to toggle using threads.
+
+commit 1aa95963e23dfaf902f4ab61a01e3a0bdff4d822
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 13 12:02:47 2010 -0400
+
+ Move all debug statements related to interpretation to a single place for atomic output for each cell.
+
+commit 048ad29ecbea8fc623d4e08e79374f121b04340b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Jun 13 11:45:29 2010 -0400
+
+ Fixed a build break.
+
+commit 1dc70f42c72612d06719100324db15c519063823
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 3 22:38:28 2010 -0400
+
+ Disable debug statements from the input parser code.
+
+commit 9424af5e9737c601bd41ec9977d093123f8889c1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 3 22:23:54 2010 -0400
+
+ Disable debug statements from formula parser.
+
+commit ad0ece1ec90074c88063774a4d444d6d88a05661
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 3 22:13:45 2010 -0400
+
+ More on interpreter adjustment for threads.
+
+commit a12c7814deb823eafaa6f440f0dd0d5d96b95936
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 3 19:30:13 2010 -0400
+
+ Introduce --use-thread command line option to toggle use of threads at run-time.
+
+commit 1129162b1bb695aa46a32cbace539429bf650bb4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Jun 3 19:09:47 2010 -0400
+
+ Use cell_queue_manager to calculate cells with threads.
+
+commit 76fd0d0017b4d007bc254cf420db0ffc42366a7f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 2 23:59:01 2010 -0400
+
+ Fixed cell_queue_manager to properly call formula_cell::interpret().
+
+commit 87bcb99a4d66e41e5aa4374c7897248d9a9cf89a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 2 23:41:20 2010 -0400
+
+ Disable debug statements in formula_cell.
+
+commit d8ffb20e2a906154f83abf3edf63609382c7b031
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 2 23:34:52 2010 -0400
+
+ Extracted method for code cleanup.
+
+commit bd48bec9bd9cc8130cbadf54658081944096f8c1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 2 23:25:55 2010 -0400
+
+ Synchronize formula cell calculation and result retrieval.
+
+commit e8b0abe7ad4a04ff503b3126bb4bae11e680146b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 2 22:01:55 2010 -0400
+
+ Added synchronized_data template by Andrew Williams, added formula_cell::interpret() method.
+
+commit eb64227c6c7298b41fbf7626dcb56b85f3b50289
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 2 00:45:18 2010 -0400
+
+ Hook the cell_queue_manager methods to the actual implementation calls.
+
+commit a3ae8d368263110b206fbfd43d24b720cc49d7fd
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 2 00:28:13 2010 -0400
+
+ Copied the thread queue manager code from misc/thread_test.cpp, and got it to compile.
+
+commit 6716407d3638e733e9f639b6609626ed61078561
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Jun 2 00:03:45 2010 -0400
+
+ Added skeleton files for the new cell_queue_manager class.
+
+commit e8a9b7910b6881dc6e382b6762c7989636fd4e60
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon May 31 22:54:21 2010 -0400
+
+ Use struct to bind relevant members together, with mutex.
+
+commit 2ea42c9ea83532e527ec6990e306cdfca63c2a2d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon May 31 22:17:31 2010 -0400
+
+ Use a single enum data member to define actions, instead of using multiple boolean values.
+
+commit a693e6b3694d30cab8db5a5161d38433b156b0a2
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 26 23:43:36 2010 -0400
+
+ Code cleanup.
+
+commit 7c5fbab07ad0b220c30bbae0be8d76601073dbda
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 26 23:36:27 2010 -0400
+
+ I still need to check for empty cell container inside the inner while loop.
+
+commit 0929dd436674ac57de78946c746110ae91f0984c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 26 23:07:51 2010 -0400
+
+ Have the worker threads register their idle status. This method seems more robust.
+
+commit 1312c2a10c87bd11c5fa673f4111529a3eaead16
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue May 25 23:22:00 2010 -0400
+
+ Use worker threads to interpret cells. There are still some synchronization issues.
+
+commit 3daa85f35e703a80abf8cb72e33c2fe3a6ed9cb0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue May 25 21:22:55 2010 -0400
+
+ Renamed some symbols & added javadoc.
+
+commit 057fa090cbc4df756d66ed508f44cb8383d0337c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue May 25 01:10:41 2010 -0400
+
+ Have the manager thread spawn worker threads of arbitrary count.
+
+commit 57d10121638e2c8b7b7a683d94212911eab4d52a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 23 22:33:48 2010 -0400
+
+ Main thread should wait until the queue thread becomes ready.
+
+commit 21ddfcc76f0982569afed9ba2bea660298e30857
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 23 22:05:12 2010 -0400
+
+ More on thread queue.
+
+commit 897479a200312f3907fc0e53e9377918decca323
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 23 01:42:53 2010 -0400
+
+ More on thread queue.
+
+commit 2df52a8c37450969b9f31ae412f860bac124a057
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 22 20:39:31 2010 -0400
+
+ Made 'make' to run the test directly.
+
+commit 5837c82533ab626fb75858e5fb1f2cf664a53da7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 19 22:59:13 2010 -0400
+
+ Use boost.thread instead of pthread.
+
+commit 7a4339edb6a7e3f7ddc726c3294c03d3dac2287d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 19 20:03:02 2010 -0400
+
+ Practice code for posix threads.
+
+commit afc94fa8ea66bfb3b18817bda2c77804e8e61df4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon May 17 00:32:11 2010 -0400
+
+ Now, interpret cells during DFS for real.
+
+commit dc80b36e79520a574bf33310d4e64cd133b8ee50
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon May 17 00:24:53 2010 -0400
+
+ Use handler to handle black cells during DFS.
+
+commit 70afb21c76bf7042ed727cbf2ad8c81c33738703
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon May 17 00:14:55 2010 -0400
+
+ More on topological sort rework.
+
+commit f746a971d0f376fe20058628aaaf02537844f7b5
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 16 23:27:00 2010 -0400
+
+ Added hook for interpreting cells during topological sort.
+
+commit 1404ad1ccfb4cb28fabd61e13a9cf4570a36d4fc
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 16 22:48:43 2010 -0400
+
+ Added WAIT() function to test for parallel formula computation.
+
+commit b81179725c96f7723025ecde1865ee0fe5f7d0a7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 12 21:22:10 2010 -0400
+
+ Turned formula_result into a class with proper encapsulation of its data members.
+
+commit b6f7c52503281636136b07191fc24dc3c4fa7c10
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 12 20:29:58 2010 -0400
+
+ Updated comment.
+
+commit f3111fab9f4ea0baacfb2158685d44f542113703
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed May 12 20:18:57 2010 -0400
+
+ Added formula_result struct to store a dual-type formula result: numeric or textural.
+
+commit f92ae45eda6e2981bd9e21937d3bb04b5203d943
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 9 16:35:56 2010 -0400
+
+ Make sure to set the token position correctly after processing functions.
+
+commit 700b14ee3c94bc0ef6ede68b4080bda16874b631
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 9 16:33:00 2010 -0400
+
+ TODO comment.
+
+commit 1a634c735e69c0eaa1b891cea6d90681b5f01f79
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 9 16:24:07 2010 -0400
+
+ formula_functions::interpret() as the central point of function interpretations.
+
+commit 1ebd25c9775bd2d90e50e014c4a78c9c82f770a3
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 9 16:12:47 2010 -0400
+
+ Use std::string instead of const char* to pass lexer token prinouts around.
+
+ By using const char*, sometimes token printouts wouldn't get returned properly.
+
+commit 40affcae5a35ec6e2bfce493ed2d95e3edbe43f9
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 9 15:57:36 2010 -0400
+
+ New files for formula function interpretations.
+
+commit 4478bd9f407b4fc685dcc04244eaadb693764cec
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 9 15:57:03 2010 -0400
+
+ New test model for function interpretation.
+
+commit 23bcbf73e9c7605998905b600121745911c8347d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 9 15:56:24 2010 -0400
+
+ Interpret functions during calculation.
+
+commit b65ebbb2813f57f076956d94dd2dafe433731791
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun May 9 14:54:07 2010 -0400
+
+ Pick up built-in function names and create function tokens.
+
+ For now, I only check for MIN, MAX and AVERAGE function names.
+
+commit 1d7700bb229597c3499ec695e0013e8db1118436
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 8 17:54:31 2010 -0400
+
+ Print error message on reference error during lexer token parsing.
+
+commit 6fb7467570b2e39004809e89d9b36581178e3609
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 8 17:49:33 2010 -0400
+
+ Print ',' for separator tokens.
+
+commit 8760c8cf61c7bbe9d629309e589601b908dab992
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 8 17:41:35 2010 -0400
+
+ Check for empty tokens before interpreting.
+
+commit 3399450bff16597b035ca5026c58284fc398f792
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 8 17:32:30 2010 -0400
+
+ Renamed model input files to prefix them with numbers.
+
+commit c53af55339aca777a350930a7b8811851e08db06
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 8 17:30:46 2010 -0400
+
+ Modified cli interface to allow parsing multiple model files.
+
+commit 1ad6df0151533ea494596fb270afc26a1580572e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 8 17:21:21 2010 -0400
+
+ Exec name to ixion-parser, and use -O2 for compiler optimization.
+
+commit 339b6c38701873fad06e913f337e477bc65c20af
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat May 8 17:15:21 2010 -0400
+
+ Added slickedit workspace files.
+
+commit a98cba5de3393c809ff0c32aa1dfca306fc8e9ad
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Apr 29 00:01:41 2010 -0400
+
+ Define error type for invalid expression.
+
+commit 5502473d0bd8ad69ec45dcff051fb9ebbee8755e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Apr 28 23:57:12 2010 -0400
+
+ Reset values in the interpreter before each interpretation.
+
+commit b01c4090244e4a22c3eebac6d8dded0653c1fc86
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Apr 28 23:54:55 2010 -0400
+
+ Handle division by zero condition, and store error condition with formula cells.
+
+commit 3d7dbf2bd1ee2951758dfa5a9641cbb0be4a73d7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Apr 28 23:30:36 2010 -0400
+
+ Add cases for self-reference (illegal) and division by zero (error).
+
+commit 73310ea07021783bc62164f9e182953fd2666f04
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Apr 28 23:26:59 2010 -0400
+
+ Add more example of circular dependency.
+
+commit 29c381e387ff678f221668f6e358cf4c3e7442a2
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 27 23:48:29 2010 -0400
+
+ Added two more cells that are not circular dependent.
+
+commit f77aff4a0159c8a5158eb5fab0126085437d1d6b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 27 23:44:17 2010 -0400
+
+ Detect circular dependency conditions and flag #REF! for such cases.
+
+commit eed92606bd03e2d7bd3f562a1a346c4969109fa8
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 27 23:29:57 2010 -0400
+
+ Added test model for detecting circular dependencies.
+
+commit d1ac9b0902f747ca8f2657082c0c6f86b703a05b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 18 21:55:17 2010 -0400
+
+ Return expression immediately when the next token is neither + nor -.
+
+commit 4abf42f3f5aca5baa5d37b9e11e942d5280ba435
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 18 20:36:48 2010 -0400
+
+ Removed multiply_op() too.
+
+commit 0b4cb9684e648371ea811330176cc5f21ec3121a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 18 20:32:54 2010 -0400
+
+ Removed plus_op().
+
+commit c4d177fbb2371e43b6521bbae89cd34f306dd822
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 18 14:31:03 2010 -0400
+
+ Fixed the definition of expressions to get the order of precedence correctly.
+
+commit 98577c3bb9c45185ed7c7f01d112f7ac6986ac86
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 18 12:13:14 2010 -0400
+
+ Print cell names instead of pointers during expression parsing.
+
+commit 4cc03283993b2d8bf21af0b08bbca872f741f584
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Apr 18 12:05:24 2010 -0400
+
+ Moved some typedef's to global.hpp.
+
+commit a2bc38504bdc0e2cb1b957d6dc997f3a18df7492
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 22:29:15 2010 -0400
+
+ Store calculation results with the formula cells, and use them when referenced.
+
+commit c101dc10e51183cd6af4e6737fb159d69d0d45b4
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 21:21:53 2010 -0400
+
+ Removed unused data member.
+
+commit f1bf55a1423720b52355f31bd46f4726efff8742
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 20:51:48 2010 -0400
+
+ A little cleanup.
+
+commit d836c03bb5de2f9c38988f5c6a1eabe2201499fe
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 20:43:21 2010 -0400
+
+ Beautify interpreted expression.
+
+commit 22defc6b176d4a38ecef3684e3c0d9fb8bc7ee9b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 20:37:53 2010 -0400
+
+ Actually calculate result of expression interpretation.
+
+commit d96ce74691d98563c9f6636852ddcd3182d9a50e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 11:57:16 2010 -0400
+
+ Handle factors beginning with '+' or '-'.
+
+commit c26b315c198852db6cfc813ac8e6c342787723c0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 11:18:13 2010 -0400
+
+ Minor stuff.
+
+commit 2c9db67f2bc78aecde1ddcae8493dd47246c8801
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 11:06:44 2010 -0400
+
+ Another test case for parens.
+
+commit f3e691e8d81466f700d23e4795733a2ca0fd8930
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 11:04:08 2010 -0400
+
+ A little cleanup
+
+commit 12a23936a37749bc343a5acaa713f6f39d1e9f27
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 11:03:16 2010 -0400
+
+ Use switch instead of nested if's.
+
+commit e49d38312d9e48dca49c48a686d484220ecea6e9
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 11:01:03 2010 -0400
+
+ Break factor() into paren(), variable() and constant().
+
+commit a7966b0db0cc2bae664c94fd319569d763ef04c7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 10:54:05 2010 -0400
+
+ Removed unused methods.
+
+commit 64fb5df44887b85d450620aa080ad117281de696
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 10:52:55 2010 -0400
+
+ Modified interpreter handler description.
+
+commit 555c3eda08cf0f49c5efecf12c9e7c62e8ee6d43
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 10:49:52 2010 -0400
+
+ Parse expressions containing parens.
+
+commit 078f006cbca7f84de67229895452ac04253565d0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 10:42:03 2010 -0400
+
+ More on parsing expressions. I can now parse simple expressions without parens.
+
+commit fd804e6baca5b36279c11bd08875e12b32ff0711
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 17 00:14:39 2010 -0400
+
+ More on parsing expressions.
+
+commit bde226a304c3c277598de6f1cade536f7f3e5fa9
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Apr 16 23:57:52 2010 -0400
+
+ More on parsing expressions.
+
+commit 4ec53e579cd14883b446563baaae5c9780cfe9f3
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Apr 16 23:39:06 2010 -0400
+
+ Started implementing expression parser.
+
+commit 2f0868da5bc113bbeb9c9aceac7111d3aa85cb3e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Apr 16 00:17:05 2010 -0400
+
+ Call formula_interpreter's interpret() on each formula cell.
+
+ At this point the interpret() method is still just a skeleton.
+
+commit 46b99f92378d8e248c09b52ec71a9c19d1b3b68b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Fri Apr 16 00:03:17 2010 -0400
+
+ Moved lexer token printing method into lexer_tokens.* files.
+
+commit 3d975ad0a132d5aa91d923b83819c300e600d173
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Apr 15 23:55:21 2010 -0400
+
+ Remove const from base_cell* where I need to.
+
+ These pointers are later used to interpret cells. So they can't be
+ const.
+
+commit bb3711f3d1ccdfba65975989436a21b68e350c11
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Apr 15 23:43:24 2010 -0400
+
+ renamed local vars to make their role clearer.
+
+commit d47fb58bff5d5d15d82b06ff6e79f62c6badda45
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Apr 15 23:10:59 2010 -0400
+
+ Added skeleton files for formula_interpreter.
+
+commit 0754e12bd7be1cbfd2a1217504041e6573aea752
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Apr 15 22:58:23 2010 -0400
+
+ print sorted cells once again.
+
+commit d18b9b6469f7e4f5eafecd9867dc0da5a4080231
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Apr 15 22:50:47 2010 -0400
+
+ blank line
+
+commit 33e3a65ca34eeacce055f714fb87751b65255bd5
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Apr 15 22:43:02 2010 -0400
+
+ Convert primitive and value tokens.
+
+commit 55031c5c3c4ad4e7b824aa3c5874eba93d33ffd1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Apr 15 22:01:27 2010 -0400
+
+ Add opcode token to use it for the primitive token types.
+
+commit b77d20fcf1ef721c018f69aed840e925c0da121c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Apr 15 01:07:48 2010 -0400
+
+ Finally print something in formula_parser::print_tokens().
+
+commit 2e27782663f08bc70f6fece40d5c543e75241cc0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Apr 15 00:29:12 2010 -0400
+
+ Call print_tokens() to print formula tokens.
+
+commit 16975b83de19cac311d32c6aeb14fec9cdde9e25
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Apr 14 22:41:21 2010 -0400
+
+ renamed tokens.* to lexer_tokens.*
+
+commit e92af3953590c8d05a5caabf7213e5877a20b951
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Apr 14 22:38:21 2010 -0400
+
+ renamed a bunch of lexer classes etc. to have them start with lexer_.
+
+commit 62e934a9f6a5af92d98eb256d59aaccb0d56fe1c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Apr 14 22:34:11 2010 -0400
+
+ Add print_tokens() skeleton.
+
+commit 0a165252649605094ea67d8d76f94b25b4f22b4e
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Apr 14 22:26:29 2010 -0400
+
+ Commented out debug prints for the dependency tracker code.
+
+ I now need to focus on lexer to formula token conversion.
+
+commit c2341d90acc54b3b63d15a47901804d818a5fb04
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Apr 14 22:18:34 2010 -0400
+
+ Use iterator for the for-loop, instead of array access.
+
+commit 8652b9132f34f99f8e4630bc78815e477bb5da9c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Wed Apr 14 00:03:14 2010 -0400
+
+ have topo_sort_cells() return a vector of sorted cell ptrs.
+
+commit 5f58b17fb350b51785a9cc8b36644f621f10db10
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 23:25:48 2010 -0400
+
+ prettify printout of sorted cells.
+
+commit e48cd57caeb7bc87d5368f8f68f080ba1edfa3c1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 23:21:29 2010 -0400
+
+ Make sure to process all cells, even the ones that are not formula cells.
+
+commit 1d5a2455297ffbce4ea8ea107b5d9a25cac17365
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 23:00:18 2010 -0400
+
+ Store topologically sorted cells.
+
+commit 2e90a3238cf05117017bb9b4161722047d592633
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 22:55:16 2010 -0400
+
+ a little code cleanup.
+
+commit b9b2471d6c23f4898d2a025f1ec6d37647e57601
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 22:52:27 2010 -0400
+
+ Add initialization to make the dfs repeatable.
+
+commit 27a63a53e672563c356c3eb36b8af787a212442f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 22:42:26 2010 -0400
+
+ Moved depth_first_search into its own files.
+
+commit dc64a3f724526dd97c008f3fa87c89af435f2df0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 21:25:40 2010 -0400
+
+ Move method definitions of depth_first_search out of its class declaration.
+
+commit c10fd81c51f868bddd45a15efff53cefb8d0ad9c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 20:50:12 2010 -0400
+
+ Store own cell pointer in celldata struct too.
+
+commit 525a4a1e8e3d35845fdcc93858e1f397d3dcd7a3
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 20:29:10 2010 -0400
+
+ Use celldata struct to store metadata for each cell, instead of using separate vectors.
+
+commit 340422a9447be3e7ffc6d50d90efab277b2dd4a9
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 00:53:40 2010 -0400
+
+ Print the result of the depth-first search on all cells.
+
+commit 8cf32e5fee8bd149f08a4796cb27818a41cbcdc5
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 00:46:12 2010 -0400
+
+ Const-ness.
+
+commit d4aaac828a3b58c06ba1218645669563221e961c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 00:42:24 2010 -0400
+
+ Better debug statements.
+
+commit 200dd5cff8bcea20cdee27c2c533078cab0135b3
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 00:32:44 2010 -0400
+
+ Print cell names instead of cell pointers for debugging.
+
+commit 078ee11347d135eb387fe8fb491ee88dc6a9e1e1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Tue Apr 13 00:23:29 2010 -0400
+
+ Perform depth first search on all cells.
+
+commit 798c05ec658d294128548f16436d318932d0116b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 10 22:52:41 2010 -0400
+
+ Added another cell A6 to intentionally create two roots in the dependency tree.
+
+commit b34a2ae0982cdf19087aabdd861b6c22657f6166
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Apr 10 22:39:53 2010 -0400
+
+ More description for depends_tracker class.
+
+commit e46b07ee8c4ab2f29f8823f27b0e02aeebfff850
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Mar 29 09:34:42 2010 -0400
+
+ Removed unused lines.
+
+commit af73f07ecb227524e3dbe0a1a548b64ea41b7304
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Mar 29 09:27:35 2010 -0400
+
+ More exception safe depend cell insertion.
+
+commit cd16f680f7b76d427db09f07cce03c53719a0335
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Mar 29 01:24:39 2010 -0400
+
+ Add javadoc comment
+
+commit 2961503f985e076b0925007bffd6967358089b27
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Mar 29 01:22:26 2010 -0400
+
+ Generate dot graph script to show dependency graph.
+
+commit 6c23c82da9ce5fc62064cae002cedea4ec97860a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 28 22:25:17 2010 -0400
+
+ Pass cell dependency information to the dependency tracker.
+
+commit 037126cc3f1be165030a3d711acb04fa9379ee0f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 28 21:56:29 2010 -0400
+
+ Have formula parser pick up depende cells during parsing.
+
+commit c341290c6e0e9eb9b089613a4ae7ec89977c21ae
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 28 20:08:04 2010 -0400
+
+ More on dependency tracker.
+
+commit 7c4c0912fac0ab5b5986c16bf48f3dc122605392
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 28 16:22:08 2010 -0400
+
+ Renamed some files & fixed Makefile dependencies.
+
+commit 120fdf8f7ffa23c486c71e61b7cab11f96397a00
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 28 16:16:57 2010 -0400
+
+ Updated javadoc.
+
+commit e952b6f4f3f0121f22882b387cafeb02c0551dd9
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 28 16:10:59 2010 -0400
+
+ Make sure the formula parser no longer has tokens left.
+
+commit 83bee8490320fe47747694cce8c907c437a195ad
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 28 15:54:34 2010 -0400
+
+ Transfer formula tokens from the parser to the formula cell.
+
+commit fea5addebf3191f3b9ef8926dc43e9c4ed18c4d8
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 20 21:52:03 2010 -0400
+
+ Removed compiler warnings on enum switch statements.
+
+commit 18b3aa10288bbdb60801ca69f5677fb888c7dbc6
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 20 17:33:30 2010 -0400
+
+ Initial work on formula parser. Pick up single cell references.
+
+commit e59dac8694f895d8025dd5db98b4a3326d401d82
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 20 13:03:38 2010 -0400
+
+ Added swap_tokens method.
+
+commit a21d9e4b640d0b3a669d06a14a45074bc0e66dce
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 20 12:07:00 2010 -0400
+
+ Removed in-line TODO.
+
+commit 5f83624e5c7c6cb42e386a0948cdaab6fe74c081
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 20 12:03:58 2010 -0400
+
+ Check to ensure no duplicate cell names exist before creating formula_cell instances.
+
+commit 4cfe381c1162e377231bdac3051ff20e4b2390e1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 20 11:35:26 2010 -0400
+
+ Pass the cell name map instance to formula_parser instances.
+
+commit 2610b9cfc7a3069d43515da21953e058f19da278
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 20 11:29:23 2010 -0400
+
+ The name to pointer map needs to store base_cell pointers.
+
+commit 4f17b83cd43053617e2cdee2f1ef7204aeb0a658
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 20 11:18:30 2010 -0400
+
+ Create a set of empty formula cell instances associated with their names.
+
+ We need to have the pointers to formula cells instances before converting
+ the lexer tokens to formula tokens, in order to resolve cell references
+ correctly.
+
+commit d3908e1740418980411597e3f355f00fb71b28d0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 18 19:39:26 2010 -0400
+
+ More on dependency tracker.
+
+commit 9bdb58654b887593be916b442649a6fbbf1dfeda
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 18 18:44:06 2010 -0400
+
+ Skeleton files for class dep_tracker that tracks cell dependencies.
+
+commit 8529be3e9d9296778e95280154618087c74aeb92
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 18 18:32:51 2010 -0400
+
+ More on formula parser.
+
+commit 827a6f908f861f5f04d6719e34f1b6464ad96f9d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 18 18:20:30 2010 -0400
+
+ renamed tokens_foo to lexer_tokens_foo.
+
+commit ce6fecb90f022166793a8f9e6285c1bc46067e6f
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 18 18:04:32 2010 -0400
+
+ added new files for formula tokens.
+
+ Formula tokens differ from lexer tokens, therefore should use different
+ types to represent them.
+
+commit 73912c5fd3d5472ac832ccd81c2bbeab2179bd85
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 18 17:24:51 2010 -0400
+
+ model_parser should use model_parser::cell class to record cell tokens.
+
+commit c31d0d7da3f730c3dd5fedff64905f83f9806d97
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 18 17:03:19 2010 -0400
+
+ changed oc_foo to op_foo in opcode names.
+
+commit 81a4d3651f60c50bf30f379b290cfaddd6b4bc9a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 18 16:49:40 2010 -0400
+
+ Moved code around a bit.
+
+commit b4827e8c2ba495be03016e65ca7902951bd880c7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 18 16:41:40 2010 -0400
+
+ Forgot to add virtual keyword to print().
+
+commit ac105dc506ba643f861f2f2fc19b16cc5aefc783
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 18 15:41:06 2010 -0400
+
+ Added skeletons for the new formula parser class.
+
+commit b4c7eaa177203502e0013c262ac80b5e5602c41d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 18 10:38:40 2010 -0400
+
+ A little cleanup by removing duplicated code block.
+
+commit bc05f8a4d040f9c50269c91210dc008ce2986961
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Thu Mar 18 10:22:53 2010 -0400
+
+ Handle command line arguments correctly, without throwing exceptions.
+
+commit 3ae18e277702bdaf75a9ea67e8527175badfafed
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Mon Mar 15 00:32:33 2010 -0400
+
+ Added license header to Makefile.
+
+commit 9747930f5c57ccc09fef3fc0e9e19d07b4981499
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 23:58:12 2010 -0400
+
+ print cell names
+
+commit 2a1455bd1f81d0542fdf762137da87d75fa5f858
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 23:56:10 2010 -0400
+
+ Introduced base_cell.
+
+commit 1d6560708e08755613f5f9f43cbcaa551a2cd060
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 23:43:30 2010 -0400
+
+ model_parser now stores list of formula cells.
+
+commit b1c9294ea3dc8ba7342dd95880c5c24eb4f3474c
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 23:24:29 2010 -0400
+
+ Use token class for generic opcode only tokens, and make token_base an abstract class.
+
+commit eada2f7020fdf086ea6576cc26999ae51706df7b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 20:53:24 2010 -0400
+
+ Handle parentheses.
+
+commit 479287b320918aae52f1849d0c48a2ea95e85bcd
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 20:36:31 2010 -0400
+
+ Renamed a model input file.
+
+commit a4e37526b1a614b24a205972f3fa47f48835446a
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 20:45:15 2010 -0400
+
+ More detailed token printing.
+
+commit aedaaf8302a83d952880cc929a38b486442f162d
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 20:32:30 2010 -0400
+
+ Handle string tokens.
+
+commit 4214155a129eb1195b46c842747db47add80b7c6
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 17:09:31 2010 -0400
+
+ More on tokenization.
+
+commit 240823c47586a3513036da8b950391331f4e76a1
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 16:41:14 2010 -0400
+
+ Pick up numerals as value tokens.
+
+commit 50617f3be0c29d879ec0168e184dfd4d98d095fd
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 14:46:00 2010 -0400
+
+ Track current characters as a data member.
+
+commit f48e32f5eef8faed562d28a11b81f3c34a80aebd
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 14:04:10 2010 -0400
+
+ Main loop for tokenizer.
+
+commit 0e09385326b920b3da297bbffba8d6f55b70f676
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 13:28:49 2010 -0400
+
+ Tokenize formula strings when parsing input.
+
+commit 5009653217a5586662c93c7d915c97a98acbb997
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 11:46:14 2010 -0400
+
+ Swap tokens from lexer to cell.
+
+commit 0a7eee14e61ed8468257f6108c014687e6e94b6b
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 11:39:38 2010 -0400
+
+ Added source files for global symbols.
+
+commit 4b7108df599a2feb826ce0468b3a258229f36369
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 10:49:52 2010 -0400
+
+ renamed cell to string_cell.
+
+commit 26a2a75b30e65a47699ad8a536fa6bd4a8b521a0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 10:35:54 2010 -0400
+
+ added formula lexer source files.
+
+commit f4d738d483b172e3a03993ca6a4e862b169ba8d0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 01:23:32 2010 -0500
+
+ More on model input parsing.
+
+commit 60a1ef0a5998d7722b740d69d2969ad58ced3a10
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 01:14:27 2010 -0500
+
+ Fixed parse error on model input parsing.
+
+commit 98eb994de4f13a1068ee15a2ff34afbcda24dff7
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sun Mar 14 00:41:48 2010 -0500
+
+ More on model parsing.
+
+commit be5548f6619b8dd4e102b90d4544eaa661fb9b62
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 13 23:45:41 2010 -0500
+
+ Added skeletons for cell and tokens_base.
+
+commit bd2360650d33c1bbd55e1b14204aaa79d28acf15
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 13 22:54:01 2010 -0500
+
+ Added model parser main loop.
+
+commit 97b321aff45659923e41cedb4d30414a121c4a58
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 13 22:04:37 2010 -0500
+
+ More on model parser. Added simple test input file.
+
+commit 126d859dba6e59d5b664966dec8718fc15e2a7e5
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 13 21:17:08 2010 -0500
+
+ Added main.cpp.
+
+commit 05b7c69fcc5c824cb2d6e8e5adbbb269823b66e0
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 13 20:44:46 2010 -0500
+
+ Initial skeleton for model input parser executable.
+
+commit 43747fea3ca218d60d69d03dec75ead225e70bea
+Author: Kohei Yoshida <kyoshida@novell.com>
+Date: Sat Mar 13 20:20:44 2010 -0500
+
+ Added README.