This is a read-only archive of lispforum.com. The forum was locked to new users and posts and is preserved here as static HTML from a database snapshot taken on 2019-09-07.

Hunchentoot + ECL , installed with quicklisp problem

4 posts · 3681 views

Hi,
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
(ql:quickload "hunchentoot") 
this downloads a bunch of packages, but all seems good, so i try to start up a test server with
(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
(ql:quickload "hunchentoot") 
seems ok, (but obviously doens't download a bunch of stuff this time)
(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...
(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?

Re: Hunchentoot + ECL , installed with quicklisp problem

Note that I get exactly the same behavior on my ECL running on normal X86-64 with a build that has threading support.

Re: Hunchentoot + ECL , installed with quicklisp problem

Have you tried with latest ECL in the repository? I seem to recall this issue and moving to the repository version fixed it.

Re: Hunchentoot + ECL , installed with quicklisp problem

THANKS corvir!!!!! , i should have thought of that.

I have been using my distro's package (arch linux), but it is obviously out of date (this is rare for arch, but i guess this is a bit of a niche package).
I did my own build of ecl from the latest git, and this problem disappeared.