[cffi-devel] Linking CL to fortran-77 via cffi

Mirko Vukovic mirko.vukovic at gmail.com
Wed Jan 4 02:29:35 UTC 2012


Liam,

I think Tamas Papp is much ahead of me in terms of linking cl to f77 arrays
(especially on SBCL).  Your best bet might be to somehow link to his LLA
package (https://github.com/tpapp/lla).  I suspect that his package also
grovels through the f77 libraries, automatically generating CL defun's.
But once I could not find what I was looking for, I stopped digging.

My work originates from the need to link to one or two subroutines for
special functions that were note available via gsl (and gsll/antik).

Ideally, there would be a suite of four (or fewer) packages that provide
- examples of linking (as the current package does)
- automatic defun generation (something like defun-fortran-call ...)
- groveller
- interfaces to particular libraries (lapack, netlib, toms)
Ideally those would be four packages, so that the user can choose which one
suits him best.

It might be best to discuss with Tamas, and with his guidance extracts
parts of LLA into separate packages, that he can then also use in LLA.

Mirko

On Tue, Jan 3, 2012 at 4:30 PM, Liam Healy <lnp at healy.washington.dc.us>wrote:

> Mirko,
>
> Thank you for this work.  I'm interested in building interfaces to Lapack
> etc. using Antik.  In the foreign-array definitions, I have an option
> :linearization which can be either :row-major or :column-major; it defaults
> to the former.  I even have make-fortran-array<http://repo.or.cz/w/antik.git/blob/4d37965fa7712b968ac4d2d6dd743b1e707e47c1:/foreign-array/foreign-array.lisp#l206>,
> but it's not built out closer to the user further than that.  I will take a
> closer look at your code later (unfortunately, too busy with other things
> now), but if you have thoughts on how Antik should go, I'd be very
> interested to hear about them.
>
> Thanks.
> Liam
>
> On Thu, Dec 29, 2011 at 9:19 PM, Mirko Vukovic <mirko.vukovic at gmail.com>wrote:
>
>> Hello,
>>
>> Several projects (lla, blapack among them) link common lisp (cl) to
>> fortran 77 (f77)code.  Unfortunately, being totally unfamiliar with cffi, I
>> was having trouble using those packages to learn how to link cl to other
>> f77 code.
>>
>> To learn more about calling f77 code from CL, I assembled a bunch of
>> simple examples (using cygwin+clisp+gfortran).to show how to pass values of
>> various types to f77.
>>
>> I have put up the examples on https://github.com/mirkov/cffi-f77.  I
>> tried to add enough documentation to make the package easily
>> understandable.
>>
>> I hope this proves useful to others.  I would appreciate comments
>> regarding errors and improvements.
>>
>> And, as always, thanks for cffi :-)
>>
>> Mirko
>>
>> _______________________________________________
>> cffi-devel mailing list
>> cffi-devel at common-lisp.net
>> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cffi-devel/attachments/20120103/6182b38b/attachment.html>


More information about the cffi-devel mailing list