=head1 NAME

ObjStore - Perl Extension For C<ObjectStore> OODBMS

=head1 SYNOPSIS

The new C<SQL> and the sunset of relational databases.

=head1 DESCRIPTION

ObjectStore is the market leader in object-oriented databases
http://www.odi.com (NASDAQ: ODIS).  They use a unique Cache-Forward
Architecture to make persistent data available in literally the most
efficient manner possible.

Prior to this joining of forces: ObjectStore was too radical a design
decision for many applications; and perl5 did not have a simple way of
storing complex data persistently.

Now there is an easy way to build database applications, especially if
you are concerned about preserving your ideals of data encapsulation.

=head1 WHAT IS PERSISTENT PERL?

It's just like normal perl, except that you can create data that
doesn't go away when your program exits.  This more permenant data
lives in files or raw disk partitions that are divided into databases.
And databases are comprised of...

=head1 PREREQUISITES

If you want to find out, you need:

- ObjectStore OODBMS (see http://www.odi.com; evaluations are available!)

- Perl 5.004_04 (or perl 5.005, once released)

- Tree::Fat & Test perl extensions

- ExtUtils::ExCxx (only needed on Digital UNIX, HP (5.x), OS/2 (3.x),
  or MS Windows NT/95; send email)

See http://www.perl.com/CPAN/authors/id/JPRIT/ !


##################
# RECENT CHAN@ES #
##################


** 03-13-98 RELEASE 1.31

- Posh will move directly to a database specified on the command line.
Also, the default is now mvcc mode.  Fixed a problem with persisting
command history.

- Changed the behavior ObjStore::AV::Set::exists(...) to be more
consistent.

- Fixed a problem in the is_evolved() method.

- $ObjStore::TRANSACTION_PRIORITY is now a tied scalar.

- Replaced (get|set)_(read|write)lock_timeout (yikes!) with a single
perl-style lock_timeout API.

- Reorganized the BOOT section to meet the requirements of the perl
compiler.  ObjStore::shutdown is now called in an END block to insure
proper clean up (abort pending transactions, etc.) and initialization
is now delayed until run-time (vs. compile-time).


** 03-06-98 RELEASE 1.30

- Instant, effortless event dispatching for network distributed perl
objects using dynamic transactions.  (See ObjStore::Process :-)

- Minor changes to ObjStore::Table3 to support multiple index types
and the notion of a primary index.  Simplified the implementation of
ObjStore::AV::Set.  Now can be used as an index in an
ObjStore::Table3.  ObjStore::AV::Set changes are not backward
compatible.

- Persistent bless logic unnecessarily complains when blessing in
multiple databases.  Temporarily disabled the imperfect assertion.

- Added subscribe & unsubscribe to Databases & Segments.

- Added 'nextKey' method to ObjStore::HV & ObjStore::Index.  Reserved
the 'help' method of all persistent objects.

- Tweaks to ObjStore::CSV.

- Defect found and fixed in Tree::Fat.

- Always adding -DDEBUGGING to CFLAGS is wrong.  Fixed.

- posh now persists command history from prior sessions (5.004_58+).


see ./INSTALL for hints on installation
see ./UPGRADE to evolve databases from prior releases
see ./TODO for a list of stuff in the queue
see ./CHANGES for a visionary perspective


Perl-ObjectStore mailing list:

majordomo@parallax.co.uk   "subscribe perl-objectstore you@your.company.com"

(If you think you've run into a bug, try running your script with
"perl -MObjStore=PANIC" and mail the output to the mailing list.)

-------------------------------------------------------------------------
Copyright © 1997-1998 Joshua Nathaniel Pritikin.  All rights reserved.

This package is free software and is provided "as is" without express
or implied warranty.  It may be used, redistributed and/or modified
under the terms of the Perl Artistic License (see
http://www.perl.com/perl/misc/Artistic.html)
