[hunchentoot-devel] Hunchentoot with ECL

css css at swissjabber.ch
Wed Mar 26 01:23:04 UTC 2008


2008/3/21, Anton Vodonosov <avodonosov at yandex.ru>:
> >> As I noticed, Hunchentoot is not yet ported to ECL, even though the
>  >> ECL-documentation says that it has Gray-Streams-, Thread- and
>  >> Socket-Support as far as I read.
>  >>
>  >> Was there simply no interest to port it to ECL so far, or is there
>  >> any reason why it is not possible or very hard to port it to ECL, or
>  >> why one should not use ECL?
>
>  > I suppose there was simply no interest so far.  You're welcome to
>  > provide patches for ECL.
>
>  >   http://weitz.de/patches.html
>
>
> Not to say there was no interest at all, I'm quite interested in that,
>  but there is not enough free time, as usually...

I am trying to do this at the moment, but I have some problems. I have
"ported" trivial-gray-streams, chunga and flexi-streams (and cl+ssl
should also work, but I have a problem with the ssl-library at the
moment). Any package required by Hunchentoot compiles successfully.
Does anybody of you happen to know a Maintainer of these Packages, or
where I can submit the changes I have made?

Porting the Socket-Stuff was not hard, since it is compatible with
sb-bsd-sockets. Porting the Thread-Stuff was so far not hard except
for "with-timeout", and I use bordeaux-threads to implement this macro
for the moment (I was too lazy to really implement it correctly -
maybe I will do this soon, it shouldnt be too hard to replace it).

I had to replace the form

(loop for key = (read-line *hunchentoot-stream* nil nil)
                             while (and key (string-not-equal key "end"))
                             for value = (read-line *hunchentoot-stream* t)
                             collect (cons (make-keyword key) value)
                             do (maybe-write-to-header-stream key value)))

by some tagbody-go-form, because ECL doesnt support it.

I now have got a Version of Hunchentoot which compiles under ECL and
starts listening to a port if told. But it doesnt answer requests for
some reason. It doesnt throw errors (though *catch-errors-p*=nil) but
it seems not to answer the requests.
Maybe there is some Deadlock or endless loop (in my tagbody form for
instance), I dont know. I will try to figure it out as soon as I have
some free time again. If somebody is interested in this so far, just
ask, I will give the patches I have made.

C S S



More information about the Tbnl-devel mailing list