notes cleanups
This commit is contained in:
parent
f5e9a8ec79
commit
271a504a99
50
NOTES
50
NOTES
@ -10,7 +10,7 @@ clever tricks like the plague." --Edsger Dijkstra
|
||||
|
||||
* to do
|
||||
** errors
|
||||
*** balance 'assets.*fargo' shows no accounts
|
||||
*** timelog report for today with no entries ignores an open session from yesterday
|
||||
*** not catching some unbalanced entries, two ways:
|
||||
**** 1
|
||||
1/1 test1
|
||||
@ -26,12 +26,12 @@ clever tricks like the plague." --Edsger Dijkstra
|
||||
; 2009/01/01 test2 a $-100.00 $-100.00
|
||||
; b $-100.00 $-200.00
|
||||
|
||||
*** --depth works with reg -W but not with reg
|
||||
*** register report should sort by date
|
||||
*** timelog report for today with no entries ignores an open session from yesterday
|
||||
*** balance report: zero-balance root accounts do not elide properly
|
||||
*** too many dependencies, hard to install esp. without cabal install
|
||||
** features
|
||||
*** more ledger features
|
||||
**** rename entry -> transaction, transaction -> posting
|
||||
**** -U --uncleared
|
||||
**** actual/effective entry & txn dates, for more accurate modelling & easier reconciliation
|
||||
**** ~/.hledgerrc for setting defaults
|
||||
@ -62,7 +62,6 @@ clever tricks like the plague." --Edsger Dijkstra
|
||||
*** speed
|
||||
**** more optimisation
|
||||
**** speed regression tests
|
||||
**** cache file ?
|
||||
** tests
|
||||
*** test all esoteric ledger file features
|
||||
*** wanted: a test for reading a ledger from stdin
|
||||
@ -318,7 +317,7 @@ competitors/fellow niche inhabitants
|
||||
**** on windows
|
||||
***** via binaries
|
||||
*** reduce dependencies
|
||||
*** split packages ?
|
||||
**** split packages ?
|
||||
*** set up binary publishing
|
||||
*** clarify bugtracking process
|
||||
* misc
|
||||
@ -361,52 +360,11 @@ are there any cashflow, tax, budgetary problems looming ?
|
||||
[2:08pm] <sm> those would be a good start. How do I make those visual
|
||||
[2:09pm] <sm> well I guess the first step is a script to print them
|
||||
|
||||
** compare other languages! a parser generator and decent speed is required
|
||||
*** python: http://cheeseshop.python.org/pypi/ZestyParser, pysec, pyparsing
|
||||
*** squeak: LanguageGame, T-Gen, SmaCC
|
||||
*** lisp: ?
|
||||
*** ruby: too slow (?)
|
||||
** data representation
|
||||
*** http://www.python.org/dev/peps/pep-0327/
|
||||
*** http://www.n-heptane.com/nhlab/repos/Decimal/
|
||||
*** http://www.n-heptane.com/nhlab/repos/Decimal/Money.hs
|
||||
*** http://www2.hursley.ibm.com/decimal/
|
||||
** lispy's template haskell for quickcheck
|
||||
-- find tests with template haskell
|
||||
import Language.Haskell.Parser
|
||||
|
||||
{-# OPTIONS_GHC -fno-warn-unused-imports -no-recomp -fth #-}
|
||||
{- ghc --make Unit.hs -main-is Unit.runTests -o unit -}
|
||||
runTests :: IO ()
|
||||
runTests = $(mkChecks props)
|
||||
|
||||
mkChecks [] = undefined
|
||||
mkChecks [name] = mkCheck name
|
||||
mkChecks (name:ns) = [| $(mkCheck name) >> $(mkChecks ns) |]
|
||||
|
||||
mkCheck name = [| putStr (name ++ ": ") >> quickCheck $(varE (mkName name)) |]
|
||||
|
||||
{- | looks in Tests.hs for functions like prop_foo and returns
|
||||
the list. Requires that Tests.hs be valid Haskell98. -}
|
||||
props :: [String]
|
||||
props = unsafePerformIO $
|
||||
do h <- openFile "Tests.hs" ReadMode
|
||||
s <- hGetContents h
|
||||
case parseModule s of
|
||||
(ParseOk (HsModule _ _ _ _ ds)) -> return (map declName (filter isProp ds))
|
||||
(ParseFailed loc s') -> error (s' ++ " " ++ show loc)
|
||||
|
||||
{- | checks if function binding name starts with @prop_@ indicating
|
||||
that it is a quickcheck property -}
|
||||
isProp :: HsDecl -> Bool
|
||||
isProp d@(HsFunBind _) = "prop_" `isPrefixOf` (declName d)
|
||||
isProp _ = False
|
||||
|
||||
{- | takes an HsDecl and returns the name of the declaration -}
|
||||
declName :: HsDecl -> String
|
||||
declName (HsFunBind (HsMatch _ (HsIdent name) _ _ _:_)) = name
|
||||
declName _ = undefined
|
||||
|
||||
** snippets
|
||||
-- trace a MixedAmount
|
||||
matrace :: MixedAmount -> MixedAmount
|
||||
|
||||
Loading…
Reference in New Issue
Block a user