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
|
* to do
|
||||||
** errors
|
** 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:
|
*** not catching some unbalanced entries, two ways:
|
||||||
**** 1
|
**** 1
|
||||||
1/1 test1
|
1/1 test1
|
||||||
@ -26,12 +26,12 @@ clever tricks like the plague." --Edsger Dijkstra
|
|||||||
; 2009/01/01 test2 a $-100.00 $-100.00
|
; 2009/01/01 test2 a $-100.00 $-100.00
|
||||||
; b $-100.00 $-200.00
|
; b $-100.00 $-200.00
|
||||||
|
|
||||||
|
*** --depth works with reg -W but not with reg
|
||||||
*** register report should sort by date
|
*** 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
|
*** too many dependencies, hard to install esp. without cabal install
|
||||||
** features
|
** features
|
||||||
*** more ledger features
|
*** more ledger features
|
||||||
|
**** rename entry -> transaction, transaction -> posting
|
||||||
**** -U --uncleared
|
**** -U --uncleared
|
||||||
**** actual/effective entry & txn dates, for more accurate modelling & easier reconciliation
|
**** actual/effective entry & txn dates, for more accurate modelling & easier reconciliation
|
||||||
**** ~/.hledgerrc for setting defaults
|
**** ~/.hledgerrc for setting defaults
|
||||||
@ -62,7 +62,6 @@ clever tricks like the plague." --Edsger Dijkstra
|
|||||||
*** speed
|
*** speed
|
||||||
**** more optimisation
|
**** more optimisation
|
||||||
**** speed regression tests
|
**** speed regression tests
|
||||||
**** cache file ?
|
|
||||||
** tests
|
** tests
|
||||||
*** test all esoteric ledger file features
|
*** test all esoteric ledger file features
|
||||||
*** wanted: a test for reading a ledger from stdin
|
*** wanted: a test for reading a ledger from stdin
|
||||||
@ -318,7 +317,7 @@ competitors/fellow niche inhabitants
|
|||||||
**** on windows
|
**** on windows
|
||||||
***** via binaries
|
***** via binaries
|
||||||
*** reduce dependencies
|
*** reduce dependencies
|
||||||
*** split packages ?
|
**** split packages ?
|
||||||
*** set up binary publishing
|
*** set up binary publishing
|
||||||
*** clarify bugtracking process
|
*** clarify bugtracking process
|
||||||
* misc
|
* 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: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
|
[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
|
** data representation
|
||||||
*** http://www.python.org/dev/peps/pep-0327/
|
*** http://www.python.org/dev/peps/pep-0327/
|
||||||
*** http://www.n-heptane.com/nhlab/repos/Decimal/
|
*** http://www.n-heptane.com/nhlab/repos/Decimal/
|
||||||
*** http://www.n-heptane.com/nhlab/repos/Decimal/Money.hs
|
*** http://www.n-heptane.com/nhlab/repos/Decimal/Money.hs
|
||||||
*** http://www2.hursley.ibm.com/decimal/
|
*** 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
|
** snippets
|
||||||
-- trace a MixedAmount
|
-- trace a MixedAmount
|
||||||
matrace :: MixedAmount -> MixedAmount
|
matrace :: MixedAmount -> MixedAmount
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user