Luke Gorrie luke@bluetail.com writes:
Okay, you have talked some sense into me. I had assumed all Lisps would have socket interfaces similar to CMUCL/serve-event. Oops.
I did the next round of refactoring. It turned out that all backends, with the exception of Lispworks, have indeed a very similar socket interface. I used some internal Lispworks functions to implement the same interface there. There are now more, but simpler functions. The interface also includes 'add-input-handler' and a function to spawn new processes. The idea is that the "start server in background" logic can be implemented in swank.lisp, but that's not done yet. All backends are currently simple sequential servers.
I re-replaced the socket interface with a much simpler one. I've re-ported CMUCL and SBCL, also LispWorks but without the dedicated output channel sofar. I also updated the CLISP backend, but haven't tested it! I seem incapable of building and installing a recent version of CLISP, I end up with this funky stuff:
When I install CLISP 2.32, I did something like this:
- install libsigsegv - create a directory 'build' - run 'configure build' - 'cd build' - './makemake --with-dynamic-ffi --with-nogettext --without-unicode --with-module=bindings/glibc --with-module=regexp --with-module=syscalls > Makefile' - make config.lisp - make - make check - make install
Helmut.