##################################################
# Things to be resolved for mod_perl 2.0 release #
##################################################

-- see also todo/api_status

* revamp directive handlers, expose modperl_module_add, fix
  PerlLoadModule, etc.
  owner: geoff

* PerlSetVar/PerlAddVar still do not merge properly.  geoff knows
  the issues and thinks he knows how to fix it, he just needs the time.
  owner: geoff

* it looks like glue_pod is not working anymore, consider dropping it
  completely and simply install .pod files along with .pm ones. In
  which case we need to arrange for Makefile.PL to traverse into
  docs/api/ and grab those pod files. See how the Template package
  does that.

  in any case we now have .pod manpages for non-existing .pm files, so
  in case we don't install .pod files as is, we may need to make a
  special case for those .pod files.  So it's probably better to just
  install all .pod files w/o glueing them to .pm files.

* some autogenerated record accessors shouldn't be get/set but only
  get (e.g. Apache->server->is_virtual(1) is wrong). Need to add a new
  flag supported by MapUtil and map files, where we can say which
  accessors should be read-only owner: stas

* Apache::{Server,Process} classes:
  require mutex lock for writing (e.g. $s->(error_fname|error_log)
  Status: most likely some server/process datastructures aren't
  supposed to be modified at request time. So instead of mutex
  locking, we think we should simply have a flag that will be down
  during the startup and will allow methods modifying $s/$proc structs
  (the method will check that flag and if it's up it'll die). At the
  beginning of child_end it'll raise the flag and lower it at the end
  of child_exit.
  owner: stas

* static build - if we make it working on OpenBSD, AIX and FreeBSD,
  then it's not important to fix the DSO issues, otherwise make the
  DSO issues in (todo/bugs_build) a release issue.
  httpd-apreq-2 has recently implemented a static build support, we
  could probably try to re-use some of the code that was written to do
  that, though they use autoconf, which is not quite what we
  want. Anyway it's something to look at.
  owner: gozer

* META.yml. Generate META.yml (make dist does that), add Apache-Test
  as a private resource, so it won't be attempted to be indexed by
  PAUSE, add NO_META=>1 to WriteMakefile() which tells EU::MM not to
  overwrite META.yml.

* <Perl> sections:
  A few issues with <Perl> sections:
  http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=106074969831522&w=2
  owner: gozer

* $Apache::Server::StrictPerlSections should be 1 by default (and docs
  updated)
  owner: gozer

* Fixing Apache->warn("foo")

  Report: http://mathforum.org/epigone/modperl-dev/noxtramcay/3D11A4E5.6010202@stason.org
  Thread: http://mathforum.org/epigone/modperl-dev/noxtramcay
  Status: pending Apache::Log compat issues, this and other methods
          might be dropped.

* per-server cleanups core dump or are otherwise ineffective
    Apache->server->process->pconf->cleanup_register(sub { ...  });
  Report: geoff

- PerlModule, PerlRequire, <Perl> in .htaccess is missing
  http://marc.theaimsgroup.com/?t=105370088700001&r=1&w=2
  Owner: geoff

- cgi emulation: %ENV management:

   - %ENV is currently only saved/restored for the perl-script
     handler, i.e. changes to %ENV outside of a perl-script handler
     are not cleared.  of course, "clean" modules would use local() to
     modify %ENV, but there should be an option to save/restore
     globals outside of the perl-script handler

  STATUS: do the cleanup for all handlers, but provide a new config
  option so users can disable it if they know what they are doing.

* Apache::SizeLimit
  o Need to port tools that restrict the memory size used by processes
    for prefork mpms and develop new ones for threaded mpms. Need to
    work out the details of the implementation of the garbage
    collection thread for the threaded mpms as originally suggested by
    doug.  The issue with threads is that there is no way to know the
    thread's size, can we use B::Size and B::TerseSize?

    prefork:
        Apache::SizeLimit - Owner: perrin
        Apache::GTopLimit - Owner: stas
    threaded:
        Garbage Collector thread

  => Ideally the tools should work transparently with threaded and
  non-threaded mpms, but how?

* Apache::Resource

* It'd be nice to have PAUSE and the clients support packages with
  several versions, like mod_perl 1.0 and mod_perl 2.0, since once we
  release it any dependency on mod_perl will be resolved as mod_perl
  2.0, when mod_perl 1.0 may be required instead.

* Apache::Reload
  - needs to handle properly redefined subs warnings

* Apache->unescape_url{_info}:
  not yet implemented.  should be moved to Apache::Util
