I have recompiled mod_lisp2.c against Apache 2.2.8 for Windows using Visual C++ Express 2008. mod_lisp itself only needs the include files and libraries that are an optional part of the Apache binary installation, but I downloaded the Apache source (that includes Visual Studio 6 project files) so that I could check the compiler and linker settings.
My slightly modified mod_lisp2.c, the Visual C++ 9 project file and the Release build of the module are available in a .zip file. Please note the title of this blog when considering whether to use any of it.
The diff looks like this:
*** ../../download/programming/Other Lisp stuff/mod_lisp2 - svn.c Tue Apr 8 23:33:07 2008
--- mod_lisp2.c Mon Jun 2 18:15:31 2008
***************
*** 443,451 ****
{
char crlf[2] = {0xd, 0xa};
char length[16];
! snprintf(length, 16, "%x", n_bytes);
! apr_status_t status = write_lisp_data (socket, length, strlen(length));
if ( status == APR_SUCCESS)
{
status = write_lisp_data (socket, crlf, 2);
--- 443,453 ----
{
char crlf[2] = {0xd, 0xa};
char length[16];
! apr_status_t status;
!
! apr_snprintf(length, 16, "%x", n_bytes); // 2 Jun 08 JDP
! status = write_lisp_data (socket, length, strlen(length));
if ( status == APR_SUCCESS)
{
status = write_lisp_data (socket, crlf, 2);
Via Christophe
Rhodes, Alistair
Bridgewater's progress on porting SBCL to Windows. Impressive stuff, but
still a fair way to go. Brian Mastenbrook has some
interesting comments, referring to the projects on the CL-Gardeners list:
If there were one Common Lisp which I could run on every platform — one which provided portability for applications using threads and doodads and whatsits without requiring me to GPL my code because I use some internal interface of that implementation — I would probably use it, even if it provided less performance than my current lisp of choice. When it comes down to it, I rarely need performance. No such flower or weed exists yet. If I were to plant it, I would not plant it in the garden of Common Lisp. For as much as I love working in this language I would not take the opportunity to implement any of the obvious advances in language design in the past twenty years and pass it by just to implement ANSI Common Lisp.
And then I think: why don't I just buy a couple of LispWorks licenses for my application development needs, and then use Factor as the FOSS, cross-platform, natively-compiled, metaprogramming-capable, embeddable language for Ngake? At least until Arc is ready, although that could be many years away...
Meanwhile, the CL-Gardeners list continues to throw up links to useful Lisp projects, like Chris Riesbeck's Lisp Critic.
Updated 21/12/05: Alistair has posted more information to the CL-Gardeners list.
I would like to knock up a simple but customised timekeeping app to run
on my semi-ancient Clié PDA (running PalmOS 4.1). Ideally I
would've liked to use Python or Ruby or Tcl/Tk, that is, something that
might've had a decent UI layer. But none of those seemed to be currently
supported, so I went for LispMe, an
R4RS Scheme compiler and runtime for PalmOS written by Fred
Bayer. It looks quite nice, although I don't know whether editing source
code via Graffiti is going to be much fun. Fred suggests pedit, so I've
installed that as well. And TealMaster, and DateBk. Now I can
have a go at working through The Little Schemer
and The Seasoned
Schemer, before one day tackling The Wizard Book (with the aid
of the
videos I've been downloading).
Anyway, here is my current list of "cool things I'd like to do with Corman Lisp."
Reading the Fetter/VZN mailing list archives was interesting. It sounds like its at a pretty workable state. They don't seem to have found GCCXML to be a limiting factor, and their handling of overloaded names is, er, maximally straightforward.
And Gary King has finally posted about Lisp, and actually links to several libraries he's preparing for release. I often think that I should study people's Lisp utility libraries, as I'm sure that would be educational.
On the SLIME mailing list, someone linked to this new evaluator for SBCL.
Python Paste