gdbm: Update README. Fix test. Nomenclature.
authorMatt Birkholz <matt@birkholz.chandler.az.us>
Fri, 6 Sep 2013 23:55:50 +0000 (16:55 -0700)
committerMatt Birkholz <matt@birkholz.chandler.az.us>
Fri, 6 Sep 2013 23:55:50 +0000 (16:55 -0700)
Add installation instructions from the previous commit message.  Test
with the newly built shim (not an installed shim).  Call the Scheme
code that interfaces to C "the wrapper", as in blowfish/README.

src/gdbm/Makefile
src/gdbm/README
src/gdbm/check.scm
src/gdbm/compile.scm
src/gdbm/gdbm-adapter.c
src/gdbm/gdbm-check.scm
src/gdbm/gdbm.scm

index f5a855bdacc2ca7bed8328c777f0f7b4a2e495b7..f5fe3d3aab1848d6f7303bf4c63a58cb27b43b41 100644 (file)
 MIT_SCHEME_EXE = mit-scheme
 EXE = '$(MIT_SCHEME_EXE)' --batch-mode
 
-build: gdbm-shim.so
+all: gdbm-shim.so
        echo '(load "compile")' | $(EXE)
 
-check:
+check: all
        echo '(load "check")' | $(EXE)
 
-install: build
+install: all
        echo '(install-shim "gdbm")' | $(EXE) -- *.com *.bci *.pkd make.scm
 
-clean:
+clean distclean maintainer-clean:
        rm -f gdbm-const.scm gdbm-const gdbm-const.c gdbm-shim.c
        rm -f gdbm-*.crf gdbm-*.fre gdbm-*.pkd
        rm -f *.o *.so *.bin *.ext *.com *.bci
@@ -51,4 +51,4 @@ gdbm-shim.o: gdbm-shim.c gdbm-shim.h
 gdbm-shim.c: gdbm.cdecl gdbm-shim.h
        echo '(generate-shim "gdbm" "#include \"gdbm-shim.h\"")' | $(EXE)
 
-.PHONY: build install clean
\ No newline at end of file
+.PHONY: all check install clean distclean maintainer-clean
index bb998aa1c02742449ff9035c1a6ae57cfb92a1ca..b59f067f0ce091e1095f81584559a66c53846baa 100644 (file)
@@ -1,12 +1,24 @@
-The libgdbm wrapper.
+The GDBM wrapper.
 
-This wrapper is not part of the core build and can be built outside
-the core build tree.  There is no ./configure script yet.  If you know
-you have libgdbm installed, you should win with this command:
+This is a drop-in replacement for the gdbm microcode module and
+runtime/gdbm.scm.  It is not part of the core build and can be built
+outside the core build tree.  There is no ./configure script yet.  If
+you know you have libgdbm installed, you should win with this command:
 
-       make build check install
+    make all check install
 
 The install target copies a shared library shim and compiled Scheme
 files into the system library path.  You can override the default
-command name "mit-scheme" (and system library path) by setting
-MIT_SCHEME_EXE.
+command name "mit-scheme" (and thus the system library path) by
+setting MIT_SCHEME_EXE.
+
+To load via load-option, install the following in your optiondb.scm:
+
+    (define-load-option 'GDBM2 (guarded-system-loader '(gdbm) "gdbm"))
+
+You will need to call it GDBM2 while GDBM refers to the original
+microcode module.
+
+You will need to import the bindings you want to use.  They are not
+exported to the global environment because they would conflict with
+the exports from (runtime gdbm).
index 62d147a35cd9df5611abfa13a2e2a02991cc98d8..77bbd67a18709c4d3c22e9adc992c4387f33068b 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*- |#
 
-;;;; Test the GDBM adapter.
+;;;; Test the GDBM wrapper.
 
 (load "make")
 (with-system-library-directories
index f675f571453ffcbea51391f934d661633ce98bd4..b94c01ac7676d7989e56d25941c6d2ff20939b23 100644 (file)
@@ -1,9 +1,12 @@
 #| -*-Scheme-*- |#
 
-;;;; Compile the GDBM adapter
+;;;; Compile the GDBM wrapper.
 
 (fluid-let ((load/suppress-loading-message? #t))
   (load-option 'CREF)
   (load-option 'FFI))
 
-(compile-system "gdbm" (directory-pathname (current-load-pathname)))
\ No newline at end of file
+(with-system-library-directories
+ '("./")
+ (lambda ()
+   (compile-system "gdbm" (directory-pathname (current-load-pathname)))))
\ No newline at end of file
index d0c4c6822f9293a7bf76bbdd0cacb0e69371d5bd..333e1fc9c9bab416095714bc290f4f5afb0fd095 100644 (file)
@@ -24,7 +24,7 @@ USA.
 
 */
 
-/* Interface to the gdbm database library */
+/* Adapters for the GDBM database library. */
 
 #include <mit-scheme.h>
 #include "gdbm-shim.h"
index ddf029f8b9b8e8dd97faede3d92b21eb401992b9..7b31c0375cb3855b96b2262fa18e7bd755ae2377 100644 (file)
@@ -24,10 +24,10 @@ USA.
 
 |#
 
-;;;; Test the GDBM adapter.
+;;;; Test the GDBM wrapper.
 
 (if (not (gdbm-available?))
-    (warn "gdbm adapter not found")
+    (warn "gdbm wrapper not found")
     (let ((filename.db "gdbm-check.db"))
       (ignore-errors (lambda () (delete-file filename.db)))
       (let ((dbf (gdbm-open filename.db 0 GDBM_WRCREAT #o660)))
index 6418c944e9c345da0ecc60bda530a48384e7abfa..a799b119f8db679ceef80e03f914d3d4aab49686 100644 (file)
@@ -24,11 +24,10 @@ USA.
 
 |#
 
-;;;; gdbm Database Library Interface
+;;;; GDBM wrapper
 ;;; package: (gdbm)
 
-(declare (usual-integrations)
-        (integrate-external))
+(declare (usual-integrations))
 \f
 (C-include "gdbm")