On Tue, Apr 29, 2014 at 3:12 AM, Alexander Schreiber <als@thangorodrim.de> wrote:

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?