On Tue, Apr 29, 2014 at 3:12 AM, Alexander Schreiber als@thangorodrim.dewrote:
Usefulness. If I write a library in C, pretty much everything that runs on Unix can link to it (if need be, via FFI and friends) and use it. If I write a library i Common Lisp, then code written in Common Lisp can use it unless people are willing to do some interesting contortions (such wrapping it in an RPC server).
I just checked http://www.cliki.net/Common%20Lisp%20implementation and I see that nearly all currently active free implementations of CL have a FFI with "callback" support and the commercial ones do too. Granted there may be a "completeness" issue in most of those FFI though. But there is hardly any serious need for a RPC server solution anymore. And on that completeness issue (that may not be of much interest but anyway) I happen to be currently hard at work. So you will soon have at least one free CL that will do full C99 interfacing, with plenty of C type inferencing and checking at runtime as Pascal seems to appreciate. The only drag with it will be that, as in ECL, you will have make a call to initialize the CL world/context before using the rest of the interface and probably call a shutdown of the CL world/context at the end. I hope it is not too much overhead.
Exercise for the interested: write a library in Common Lisp that does, say, some random data frobnication and try to use it from: C, Python, Perl, C++ _without_ writing new interface infrastructure.
What "new interface infrastructure"? What is that infrastructure supposed to do?