r5280: Auto commit for Debian build
[cl-modlisp.git] / doc / readme.lml
1 ;;; -*- Mode: Lisp -*-
2
3 (in-package #:lml2)
4
5 (html-file-page ("readme")
6   (html      
7    (:head
8     (:title "cl-modlisp readme")
9     ((:meta :http-equiv "Content-Type" :content "text/html; charset=iso-8859-1"))
10     ((:meta :name "Copyright" :content "Kevin Rosenberg 2002 <kevin@rosenberg.net>"))
11     ((:meta :name "description" :content "cl-modlisp documentation"))
12     ((:meta :name "author" :content "Kevin Rosenberg"))
13     ((:meta :name "keywords" :content "Common Lisp, mod_lisp, cl-modlisp, apache")))
14
15    (:body
16     (:h1 "cl-modlisp Documentation")
17     (:h2 "Overview")
18     (:p
19      "cl-modlisp provides the Lisp side of the interface to Marc Battyani's mod_lisp apache module ("
20      ((:a :href "http://www.fractalconcept.com") "http://www.fractalconcept.com")
21      ").")
22     (:h2 "Features")
23     (:ul
24      (:li "support of AllegroCL, CMUCL, SBCL with sb-thread, and Lispworks.")
25      (:li "listener and worker socket/process management so that shutting down the listener closes all related open sockets and terminates all related proceses.")
26      (:li "support for running multiple command processors on multiple ports.")
27      (:li "transparent support for precomputing the HTML or XML response to take advantage of HTTP/1.1's Keep-Alive feature. This is switchable with a single keyword argument to the macro "
28          (:tt "with-ml-page")
29          ".")
30      (:li "Demonstration processor included"))
31     (:h2 "Prerequisites")
32     (:ul
33      (:li "Apache 1.3.x")
34      (:li "mod_lisp apache module ("
35          ((:a :href "http://www.fractalconcept.com")
36            "http://www.fractalconcept.com")
37          ").")
38      (:li "kmrcl library ("
39          ((:a :href "http://files.b9.com/kmrcl")
40            "http://files.b9.com/kmrcl")
41          ").")
42      (:li "asdf ("
43          ((:a :href "http://www.sf.net/projects/cclan")
44            "http://www.sf.net/projects/cclan")
45          ")."))
46
47     (:h2 "Supported Platforms")
48     (:ul
49      (:li "Allegro v6.2")
50      (:li "CMUCL 18e")
51      (:li "Lispworks v4.2")
52      (:li "SBCL 0.8.1 with sb-thread (multi-threading)"))
53
54     (:h2 "Quickstart")
55     (:ul
56      (:li "The easiest way to install is to use the Debian GNU/Linux operating system. Using the testing or unstable distributions, you can give the command:"
57      (:div
58       (:tt "apt-get install libapache-mod-lisp cl-modlisp cl-kmrcl"))
59      (:div
60       "If you are not using Debian, you will need to download and install
61 mod_lisp, cl-modlisp, and cl-kmrcl manually."))
62      (:li
63       "Add something like the below to httpd.conf and then restart apache"
64       (:div (:tt "LispServer 127.0.0.1 20123 \"localhost\""))
65       (:div (:tt "AddHandler lisp-handler .lsp")))
66      (:li
67       "Start your Lisp implementation and load cl-modlisp with"
68       (:div (:tt "(asdf:operate 'asdf:load-op 'modlisp)")))
69      (:li
70       "Start the server with"
71       (:div (:tt "(ml:modlisp-start :port 20123)")))
72      (:li "Try some demostration pages"
73           (:div (:tt "links http://localhost/fixed.lsp"))
74           (:div (:tt "links http://localhost/debug.lsp")))
75      (:li "Shutdown the all cl-modlisp servers with"
76           (:div (:tt "(ml:modlisp-stop-all)"))))
77
78     (:h2 "Process Models")
79     (:p "There are two process models")
80     (:ul
81      (:li (:div (:b "Each connection spawns a new thread"))
82           (:div "This is the default model. Each new connection to listener socket spawns a new connection. This allows for an arbitrary number of concurrent connections. This has advantages if the workers require a long execution time."))
83      (:li (:div (:b "Fixed pool of workers"))
84           (:div "This model is selected by passing the number of worker processes to "
85               (:tt "init/listener")
86               " with the keyword "
87               (:tt "number-fixed-workers")
88               ". This model has a lower overhead since new processes are not created and destroyed with each connection. It has advantages when the workers have a short execution time."))) 
89                 
90     (:h2 "Usage")
91     (:p "The demo.lisp file for examples of using cl-modlisp.")
92     )))
93
94
95          
96
97