more documentation master
authorD Herring <dherring@at.tentpost.dot.com>
Fri, 8 Apr 2011 04:44:53 +0000 (00:44 -0400)
committerD Herring <dherring@at.tentpost.dot.com>
Fri, 8 Apr 2011 04:44:53 +0000 (00:44 -0400)
LICENSE_1_0.txt [new file with mode: 0644]
Makefile
README.txt

diff --git a/LICENSE_1_0.txt b/LICENSE_1_0.txt
new file mode 100644 (file)
index 0000000..36b7cd9
--- /dev/null
@@ -0,0 +1,23 @@
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
index 7b2f993..6766670 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,11 @@
 INCLUDEDIR=/mnt/samsung2tb/slack64/include
 
+FILES=enums.txt open-macros.txt check-macros.txt functions.txt function-pointers.txt
+all: $(FILES)
+
+clean:
+       rm -f $(FILES)
+
 # two-step so if the first fails, the file won't update...
 # tr for name canonicalization
 enums.txt:
index e9214ae..a36b988 100644 (file)
@@ -1,2 +1,44 @@
-CL bindings to HDF5 (version 1.8.6 or so)
+CL bindings to HDF5
+
+Copyright (c) 2011 Daniel Herring
+Distributed under the Boost Software License, Version 1.0.
+   (See accompanying file LICENSE_1_0.txt or copy at
+         http://www.boost.org/LICENSE_1_0.txt)
+
+
+The HDF5 C library can be obtained at
 http://www.hdfgroup.org/HDF5/
+
+
+The current bindings provides nearly-complete coverage of the HDF5 library.
+A few #defines were skipped, and I didn't see the need to convert any structures.
+
+The bindings are mostly autogenerated by parsing the header files, with a few hand-specified items in types.lisp.
+All functions should have docstrings containing the original C function prototype.
+
+The bindings included in this source tree were generated against HDF5 version 1.8.6.
+To regenerate the bindings against a different version of HDF5,
+- edit the Makefile to the proper INCLUDEDIR
+- run `make clean all`
+- edit custom definitions in types.lisp (especially the h5-vers constants)
+- (re)compile the ASDF system
+
+Note that the compilation currently needs to be done in the source directory.
+
+
+
+Todo:
+- provide a realistic example
+- fix sourcing of header information (both by lisp and the Makefile)
+- clean up the platform/version-specific settings in types.lisp
+- provide a lispy "high-level interface" in the :hdf5 package
+  - manage files, data spaces, etc.
+  - auto-convert a CFFI defcstruct into an HDF5 memory type hid_t
+- put bindings in version-specific subdirectories, probe the library version to determine which set to use
+- handle more #defines
+- handle structs
+
+Notes:
+- Avoid cffi-grovel (requires a C compiler).
+- Keep extract of header files in the project (don't require headers).
+- Could (cffi:foreign-type-size :pointer) be used to correctly infer size_t?