This commit was manufactured by cvs2svn to create tag 'rel-1-3-17'.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/tags/rel-1-3-17@4125 626c5289-ae23-0410-ae9c-e8d60b6d4f22
diff --git a/SWIG/Examples/GIFPlot/Common-Lisp/full/cmap b/SWIG/Examples/GIFPlot/Common-Lisp/full/cmap
deleted file mode 100644
index a20c331..0000000
--- a/SWIG/Examples/GIFPlot/Common-Lisp/full/cmap
+++ /dev/null
Binary files differ
diff --git a/SWIG/Examples/GIFPlot/Common-Lisp/full/gifplot.i b/SWIG/Examples/GIFPlot/Common-Lisp/full/gifplot.i
deleted file mode 100644
index e5c15aa..0000000
--- a/SWIG/Examples/GIFPlot/Common-Lisp/full/gifplot.i
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Oh what the heck, let's just grab the whole darn header file
-   and see what happens. */
-
-%module gifplot
-%{
-
-/* Note: You still need this part because the %include directive
-   merely causes SWIG to interpret the contents of a file.  It doesn't
-   include the right include headers for the resulting C code */
-
-#include "gifplot.h"
-
-%}
-
-/* Pixel is typedef'd to unsigned char, and SWIG will translate this
-   type into Scheme characters. We would like to translate Pixels to
-   Scheme integers instead, so: */
-
-SIMPLE_MAP(Pixel, gh_scm2int, gh_int2scm, integer);
-
-%include gifplot.h
diff --git a/SWIG/Examples/GIFPlot/Common-Lisp/full/runme.lisp b/SWIG/Examples/GIFPlot/Common-Lisp/full/runme.lisp
deleted file mode 100644
index 48f8042..0000000
--- a/SWIG/Examples/GIFPlot/Common-Lisp/full/runme.lisp
+++ /dev/null
@@ -1,59 +0,0 @@
-;;; Plot a 3D function
-
-;; Here is the function to plot
-(defun func (x y)
-  (* 5
-     (cos (* 2 (sqrt (+ (* x x) (* y y)))))
-     (exp (* -0.3 (sqrt (+ (* x x) (* y y)))))))
-
-;; Here are some plotting parameters
-(defvar xmin -5D0)
-(defvar xmax  5D0)
-(defvar ymin -5D0)
-(defvar ymax  5D0)
-(defvar zmin -5D0)
-(defvar zmax  5D0)
-
-;; Grid resolution
-(defvar nxpoints  60)
-(defvar nypoints  60)
-
-(defun drawsolid (p3)
-  (Plot3D-clear p3 0)
-  (Plot3D-start p3)
-  (let ((dx (/ (- xmax xmin) nxpoints))
-	(dy (/ (- ymax ymin) nypoints))
-	(cscale (/ 240 (- zmax zmin))))
-    (loop for x from xmin by dx
-	  repeat nxpoints
-	  do (loop for y from ymin by dy
-		   repeat nypoints
-		   do (let* ((z1 (func x y))
-			     (z2 (func (+ x dx) y))
-			     (z3 (func (+ x dx) (+ y dy)))
-			     (z4 (func x (+ y dy)))
-			     (c1 (* cscale (- z1 zmin)))
-			     (c2 (* cscale (- z2 zmin)))
-			     (c3 (* cscale (- z3 zmin)))
-			     (c4 (* cscale (- z4 zmin)))
-			     (cc (/ (+ c1 c2 c3 c4) 4))
-			     (c  (round (max (min cc 239) 0))))
-			(Plot3D-solidquad p3 x y z1 (+ x dx) y z2 (+ x dx) (+ y dy)
-					  z3 x (+ y dy) z4 (+ c 16)))))))
-
-(defun action (cmap-filename)
-  (let ((cmap (new-ColorMap cmap-filename))
-	(frame (new-FrameBuffer 500 500)))
-    (format t "Making a nice 3D plot...~%")
-    (FrameBuffer-clear frame 0)
-    (let ((p3 (new-Plot3D frame xmin ymin zmin xmax ymax zmax)))
-      (Plot3D-lookat p3 (* 2 (- zmax zmin)))
-      (Plot3D-autoperspective p3 40D0)
-      (Plot3D-rotu p3 60D0)
-      (Plot3D-rotr p3 30D0)
-      (Plot3D-rotd p3 10D0)
-      (drawsolid p3))
-    (FrameBuffer-writeGIF frame cmap "/tmp/image.gif")
-    (format t "Wrote image.gif~%")))
-
-
diff --git a/SWIG/Examples/java/mpointer/Makefile b/SWIG/Examples/java/mpointer/Makefile
deleted file mode 100644
index 69fb4e6..0000000
--- a/SWIG/Examples/java/mpointer/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-TOP        = ../..
-SWIG       = $(TOP)/../swig
-CXXSRCS    = example.cxx
-TARGET     = example
-INTERFACE  = example.i
-SWIGOPT    =
-
-all::	java
-
-java::
-	$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
-	SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
-	javac *.java
-
-clean::
-	$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/SWIG/Examples/java/mpointer/example.cxx b/SWIG/Examples/java/mpointer/example.cxx
deleted file mode 100644
index 1a6bb66..0000000
--- a/SWIG/Examples/java/mpointer/example.cxx
+++ /dev/null
@@ -1,45 +0,0 @@
-/* File : example.c */
-
-#include "example.h"
-#include <math.h>
-
-/* Move the shape to a new location */
-void Shape::move(double dx, double dy) {
-  x += dx;
-  y += dy;
-}
-
-int Shape::nshapes = 0;
-
-double Circle::area(void) {
-  return M_PI*radius*radius;
-}
-
-double Circle::perimeter(void) {
-  return 2*M_PI*radius;
-}
-
-double Square::area(void) {
-  return width*width;
-}
-
-double Square::perimeter(void) {
-  return 4*width;
-}
-
-double do_op(Shape *s, double (Shape::*m)(void)) {
-  return (s->*m)();
-}
-
-double (Shape::*areapt())(void) {
-  return &Shape::area;
-}
-
-double (Shape::*perimeterpt())(void) {
-  return &Shape::perimeter;
-}
-
-/* Member pointer variables */
-double (Shape::*areavar)(void) = &Shape::area;
-double (Shape::*perimetervar)(void) = &Shape::perimeter;
-
diff --git a/SWIG/Examples/java/mpointer/example.h b/SWIG/Examples/java/mpointer/example.h
deleted file mode 100644
index 110fe91..0000000
--- a/SWIG/Examples/java/mpointer/example.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* File : example.h */
-
-class Shape {
-public:
-  Shape() {
-    nshapes++;
-  }
-  virtual ~Shape() {
-    nshapes--;
-  };
-  double  x, y;   
-  double  *z;
-
-  void    move(double dx, double dy);
-  virtual double area(void) = 0;
-  virtual double perimeter(void) = 0;
-  static  int nshapes;
-};
-
-class Circle : public Shape {
-private:
-  double radius;
-public:
-  Circle(double r) : radius(r) { };
-  virtual double area(void);
-  virtual double perimeter(void);
-};
-  
-class Square : public Shape {
-private:
-  double width;
-public:
-  Square(double w) : width(w) { };
-  virtual double area(void);
-  virtual double perimeter(void);
-};
-
-extern double do_op(Shape *s, double (Shape::*m)(void));
-
-/* Functions that return member pointers */
-
-extern double (Shape::*areapt())(void);
-extern double (Shape::*perimeterpt())(void);
-
-/* Global variables that are member pointers */
-extern double (Shape::*areavar)(void);
-extern double (Shape::*perimetervar)(void);
-
-
-  
diff --git a/SWIG/Examples/java/mpointer/example.i b/SWIG/Examples/java/mpointer/example.i
deleted file mode 100644
index 238792b..0000000
--- a/SWIG/Examples/java/mpointer/example.i
+++ /dev/null
@@ -1,16 +0,0 @@
-/* File : example.i */
-%module example
-
-%{
-#include "example.h"
-%}
-
-/* Let's just grab the original header file here */
-%include "example.h"
-
-/* Some constants */
-
-%constant double (Shape::*AREAPT)(void) = &Shape::area;
-%constant double (Shape::*PERIMPT)(void) = &Shape::perimeter;
-%constant double (Shape::*NULLPT)(void) = 0;
-
diff --git a/SWIG/Examples/java/mpointer/main.java b/SWIG/Examples/java/mpointer/main.java
deleted file mode 100644
index ab6cdf1..0000000
--- a/SWIG/Examples/java/mpointer/main.java
+++ /dev/null
@@ -1,61 +0,0 @@
-// Example using pointers to member functions
-
-public class main {
-  static {
-    try {
-        System.loadLibrary("example");
-    } catch (UnsatisfiedLinkError e) {
-      System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
-      System.exit(1);
-    }
-  }
-
-  public static void main(String argv[]) 
-  {
-      // Get the pointers
-
-      SWIGTYPE_m_Shape__f_void__double area_pt = example.areapt();
-      SWIGTYPE_m_Shape__f_void__double perim_pt = example.perimeterpt();
-
-      System.out.println( "area_pt  =" + area_pt );
-      System.out.println( "perim_pt = " + perim_pt );
-
-      // Create some objects
-
-      Circle c = new Circle(4);
-      Square s = new Square(10);
-
-      // Do some calculations
-
-      System.out.println( "Circle area  = " + example.do_op(c,area_pt) );
-      System.out.println( "Circle perim = " + example.do_op(c,perim_pt) );
-      System.out.println( "Square area  = " + example.do_op(s,area_pt) );
-      System.out.println( "Square perim = " + example.do_op(s,perim_pt) );
-
-      System.out.println( "areavar      = " + example.getAreavar() );
-      System.out.println( "perimetervar = " + example.getPerimetervar() );
-
-      // Try the variables
-      System.out.println( "Circle area  = " + example.do_op(c,example.getAreavar()) );
-      System.out.println( "Circle perim = " + example.do_op(c,example.getPerimetervar()) );
-      System.out.println( "Square area  = " + example.do_op(s,example.getAreavar()) );
-      System.out.println( "Square perim = " + example.do_op(s,example.getPerimetervar()) );
-
-      // Modify one of the variables
-      example.setAreavar(perim_pt);
-
-      System.out.println( "Circle perimeter = " + example.do_op(c,example.getAreavar()) );
-
-      // Try the constants
-
-      System.out.println( "example.AREAPT =" + example.AREAPT );
-      System.out.println( "example.PERIMPT=" + example.PERIMPT );
-      System.out.println( "example.NULLPT =" + example.NULLPT );
-
-      System.out.println( "Circle area  = " + example.do_op(c,example.AREAPT) );
-      System.out.println( "Circle perim = " + example.do_op(c,example.PERIMPT) );
-      System.out.println( "Square area  = " + example.do_op(s,example.AREAPT) );
-      System.out.println( "Square perim = " + example.do_op(s,example.PERIMPT) );
-
-  }
-}
diff --git a/SWIG/Examples/s-exp/uffi.lisp b/SWIG/Examples/s-exp/uffi.lisp
deleted file mode 100644
index 3869f10..0000000
--- a/SWIG/Examples/s-exp/uffi.lisp
+++ /dev/null
@@ -1,349 +0,0 @@
-;;; This is experimental code that uses the s-expression
-;;; representation of a C/C++ library interface to generate Foreign
-;;; Function Interface definitions for use with Kevin Rosenberg's
-;;; UFFI.
-;;;
-;;; Written by Matthias Koeppe <mkoeppe@mail.math.uni-magdeburg.de>
-
-(require 'port)				; from CLOCC
-
-(in-package :cl-user)
-
-(require 'uffi)
-
-;; Interaction with the SWIG binary
-
-(defvar *swig-source-directory* #p"/home/mkoeppe/s/swig1.3/")
-
-(defvar *swig-program* (merge-pathnames "swig-1.3" *swig-source-directory*))
-
-(defun run-swig (swig-interface-file-name &key directory-search-list module
-		 ignore-errors)
-  (setf (port:getenv :SWIG_LIB)
-	(namestring (merge-pathnames "Lib" *swig-source-directory*)))
-  (let ((temp-file-name "/tmp/swig.lsp"))
-    (let ((process
-	   (port:run-prog (namestring *swig-program*)
-			  :output t
-			  :args `("-sexp"
-				  ,@(mapcar (lambda (dir)
-				       (concatenate 'string
-						    "-I" (namestring dir)))
-					    directory-search-list)
-				  ,@(and module
-					 `("-module" ,module))
-				  "-o" ,temp-file-name
-				  ,(namestring swig-interface-file-name)))))
-      #+cmu (unless (or (zerop (ext:process-exit-code process))
-			ignore-errors)
-	      (error "Process swig exited abnormally"))
-      (with-open-file (s temp-file-name)
-	(read s)))))
-
-;; Type system
-
-(defun parse-swigtype (type-string &key start end junk-ok)
-  "Parse TYPE-STRING as SWIG's internal representation of C/C++
-types. Return two values: The type description (an improper list) and
-the terminating index into TYPE-STRING."
-  ;; SWIG's internal representation is described in Source/Swig/stype.c
-  (unless start
-    (setq start 0))
-  (unless end
-    (setq end (length type-string)))
-  (flet ((prefix-match (prefix)
-	   (let ((position (mismatch prefix type-string :start2 start :end2 end)))
-	     (or (not position)
-		 (= position (length prefix)))))
-	 (bad-type-error (reason)
-	   (error "Bad SWIG type (~A): ~A" reason
-		  (subseq type-string start end)))
-	 (type-char (index)
-	   (and (< index (length type-string))
-		(char type-string index)))	       
-	 (cons-and-recurse (prefix start end)
-	   (multiple-value-bind (type-description index)
-	       (parse-swigtype type-string :start start :end end
-				:junk-ok junk-ok)
-	     (values (cons prefix type-description)
-		     index))))
-    (cond
-      ((prefix-match "p.")		; pointer
-       (cons-and-recurse '* (+ start 2) end))
-      ((prefix-match "r.")		; C++ reference
-       (cons-and-recurse '& (+ start 2) end))
-      ((prefix-match "a(")		; array
-       (let ((closing-paren (find #\) type-string
-				  :start (+ start 2)
-				  :end end)))
-	 (unless closing-paren
-	   (bad-type-error "missing right paren"))
-	 (unless (eql (type-char (+ closing-paren 1)) #\.)
-	   (bad-type-error "missing dot"))
-	 (cons-and-recurse (list 'ARRAY (subseq type-string (+ start 2) closing-paren))
-			   (+ closing-paren 2) end)))
-      ((prefix-match "q(")		; qualifier (const, volatile)
-       (let ((closing-paren (find #\) type-string
-				  :start (+ start 2)
-				  :end end)))
-	 (unless closing-paren
-	   (bad-type-error "missing right paren"))
-	 (unless (eql (type-char (+ closing-paren 1)) #\.)
-	   (bad-type-error "missing dot"))
-	 (cons-and-recurse (list 'QUALIFIER (subseq type-string (+ start 2) closing-paren))
-			   (+ closing-paren 2) end)))
-      ((prefix-match "m(")		; C++ member pointer
-       (multiple-value-bind (class-type class-end-index)
-	   (parse-swigtype type-string :junk-ok t
-			    :start (+ start 2) :end end)
-	 (unless (eql (type-char class-end-index) #\))
-	   (bad-type-error "missing right paren"))
-	 (unless (eql (type-char (+ class-end-index 1)) #\.)
-	   (bad-type-error "missing dot"))
-	 (cons-and-recurse (list 'MEMBER-POINTER class-type)
-			   (+ class-end-index 2) end)))	 
-      ((prefix-match "f(")		; function
-       (loop with index = (+ start 2) 
-	     until (eql (type-char index) #\))
-	     collect (multiple-value-bind (arg-type arg-end-index)
-			 (parse-swigtype type-string :junk-ok t
-					  :start index :end end)
-		       (case (type-char arg-end-index)
-			 (#\, (setq index (+ arg-end-index 1)))
-			 (#\) (setq index arg-end-index))
-			 (otherwise (bad-type-error "comma or right paren expected"))) 
-		       arg-type)
-	     into arg-types
-	     finally (unless (eql (type-char (+ index 1)) #\.)
-		       (bad-type-error "missing dot"))
-	     (return (cons-and-recurse (cons 'FUNCTION arg-types)
-				       (+ index 2) end))))
-      (t (let ((junk-position (position-if (lambda (char)
-					     (member char '(#\, #\( #\) #\.)))
-					   type-string
-					   :start start :end end)))
-	   (cond (junk-position		; found junk
-		  (unless junk-ok
-		    (bad-type-error "trailing junk"))
-		  (values (subseq type-string start junk-position)
-			  junk-position))
-		 (t
-		  (values (subseq type-string start end)
-			  end))))))))
-
-(defun swigtype-function-p (swigtype)
-  "Check whether SWIGTYPE designates a function.  If so, the second
-value is the list of argument types, and the third value is the return
-type."
-  (if (and (consp swigtype)
-	   (consp (first swigtype))
-	   (eql (first (first swigtype)) 'FUNCTION))
-      (values t (rest (first swigtype)) (rest swigtype))
-      (values nil nil nil)))
-	      
-
-;; UFFI
-
-(defvar *uffi-definitions* '())
-
-(defconstant *uffi-default-primitive-type-alist*
-  '(("char" . :char)
-    ("unsigned char" . :unsigned-byte)
-    ("signed char" . :byte)
-    ("short" . :short)
-    ("signed short" . :short)
-    ("unsigned short" . :unsigned-short)
-    ("int" . :int)
-    ("signed int" . :int)
-    ("unsigned int" . :unsigned-int)
-    ("long" . :long)
-    ("signed long" . :long)
-    ("unsigned long" . :unsigned-long)
-    ("float" . :float)
-    ("double" . :double)
-    ((* . "char") . :cstring)
-    ((* . "void") . :pointer-void)
-    ("void" . :void)))
-
-(defvar *uffi-primitive-type-alist* *uffi-default-primitive-type-alist*)
-
-(defun uffi-type-spec (type-list)
-  "Return the UFFI type spec equivalent to TYPE-LIST, or NIL if there
-is no representation."
-  (let ((primitive-type-pair
-	 (assoc type-list *uffi-primitive-type-alist* :test 'equal)))
-    (cond
-      (primitive-type-pair
-       (cdr primitive-type-pair))
-      ((and (consp type-list)
-	    (eql (first type-list) '*))
-       (let ((base-type-spec (uffi-type-spec (rest type-list))))
-	 (cond
-	   ((not base-type-spec)
-	    :pointer-void)
-	   (t
-	    (list '* base-type-spec)))))
-      (t nil))))
-
-;; Parse tree
-
-(defvar *uffi-output* nil)
-
-(defun emit-uffi-definition (uffi-definition)
-  (format *uffi-output* "~&~S~%" uffi-definition)
-  (push uffi-definition *uffi-definitions*))
-
-(defun make-cl-symbol (c-identifier)
-  (intern (substitute #\- #\_ (string-upcase c-identifier))))
-
-(defvar *class-scope* '() "A stack of names of nested C++ classes.")
-
-(defvar *struct-fields* '())
-
-(defgeneric handle-node (node-type &key &allow-other-keys)
-  (:documentation "Handle a node of SWIG's parse tree of a C/C++ program"))
-
-(defmethod handle-node ((node-type t) &key &allow-other-keys)
-  ;; do nothing for unknown node types
-  nil)
-
-(defmethod handle-node ((node-type (eql 'cdecl)) &key name decl storage parms type &allow-other-keys)
-  (let ((swigtype (parse-swigtype (concatenate 'string decl type))))
-    (let ((*print-pretty* nil))	; or FUNCTION would be printed as #' by cmucl
-      (format *uffi-output* "~&;; C Declaration: ~A ~A ~A ~A~%;;  with-parms ~W~%;;   of-type ~W~%"
-	      storage type name decl parms swigtype))
-    (multiple-value-bind (function-p arg-swigtype-list return-swigtype)
-	(swigtype-function-p swigtype)
-      (declare (ignore arg-swigtype-list))
-      (cond
-	((and (null *class-scope*) function-p) ; ordinary top-level function
-	 (let ((uffi-arg-list
-		(mapcar (lambda (param)
-			  (destructuring-bind (&key name type &allow-other-keys) param
-			    (let ((uffi-type (uffi-type-spec (parse-swigtype type))))
-			      (unless uffi-type
-				(format *uffi-output* "~&;; Warning: Cannot handle type ~S of argument `~A'~%"
-					type name)
-				(return-from handle-node))
-			      `(,(make-cl-symbol name) ,uffi-type))))
-			parms))
-	       (uffi-return-type
-		(uffi-type-spec return-swigtype)))
-	   (unless uffi-return-type
-	     (format *uffi-output* "~&;; Warning: Cannot handle return type `~S'~%"
-		     return-swigtype)
-	     (return-from handle-node))
-	   (emit-uffi-definition `(UFFI:DEF-FUNCTION ,name ,uffi-arg-list :RETURNING ,uffi-return-type))))
-
-	((and (not (null *class-scope*)) (null (rest *class-scope*))
-	      (not function-p))	; class/struct member (no nested structs)
-	 (let ((uffi-type (uffi-type-spec swigtype)))
-	   (unless  uffi-type
-	     (format *uffi-output* "~&;; Warning: Cannot handle type ~S of struct field `~A'~%"
-		     type name)
-	     (return-from handle-node))
-	   (push `(,(make-cl-symbol name) ,uffi-type) *struct-fields*)))))))
-
-(defmethod handle-node ((node-type (eql 'class)) &key name children kind &allow-other-keys)
-  (format *uffi-output* "~&;; Class ~A~%" name)
-  (let ((*class-scope* (cons name *class-scope*))
-	(*struct-fields* '()))
-    (dolist (child children)
-      (apply 'handle-node child))
-    (emit-uffi-definition `(,(if (string= kind "union")
-				 'UFFI:DEF-UNION
-				 'UFFI:DEF-STRUCT)
-			    ,(make-cl-symbol name) ,@(nreverse *struct-fields*)))))
-
-(defmethod handle-node ((node-type (eql 'top)) &key children &allow-other-keys)
-  (dolist (child children)
-    (apply 'handle-node child)))
-  
-(defmethod handle-node ((node-type (eql 'include)) &key name children &allow-other-keys)
-  (format *uffi-output* ";; INCLUDE ~A~%" name)
-  (dolist (child children)
-    (apply 'handle-node child)))
-  
-;;(defun compute-uffi-definitions (swig-interface)
-;;  (let ((*uffi-definitions* '()))
-;;    (handle-node swig-interface)
-;;    *uffi-definitions*))
-
-;; Test instances
-
-#+ignore
-(defvar *gifplot-interface*
-  (run-swig (merge-pathnames "Examples/GIFPlot/Interface/gifplot.i"
-			     *swig-source-directory*)
-	    :directory-search-list (list (merge-pathnames "Examples/GIFPlot/Interface/" *swig-source-directory*))))
-
-(defvar *simple-gifplot-interface*
-  (run-swig (merge-pathnames "Examples/GIFPlot/Include/gifplot.h"
-			     *swig-source-directory*)
-	    :directory-search-list (list (merge-pathnames "Examples/GIFPlot/Interface/" *swig-source-directory*))
-	    :module "gifplot"))
-
-(defvar *cplex-glue-directory* #p"/home/mkoeppe/cvs/cplex-glue/")
-
-(defvar *cplex-glue-interface*
-  (run-swig (merge-pathnames "cplex.i" *cplex-glue-directory*)
-	    :directory-search-list (list (merge-pathnames "Lib/guile"
-							  *swig-source-directory*)
-					 *cplex-glue-directory*)
-	    :ignore-errors t))
-	    
-  
-
-(require 'uffi)
-
-;;(let ((*uffi-primitive-type-alist* (cons '("Pixel" . :unsigned-int) *uffi-default-primitive-type-alist*)))
-;;  (eval (cons 'progn (compute-uffi-definitions *simple-gifplot-interface*))))
-
-
-(with-open-file (f "/tmp/swig-uffi.lisp" :direction :output)
-  (let ((*uffi-definitions* '())
-	(*uffi-output* f)
-	(*uffi-primitive-type-alist*
-	 (cons '("Pixel" . :unsigned-int) *uffi-default-primitive-type-alist*)))
-    (apply 'handle-node *simple-gifplot-interface*)))
-
-#+cplex
-(with-open-file (f "/tmp/swig-uffi.lisp" :direction :output)
-  (let ((*uffi-definitions* '())
-	(*uffi-output* f)
-	(*uffi-primitive-type-alist*
-	 (cons '("Pixel" . :unsigned-int) *uffi-default-primitive-type-alist*)))
-    (apply 'handle-node *cplex-glue-interface*)))
-
-(compile-file "/tmp/swig-uffi.lisp")
-
-(load "/tmp/swig-uffi.lisp")
-
-(uffi:load-foreign-library (merge-pathnames "Examples/GIFPlot/libgifplot.a"
-					    *swig-source-directory*))
-
-(load (merge-pathnames "Examples/GIFPlot/Common-Lisp/full/runme.lisp" *swig-source-directory*))
-
-(action (namestring (merge-pathnames "Examples/GIFPlot/Common-Lisp/full/cmap"
-				     *swig-source-directory*)))
-
-;;;; TODO:
-
-;; * How to do type lookups?  Is everything important that SWIG knows
-;;   about the types written out?  What to make of typemaps?
-;;
-;; * Wrapped functions should probably automatically COERCE their
-;;   arguments (as of type DOUBLE-FLOAT), to make the functions more
-;;   flexible?
-;;
-;; * Why are the functions created by FFI interpreted?
-;;
-;; * We can't deal with more complicated structs and C++ classes
-;; directly with the FFI; we have to emit SWIG wrappers that access
-;; those classes.
-;;
-;; * A CLOS layer where structure fields are mapped as slots.  It
-;; looks like we need MOP functions to implement this.
-;;
-;; * Maybe modify SWIG so that key-value hashes are distinguished from
-;; value-value hashes.