You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by st...@apache.org on 2003/12/01 20:19:11 UTC

cvs commit: modperl-2.0/todo possible_new_features.txt features_maybe

stas        2003/12/01 11:19:11

  Modified:    todo     possible_new_features.txt features_maybe
  Log:
  another reshuffle
  
  Revision  Changes    Path
  1.22      +0 -123    modperl-2.0/todo/possible_new_features.txt
  
  	<<Binary file>>
  
  
  1.3       +125 -0    modperl-2.0/todo/features_maybe
  
  Index: features_maybe
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/todo/features_maybe,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -u -r1.2 -r1.3
  --- features_maybe	18 Nov 2003 21:45:18 -0000	1.2
  +++ features_maybe	1 Dec 2003 19:19:11 -0000	1.3
  @@ -33,3 +33,128 @@
     We could also have PerlServerCleanupHandler, but that's exactly what
     PerlChildExitHandler does. Consider having ServerCleanup as an alias.
   
  +config features:
  +----------------
  +
  +- tie %ENV to r->subprocess_env so stores are added to
  +  r->subprocess_env and fetches are looked up in there and elsewhere
  +  (e.g. HTTP_* from r->headers_in).  see modperl_env.c, current
  +  implementation is not threadsafe and requires 5.7.2+
  + 
  +- make 'PerlSetVar $Foo value' work like 'local $Foo = value' 
  +  for the given location
  +
  +- allow Perl*Handler's to have arguments in config files
  +
  +- allow <Perl></Perl> configuration sections to have read access to internal
  +  configuration structures (would be nice if we could tie a %namespace::) 
  +
  +- setuid/gid before running any Perl code
  +
  +- implement PerlINC (or similar) as a nicer interface for the working
  +  PerlSwitches -Mlib=/home/dev1/lib/perl, to set different @INC for
  +  different virtual hosts.
  +  See the thread: http://marc.theaimsgroup.com/?t=100554858800001&r=1&w=2
  +
  +- a possible implementation of PerlOptions +Inherit, similar to
  +  +Parent but which allows virtual hosts to inherit everything that
  +  was loaded by the main server, at the point of their definition in
  +  the config file. This can make it easier to write configuration
  +  files where there is a common base of modules to be loaded in all
  +  servers. Of course this can be done by putting all these common
  +  modules and code into foo.pl and running it from the base server and
  +  all virtual hosts.
  +
  +-  PerlModule can be made more efficient using Perl_load_module
  +
  +
  +
  +perl language features:
  +----------------------
  +
  +- @ARGV magic, tie to query string
  +
  +- sub handler : method ($) {}
  +  call $class->new($r) and pass the returned object as the first and
  +  only arg to the method handler
  +
  +- some mod_perlIO/PerlIO type methods for xs modules? (e.g. Apache::Peek)
  +
  +- possible to support BEGIN,CHECK,INIT blocks similar to how END is
  +  supported via ModPerl::Global::special_list_{call,clear}
  +
  +
  +
  +optimization features:
  +---------------------
  +
  +- copy-on-write SvPVX
  +
  +- hook Perl malloc into apr_pool
  +
  +- for "compiled handlers" w/ ithreads manage SV allocation via
  +  server-lifetime apr_pool_t
  +
  +- "garbage collector" thread to walk padlists looking for certain things
  +   worth releasing.
  +
  +- "mip manager" thread to watch # of active interpreters,
  +  cloning/destroying when needed (rather than waiting for a request to
  +  trigger)
  +
  +- use subpools per-callback/handler (might trim some memory bloat)
  +  note: creating subpools requires a malloc mutex lock with threaded
  +  mpms
  +
  +api:
  +---
  +
  +- improve the "stacked handlers" implementation, including:
  +  + 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']);
  +
  +- might add an alias for $filter->connection (now we have $filter->c), to be
  +  more intuitive since we have $r->connection.
  +
  +modules:
  +-------
  +
  +- Apache::Registry should check return value of the subroutine,
  +  e.g. for REDIRECT   
  +
  +- should Apache::Registry use filename instead of vhost_name+uri?
  +
  +- core Apache::SubProcess w/ proper CORE::GLOBAL::{fork,exec} support
  +  + currently works only with $] >= 5.007003 (see the
  +    apache/subprocess test)
  +
  +- It's possible that we will add:
  +
  +  #ifdef MP_APACHE_COMPAT
  +       modperl_require_module("Apache::compat");
  +  #endif
  +
  +  if MP_APACHE_COMPAT Makefile.PL option is true. But this adds bloat,
  +  so this is just an option to consider.
  +
  +- Apache::File->tmpfile now lives only in compat. Consider adding
  +  APR::File->mktemp (apr_file_mktemp) and a perlio layer
  +  defined in terms of apr_file_t to use it.
  +
  +new modules:
  +-----------
  +
  +- apache.pm: use apache '1.3b3';
  +
  +misc new stuff:
  +--------------
  +
  +- 'make html'
  +
  +- 'make test_report'
  +
  +apache features that would be neat for mod_perl:
  +-----------------------------------------------
  +
  +- "autoload" hook for configuration directives
  \ No newline at end of file