Herbie depends on Racket, a dynamic language developed by Northeastern University. To install Herbie, one must first install Racket. Once Racket is installed, Herbie should run without problems.
Herbie currently supports Linux and OS X. Windows has known bugs
we are working to resolve, due to the lack of a
full math.h
library. Use
the official
installer to install Racket, or use distro-provided packages
provided they are version 6.4 or later of Racket (earlier versions
are not supported).
Test that Racket is installed correctly and has a correct version:
$ racket Welcome to Racket v6.4. > (exit)
Once Racket is installed, download the Herbie source from GitHub with:
git clone https://github.com/uwplse/herbie
If you go to the herbie
directory,
you should see a README.md
file, a directory named herbie
,
a directory named bench/
, and a variety of other directories.
Do a trial run of Herbie to make sure everything is installed and working correctly:
racket src/reports/run.rkt bench/hamming/
This command will take approximately fifteen minutes to run;
it runs Herbie on problems from Richard Hamming's
Numerical Methods for Scientists and Engineers, Chapter 3.
After the command completes,
a directory named graphs
should have appeared.
Open up the report.html
file inside with your browser;
you should see a listing of the expressions Herbie was run on,
most of which should be green.
A score of 24/28 or greater suggests that everything is working correctly.
If any of the test results are crashes (there will be a “crashes” count at the top),
installation issues are to blame.
Check that your Racket installation is at least version 6.1
and that you installed Racket from the official installation packages.
If you're confident the installation is correct
please report the error to the Herbie developers,
attaching an archive of the complete graphs/
directory.
If this all works correctly, you can make Herbie start up faster by byte-compiling it:
raco make src/reports/run.rkt
Once Herbie is installed and working correctly, check out the tutorial.