295 lines
11 KiB
TeX
295 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: 22-Sep-1999 11:50 (eg)
|
|
%
|
|
|
|
\section{Introduction}
|
|
This appendix lists 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{Latest release}
|
|
|
|
{\stk} distribution is available on various sites. The original distribution
|
|
site is {\tt kaolin.unice.fr} {\tt (134.59.132.7)}. Files are available
|
|
through anonymous ftp and are located in the {\tt /pub/STk}
|
|
directory. Distribution file names have the form {\tt STk-x.y.z.tar.gz}, where {\tt
|
|
x} and {\tt y} represent the version the release and sub-release numbers of the package.
|
|
|
|
%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/STk/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/STk/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 auto-mode-alist
|
|
(append '(("\\.scm$" . scheme-mode)
|
|
("\\.stk$" . scheme-mode)
|
|
("\\.stklos$" . scheme-mode))
|
|
auto-mode-alist))
|
|
\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{Web sites}
|
|
|
|
The most up to date general site on Scheme is located at
|
|
www.schemers.org\index{Schemers.org}. This site contains informations
|
|
and links about
|
|
\begin{itemize}
|
|
\item textbooks on Scheme, tutorials and standards
|
|
\item various implementations of the language as well as environments for Scheme
|
|
\item SRFI (Scheme Request For Implementation)
|
|
\item events related to Scheme programming
|
|
\item and much more ...
|
|
\end{itemize}
|
|
|
|
Another important site is the Scheme repository\index{Scheme
|
|
Repository}. Hopelessly, this site is no more maintained, but its
|
|
content is rich enough to spend some time on it. The repository
|
|
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}
|
|
|
|
%%% Local Variables:
|
|
%%% mode: latex
|
|
%%% TeX-master: "manual"
|
|
%%% End:
|