the MIT/GNU Scheme project source repository on Savannah, with
additional plugins. The differences between this ``pucked'' version
and @code{master} have been kept to a minimum. At the moment they are
-focused on replacing the microcode modules with plugins. A complete
+focused on supporting a large library of plugins. A complete
list of user-visible changes is provided in @ref{Release Notes}.
@cindex Web site
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-Image saved on Saturday February 16, 2019 at 1:54:09 AM
- Release 10.1.10 || SF || LIAR/x86-64
+Image saved on Friday December 13, 2019 at 4:34:49 PM
+ Release 10.1.20 || SF || LIAR/x86-64
;Loading Edwin... done
@end smallexample
option is automatically supplied by GNU Emacs, and should not be given
under other circumstances.
+@item --interactive
+@opindex --interactive
+If this option isn't specified, and Scheme's standard @acronym{I/O} is
+not a terminal, Scheme will detach itself from its controlling
+terminal, which prevents it from getting signals sent to the process
+group of that terminal. If this option is specified, Scheme will not
+detach itself from the controlling terminal.
+
+This detaching behavior is useful for running Scheme as a background
+job. For example, using Bourne shell, the following will run Scheme
+as a background job, redirecting its input and output to files, and
+preventing it from being killed by keyboard interrupts or by logging
+out:
+
+@example
+mit-scheme < /usr/cph/foo.in > /usr/cph/foo.out 2>&1 &
+@end example
+
@item --nocore
@opindex --nocore
Specifies that Scheme should not generate a core dump under any
@deffn procedure sf filename [destination]
@code{sf} is the program that transforms a source-code file into binary
-SCode form. It performs numerous optimizations that can make your
+SCode form; it is used on machines that do not support native-code
+compilation. It performs numerous optimizations that can make your
programs run considerably faster than unoptimized interpreted code.
Also, the binary files that it generates load very quickly compared to
source-code files.
A @dfn{fixnum} is an exact integer that is small enough to fit in a
machine word. In MIT/GNU Scheme, fixnums are 26 bits on 32-bit
machines, and 58 bits on 64-bit machines; it is reasonable to assume
-that fixnums are at least 24 bits. Fixnums are signed and they are
-encoded using 2's complement.
+that fixnums are at least 24 bits. Fixnums are signed; they are encoded
+using 2's complement.
All exact integers that are small enough to be encoded as fixnums are
always encoded as fixnums---in other words, any exact integer that is
this is a @emph{bleeding edge} core. The head of the MIT/GNU Scheme
project's development branch on Savannah is merged in frequently.
-The experimental code in this ``pucked'' version is almost entirely
-contained in the new plugins. One ``old'' plugin, Edwin, has
-significant changes that accommodate Gtk screens, but this change
-should not be apparent to casual users. If your code does not hack
-Edwin and you previously said
+The experimental code unique to this ``pucked'' version of Scheme is
+almost entirely contained in the new plugins. One ``old'' plugin,
+Edwin, has significant changes that accommodate Gtk screens, but this
+change should not be apparent to casual users. If your code does not
+hack Edwin and you previously said
@example
mit-scheme --load my-code
@appendix Installation
MIT/GNU Scheme Pucked and its plugins are now available as packages
-for recent versions of Ubuntu on Intel@registeredsymbol{}64 and IA-32
+for recent versions of Ubuntu on Intel@registeredsymbol{}64
architecture machines. If
@uref{https://birchwood-abbey.net/~puck/Scheme/} has links to packages
for your Ubuntu, you can use your Ubuntu package manager to add,
"deb http://birchwood-abbey.net/ubuntu/18.04/ birchwood main"
@end example
-or by editing files in @file{/etc/apt/}. Note that if you are
-installing to an amd64 machine with ``multiarch'' enabled (such that
-the command @code{dpkg --print-foreign-architectures} prints
-@code{i386}) you will want to add @code{[arch=amd64]} after @code{deb}
-in the repository description to avoid spurious warnings.
+or by editing files in @file{/etc/apt/}.
Finally, use your package manager to update its list of available
packages and choose the Scheme plugins you would like to install.
following commands.
@example
-sudo apt-get update
-sudo apt-get install mit-scheme-pucked-x11-screen
+sudo apt update
+sudo apt install mit-scheme-pucked-x11-screen
@end example
Note that the Ubuntu version number is part of the source URL. This
allows new versions of Scheme and its plugins to be provided for old
versions of Ubuntu. (Normally you would upgrade to new versions of
Ubuntu to get new versions of Scheme.) However this means there may
-be @emph{three} packages named @code{mit-scheme-pucked} with the
-@emph{same} version, each compiled for Ubuntu 16.04, 18.04 or 18.10.
+be @emph{four} packages named @code{mit-scheme-pucked} with the
+@emph{same} version, each compiled for Ubuntu 16.04, 18.04, 19.04 and
+19.10.
When you upgrade to a new version of Ubuntu you should first remove
the @code{mit-scheme-pucked} package (which will remove all of its
plugins), then re-install them after changing the source URL (e.g. to
-@url{http://birchwood-abbey.net/ubuntu/18.10/}).
+@url{http://birchwood-abbey.net/ubuntu/19.10/}).
@example
-sudo apt-get remove mit-scheme-pucked
+sudo apt remove mit-scheme-pucked
sudo add-apt-repository -r \
- "deb http://birchwood-abbey.net/ubuntu/18.04/ birchwood main"
+ "deb http://birchwood-abbey.net/ubuntu/19.04/ birchwood main"
sudo add-apt-repository \
- "deb http://birchwood-abbey.net/ubuntu/18.10/ birchwood main"
-sudo apt-get update
-sudo apt-get install mit-scheme-pucked-x11-screen
+ "deb http://birchwood-abbey.net/ubuntu/19.10/ birchwood main"
+sudo apt update
+sudo apt install mit-scheme-pucked-x11-screen
@end example
You can also download the package files and install them by hand.
@uref{https://birchwood-abbey.net/~puck/Scheme/}
@end example
-You will need to know your Ubuntu version (e.g. 18.10) and Debian
+You will need to know your Ubuntu version (e.g. 19.10) and Debian
machine architecture (e.g. amd64), then click on the corresponding
link. You will need to do this for your chosen plugin, all of the
plugins it requires, and Scheme itself (the @code{mit-scheme-pucked}
Then verify the signature on the @file{.changes} file like this:
@example
-gpg --verify ~/Downloads/mit-scheme-pucked_10.1.10-1_amd64.changes
+gpg --verify ~/Downloads/mit-scheme-pucked_10.1.20-1_amd64.changes
@end example
And compare the checksum in the @file{.changes} file to one
computed from your downloaded file.
@example
-grep mit-scheme-pucked_10.1.10-1_amd64.deb \
- mit-scheme-pucked_10.1.10-1_amd64.changes
-sha256sum mit-scheme-pucked_10.1.10-1_amd64.deb
+grep mit-scheme-pucked_10.1.20-1_amd64.deb \
+ mit-scheme-pucked_10.1.20-1_amd64.changes
+sha256sum mit-scheme-pucked_10.1.20-1_amd64.deb
@end example
After you have downloaded and verified all of the required files, you
@code{mit-scheme-pucked-x11-screen}.
@verbatim
P=~/Downloads/mit-scheme-pucked
-sudo dpkg --install ${P}_10.1.10-1_amd64.deb
-sudo dpkg --install ${P}-gdbm_0.2.1-1_amd64.deb
-sudo dpkg --install ${P}-blowfish_0.2.1-1_amd64.deb
-sudo dpkg --install ${P}-edwin_3.116.1-1_amd64.deb
-sudo dpkg --install ${P}-x11_0.2.1-1_amd64.deb
-sudo dpkg --install ${P}-x11-screen_0.2.1-1_amd64.deb
+sudo dpkg --install ${P}_10.1.20-1_amd64.deb
+sudo dpkg --install ${P}-gdbm_1.0.6-1_amd64.deb
+sudo dpkg --install ${P}-blowfish_1.1.6-1_amd64.deb
+sudo dpkg --install ${P}-edwin_3.117.7-1_amd64.deb
+sudo dpkg --install ${P}-x11_1.3.4-1_amd64.deb
+sudo dpkg --install ${P}-x11-screen_1.0.6-1_amd64.deb
@end verbatim
As mentioned above, when you upgrade to a new version of Ubuntu you
@item
CentOS-like systems: @code{gcc} @code{make} @code{ncurses-devel}
@item
-macOS systems: @code{Xcode}
+macOS systems: Command line developer tools @samp{xcode-select --install}
@end itemize
The Scheme interpreter is built from C code and installed much like
computer has an older Intel IA-32 (32 bit) CPU, your architecture is
named @code{i386}. If it has a newer Intel64 CPU (64 bit, e.g. a Core
or an i3 or i5 or i7), it is named @code{x86-64}. The binary archives
-contain machine instructions for one of these, or for 32 and 64 bit
-virtual machines named @code{svm1-32} and @code{svm1-64}. The virtual
-machines are part of the Scheme interpreter and are about 6 times
-slower than the native machine.
+contain machine instructions for one of these.
Click on the name of your Scheme machine architecture in the list of
binaries for the core system. Save the file, which should be named
-something like @file{mit-scheme-pucked-10.1.10-i386.tar.gz}.
+something like @file{mit-scheme-pucked-10.1.20-x86-64.tar.gz}.
Compile the Scheme interpreter using the following steps:
@enumerate
@item
Unpack the archive to create your build directory, e.g.@:
-@file{mit-scheme-pucked-10.1.10}. For example,
+@file{mit-scheme-pucked-10.1.20}. For example,
@example
-tar xzf mit-scheme-pucked-10.1.10-i386.tar.gz
+tar xzf mit-scheme-pucked-10.1.20-x86-64.tar.gz
@end example
-will create a new directory @file{mit-scheme-pucked-10.1.10}.
+will create a new directory @file{mit-scheme-pucked-10.1.20}.
@item
Move into the @file{src} subdirectory of the new directory:
@example
-cd mit-scheme-pucked-10.1.10/src
+cd mit-scheme-pucked-10.1.20/src
@end example
@item
By default, the software will be installed in @file{/usr/local}, in
the subdirectories @file{bin} and @file{lib}. If you want it
-installed somewhere else, for example @file{/opt}, pass the
-@option{--prefix} option to the configure script, as in the
-command line below.
-
-@example
-./configure --prefix=/opt
-@end example
+installed somewhere else, for example @file{/opt/mit-scheme}, pass the
+@option{--prefix} option to the configure script, as in
+@kbd{./configure --prefix=/opt/mit-scheme}.
The configure script accepts all of the normal arguments for such
scripts, and additionally accepts some that are specific to MIT/GNU
Scheme. To see the possible arguments and their meanings, run the
-command @code{./configure --help}.
+command @kbd{./configure --help}.
@item
Build the software:
make install
@end example
+Depending on configuration options and file-system permissions, you
+may need super-user privileges to do the installation steps.
+
+@item
+Build the documentation:
+
+@example
+cd ../doc
+./configure
+make
+@end example
+
+@item
+Install the documentation:
+
+@example
+make install-info install-html install-pdf
+@end example
+
Depending on configuration options and file-system permissions, you
may need super-user privileges to do the installation step.
@end enumerate
-@section Plugin Selection and Installation
+@heading Plugins
The project home page lists the available plugins with short
descriptions to help you choose from among them. Click on the