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

transient indices can get unsorted (corrupted) DOCUMENT!
  shouldn't return reason:  virtual char *remove(OSSVPV*);

environment variables to change schema paths!

!! 5.1 schema compatibility problem !!

Firble

Subroutine new redefined at /data/research/usr03/lib/perl5/site_perl/sun4-solaris/ObjStore/REP.pm line 24.
  examine mod_perl solution!

AVHV: should create a transient ref to the layout? XXX

_private_root_data XS? XXX

eradicate unneeded dOSP

RE-THINK:
  sub isa { _isa(@_, 1); }
  sub versionof { _versionof(@_, 1); }
  sub is_evolved { _is_evolved(@_, 1); }

bridges per-thread?
  optional transaction-level mutex to debug data accesses?
  move cursor stuff to separate struct

study the perl compiler (ExCxx)

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

more support for DLL 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 +

make all depreciated stuff autoloaded

Makefile.PL
  install twice required...?

perl magic should be non-lazy?

patches
  XSthr.h
  ref overload
  fold osp_croak back into perl

-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
  try to share more code between posh & 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?

~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

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 +

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

optional pool allocation of numeric types [why bother??]
  configurable block size
  store offset in xiv!
  think about performance

