stk/Doc/Reference/Appendix-D.tex

281 lines
11 KiB
TeX

%
% STk Reference manual (Appendix: Miscellaneous Informations)
%
% Author: Erick Gallesio [eg@unice.fr]
% Creation date: 21-Dec-1994 12:05
% Last file update: 8-Jul-1996 22:18
%
\section{Introduction}
This appendix list a number of things which cannot go elsewhere in this
document. The only link between the items listed her is that they should
ease your life when using {\stk}.
\section{About \stk}
\subsection{Last release}
{\stk} distribution is available on various sites. The original distribution
site is {\tt kaolin.unice.fr} {\tt (193.48.229.225)}. Files are available
through anonymous ftp and are located in the {\tt /pub}
directory. Distribution file names have the form {\tt STk-x.y.tar.gz}, where {\tt
x} and {\tt y} represent the version and the release of the package. You can
also find interim releases of {\stk}. Interim releases are stored in file
whose name have the form {\tt STk-x.y.z.tar.gz} where {\tt z} is the interim
release number.
David Fox maintains a mirror site of {\tt kaolin.unice.fr}. This site is
located in the USA and is available at the following URL:
{\tt ftp://cs.nyu.edu/pub/local/fox/stk}.
\subsection{Sharing Code}
If you have written code that you want to share with the (small) {\stk}
community, you can deposit it in the directory {\tt /pub/Incoming} of {\tt
kaolin.unice.fr}. Mail me a small note when you deposit a file in this
directory so I can put in in its definitive place ({\tt /pub/Contrib}
directory contains the contributed code).
\subsection{{\stk} Mailing list}
There is a mailing list for {\stk} located on {\tt kaolin.unice.fr}. The
intent of this mailing list is to permit to {\stk} users to share experiences,
expose problems, submit ideas and \ldots everything which you find interesting
(and which is related to \stk).
To subscribe to the mailing list, simply send a message with the word {\tt
subscribe} in the {\tt Subject:} field of you mail. Mail must be sent to the
following address: {\tt stk-request@kaolin.unice.fr}
To unsubscribe from the mailing list, send a mail at previous email address with the word {\tt unsubscribe} in the {\tt Subject:} field.
For more information on the mailing list management send a message with the
word {\tt help} in the {\tt Subject:} field of your mail. In particular, it
is possible to find all the messages which have already been sent on the {\stk}
mailing list.
Subscription/un-subscription/information requests are processed
automatically without human intervention. If you something goes wrong, send a
mail to {\tt eg@unice.fr}.
Once you have properly subscribe to the mailing list,
\begin{itemize}
\item you can send your messages about {\stk} to {\tt stk@kaolin.unice.fr},
\item you will receive all the messages of the mailing list to the email
address you used when you subscribed to the list.
\end{itemize}
\subsection{{\stk} FAQ}
Marc Furrer has set up a FAQ{\index{FAQ} for {\stk}.
This FAQ is regularly posted on the {\stk} mailing list. It can
also be accessed through {\tt
http://ltiwww.epfl.ch/~furrer/STk/FAQ.html}. ASCII version of the FAQ is
available from {\tt http://ltiwww.epfl.ch/~furrer/STk/FAQ.txt}.
\subsection{Reporting a bug}
When you find a bug in {\stk}, please send its description to the following
address {\tt stk-bugs@kaolin.unice.fr}. Don't forget to indicate the version
you use and the architecture the system is compiled on. {\stk} version and
architecture can be found by using the {\tt version} and {\tt machine-type}
Scheme primitives. If possible, try to find a small program which exhibit the bug.
\section{{\stk} and Emacs}
The Emacs family editors\index{Emacs editor} can be customized to ease
viewing and editing programs of a particular sort. Hints given below
enable a fine ``integration'' of {\stk} in Emacs.
\subsection*{Automatic scheme-mode setting}
Emacs mode can be chosen automatically on the file's name. To edit file
ended by {\tt .stk }or {\tt .stklos} in Scheme mode, you have to set the
Elisp variable {\tt auto-mode-alist} to control the correspondence between
those suffixes and the scheme mode. The simpler way to set this variable
consists to add the following lines in your .{\tt emacs} startup file.
\begin{quote}
\begin{verbatim}
;; Add the '.stk' and '.stklos' suffix in the auto-mode-alist Emacs
;; variable. Setting this variable permits to automagically place the
;; buffer in scheme-mode.
(setq-default auto-mode-alist (append auto-mode-alist
("\\.stk$" . scheme-mode)
("\\.stklos$" . scheme-mode)))
\end{verbatim}
\end{quote}
\subsection*{Using Emacs and {\em CMU Scheme}}
{\em CMU Scheme} package\index{CMU Scheme} package} permits to run the {\stk} interpreter in an Emacs
window. Once the package is loaded, you can send text to the inferior
{\stk} interpreter from other buffers containing Scheme source.
The {\em CMU Scheme} package is distributed with Emacs (both FSF-Emacs and
Xemacs) and you should have it if you are running this editor.
To use the {\em CMU Scheme} package with {\stk}, place the following lines in
your {\tt .emacs} startup file.
\begin{quote}
\begin{verbatim}
;; Use cmu-scheme rather than xscheme which is launched by default
;; whence running 'run-scheme' (xscheme is wired with CScheme)
(autoload 'run-scheme "cmuscheme" "Run an inferior Scheme" t)
(setq scheme-program-name "stk")
(setq inferior-scheme-mode-hook '(lambda() (split-window)))
\end{verbatim}
\end{quote}
After having entered those lines in your {\tt .emacs} file, you can simply
run the {\stk} interpreter by typing
\begin{quote}
\begin{verbatim}
M-x run-scheme
\end{verbatim}
\end{quote}
Read the {\em CMU Scheme} documentation (or use the describe-mode Elisp command)
for a complete description of this package.
\subsection*{Using Emacs and the {\em Ilisp} package}
{\em Ilisp}\index{Ilisp package} is another scheme package which allows to
run the {\stk} interpreter in an Emacs window. This is a rich package with
a lot of nice features. {\em Ilisp} comes pre-installed with Xemacs; it
has to be installed with FSF Emacs (the last version of {\em Ilisp} can be
ftp'ed anonymously from {\tt ftp.cs.cmu.edu} (128.2.206.173) in the {\tt
/user/ai/lang/lisp/util/emacs/ilisp} directory).
To use the {\em Ilisp} package with {\stk}, place the following lines in
your {\tt .emacs} startup file.
\begin{quote}
\begin{verbatim}
(autoload 'run-ilisp "ilisp" "Select a new inferior LISP." t)
(autoload 'stk "ilisp" "Run stk in ILISP." t)
(add-hook 'ilisp-load-hook
'(lambda ()
(require 'completer)
;; Define STk dialect characteristics
(defdialect stk "STk Scheme"
scheme
(setq comint-prompt-regexp "^STk> ")
(setq ilisp-program "stk -interactive")
(setq comint-ptyp t)
(setq comint-always-scroll t)
(setq ilisp-last-command "*"))))
\end{verbatim}
\end{quote}
After having entered those lines in your {\tt .emacs} file, you can simply
run the {\stk} interpreter by typing
\begin{quote}
\begin{verbatim}
M-x stk
\end{verbatim}
\end{quote}
The Ilisp package comes with a rich documentation which describe how to
customize the package.
\subsection*{Other packages}
Another way to use {\stk} and Emacs consists to use a special purpose
{\stk} mode. You can find two such modes in the {\tt /pub/Contrib}
directory of {\tt kaolin.unice.fr}.
\subsection {Using the SLIB package with \stk}
Aubrey Jaffer maintains a package called {\em SLIB}\index{SLIB package}
which is a portable Scheme library which provides compatibility and utility
functions for all standard Scheme implementations. To use this package, you
have just to type
\begin{quote}
\begin{verbatim}
(require "slib")
\end{verbatim}
\end{quote}
and follow the instructions given in the {\em SLIB} library to use a
particular package.
\begin{note}
{\em SLIB} uses also the {\em require/provide} mechanism to load components
of the library. Once {\em SLIB} has been loaded, the standard {\stk}
{\tt require}\schindex{require} and {\tt provide}\schindex{provide}
are overloaded such as if their parameter
is a string this is the old {\stk} procedure which is called, and if their
parameter is a symbol, this is the {\em SLIB} one which is called.
\end{note}
\section{Getting information about Scheme}
\subsection{The {\rrrr} document}
{\rrrr}{\index{R4RS}} is the document which fully describe the Scheme
Programming Language, it can be found in the Scheme repository
(see~\ref{scheme-repository}) in the directory:
\begin{quote}
{\tt ftp.cs.indiana.edu:/pub/scheme-repository/doc}
\end{quote}
Aubrey Jaffer has also translated this document in HTML. A version of this
document is available at
\begin{quote}
{\tt file://swiss-ftp.ai.mit.edu/pub/scm/HTML/r4rs\_toc.html}
\end{quote}
\subsection{The Scheme Repository}
The main site where you can find (many) informations about Scheme is
located in the University of Indiana. The Scheme repository\index{Scheme
Repository} is maintained by David Eby. The repository currently consists
of the following areas:
\begin{itemize}
\item Lots of scheme code meant for benchmarking, library/support, research, education, and fun.
\item On-line documents: Machine readable standards documents, standards proposals, various Scheme-related tech reports, conference papers, mail archives, etc.
\item Most of the publicly distributable Scheme Implementations.
\item Material designed primarily for instruction.
\item Freely-distributable promotional or demonstration material for Scheme-related products.
\item Utilities (e.g., Schemeweb, SLaTeX).
\item Extraneous stuff, extensions, etc.
\end{itemize}
You can access the Scheme repository with
{\tt
\begin{itemize}
\item ftp.cs.indiana.edu:/pub/scheme-repository
\item http://www.cs.indiana.edu/scheme-repository/SRhome.html
\end{itemize}
}
The Scheme Repository is mirrored in Europe:
{\tt
\begin{itemize}
\item ftp.inria.fr:/lang/Scheme
\item faui80.informatik.uni-erlangen.de:/pub/scheme/yorku
\item ftp.informatik.uni-muenchen.de:/pub/comp/programming/languages/scheme/scheme-repository
\end{itemize}
}
\subsection{Usenet newsgroup and other addresses}
There is a usenet newsgroup about the Scheme Programming language: {\tt
comp.lang.scheme}.
Following addresses contains also material about the Scheme language
\begin{itemize}
\item {\tt http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/scheme/top.html}
contains the Scheme FAQ.
\item {\tt http://www-swiss.ai.mit.edu/scheme-home.html} is the Scheme Home page
at MIT
\item {\tt http://www.ai.mit.edu/projects/su/su.html} is the Scheme Underground
web page
\end{itemize}