I've written a set of functions for interfacing CMUCL application programs to the CGI server, so that the CMUCL application programs can be run as WebServer/CGI applications. For reading in the encoded HTML FORM contents and converting to assoc-list: (defun read-anything-waiting () (defun cl-sleep (n) ;Workaround for bug in SLEEP function in CMUCL (defun read-anything-within-times (nsec) (defun combine-reverse-strings-to-big-string (revstrs) (defun read-all-input-until-nomore () (defun decode-single-plus-string (str) (defun decode-single-percent-string (str) (defun decode-single-percent-plus-string (str) (defun decode-equal-pair (pr) (defun decode-html-form (form) ;Everythng above are bottom-up parts of the following one useful function: (defun cgi-read-decode-form () For transmitting various HTML syntax primitives back to the client/browser. (defun emit-cgi-header-html () (defun emit-form-start (filnam) (defun emit-form-hidden (name value) (defun emit-form-edittext-oneline (size maxlength name value) (defun emit-form-textarea (name rows cols virwrap inittext) (defun emit-form-checkbox (name value debflg text) (defun emit-form-radio (name value chkflg text) (defun emit-select-start (name) (defun emit-select-option (nam1 val1 nam2 val2 text) (defun emit-select-end () (defun emit-form-submit-button (label) (defun emit-form-end (seenflg) (defun emit-href (url text) ;For managing temporary disk files based on the PID (Process ;IDentification number), so that several users can each run ;(different copies of) the same application without ;interference between them - Written but not yet included in ;this library. ;For setting and checking cookies to establish login ;sessions i.e. contexts that last over more than one ;client/server exchange - Not yet written, and I would like ;to use existing code rather than figure it all myslef. ;Anybody know of any that exists and which I could use for ;free?