X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=doc%2Freadme.lml;h=0e86f86544d004e771f99b2337e57aef5ada3617;hb=f2e10bbdb63d8f158c306700a031c454dd3d7470;hp=f534b2501335074c391a20c01de61a855ee904d8;hpb=f0aefda1754a567f9a42fce25c5a9b05cc1ab4f4;p=cl-modlisp.git diff --git a/doc/readme.lml b/doc/readme.lml index f534b25..0e86f86 100644 --- a/doc/readme.lml +++ b/doc/readme.lml @@ -2,7 +2,7 @@ (in-package #:lml2) -(page ("readme") +(html-file-page ("readme") (html (:head (:title "cl-modlisp readme") @@ -20,68 +20,77 @@ ((:a :href "http://www.fractalconcept.com") "http://www.fractalconcept.com") ").") (:h2 "Features") - (ul - (li "support of AllegroCL, CMUCL, SBCL with sb-thread, and Lispworks.") - (li "listener and worker socket/process management so that shutting down the listener closes all related open sockets and terminates all related proceses.") - (li "support for running multiple command processors on multiple ports.") - (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 " + (:ul + (:li "support of AllegroCL, CMUCL, SBCL with sb-thread, and Lispworks.") + (:li "listener and worker socket/process management so that shutting down the listener closes all related open sockets and terminates all related proceses.") + (:li "support for running multiple command processors on multiple ports.") + (: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 " (:tt "with-ml-page") ".") - (li "Demonstration processor included")) + (:li "Demonstration processor included")) (:h2 "Prerequisites") - (ul - (li "Apache 1.3.x") - (li "mod_lisp apache module (" + (:ul + (:li "Apache 1.3.x") + (:li "mod_lisp apache module (" ((:a :href "http://www.fractalconcept.com") "http://www.fractalconcept.com") ").") - (li "kmrcl library (" + (:li "kmrcl library (" ((:a :href "http://files.b9.com/kmrcl") "http://files.b9.com/kmrcl") ").") - (li "asdf (" + (:li "asdf (" ((:a :href "http://www.sf.net/projects/cclan") "http://www.sf.net/projects/cclan") ").")) (:h2 "Supported Platforms") - (ul - (li "Allegro v6.2") - (li "CMUCL 18e") - (li "Lispworks v4.2") - (li "SBCL 0.8.1 with sb-thread (multi-threading)")) + (:ul + (:li "Allegro v6.2") + (:li "CMUCL 18e") + (:li "Lispworks v4.2") + (:li "SBCL 0.8.1 with sb-thread (multi-threading)")) (:h2 "Quickstart") - (ul - (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:") - - apt-get install libapache-mod-lisp cl-modlisp cl-kmrcl + (:ul + (: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:" + (:div + (:tt "apt-get install libapache-mod-lisp cl-modlisp cl-kmrcl")) + (:div + "If you are not using Debian, you will need to download and install +mod_lisp, cl-modlisp, and cl-kmrcl manually.")) + (:li + "Add something like the below to httpd.conf and then restart apache" + (:div (:tt "LispServer 127.0.0.1 20123 \"localhost\"")) + (:div (:tt "AddHandler lisp-handler .lsp"))) + (:li + "Start your Lisp implementation and load cl-modlisp with" + (:div (:tt "(asdf:operate 'asdf:load-op 'modlisp)"))) + (:li + "Start the server with" + (:div (:tt "(ml:modlisp-start :port 20123)"))) + (:li "Try some demostration pages" + (:div (:tt "links http://localhost/fixed.lsp")) + (:div (:tt "links http://localhost/debug.lsp"))) + (:li "Shutdown the all cl-modlisp servers with" + (:div (:tt "(ml:modlisp-stop-all)")))) + + (:h2 "Process Models") + (:p "There are two process models") + (:ul + (:li (:div (:b "Each connection spawns a new thread")) + (: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.")) + (:li (:div (:b "Fixed pool of workers")) + (:div "This model is selected by passing the number of worker processes to " + (:tt "init/listener") + " with the keyword " + (:tt "number-fixed-workers") + ". 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."))) + + (:h2 "Usage") + (:p "The demo.lisp file for examples of using cl-modlisp.") + ))) -If you are not using Debian, you will need to download and install -mod_lisp, cl-modlisp, and cl-kmrcl manually. - -2. Add something like the below to httpd.conf and then restart apache - LispServer 127.0.0.1 20123 "localhost" - AddHandler lisp-handler .lsp - -3. Start your Lisp implementation and load cl-modlisp with - (asdf:operate 'asdf:load-op 'modlisp) - -4. Start the server with - (ml:modlisp-start :port 20123)) - -5. Try some demostration pages - lynx http://localhost/fixed.lsp - lynx http://localhost/debug.lsp - -6. Shutdown the all cl-modlisp servers with - (ml:modlisp-stop-all) - - -USAGE ------ - -Return to the demo.lisp file for some examples of using cl-modlisp.