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

study the perl compiler (ExCxx)

bridges
  use a doubly-linked ring
  pool allocation

Perl variables do not need to increment database refcnts as long as
deleted data is not referenced.  Envision two modes:
1. Don't increment, but enable extra code to check for improper use.
2. Don't increment.  Performance should be better but crashes are
possible.

posh
  merge with ObjStore::Posh::Cursor
  display style?  web integration?  cgi-posh?
  qt-posh?

Support for multiple application schemas
  generic scalar object typemap
  XPVMG abstraction
  REFCNT
  Bit::Vector

transactions
  keep a single transaction stack
  begin('update!',...): force switch to update?
  void os_transaction::set_name(const char*); 
  char* os_transaction::get_name();


+ VAGUE POSSIBILITIES +

overloaded refs

~magic ownership check?

$ref->notify('m1', 'batch'); ???

configure unique index duplicate row behavior?

configure(...) : relax parameter limitation

remove copy of sv_dump

split all the server 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

Threads!
  renovate thread specific stuff in ObjStore.xs

pathexam
  invisibly auto-traverse references?

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

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

prune debugging stuff

posh
  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 string length!  #SE057480_O#

change_schema_key:
  delete database INC, checksum %INC, light up security flags?
  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

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