[kpax-devel] kpax on windows + Lisp in a box

Sven Van Caekenberghe scaekenberghe at common-lisp.net
Fri Apr 20 09:16:26 UTC 2007


Eyal,

On 19 Feb 2007, at 14:44, Eyal Raab wrote:

> Hi,
>
> Hi, I'm new to lisp and I'm trying to do the following:
> I'm trying to install kpax on windows using lisp in a box with  
> CLisp 2.33 ( the installer from the website ).
>
> Is it possible?
>
> If it is, can someone help me with the following error message:
>
> "Starting a standard socket named "s-http-server" on port 2001  
> using handler #<COMPILED-CLOSURE
>   S-HTTP-SERVER::CONNECTION-HANDLER> not yet ported to this lisp  
> system
>    [Condition of type SIMPLE-ERROR]"
>
> The code that currently generated this error is:
>
> (load "c:/progra~1/LispBox/asdf.lisp")
> (load "c:/progra~1/LispBox/packages/s-utils/s-utils.asd ")
> (load "c:/progra~1/LispBox/packages/s-base64/s-base64.asd")
> (load "c:/progra~1/LispBox/packages/s-utils/s-utils.asd")
> (load "c:/progra~1/LispBox/packages/s-sysdeps/s-sysdeps.asd")
> (load "c:/progra~1/LispBox/packages/cl-who-0.6.3/cl-who.asd")
> (load "c:/progra~1/LispBox/packages/kpax/kpax.asd")
> (load "c:/progra~1/LispBox/packages/kpax/kpax-core.asd")
> (load "c:/progra~1/LispBox/packages/kpax/kpax- s-http-server.asd")
> (load "c:/progra~1/LispBox/packages/kpax/kpax-paserve.asd")
> (load "c:/progra~1/LispBox/packages/kpax/kpax-mod-lisp.asd")
> (load "c:/progra~1/LispBox/packages/kpax/kpax- examples.asd")
> (asdf:oos 'asdf:load-op :kpax)
>
> (asdf:operate 'asdf:load-op :kpax-examples)
> (in-package :kpax-user)
> (start-kpax :server-class 's-http-server)
> (start-web-app :helloworld1)
>
> Any help would be greatly appreciated.
>
> Thanks in advance,
> Eyal.

Sorry for the somewhat late reply! KPAX in principle requires a  
Common Lisp implementation that supports multi-threading (or multi- 
processing as it is often called). It is S-SYSDEPS that forms the  
portability layer over processes and sockets.

But since there are so many requests for a CLISP port (and Ruby on  
Rails is single-threaded as well), I thought it would be a nice hack  
to make KPAX work on CLISP, is a slightly limited fashion.

DISCLAIMER: this is really a hack and absolutely not ready for  
production (unless you put a load-balancer in front of it and run  
multiple instances with persistent sessions - in general, if you  
really know what you are doing).

If you upgrade to all the latest versions (preferrably via the darcs  
repositories), KPAX should work on CLISP out of the box:

Last login: Fri Apr 20 09:25:57 on ttyp8
Welcome to Darwin!
[sven at voyager:~]$ cd darcs/kpax/
[sven at voyager:~/darcs/kpax]$ clisp
   i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
   I I I I I I I      8     8   8           8     8     o  8    8
   I  \ `+' /  I      8         8           8     8        8    8
    \  `-+-'  /       8         8           8      ooooo   8oooo
     `-__|__-'        8         8           8           8  8
         |            8     o   8           8     o     8  8
   ------+------       ooooo    8oooooo  ooo8ooo   ooooo   8

Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2006

;; Loading file /Users/sven/.clisprc.lisp ...
;;  Loading file /Users/sven/apps/asdf/init-asdf.lisp ...
;;   Loading file /Users/sven/apps/asdf/asdf.fas ...
;;   Loaded file /Users/sven/apps/asdf/asdf.fas
;Pushed #P"/Users/sven/apps/asdf/systems/" onto ASDF central registry
;;  Loaded file /Users/sven/apps/asdf/init-asdf.lisp
;; Loaded file /Users/sven/.clisprc.lisp
[1]> (asdf :kpax-examples)
; loading system definition from /Users/sven/apps/asdf/systems/kpax- 
examples.asd into #<PACKAGE
;   ASDF3095>
;; Loading file /Users/sven/apps/asdf/systems/kpax-examples.asd ...
; registering #<SYSTEM :KPAX-EXAMPLES #x1A973C29> as KPAX-EXAMPLES
;; Loaded file /Users/sven/apps/asdf/systems/kpax-examples.asd
; loading system definition from /Users/sven/apps/asdf/systems/s-http- 
client.asd into #<PACKAGE
;   ASDF3390>
;; Loading file /Users/sven/apps/asdf/systems/s-http-client.asd ...
; registering #<SYSTEM :S-HTTP-CLIENT #x1A96D11D> as S-HTTP-CLIENT
;; Loaded file /Users/sven/apps/asdf/systems/s-http-client.asd
; loading system definition from /Users/sven/apps/asdf/systems/ 
puri.asd into #<PACKAGE
;   ASDF3391>
;; Loading file /Users/sven/apps/asdf/systems/puri.asd ...
; registering #<SYSTEM PURI #x1A973FB1> as PURI
; registering #<SYSTEM PURI-TESTS #x1A977A15> as PURI-TESTS
;; Loaded file /Users/sven/apps/asdf/systems/puri.asd
; loading system definition from /Users/sven/apps/asdf/systems/s- 
base64.asd into #<PACKAGE
;   ASDF3573>
;; Loading file /Users/sven/apps/asdf/systems/s-base64.asd ...
; registering #<SYSTEM :S-BASE64 #x1A998E75> as S-BASE64
;; Loaded file /Users/sven/apps/asdf/systems/s-base64.asd
; loading system definition from /Users/sven/apps/asdf/systems/s- 
sysdeps.asd into #<PACKAGE
;   ASDF3574>
;; Loading file /Users/sven/apps/asdf/systems/s-sysdeps.asd ...
; registering #<SYSTEM :S-SYSDEPS #x1A9A51FD> as S-SYSDEPS
;; Loaded file /Users/sven/apps/asdf/systems/s-sysdeps.asd
; loading system definition from /Users/sven/apps/asdf/systems/s- 
utils.asd into #<PACKAGE
;   ASDF3575>
;; Loading file /Users/sven/apps/asdf/systems/s-utils.asd ...
; registering #<SYSTEM :S-UTILS #x1A97663D> as S-UTILS
;; Loaded file /Users/sven/apps/asdf/systems/s-utils.asd
; loading system definition from /Users/sven/apps/asdf/systems/ 
kpax.asd into #<PACKAGE
;   ASDF3576>
;; Loading file /Users/sven/apps/asdf/systems/kpax.asd ...
; registering #<SYSTEM :KPAX #x1A986F59> as KPAX
;; Loaded file /Users/sven/apps/asdf/systems/kpax.asd
; loading system definition from /Users/sven/apps/asdf/systems/kpax-s- 
http-server.asd into #<PACKAGE
;   ASDF3584>
;; Loading file /Users/sven/apps/asdf/systems/kpax-s-http-server.asd ...
; registering #<SYSTEM :KPAX-S-HTTP-SERVER #x1A98D269> as KPAX-S-HTTP- 
SERVER
;; Loaded file /Users/sven/apps/asdf/systems/kpax-s-http-server.asd
; loading system definition from /Users/sven/apps/asdf/systems/s-http- 
server.asd into #<PACKAGE
;   ASDF3585>
;; Loading file /Users/sven/apps/asdf/systems/s-http-server.asd ...
; registering #<SYSTEM :S-HTTP-SERVER #x1A994029> as S-HTTP-SERVER
;; Loaded file /Users/sven/apps/asdf/systems/s-http-server.asd
; loading system definition from /Users/sven/apps/asdf/systems/kpax- 
core.asd into #<PACKAGE
;   ASDF3586>
;; Loading file /Users/sven/apps/asdf/systems/kpax-core.asd ...
; registering #<SYSTEM :KPAX-CORE #x1A9A66A9> as KPAX-CORE
;; Loaded file /Users/sven/apps/asdf/systems/kpax-core.asd
; loading system definition from /Users/sven/apps/asdf/systems/cl- 
who.asd into #<PACKAGE
;   ASDF3594>
;; Loading file /Users/sven/apps/asdf/systems/cl-who.asd ...
; registering #<SYSTEM #:CL-WHO #x1A9B47F5> as CL-WHO
;; Loaded file /Users/sven/apps/asdf/systems/cl-who.asd
; loading system definition from /Users/sven/apps/asdf/systems/kpax- 
mod-lisp.asd into #<PACKAGE
;   ASDF3595>
;; Loading file /Users/sven/apps/asdf/systems/kpax-mod-lisp.asd ...
; registering #<SYSTEM :KPAX-MOD-LISP #x1A9960DD> as KPAX-MOD-LISP
;; Loaded file /Users/sven/apps/asdf/systems/kpax-mod-lisp.asd
;; Loading file /Users/sven/apps/puri-1.5.1/src.fas ...
;; Loaded file /Users/sven/apps/puri-1.5.1/src.fas
;; Loading file /Users/sven/darcs/s-base64/src/package.fas ...
;; Loaded file /Users/sven/darcs/s-base64/src/package.fas
;; Loading file /Users/sven/darcs/s-base64/src/base64.fas ...
;; Loaded file /Users/sven/darcs/s-base64/src/base64.fas
;; Loading file /Users/sven/darcs/s-sysdeps/src/package.fas ...
;; Loaded file /Users/sven/darcs/s-sysdeps/src/package.fas
;; Loading file /Users/sven/darcs/s-sysdeps/src/bivalent-streams.fas ...
;; Loaded file /Users/sven/darcs/s-sysdeps/src/bivalent-streams.fas
;; Loading file /Users/sven/darcs/s-sysdeps/src/sysdeps.fas ...
;; Loaded file /Users/sven/darcs/s-sysdeps/src/sysdeps.fas
;; Loading file /Users/sven/darcs/s-utils/src/package.fas ...
;; Loaded file /Users/sven/darcs/s-utils/src/package.fas
;; Loading file /Users/sven/darcs/s-utils/src/utils.fas ...
;; Loaded file /Users/sven/darcs/s-utils/src/utils.fas
;; Loading file /Users/sven/darcs/s-http-client/src/package.fas ...
;; Loaded file /Users/sven/darcs/s-http-client/src/package.fas
;; Loading file /Users/sven/darcs/s-http-client/src/http-client.fas ...
;; Loaded file /Users/sven/darcs/s-http-client/src/http-client.fas
;; Loading file /Users/sven/darcs/s-http-server/src/package.fas ...
;; Loaded file /Users/sven/darcs/s-http-server/src/package.fas
;; Loading file /Users/sven/darcs/s-http-server/src/http-server.fas ...
;; Loaded file /Users/sven/darcs/s-http-server/src/http-server.fas
;; Loading file /Users/sven/apps/cl-who/packages.fas ...
;; Loaded file /Users/sven/apps/cl-who/packages.fas
;; Loading file /Users/sven/apps/cl-who/who.fas ...
;; Loaded file /Users/sven/apps/cl-who/who.fas
;; Loading file /Users/sven/darcs/kpax/src/package-kpax.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/package-kpax.fas
;; Loading file /Users/sven/darcs/kpax/src/log.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/log.fas
;; Loading file /Users/sven/darcs/kpax/src/util.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/util.fas
;; Loading file /Users/sven/darcs/kpax/src/localization.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/localization.fas
;; Loading file /Users/sven/darcs/kpax/src/sha1.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/sha1.fas
;; Loading file /Users/sven/darcs/kpax/src/md5.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/md5.fas
;; Loading file /Users/sven/darcs/kpax/src/mersenne-twister- 
random.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/mersenne-twister-random.fas
;; Loading file /Users/sven/darcs/kpax/src/hmac.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/hmac.fas
;; Loading file /Users/sven/darcs/kpax/src/crypto.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/crypto.fas
;; Loading file /Users/sven/darcs/kpax/src/html-macro.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/html-macro.fas
;; Loading file /Users/sven/darcs/kpax/src/html.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/html.fas
;; Loading file /Users/sven/darcs/kpax/src/globals.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/globals.fas
;; Loading file /Users/sven/darcs/kpax/src/constants.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/constants.fas
;; Loading file /Users/sven/darcs/kpax/src/attributes-mixin.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/attributes-mixin.fas
;; Loading file /Users/sven/darcs/kpax/src/session.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/session.fas
;; Loading file /Users/sven/darcs/kpax/src/server.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/server.fas
;; Loading file /Users/sven/darcs/kpax/src/request-response.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/request-response.fas
;; Loading file /Users/sven/darcs/kpax/src/translator.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/translator.fas
;; Loading file /Users/sven/darcs/kpax/src/web-app-in-server.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/web-app-in-server.fas
;; Loading file /Users/sven/darcs/kpax/src/session-tracking.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/session-tracking.fas
;; Loading file /Users/sven/darcs/kpax/src/web-app.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/web-app.fas
;; Loading file /Users/sven/darcs/kpax/src/dispatcher.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/dispatcher.fas
;; Loading file /Users/sven/darcs/kpax/src/debug.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/debug.fas
;; Loading file /Users/sven/darcs/kpax/src/kpax.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/kpax.fas
;; Loading file /Users/sven/darcs/kpax/src/run.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/run.fas
;; Loading file /Users/sven/darcs/kpax/src/multipart-form- 
encoding.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/multipart-form-encoding.fas
;; Loading file /Users/sven/darcs/kpax/src/extensions.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/extensions.fas
;; Loading file /Users/sven/darcs/kpax/src/options.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/options.fas
;; Loading file /Users/sven/darcs/kpax/src/constraints.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/constraints.fas
;; Loading file /Users/sven/darcs/kpax/src/menubar.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/menubar.fas
;; Loading file /Users/sven/darcs/kpax/src/data-set-view.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/data-set-view.fas
;; Loading file /Users/sven/darcs/kpax/src/web-form.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/web-form.fas
;; Loading file /Users/sven/darcs/kpax/src/package-kpax-user.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/package-kpax-user.fas
;; Loading file /Users/sven/darcs/kpax/src/s-http-server.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/s-http-server.fas
;; Loading file /Users/sven/darcs/kpax/src/mod-lisp.fas ...
;; Loaded file /Users/sven/darcs/kpax/src/mod-lisp.fas
;; Loading file /Users/sven/darcs/kpax/example/helloworld1.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/helloworld1.fas
;; Loading file /Users/sven/darcs/kpax/example/factorial1.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/factorial1.fas
;; Loading file /Users/sven/darcs/kpax/example/session1.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/session1.fas
;; Loading file /Users/sven/darcs/kpax/example/no-session1.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/no-session1.fas
;; Loading file /Users/sven/darcs/kpax/example/snoop1.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/snoop1.fas
;; Loading file /Users/sven/darcs/kpax/example/forms1.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/forms1.fas
;; Loading file /Users/sven/darcs/kpax/example/forms2.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/forms2.fas
;; Loading file /Users/sven/darcs/kpax/example/benchmark1.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/benchmark1.fas
;; Loading file /Users/sven/darcs/kpax/example/todo-list.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/todo-list.fas
;; Loading file /Users/sven/darcs/kpax/example/secure1.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/secure1.fas
;; Loading file /Users/sven/darcs/kpax/example/upload1.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/upload1.fas
;; Loading file /Users/sven/darcs/kpax/example/upload2.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/upload2.fas
;; Loading file /Users/sven/darcs/kpax/example/upload3.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/upload3.fas
;; Loading file /Users/sven/darcs/kpax/example/calculator.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/calculator.fas
;; Loading file /Users/sven/darcs/kpax/example/list-web-apps.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/list-web-apps.fas
;; Loading file /Users/sven/darcs/kpax/example/menu1.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/menu1.fas
;; Loading file /Users/sven/darcs/kpax/example/tabs1.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/tabs1.fas
;; Loading file /Users/sven/darcs/kpax/example/browser1.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/browser1.fas
;; Loading file /Users/sven/darcs/kpax/example/secure-login.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/secure-login.fas
;; Loading file /Users/sven/darcs/kpax/example/pi.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/pi.fas
;; Loading file /Users/sven/darcs/kpax/example/lsp.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/lsp.fas
;; Loading file /Users/sven/darcs/kpax/example/wiki.fas ...
WARNING: The generic function #<STANDARD-GENERIC-FUNCTION GET-NAME>  
is being modified, but has
          already been called.
;; Loaded file /Users/sven/darcs/kpax/example/wiki.fas
;; Loading file /Users/sven/darcs/kpax/example/reddit.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/reddit.fas
;; Loading file /Users/sven/darcs/kpax/example/welcome.fas ...
;; Loaded file /Users/sven/darcs/kpax/example/welcome.fas
0 errors, 0 warnings
NIL
[2]> (kpax:start-kpax)
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :WELCOME #x1AA23585>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :WELCOME #x1AA23585>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :REDDIT #x1AA20FC1>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :REDDIT #x1AA20FC1>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :KIWI #x1AA18E59>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :KIWI #x1AA18E59>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :WIKI #x1AA18C7D>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :WIKI #x1AA18C7D>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :LSP #x1AA17E8D>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :LSP #x1AA17E8D>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :PI #x1AA1500D>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :PI #x1AA1500D>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :SECURE-LOGIN  
#x1AA133A9>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :SECURE-LOGIN  
#x1AA133A9>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :BROWSER1  
#x1AA11111>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :BROWSER1  
#x1AA11111>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :TABS1 #x1AA10815>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :TABS1 #x1AA10815>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :MENU1 #x1AA0FA99>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :MENU1 #x1AA0FA99>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :LIST-WEB-APPS  
#x1AA0EC49>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :LIST-WEB-APPS  
#x1AA0EC49>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :CALCULATOR  
#x1AA0C181>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :CALCULATOR  
#x1AA0C181>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :UPLOAD3 #x1AA0AD39>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :UPLOAD3 #x1AA0AD39>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :UPLOAD2 #x1AA09859>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :UPLOAD2 #x1AA09859>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :UPLOAD1 #x1AA0855D>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :UPLOAD1 #x1AA0855D>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :SECURE1 #x1AA07C3D>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :SECURE1 #x1AA07C3D>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :TODO-LIST  
#x1AA050F1>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :TODO-LIST  
#x1AA050F1>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :BENCHMARK1  
#x1AA04B05>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :BENCHMARK1  
#x1AA04B05>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :FORMS2 #x1AA039C1>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :FORMS2 #x1AA039C1>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :FORMS1 #x1AA00095>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :FORMS1 #x1AA00095>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :SNOOP1 #x1A9FF76D>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :SNOOP1 #x1A9FF76D>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :NO-SESSION1  
#x1A9FF10D>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :NO-SESSION1  
#x1A9FF10D>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :SESSION1  
#x1A9FE741>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :SESSION1  
#x1A9FE741>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :FACTORIAL1  
#x1A9FCF2D>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :FACTORIAL1  
#x1A9FCF2D>
;; KPAX 20070420T090207 INFO Stopped #<KPAX:WEB-APP :HELLOWORLD1  
#x1A9FBD49>
;; KPAX 20070420T090207 INFO Started #<KPAX:WEB-APP :HELLOWORLD1  
#x1A9FBD49>
;; KPAX 20070420T090207 INFO Server running
;; KPAX 20070420T090224 INFO handling /kpax/dynamic/helloworld1/
;; KPAX 20070420T090224 INFO created new session 11X9DF6ITYLC  
[138655782621851232]
;; KPAX 20070420T090224 INFO replied 596 bytes with status OK


This is CLISP 2.40 on Mac OS X Intel.

The limitations are:

- KPAX is not-multi-threaded so can handle only 1 request at a time
- all HTTP request connections are closed immediately (like in HTTP/ 
1.0 or without Keep-Alive)
- some of the advanced examples do not work (problems with bivalent  
streams)
- your CLISP listener session blocks since it can do only 1 thing at  
a time which is bad for debugging and development
- any errors on any handler thread stops everything (including the  
server) since there is only 1 thread

Regards,

Sven



--
Sven Van Caekenberghe - http://homepage.mac.com/svc
Beta Nine - software engineering - http://www.beta9.be

"Lisp isn't a language, it's a building material." - Alan Kay




More information about the kpax-devel mailing list