Download

The most recent available version is version 0.2.1, released March 27, 2008. Unpacking the packages will create a directory called svr-0.2.1; apart from that directory and the package, no other files will be created in the current directory. Unpack by running:
bzip2 -cd svr-0.2.1.tar.bz2 | tar xf -

Install

SVR assumes you are running some modern variant of Unix with the standard tools installed: GNU make, gcc, perl, and sh. The least-standard tool I use is wget; fink, DarwinPorts, RedHat, and Debian all have packages for wget that are easily installed. If you wish to modify the code and recompile it, you may also need recent versions of automake, autoconf, and libtool.

Because this is an early version of SVR, and I have not yet verified that versioning or uninstalling work properly, I recommend you install SVR in a non-standard directory, such as ~/svr-0.2.1. Uninstallation will then be as easy as simply removing that directory. To achieve this, after downloading and unpacking as per the directions above, copy and paste the following instructions:

cd svr-0.2.1
./configure --prefix=$HOME/svr-0.2.1
make
make install
You must have an internet connection for this to work: SVR requires a recent copy of the Boost libraries, and is not yet set up to use it locally, but rather downloads and builds it. Starting with 0.2.1, SVR no longer uses LAPACK.

Once installed as above, SVR will be in ~/svr-0.2.1/bin/svr. See Running SVR.

Configuration settings

SVR has mainly been developed under Mac OS X 10.4 using gcc version 4.2. It has been seen to run out of the box on many Mac-based and Linux-based platforms. Any version of gcc from 3.4 onwards is believed to work, though for best performance I strongly recommend using the most recent version of gcc. I have not tested using any other compiler; the SVR code extensively uses templates, which will tax many compilers that are less standards-obsessed than gcc.

Starting with version 0.2, SVR will compile using the default wordsize of your compiler. With gcc, you can use the --with-wordsize option to use a different number of bits; this may accidentally also work for some other compilers. For example, you can use:

./configure --prefix=$HOME/svr-0.2.1 --with-wordsize=64
to compile for 64 bits under OS X 10.4 (Tiger). Alternately, you can use a wordsize of 32 to save on memory usage if you have only small problems. On some operating systems it is substantially faster to use 64-bit mode, because gcc will assume an ancient processor in 32-bit mode and a less ancient one in 64-bit mode. The following gets the best performance of any configuration I have tested, when run on the same machine (or the same type of machine) as it is compiled on. As a downside, it turns off assertions, which makes diagnosing bugs harder. The improvement is on the order of 20% to 30% faster than the default flags:
./configure --prefix=$HOME/svr-0.2.1 --with-fastest-gcc-flags
This will try to use a set of flags that works very well on gcc-4.2; it should still be an improvement over the default on almost any compiler. You may also specify CC, CFLAGS, CXX, CXXFLAGS (for C and C++ respectively) on the command-line to choose the compiler and flags. The -m flags should generally be added to the compiler to ensure they are present in every phase:
./configure --prefix=$HOME/svr-0.2.1 CC="$HOME/my-gcc/bin/gcc -march=nocona" CFLAGS="-O3" CXX="/usr/local/bin/g++ -march=nocona" CXXFLAGS="-O3"
You may want to read the full list of configuration options.

Bug reports

If you notice a bug, please reconfigure and recompile with
./configure CFLAGS="-g" CXXFLAGS="-g" --prefix=$HOME/svr-0.2.1

Back to SVR home
Last modified by Benoît Hudson
Thu Mar 27 18:53:17 CDT 2008