Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							a97daaf322 
							
						 
					 
					
						
						
							
							lib: replace pretty-show with pretty-simple  
						
						... 
						
						
						
						pretty-simple, already used in .ghci, will hopefully give nicer debug
output, including for values which don't have Read-able Show output.
This should mean that we can start removing custom string-like Show
instances that were a workaround for pretty-show.
We are using the latest version (4.0.0.0) to get compact output.
Here's some old pretty-show output:
 CsvRules
   { rdirectives = [ ( "skip" , "1" ) ]
   , rcsvfieldindexes = [ ( "date" , 1 ) , ( "amount" , 2 ) ]
   , rassignments = [ ( "amount" , "%2" ) , ( "date" , "%1" ) ]
   , rconditionalblocks = []
   }
And the new pretty-simple output:
 CsvRules
   { rdirectives=
     [ ( "skip", "1" ) ]
   , rcsvfieldindexes=
     [ ( "date", 1 ), ( "amount", 2 ) ]
   , rassignments=
     [ ( "amount", "%2" ), ( "date", "%1" ) ]
   , rconditionalblocks= []
   }
Non-compact pretty-simple output would be:
 CsvRules
     { rdirectives=
         [
             ( "skip"
             , "1B"
             )
         ]
     , rcsvfieldindexes=
         [
             ( "date"
             , 1
             )
         ,
             ( "amount"
             , 2
             )
         ]
     , rassignments=
         [
             ( "amount"
             , "%2"
             )
         ,
             ( "date"
             , "%1"
             )
         ]
     , rconditionalblocks=[]
     }
