home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mitsch75.zip / scheme-7_5_17-src.zip / scheme-7.5.17 / src / README.txt < prev    next >
Text File  |  2001-02-23  |  4KB  |  125 lines

  1. Structure and construction of the MIT Scheme source tree
  2.  
  3. $Id: README.txt,v 1.2 2001/02/23 16:16:38 cph Exp $
  4.  
  5. Directories
  6. ===========
  7.  
  8. MIT Scheme is a large program consisting of many subdirectories.
  9. These subdirectories can be further grouped together into rough
  10. functional subsystems.
  11.  
  12. The core subsystem consists of these directories:
  13.  
  14. * "microcode" contains the C code that is used to build the executable
  15.   programs "scheme" and "bchscheme".
  16.  
  17. * "runtime" contains the bulk of the run-time library, including
  18.   almost everything documented in the reference manual.
  19.  
  20. * "runtime-check" is a build directory used to make alternate run-time
  21.   library binaries that are safer than the standard binaries.  The
  22.   standard binaries are compiled with type-checking disabled for many
  23.   common operations; the alternate binaries have type-checking
  24.   enabled.
  25.  
  26. * "sos" contains the code for the SOS object-oriented programming
  27.   extension.
  28.  
  29. * "win32" contains extra parts of the run-time library that are
  30.   specific to the Microsoft Windows platform.
  31.  
  32. The compiler subsystem consists of these three directories:
  33.  
  34. * "sf" contains a program that translates Scheme source code to an
  35.   internal binary format called SCode.  SCode is the internal
  36.   representation used by the MIT Scheme interpreter.  The "sf" program
  37.   also performs a handful of optimizations, such as user-directed beta
  38.   substitution and early binding of known variables such as CAR.
  39.  
  40. * "compiler" contains the native-code compiler.  This program
  41.   translates SCode to machine-language instructions.
  42.  
  43. * "cref" is a cross-reference program that also implements a
  44.   rudimentary module system.
  45.  
  46. The editor subsystem consists of two directories:
  47.  
  48. * "edwin" contains our Emacs-like editor written in Scheme.
  49.  
  50. * "imail" contains an email-reading program for Edwin.
  51.  
  52. These are miscellaneous extras:
  53.  
  54. * "6001" is extra code used here at MIT for teaching 6.001, our
  55.   introductory computer-science course based on "Structure and
  56.   Interpretation of Computer Programs".  "sicp" contains an older
  57.   version of this code that is no longer in use (and probably no
  58.   longer works).
  59.  
  60. * "etc" contains miscellaneous files for building the system.
  61.  
  62. * "rcs" is a parser for RCS files.  It also contains a program for
  63.   generating merged log files, in RCS or ChangeLog format, for
  64.   directory trees under RCS or CVS control.
  65.  
  66. These directories are no longer actively in use and the code they
  67. contain may not work:
  68.  
  69. * "pcsample" contains a profiling extension.
  70.  
  71. * "swat" contains an extension that interfaces MIT Scheme to the Tk
  72.   graphical toolkit.
  73.  
  74. * "wabbit" contains program for finding all of the objects that
  75.   contain pointers to a given object.
  76.  
  77. Building from source on unix systems
  78. ====================================
  79.  
  80. Building MIT Scheme from the CVS sources is a multi-stage process.
  81. The system has been designed around a number of "build states" and
  82. specific commands that move the system from one build state to
  83. another.  These are the build states, ordered from least to most
  84. "built".
  85.  
  86. * The `CVS' state is the initial state of the tree when it is freshly
  87.   checked out from CVS.
  88.  
  89. * The `distribution' state is what we distribute to the world.  In
  90.   this state, all of the target-system independent configuration has
  91.   been done.
  92.  
  93. * In the `configured' state, the tree is customized for a particular
  94.   target system, but it is not yet compiled.
  95.  
  96. * In the `compiled' state, the tree is fully compiled.
  97.  
  98. The following table shows the commands are used to transition the
  99. system from one build state to another.  All of the commands must be
  100. run while the working directory is the top-level directory of the
  101. source tree.
  102.  
  103.     From        To        Command
  104.     ------------    ------------    ---------------------
  105.     CVS        distribution    ./Setup.sh
  106.     distribution    configured    ./configure
  107.     configured    compiled    make
  108.     compiled    configured    make clean
  109.     compiled    distribution    make distclean
  110.     compiled    CVS        make maintainer-clean
  111.     configured    distribution    make distclean
  112.     configured    CVS        make maintainer-clean
  113.  
  114. The following sequence of commands can be used to rebuild MIT
  115. Scheme from the CVS sources and install it:
  116.  
  117.     ./Setup.sh
  118.     ./configure
  119.     make
  120.     make install
  121.  
  122. Note that the "./Setup.sh" command requires a compiler that supports
  123. the "-M" option for generating dependencies.  Normally this step is
  124. executed on a GNU/Linux system.
  125.