Skip to content
  1. Jan 29, 2017
    • Francois-Rene Rideau's avatar
      Improve c-toolchain · 1c28a961
      Francois-Rene Rideau authored and Attila Lendvai's avatar Attila Lendvai committed
      Add support for getting parameters from new SBCL sbcl.mk.
      Add support for getting parameters from CLISP makevars.
      Add support for getting parameters for ECL and MKCL.
      
      Refactor static linking to use the above.
      On SBCL, this relies on the new feature :sb-linkable-runtime
      (from 1.3.14-20-g402a8fab6).
      On ECL and MKCL, have static-{image,program}-op be pass-through synonyms
      for the usual variants.
      Remove deceitful incomplete support for static linking on CMUCL.
      
      Add shell test for static linking, to better work with SBCL (uses cl-launch).
      
      Add class c-file for C files to compile, and o-file for precompiled objects.
      They can be either dynamically loaded into the current process,
      or statically linked into a new runtime.
      
      Upgrade backward compatibility bundle from asdf 3.1.6 to 3.2.0.
      Stop manually curating a minimal set of changes,
      just adopt a new bundle.lisp wholesale.
      1c28a961
  2. Oct 19, 2015
    • Francois-Rene Rideau's avatar
      Make CFFI-grovel play well with ASDF 3.1.6 · 2de8ece5
      Francois-Rene Rideau authored
      Move the C toolchain support to its own system cffi-toolchain.
      
      Create linkable object files and include them in output-files for
      compile-op, so that they can be found and linked by a recent-enough
      ASDF (3.1.6 or later).
      
      Allow for delivery of a system with a single static and/or dynamic
      library, and on support platform (CLISP, CMUCL, SBCL), enable delivery
      of a standalone executable that statically links required extensions.
      
      This requires a recent SBCL (will hopefully be released in 1.2.17).
      ASDF 3.1.6 is required, but backward compatibility code is
      provided at least back to ASDF 3.1.2.
      
      On BSD, use ld -r for "libraries" instead of ar and possibly libtool.
      
      When forking a Lisp to dump an image, support Quicklisp.
      
      Make CFFI-Grovel generally more robust.
      
      Document static linking operations in manual. Improve documentation.
      
      Add test for ASDF support including wrappers.
      2de8ece5
  3. Jun 05, 2008
  4. Dec 08, 2007
  5. Apr 13, 2007
  6. Feb 19, 2007
  7. May 03, 2006
  8. Jan 01, 2006
  9. Dec 28, 2005
  10. Dec 23, 2005
  11. Dec 12, 2005
    • Luís Oliveira's avatar
      Bug fixes · dc4219cd
      Luís Oliveira authored
      - WITH-FOREIGN-OBJECT should eval the type parameter. Fixed this
        as well as the examples and tests that assumed it wasn't evaluated.
      - document WITH-FOREIGN-OBJECT in the manual.
      - removed the pseudo ability to specialize arguments on
        define-type-translator. That didn't quite work, doh.
      - removed dead code from cffi-uffi-compat::foreign-type-size
        specialized on the uffi-array-type.
      - uffi-compat: parse (:array <type>) as (:array <type> 1)
      - uffi-compat: reflect the fact that CFFI:WITH-FOREIGN-OBJECT now
        evaluates the type parameter.
      dc4219cd
  12. Dec 09, 2005
    • Luís Oliveira's avatar
      Lots of renaming and 2 new functions · bfddc915
      Luís Oliveira authored
      - Renamed: null-ptr -> null-pointer, null-ptr-p -> null-pointer,
        inc-ptr -> inc-pointer, with-foreign-ptr -> with-foreign-pointer,
        with-foreign-ptr-as-string -> with-foreign-pointer-as-string,
        foreign-slot-address -> foreign-slot-pointer,
        get-var-ptr -> get-var-pointer and
        foreign-symbol-ptr -> foreign-symbol-pointer.
      - Updated various references to the old names in the cffi code itself,
        examples, tests and the manual.
      - New functions: cffi(-sys):pointer-address and cffi(-sys):make-pointer.
      - Use these in uffi-compat.
      - Documented them in the manual.
      - New tests: POINTER.1 and POINTER.2
      bfddc915
  13. Dec 02, 2005
  14. Aug 26, 2005
    • Luís Oliveira's avatar
      Type system improvements and more. · cf0aca67
      Luís Oliveira authored
      - New tests: tests/enums.lisp (4 tests) and tests/misc-types.lisp (3 tests).
      - New file: objects.lisp, skeleton of the safe typed pointer interface. I
        also added a :boolean type here, it's looking for a better home still.
      - (early-types.lisp): type parsers, DEFINE-TYPE-SPEC-PARSER and PARSE-TYPE.
        Added abbility to have anonymous types (ie. a name is no longer required
        for FOREIGN-TYPE). Moved DEFCTYPE to types.lisp.
      - (enum.lisp): improved DEFCENUM, the values for each keyword are now
        optional, like in C. Added the anonymous type (:enum ...)
      - (types.lisp):
          - Renamed :TO-C-ARG to :TO-C-DYNAMIC.
          - Renamed FOREIGN-AREF to MEM-AREF and implemented compiler macros
            for it.
          - New exported macro: DEFINE-FOREIGN-TYPE for parameterized types.
          - Change DEFINE-TYPE-TRANSLATOR back to the previous interface,
            translators take a type argument now and we have translators
            available at runtime now too.
          - FOREIGN-TYPEDEF's now inherit their parent type's translators.
          - New :wrapper type, for anonymous typedefs with translators.
      - (strings.lisp): Renamed string to :string. Added new type, :string+ptr.
      - (utils.lisp): renamed let-if to bif.
      - (tests/callbacks.lisp): two tests were not being run for SBCL
        because I thought it triggered a bug but it's actually only one that
        triggers the bug. Fixed that.
      - Updated examples and tests to use :string instead of string.
      cf0aca67
  15. Jun 13, 2005
  16. Jun 12, 2005
  17. Jun 11, 2005
    • Stelian Ionescu's avatar
      Add unit testing framework using RT. · b1f81eee
      Stelian Ionescu authored
      Add unit testing framework using RT.
      Lots of manual and CFFI-SYS updates.
      Add passing a double float to sprintf in examples.lisp.
      Update the syntax of the nested structure example.
      Add the INC-PTR function to the CFFI-SYS backends.
      Add the shareable byte vector interface to the CFFI-SYS backends.
      Started writing support for aggregate structure slots.  Not used yet.
      b1f81eee
  18. Jun 08, 2005
  19. Jun 07, 2005