* Investigate "configure" (autoconf?) and how to use it to provide
  good definitions of things such as INT32.  Look at how some other
  successful and tasteful programs do the same thing. [Under way, but
  incomplete. --jct]

* The __attribute__ tags used to specify structure alignments are
  non-portable.  Needs to be made portable.

* The use of GNU getopt for processing of long arguments needs to be
  made portable, for the use of non-GNU unixes.  Possibly this will
  mean just taking getopt.c and its kin out of the glibc library and
  distibuting them with ODS.  Other packages do this for support on
  non-glibc systems like Solaris.

  [Update: I've taken getopt from an old version of libiberty; this is 
  to "bootstrap" using GNU getopt.  For the long term, we need to test 
  for glibc in autoconf, and if it's available use it.  If glibc is
  not available, then (and only then) build in the local copy of
  getopt.  I'd do that now, but I don't understand autoconf well
  enough. --jct]

* Consider using GNU gettext for internationalization.

* Improve error handling throughout.  We need a systematic way of
  passing errors back up to calling applications.  We could use setjmp/
  longjmp, but it would have to be user configurable.

* Redefine the distinction between the library and the program;
  currently it is rather blurred.
