Page 1 of 1

Hunchentoot + ECL , installed with quicklisp problem

Posted: Wed Jul 31, 2013 6:26 am
by womblegonebad
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

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?

Re: Hunchentoot + ECL , installed with quicklisp problem

Posted: Wed Jul 31, 2013 8:41 pm
by smithzv
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

Posted: Thu Aug 01, 2013 9:20 am
by corvir
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

Posted: Fri Aug 02, 2013 12:50 am
by womblegonebad
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.