diff --git a/documentation/index.html b/documentation/index.html
index 91ee75239411d868ce5a7be5f8ed9afe79f5b1de..d8816fc405890f084033405e7a543d6bce85c9b7 100644
--- a/documentation/index.html
+++ b/documentation/index.html
@@ -28,19 +28,18 @@
       getting quick answers, even for someone not intending
       to program in Lisp.
       </p>
-      <p>Topics include:
- 	roots of polynomials, special functions, vectors and matrices,
-	permutations, sorting, BLAS support, linear algebra,
-	eigensystems, fast Fourier transforms,
-	quadrature, random numbers, quasi-random sequences,
-	random distributions, statistics, histograms, N-tuples,
-	Monte Carlo integration, simulated annealing, differential
- 	equations, interpolation, numerical differentiation,
-	Chebyshev approximation, series acceleration,
-	discrete Hankel transforms, root-finding, minimization
-	least-squares fitting, IEEE floating-point,
-	discrete wavelet transforms.  See documentation on status of
-	some incomplete topics.
+      <p>Topics include: roots of polynomials, special functions,
+ 	vectors and matrices, permutations, sorting, BLAS (basic
+ 	linear algebra subprograms), linear algebra, eigensystems,
+ 	fast Fourier transforms, quadrature, random numbers,
+ 	quasi-random sequences, random distributions, statistics,
+ 	histograms, N-tuples, Monte Carlo integration, simulated
+ 	annealing, differential equations, interpolation, numerical
+ 	differentiation, Chebyshev approximation, series acceleration,
+ 	discrete Hankel transforms, root-finding, minimization
+ 	least-squares fitting, IEEE floating-point, discrete wavelet
+ 	transforms.  See documentation on status of some incomplete
+ 	topics.
       <p>This code should be considered alpha and is still under
       development, but it is largely usable
       now, with some GSL capability not yet available.</p>
@@ -70,7 +69,7 @@
 <pre>
 (jacobian-elliptic-functions 0.61802d0 1.5d0)
 Input domain error |m| > 1.0 in elljac.c at line 46
-   [Condition of type EDOM]
+   [Condition of type INPUT-DOMAIN]
 </pre>
  </div>
 
@@ -122,9 +121,7 @@ Input domain error |m| > 1.0 in elljac.c at line 46
  <li>A <a href="documentation.html">documentation</a> guide is
  available.
  <li>The <a href="development.html">development</a> process is described
- separately for those interested, and a <a
- href="http://trac.common-lisp.net/gsll">Trac page</a> is used to
- track it and for bug reports (file a "New Ticket").
+ separately for those interested.
  <li>There is a <a
  href="http://common-lisp.net/cgi-bin/mailman/listinfo/gsll-devel">mailing
  list</a> for all aspects of this project.
@@ -146,7 +143,7 @@ Input domain error |m| > 1.0 in elljac.c at line 46
 <!-- Created: Feb 25 2005 -->
 <!-- hhmts start -->
     <small>
-       Time-stamp: <2008-11-15 21:51:03EST index.html>
+       Time-stamp: <2008-11-16 15:35:22EST index.html>
        </small>
 <!-- hhmts end -->
  </div>
