Commit Graph

44 Commits

Author SHA1 Message Date
Simon Michael
00f22819ae balance report speedup
This refactoring fixes an O(n^2) slowdown in the balance command with
large numbers of accounts. It's now speedy, and the implementation is
clearer. To facilitate this, the Account type now represents a tree of
accounts which can easily be traversed up or down (and/or flattened
into a list).

Benchmark on a 2010 macbook:

    +-------------------------------------------++--------------+------------+--------+
    |                                           || before:      | after:     |        |
    |                                           || hledger-0.18 | hledgeropt | ledger |
    +===========================================++==============+============+========+
    | -f data/100x100x10.journal     balance    ||         0.21 |       0.07 |   0.09 |
    | -f data/1000x1000x10.journal   balance    ||        10.13 |       0.47 |   0.62 |
    | -f data/1000x10000x10.journal  balance    ||        40.67 |       0.67 |   1.01 |
    | -f data/10000x1000x10.journal  balance    ||        15.01 |       3.22 |   2.36 |
    | -f data/10000x1000x10.journal  balance aa ||         4.77 |       4.40 |   2.33 |
    +-------------------------------------------++--------------+------------+--------+
2012-10-21 17:18:18 +00:00
Simon Michael
155cb0eafe web: fix compilation error with -fblaze_html_0_5 flag 2012-07-08 00:18:39 +00:00
Simon Michael
28d86aca53 web: fix excess angle bracket in add form 2012-04-01 21:07:01 +00:00
Simon Michael
25b514b721 web: fix js error breaking second use of add form (#72) 2012-04-01 21:08:30 +00:00
Simon Michael
bb131f1b8c web: add closing angle brackets which yesod 1.0 requires 2012-04-01 20:30:44 +00:00
Simon Michael
f298aac874 web: fix account balance rendering 2012-05-29 03:18:24 +00:00
Simon Michael
f35b961c86 web: update for yesod 1.0 2012-05-29 02:53:33 +00:00
Simon Michael
98274b481d more build warnings 2012-05-06 20:44:23 +00:00
Simon Michael
88f69e12e2 fix Dates exports for hledger-web 2012-04-16 17:09:27 +00:00
Simon Michael
f6f615196f web: define our own hamlet so it can be tweaked for debugging 2012-04-01 20:49:36 +00:00
Simon Michael
cfa59cc4f8 web: Hledger.Web api cleanup, haddocks 2012-04-01 20:29:10 +00:00
Simon Michael
2912a11929 web: officially drop GHC 6.12 support, fix build warnings with 7.0, 7.2, 7.4 2012-03-29 23:24:48 +00:00
Simon Michael
88212f26e8 simplify journal parser names 2012-05-09 15:34:05 +00:00
Simon Michael
e1b1b8bce8 rename Matcher to Query, simplify constructors 2012-05-16 07:12:49 +00:00
Simon Michael
a27eb7c29f more matcher -> query renaming 2012-05-16 07:37:24 +00:00
Simon Michael
c27707f578 web: bump version, upgrade to yesod 0.10 2012-03-05 07:52:36 +00:00
Simon Michael
6eb7ad28e1 refactor/beef up readJournal/readJournalFile 2012-03-23 16:21:41 +00:00
Simon Michael
48460b0130 fix missing chart regression (#72) 2012-01-03 13:00:28 +00:00
Simon Michael
03359b48d3 web: prevent flot js error which broke add form fields after adding a transaction (#72) 2012-01-03 12:14:22 +00:00
Simon Michael
7f60e3504c web: fix $ quoting 2012-01-03 10:46:39 +00:00
Simon Michael
fd22dde57b web: needed to escape literal dollar signs in hamlet templates 2012-01-02 13:19:12 +00:00
Simon Michael
015dacb0d7 web: add form should reject blank account names (#81) 2012-01-04 11:35:39 +00:00
Simon Michael
0bd7fffaf7 web: dodge a yesod-core regression breaking add form redirect (#53) 2012-01-12 15:44:32 +00:00
Simon Michael
1b834afb20 web: avoid problematic redirect after submitting the add form 2012-01-03 12:43:30 +00:00
Simon Michael
c686645fab refactor: update version number handling 2012-01-31 06:01:31 +00:00
Simon Michael
959d8a4591 web: clean up name clash with Yesod.Core 2011-10-19 19:57:12 +00:00
Simon Michael
187a7a1cc7 web: obey at least some command-line options, like --cost
Report filtering options like --period, and filter pattern arguments, are still ignored.
2011-09-14 19:53:05 +00:00
Simon Michael
4ca655b6a0 web: follow yesod file naming more closely 2011-09-12 23:37:55 +00:00
Simon Michael
f6e15a2a80 fix warning 2011-09-19 03:25:19 +00:00
Simon Michael
2b5bd268b9 web: hide old title and search form when adding/editing 2011-09-21 22:42:06 +00:00
Simon Michael
0311595d3b web: editform title 2011-09-21 22:42:15 +00:00
Simon Michael
7bc67a7f00 web: update for yesod 0.9 2011-09-12 18:41:43 +00:00
Simon Michael
6f0f1acf7e fix hledger-web build error 2011-09-27 16:29:43 +00:00
Simon Michael
9b2a5f56e1 only the add and web commands auto-create the journal file 2011-09-23 03:53:14 +00:00
Simon Michael
27e4fec943 web: fix some invalid html 2011-09-10 19:52:35 +00:00
Simon Michael
23200cdd87 web: fix journal edit form 2011-09-10 20:03:59 +00:00
Simon Michael
5106938b4b web: stay on add form; format errors/added transaction a little better 2011-06-14 21:12:24 +00:00
Simon Michael
6efe8fb30b web: indent accounts more than "all accounts" in sidebar 2011-06-14 21:32:01 +00:00
Simon Michael
a62c51eff6 web: hide postings in a simpler way not requiring a special style 2011-07-17 16:00:34 +00:00
Simon Michael
613001a468 web: add a missing css class to balance report total 2011-07-17 16:01:14 +00:00
Simon Michael
059825a9b2 optionsgeddon.. port to cmdargs and a fully modal cli 2011-08-15 22:50:09 +00:00
Simon Michael
774434fcf2 web: always show empty and boring accounts too 2011-06-14 19:39:49 +00:00
Simon Michael
95f461fc94 web: make view data a little easier to construct and customise 2011-07-17 16:03:23 +00:00
Simon Michael
cd0c945454 web: move code to Hledger.Web for importability, consistency 2011-08-05 23:55:57 +00:00