This is the README file for release 2.1 of the Libretto library ("Wood
Green" Libretto).

Copyright
=========

This file is part of Libretto, a library of generic containers for C.
Libretto is Copyright  1996, 1997, 1998 Aaron Crane <aaronc@pobox.com>.

This library is free software; you can redistribute it and/or modify it under
the terms of the GNU Library General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option) any
later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU Library General Public License for more
details.

You should have received a copy of the GNU Library General Public License
along with this library; see the file `COPYING.LIB'.  If not, write to the
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


Purpose
=======

These days, Libretto is a library of easy-to-use generic container types for
C, together with some more-or-less random utility functions, though once
upon a time it thought it only had the utility functions, and back then they
were even more random than they are now.

Full documentation in TeXinfo format may be found in doc/libretto.texi or
doc/libretto.info, but the highlights are as follows:

    * Memory allocation.  Wrappers around malloc() and friends.
    * Error messages.  Printing neatly formatted error messages to stderr.
    * Autostr.  A type for reallocating, arbitrarily large strings,
      complete with a full set of I/O functions, including printf/scanf
      replacements.
    * Autobuf.  A type for reallocating, arbitrarily large buffers.  This
      is like Autostr except that it may contain null bytes.
    * Darray.  A reallocating, arbitrarily large single-dimensional array
      or vector type, containing data of any type.  Can also be used as a
      stack or list.
    * Chain.  A linked-list type to contain data of any type.  Can be
      used as a singly- or doubly-linked list (circular or linear), a stack,
      or a queue.
    * Bstree.  A binary-search tree type to contain data of any type.

Planned for future releases: better array types, priority queues, hash
tables, regexes, bit sets, possibly bit strings and skip lists and ...

For more information, see <URL:http://pobox.com/~aaronc/tech/libretto/>.


Mailing list
============

A mailing list for announcements and discussion related to Libretto has been
set up through the generosity of CroftJ Internet Services (plug:
<URL:http://www.croftj.net/>).  Send a message with subject set to
"subscribe" to <libretto-request@croftj.net>.


Installation
============

This bit is easy.  Try something like this:

	# cd /usr/local/src
	# gzip -dc .../libretto-2.1.tar.gz | tar -xvf
	# cd libretto-2.1
	# ./configure
	# make install

Files get placed in appropriate places in /usr/local (conforming AFAIK to
the File Hierarchy Standard, btw).

If you ever want to remove all traces of the software from your system:

	# cd /usr/local/src/libretto-2.1
	# make uninstall
	# cd ..
	# rm -rf libretto-2.1

WARNING: if you installed release 2.0-beta1 of Libretto, you should
uninstall it as soon as possible, as it may conflict with later releases.
