# Copyright (C) 1998 by Dr. Dieter Maurer <dieter@handshake.de>
# D-66386 St. Ingbert, Eichendorffstr. 23, Germany
#
#			All Rights Reserved
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted,
# provided that the above copyright notice and this permission
# notice appear in all copies, modified copies and in
# supporting documentation.
# 
# Dieter Maurer DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL Dieter Maurer
# BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
# DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
# PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.

This is the first release of WeakDict's. 
The following is an extract from the documentation in "weakdict.py":

   WeakDict: addressing CPythons problems with cyclic references.
   
   WeakDict (Weak Dictionaries) have been designed to address
   CPythons problems with cyclic references (cyclic structures
   cannot be garbaged collected by CPythons reference counting
   scheme). More precisely, WeakDict's allow the realization
   of weak references, references that are **NOT** counted in
   the reference count and can therefor be used to build
   cyclic structures without obstructing the reference counting
   scheme.
   
   WeakDict's are very similar to normal Python dictionaries,
   with the following essential exceptions:
   
    - all values in a WeakDict must be instances of 'WeakValue'
      (or a derived class)
   
    - the reference to a value in a WeakDict is *NOT* counted
      in the reference count of the value.
      Thus, it does not prevent the value from being garbaged collected.
   
    - When a value is garbaged collected, the corresponding
      entry disappears from the WeakDict.
   
   WeakDict's have a timing efficiency similar to normal
   Python dicts. Deletion of WeakValue's can take linear
   time in the number of uses in WeakDict's.
   
   The implementation is mostly in Python with some functions
   realized in 'weakdict.c'.


To compile, simply perform the following steps.

1) 
 Run "make -f Makefile.pre.in boot".  This creates Makefile
 (producing Makefile.pre and sedscript as intermediate files) and
 config.c, incorporating the values for sys.prefix, sys.exec_prefix
 and sys.version from the installed Python binary.  For this to work,
 the python binary must be on your path.  If this fails, try

   make -f Makefile.pre.in Makefile VERSION=1.5 installdir=<prefix>

 where <prefix> is the prefix used to install Python for installdir
 (and possibly similar for exec_installdir=<exec_prefix>).

2) 
 Once the Makefile has been constructed, run "make" to compile the C modules.

3)
 To install everything in the site-python directory
 run "make install".


If you have difficulty installing this software, send a problem report
to <dieter@handshake.de> describing the problem.
