[commit: nofib] master: Build nofib-analyse with cabal v2-build (807930f)
git at git.haskell.org
git at git.haskell.org
Mon Feb 25 12:38:20 UTC 2019
Repository : ssh://git@git.haskell.org/nofib
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/807930f1cf47b5c1b6e9e39e7dd7f5f8b9de0567/nofib
>---------------------------------------------------------------
commit 807930f1cf47b5c1b6e9e39e7dd7f5f8b9de0567
Author: Oleg Grenrus <oleg.grenrus at iki.fi>
Date: Mon Feb 18 15:03:21 2019 +0200
Build nofib-analyse with cabal v2-build
>---------------------------------------------------------------
807930f1cf47b5c1b6e9e39e7dd7f5f8b9de0567
.gitignore | 2 ++
README.md | 28 +++++++++++++++-------------
mk/target.mk | 1 -
nofib-analyse/Makefile | 6 +++---
nofib-analyse/cabal.project | 2 ++
nofib-analyse/nofib-analyse.cabal | 17 +++++++++++++++++
6 files changed, 39 insertions(+), 17 deletions(-)
diff --git a/.gitignore b/.gitignore
index 80345db..d884c44 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,8 @@ cachegrind.out.*
cachegrind.out.summary
perf.data
perf.data.*
+dist-newstyle/
+.ghc.environment.*
# Specific generated files
nofib-analyse/nofib-analyse
diff --git a/README.md b/README.md
index 6e610a6..005db88 100644
--- a/README.md
+++ b/README.md
@@ -12,13 +12,6 @@ pick `$(which ghc)` or whatever the `HC` environment variable is set to.
Additional information can also be found on
[NoFib's wiki page](https://ghc.haskell.org/trac/ghc/wiki/Building/RunningNoFib).
-## Package Depedencies
-
-Please make sure you have the following packages installed for your
-system GHC:
- * html
- * regex-compat (will install: mtl, regex-base, regex-posix)
-
## Using
<details>
@@ -34,11 +27,7 @@ system GHC:
`git clone -c core.symlinks=true <URL>`.
</details>
-Install the [package dependencies](#package-dependencies):
-
-```
-$ cabal install html regex-compat
-```
+Install [`cabal-install-2.4`](https://www.haskell.org/cabal/download.html) or later.
Then, to run the tests, execute:
@@ -61,7 +50,7 @@ $ make EXTRA_HC_OPTS="-fllvm"
```
To compare the results of multiple runs, save the output in a logfile
-and use the program in `../utils/nofib-analyse`, for example:
+and use the program in `./nofib-analyse/nofib-analyse`, for example:
```
...
@@ -115,6 +104,19 @@ This is the default of its `-i` option, which is of course incompatible with
`mode=fast`. In that case, you should just set `-i` as appropriate, even
deactivate it with `-i 0`.
+## Boot vs. benchmarked GHC
+
+The `nofib-analyse` utility is compiled with `BOOT_HC` compiler,
+which may be different then the GHC under the benchmark.
+
+You can control which GHC you benchmark with `HC` variable
+
+```
+$ make clean
+$ make boot HC=ghc-head
+$ make HC=ghc-head 2>&1 | tee nofib-log-ghc-head
+```
+
## Configuration
There are some options you might want to tweak; search for nofib in
diff --git a/mk/target.mk b/mk/target.mk
index a8c92a2..3239feb 100644
--- a/mk/target.mk
+++ b/mk/target.mk
@@ -37,7 +37,6 @@ STDIN_FILE = $(wildcard $(NOFIB_PROG).stdin)
endif
endif
-
# Bogosity needed here to cope with .exe suffix for strip & size files.
# (shouldn't have to be our problem.)
ifneq "$(HC_FAIL)" "YES"
diff --git a/nofib-analyse/Makefile b/nofib-analyse/Makefile
index 0e9236b..229f804 100644
--- a/nofib-analyse/Makefile
+++ b/nofib-analyse/Makefile
@@ -4,7 +4,8 @@ include $(TOP)/mk/boilerplate.mk
PROG = nofib-analyse
$(PROG): *.hs
- $(BOOT_HC) -O -cpp --make Main -o $(PROG)
+ cabal v2-build -w $(BOOT_HC)
+ cp $$(cabal v2-exec -w $(BOOT_HC) -- which $(PROG)) $(PROG)
all :: $(PROG)
@@ -16,8 +17,7 @@ boot :: $(PROG)
.PHONY: mostlyclean clean distclean maintainer-clean
mostlyclean::
- rm -f CmdLine.hi GenUtils.hi Main.hi Slurp.hi
- rm -f CmdLine.o GenUtils.o Main.o Slurp.o
+ rm -rf dist-newstyle
clean:: mostlyclean
rm -f $(PROG)
diff --git a/nofib-analyse/cabal.project b/nofib-analyse/cabal.project
new file mode 100644
index 0000000..229326e
--- /dev/null
+++ b/nofib-analyse/cabal.project
@@ -0,0 +1,2 @@
+-- project file for "boot" utilities
+packages: .
diff --git a/nofib-analyse/nofib-analyse.cabal b/nofib-analyse/nofib-analyse.cabal
new file mode 100644
index 0000000..371b0a3
--- /dev/null
+++ b/nofib-analyse/nofib-analyse.cabal
@@ -0,0 +1,17 @@
+cabal-version: 2.4
+name: nofib-analyse
+version: 0
+
+executable nofib-analyse
+ default-language: Haskell2010
+ main-is: Main.hs
+ other-modules:
+ CmdLine
+ GenUtils
+ Slurp
+
+ build-depends:
+ , array
+ , base
+ , containers
+ , regex-compat
More information about the ghc-commits
mailing list