Initial revision.
authorChris Hanson <org/chris-hanson/cph>
Thu, 21 Dec 2000 21:50:45 +0000 (21:50 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 21 Dec 2000 21:50:45 +0000 (21:50 +0000)
v7/src/README.txt [new file with mode: 0644]

diff --git a/v7/src/README.txt b/v7/src/README.txt
new file mode 100644 (file)
index 0000000..557d6a7
--- /dev/null
@@ -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.
+\f
+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.