[cffi-devel] Re: how to build gsl dll

Mirko Vukovic mirko.vukovic at gmail.com
Mon Feb 18 20:43:55 UTC 2008


On Mon, Feb 18, 2008 at 1:52 PM, Reini Urban <rurban at x-ray.at> wrote:
> Mirko Vukovic schrieb:
>  > On Mon, Feb 18, 2008 at 11:01 AM, Reini Urban  wrote:
>  >>  2008/2/17, Mirko Vukovic:
>
> >>> I am trying to build a dll for gsl.  I want to link it to clisp.
>  >>  I would suggest not to use a static clisp module, just use the FFI.
>  >>  This is much simplier, smaller and easier to test. See libsvm or matlab,
>  >>  or pari for a more optimized binding.
>  >>
>  >>  I want to do this for my gdi module also, but had no time yet.
>  >>  And we still have no header parser, which could construct the
>  >>  FFI binding automatically. cffi might be useful.
>
>
> > Reini,
>  > The reason why I need cffi is that I am trying to get nlisp to work on
>  > clisp+cygwin.  And nlisp is using cffi.  I have nlisp running at work
>  > on linux+sbcl, but my laptop has only cygwin.
>
>  $ cygcheck /bin/cyggsl-0.dll
>  f:\cygwin\bin\cyggsl-0.dll
>    f:\cygwin\lib\lapack\cygblas.dll
>
>  Are you sure you have /lib/lapack or /usr/lib/lapack added to your path?
>
>
>  > I posted a message on the cffi mailing list, and Luis is helping me there.
>
>  I see.
>  $ clisp -q
>  (ASDF:OOS 'ASDF:LOAD-OP :ASDF-INSTALL)
>  (ASDF-INSTALL:INSTALL :nlisp)
>
>  Oops...
>  So I had to create a small patch
>  http://sourceforge.net/tracker/index.php?func=detail&aid=1896345&group_id=174776&atid=870580
>
>  nlisp.lisp:
>  (cffi:define-foreign-library libgslcblas
>    (:darwin "libgslcblas.dylib")
>    (:unix (:or "cyggslcblas-0.dll" "libgslcblas.so.0" "libgslcblas.so"))
>  ...
>  (cffi:define-foreign-library libgsl
>    (:darwin "libgsl.dylib")
>    (:unix (:or "cyggsl-0.dll" "libgsl.so.0" "libgsl.so"))
>  ...
>  (cffi:define-foreign-library libsndfile
>    (:darwin "libsndfile.dylib")
>    (:unix (:or "cygsndfile-1.dll" "libsndfile.so.1" "libsndfile.so"))
>
>  Luís, cannot this be a bit simplified for :cygwin?
>  I've always have to do this.
>  "libsndfile.so.1" can be automatically translated to "cygsndfile-1.dll".
>  Unfortunately :cygwin is no define-foreign-library target, just :unix.
>
>  nlisp-core.lisp:
>  fixnum and double-float just name clisp types, no classes yet. This is
>  just for cmucl/sbcl so far. CLHS does not require those.
>  The clisp numeric classes are listed in the impnotes Chapter 4.4.
>  (NUMBER, COMPLEX, REAL, FLOAT, RATIONAL, RATIO, INTEGER)
>
>  Now (ASDF:OOS 'ASDF:LOAD-OP :NLISP) prints tons of
>  FFI::FOREIGN-LIBRARY-FUNCTION warnings, but works fine.
>  --
>
> Reini Urban
>  http://phpwiki.org/  http://murbreak.at/
>  http://helsinki.at/  http://spacemovie.mur.at/
>  _______________________________________________
>  cffi-devel mailing list
>  cffi-devel at common-lisp.net
>  http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel
>

Reini,

I was using that your format as well.

You can see from Luis' post that he can load the library as well.
I'll keep digging to see why I cannot link to it (even though I can
probe it - meaning clisp can see it)

Thanks for your comments and help

Mirko



More information about the cffi-devel mailing list