put things in a package
authorD Herring <dherring@at.tentpost.dot.com>
Fri, 8 Apr 2011 03:29:33 +0000 (23:29 -0400)
committerD Herring <dherring@at.tentpost.dot.com>
Fri, 8 Apr 2011 03:29:33 +0000 (23:29 -0400)
hdf5.asd
packages.lisp [new file with mode: 0644]
read-check-macros.lisp
read-enums.lisp
read-functions.lisp
read-open-macros.lisp
types.lisp

index 14862eb..9061dbc 100644 (file)
--- a/hdf5.asd
+++ b/hdf5.asd
@@ -1,7 +1,8 @@
 (asdf:defsystem :hdf5
   :depends-on (:cffi)
   :components
-  ((:file "read-open-macros")
+  ((:file "packages")
+   (:file "read-open-macros")
    (:file "read-check-macros")
    (:file "read-functions")
    (:file "read-enums")
diff --git a/packages.lisp b/packages.lisp
new file mode 100644 (file)
index 0000000..3de1b54
--- /dev/null
@@ -0,0 +1,41 @@
+(in-package :cl-user)
+#|
+(cl:defpackage :%hdf5-cffi
+  (:documentation "internal package for creating CFFI definitions")
+  (:use :cl)
+  (:export
+   #:hdf5-enums
+   #:hdf5-function-pointers
+   #:hdf5-open-macros
+   #:hdf5-check-macros
+   #:hdf5-functions))
+|#
+(cl:defpackage :hdf5-cffi
+  (:documentation "raw CFFI bindings to HDF5")
+  (:use :cl #|:%hdf5-cffi|#)
+  (:export
+   #:hid-t
+   #:herr-t
+   #:hbool-t
+   #:hsize-t
+   #:hssize-t
+   #:haddr-t
+   #:htri-t
+   #:h5z-filter-t
+   #:size-t
+   #:ssize-t
+   #:off-t
+   #:h5e-major-t
+   #:h5e-minor-t
+   #:h5fd-mem-t
+   #:h5o-msg-crt-idx-t
+   #:h5p-prp-create-func-t
+   #:h5p-prp-set-func-t
+   #:h5p-prp-get-func-t
+   #:h5p-prp-delete-func-t
+   #:h5p-prp-copy-func-t
+   #:h5p-prp-close-func-t
+   #:h5z-filter-t
+   #:h5g-link-t
+   ;; plus a lot of programmatic exports
+   ))
index 7e4197e..9d5635d 100644 (file)
@@ -1,3 +1,5 @@
+(in-package :hdf5-cffi)
+
 (defun read-check-macros (&optional (filename "check-macros.txt"))
   (with-open-file (file filename)
     (do (code
@@ -8,6 +10,7 @@
       (let* ((pos (position #\Space line))
              (macro (read-from-string (normalize-name (subseq line 0 pos))))
              (value (read-from-string (subseq line (1+ pos)))))
+        (push `(cl:export ',macro) code)
         (push `(define-symbol-macro ,macro (progn (h5check) ,value))
               code)))))
 
index e4cc337..31aebe3 100644 (file)
@@ -1,3 +1,5 @@
+(in-package :hdf5-cffi)
+
 (defun read-enums (&optional (filename "enums.txt"))
   (let ((kw (find-package :keyword)))
     (with-open-file (file filename)
@@ -21,7 +23,9 @@
                   (let ((clause (list (read sline)  'cffi:defcenum)))
                     (dolist (v (reverse values))
                       (push v clause))
-                    (push (reverse clause) enums))
+                    (setf clause (reverse clause))
+                    (push `(cl:export ',(second clause)) enums)
+                    (push clause enums))
                 (setf values nil))))))))
 
 (defmacro hdf5-enums ()
index 4a35063..87edaba 100644 (file)
@@ -1,3 +1,5 @@
+(in-package :hdf5-cffi)
+
 (defun whitespace? (char)
   (member char '(#\Space #\Tab)))
 
                (name (car (car parse)))
                (symbol (normal-symbol name))
                (args (cdr parse)))
+          (push `(cl:export ',symbol) code)
           (push `(cffi:defcfun (,symbol ,name) ,ret ,function ,@args) code))
         (setf function "")))))
 
                (read-line file nil)))
         ((not line)
          (cons 'progn code))
+      (push `(cl:export ',(normal-symbol line)) code)
       (push `(cffi:defctype ,(normal-symbol line) :pointer) code))))
 
 (defmacro hdf5-functions ()
index 4dde649..38ddd32 100644 (file)
@@ -1,3 +1,5 @@
+(in-package :hdf5-cffi)
+
 #| Example:
 Given "H5T_NATIVE_INT64 H5T_NATIVE_INT64_g", expand to
 
@@ -28,7 +30,8 @@ Given "H5T_NATIVE_INT64 H5T_NATIVE_INT64_g", expand to
         (setf code
               (append code
                       (list `(cffi:defcvar (,variable ,varname :read-only t) hid-t)
-                            `(define-symbol-macro ,macro (progn (h5open) ,variable)))))))))
+                            `(define-symbol-macro ,macro (progn (h5open) ,variable))
+                            `(cl:export ',macro))))))))
 
 (defmacro hdf5-open-macros ()
   (read-open-macros))
index 2b5f4ed..9c9f092 100644 (file)
@@ -1,3 +1,5 @@
+(in-package :hdf5-cffi)
+
 ;; basic API types
 (eval-when (:compile-toplevel :load-toplevel :execute)
   (cffi:define-foreign-library hdf5