Also:
- Account's Show instance no longer converts : to _ in account names
- drop unused pretty-show dependency from hledger, hledger-ui packages
- regenerate hledger-lib with the older hpack that's shipped in stack 
						
					 
					
						2020-11-10 08:06:11 -08:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							5a6d38fdf2 
							
						 
					 
					
						
						
							
							lib: For ymd date parsing, don't consume invalid date components.  
						
						
						
					 
					
						2020-10-18 21:28:46 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							ca2e55c954 
							
						 
					 
					
						
						
							
							lib: Replace some fromIntegral with toInteger.  
						
						
						
					 
					
						2020-08-30 22:20:58 +10:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							371b349b2e 
							
						 
					 
					
						
						
							
							lib,cli: Replace parsedate and mkdatespan with direct applications of fromGregorian, transaction now takes Day instead of a date string.  
						
						
						
					 
					
						2020-08-29 15:08:28 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							2fd678e415 
							
						 
					 
					
						
						
							
							lib,cli,ui: Remove old CPP directives made redundant by version bounds.  
						
						
						
					 
					
						2020-08-29 15:08:28 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							f2dcbd2fee 
							
						 
					 
					
						
						
							
							lib: Make ill-formed SmartDates unrepresentable.  
						
						
						
					 
					
						2020-08-07 14:20:08 -07:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							3f55c23603 
							
						 
					 
					
						
						
							
							;review, tag all error calls with an easier to find PARTIAL: comment ( #1312 )  
						
						
						
					 
					
						2020-08-05 16:08:33 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							08ad220448 
							
						 
					 
					
						
						
							
							lib: In quarterdatespanp, use yearp and allow uppercase Q.  
						
						
						
					 
					
						2020-08-04 09:10:53 -07:00 
						 
				 
			
				
					
						
							
							
								Henning Thielemann 
							
						 
					 
					
						
						
						
						
							
						
						
							9c9701fe7d 
							
						 
					 
					
						
						
							
							lib: quarterdatespanp ( fixes   #1247 )  
						
						
						
					 
					
						2020-07-31 17:37:41 -07:00 
						 
				 
			
				
					
						
							
							
								Henning Thielemann 
							
						 
					 
					
						
						
						
						
							
						
						
							ccac09fb1b 
							
						 
					 
					
						
						
							
							lib: doubledatespanp: fix and re-enable doctest  
						
						
						
					 
					
						2020-07-31 17:37:41 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							ffb5cf0773 
							
						 
					 
					
						
						
							
							lib: Ensure parsed years have at least 4 digits.  
						
						
						
					 
					
						2020-07-31 17:22:27 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							7b9f9ae49c 
							
						 
					 
					
						
						
							
							lib: Refactor reportingintervalp to be more compact and do less backtracking.  
						
						
						
					 
					
						2020-07-31 17:22:27 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							696d9c73b0 
							
						 
					 
					
						
						
							
							lib: Remove unnecessary try in parsers, replace unnecessary string' with string, rewrite some parsers in applicative style.  
						
						
						
					 
					
						2020-07-31 17:22:27 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							081ee390ab 
							
						 
					 
					
						
						
							
							lib: Change skipMany spacenonewline to takeWhileP Nothing isNonNewlineSpace.  
						
						
						
					 
					
						2020-07-22 14:58:53 -07:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							4b9a76068f 
							
						 
					 
					
						
						
							
							lib: spanStartYear, spanEndYear, spanYears DateSpan helpers  
						
						
						
					 
					
						2020-07-09 12:52:40 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							b3cd865786 
							
						 
					 
					
						
						
							
							lib: Add fortnightly as a synonym for biweekly.  
						
						
						
					 
					
						2020-06-23 06:48:20 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							be25fe360e 
							
						 
					 
					
						
						
							
							lib: Parser now accepts .. as a synonym for to in date ranges.  
						
						
						
					 
					
						2020-06-04 19:30:42 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							2f71da8838 
							
						 
					 
					
						
						
							
							lib: More consistent period formatting.  
						
						
						
					 
					
						2020-06-04 19:30:42 -07:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							10f8dc84a5 
							
						 
					 
					
						
						
							
							period expressions: allow "until", like Ledger (synonym for "to")  
						
						
						
					 
					
						2020-04-08 14:26:38 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							702c958487 
							
						 
					 
					
						
						
							
							lib: Replace some utility functions with library functions.  
						
						
						
					 
					
						2020-03-02 12:45:30 -08:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							43c55bf4ea 
							
						 
					 
					
						
						
							
							;lib: add YYYY.MM.DD to parsedate/parsedateM helpers  
						
						... 
						
						
						
						For a bit more consistency with simple dates. And document better. 
						
					 
					
						2020-02-27 10:57:55 -08:00 
						 
				 
			
				
					
						
							
							
								Jakob Schöttl 
							
						 
					 
					
						
						
						
						
							
						
						
							50acfc9119 
							
						 
					 
					
						
						
							
							Fix documentation, make ISO date format standard in some places  
						
						
						
					 
					
						2020-02-09 07:26:54 -08:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							e0a46a6523 
							
						 
					 
					
						
						
							
							;lib: update doctests for ISO 8601 date output  
						
						... 
						
						
						
						[ci skip] 
						
					 
					
						2020-02-03 08:03:44 -08:00 
						 
				 
			
				
					
						
							
							
								Brian Wignall 
							
						 
					 
					
						
						
						
						
							
						
						
							35481a665b 
							
						 
					 
					
						
						
							
							Change Date output to yyyy-mm-dd  
						
						
						
					 
					
						2020-01-07 15:58:22 -08:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							38904372b2 
							
						 
					 
					
						
						
							
							Calculate MultiReportBalance columns more efficiently.  
						
						... 
						
						
						
						Only calculate posting date once for each posting, and calculate their
columns instead of checking each DateSpan separately. 
						
					 
					
						2020-01-03 16:11:46 -08:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							a0b92e02b9 
							
						 
					 
					
						
						
							
							Revert "remove old fail compatibility imports that are obsolete ?"  
						
						... 
						
						
						
						They are needed with ghc <8.4, not for fail but for <> I think.
Try cleaning up again another time.
This reverts commit 318ce7eb07 
						
					 
					
						2019-12-01 11:32:51 -08:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							318ce7eb07 
							
						 
					 
					
						
						
							
							remove old fail compatibility imports that are obsolete ?  
						
						
						
					 
					
						2019-12-01 08:31:50 -08:00 
						 
				 
			
				
					
						
							
							
								Dmitry Astapov 
							
						 
					 
					
						
						
						
						
							
						
						
							cf4029a5ed 
							
						 
					 
					
						
						
							
							lib: fix generation of periodic transactions with days/months/... repeat  
						
						
						
					 
					
						2019-09-11 16:09:28 -07:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							499e20c0b2 
							
						 
					 
					
						
						
							
							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-08 17:13:47 -07:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							02ed4f5d04 
							
						 
					 
					
						
						
							
							;lib: intervalFromRawOpts: replace undefined with an error message  
						
						
						
					 
					
						2019-07-25 10:46:45 +01:00 
						 
				 
			
				
					
						
							
							
								Caleb Maclennan 
							
						 
					 
					
						
						
						
						
							
						
						
							11d9e5eb6a 
							
						 
					 
					
						
						
							
							code: Strip extraneous trailing whitespace from Haskell sources  
						
						
						
					 
					
						2019-07-15 16:40:49 +01:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							bc7a1476ed 
							
						 
					 
					
						
						
							
							refactor: lib: hlint cleanups  
						
						
						
					 
					
						2019-02-14 05:15:49 -08:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							74611a7be1 
							
						 
					 
					
						
						
							
							ui: accounts: fix balances when there's only periodic txns  
						
						... 
						
						
						
						And clarify multiBalanceReport. 
						
					 
					
						2018-10-18 14:43:00 -07:00 
						 
				 
			
				
					
						
							
							
								Alex Chen 
							
						 
					 
					
						
						
						
						
							
						
						
							3d2584d869 
							
						 
					 
					
						
						
							
							lib: switch to megaparsec 7  
						
						
						
					 
					
						2018-09-30 20:15:12 -06:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							007b9f8caa 
							
						 
					 
					
						
						
							
							lib: capitalised month names broke some period expressions ( fix   #852 )  
						
						... 
						
						
						
						This was a regression in hledger 1.10.
mon[th]Index are now case insensitive. 
						
					 
					
						2018-07-30 11:08:23 +01:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							daa37a9993 
							
						 
					 
					
						
						
							
							lib: nthdayof(month|year)containing now validate input a bit ( #852 )  
						
						
						
					 
					
						2018-07-30 11:08:14 +01:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							0f3a030a40 
							
						 
					 
					
						
						
							
							lib: whitespace  
						
						
						
					 
					
						2018-07-30 11:05:02 +01:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							aab7d2d964 
							
						 
					 
					
						
						
							
							lib: fix error triggered by upper-case day in period expression ( #847 )  
						
						
						
					 
					
						2018-07-24 14:36:45 +01:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							da8047d286 
							
						 
					 
					
						
						
							
							lib: type signatures  
						
						
						
					 
					
						2018-07-24 14:24:45 +01:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							eb23504906 
							
						 
					 
					
						
						
							
							lib: periodexprp: don't consume trailing whitespace  
						
						
						
					 
					
						2018-06-12 16:41:36 -07:00 
						 
				 
			
				
					
						
							
							
								Alex Chen 
							
						 
					 
					
						
						
						
						
							
						
						
							c6bfd92dd3 
							
						 
					 
					
						
						
							
							removing "re-parsing" for pull 807  
						
						... 
						
						
						
						For Data/Dates.hs in particular:
- Changed `SimpleTextParser` to `TextParser m` for all parsers
- Changed `string` to the case-insensitive `string'` to match the
  behaviour of `T.toLower` found in `parsePeriodExpr`
- export `periodexprp` for "direct" use 
						
					 
					
						2018-06-12 16:41:36 -07:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							dfcafc2cdf 
							
						 
					 
					
						
						
							
							lib: refactor some journal, period expression parsers  
						
						
						
					 
					
						2018-06-12 16:41:36 -07:00 
						 
				 
			
				
					
						
							
							
								Alex Chen 
							
						 
					 
					
						
						
						
						
							
						
						
							c5561f25f1 
							
						 
					 
					
						
						
							
							lib: switch parsers to the custom error type  
						
						... 
						
						
						
						Also add an explicit export list to `hledger-lib/Hledger/Utils/Parse.hs`
in order to re-export the custom error type (for convenience). 
						
					 
					
						2018-06-11 13:57:30 -06:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							0ce9c5728a 
							
						 
					 
					
						
						
							
							switch to base-compat-batteries to fix ghc 7.10 support ( #794 )  
						
						... 
						
						
						
						base-compat-batteries provides the same API across more ghc versions
than base-compat does, at the cost of more dependencies. Eg it exports
Prelude.Compat ((<>)) with ghc 7.10/base 4.8, which we expect.
My belief is that several of our deps already require it so the added
cost is not too great. We should probably go back to base-compat when
possible though, eg when we stop supporting ghc 7.10. 
						
					 
					
						2018-06-04 17:32:42 -07:00 
						 
				 
			
				
					
						
							
							
								Peter Simons 
							
						 
					 
					
						
						
						
						
							
						
						
							6db7f800ee 
							
						 
					 
					
						
						
							
							hledger-lib: fix doctest suite after recent package updates  
						
						... 
						
						
						
						The new version of our package set apparently contains both base-compat and
base-compat-batteries in its transitive closure. This breaks the doctest suite,
which just imports everything into scope when the tests are run, thereby making
module names like Prelude.Compat ambiguous. 
						
					 
					
						2018-06-04 21:41:15 +02:00 
						 
				 
			
				
					
						
							
							
								Alex Chen 
							
						 
					 
					
						
						
						
						
							
						
						
							12e8d0e282 
							
						 
					 
					
						
						
							
							lib: change some parsers to use takeWhileP  
						
						
						
					 
					
						2018-05-22 12:16:46 -07:00 
						 
				 
			
				
					
						
							
							
								Alex Chen 
							
						 
					 
					
						
						
						
						
							
						
						
							b245ec7b3d 
							
						 
					 
					
						
						
							
							lib: remove the megaparsec compatability module  
						
						
						
					 
					
						2018-05-22 12:16:46 -07:00 
						 
				 
			
				
					
						
							
							
								Mykola Orliuk 
							
						 
					 
					
						
						
						
						
							
						
						
							64c7eb78f4 
							
						 
					 
					
						
						
							
							GHC 8.0 compatibility  
						
						
						
					 
					
						2018-05-13 14:41:08 -07:00 
						 
				 
			
				
					
						
							
							
								Stephen Morgan 
							
						 
					 
					
						
						
						
						
							
						
						
							129f6e6839 
							
						 
					 
					
						
						
							
							Adjust start date of DateSpan for periodic forecasting with Days interval.  
						
						
						
					 
					
						2018-05-09 17:19:58 -07:00 
						 
				 
			
				
					
						
							
							
								Simon Michael 
							
						 
					 
					
						
						
						
						
							
						
						
							0b5ddcebee 
							
						 
					 
					
						
						
							
							cli: clarify smart dates with more examples; add support for YYYYMM  
						
						
						
					 
					
						2018-04-04 17:45:23 +01:00