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@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, 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@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@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel