--------------------------------------------------------------------
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 must be per-thread & per-txn!
  lists per thread:
    active bridges for per-transaction
    free list (& waiting for leave-scope)
  txn completes: must invalidate all txn scoped bridges
    lock txn-mutex
    iterate through each thread
  perl: bridge goes out of scope, must move to free list ASAP
  optional transaction-level mutex to debug data accesses
bridges
  use a doubly-linked ring
  pool allocation (x64?)
bridge must be optional!
  transient data
&
  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.

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


+ VAGUE POSSIBILITIES +

-MObjStore=-Dflags ?

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

qtposh
  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.
