Go to file
Simon Michael 2538d14ea7 lib: textification begins! account names
The first of several conversions from String to (strict) Text, hopefully
reducing space and time usage.

This one shows a small improvement, with GHC 7.10.3 and text-1.2.2.1:

hledger -f data/100x100x10.journal stats
string: <<ghc: 39471064 bytes, 77 GCs, 198421/275048 avg/max bytes residency (3 samples), 2M in use, 0.000 INIT (0.001 elapsed), 0.015 MUT (0.020 elapsed), 0.010 GC (0.014 elapsed) :ghc>>
text:   <<ghc: 39268024 bytes, 77 GCs, 197018/270840 avg/max bytes residency (3 samples), 2M in use, 0.000 INIT (0.002 elapsed), 0.016 MUT (0.022 elapsed), 0.009 GC (0.011 elapsed) :ghc>>

hledger -f data/1000x100x10.journal stats
string: <<ghc: 318555920 bytes, 617 GCs, 2178997/7134472 avg/max bytes residency (7 samples), 16M in use, 0.000 INIT (0.001 elapsed), 0.129 MUT (0.136 elapsed), 0.067 GC (0.077 elapsed) :ghc>>
text:   <<ghc: 314248496 bytes, 612 GCs, 2074045/6617960 avg/max bytes residency (7 samples), 16M in use, 0.000 INIT (0.003 elapsed), 0.137 MUT (0.145 elapsed), 0.067 GC (0.079 elapsed) :ghc>>

hledger -f data/10000x100x10.journal stats
string: <<ghc: 3114763608 bytes, 6026 GCs, 18858950/75552024 avg/max bytes residency (11 samples), 201M in use, 0.000 INIT (0.000 elapsed), 1.331 MUT (1.372 elapsed), 0.699 GC (0.812 elapsed) :ghc>>
text:   <<ghc: 3071468920 bytes, 5968 GCs, 14120344/62951360 avg/max bytes residency (9 samples), 124M in use, 0.000 INIT (0.003 elapsed), 1.272 MUT (1.349 elapsed), 0.513 GC (0.578 elapsed) :ghc>>

hledger -f data/100000x100x10.journal stats
string: <<ghc: 31186579432 bytes, 60278 GCs, 135332581/740228992 avg/max bytes residency (13 samples), 1697M in use, 0.000 INIT (0.008 elapsed), 14.677 MUT (15.508 elapsed), 7.081 GC (8.074 elapsed) :ghc>>
text:   <<ghc: 30753427672 bytes, 59763 GCs, 117595958/666457240 avg/max bytes residency (14 samples), 1588M in use, 0.000 INIT (0.008 elapsed), 13.713 MUT (13.966 elapsed), 6.220 GC (7.108 elapsed) :ghc>>
2016-05-24 19:00:49 -07:00
bin doc: more consistent README file extensions 2014-10-31 16:16:41 -07:00
checks update dev setup tests 2015-03-16 17:59:06 -07:00
data tools: fix make functest in a fresh copy 2016-04-21 08:37:37 -07:00
doc doc: macro cleanups 2016-04-17 15:27:56 -07:00
extra extra: update, stackify hledger-check-dates 2016-05-19 16:29:39 -07:00
hledger lib: textification begins! account names 2016-05-24 19:00:49 -07:00
hledger-api lib: simplify parsers; cleanups (#275) 2016-05-23 00:44:19 -07:00
hledger-lib lib: textification begins! account names 2016-05-24 19:00:49 -07:00
hledger-ui lib: textification begins! account names 2016-05-24 19:00:49 -07:00
hledger-web lib: textification begins! account names 2016-05-24 19:00:49 -07:00
site rename a file to help git on windows (#345) 2016-05-18 16:52:10 -07:00
tests lib: simplify parsers; cleanups (#275) 2016-05-23 00:44:19 -07:00
tools rename timelog format to timeclock 2016-04-12 21:13:19 -07:00
.gitignore shake: also generate info manuals 2016-04-18 17:54:55 -07:00
.travis.yml travis: add --no-haddock-deps, should work now 2016-05-06 18:16:59 -07:00
.version bump version to 0.27 2015-10-30 13:21:51 -07:00
buildSandbox.sh make buildSandbox.sh executable 2014-05-22 14:21:27 -07:00
dev.hs rename timelog format to timeclock 2016-04-12 21:13:19 -07:00
help-system.mk tools: makefile help system improvements 2015-07-12 12:29:53 -07:00
LICENSE add LICENSE 2008-10-01 07:52:07 +00:00
Makefile lib: add a doctest suite 2016-04-28 13:34:57 -07:00
Makefile.old tools: archive old Makefile and start afresh 2015-07-12 12:29:53 -07:00
README.md doc: readme: make gpl badge green 2015-09-02 11:49:14 -07:00
Shake.hs shake: also generate info manuals 2016-04-18 17:54:55 -07:00
stack-ghc8.yaml ui: use new lens release instead of fork 2016-04-28 17:31:02 -07:00
stack.yaml stack: add some required newer deps from hackage 2016-05-11 07:13:21 -07:00

hledger

lightweight, portable, dependable accounting tools

hledger is a computer program for easily tracking money, time, or other commodities, on unix, mac and windows (and web-capable mobile devices, to some extent).

It is first a command-line tool, but there are also curses-style and web interfaces, and a Haskell library (http://hackage.haskell.org/package/hledger-lib) for building your own programs and scripts (hledger is written in Haskell). hledger was inspired by and is largely compatible with Ledger. hledger is free software available under the GNU General Public License v3+.

hledger aims to help both computer experts and regular folks to gain clarity and control in their finances and time management, but currently it is a bit more suited to techies. I use it every day to:

  • track spending and income
  • see time reports by day/week/month/project
  • get accurate numbers for client billing and tax filing
  • track invoices

Though limited in features, hledger is lightweight, usable and reliable. For some, it is a simpler, less distracting, more future-proof alternative to Quicken or GnuCash.

For more, see http://hledger.org.

license hackage release

travis build status hackage upper bounds github issues bountysource