% % 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: