makegeddon! makefile simplification and cleanup, including..
- section headings - fewer variables - less unnecessary rebuilding - more standardised sample ledgers and benchmarks (use "make benchtest" now) - more robust profiling - don't symlink tools in top directory
This commit is contained in:
parent
2e46d96402
commit
483cdb8fb2
379
Makefile
379
Makefile
@ -1,45 +1,73 @@
|
|||||||
# hledger project makefile
|
# hledger project makefile
|
||||||
|
|
||||||
default: tag build
|
TIME=`date +"%Y%m%d%H%M"`
|
||||||
|
|
||||||
# patches since last release tag (as a haskell string literal)
|
# patches since last release tag (as a haskell string literal)
|
||||||
PATCHES:=$(shell expr `darcs changes --count --from-tag=\\\\\.` - 1)
|
PATCHES:=$(shell expr `darcs changes --count --from-tag=\\\\\.` - 1)
|
||||||
|
|
||||||
# build the normal hledger binary
|
# optional flags described in README, turn em on if you've got the libs
|
||||||
BUILD=ghc --make hledger.hs -o hledger #-O
|
OPTFLAGS=-DHAPPS -DVTY
|
||||||
FLAGS=-DPATCHES=$(PATCHES)
|
|
||||||
# optional extras described in README, turn em on if you've got the libs
|
|
||||||
OPTFLAGS= #-DVTY -DHAPPS
|
|
||||||
BUILDFLAGS=$(FLAGS) $(OPTFLAGS)
|
|
||||||
build: setversion
|
|
||||||
@$(BUILD) $(BUILDFLAGS)
|
|
||||||
|
|
||||||
# build the fastest binary we can, as hledgeropt
|
BUILDFLAGS=-DPATCHES=$(PATCHES) $(OPTFLAGS)
|
||||||
BUILDOPT=ghc --make hledger.hs -o hledgeropt -O2 -fvia-C
|
|
||||||
buildopt opt: setversion
|
|
||||||
$(BUILDOPT) $(BUILDFLAGS)
|
|
||||||
|
|
||||||
# "continuous integration" testing - recompile and run test (or any other
|
default: tag hledger
|
||||||
# command) whenever a module changes. sp is from searchpath.org , you
|
|
||||||
# might need the patched version from http://joyful.com/repos/searchpath
|
######################################################################
|
||||||
|
# BUILDING, DEBUGGING
|
||||||
|
|
||||||
|
# build the standard developer's binary, quickly
|
||||||
|
hledger: setversion
|
||||||
|
ghc --make hledger.hs -o hledger $(BUILDFLAGS) # -O
|
||||||
|
|
||||||
|
# build the profiling-enabled binary. You may need to cabal install
|
||||||
|
# --reinstall -p some libs.
|
||||||
|
hledgerp: setversion
|
||||||
|
ghc --make hledger.hs -prof -auto-all -o hledgerp #$(BUILDFLAGS)
|
||||||
|
|
||||||
|
# build the fastest binary we can
|
||||||
|
hledgeropt: setversion
|
||||||
|
ghc --make hledger.hs -o hledgeropt -O2 -fvia-C $(BUILDFLAGS)
|
||||||
|
|
||||||
|
# "continuous integration" testing - auto-recompile and run hledger test
|
||||||
|
# (or some other command) whenever a module changes. sp is from
|
||||||
|
# searchpath.org , you might need the patched version from
|
||||||
|
# http://joyful.com/repos/searchpath .
|
||||||
|
#CICMD=web --debug -BE
|
||||||
CICMD=test
|
CICMD=test
|
||||||
continuous ci: setversion
|
continuous ci: setversion
|
||||||
sp --no-exts --no-default-map -o hledger ghc --make hledger.hs $(BUILDFLAGS) --run $(CICMD)
|
sp --no-exts --no-default-map -o hledger ghc --make hledger.hs $(BUILDFLAGS) --run $(CICMD)
|
||||||
|
|
||||||
# force a full rebuild with normal optimisation
|
# build the benchmark runner. Requires tabular from hackage.
|
||||||
rebuild: clean build
|
bench:
|
||||||
|
ghc --make tools/bench.hs
|
||||||
|
|
||||||
# debug prompt
|
# build the doctest runner
|
||||||
|
tools/doctest: tools/doctest.hs
|
||||||
|
ghc --make tools/doctest.hs
|
||||||
|
|
||||||
|
# build the generateledger tool
|
||||||
|
generateledger: tools/generateledger.hs
|
||||||
|
ghc --make tools/generateledger.hs
|
||||||
|
|
||||||
|
# get a debug prompt
|
||||||
ghci:
|
ghci:
|
||||||
ghci hledger.hs
|
ghci hledger.hs
|
||||||
|
|
||||||
|
# generate a standard profile, archive in profs/ and display
|
||||||
|
PROFCMD=-f 1000x1000x10.ledger balance
|
||||||
|
prof: sampleledgers hledgerp
|
||||||
|
@echo "Profiling $(PROFCMD)"
|
||||||
|
./hledgerp +RTS -p -RTS $(PROFCMD) >/dev/null
|
||||||
|
mv hledgerp.prof profs/$(TIME).prof
|
||||||
|
tools/simplifyprof.hs profs/$(TIME).prof >profs/$(TIME)-cleaned.prof
|
||||||
|
echo; cat profs/$(TIME)-cleaned.prof
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
# TESTING
|
||||||
|
|
||||||
# run all tests
|
# run all tests
|
||||||
test: unittest doctest haddocktest
|
test: unittest doctest haddocktest
|
||||||
|
|
||||||
# make sure we have no haddock errors
|
|
||||||
haddocktest:
|
|
||||||
@make --quiet haddock
|
|
||||||
|
|
||||||
# run unit tests, without waiting for compilation
|
# run unit tests, without waiting for compilation
|
||||||
unittest:
|
unittest:
|
||||||
runghc hledger.hs test
|
runghc hledger.hs test
|
||||||
@ -49,60 +77,126 @@ doctest: tools/doctest
|
|||||||
@tools/doctest AddCommand.hs
|
@tools/doctest AddCommand.hs
|
||||||
@tools/doctest Tests.hs
|
@tools/doctest Tests.hs
|
||||||
|
|
||||||
tools/doctest: tools/doctest.hs
|
# make sure we have no haddock errors
|
||||||
ghc --make tools/doctest.hs
|
haddocktest:
|
||||||
|
@make --quiet haddock
|
||||||
|
|
||||||
# build profiling-enabled hledgerp and archive and show a cleaned-up profile
|
# run performance tests and save results in profs/.
|
||||||
# you may need to rebuild some libs: sudo cabal install --reinstall -p ...
|
# Requires some tests defined in bench.tests and some executables defined below.
|
||||||
PROFBIN=hledgerp
|
# Prepend ./ to these if not in $PATH.
|
||||||
BUILDPROF=ghc $(BUILDFLAGS) --make hledger.hs -prof -auto-all -o $(PROFBIN)
|
|
||||||
RUNPROF=./$(PROFBIN) +RTS -p -RTS
|
|
||||||
PROFCMD=-f 1000.ledger balance
|
|
||||||
TIME=`date +"%Y%m%d%H%M"`
|
|
||||||
buildprof prof: sampleledgers
|
|
||||||
@echo "Profiling $(PROFCMD)"
|
|
||||||
$(BUILDPROF)
|
|
||||||
$(RUNPROF) $(PROFCMD) #>/dev/null
|
|
||||||
tools/simplifyprof.hs $(PROFBIN).prof >profile.prof
|
|
||||||
cp profile.prof profs/$(TIME).prof
|
|
||||||
echo; cat profile.prof
|
|
||||||
|
|
||||||
# run performance benchmarks and save results in profs
|
|
||||||
# executables to test, prepend ./ to these if not in $PATH
|
|
||||||
# requires tabular from hackage
|
|
||||||
#BENCHEXES=hledger-0.1 hledger-0.2 hledger-0.3 hledger-0.4 hledger-0.5 ledger
|
|
||||||
BENCHEXES=hledger-0.4 hledger-0.5 ledger
|
BENCHEXES=hledger-0.4 hledger-0.5 ledger
|
||||||
bench: buildbench sampleledgers
|
benchtest: sampleledgers bench.tests bench
|
||||||
./bench $(BENCHEXES) --verbose | tee profs/`date +%Y%m%d%H%M%S`.bench
|
tools/bench $(BENCHEXES) --verbose | tee profs/`date +%Y%m%d%H%M%S`.bench
|
||||||
|
|
||||||
# build the benchmarking tool
|
# generate standard sample ledgers
|
||||||
buildbench:
|
sampleledgers: sample.ledger 100x100x10.ledger 1000x1000x10.ledger 10000x1000x10.ledger \
|
||||||
ghc --make tools/bench.hs
|
100000x1000x10.ledger 1000.ledger 10000.ledger 100000.ledger 1000x1000x10.ledger
|
||||||
rm -f bench; ln -s tools/bench
|
|
||||||
|
|
||||||
# generate sample ledgers
|
sample.ledger:
|
||||||
# XXX should also generate sample.ledger with write_sample_ledger
|
true # XXX should probably regenerate this
|
||||||
sampleledgers: 1000.ledger 10000.ledger 100000.ledger
|
|
||||||
|
|
||||||
1000.ledger:
|
100x100x10.ledger: generateledger
|
||||||
|
tools/generateledger 1000 1000 10 >$@
|
||||||
|
|
||||||
|
1000x1000x10.ledger: generateledger
|
||||||
|
tools/generateledger 1000 1000 10 >$@
|
||||||
|
|
||||||
|
10000x1000x10.ledger: generateledger
|
||||||
|
tools/generateledger 10000 1000 10 >$@
|
||||||
|
|
||||||
|
100000x1000x10.ledger: generateledger
|
||||||
|
tools/generateledger 100000 1000 10 >$@
|
||||||
|
|
||||||
|
# keep for next benchmark report..
|
||||||
|
1000include.ledger:
|
||||||
ghc -e 'putStr $$ unlines $$ replicate 1000 "!include sample.ledger"' >1000.ledger
|
ghc -e 'putStr $$ unlines $$ replicate 1000 "!include sample.ledger"' >1000.ledger
|
||||||
|
|
||||||
10000.ledger:
|
10000include.ledger:
|
||||||
ghc -e 'putStr $$ unlines $$ replicate 10000 "!include sample.ledger"' >10000.ledger
|
ghc -e 'putStr $$ unlines $$ replicate 10000 "!include sample.ledger"' >10000.ledger
|
||||||
|
|
||||||
100000.ledger:
|
100000include.ledger:
|
||||||
ghc -e 'putStr $$ unlines $$ replicate 100000 "!include sample.ledger"' >100000.ledger
|
ghc -e 'putStr $$ unlines $$ replicate 100000 "!include sample.ledger"' >100000.ledger
|
||||||
|
|
||||||
# send unpushed patches to the mail list
|
######################################################################
|
||||||
send:
|
# DOCS
|
||||||
darcs send http://joyful.com/repos/hledger --to=hledger@googlegroups.com --edit-description
|
|
||||||
|
|
||||||
# push patches to the main repo with ssh
|
DOCS=README NEWS
|
||||||
push:
|
|
||||||
darcs push joyful.com:/repos/hledger
|
# rebuild all docs
|
||||||
|
docs: pdf api-docs
|
||||||
|
|
||||||
|
# rebuild pdf docs
|
||||||
|
pdf:
|
||||||
|
for d in $(DOCS); do rst2pdf $$d -o doc/$$d.pdf; done
|
||||||
|
|
||||||
|
# rebuild api docs
|
||||||
|
# We munge haddock and hoogle into a rough but useful framed layout.
|
||||||
|
# For this to work the hoogle cgi must be built with base target "main".
|
||||||
|
api-docs: haddock hoogleweb
|
||||||
|
echo "Converting api docs to frames" ; \
|
||||||
|
sed -i -e 's%^></HEAD%><base target="main"></HEAD%' api-doc/modules-index.html ; \
|
||||||
|
cp doc/misc/api-doc-frames.html api-doc/index.html ; \
|
||||||
|
cp doc/misc/hoogle-small.html hoogle
|
||||||
|
|
||||||
|
# build and preview the api docs
|
||||||
|
BROWSER=open
|
||||||
|
view-api-docs: api-docs
|
||||||
|
$(BROWSER) api-doc/index.html
|
||||||
|
|
||||||
|
api-doc-dir:
|
||||||
|
mkdir -p api-doc
|
||||||
|
|
||||||
|
MAIN=hledger.hs
|
||||||
|
|
||||||
|
# --ignore-all-exports here means these are actually implementation docs
|
||||||
|
HADDOCK=haddock -B `ghc --print-libdir` --no-warnings --ignore-all-exports $(subst -D,--optghc=-D,$(BUILDFLAGS))
|
||||||
|
haddock: api-doc-dir hscolour $(MAIN)
|
||||||
|
echo "Generating haddock api docs with source" ; \
|
||||||
|
$(HADDOCK) -o api-doc -h --source-module=src-%{MODULE/./-}.html --source-entity=src-%{MODULE/./-}.html#%N $(filter-out %api-doc-dir hscolour,$^) && \
|
||||||
|
cp api-doc/index.html api-doc/modules-index.html
|
||||||
|
|
||||||
|
HSCOLOUR=HsColour -css
|
||||||
|
hscolour: api-doc-dir
|
||||||
|
echo "Generating colourised source" ; \
|
||||||
|
for f in *hs Ledger/*hs; do \
|
||||||
|
$(HSCOLOUR) -anchor $$f -oapi-doc/`echo "src/"$$f | sed -e's%/%-%g' | sed -e's%\.hs$$%.html%'` ; \
|
||||||
|
done ; \
|
||||||
|
cp api-doc/src-hledger.html api-doc/src-Main.html ; \
|
||||||
|
HsColour -print-css >api-doc/hscolour.css
|
||||||
|
|
||||||
|
#set up the hoogle web interface
|
||||||
|
#uses a hoogle source tree configured with --datadir=., patched to fix haddock urls/target frame
|
||||||
|
HOOGLESRC=/usr/local/src/hoogle
|
||||||
|
HOOGLE=$(HOOGLESRC)/dist/build/hoogle/hoogle
|
||||||
|
HOOGLEVER=`$(HOOGLE) --version |tail -n 1 | sed -e 's/Version /hoogle-/'`
|
||||||
|
hoogleweb: hoogleindex
|
||||||
|
echo "Configuring hoogle web interface" ; \
|
||||||
|
if test -f $(HOOGLE) ; then \
|
||||||
|
mkdir -p hoogle && \
|
||||||
|
cd hoogle && \
|
||||||
|
rm -f $(HOOGLEVER) && \
|
||||||
|
ln -s . $(HOOGLEVER) && \
|
||||||
|
cp -r $(HOOGLESRC)/src/res/ . && \
|
||||||
|
cp -p $(HOOGLE) index.cgi && \
|
||||||
|
touch log.txt && chmod 666 log.txt ; \
|
||||||
|
else \
|
||||||
|
echo "Could not find $(HOOGLE) in the hoogle source tree" ; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
#generate a hoogle index
|
||||||
|
hoogleindex: $(MAIN)
|
||||||
|
echo "Generating hoogle index" ; \
|
||||||
|
mkdir -p hoogle && \
|
||||||
|
$(HADDOCK) -o hoogle --hoogle $^ && \
|
||||||
|
cd hoogle && \
|
||||||
|
hoogle --convert=main.txt --output=default.hoo
|
||||||
|
|
||||||
|
cleandocs:
|
||||||
|
rm -rf api-doc hoogle
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
# RELEASING
|
||||||
|
|
||||||
# version numbering, releasing etc.
|
|
||||||
#
|
|
||||||
# Places where hledger's version number makes an appearance:
|
# Places where hledger's version number makes an appearance:
|
||||||
# hledger --version
|
# hledger --version
|
||||||
# hledger's cabal file
|
# hledger's cabal file
|
||||||
@ -189,12 +283,59 @@ tagrelease:
|
|||||||
sdist:
|
sdist:
|
||||||
cabal sdist
|
cabal sdist
|
||||||
|
|
||||||
|
# display a hackage upload command reminder
|
||||||
hackageupload:
|
hackageupload:
|
||||||
@echo please do: cabal upload dist/hledger-$(VERSION).tar.gz -v3
|
@echo please do: cabal upload dist/hledger-$(VERSION).tar.gz -v3
|
||||||
|
|
||||||
|
# send unpushed patches to the mail list
|
||||||
|
send:
|
||||||
|
darcs send http://joyful.com/repos/hledger --to=hledger@googlegroups.com --edit-description
|
||||||
|
|
||||||
# update emacs TAGS file
|
# push patches to the main repo with ssh
|
||||||
tag:
|
push:
|
||||||
|
darcs push joyful.com:/repos/hledger
|
||||||
|
|
||||||
|
# show project stats useful for release notes
|
||||||
|
stats: showlastreleasedate showreleaseauthors showloc showerrors showlocalchanges showreleasechanges bench
|
||||||
|
|
||||||
|
showreleaseauthors:
|
||||||
|
@echo Patch authors since last release:
|
||||||
|
@darcs changes --from-tag . |grep '^\w' |cut -c 31- |sort |uniq
|
||||||
|
@echo
|
||||||
|
|
||||||
|
showloc:
|
||||||
|
@echo Lines of non-test code:
|
||||||
|
@sloccount `ls {,Ledger/}*.hs |grep -v Tests.hs` | grep haskell:
|
||||||
|
@echo Lines of test code:
|
||||||
|
@sloccount Tests.hs | grep haskell:
|
||||||
|
@echo
|
||||||
|
|
||||||
|
showlastreleasedate:
|
||||||
|
@echo Last release date:
|
||||||
|
@darcs changes --from-tag . | tail -2
|
||||||
|
@echo
|
||||||
|
|
||||||
|
showerrors:
|
||||||
|
@echo Known errors:
|
||||||
|
@awk '/^** errors/, /^** / && !/^** errors/' NOTES | grep '^\*\*\* ' | tail +1
|
||||||
|
@echo
|
||||||
|
|
||||||
|
showlocalchanges:
|
||||||
|
@echo Local changes:
|
||||||
|
@-darcs push joyful.com:/repos/hledger --dry-run | grep '*' | tac
|
||||||
|
@echo
|
||||||
|
|
||||||
|
showreleasechanges:
|
||||||
|
@echo "Changes since last release: ("`darcs changes --from-tag . --count`")"
|
||||||
|
@darcs changes --from-tag . | grep '*'
|
||||||
|
@echo
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
# MISCELLANEOUS
|
||||||
|
|
||||||
|
tag: emacstags
|
||||||
|
|
||||||
|
emacstags:
|
||||||
@rm -f TAGS; hasktags -e *hs Ledger/*hs hledger.cabal
|
@rm -f TAGS; hasktags -e *hs Ledger/*hs hledger.cabal
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@ -203,109 +344,3 @@ clean:
|
|||||||
Clean: clean clean-docs
|
Clean: clean clean-docs
|
||||||
rm -f hledger TAGS tags
|
rm -f hledger TAGS tags
|
||||||
|
|
||||||
# docs
|
|
||||||
|
|
||||||
DOCS=README NEWS
|
|
||||||
|
|
||||||
# rebuild all docs
|
|
||||||
docs: pdf api-docs
|
|
||||||
|
|
||||||
# rebuild pdf docs
|
|
||||||
pdf:
|
|
||||||
for d in $(DOCS); do rst2pdf $$d -o doc/$$d.pdf; done
|
|
||||||
|
|
||||||
# rebuild api docs
|
|
||||||
# We munge haddock and hoogle into a rough but useful framed layout.
|
|
||||||
# For this to work the hoogle cgi must be built with base target "main".
|
|
||||||
api-docs: haddock hoogleweb
|
|
||||||
echo "Converting api docs to frames" ; \
|
|
||||||
sed -i -e 's%^></HEAD%><base target="main"></HEAD%' api-doc/modules-index.html ; \
|
|
||||||
cp doc/misc/api-doc-frames.html api-doc/index.html ; \
|
|
||||||
cp doc/misc/hoogle-small.html hoogle
|
|
||||||
|
|
||||||
# build and preview the api docs
|
|
||||||
BROWSER=open
|
|
||||||
view-api-docs: api-docs
|
|
||||||
$(BROWSER) api-doc/index.html
|
|
||||||
|
|
||||||
api-doc-dir:
|
|
||||||
mkdir -p api-doc
|
|
||||||
|
|
||||||
MAIN=hledger.hs
|
|
||||||
|
|
||||||
# --ignore-all-exports here means these are actually implementation docs
|
|
||||||
HADDOCK=haddock -B `ghc --print-libdir` --no-warnings --ignore-all-exports $(subst -D,--optghc=-D,$(BUILDFLAGS))
|
|
||||||
haddock: api-doc-dir hscolour $(MAIN)
|
|
||||||
echo "Generating haddock api docs with source" ; \
|
|
||||||
$(HADDOCK) -o api-doc -h --source-module=src-%{MODULE/./-}.html --source-entity=src-%{MODULE/./-}.html#%N $(filter-out %api-doc-dir hscolour,$^) && \
|
|
||||||
cp api-doc/index.html api-doc/modules-index.html
|
|
||||||
|
|
||||||
HSCOLOUR=HsColour -css
|
|
||||||
hscolour: api-doc-dir
|
|
||||||
echo "Generating colourised source" ; \
|
|
||||||
for f in *hs Ledger/*hs; do \
|
|
||||||
$(HSCOLOUR) -anchor $$f -oapi-doc/`echo "src/"$$f | sed -e's%/%-%g' | sed -e's%\.hs$$%.html%'` ; \
|
|
||||||
done ; \
|
|
||||||
cp api-doc/src-hledger.html api-doc/src-Main.html ; \
|
|
||||||
HsColour -print-css >api-doc/hscolour.css
|
|
||||||
|
|
||||||
#set up the hoogle web interface
|
|
||||||
#uses a hoogle source tree configured with --datadir=., patched to fix haddock urls/target frame
|
|
||||||
HOOGLESRC=/usr/local/src/hoogle
|
|
||||||
HOOGLE=$(HOOGLESRC)/dist/build/hoogle/hoogle
|
|
||||||
HOOGLEVER=`$(HOOGLE) --version |tail -n 1 | sed -e 's/Version /hoogle-/'`
|
|
||||||
hoogleweb: hoogleindex
|
|
||||||
echo "Configuring hoogle web interface" ; \
|
|
||||||
if test -f $(HOOGLE) ; then \
|
|
||||||
mkdir -p hoogle && \
|
|
||||||
cd hoogle && \
|
|
||||||
rm -f $(HOOGLEVER) && \
|
|
||||||
ln -s . $(HOOGLEVER) && \
|
|
||||||
cp -r $(HOOGLESRC)/src/res/ . && \
|
|
||||||
cp -p $(HOOGLE) index.cgi && \
|
|
||||||
touch log.txt && chmod 666 log.txt ; \
|
|
||||||
else \
|
|
||||||
echo "Could not find $(HOOGLE) in the hoogle source tree" ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
#generate a hoogle index
|
|
||||||
hoogleindex: $(MAIN)
|
|
||||||
echo "Generating hoogle index" ; \
|
|
||||||
mkdir -p hoogle && \
|
|
||||||
$(HADDOCK) -o hoogle --hoogle $^ && \
|
|
||||||
cd hoogle && \
|
|
||||||
hoogle --convert=main.txt --output=default.hoo
|
|
||||||
|
|
||||||
cleandocs:
|
|
||||||
rm -rf api-doc hoogle
|
|
||||||
|
|
||||||
# misc
|
|
||||||
|
|
||||||
stats: showlastreleasedate showreleaseauthors showloc showerrors showlocalchanges showreleasechanges bench
|
|
||||||
|
|
||||||
showreleaseauthors:
|
|
||||||
@echo Patch authors since last release:
|
|
||||||
@darcs changes --from-tag . |grep '^\w' |cut -c 31- |sort |uniq
|
|
||||||
|
|
||||||
showloc:
|
|
||||||
@echo Lines of non-test code:
|
|
||||||
@sloccount `ls {,Ledger/}*.hs |grep -v Tests.hs` | grep haskell:
|
|
||||||
@echo Lines of test code:
|
|
||||||
@sloccount Tests.hs | grep haskell:
|
|
||||||
|
|
||||||
showlastreleasedate:
|
|
||||||
@echo Last release date:
|
|
||||||
@darcs changes --from-tag . | tail -2
|
|
||||||
|
|
||||||
showerrors:
|
|
||||||
@echo Known errors:
|
|
||||||
@awk '/^** errors/, /^** / && !/^** errors/' NOTES | grep '^\*\*\* ' | tail +1
|
|
||||||
|
|
||||||
showlocalchanges:
|
|
||||||
@echo Changes in local repo:
|
|
||||||
@-darcs push joyful.com:/repos/hledger --dry-run | grep '*' | tac
|
|
||||||
|
|
||||||
showreleasechanges:
|
|
||||||
@echo "Changes since last release: ("`darcs changes --from-tag . --count`")"
|
|
||||||
@darcs changes --from-tag . | grep '*'
|
|
||||||
|
|
||||||
|
|||||||
13
bench.tests
13
bench.tests
@ -1,8 +1,7 @@
|
|||||||
# speed tests for tools/bench.hs and "make bench"
|
# tests for "make bench" - one command per line, without the executable
|
||||||
|
|
||||||
-f sample.ledger balance
|
-f 1000.ledger balance # old
|
||||||
-f 1000.ledger balance
|
-f 100x100x10.ledger balance
|
||||||
-f 10000.ledger balance
|
-f 1000x1000x10.ledger balance
|
||||||
#-f 100000.ledger balance
|
-f 10000x1000x10.ledger balance
|
||||||
# user's ledger
|
#-f 100000x1000x10.ledger balance
|
||||||
#balance
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user