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
 |