diff --git a/documentation/readme.html b/documentation/readme.html
new file mode 100644
index 0000000000000000000000000000000000000000..8e5bc7be2700b9a45eb6922127f7e8eaf25b2c0b
--- /dev/null
+++ b/documentation/readme.html
@@ -0,0 +1,30 @@
+<!-- -*- mode: HTML; time-stamp-line-limit: -18; -*- -->
+      <p>The GNU Scientific Library for Lisp (GSLL) allows you to use
+      the <a href="http://www.gnu.org/software/gsl/">GNU Scientific
+      Library (GSL)</a> from Common Lisp.  This library provides a
+      full range of common mathematical operations useful to
+      scientific and engineering applications.  The design of the GSLL
+      interface is such that access to most of the GSL library is
+      possible in a Lisp-natural way; the intent is that the user not
+      be hampered by the restrictions of the C language in which GSL
+      has been written.  GSLL thus provides interactive use of GSL for
+      getting quick answers, even for someone not intending
+      to program in Lisp.
+      </p>
+      <p>Topics include: roots of polynomials, special functions,
+ 	vectors and matrices, permutations, sorting, BLAS (basic
+ 	linear algebra subprograms), linear algebra, eigensystems,
+ 	fast Fourier transforms, quadrature, random numbers,
+ 	quasi-random sequences, random distributions, statistics,
+ 	histograms, N-tuples, Monte Carlo integration, simulated
+ 	annealing, differential equations, interpolation, numerical
+ 	differentiation, Chebyshev approximation, series acceleration,
+ 	discrete Hankel transforms, root-finding, minimization
+ 	least-squares fitting, IEEE floating-point, discrete wavelet
+ 	transforms.  See documentation on status of some incomplete
+ 	topics.</p> 
+
+<!- -->
+<!-- Liam Healy 2008-11-16 15:08:08EST readme.html -->
+<!-- Time-stamp: <2008-11-16 15:11:33EST readme.html> -->
+<!-- $Id: $ -->
diff --git a/init/analysis.lisp b/init/analysis.lisp
new file mode 100644
index 0000000000000000000000000000000000000000..d8cbe91da1fadf1479a366ce2d42a29fe6571a40
--- /dev/null
+++ b/init/analysis.lisp
@@ -0,0 +1,68 @@
+;; Analysis of interface status
+;; Liam Healy 2008-11-16 16:17:14EST analysis.lisp
+;; Time-stamp: <2008-11-16 17:21:10EST analysis.lisp>
+;; $Id: $
+
+;;; These definitions are to monitor the status of the GSLL interface
+;;; with respect to the GSL library for the purpose of directing
+;;; development of GSLL.  Therefore, they are not loaded in the
+;;; system.  They require the port system.
+
+(in-package :gsl)
+
+(defparameter *gsl-library-path*
+  (namestring
+   (cffi::foreign-library-handle (cffi::get-foreign-library 'cl-user::libgsl))))
+
+(defparameter *gsl-library-symbols*
+  (with-open-stream
+      (instream
+       (port:pipe-input			; linux commands
+	"/usr/bin/nm" "-D" "--defined-only" "-g" *gsl-library-path*))
+    (loop for symbol = (read-line instream nil nil)
+       while symbol
+       collect (subseq symbol 19)))
+  "All the external symbols in the GSL library.")
+
+(defun in-gsl (string)
+  "The symbol occurs in the GSL library."
+  (find string *gsl-library-symbols* :test 'string-equal))
+
+(defparameter *gsll-defined-symbols*
+  (loop for gslsymb being the hash-key of *gsl-symbol-equivalence* collect gslsymb)
+  "All the exported definitions in GSLL.")
+
+(defun name-special-function-no-error (string)
+  "Names a function for a special function that does not return an error estimate."
+  (and (search "gsl_sf_" string :test 'string-equal)
+       (not (string-equal (subseq string (- (length string) 2)) "_e"))
+       (in-gsl (concatenate 'string string "_e"))))
+
+(defun defined-without-strings (defined-list &rest strings)
+  "A list of definitions in GSL where none of the given strings occurs."
+  (loop for string in strings
+     for from = defined-list then list
+     for list = (remove-if (lambda (x) (search string x :test 'string-equal)) from)
+     finally (return list)))
+
+(defun gsll-defined-with-string (string)
+  "A list of definitions in GSLL where the given strings occurs."
+  (remove-if-not
+   (lambda (x) (search string x :test 'string-equal))
+   *gsll-defined-symbols*))
+
+;;; Step through the list of GSL definitions, removing those things
+;;; we're not going to port.
+
+(defparameter *target-port-1*
+  (defined-without-strings *gsl-library-symbols* "fscan" "fread" "print" "view"))
+
+(defparameter *target-port-2*
+  (remove-if 'name-special-function-no-error *target-port-1*))
+
+;;; Step through the list of GSLL definitions, removing those things
+;;; that we're not advertising we've ported, but did port anyway for
+;;; internal use or for whatever reason.
+
+(defparameter *have-port-1*
+  (defined-without-strings *gsll-defined-symbols* "fscan" "fread" "print" "view"))
diff --git a/init/interface.lisp b/init/interface.lisp
index 54bd2cd0108c0f268632c60a2b0439e7ede7ad83..ef5a103decbe628ba25369e510622a6b0a6ee7c0 100644
--- a/init/interface.lisp
+++ b/init/interface.lisp
@@ -1,6 +1,6 @@
 ;; Macros to interface GSL functions, including definitions necessary for defmfun.
 ;; Liam Healy 
-;; Time-stamp: <2008-08-07 20:53:59EDT interface.lisp>
+;; Time-stamp: <2008-11-16 18:57:24EST interface.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -12,7 +12,7 @@
 ;;;;****************************************************************************
 
 (defparameter *gsl-symbol-equivalence*
-  (make-hash-table :test 'equal :size 1500))
+  (make-hash-table :test 'equal :size 2000))
 
 (defun map-name (cl-name gsl-name)
   ;; Trust here that the library does not have two symbols that differ