From: Chris Hanson Date: Thu, 21 Dec 2000 21:50:45 +0000 (+0000) Subject: Initial revision. X-Git-Tag: 20090517-FFI~3047 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=574672bdfc2d4a35e96af0c07e8fc3a5a4d55224;p=mit-scheme.git Initial revision. --- diff --git a/v7/src/README.txt b/v7/src/README.txt new file mode 100644 index 000000000..557d6a78f --- /dev/null +++ b/v7/src/README.txt @@ -0,0 +1,124 @@ +Structure and construction of the MIT Scheme source tree + +$Id: README.txt,v 1.1 2000/12/21 21:50:45 cph Exp $ + +Directories +=========== + +MIT Scheme is a large program consisting of many subdirectories. +These subdirectories can be further grouped together into rough +functional subsystems. + +The core subsystem consists of these directories: + +* "microcode" contains the C code that is used to build the executable + programs "scheme" and "bchscheme". + +* "runtime" contains the bulk of the run-time library, including + almost everything documented in the reference manual. + +* "runtime-check" is a build directory used to make alternate run-time + library binaries that are safer than the standard binaries. The + standard binaries are compiled with type-checking disabled for many + common operations; the alternate binaries have type-checking + enabled. + +* "sos" contains the code for the SOS object-oriented programming + extension. + +* "win32" contains extra parts of the run-time library that are + specific to the Microsoft Windows platform. + +The compiler subsystem consists of these three directories: + +* "sf" contains a program that translates Scheme source code to an + internal binary format called SCode. SCode is the internal + representation used by the MIT Scheme interpreter. The "sf" program + also performs a handful of optimizations, such as user-directed beta + substitution and early binding of known variables such as CAR. + +* "compiler" contains the native-code compiler. This program + translates SCode to machine-language instructions. + +* "cref" is a cross-reference program that also implements a + rudimentary module system. + +The editor subsystem consists of two directories: + +* "edwin" contains our Emacs-like editor written in Scheme. + +* "imail" contains an email-reading program for Edwin. + +These are miscellaneous extras: + +* "6001" is extra code used here at MIT for teaching 6.001, our + introductory computer-science course based on "Structure and + Interpretation of Computer Programs". "sicp" contains an older + version of this code that is no longer in use (and probably no + longer works). + +* "etc" contains miscellaneous files for building the system. + +* "rcs" is a parser for RCS files. It also contains a program for + generating merged log files, in RCS or ChangeLog format, for + directory trees under RCS or CVS control. + +These directories are no longer actively in use and the code they +contain may not work. + +* "pcsample" contains a profiling extension. + +* "swat" contains an extension that interfaces MIT Scheme to the Tk + graphical toolkit. + +* "wabbit" contains program for finding all of the objects that + contain pointers to a given object. + +Building from source on unix systems +==================================== + +Building MIT Scheme from the CVS sources is a multi-stage process. +The system has been designed around a number of "build states" and +specific commands that move the system from one build state to +another. These are the build states, ordered from least to most +"built". + +* The `CVS' state is the initial state of the tree when it is freshly + checked out from CVS. + +* The `distribution' state is what we distribute to the world. In + this state, all of the target-system independent configuration has + been done. + +* In the `configured' state, the tree is customized for a particular + target system, but it is not yet compiled. + +* In the `compiled' state, the tree is fully compiled. + +The following table shows the commands are used to transition the +system from one build state to another. All of the commands must be +run while the working directory is the top-level directory of the +source tree. + + From To Command + ------------ ------------ --------------------- + CVS distribution ./Setup.sh + distribution configured ./configure + configured compiled make + compiled configured make clean + compiled distribution make distclean + compiled CVS make maintainer-clean + configured distribution make distclean + configured CVS make maintainer-clean + +The following sequence of commands can be used to rebuild MIT +Scheme from the CVS sources and install it: + + ./Setup.sh + ./configure + make + make install + +Note that the "./Setup.sh" command requires a compiler that supports +the "-M" option for generating dependencies. Normally this step is +executed on a GNU/Linux system.