<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 29, 2014 at 3:12 AM, Alexander Schreiber <span dir="ltr"><<a href="mailto:als@thangorodrim.de" target="_blank">als@thangorodrim.de</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><br></div>
Usefulness. If I write a library in C, pretty much everything that runs on<br>
Unix can link to it (if need be, via FFI and friends) and use it. If I write<br>
a library i Common Lisp, then code written in Common Lisp can use it unless<br>
people are willing to do some interesting contortions (such wrapping it in<br>
an RPC server).<br></blockquote><div><br>I just checked <a href="http://www.cliki.net/Common%20Lisp%20implementation" target="_blank">http://www.cliki.net/Common%20Lisp%20implementation</a> 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.<br>
<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Exercise for the interested: write a library in Common Lisp that does, say,<br>
some random data frobnication and try to use it from: C, Python, Perl, C++<br>
_without_ writing new interface infrastructure.<br>
<br></blockquote><div><br></div><div>What "new interface infrastructure"? What is that infrastructure supposed to do?<br></div><div> <br><br></div></div></div></div>