--------------------------------------------------------------------
TODO      DOTODOTODOTODOTODOTODOTODOTODOTODOTODOTODOTODOTO      TODO


If you are interested in contributing, subscribe to the OS/Perl
mailing list.  Send email to majordomo@parallax.co.uk with the
following in the body of your message:
  "subscribe perl-objectstore you@your.company.com"


+ IDEAS +

configure unique index duplicate row behavior?

$ref->notify(['m1','m2',...], 'now'); ??

transactions
  keep a single transaction stack
  begin 'update', $string;
  begin('update!',...): force switch to update?

posh
  'cd - ': go back to prior directory
  resolve cd paths per component!
  autodetect @INC modifications and print help message
  factor eval stuff more
  display style?  web integration?  cgi-posh?
  qt-posh?

document?
  What does an ObjStore server look like?
  What are stored procedures?


+ VAGUE POSSIBILITIES +

split all the goodies into a separate package?

switch representations dynamically
  cursor syncronization: check os_typespec
  do arrays first
  lock representation... hm...
  generate 'new' methods at compile time

typemap
  do large strings without copying?
  SV set magic?
  CLEAR seems broken with tied hashes:
    verify and submit bug reports (or fix the code!)
  there are still some mysterious problems

permutation magic for AVHV
  ObjStore::Index::_(un)protect

translate('transient', $persistent)

asyncronous signals can cause perl to SEGV (known perl bug)

move ObjStore::subscribe back into ObjStore::Notification?

optimize splash suite
  hash performance sucks
  arrays are inefficient

ObjStore::Index
  $t->select(['*'], sub { my $r = shift; ... }); ??why

Table3
  assign cursor focus to avoid malloc

Threads!
  renovate thread specific stuff in ObjStore.xs

Autoclassloading upon open?  Maybe not, you don't know what to load

pathexam
  invisibly auto-traverse references?

get_database
  factor
  os_server::get_databases() ignores bless; yikes!

per-database shared hash key strings?  (for small hashes?)

prune debugging stuff

Improve transaction memory management.  Go back to using doubly-linked
lists to destroy the bridge at soonest point.

iterating over AVHV keys is broken - cursor is stored in the ossv_bridge
  unmagic the keys hash - make non-lazy?

posh
  improve pre/post eval logic
  Devel::Symdump->methods when peeking if blessed?
  Multiple sessions per user?  Who cares?
  Call system() when in ufs?  How about rawfs?
Peeker
  fix comma - $o->comma, then check in $o->nl
  fix for "$at = " prefix ?

cache last lookup to avoid gv_fetchmethod(NOREFS)?

script to insure consistent podding? (get Pod::Parser?)

finish migration to OSPV_Cursor2

assignment to $SIG{SEGV} should not reset SEGV handler

transaction hooks?

factor error messages like diagnostics.pm?

depreciate os_object_cursor?

ObjStore::File!  Use a FatTree of 4K buffers?

automatically spooge $ObjStore::RUN_TIME if @ISA changes?

install HTML versions of the pod files & gif image

notifications
  notify should in/out the string length - #SE057480_O#

change_schema_key:
  delete database INC, checksum %INC, light up security flag
  open: require each %INC, verify checksums (unless some flags is set)
  TAINTing?

Make XS code more efficient.  (How?)

Evolve the schema to eliminate this harmless annoyance:  The object at 0xdff30194(</elvis/export2/os/tmp/perltest | 2 | 194>)(type "OSPV_hvdict"), contains a pointer at 0xdff301a0(OSPV_hvdict::OSPV_Generic::OSPV_Container::OSSVPV.classname) with the illegal value 0xe0582d28. The declared type "char" is incompatible with the type of the object at address </elvis/export2/os/tmp/perltest | 4 | 2d28>(OSPV_avarray::OSPV_Generic::OSPV_Container::OSSVPV::os_virtual_behavior|vtbl{os_virtual_behavior*}).  The type of this object is: OSPV_avarray.


+ BIGGISH PROJECTS +

optional pool allocation of numeric types
  configurable block size
  store offset in xiv!
  think about performance

Support for multiple application schemas (expected 1Q98)
  generic scalar object typemap
  XPVMG abstraction
  REFCNT
  Bit::Vector

Needed is a more flexible hash table that can serve to replace
os_Dictionary and also be used as an ObjStore::Index.


+ CORE-PERL WISH LIST +

The TIE interfaces are not as detailed as the built-ins.  I should be
able to hide whatever necessary complexity in the module that
implements the 'tie' so the user doesn't have to know anything
special.  How about lvalues?  How about proper support for nested
structures?
