%&latex -*- latex -*-

\chapter{Todo}

There are always many, many improvements and extensions that could be
made to scsh.
We invite interested hackers to do any of them, and send us the code;
we'll put you on the team.
Visit the Scheme Underground Web page for more information on good hacks at
\begin{tightinset}\verb|http://www.ai.mit.edu/projects/su/|
\end{tightinset}
Scsh is a tool that lets you write fun programs that do real things in
an elegant language; go wild.

\begin{itemize}
\item Threads. 
\item An X gui interface. (Needs threads.)
\item A better C function/data-structure interface. This is not easy.
\item More network protocols. Telnet and ftp would be the most important.
\item An ILU interface.
\item An RPC system, with ``tail-recursion.''
\item Interfaces to relational db's. 
      This would be quite useful for Web servers.
      An s-expression embedding of SQL would be a key design component
      of such a system, along the lines of scsh's process notation or
      \ex{awk} notation.
\item Port Edwin, and emacs text editor written in MIT Scheme, to scsh.
      Combine it with scsh's OS interfaces to make a visual shell.
\item An \ex{expect} knock-off.
\item A \ex{make} replacement, using scsh's process notation in the build
      rules.

\item Manual hacking.
\begin{itemize}
\item The {\LaTeX} hackery needs yet another serious pass. Most importantly,
      long procedure ``declarations'' need to be  broken across two lines.

\item Soup up the markup processor, and redo manual in markup. Generate
      {\LaTeX}, HTML, and info versions. Alternatively, persuade some kind
      soul to hand-port manual to HTML or info.
\end{itemize}

\item Job control, after \ex{jcontrol.scm}

\item Better static heap linker.

\item Gnu readline lib.

\end{itemize}
