Scheme 48

Current release

Previous releases

R5RS

Development

More code

Scheme links

Scheme 48 development

This page is a very rudimentary description on how to get the current sources for Scheme 48 from the revision-control repository and building the system from scratch.

Currently, these instructions are for Unix, only.

Getting Mercurial

The Mercurial home page is here.

A pretty good book-in-progress on Mercurial is here.

From here on, we assume you have an hg executable in your path. Make sure your .hgrcfile contains a proper user name.

Checking out the code

The repositories for the development and the stable code are separate. Both are reachable via http (browsable in a regular browser, but read-only).

Stable/release repository:
http://www.deinprogramm.de/cgi-bin/hgs48-stable.cgi
Development:
http://www.deinprogramm.de/cgi-bin/hgs48.cgi

To check out one of these, do:

     hg clone <url> <dir>

This will place a clone of the repository in <dir>.

Keeping your source code up to date

Go to your clone of the repository. Say

     hg pull -u

Note that the -u means that Mercurial will first pull the changes from the upstream repository to your repository, and then update your working copy. If you leave out the -u, only the repository will be updated, and you may need to do hg update to update your working copy.

Building from scratch

Make sure you have a current version of autoconf as well as a reasonably recent version of Scheme 48 installed in your path.

Do this:

     ./autogen.sh

As a rule of thumb, you need to rerun autoconf (or autoreconf - look in autogen.sh for the correct command) when configure.in was changed; rerun ./config.status when Makefile.in has changed; rerun make c/scheme48.h when c/scheme48.h.in has changed; rerun make i-know-what-i-am-doing when anything in scheme/vm has changed. Always rerun make image. When in doubt, rerun it all.

When making changes configure.in,

     ./config.status --recheck && ./config.status
is equivalent to re-running configure with all the arguments specified on its previous invocation.

When you do all this for the very first time, you might get a warning that filenames.make is missing. This is a generated file that gets included by the makefile, and thus an unavoidable circular dependency. You can generally ignore the warning, but should make sure it has been generated by the end of the build.

Note that running autogen.sh or make image can take a long time when regenerating the various Unicode tables.