Scheme 48 Windows port
----------------------

Starting with version 1.3, Scheme 48 has a native Windows port, which
works on Windows NT 4.0 and above (including Windows 2000, XP and
Vista, but not Windows 95, Windows 98, or Windows ME).

Specifically, the following caveats apply to the Windows port:

o The "old-style" interface to loading external code dynamically
  doesn't work.  (But the new interface works---see doc\news.txt and
  the documentation.)
o The Posix libraries don't work (and probably never will, at least
  not in the current form).

Installing Scheme 48 from the installer
---------------------------------------

To install Scheme 48, download the .msi file and double-click on it.
This requires Windows Installer version 2.0 or greater to work.

Building Scheme 48 from source
------------------------------

The Scheme 48 developers build the VM using Microsoft Visual C++
2010 Express Edition, which can be downloaded for free from the
Microsoft web site.

In order to build Scheme 48 from scratch, the following steps are
needed:

- install a recent regular release of Scheme 48
- generate the various Unicode tables via build\generate-unicode-info.bat (see below)
- generate the initial image via build\build-initial-image.bat (see below)
- generate the C headers via build\generate-c-header.bat (see below)
- generate the C code for the VM and the BIBOP GC (see below)
- build the VM itself (see below)
- build scheme48.image via build\build-usual-image.bat (see below)
- generate a batch file to run Scheme 48
- run the test suite via build\check.bat

To run the various batch files, you should be sitting in a shell in
the root of the Scheme 48 source-code hierarchy.

If you have Boo (or are willing to download it), you can use
build\BuildS48.boo to perform the above steps with far less typing.
Read the comments at the beginning of BuildS48.boo for instructions.

You can then start Scheme 48 by saying:

scheme48



build\generate-unicode-info.bat
  This builds the Unicode tables from source.

  build\generate-unicode-info.bat "C:\Program Files\Scheme 48\Scheme 48 1.8\scheme48"

build\build-initial-image.bat
  This builds build\initial.image-32 from source.

  It requires a command-line argument specifying how to start up a
  Scheme 48 REPL.

  Before running it, you need to generate build\filenames.bat via

  <Scheme 48> -a batch < build\extract-filenames.scm
  where <Scheme 48> starts up a Scheme 48 REPL, for example
  "C:\Program Files\Scheme 48\Scheme 48 1.8\scheme48" -a batch < build\extract-filenames.scm

  build\build-initial-image.bat "C:\Program Files\Scheme 48\Scheme 48 1.8\scheme48"

build\generate-c-header.bat
  This generates the c\scheme48.h header file needed for compiling
  various VM extensions.

  It requires a command-line argument specifying how to start up a
  Scheme 48 REPL.

  Example:

  build\generate-c-header.bat "C:\Program Files\Scheme 48\Scheme 48 1.8\scheme48"

build\compile-vm.bat
build\compile-bibop-gc.bat
  This builds the VM C sources from Scheme.

  It requires a command-line argument specifying how to start up a
  Scheme 48 REPL.

  build\compile-vm.bat "C:\Program Files\Scheme 48\Scheme 48 1.8\scheme48"
  build\compile-bibop-gc.bat "C:\Program Files\Scheme 48\Scheme 48 1.8\scheme48"

building the VM and dependent DLLs:
  To compile the VM, load the scheme48.sln "solution" file into Visual
  C++, choose a configuration ("Win32 Debug" or "Win32 Release") and
  build the entire solution.

build\build-usual-image.bat
  This generates the default scheme48.image from build\initial.image.

  It requires six command-line arguments:

  - the root directory of the Scheme 48 sources
    *with a trailing backslash*
  - the full path of the installed scheme/ subdirectory of the Scheme
    48 sources
  - the full path of the directory containing external code
  - the name of the image file to be generated
  - the name of the VM executable
  - the filename of the initial image

  Example (supposing the Scheme 48 root directory sits at c:\src\s48):

  build\build-usual-image.bat ".\" "C:\src\s48\scheme" "C:\src\s48" scheme48.image scheme48vm.exe build\initial.image-32

build\generate-go.bat
  This generates a batch file to start Scheme 48.

  It requires three command-line arguments:

  - the name of the batch file to produce
  - the full path of the VM executable
  - the full path of the image file

  Example (supposing the Scheme 48 root directory sits at c:\src\s48):

  build\generate-go.bat scheme48.bat "c:\src\s48\scheme48vm.exe" "c:\src\s48\scheme48.image"

build\check.bat
  This runs the test cases that should succeed on Windows.

  It requires a command-line argument specifying the Scheme 48
  executable to check.

  Example (using scheme48.bat generated by build\generate-go.bat above):

  build\check.bat "C:\src\s48\scheme48.bat"
