I'm looking into setting up a Hunchentoot server on an OpenBSD system and right away noticed problems in the notes about building threads into SBCL (it sounds experimental). Lack of thread support would be a problem, wouldn't it? Has anyone run Hunchentoot on OpenBSD before? If so, were you able to use SBCL? If not, what did you use?
Thanks. --Jeff
On Fri, Nov 13, 2009 at 04:33, Jeff Cunningham j.k.cunningham@comcast.net wrote:
I'm looking into setting up a Hunchentoot server on an OpenBSD system and right away noticed problems in the notes about building threads into SBCL (it sounds experimental). Lack of thread support would be a problem, wouldn't it? Has anyone run Hunchentoot on OpenBSD before? If so, were you able to use SBCL? If not, what did you use?
I have not run Lisp on OpenBSD, but here is some advice anyway: Running Hunchentoot in a single threaded Lisp is not generally a problem for low-volume sites. I would decouple the Lisp server from clients using a HTTP proxy so that slow clients can't easily stall the server.
I generally use squid (http://www.squid-cache.org/) for that purpose, but there are a host of other options. When evaluating http proxies last time, I have not been able to find one that supports single threaded backend servers well: In such a configuration, it would generally be preferable to queue requests in the front end process and perform precise scheduling of backend requests. None of the http proxies I looked at (squid, nginix, varnish) supported that.at the time.
Thank you, Hans. I will take a look at that. I wouldn't have thought of that problem. Fortunately, it will be a low-volume site.
--Jeff
Hans Hübner wrote:
On Fri, Nov 13, 2009 at 04:33, Jeff Cunningham j.k.cunningham@comcast.net wrote:
I'm looking into setting up a Hunchentoot server on an OpenBSD system and right away noticed problems in the notes about building threads into SBCL (it sounds experimental). Lack of thread support would be a problem, wouldn't it? Has anyone run Hunchentoot on OpenBSD before? If so, were you able to use SBCL? If not, what did you use?
I have not run Lisp on OpenBSD, but here is some advice anyway: Running Hunchentoot in a single threaded Lisp is not generally a problem for low-volume sites. I would decouple the Lisp server from clients using a HTTP proxy so that slow clients can't easily stall the server.
I generally use squid (http://www.squid-cache.org/) for that purpose, but there are a host of other options. When evaluating http proxies last time, I have not been able to find one that supports single threaded backend servers well: In such a configuration, it would generally be preferable to queue requests in the front end process and perform precise scheduling of backend requests. None of the http proxies I looked at (squid, nginix, varnish) supported that.at the time.
tbnl-devel site list tbnl-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/tbnl-devel
Hans Hübner wrote:
On Fri, Nov 13, 2009 at 04:33, Jeff Cunningham j.k.cunningham@comcast.net wrote:
I'm looking into setting up a Hunchentoot server on an OpenBSD system and right away noticed problems in the notes about building threads into SBCL (it sounds experimental). Lack of thread support would be a problem, wouldn't it? Has anyone run Hunchentoot on OpenBSD before? If so, were you able to use SBCL? If not, what did you use?
I have not run Lisp on OpenBSD, but here is some advice anyway: Running Hunchentoot in a single threaded Lisp is not generally a problem for low-volume sites. I would decouple the Lisp server from clients using a HTTP proxy so that slow clients can't easily stall the server.
For what it's worth, I was able to build Hunchentoot single-threaded on OpenBSD, but found it nearly impossible to work with that way. I couldn't find a way to save an executable core, for example. I couldn't get swank to work, couldn't talk to a running instance so it ends up pretty much brain-dead. Once I'd launch the server I'd lose the repl ane the only way to make changes was to kill the process externally, edit and restart Lisp. There may be ways to solve all these problems, but I'm thinking I'd be better off spending my time (and money) finding a Linux server instead.
Thanks for the help, --Jeff
On Sun, Nov 15, 2009 at 1:00 PM, Jeff Cunningham j.k.cunningham@comcast.net wrote:
Hans Hübner wrote:
On Fri, Nov 13, 2009 at 04:33, Jeff Cunningham j.k.cunningham@comcast.net wrote:
I'm looking into setting up a Hunchentoot server on an OpenBSD system and right away noticed problems in the notes about building threads into SBCL (it sounds experimental). Lack of thread support would be a problem, wouldn't it? Has anyone run Hunchentoot on OpenBSD before? If so, were you able to use SBCL? If not, what did you use?
I have not run Lisp on OpenBSD, but here is some advice anyway: Running Hunchentoot in a single threaded Lisp is not generally a problem for low-volume sites. I would decouple the Lisp server from clients using a HTTP proxy so that slow clients can't easily stall the server.
For what it's worth, I was able to build Hunchentoot single-threaded on OpenBSD, but found it nearly impossible to work with that way. I couldn't find a way to save an executable core, for example. I couldn't get swank to work, couldn't talk to a running instance so it ends up pretty much brain-dead. Once I'd launch the server I'd lose the repl ane the only way to make changes was to kill the process externally, edit and restart Lisp. There may be ways to solve all these problems, but I'm thinking I'd be better off spending my time (and money) finding a Linux server instead.
Or you could try Clozure Common Lisp (CCL) on OpenBSD. CCL and multi-threaded Hunchentoot are known to work on FreeBSD, but none of us at Clozure has an OpenBSD machine to try it on.
-Bill
Bill St. Clair wrote:
Or you could try Clozure Common Lisp (CCL) on OpenBSD. CCL and multi-threaded Hunchentoot are known to work on FreeBSD, but none of us at Clozure has an OpenBSD machine to try it on.
-Bill
Can CCL generate executable images?
--Jeff
On Sun, Nov 15, 2009 at 7:22 PM, Jeff Cunningham j.k.cunningham@comcast.net wrote:
Bill St. Clair wrote:
Or you could try Clozure Common Lisp (CCL) on OpenBSD. CCL and multi-threaded Hunchentoot are known to work on FreeBSD, but none of us at Clozure has an OpenBSD machine to try it on.
-Bill
Can CCL generate executable images?
Yes, with (save-application filename ... :prepend-kernel t)
-Bill
Bill St. Clair wrote:
On Sun, Nov 15, 2009 at 7:22 PM, Jeff Cunningham <j.k.cunningham at comcast.net> wrote:
Bill St. Clair wrote:
Or you could try Clozure Common Lisp (CCL) on OpenBSD. CCL and multi-threaded Hunchentoot are known to work on FreeBSD, but none of us at Clozure has an OpenBSD machine to try it on.
-Bill
Can CCL generate executable images?
I just grabbed latest snapshot through subversion and tried the binary and it failed, so apparently it isn't compatible with OpenBSD. I tried both the lx86cl64 and lx86cl versions (can't tell if this remote machine is 64-bit or not, it doesn't have /proc/cpu-info mounted and that's the only way I know to find out). I don't have root priviledges so there's not much else I can try that I know of. Is there a way to build it from scratch? Or do you have to start with the binary?
We should probably take this off list - its getting off topic.
--Jeff
Jeff Cunningham wrote:
I'm thinking I'd be better off spending my time (and money) finding a Linux server instead.
Another option you might consider: You can build a multithreaded SBCL under FreeBSD and run Hunchentoot there. I've deployed exactly such a server for a long time without a problem.
Just a suggestion, as I suspect migrating from OpenBSD to FreeBSD might be a little easier than migrating to Linux.
Bob