Copyright (c) 1997 Joshua Nathaniel Pritikin.  All rights reserved.
This package is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.


** 10-31-97 Released 1.19 (Haloween Edition)

- Emulation of RDBMS tables.  Unstructured perl databases are, well,
unstructured.  The RDBMS table paradigm is a surprisingly good way to
structure data.  And since you can store complex nested structures per
row, add the same row to multiple tables, or nest tables, it's not
half bad.

- Persistent support for fake hashes (requires 5.004_50+).  Schema
evolution for the same.

- $o->NOREFS method invoked when an object becomes persistently
unreachable.

- Transaction support has been complete rewritten.  Nested
transactions are now fully supported.

- Bless is now non-intrusive and customizable.


** 10-11-97 Released 1.17

- PERL / OBJECTSTORE SHELL !!

- First-class cursors for collections.

- osp_copy script to copy databases.  Source code included.

- Support for cross database references.

- Simplified 'open' API.

- Sets depreciated.  The interface is there, but they are
re-implemented with hashes.


** 10-03-97 Released 1.16

- All transient data related to persistent memory is now garbage
collected immediately after a transaction finishes.  This should fix
any strange reference count problems that extensive testing has been
uncovering.  I am very interested to see any examples of code that
still leaks memory.  To recover memory already lost, a script to copy
databases is in the works.

- The default stargate now destroys transient data as it is copied
into the database.  This is necessary to prevent the inadvertant
creation of uncollectable cyclic structures.


** 09-27-97 Released 1.15

- Expanded analysis of Perl, Java, C++, and SQL as database languages.

- Partial arrays.  Mileage may vary.

- Automatic retry in the event of deadlock (69).

- Blessed objects now try to 'require' their class the first time they
are instantiated in transient memory.


** 08-16-97 Released 1.11

- Update refcnts for transient referers in update & abort_only
transactions.  Persistent memory leaks no longer possible.

- ospeek restricted to show only three instances per class.


** 08-11-97 Released 1.10

- Overloaded the stringify operator for persistent objects.

- ospeek [-addr]

- Important typemap fixes plus other minor stuff.


** 08-06-97 Released 1.09

- At our site we are now using osperl for about 2GB worth of data!

- Persistent blessings now fully tested and working.

- ObjectStore transactions and exceptions now fully integrated into
Perl.  Cursors have been removed from persistent data; read_only
transactions now properly supported.  Read_only transactions are
blazingly fast!

- Regularized allocators.  Specify cardinality when creating containers.
  new ObjStore::$type($near, $card);  Customize representation selector.

- Regularized peristent typing in preparation for extensibility.

- Peek rewrite with ideas from Data::Dumper.  Peek on circular data
structures.  Peek reports percent utilization to the delight of
accountants everywhere.

- Unions removed from the schema.  This fix makes it easy to evolve
databases in the event of future schema enhancements.

- Reference counts are now 32bits wide and check for overflow.

- Static functions (e.g. ObjStore::Segment::of) are now called with ::
instead of -> for greater efficiency.  You wouldn't want to subclass
the core classes anyway.


** 07-05-97 Released 1.06 

- Improved peek.  Now peek from the command line - 'ospeek <database>'!


** Released 1.03

- Can't wait for reasonable tied arrays!  Added array-based Sets.
They're not tied, but at least they're inefficient.

- Found and fixed problems with reference counting.  Now the tests
can be run and the database does not grow.

- Blessings now persistent!  (Untested)


** Released 1.02

- Added ObjStore::peek($var) - like Data::Dumper except that it works
better on gigantic databases.  Only three elements are printed from
large hashes, while small hashes are printed completely.  The meaning
of 'large' can be customized (not yet).


** Released 1.00

- The first release, written during our 60 day ObjectStore evaluation.
Why does ObjectStore have a reputation of being difficult to work
with?  With over ten years of self-directed study I knew this
combination would be fantastic and I finally had a chance!
Apparently, it is my mission to save the world from the unspeakable
torture of relational databases!