Commit 7257afbf authored by Simon Marlow's avatar Simon Marlow

knock up a more up to date README

parent 022eb3a5
This is the root directory of the "NoFib Haskell benchmark suite";
version 2.05 (to match our other Glasgow functional-programming
This is the root directory of the "NoFib Haskell benchmark suite". It
should be part of a GHC source tree, that is the 'nofib' directory
should be at the same level in the tree as 'compiler' and 'libraries'.
The main change between version 2.01 and 2.05 is that the programs
have been converted to Haskell 1.4.
To run the tests:
We have yet to release the NoFib stuff as we intended -- everything
tidied up -- because it's a lot of work for very few brownie points.
Probably we never will. As it is, however, it is quite useful as a
Haskell-compiler test suite, so we are not keeping it to ourselves.
$ make clean
$ make boot
$ make 2>&1 | tee nofib-log
This version has *MANY* shortcomings, some of which I hope you will
report, so we can get something "real" out the door.
will put the results in the file 'nofib-log'.
There are some restrictions on the use of this software. First of
all, the copyright for the individual programs remains with their
authors (unless they have explicitly said otherwise). Second, we (the
Glasgow Haskell project at University of Glasgow) retain the copyright
to any changes made to the programs *and* to the collection of
programs itself. Third, for 2.05, it would be dishonest to suggest
that any results are related to the still-in-the-future "NoFib
benchmark suite". So please do not make any such claims.
To compare the results of multiple runs, use the program in
../utils/nofib-analyse. Something like this:
A position paper about the suite is in docs/paper/paper.dvi, and it
includes more than enough indication as to how we intend this suite to
be used. Of course, we positively *welcome* honest and creative uses
of this suite.
$ nofib-analyse nofib-log-6.4.2 nofib-log-6.6
The file BUILDING provides some direction about setting up the suite,
in order to run it. [NOTE: doesn't exist yet; see sketchy notes below]
to generate a comparison of the runs in captured in 'nofib-log-6.4.2'
and 'nofib-log-6.6'. When making comparisons, be careful to ensure
that the things that changed between the builds are only the things
that you *wanted* to change. There are lots of variables: machine,
GHC version, GCC version, C libraries, static vs. dynamic GMP library,
build options, run options, and probably lots more. To be on the safe
side, make both runs on the same unloaded machine.
You may sent comments or bug reports about this suite either to the
Glasgow Haskell bugs list <>.
They will be most welcome.
To get instruction counts, memory reads/writes, and "cache misses",
you'll need to get hold of Cachegrind, which is part of Valgrind
== SKETCHY NOTES ==================================================
Quick and dirty
Find a program you are interested in, make up a "makefile" by hand,
and try it :-)
Doing things properly
* This version of nofib only supports ghc-2.05, so if you try to use
other versions of GHC or different Haskell systems, you're going to
run into some obstacles.
* Plop the nofib distribution inside the Glasgow fptools suite, i.e.,
unpack nofib at the toplevel at the same level as directories such as
ghc/ and glafp-utils/.
* Have a look in mk/ to see what variables control the nofib setup.
If you want to change these, put the new settings for them in the build-specific
setup file, mk/
* Run ./configure
* Assuming you haven't built the compiler, you will need to do that first.
Type "make boot" (or whatever make is called on your system)
followed by "make all".
* cd nofib/
* Ready the nofib suite for some use, by running `make boot', which
takes care of creating Makefile dependendencies.
* If all that worked -- and you'll know if it did -- then do:
% make -k >& make.log # to compile everything; save log for study
% make -k runtests >& runtests.log # also for study
There are some options you might want to tweak; search for nofib in
../mk/, and override settings in ../mk/ as usual.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment