---------------------------------------------------------------------------
SHORT TERM STUFF (this section should always be empty in a release version!)
                 (well, close to it anyhow)
---------------------------------------------------------------------------

---------------------------------------------------------------------------
DOCUMENTATION (areas that *really* need some more or don't have any)
---------------------------------------------------------------------------

- forking under Apache::Registry, exit vs CORE::exit 

- misc:
  + DONE
  + SUID access http://www.courtesan.com/sudo/
  + $ENV{PATH}/PerlSetEnv and PerlTaintCheck

- PerlRun::handler in cgi_to_mod_perl.pod

- HTTP Headers!!!!

- Apache::exit/child_terminate

- push_handlers/set_handlers

---------------------------------------------------------------------------
KNOWN BUGS
---------------------------------------------------------------------------

- Apache->push_handlers("PerlCleanupHandler", ...),
  the handler isn't called unless there's already a CleanupHandler defined.
  Jan-Pieter Cornet <johnpc@xs4all.net>
  (should use $r->register_cleanup anyhow)

- sfio/solaris problem
Lupe Christoph <lupe@alanya.m.isar.de>, Don Hayward <don@mote.org>

- Gerald's report of Embperl/sub-request/print breakage

- looks like we need a per-server configuration merge routine

- need turn of strip of httpd during 'make install'

- SSIs executed using /bin/sh, not suexec as configured?
  Theo Van Dinter <felicity@kluge.net>

- /perl/perl-status?sig dumps core under hpux 10.20
   [David-Michael.Lincke@unisg.ch]

- USE_DSO=1 --> END blocks are run at startup time

- USE_DSO=1 broken on most platforms (core dump in dlclose)

- $r cannot use many api methods during ChildInit/ChildExit -> SEGV

- bytes_sent are not logged if header don't go through send_http_header(), 
  e.g CGI->header(-nph => 1, ...)
              Eric Cholet <cholet@logilune.com>

- SIGALRM/flock, Lincoln Stein <lstein@cshl.org>
 I often use this type of code to handle possibly blocked flocks():

        local($timed_out) = 0;
        local($SIG{ALRM}) = sub { $timed_out++; die "timed out"; }
        alarm(5);
        eval {
                flock(FH,LOCK_EX);
        }
        alarm(0);
        if ($timed_out) {
           print "We timed out.  Sorry.";
        }

 This has been working in standalone CGI scripts, but no longer works
 in mod_perl.  The signal handler gets called, but then the flock()
 call seems to be restarted. It never exit the eval.  So this is no big 
 deal, I just replace the blocking flock() with a poll.

- find a way to prevent "httpd spinning" (bug in Perl, not mod_perl)

- linkage problem w/ mod_auth_dbm (-ldbm)
 Config.pm New: libs='-lsocket -lnsl -ldl -lm -lc -lcrypt -ldb'
 Was:           libs='-lsocket -lnsl -ldb -ldl -lm -lc -lcrypt'
 SunOS mailhost.cmc.net 5.5 Generic_103093-17 sun4m sparc sun4m
             brian moore <bem@cmc.net>

- sometimes w/ <Perl> we get: [warning] PerlSetVar->nelts = 1111992, e.g.:
  $User = "www";
  $ServerType = "standalone";
  @ScriptAlias = [('/cgi-bin','/the/path')];
  @Alias = [('/web/','/usr/home/web')];

- perl_config should not av_shift ARRAY refs from
  %Apache::ReadConfig::

- die and AUTOLOADed DESTROY == empty $@ (Perl or mod_perl bug?)


- ExtUtils::Embed/ExtUtils::Liblist clash sometime w/
  PERL_STATIC_EXTS, like so: 
 Unrecognized argument in LIBS ignored:
 '/opt/oracle/product/7.3.3/lib/libclient.a' 

 Note (probably harmless): No library found for -l:libcma.sl

 -Wl,-E -Wl,-B,deferred -L/usr/local/lib
 /home/web/perl5/lib/site_perl/portable/auto/DBD/Oracle/Oracle.a 
 /home/  etc etc ...
           mark rostron <useny036@IMATION.COM>
           Brian Slesinsky <bslesins@best.com>

- From: brian moore <bem@CMC.NET>
  As Apacheweek reported a couple weeks ago, 'some' modules on Solaris have
  problems with the mutex locking method used by 1.3b5.  One of which is
  mod_perl.  To make it work I had to -DUSE_FCNTL_SERIALIZED_ACCEPT or
  the server would never answer a request.


---------------------------------------------------------------------------
NEW STUFF
---------------------------------------------------------------------------

- 'make htmldoc' (Brian Moseley)

- make 'make test_report' more useful

- hooks into Perl interactive debugger 
  (Graham TerMarsch <grahamt@activestate.com>)

- should be able to set PerlSetVar's to an empty string (Eric Cholet)

- $r->method could be a dualval, method_number in a numeric context (Gisle Aas)

- PerlAllowOverride directive to enable/disable hooks 
  (Jason Riedy <ejr@cise.ufl.edu>)

- PerlEngine On/Off [Vivek Khera <khera@kciLink.com>]

- perl_clear_env() should skip those found in PerlPassEnv?

- File::copy($file,*STDOUT) doesn't work (pp_syswrite needs tie support)
	Bill Coffman <coffman@value.net>

- option to set uid/gid before running any Perl code (copy-n-paste
  from http_main.c) 
	Doug Bagley <doug@dejanews.com>

- provide namespace protection when 'use Foo' might be two different modules
  i.e. re-visit Apache::Safe

- move away from read_client_block to {setup,should,get}_client_block
  see Apache.pm/Apache::new_read

- PerlOptions directive?
           Jason Riedy <ejr@cise.ufl.edu>

- some mod_perlIO type methods for xs modules? (e.g. Apache::Peek)

- make 'PerlSetVar $Foo value' work like 'local $Foo = value' 
  for the given location

- <Perl> in .htaccess (could also call known bug)

- provide namespace protection for mod_include #perl's

- change configuration during runtime?

- $Apache::ServerStarting in <Perl>

- something with exec()?

- Apache->http_message(501); #rc code returns a string

- PerlFreshRestart, restarts on startup, should we stop that?

- special treatment for nph- scripts?

- fix Thread->new == linux<-SIGUSR1->Apache signal clash

- win32:
  + integrate with Perl 5.005's threading
  + mod_include #perl support
  + ability to nmake w/o going into VC++
  + ability to disable Perl*Handler callback hooks
  + get rid of dup between t/conf/httpd.conf-dist/httpd.conf-win32
  + fix perl-status?mod_perl_hooks

- @ARGV magic, tie to query string

- overload %ENV magic:
  + call subprocess_env when a value is set 
              Doug Bagley <doug@dejanews.com>
  + so it's not setup unless asked for

- "save stack" mechanism so we can go back to caching CV lookups

- improve the "stacked handlers" implementation, including:
  + config merging of AV*'s

  + allow push_handlers to have an additional argument, an array ref,
    which will be passed to the handler as arguments, e.g.
    $r->push_handlers("PerlHandler", \&some_sub, ['one', 'two', 'etc']);

- allow Perl*Handler's to have arguments in config files, e.g.:

  (calls &FooPackage::handler($r, "One", "Two", "Three");

- allow <Perl></Perl> configuration sections to have read access to internal
  configuration structures (would be nice if we could tie a %namespace::) 

---------------------------------------------------------------------------
KNOWN MODULE BUGS
---------------------------------------------------------------------------

- can't multiple Apache::Include->virtual in a single request

- files that have been created after the server's (child?) startup are
  being reported with negative age with -M test under Apache::Registry. 
  The workaround is to add $^T = time; at the beginning of the scripts. But
  it would be much better if the Apache::Registry will do that 

---------------------------------------------------------------------------
NEW MODULE STUFF
---------------------------------------------------------------------------

- StatINC doesn't reimport the imported symbols?
  Stas Bekman <sbekman@iil.intel.com>, 
  Message-Id: <Pine.A41.3.96.981007170413.44288Q-100000@ilx374.iil.intel.com>
- Look at Apache::ASP's handling of exported functions (for implementation
  in Apache::StatINC) (same thing as above?) [ask]

- Option to StatINC to make it possible to only watch chosen modules
  [ask]

- Apache::Registry should check return value of the subroutine,
  e.g. for REDIRECT   

- should Apache::Registry use filename instead of vhost_name+uri?
              Ben Laurie <ben@algroup.co.uk>

- apache.pm: use apache '1.3b3';

- have Apache::Status hunt for AUTOLOADing 

- Apache::SawAmpersand

- Apache::Status should list number of things

- Apache::Constant's import should compile the constant sub

- Apache::DProf as a Fixup

- Apache::Include->virtual should update %ENV?

- Apache->request vs. $_[0]

- Apache::Registry should honor __END__ and __DATA__,
  but how to get it right?

---------------------------------------------------------------------------
CLEANUPS - "if it ain't broke, don't muck with it", but we should tidy
            these things at some point
---------------------------------------------------------------------------

early startup/auto pre-load Apache/@INC mess

now that PerlRequire/PerlModule start Perl if not running already, no
need for the array_headers in perl_srv_config

get rid of Apache->can_stack_handlers (since we have UNIVERSAL->can now)

mod_perl C code symbols, should look at cleaning up names with a
common prefix, e.g. mp_, mod_perl_, mperl_ ?
also static-ize those functions we can 

remove Apache::Symbol::undef cruft, now that the mandatory const sub
redefined warning is downgraded in 5.004_05-tobe

change cgi_header_out and send_cgi_header to use new
ap_scan_script_header_err_core function 

cleanup Makefile.PL!!!

loose dup code in Apache::Registry, use Apache::PerlRun functions

use 5.005's newCONSTSUB in Constants.xs

---------------------------------------------------------------------------
OPTIMIZATIONS
---------------------------------------------------------------------------

- preloading of method cache

- replace Apache::PerlRun with Apache::PerlRunXS

- replace Apache::Registry with Apache::RegistryXS

- make Apache::RegistryLoader work with RegistryXS

- avoid a copy in PerlRunXS (use SvPVX instead of safemalloc'd copy)

- XS_IMPORT=1 on by default

- in places where Apache did a pstrdup, don't use newSVpv(), use
  newSV()->sv_upgrade()->SvPVX/SvCUR_set to avoid another copy 

- Apache::Constants::constant