Skip to content
  1. Feb 05, 2012
  2. Jan 23, 2012
  3. Jan 13, 2012
  4. Sep 18, 2011
  5. Sep 17, 2011
    • Liam M. Healy's avatar
      Define prepare-function · de640c1e
      Liam M. Healy authored
      Define #'prepare-function which generates a form to make the
      preparation and call into libffi.  The form looks correct but it has
      not been tested yet.
      de640c1e
    • Liam M. Healy's avatar
      Make libffi-type-pointer a slot and method, define for built-in types · 418a998e
      Liam M. Healy authored
      1. Idea: Make a slot for libffi-type-pointer and define for all
      built-in types, then define methods to make the pointer on demand for
      other type classes.
      2. Add slot [libffi-type-pointer] with generic function to defclass
      foreign-type. 
      3. New file [built-in-types.lisp] defines all built-in types, and
      libffi-type-pointer :around method for typedefs/aliases.
      4. New [libffi-type-pointer :around method] for foreign-struct-type.
      5. New lists exported from CFFI for possible other uses, and needed
      here: *other-builtin-types* *built-in-integer-types*
      *built-in-float-types*.
      418a998e
  6. Sep 12, 2011
    • Liam M. Healy's avatar
      New function cstruct-libffi-type-pointer · 186a29be
      Liam M. Healy authored
      Created a function cstruct-libffi-type-pointer that generates the
      libffi-type structure for any foreign structure type, so that this
      structure may be used as an argument or return call by value to a
      foreign function.  It replaces the automatic generation of this
      structure when defstruct is compiled or loaded (via
      *defcstruct-hook*), so that it is only made when needed and cffi-fsbv
      need not be loaded when the defcstruct is compiled.  The structure
      will only be made once; it is bound to the plist of the type symbol
      (as before), and is reused if needed again.  This function compiles
      but has not yet been tested.
      186a29be
  7. Sep 11, 2011
    • Liam M. Healy's avatar
      Define structure interface to libffi · f5469081
      Liam M. Healy authored
      Generic function translate-into-foreign-memory and funtion
      convert-into-foreign-memory definitions now loaded by cffi.  System
      cffi-fsbv defined for calling functions with foreign structures by
      value using libffi.  Current state of this system is to make
      libffi-type-pointer and associate with the structure in defcstruct.
      This works on test structure
      (macroexpand '(defcstruct (complex :class complex-type) (real :double) (imag :double)))
      but nothing further is done with the libffi-type-pointer.
      
      To do: fix lookup-type so that if there is no type defined, it returns
      nil.  Do iterate-foreign-structure in advance of macro expansion in
      cstruct-libffi-hook, if any arguments lack type translation, then
      return nil.  This means that that structure can not be passed/returned
      by value.  Then load cif after cstruct.  Secondary bug fix: defsynonym
      'unsigned to something, not sure what it's supposed to be; :uint?
      f5469081
  8. Jun 22, 2009
  9. Dec 30, 2007
  10. Jul 17, 2007
    • Luís Oliveira's avatar
      Bug fixes · e5fd4e27
      Luís Oliveira authored
      - Fix :LICENSE -> :LICENCE in cffi-grovel.asd
      - grovel.lisp fixes:
          * fix OpenMCL's INVOKE
          * have INVOKE call NATIVE-NAMESTRING
          * add IGNORABLE declaration to DEFINE-GROVEL-SYNTAX
      - CMUCL's EXT:UNIX-NAMESTRING is buggy, don't use it.
      - strings.lisp: pass missing max-octets argument to OCTET-COUNTER
        in FOREIGN-STRING-ALLOC.
      e5fd4e27
  11. Jun 17, 2007
    • Luís Oliveira's avatar
      Integrate cffi-grovel · c1f1e23e
      Luís Oliveira authored
      Added a groveller based on Dan Knap's and Matthew Backes's cffi-grovel
      and Stelian Ionescu's fork iolib-grovel.  cffi-grovel is inspired by
      SBCL's groveller.  This is a preliminary version.
      
      Includes a new wrapper generator syntax to simplify the writing of
      C glue libraries among other minor features.
      
      - Updated TODO items related to grovelling.
      - Integrated documentation into the CFFI manual.
      - src/libraries: use ".so" as the default library suffix.
      c1f1e23e
  12. Apr 13, 2007
  13. May 03, 2006
  14. Dec 23, 2005
  15. Jun 07, 2005