** 12-13-97 RELEASE 1.21

- THE TUTORIAL IS DONE!  See ObjStore::Tutorial!

- Fixed numerous minor bugs; fixed ObjStore::UNIVERSAL::isa;
significant changes to posh; NOREFS invokation optimized out unless
the method is present; re-organized the stargate; moved CSV stuff to
ObjStore::CSV; untested support for kernel threads.


** 11-21-97 RELEASE 1.20

- 'bless' now stores the @ISA tree at bless-time.  Use $o->isa($class)
to query it.  For the transient @ISA, use $o->UNIVERSAL::isa($class).

- Reference support revamped.  Transient references and unprotected
references are now supported.

- Basic import/export of 2D structure via CSV files (Excel format).


** 10-31-97 RELEASE 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 RELEASE 1.17

- PERL / OBJECTSTORE SHELL !!

- First-class cursors for collections.

- osp_copy script to copy databases.  Source code included.

- Support for cross database references.

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


** 10-03-97 RELEASE 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 RELEASE 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 RELEASE 1.11

- ospeek restricted to show only three instances per class.


** 08-11-97 RELEASE 1.10

- Overloaded the stringify operator for persistent objects.

- Important typemap fixes plus other minor stuff.


** 08-06-97 RELEASE 1.09

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

- 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.

- Unions removed from the schema.  This fix makes it easy to evolve
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 RELEASE 1.06 

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


** RELEASE 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)


** RELEASE 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).


** RELEASE 1.00

- The first release, written during our 60 day evaluation.  I knew a
perl - OS combination would be fantastic!  Apparently, it is my
mission to save the world from the unspeakable torture of relational
databases.
