[cffi-devel] New patches: 31-Dec-2008

Luis Oliveira loliveira at common-lisp.net
Thu Jan 1 00:42:02 UTC 2009


Wed Dec 31 01:57:14 UTC 2008  Luis Oliveira <loliveira at common-lisp.net>
  * Experimental DEFCSTRUCT feature: accessors.
  
  CFFI> (macroexpand-1 '(defcstruct (foo :conc-name foo-)
                          (a :int)))
  ;;; ... 
  (defun foo-a (pointer-to-foo)
    (foreign-slot-value pointer-to-foo 'foo 'a))
  (defun (setf foo-a) (value pointer-to-foo)
    (foreign-slot-set value pointer-to-foo 'foo 'a))
  ;;; ... 

    M ./src/types.lisp -8 +26

Wed Dec 31 01:51:45 UTC 2008  Luis Oliveira <loliveira at common-lisp.net>
  * Improvements to the :ARRAY type.
  
  - Got rid of the :AUTO-ARRAY type. Add translators to :ARRAY
    directly instead.
  - Make the :ARRAY type aggregate. This way it can be used
    inside structures as an alternative to the :COUNT slot option.
  - Add TRANSLATE-AGGREGATE-TO-FOREIGN method that lets us do
    (setf (foreign-slot-value ptr 'struct 'slot-name) #(1 2 3))

    M ./src/types.lisp -16 +30

Wed Dec 31 01:48:50 UTC 2008  Luis Oliveira <loliveira at common-lisp.net>
  * Apply translators to FOREIGN-SLOT-VALUE on aggregate slots
  
  Implemented a new generic function TRANSLATE-AGGREGATE-TO-FOREIGN to
  support (SETF FOREIGN-SLOT-VALUE) for aggregate slots.

    M ./src/early-types.lisp +4
    M ./src/types.lisp -16 +21

Wed Dec 31 00:50:38 UTC 2008  Luis Oliveira <loliveira at common-lisp.net>
  * Add note about FREE-TRANSLATED-OBJECT's PARAM argument.

    M ./src/early-types.lisp +3


An updated tarball of CFFI's source can be downloaded here:
http://common-lisp.net/project/cffi/tarballs/cffi-081231.tar.gz

Darcsweb URL:
http://common-lisp.net/cgi-bin/darcsweb/darcsweb.cgi?r=cffi-cffi;a=summary




More information about the cffi-devel mailing list