=head1 NAME

ObjStore - Perl Extension For C<ObjectStore> OODBMS

=head1 SYNOPSIS

Like perl?  Sick of SQL?  Ready to try something new?  This extension
implements databases that look exactly like normal perl.  The same can
also be extended with arbitrary C++ objects (!).

=head1 PREREQUISITES

You will need:

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

- Perl 5.005 (perl 5.004_04 might still work)

- Tree::Fat perl extension

- 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/ !


=head1 R!CENT CHANGES


** 07-27-98 RELEASE 1.42

- ObjectStore 5.1 is required.  Static linkage is no longer supported.
OTOH, it is now easy to create persistent C++ objects that are
seemlessly integrated into perl databases.  Raw C++ performance must
be sacrificed no longer!  As there is no longer any application
schema, APIs to configure it have been removed.  A new environment
variable, OSPERL_SCHEMA_DBDIR, overrides the default schema directory.

Indu Strypundit is quoted as calling this release a tour-de-force of
technical bravada.  "We suspected that the number forty-two in the
version might be significant.  It was."

- Many of the core API classes have been through yet another round of
extensive polishing in preparation for a binary API freeze (or at
least a chill :-).  The pathexam apparatus has been entirely rewritten
and is now available at the perl level as ObjStore::PathExam.

- Various osperlserver enhancements including: a -shutdown <when>
option, an -reload option, and a automatic snapshotting of all
VERSIONs on startup (see ObjStore::Serve).

- Simplified read-only protocol for indices.  Either keys are
indexable just once or they must be read-only.

- A few more problems with exception handling were fixed.  Errors were
not being reported properly in rare circumstances.

- Use the 'methods' command to enquire about available methods in
posh (5.005 only).

- Schema support for non-ObjStore::Index cursors and ObjStore::Set
have been dropped.  sync_INC/get_INC is no longer supported.  The
readonly method is no longer implemented (but you can still check
easily with eval).


** 07-07-98 RELEASE 1.41

- If an object is blessed into a package matching RE m/_fake\:\:/,
then the package will be ignored (on reads).  A script for generic
import of CSV files is now a trival exercise.

- os_transaction::checkpoint has been tested and appears to work as
well as standard transactions.  The performance gain appears
measurable.

- Prototyped an ObjStore::Index with a (splash) binary heap
representation.

- Indices now auto-dereference (just once) in the case that references
are used.

- Transaction deadlocks are no longer re-tried automatically.  If you
relied on this behavior it is fairly easy to cobble it together
yourself.  Perl 5.005 will allow die $ref, which makes the
implementation even closer to trival.


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 is waiting for your contribution--

- If you're having trouble or if you've run into a bug.

- Any job postings (as long as they relate to this extension.  FYI, I
am not myself currently looking, but you never know...  :-)

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

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