Documentation: Serve Lisp requests

The multiprocessing capabilities in the x86 versions of CMUCL allow it to operate as a lisp server. This can be useful in a situation where you wish to execute a number of small scripts, where the overhead of launching a separate CMUCL instance would be penalizing. For a real application you would have to take security considerations into account.

(in-package :user)

(format t "THIS A A HUDGE SECURITY RISC. CHANGE THE PASSWORD!!!~%~%")
(setf mp::*idle-process* mp::*initial-process*)
(mp::start-lisp-connection-listener :port 6789 :password "Clara")

;;; now you can telnet in and do:
#|
$telnet localhost 6789
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Enter password: "Clara"

CMU Common Lisp Experimental 18a+ release x86-linux 2.2.0 cvs, running on slartibartfast
Send bug reports and questions to your local CMU CL maintainer,
or to pw@snoopy.mv.com,
or to s950045@uia.ac.be or Peter.VanEynde@uia.ua.ac.be
or to cmucl-help@cons.org. (prefered)

type (help) for help, (quit) to exit, and (demo) to see the demos

Loaded subsystems:
    Python 1.0, target Intel x86
    CLOS based on PCL version:  September 16 92 PCL (f)
* (+ 1 1)

2
* (quit)
Connection closed by foreign host.
|#

Craig Brozefsky has developed a prototype application called qcmu which generalizes this technique. It allows users to obtain either a REPL or to execute a script on a CMUCL server. qcmu uses a client-server protocol which incorporates authentication mechanisms.

by Peter Van Eynde