3 ms·
It's scheme, not CL, but don't forget HOP http://hop.inria.fr/ http://hop.inria.fr/ and whatever the PLT people have in store http://www.plt-scheme.org/ http://
by fahree 20y ago
It's scheme, not CL, but don't forget HOP http://hop.inria.fr/ http://hop.inria.fr/ and whatever the PLT people have in store http://www.plt-scheme.org/ http://www.plt-scheme.org/
- jwecker 20y agobtw, HOP uses the Bigaloo web server and so isn't quite adequate apparently for a high traffic site (like I assume most here will have). here's an email exchange I had with the author the other day- sorry if the comment's a bit big: I apologize for such a late answer. I'm always fighting with email. I'm definitively not good at it because I'm not able to answer at a decent pace. Hi Manuel. I've just been playing with Hop. Well done. It's just beautiful. A couple of questions about it: first, the bigloo web server- is this completely necessary? I guess one of 4 things would need to happen for hop to be totally ideal: Bigloo implements light-weight threads Gambit-scheme style so that it can have erlang-like load capacity ( http://www.sics.se/~joe/apachevsyaws.html http://www.sics.se/~joe/apachevsyaws.html ) (most preferable option, IMO, though I have no idea what your feelings are here. To me this would make bigloo light-years ahead of all other scheme imps.) I have tried several things concerning the multi-threading. You can read our FairThreads proposal (http://www.inria.fr/mimosa/Manuel.Serrano). http://www.inria.fr/mimosa/Manuel.Serrano). When I did this study I though that FairThreads was a decent solution. Now that's no longer clear to me. Hop does not use Fair threads but Posix like threads. I'm quite aware of all the troubles that come with this kind of threads. I have not considered an Erlang-like solution yet but that's something I could envision. Get hop to work with a gambit-scheme server instead of bigloo (where would i start with this? can you point me to relevant points in the code?) No, I think that you cannot. Hop is really not a portable Scheme program. It extensively relies on Bigloo features. I'm afraid that you will have to rewrite entirely. It's not a huge program but it is not that small either. The problem is that it uses a lot of libraries that you would have to re-implement too. All in all it's about 40.000 lines of Scheme code. I don't really recommend to try to re-implement that (except if you are very brave ;-) Get hop to work with mod_lisp (less preferable, IMO) No. I don't think that a solution too. Hop needs to be running permanently. That is two successive requests must be handled in the same execution environment (i.e., the first request may set a global variable that is read by the second request). Hence, even if you want to use Apache you will be forced to have a server running somewhere and you will have to establish a communication between Apache and that server. Why not directly using Hop as a server? Second item is the overall latency and possible redundancy... actually, I don't know how to phrase the problem- but it boils down to this, I counted over 27 distinct "connecting to server" cycles when you click on the "weblets" tab of the Hop Home page. It took quite a while re-establishing the connection to the server 27 times. Are there thoughts on overcoming this? Not really but... First, the Hop server supports keep-alive connections. This should help. Then, honestly, I have hoped to find time to optimize the server for months. I have not found that time yet but I think that I will have it around the end of Spring. At that moment, I will study the problem you are mentioning. However, I'm using Hop on a daily basis. Even more, in order to push it to its limits, I'm using it as my regular proxy. That is all my HTTP connections, on all my machines, go through a Hop proxy/server. The performance are acceptable. That is, I'm not annoyed by an important slow down due to Hop. Thanks again!! You are welcome. Thanks for the encouragements. -- Manuel