Installing Snow
The Snow framework is available in several implementations. Specialized Snow implementations are tailor made for a given Scheme system. The generic Snow implementation works on most Scheme systems but it does not achieve the same level of integration with the host Scheme system. It provides features which are helpful for testing portability of newly written packages and it is useful when a specialized implementation of Snow is not yet available for the host Scheme system.Specialized Snow implementations
The specialized Snow implementations are maintained elsewhere. Some Scheme systems have builtin support for the Snow framework while others need a separate package to be configured and installed.
Please see the Links for a list of the known specialized Snow framework implementations.
Generic Snow implementation
The generic Snow works on several Scheme systems including Bigloo, Chez, Chicken, Gambit, Gauche, Guile, Kawa, MzScheme, Scheme48, SCM, Scsh, and STklos. Work is underway to support more Scheme systems and to improve the level of integration with the host Scheme system.
Prerequisites
By design, the generic Snow framework is implemented using the Snow
framework. It is mainly written in Scheme and has few dependencies on
the host Scheme system and host operating system. It does not depend
on utility programs of the host operating system during the normal
course of operation but the installation script does depend on a few
Unix utilities such as sed and make. To
install on Windows the Cygwin
and MSYS/MinGW systems can be used.
It is assumed that at least one of the supported Scheme systems is
installed on the target computer. The installation script will
automatically detect the installed Scheme systems and perform a self
test to see which ones are compatible with Snow. When there are
compatibility problems the script will flag any Scheme system that
should be reinstalled with a newer version. The --install-hosts
option of the configure script can be used to automatically
install supported Scheme systems when needed.
Steps
- Download the most recent version of Snow:
-
Run the
configurescript followed by "make install". For example:% gunzip -c snow-generic-v1_1_2.tgz | tar xf - % cd snow-generic/v1.1.2 % ./configure --site-root=$HOME/.snow-site --install-hosts=yes % make install % export PATH=$HOME/.snow-site/current/bin:$PATH % ./test.scm % SNOW_HOST=guile ./test.scm % SNOW_HOST=all ./test.scm
Options
The configure script accepts these options:
--site-root=dir-
use dir as the directory where Snow
stores site-wide packages and the
Snow executables (
snow,snowman, etc) --user-root=dir-
use dir as the subdirectory of
$HOMEwhere Snow stores user specific packages and configuration files (including the certificates for signing and verifying packages) --host=host-
use host as the default host Scheme
system (host is one of
bigloo,chez,chicken,gambit, ...) --install-hosts=yes-or-no- force the automatic installation of the host Scheme systems supported by the generic Snow that are not currently installed or whose version is too old to support the generic Snow
The defaults are:
site-root = /usr/share/snow
user-root = .snow
host = will be requested interactively
install-hosts = no
The --site-root option is useful to experiment with Snow
before performing a site-wide installation (which normally requires
root privileges for writing into /usr/share).
The --install-hosts option is useful to test
the portability of newly written packages, particularly
in conjunction with the SNOW_HOST=all option.
Maintenance
After an initial manual installation of the generic Snow,
subsequent runs of the configure script will default the
configure options to the initial configure options.
New versions can be installed by using the
snowman package management program with the command
"snowman install snow-generic". When a new
version is installed, it is necessary to reinstall all non-core
Snow packages because the new version of the generic Snow implementation
may use a different filesystem structure for installed packages.