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>>
160 lines
4.2 KiB
YAML
160 lines
4.2 KiB
YAML
# hpack specification for generating the cabal file
|
|
# https://github.com/sol/hpack#readme
|
|
# http://www.haskell.org/cabal/release/cabal-latest/doc/users-guide/authors.html
|
|
#
|
|
# as of hpack 0.5.4 these must be added manually:
|
|
# - tested-with
|
|
# - flags
|
|
# - benchmarks
|
|
# - conditional blocks
|
|
|
|
name : hledger-lib
|
|
version : '0.27'
|
|
stability : stable
|
|
category : Finance, Console
|
|
synopsis : Core data types, parsers and functionality for the hledger accounting tools
|
|
description : |
|
|
This is a reusable library containing hledger's core functionality.
|
|
hledger is a cross-platform program for tracking money, time, or
|
|
any other commodity, using double-entry accounting and a simple,
|
|
editable file format. It is inspired by and largely compatible
|
|
with ledger(1). hledger provides command-line, curses and web
|
|
interfaces, and aims to be a reliable, practical tool for daily
|
|
use.
|
|
|
|
license : GPL
|
|
author : Simon Michael <simon@joyful.com>
|
|
maintainer : Simon Michael <simon@joyful.com>
|
|
github : simonmichael/hledger
|
|
homepage : http://hledger.org
|
|
bug-reports : http://bugs.hledger.org
|
|
# XXX not supported
|
|
tested-with : GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0
|
|
|
|
extra-source-files:
|
|
- CHANGES
|
|
- README
|
|
|
|
data-files:
|
|
- doc/hledger_csv.5
|
|
- doc/hledger_csv.5.txt
|
|
- doc/hledger_csv.5.info
|
|
- doc/hledger_journal.5
|
|
- doc/hledger_journal.5.txt
|
|
- doc/hledger_journal.5.info
|
|
- doc/hledger_timedot.5
|
|
- doc/hledger_timedot.5.txt
|
|
- doc/hledger_timedot.5.info
|
|
- doc/hledger_timeclock.5
|
|
- doc/hledger_timeclock.5.txt
|
|
- doc/hledger_timeclock.5.info
|
|
|
|
# XXX not supported
|
|
# flag double
|
|
# description: Use old Double number representation (instead of Decimal), for testing/benchmarking.
|
|
# default: False
|
|
# manual: True
|
|
#
|
|
# flag old-locale
|
|
# description: A compatibility flag, set automatically by cabal.
|
|
# If false then depend on time >= 1.5,
|
|
# if true then depend on time < 1.5 together with old-locale.
|
|
# default: False
|
|
|
|
dependencies:
|
|
- base >= 4.3 && < 5
|
|
- base-compat >= 0.8.1
|
|
- array
|
|
- blaze-markup >= 0.5.1
|
|
- bytestring
|
|
- cmdargs >= 0.10 && < 0.11
|
|
- containers
|
|
- csv
|
|
- Decimal
|
|
- deepseq
|
|
- directory
|
|
- filepath
|
|
- mtl
|
|
- mtl-compat
|
|
- old-time
|
|
- parsec >= 3
|
|
- regex-tdfa
|
|
- safe >= 0.2
|
|
- split >= 0.1 && < 0.3
|
|
- text >= 1.2 && < 1.3
|
|
- transformers >= 0.2 && < 0.6
|
|
- uglymemo
|
|
- utf8-string >= 0.3.5 && < 1.1
|
|
- HUnit
|
|
# XXX not supported
|
|
# if impl(ghc >= 7.4)
|
|
# dependencies: pretty-show >= 1.6.4
|
|
# if flag(old-locale)
|
|
# build-depends: time < 1.5, old-locale
|
|
# else
|
|
# build-depends: time >= 1.5
|
|
- pretty-show >= 1.6.4
|
|
- time >= 1.5
|
|
|
|
ghc-options:
|
|
-Wall
|
|
-fno-warn-unused-do-bind
|
|
-fno-warn-name-shadowing
|
|
-fno-warn-missing-signatures
|
|
-fno-warn-type-defaults
|
|
-fno-warn-orphans
|
|
|
|
library:
|
|
# XXX not supported
|
|
# if flag(double)
|
|
# cpp-options: -DDOUBLE
|
|
# source-dirs: . # XXX includes Setup and uncommitted stuff
|
|
exposed-modules:
|
|
- Hledger
|
|
- Hledger.Data
|
|
- Hledger.Data.Account
|
|
- Hledger.Data.AccountName
|
|
- Hledger.Data.Amount
|
|
- Hledger.Data.Commodity
|
|
- Hledger.Data.Dates
|
|
- Hledger.Data.Journal
|
|
- Hledger.Data.Ledger
|
|
- Hledger.Data.StringFormat
|
|
- Hledger.Data.Posting
|
|
- Hledger.Data.RawOptions
|
|
- Hledger.Data.Timeclock
|
|
- Hledger.Data.Transaction
|
|
- Hledger.Data.Types
|
|
- Hledger.Query
|
|
- Hledger.Read
|
|
- Hledger.Read.CsvReader
|
|
- Hledger.Read.JournalReader
|
|
- Hledger.Read.TimedotReader
|
|
- Hledger.Read.TimeclockReader
|
|
- Hledger.Read.Util
|
|
- Hledger.Reports
|
|
- Hledger.Reports.ReportOptions
|
|
- Hledger.Reports.BalanceHistoryReport
|
|
- Hledger.Reports.BalanceReport
|
|
- Hledger.Reports.EntriesReport
|
|
- Hledger.Reports.MultiBalanceReports
|
|
- Hledger.Reports.PostingsReport
|
|
- Hledger.Reports.TransactionsReports
|
|
- Hledger.Utils
|
|
- Hledger.Utils.Debug
|
|
- Hledger.Utils.Parse
|
|
- Hledger.Utils.Regex
|
|
- Hledger.Utils.String
|
|
- Hledger.Utils.Test
|
|
- Hledger.Utils.Tree
|
|
- Hledger.Utils.UTF8IOCompat
|
|
|
|
tests:
|
|
tests:
|
|
main: suite.hs
|
|
source-dirs: tests
|
|
dependencies:
|
|
- hledger-lib
|
|
- test-framework
|
|
- test-framework-hunit
|