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

bridges per-thread?
  optional transaction-level mutex to debug data accesses?
pool allocation (x64?)
  move cursor stuff to separate struct

study the perl compiler (ExCxx)

perl magic should be non-lazy!

osperlserver -l:daily /tmp/log/qsg_gui.19980304?
  maybe put logic in ObjStore::Process?

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

Mike Guy writes: How about "die if in a void context"?  That would get
the best of both worlds.  I'd like to see that style used much more in
Perl.  Or the variant of "warn if in a void context".  Unchecked
results of open comes particularly to mind.


+ VAGUE POSSIBILITIES +

-MObjStore=-Dflags ?

transactions
  prevent more than one thread from using a local transaction? (safe mode?)
  begin('update!',...): force switch to update?

qtposh
  AVHV looks different depending whether it goes through resolve
  resolve failures seem not to get reported
&
  optionally distinguish between return and enter keys
  word wrap, but it doesn't seem to be supported

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

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?
  there are still some mysterious problems?

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

translate('transient', $persistent)

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

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.
