2018-10-19 00:39:30 +03:00
|
|
|
cabal-version: 1.12
|
|
|
|
|
2019-06-14 21:45:25 +03:00
|
|
|
-- This file has been generated from package.yaml by hpack version 0.31.2.
|
2015-08-13 08:45:08 +03:00
|
|
|
--
|
|
|
|
-- see: https://github.com/sol/hpack
|
2017-12-07 22:46:33 +03:00
|
|
|
--
|
2019-11-29 01:45:10 +03:00
|
|
|
-- hash: d44cc48a2f9dc087afe19992824ce4e95ddf82662880f81963eb6389a5ef4a83
|
2015-08-13 08:45:08 +03:00
|
|
|
|
2010-03-22 04:44:59 +03:00
|
|
|
name: hledger-lib
|
2019-09-13 18:36:54 +03:00
|
|
|
version: 1.15.99
|
2015-10-30 23:08:03 +03:00
|
|
|
synopsis: Core data types, parsers and functionality for the hledger accounting tools
|
2016-08-09 21:27:00 +03:00
|
|
|
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
|
2019-09-11 04:14:16 +03:00
|
|
|
with ledger(1). hledger provides command-line, terminal and web
|
2016-08-09 21:27:00 +03:00
|
|
|
interfaces, and aims to be a reliable, practical tool for daily
|
|
|
|
use.
|
2017-01-17 01:23:47 +03:00
|
|
|
category: Finance
|
|
|
|
stability: stable
|
2010-03-22 04:44:59 +03:00
|
|
|
homepage: http://hledger.org
|
2015-10-30 23:08:03 +03:00
|
|
|
bug-reports: http://bugs.hledger.org
|
2017-01-17 01:23:47 +03:00
|
|
|
author: Simon Michael <simon@joyful.com>
|
|
|
|
maintainer: Simon Michael <simon@joyful.com>
|
2017-03-08 11:19:13 +03:00
|
|
|
license: GPL-3
|
2017-01-17 01:23:47 +03:00
|
|
|
license-file: LICENSE
|
2019-09-14 13:38:30 +03:00
|
|
|
tested-with: GHC==8.0.2, GHC==8.2.2, GHC==8.4.3, GHC==8.6.5
|
2017-01-17 01:23:47 +03:00
|
|
|
build-type: Simple
|
2015-08-13 08:45:08 +03:00
|
|
|
extra-source-files:
|
2019-01-26 05:33:26 +03:00
|
|
|
CHANGES.md
|
2018-10-19 00:39:30 +03:00
|
|
|
README
|
2017-12-07 05:45:01 +03:00
|
|
|
hledger_csv.5
|
|
|
|
hledger_csv.txt
|
2018-10-19 00:39:30 +03:00
|
|
|
hledger_csv.info
|
2017-12-07 05:45:01 +03:00
|
|
|
hledger_journal.5
|
|
|
|
hledger_journal.txt
|
2018-10-19 00:39:30 +03:00
|
|
|
hledger_journal.info
|
2017-12-07 05:45:01 +03:00
|
|
|
hledger_timedot.5
|
|
|
|
hledger_timedot.txt
|
2018-10-19 00:39:30 +03:00
|
|
|
hledger_timedot.info
|
|
|
|
hledger_timeclock.5
|
|
|
|
hledger_timeclock.txt
|
|
|
|
hledger_timeclock.info
|
2010-03-22 04:44:59 +03:00
|
|
|
|
2014-10-19 20:37:18 +04:00
|
|
|
source-repository head
|
2015-08-13 08:45:08 +03:00
|
|
|
type: git
|
2014-10-19 20:37:18 +04:00
|
|
|
location: https://github.com/simonmichael/hledger
|
|
|
|
|
2010-03-22 04:44:59 +03:00
|
|
|
library
|
2015-08-13 08:45:08 +03:00
|
|
|
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
|
2016-07-29 21:00:29 +03:00
|
|
|
Hledger.Data.Period
|
2018-07-30 21:38:47 +03:00
|
|
|
Hledger.Data.PeriodicTransaction
|
2015-08-19 17:49:50 +03:00
|
|
|
Hledger.Data.StringFormat
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Data.Posting
|
|
|
|
Hledger.Data.RawOptions
|
2016-04-13 07:10:02 +03:00
|
|
|
Hledger.Data.Timeclock
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Data.Transaction
|
2018-07-30 21:38:47 +03:00
|
|
|
Hledger.Data.TransactionModifier
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Data.Types
|
2019-06-15 02:17:06 +03:00
|
|
|
Hledger.Data.Valuation
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Query
|
|
|
|
Hledger.Read
|
2016-05-18 05:46:54 +03:00
|
|
|
Hledger.Read.Common
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Read.CsvReader
|
|
|
|
Hledger.Read.JournalReader
|
2016-02-20 02:14:25 +03:00
|
|
|
Hledger.Read.TimedotReader
|
2016-04-13 07:10:02 +03:00
|
|
|
Hledger.Read.TimeclockReader
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Reports
|
|
|
|
Hledger.Reports.ReportOptions
|
2018-04-03 15:07:13 +03:00
|
|
|
Hledger.Reports.ReportTypes
|
2019-05-24 07:51:45 +03:00
|
|
|
Hledger.Reports.AccountTransactionsReport
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Reports.BalanceReport
|
2018-04-03 15:07:13 +03:00
|
|
|
Hledger.Reports.BudgetReport
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Reports.EntriesReport
|
2019-06-14 21:45:25 +03:00
|
|
|
Hledger.Reports.MultiBalanceReport
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Reports.PostingsReport
|
2019-05-24 08:12:12 +03:00
|
|
|
Hledger.Reports.TransactionsReport
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Utils
|
2017-04-26 04:27:25 +03:00
|
|
|
Hledger.Utils.Color
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Utils.Debug
|
2015-08-19 23:47:26 +03:00
|
|
|
Hledger.Utils.Parse
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Utils.Regex
|
2015-08-19 23:47:26 +03:00
|
|
|
Hledger.Utils.String
|
|
|
|
Hledger.Utils.Test
|
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 04:16:21 +03:00
|
|
|
Hledger.Utils.Text
|
2015-08-19 23:47:26 +03:00
|
|
|
Hledger.Utils.Tree
|
2015-08-13 08:45:08 +03:00
|
|
|
Hledger.Utils.UTF8IOCompat
|
2018-04-03 15:07:13 +03:00
|
|
|
Text.Tabular.AsciiWide
|
2016-08-09 17:24:41 +03:00
|
|
|
other-modules:
|
2018-06-11 22:49:14 +03:00
|
|
|
Text.Megaparsec.Custom
|
2017-03-30 07:00:16 +03:00
|
|
|
Paths_hledger_lib
|
2016-08-09 17:24:41 +03:00
|
|
|
hs-source-dirs:
|
2017-03-16 02:04:26 +03:00
|
|
|
./.
|
2016-08-09 17:24:41 +03:00
|
|
|
ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans
|
|
|
|
build-depends:
|
2017-12-07 22:46:33 +03:00
|
|
|
Decimal
|
2018-07-23 12:40:02 +03:00
|
|
|
, Glob >=0.9
|
2017-12-31 21:03:50 +03:00
|
|
|
, ansi-terminal >=0.6.2.3
|
2016-08-09 17:24:41 +03:00
|
|
|
, array
|
2019-11-27 00:56:14 +03:00
|
|
|
, base >=4.9 && <4.14
|
lib, cli, ui: start using Control.Monad.Fail, allow base-compat 0.11
fail is moving out of Monad and into it's own MonadFail class.
This will be enforced in GHC 8.8 (I think).
base-compat/base-compat-batteries 0.11.0 have adapted to this,
and are approaching stackage nightly
(https://github.com/commercialhaskell/stackage/issues/4802).
hledger is now ready to build with base-compat-batteries 0.11.0, once
all of our deps do (eg aeson). We are still compatible with the older
0.10.x and GHC 7.10.3 as well.
For now we are using both fails:
- new fail (from Control.Monad.Fail), used in our parsers, imported
via base-compat-batteries Control.Monad.Fail.Compat to work with
older GHC versions.
- old fail (from GHC.Base, exported by Prelude, Control.Monad,
Control.Monad.State.Strict, Prelude.Compat, ...), used in easytest's
Test, since I couldn't find their existing fail implementation to update.
To reduce (my) confusion, these are imported carefully, consistently,
and qualified everywhere as Fail.fail and Prelude.fail, with clashing
re-exports suppressed, like so:
import Prelude hiding (fail)
import qualified Prelude (fail)
import Control.Monad.State.Strict hiding (fail)
import "base-compat-batteries" Prelude.Compat hiding (fail)
import qualified "base-compat-batteries" Control.Monad.Fail.Compat as Fail
2019-09-09 03:13:47 +03:00
|
|
|
, base-compat-batteries >=0.10.1 && <0.12
|
2016-08-09 17:24:41 +03:00
|
|
|
, blaze-markup >=0.5.1
|
|
|
|
, bytestring
|
2018-08-16 08:16:09 +03:00
|
|
|
, call-stack
|
2018-09-07 20:12:13 +03:00
|
|
|
, cassava
|
|
|
|
, cassava-megaparsec
|
2017-12-31 21:03:50 +03:00
|
|
|
, cmdargs >=0.10
|
2016-08-09 17:24:41 +03:00
|
|
|
, containers
|
|
|
|
, data-default >=0.5
|
|
|
|
, deepseq
|
|
|
|
, directory
|
2019-07-13 10:13:33 +03:00
|
|
|
, extra >=1.6.3
|
2019-07-13 10:08:36 +03:00
|
|
|
, fgl >=5.5.4.0
|
2019-01-27 02:52:58 +03:00
|
|
|
, file-embed >=0.0.10
|
2016-08-09 17:24:41 +03:00
|
|
|
, filepath
|
2018-06-05 03:02:57 +03:00
|
|
|
, hashtables >=1.2.3.1
|
2018-10-09 20:15:33 +03:00
|
|
|
, megaparsec >=7.0.0 && <8
|
2016-08-09 17:24:41 +03:00
|
|
|
, mtl
|
|
|
|
, mtl-compat
|
|
|
|
, old-time
|
2017-12-07 22:46:33 +03:00
|
|
|
, parsec >=3
|
2018-05-21 03:01:07 +03:00
|
|
|
, parser-combinators >=0.4.0
|
2016-08-09 22:16:24 +03:00
|
|
|
, pretty-show >=1.6.4
|
2016-08-09 17:24:41 +03:00
|
|
|
, regex-tdfa
|
|
|
|
, safe >=0.2
|
2017-12-31 21:03:50 +03:00
|
|
|
, split >=0.1
|
2018-04-03 15:07:13 +03:00
|
|
|
, tabular >=0.2
|
2019-11-27 00:56:14 +03:00
|
|
|
, tasty >=1.2.3
|
|
|
|
, tasty-hunit >=0.10.0.2
|
2019-01-27 02:52:58 +03:00
|
|
|
, template-haskell
|
2017-12-31 21:03:50 +03:00
|
|
|
, text >=1.2
|
2017-08-26 02:56:41 +03:00
|
|
|
, time >=1.5
|
2019-08-01 19:24:40 +03:00
|
|
|
, timeit
|
2017-12-31 21:03:50 +03:00
|
|
|
, transformers >=0.2
|
2016-08-09 17:24:41 +03:00
|
|
|
, uglymemo
|
2017-12-31 21:03:50 +03:00
|
|
|
, utf8-string >=0.3.5
|
2018-03-13 02:27:23 +03:00
|
|
|
if (!impl(ghc >= 8.0))
|
|
|
|
build-depends:
|
|
|
|
semigroups ==0.18.*
|
2018-04-22 20:12:17 +03:00
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
|
|
test-suite doctests
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
main-is: doctests.hs
|
2018-03-06 04:27:13 +03:00
|
|
|
hs-source-dirs:
|
|
|
|
./.
|
2018-08-18 17:11:48 +03:00
|
|
|
test
|
2018-03-06 04:27:13 +03:00
|
|
|
ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans
|
|
|
|
build-depends:
|
|
|
|
Decimal
|
2018-04-22 20:12:17 +03:00
|
|
|
, Glob >=0.7
|
2018-03-06 04:27:13 +03:00
|
|
|
, ansi-terminal >=0.6.2.3
|
|
|
|
, array
|
2019-11-27 00:56:14 +03:00
|
|
|
, base >=4.9 && <4.14
|
lib, cli, ui: start using Control.Monad.Fail, allow base-compat 0.11
fail is moving out of Monad and into it's own MonadFail class.
This will be enforced in GHC 8.8 (I think).
base-compat/base-compat-batteries 0.11.0 have adapted to this,
and are approaching stackage nightly
(https://github.com/commercialhaskell/stackage/issues/4802).
hledger is now ready to build with base-compat-batteries 0.11.0, once
all of our deps do (eg aeson). We are still compatible with the older
0.10.x and GHC 7.10.3 as well.
For now we are using both fails:
- new fail (from Control.Monad.Fail), used in our parsers, imported
via base-compat-batteries Control.Monad.Fail.Compat to work with
older GHC versions.
- old fail (from GHC.Base, exported by Prelude, Control.Monad,
Control.Monad.State.Strict, Prelude.Compat, ...), used in easytest's
Test, since I couldn't find their existing fail implementation to update.
To reduce (my) confusion, these are imported carefully, consistently,
and qualified everywhere as Fail.fail and Prelude.fail, with clashing
re-exports suppressed, like so:
import Prelude hiding (fail)
import qualified Prelude (fail)
import Control.Monad.State.Strict hiding (fail)
import "base-compat-batteries" Prelude.Compat hiding (fail)
import qualified "base-compat-batteries" Control.Monad.Fail.Compat as Fail
2019-09-09 03:13:47 +03:00
|
|
|
, base-compat-batteries >=0.10.1 && <0.12
|
2018-03-06 04:27:13 +03:00
|
|
|
, blaze-markup >=0.5.1
|
|
|
|
, bytestring
|
2018-08-16 08:16:09 +03:00
|
|
|
, call-stack
|
2018-09-07 20:12:13 +03:00
|
|
|
, cassava
|
|
|
|
, cassava-megaparsec
|
2018-03-06 04:27:13 +03:00
|
|
|
, cmdargs >=0.10
|
|
|
|
, containers
|
|
|
|
, data-default >=0.5
|
|
|
|
, deepseq
|
|
|
|
, directory
|
2018-09-07 22:40:39 +03:00
|
|
|
, doctest >=0.16
|
2019-07-13 10:13:33 +03:00
|
|
|
, extra >=1.6.3
|
2019-07-13 10:08:36 +03:00
|
|
|
, fgl >=5.5.4.0
|
2019-01-27 02:52:58 +03:00
|
|
|
, file-embed >=0.0.10
|
2018-03-06 04:27:13 +03:00
|
|
|
, filepath
|
2018-06-05 03:02:57 +03:00
|
|
|
, hashtables >=1.2.3.1
|
2018-10-09 20:15:33 +03:00
|
|
|
, megaparsec >=7.0.0 && <8
|
2018-03-06 04:27:13 +03:00
|
|
|
, mtl
|
|
|
|
, mtl-compat
|
|
|
|
, old-time
|
|
|
|
, parsec >=3
|
2018-05-21 03:01:07 +03:00
|
|
|
, parser-combinators >=0.4.0
|
2018-03-06 04:27:13 +03:00
|
|
|
, pretty-show >=1.6.4
|
|
|
|
, regex-tdfa
|
|
|
|
, safe >=0.2
|
|
|
|
, split >=0.1
|
2018-04-03 15:07:13 +03:00
|
|
|
, tabular >=0.2
|
2019-11-27 00:56:14 +03:00
|
|
|
, tasty >=1.2.3
|
|
|
|
, tasty-hunit >=0.10.0.2
|
2019-01-27 02:52:58 +03:00
|
|
|
, template-haskell
|
2018-03-06 04:27:13 +03:00
|
|
|
, text >=1.2
|
|
|
|
, time >=1.5
|
2019-08-01 19:24:40 +03:00
|
|
|
, timeit
|
2018-03-06 04:27:13 +03:00
|
|
|
, transformers >=0.2
|
|
|
|
, uglymemo
|
|
|
|
, utf8-string >=0.3.5
|
2019-11-16 16:04:57 +03:00
|
|
|
buildable: True
|
2018-03-13 02:27:23 +03:00
|
|
|
if (!impl(ghc >= 8.0))
|
|
|
|
build-depends:
|
|
|
|
semigroups ==0.18.*
|
2019-07-14 14:40:07 +03:00
|
|
|
if (impl(ghc < 8.2))
|
|
|
|
buildable: False
|
2018-04-22 20:12:17 +03:00
|
|
|
default-language: Haskell2010
|
2019-11-29 01:45:10 +03:00
|
|
|
|
|
|
|
test-suite unittests
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
main-is: unittests.hs
|
|
|
|
hs-source-dirs:
|
|
|
|
./.
|
|
|
|
test
|
|
|
|
ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans
|
|
|
|
build-depends:
|
|
|
|
Decimal
|
|
|
|
, Glob >=0.9
|
|
|
|
, ansi-terminal >=0.6.2.3
|
|
|
|
, array
|
|
|
|
, base >=4.9 && <4.14
|
|
|
|
, base-compat-batteries >=0.10.1 && <0.12
|
|
|
|
, blaze-markup >=0.5.1
|
|
|
|
, bytestring
|
|
|
|
, call-stack
|
|
|
|
, cassava
|
|
|
|
, cassava-megaparsec
|
|
|
|
, cmdargs >=0.10
|
|
|
|
, containers
|
|
|
|
, data-default >=0.5
|
|
|
|
, deepseq
|
|
|
|
, directory
|
|
|
|
, extra >=1.6.3
|
|
|
|
, fgl >=5.5.4.0
|
|
|
|
, file-embed >=0.0.10
|
|
|
|
, filepath
|
|
|
|
, hashtables >=1.2.3.1
|
|
|
|
, hledger-lib
|
|
|
|
, megaparsec >=7.0.0 && <8
|
|
|
|
, mtl
|
|
|
|
, mtl-compat
|
|
|
|
, old-time
|
|
|
|
, parsec >=3
|
|
|
|
, parser-combinators >=0.4.0
|
|
|
|
, pretty-show >=1.6.4
|
|
|
|
, regex-tdfa
|
|
|
|
, safe >=0.2
|
|
|
|
, split >=0.1
|
|
|
|
, tabular >=0.2
|
|
|
|
, tasty >=1.2.3
|
|
|
|
, tasty-hunit >=0.10.0.2
|
|
|
|
, template-haskell
|
|
|
|
, text >=1.2
|
|
|
|
, time >=1.5
|
|
|
|
, timeit
|
|
|
|
, transformers >=0.2
|
|
|
|
, uglymemo
|
|
|
|
, utf8-string >=0.3.5
|
|
|
|
buildable: True
|
|
|
|
if (!impl(ghc >= 8.0))
|
|
|
|
build-depends:
|
|
|
|
semigroups ==0.18.*
|
|
|
|
default-language: Haskell2010
|