I am a lisp newbie, and i was wanting to set up hunchentoot as a lisp application/web server (apache -> hunchentoot)
I am using ECL as it is supported on my platform (ARM)
Everything looked good initially i installed ecl, added quicklisp and did
- Code: Select all
(ql:quickload "hunchentoot")
this downloads a bunch of packages, but all seems good, so i try to start up a test server with
- Code: Select all
(hunchentoot:start (make-instance 'hunchentoot:easy-acceptor :port 4242))
and.... IT WORKS!! i browse to the page on localhost:4242 , great!
I then quit out of ecl and later go back in, and try to recreate
- Code: Select all
(ql:quickload "hunchentoot")
seems ok, (but obviously doens't download a bunch of stuff this time)
- Code: Select all
(hunchentoot:start (make-instance 'hunchentoot:easy-acceptor :port 4242))
Uh oh, this time i get the following error
Condition of type: BORDEAUX-MP-CONDITION
There is no support for this method on this implementation.
I have tried lots of things (such as using require instead of ql:quickload) , this is being thrown up by the brodeaux-mp-threads package, but i dont know how or why. Here is what seems to be the relevant code snippet from the bordeaux-threads in case it helps...
- Code: Select all
(defgeneric make-threading-support-error ()
(:documentation "Creates a BORDEAUX-THREADS condition which specifies
whether there is no BORDEAUX-THREADS support for the implementation, no
threads enabled for the system, or no support for a particular
function.")
(:method ()
(make-condition
'bordeaux-mp-condition
:message (if *supports-threads-p*
"There is no support for this method on this implementation."
"There is no thread support in this instance."))))
If i delete my 'quicklisp' folder completely and then re-install quickload, and then load (ql:quickload 'hunchentoot) , the 'test' server will work fine, but if i quit ecl and go back in and try to load it again then I get the error above.
It looks as if something is being loaded up when hunchentoot is being downloaded/loaded for the first time, which it is missing when i go back in. Im not sure if this is a quickload issue, or an issue with the hunchentoot package, or a 'weirdness' specific to ECL,
Does anyone have any ideas?