stas 2003/11/18 13:45:18
Modified: . ROADMAP STATUS
ModPerl-Registry TODO
todo README api.txt bugs_build bugs_registry
deprecated_features.txt features_maybe
features_missing features_new filters.txt
missing_old_features.txt possible_new_features.txt
release
Log:
the big todo list reorg, work in progress
Revision Changes Path
1.7 +0 -84 modperl-2.0/ROADMAP
<<Binary file>>
1.73 +3 -351 modperl-2.0/STATUS
Index: STATUS
===================================================================
RCS file: /home/cvs/modperl-2.0/STATUS,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -u -r1.72 -r1.73
--- STATUS 17 Nov 2003 02:10:58 -0000 1.72
+++ STATUS 18 Nov 2003 21:45:18 -0000 1.73
@@ -16,353 +16,5 @@
1.99_02 : Released Jun 01, 2002
1.99_01 : Released Apr 06, 2002
-
- ====================================================
- === We are still using the todo/ directory to ===
- === track some status; please look there too ... ===
- ====================================================
-
-
-
-Release Showstoppers:
----------------------
-
-Available Patches:
-------------------
-
-* Fixing Apache->warn("foo")
-
- Report: http://mathforum.org/epigone/modperl-dev/noxtramcay/[EMAIL PROTECTED]
- Thread: http://mathforum.org/epigone/modperl-dev/noxtramcay
- Status: pending Apache::Log compat issues, this and other methods
- might be dropped.
-----
-
-* The Apache::Scoreboard XS implemenation with tests is awaiting to be
- committed
-
- Report: http://mathforum.org/epigone/modperl-dev/zehporbreh/[EMAIL PROTECTED]
- Status: (stas) needs to be cleaned up and committed
-
-----
-
-* protect registry classes from bad scripts which try to assassinate $r
- Report: http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=106153785129782&w=2
- Status: (stas) i'm not sure whether we really need this feature,
- since it's the first time in the last 6 years we had a
- problem with bad user code of this kind. let's keep it in
- the patches until we have a real need for it.
-
-
-
-
-
-Platforms on which mod_perl won't build/load
---------------------------------------------
-
-OS Ver Mod Comments
-----------------------------------------------------------------------
-OpenBSD 2.9 DSO Builds but won't start, with segfaults in the
- Perl lexer. I wasn't even able to start mp1-dso with
- the customly built perl (tried 5.6.1 .. 5.9.0)
- -- the segfault is again in lexer. It seems that
- the standard OpenBSD perl package has been heavily
- patched, when the core system perl 5.6.0 package was
- built, since I can run 'make test' on mp1-dso, but not
- with a customly built 5.6.0 with the same
- options. Since 2.9 is no longer supported by OpenBSD,
- there is no 5.6.1 or higher to try, so at this moment
- we simply give up on 2.9. We think that the static mp2
- build should work just fine (once it's available).
-
-AIX 3.3 DSO Works with -berok to ignore linking errors (symbol
- resolution). Should replace -berok with a proper
- symbol resolution at linking time, but I had not much
- success with using this approach (dlopen fails).
-
-FreeBSD ?? DSO Works with non-threaded perl (4.8-RELEASE and
- 5.1-RELEASE)
- http://marc.theaimsgroup.com/?l=apache-modperl&m=106399870822612&w=2
- It doesn't work with threaded perl/worker mpm,
- seemingly because of the problems with threads on
- FreeBSD (not sure what version).
-
-
-Needs Patch or Further Investigation:
--------------------------------------
-* per-server cleanups core dump or are otherwise ineffective
- Apache->server->process->pconf->cleanup_register(sub { ... });
-
-* 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
-
-* Recursive <Perl> sections:
-
http://www.gossamer-threads.com/archive/mod_perl_C1/dev_F4/%5BMP2_-_BUG_%5D_Issue_handing_Apache_config._error_messages_P70501/
- and
- http://mathforum.org/epigone/modperl/dartrimpcil
-
-* Apache::PerlSections->dump
- It does exist, but it's a completely internal function, not dumping existing
configuration
- as it used to be in 1.x. (needed by Apache::Status, for instance). Need to be
implemented
- and the existing dump method must be moved out of the way
-
-* PassEnv/SetEnv propogation
-
http://www.gossamer-threads.com/archive/mod_perl_C1/dev_F4/%5BMP2_BUG%5D_PerlPassEnv_issues_P70500/
-
-* perl Makefile.PL PREFIX=/foo/bar works fine, however Makefile.PL'll
- still refuse to build unless MP_INST_APACHE2=1 is passed. It should
- refuse to do so only if it finds mod_perl 1.0 installed under that
- PREFIX, which can be a tricky check, since the exact logic to figure
- out the paths is deep inside EU::MM. Probably it's better to run
- 'File::Find' and search for 'mod_perl.pm' under PREFIX, if found
- check its version and assert only if it's 1.xx
-
-* we have a dependency check problem when xs/*/*.h use code from
- xs/modperl_xs*.h, when the latter change 'make' won't rebuild the
- dependant files
-
-* most of the xs wrappers print no "Usage: " when wrong args/wrong
- number of args are passed, would be nice to add the usage message
- whenever incorrect arguments error is logged. e.g., when
- APR::URI->parse() gets the wrong first arg (non-pool) it prints:
-
- p is not of type APR::Pool at ...
-
- whereas it's not so obvious that the function expected the pool
- object, neither it specifies which ("arg number") of the arguments
- is wrong.
-
- possible solution: add a new field to the map files, which will be
- used as a usage message whenever an argument error occurs.
-
-* we should stop generating xs/apache_*, at least for a reason that
- it's incomplete and will be never complete as we don't keep up with
- changes with ap_/apr_ namespace. Also we don't have the logic to
- handle cases where functions aren't available on certain
- platforms. Importing these unavailable functions may cause loading
- problems on some platforms (aix?). If developers need to import
- symbols from ap_/apr_ namespace they should use .exp files installed
- by httpd/apr/aprutil.
-
-* this is probably a documenation issue. Several phases are of type VOID
- and docs say:
-
- Handlers of the type C<VOID> will be I<all> executed in the order they
- have been registered disregarding their return values. Though in
- mod_perl they are expected to return C<Apache::OK>.
-
- may be we shouldn't mark them as VOID then, but RUN_ALL? this is in
- user/handlers/intro.pod
-
-* Looks like there is an issue with filter configuration, I've noticed that:
-
- PerlInputFilterHandler MyApache::InputFilterGET2HEAD
-
- silently ignores the filter, whereas:
-
- PerlInputFilterHandler +MyApache::InputFilterGET2HEAD
-
- calls the filter. figure out:
-
- - why the loading doesn't happen
- - why the error doesn't happen (probably both connected)
-
-* 'SetHandler modperl' doesn't reset $|, so if anything turns it on
- anywhere, it's going to stay that way. Meaning excessive flushing
- probably causing a performance hit. I've tried to add the code to
- reset it, but this requires getting a perl interpreter at the early
- stage and it breaks several filter tests, which has relied before on
- the coincidence that both the response handler and the filter were
- run by the same interpreter (in particular this breaks the code
- where push_handlers() uses a string as a handler, rather a CODE
- reference, see t/filter/TestFilter/both_str_rec_add.pm, to
- reproduce the problem, simply s/modperl/perl-script/)
-
-* child processes never run END blocks. a good example is
- Apache::TestUtil, which doesn't cleanup files and dirs it has
- created, because the END block is not run.
-
-* Currently modperl_filter_add_{connection|request} check the filter
- handler function attrs before accepting the filter. If the module
- wasn't preloaded the check fails and filter handler is skipped. We
- could have this issue documented (which is OK, but might raise too
- many questions), but we could also always preload the filter
- handlers. To test see TestFilter::input_msg
-
-* we still have a problem with mod_perl starting from a
- vhost. consider the following config:
-
- PerlSwitches -I/foo/bar
- <VirtualHost TestDirective::perlloadmodule6>
- PerlLoadModule TestDirective::perlloadmodule6
- ...
- </VirtualHost>
-
- The value set by PerlSwitches in the main server is ignored, because
- it's not seen by mod_perl starting from vhost.
-
- overall, currently the early startup in vhost is a bunch of ugly
- workaround, which I've added everytime I came up with a config that
- wasn't working. Need to come up with a better design decisions.
-
- once this is fixed. I want the perlloadmodule6 to be loaded before
- all other perlloadmodule configs, because it tests an important
- segfault when perlloadmodule happens to start mod_perl from within a
- vhost. but because PerlSwitches from other tests are ignored, it
- can't trigger the mod_perl startup in the test suite.
-
-* ModPerl::Registry END {} block woes , described in details at the
- forwarded message from Jim Schueler
- http://marc.theaimsgroup.com/?l=apache-modperl&m=103720834717981&w=2
- the whole thread is here:
- http://marc.theaimsgroup.com/?t=103713532800003&r=1&w=2
-
-* $r->rflush doesn't work. see:
- http://marc.theaimsgroup.com/?l=apache-modperl&m=103847990813285&w=2
- I also see a weird behavior where it does sends FLUSH buckets but
- they all seem to fall through the data, thus not really flushing
- anything. this can be easily reproduced with MyApache::FilterSnoop.
-
-* directive handlers are supported but need some work for 1.x compat
- - Apache::ModuleConfig->get needs a compat method mapping to
- Apache::Module->get_config
-
- - Apache::CmdParms::info for CmdParms implemented by Perl modules
-
- - Apache::CmdParms::{GETC,getline} needs compat mapping, similar to
- what Apache::Directive->as_string does, but one char or line at a time
-
-* Quite a few people reported problems with TestHooks during 'make test'
- - http://marc.theaimsgroup.com/?t=102985405500008&r=1&w=2
-
-* the issue with crypt_r: in 5.8.0's each perl clone allocates 128K
- for crypt_data. This fixed in 5.8.1 and 5.9.0 (#19119 (maint) and
- #19122 (blead)), however this could be quite a waste for those using
- 5.8.0. perhaps adding a note to performance chapter will do. For
- more info see the thread:
- http://archive.develooper.com/[EMAIL PROTECTED]/msg93846.html
-
-Open Issues or Core Enhancements:
----------------------------------
-
-* As mike chamberlain told me over irc, apr-ext/perlio was faling for
- him because of the modperl_perl_gensym not being resolved in
- APR/PerlIO.so. I didn't see that error since on linux by default
- symbols resolution is lazy and since that part of the api wasn't
- tested I did see the problem. On MacOSX the loading is RTLD_NOW
- (non-lazy) so it detects any missing symbols problems immediately.
-
- Luckily DynaLoader allows us to force the non-lazy mode by setting
- an env var: PERL_DL_NONLAZY=1. We need to force this env variable on
- when building with MP_MAINTAINER=1. I suppose that it should be
- added to the autogenerated t/TEST and t/SMOKE. and to
- t/conf/modperl_extra.pl ($ENV{PERL_DL_NONLAZY}=1) so it affects the
- server-side as well as the client-side (normally env var aren't
- propogated to the server).
-
-* gcc 3.3 (from cvs 2003-07-28) supports a new option:
- -Wdeclaration-after-statement, which we need to enable in the
- maintainer mode, to catch any declarations after statements, since
- by default gcc doesn't complain about them. Probably need to wait
- till gcc-3.3.2 and enable it then.
- http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?r1=2.639&r2=2.640&f=h
-
-* Testing:
- Need to put Philippe's smoking test into the core
- -- shouldn't forget to test with perlio enabled and disabled
-
-* Apache::Log compat issues:
-
- Apache->warn, Apache::warn, Apache::Server->warn and
- Apache->Apache::Server->log_error are all doing:
- s = modperl_global_get_server_rec();
- and this function is thread safe only during the startup.
-
- possible solutions:
-
- 1) enforce that these functions are used only at the server startup
-
- 2) require +GlobalRequest, which gives us r->server, now thread
- safe (though slow).
-
- 3) drop them all from the API and move to compat.
- [remember that Apache::warn is needed for registry scripts to
- override warn()]
-
- Report: Message-ID: <[EMAIL PROTECTED]>
- Status: <img alt="Doug, contemplating">
-
-----
-
-* we need a bug reporting utility that can be used post-install, which
- should be similar to t/REPORT
-
- Report: http://mathforum.org/epigone/modperl-dev/staiblirroo/[EMAIL PROTECTED]
- thread: http://mathforum.org/epigone/modperl-dev/staiblirroo
- Status: +1: Stas, Doug
- needs to be implemented
-
-----
-
-* Apache::PerlSections missing features for backwards compatibility:
- - $Apache::ReadConfig::DocumentRoot
- - Apache::PerlSections->store(filename)
-
- Report: Philippe M. Chiasson <[EMAIL PROTECTED]>
- Status: Philippe M. Chiasson <[EMAIL PROTECTED]> is working on it
-
-----
-
-* PerlPreConnectionHandler is implemented, but the 'void *csd' arg in
- the callback is ignored
-
- Status: no hurry
-
-----
-
-*
- Report:
- Status:
-
-----
-
-APR as external Perl glue
--------------------------
-
-- APR::Table now depends on modperl_hash_tie, so it can't be used
- outside mod_perl. should probably abstract this function into a new
- utils.c object that can be linked by APR.so.
-
- Status: see the next item
-
-- APR::PerlIO needs an equivalent of modperl_perl_gensym
-
- Status: we need to abstract those function into a separate object,
- which can be linked by APR.so. However I think we should probably
- provide a static build and after that see how to do the linking
- right. Otherwise we may have collisions with statically linked
- symbols and the dynamic ones.
-
- APR::Pool relies on interpreter management functions and therefore
- can't be used outside mod_perl.
-
- Status:
-
-Documentation:
---------------
-
- -- see: modperl-docs/src/docs/2.0/TODO
-
-Patches unlikely to be applied:
--------------------------------
-
-*
- Report:
- Status:
-
+Issues, bugs and features and their implementation status are spread
+across several files under the todo/ directory
1.14 +0 -97 modperl-2.0/ModPerl-Registry/TODO
<<Binary file>>
1.5 +1 -31 modperl-2.0/todo/README
Index: README
===================================================================
RCS file: /home/cvs/modperl-2.0/todo/README,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -u -r1.4 -r1.5
--- README 28 Jan 2003 07:33:14 -0000 1.4
+++ README 18 Nov 2003 21:45:18 -0000 1.5
@@ -1,31 +1 @@
-this directory contains notes on whats left to be done, covering all
-areas including:
-
-o interpreter management
-o hook code and callback mechanism
-o stacked handlers, method handlers
-o Perl interfaces to Apache/APR structures
-o Perl interfaces to Apache/APR API functions
-o I/O + filtering
-o protocol module support
-
-o <Perl> sections (+in progress, gozer is working on it)
-
-o directive handlers
-o cgi emulation, i.e. %ENV/END{}/@INC/exit() management
-o 1.x compat mode
-o pure Perl Apache::* extras (e.g. Apache::Status, etc)
-o build framework
-o test framework
-o examples
-o docs
-
-somewhat prioritized into:
-
-- api.txt
-
-- missing_old_features.txt
-
-- deprecated_features.txt
-
-- possible_new_features.txt
+this directory contains notes on whats left to be done
\ No newline at end of file
1.37 +0 -93 modperl-2.0/todo/api.txt
Index: api.txt
===================================================================
RCS file: /home/cvs/modperl-2.0/todo/api.txt,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -u -r1.36 -r1.37
--- api.txt 26 Sep 2003 19:19:13 -0000 1.36
+++ api.txt 18 Nov 2003 21:45:18 -0000 1.37
@@ -1,95 +1,2 @@
-important parts of the api that are missing
-in no particular order
-------------------------------------------
-
-missing apr_buckets api:
-destroy, delete
-
-tied filehandle interface:
- -EOF, TELL, SEEK
- -READLINE - proper implementation (see comment in Apache::compat)
- need to attempt to fix that interface so it'll work with IPC::Open* family
-
-$r->finfo:
-need apr_finfo_t <-> struct stat conversion (might already be there,
-haven't looked close enough yet)
-
-$r->chdir_file:
-not safe for threaded environments. should at least unshift @INC with
-dirname $r->filename. consider overriding open() to resolve relative
-filenames.
-
-$r->child_terminate:
-haven't looked into this, but clearly not an option with threaded
-mpms. might consider knocking off the current PerlInterpreter
-instead.
-
-$r->log_reason:
-should be simple, see modperl_log.h
-
-Apache->server_root_relative:
-needs to default to current pool (pconf at startup, r->pool at request
-time)
-
-APR::URI
-missing $uri->rpath
-
-Apache::Util::*
-escape_path() - (was escape_uri) can be changed in apache not to require a
-pool
-
-$r->cleanup_for_exec needs to be added to Apache::compat as a noop.
-
-size_string() - can we use apr_strfsize ?
-
-escape_html() - consider jeff baker's more robust implementation of
-my_escape_html(), which should probably be made in apache-2.0 itself
-
-ht_time() - now requires a pool, temporarily renamed format_time for
-1.x ht_time compat. should we just leave as is or see if ht_time can
-be changed to not require a pool?
-
-$r->document_root:
-cannot currently be modified. requires locking since it is part of
-the per-server config structure which is shared between threads
-
-$r->send_fd:
-need to figure out howto map PerlIO <-> apr_file_t
-at the moment $r->send_fd is implement in Apache::compat, functions,
-but does not have the performance benefits of ap_send_fd()
-however, $r->sendfile is a new function that opens the file for you
-and calls ap_send_fd() underneath. ap_send_fd() in APR doesn't work
-with fd's which aren't files and of unknown length, therefore it cannot
-be used for implementing 1.x compatible send_fd.
-
-Apache::{Server,Process} classes:
-require mutex lock for writing
-
-Apache->import:
-not yet implemented, required for exit/warn overridding
-
-$r->{get,set,push}_handlers:
-need to deal properly with modification of the current handler phase
-we're running.
-
-Apache->request:
-need to deal with subclass objects which are not a request_rec
-(e.g. HASH ref)
-
-$r->cgi_header_out:
-anything in 1.x land actually using it?
-
Apache->unescape_url{_info}:
not yet implemented. should be moved to Apache::Util
-
-mod_perl::import():
-not yet implemented
-
-Apache::FakeRequest:
-since APR can be used outside of httpd, and we can alloc request_rec
-and similar structures, it should be possible to bootstrap an
-inside-httpd interface and outside-httpd interface. its not really
-worthwhile looking at until APR actually installs its *.so or *.a
-libraries somewhere apxs can find them. and, there's a bunch of util
-functions (e.g. URI stuff) that is supposed to move from httpd into
-apr-util.
1.2 +6 -0 modperl-2.0/todo/bugs_build
Index: bugs_build
===================================================================
RCS file: /home/cvs/modperl-2.0/todo/bugs_build,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -u -r1.1 -r1.2
--- bugs_build 17 Nov 2003 23:00:34 -0000 1.1
+++ bugs_build 18 Nov 2003 21:45:18 -0000 1.2
@@ -54,3 +54,9 @@
* mp2bug -- add the output of 'ldd httpd' to the report
+* source_scan won't create Wrap/Foo/Bar.xs if
+ xs/maps/modperl_functions.map defines only a boot section:
+ MODULE=APR::IO PACKAGE=APR::IO BOOT=1
+ unless there is at least one function added to the .map file
+ http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=100702825506778&w=2
+
1.2 +103 -1 modperl-2.0/todo/bugs_registry
Index: bugs_registry
===================================================================
RCS file: /home/cvs/modperl-2.0/todo/bugs_registry,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -u -r1.1 -r1.2
--- bugs_registry 17 Nov 2003 23:00:34 -0000 1.1
+++ bugs_registry 18 Nov 2003 21:45:18 -0000 1.2
@@ -8,4 +8,106 @@
since it's the first time in the last 6 years we had a
problem with bad user code of this kind. let's keep it in
the patches until we have a real need for it.
- Priority: very low
\ No newline at end of file
+ Priority: very low
+
+* An open issue with chdir, which is process-scoped. Arthur Bergman
+ has started the work on ex::threads::safecwd, which is discussed
+ here: http://www.perl.com/pub/a/2002/06/11/threads.html?page=2
+
+RegistryLoader:
+
+- chdir() needs to be adjusted when RegistryCooker implements it
+
+RegistryCooker:
+
+### bugs ###
+
+- consider not to use $$ in debug tracing. Not all platforms give out
+ a different pid for different threads.
+
+- some problems with setting the DEBUG() constant based on the value of
+ Apache->server->dir_config('ModPerl::RegistryCooker::DEBUG')
+
+### missing features ###
+
+- port Apache::PerlRunXS
+
+- replace the local implementation of finfo() when ported to mod_perl 2.0
+
+- $r->chdir_file is not handled/implemented, see todo/api.txt unsafe!
+
+- $Apache::Server::CWD doesn't exist
+
+- need to figure out what's happening with
+ ModPerl::Registry::MarkLine, why it's not on by default?
+
+- a cousin of convert_script_to_compiled_handler() in 1.x used to have
+ 'undef &{"$o->[PACKAGE]\::handler"}' to avoid redefine handler()
+ warnings in case a user has used -w. also see the undef_functions on
+ the next line.
+
+- child_terminate is not implemented see
+ convert_script_to_compiled_handler().
+
+- print STDERR is buffered in test handlers, whereas warn() works
+ normally. select() helps, but STDERR should be unbuffered in first
+ place.
+
+- in namespace_from_filename() should test whether a file is a symlink
+ and if so use readlink() to get the real filename.
+
+- see what can be done to handle HEAD requests without altering the scripts.
+ I'm thinking of running the script normally, but send back only the
+ generated headers.
+
+- documentation
+
+### optimizations ###
+
+- currently the default is to strip __DATA__|__END__ and everything
+ after that, which incurs a little overhead because of the s/// on
+ the contents of the file. This "feature" wasn't in 1.x, so may
+ consider to make it optional.
+
+### nice to have ###
+
+- Geoffrey Young has developed Apache::HEADRegistry is just a subclass
+ of Apache::Registry that is HEAD request aware:
+ http://mathforum.org/epigone/modperl/starfaxbi/[EMAIL PROTECTED]
+ consider integrating in the core as the default behavior or a subclass.
+
+- Bjarni R. Einarsson <[EMAIL PROTECTED]> has suggested this Registry hack
+ http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=98961929702745&w=2
+ Message-ID: <[EMAIL PROTECTED]>
+
+- the closure issue:
+ there was a suggestion from raptor to use goto() to leave the code
+ unwrapped in the sub handler, which will solve the closure problem,
+ but the problem is that once you leave a subroutine with goto() you
+ cannot return, because you aren't in the sub anymore.
+
+ barrie has suggested a different approach, which requires adding
+ special tags to the script which help to parse the code, and shuffle
+ things around without putting subs inside the 'sub handler', but
+ this requires a lot of code understanding from a user, and if its
+ gained it's probably easier to fix the script so closure effect
+ won't happen. However barrie's suggestion can be easily added, by
+ overriding convert_script_to_compiled_handler().
+
+- global variables persistance: could have the cooker option to flush
+ globals in the autogenerated package at the end of each
+ request. (not packages use()'d from this package)
+
+- could also try to privide an optional workaround for the problem
+ with libs collisions as explained here:
+
http://perl.apache.org/docs/1.0/guide/porting.html#Name_collisions_with_Modules_and
+
+- It's a known kludge with mod_perl scripts coming from mod_cgi which
+ use -M for file mtime comparisons, but are not aware of the fact
+ that $^T is not getting reset on each request. So may be the cooker
+ should have an option to reset $^T on each request.
+
+- develop a cooker() that cooks/modifies a registry package based on
+ PerlSetVar variables. So for example a user can modify a behavior of
+ an existing package (stat/donotstat...) and giving it a new name at
+ the same time. Kinda flag-based inheritance.
1.9 +0 -2 modperl-2.0/todo/deprecated_features.txt
Index: deprecated_features.txt
===================================================================
RCS file: /home/cvs/modperl-2.0/todo/deprecated_features.txt,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -u -r1.8 -r1.9
--- deprecated_features.txt 28 Jul 2003 10:33:59 -0000 1.8
+++ deprecated_features.txt 18 Nov 2003 21:45:18 -0000 1.9
@@ -16,8 +16,6 @@
- modules:
+ Apache::SIG: dead
- + Apache::StatINC: replace with or point to Apache::Reload
- or rewrite in C
+ Apache::Symbol: unknown
+ Apache::Leak: could be made useful
+ Apache::RedirectLogFix: dead
1.2 +23 -0 modperl-2.0/todo/features_maybe
Index: features_maybe
===================================================================
RCS file: /home/cvs/modperl-2.0/todo/features_maybe,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -u -r1.1 -r1.2
--- features_maybe 17 Nov 2003 23:00:34 -0000 1.1
+++ features_maybe 18 Nov 2003 21:45:18 -0000 1.2
@@ -9,4 +9,27 @@
Status: most likely nobody will ever want to use this option, so
don't waste time working on it.
+* Apache::FakeRequest:
+ since APR can be used outside of httpd, and we can alloc request_rec
+ and similar structures, it should be possible to bootstrap an
+ inside-httpd interface and outside-httpd interface. its not really
+ worthwhile looking at until APR actually installs its *.so or *.a
+ libraries somewhere apxs can find them. and, there's a bunch of util
+ functions (e.g. URI stuff) that is supposed to move from httpd into
+ apr-util.
+
+* could add support for embedding apache directives into perl
+ directives values, e.g. interpolating $ServerRoot
+
+ PerlSwitches -I$ServerRoot/lib/perl
+
+* Since now we have protocol modules, it'd be nice to have a similar
+ thing to PerlCleanupHandler, which works only for HTTP requests.
+ It should probably be called PerlConnectionCleanupHandler.
+
+ If we add it we should probably rename PerlCleanupHadndler to
+ PerlRequestCleanupHandler and keep the old name as a deprecated alias.
+
+ We could also have PerlServerCleanupHandler, but that's exactly what
+ PerlChildExitHandler does. Consider having ServerCleanup as an alias.
1.2 +54 -3 modperl-2.0/todo/features_missing
Index: features_missing
===================================================================
RCS file: /home/cvs/modperl-2.0/todo/features_missing,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -u -r1.1 -r1.2
--- features_missing 17 Nov 2003 23:00:34 -0000 1.1
+++ features_missing 18 Nov 2003 21:45:18 -0000 1.2
@@ -26,10 +26,61 @@
* die 404 (consider deprecating it)
-* mod_perl.pm::import
+* mod_perl::import
+ - Apache->import:
+ required for exit/warn overridding
-- Apache::test: tobe a compat stub around new test framework
+* Apache::test: tobe a compat stub around new test framework
-- Apache::src: tobe a compat stub around new build framework
+* Apache::src: tobe a compat stub around new build framework
+* hooks ordering is not implemented yet
+ Owner: geoff
+
+* tied filehandle interface:
+ -EOF, TELL, SEEK
+ -READLINE - proper implementation (see comment in Apache::compat)
+ need to attempt to fix that interface so it'll work with IPC::Open* family
+
+* $r->finfo:
+ need apr_finfo_t <-> struct stat conversion (might already be there,
+ haven't looked close enough yet)
+
+* $r->chdir_file:
+ not safe for threaded environments. should at least unshift @INC
+ with dirname $r->filename. consider overriding open() to resolve
+ relative filenames.
+
+* $r->child_terminate:
+ haven't looked into this, but clearly not an option with threaded
+ mpms. might consider knocking off the current PerlInterpreter
+ instead.
+
+* $r->log_reason:
+ should be simple, see modperl_log.h (currently aliased to log_error
+ in compat.pm)
+
+* APR::URI missing $uri->rpath
+
+* size_string() - can we use apr_strfsize ?
+
+* escape_html() - consider jeff baker's more robust implementation of
+ my_escape_html(), which should probably be made in apache-2.0 itself
+ (is there apache api? or just drop it)
+
+* $r->document_root:
+ cannot currently be modified. requires locking since it is part of
+ the per-server config structure which is shared between threads
+
+* $r->send_fd:
+ need to figure out howto map PerlIO <-> apr_file_t
+ at the moment $r->send_fd is implement in Apache::compat, functions,
+ but does not have the performance benefits of ap_send_fd()
+ however, $r->sendfile is a new function that opens the file for you
+ and calls ap_send_fd() underneath. ap_send_fd() in APR doesn't work
+ with fd's which aren't files and of unknown length, therefore it cannot
+ be used for implementing 1.x compatible send_fd.
+ Solution: send_fd will require the length argument and there will be
+ no send_fd without the length argument as in mp1
+ Owner: stas
1.2 +7 -0 modperl-2.0/todo/features_new
Index: features_new
===================================================================
RCS file: /home/cvs/modperl-2.0/todo/features_new,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -u -r1.1 -r1.2
--- features_new 17 Nov 2003 23:00:34 -0000 1.1
+++ features_new 18 Nov 2003 21:45:18 -0000 1.2
@@ -31,3 +31,10 @@
* maybe functions in xs/maps/(apache|apr)_functions.map
+* missing apr_buckets api: destroy, delete
+
+* Apache->request:
+ need to deal with subclass objects which are not a request_rec
+ (e.g. HASH ref)
+ Owner: gozer
+
1.5 +0 -126 modperl-2.0/todo/filters.txt
<<Binary file>>
1.27 +0 -52 modperl-2.0/todo/missing_old_features.txt
Index: missing_old_features.txt
===================================================================
RCS file: /home/cvs/modperl-2.0/todo/missing_old_features.txt,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -u -r1.26 -r1.27
--- missing_old_features.txt 4 Feb 2003 06:52:15 -0000 1.26
+++ missing_old_features.txt 18 Nov 2003 21:45:18 -0000 1.27
@@ -1,55 +1,3 @@
-this file contains known missing features from 1.3, these are to be
-implemented unless otherwise noted. there are more missing features
-listed in deprecated_features.txt
-- anonymous handler (for push_handlers, add_input_filter, etc), see
- modperl_mgv.c: modperl_mgv_name_from_sv
-- PerlModule, PerlRequire, Perl{Set,Add}Var in .htaccess is missing
-- modperl_include #perl
-
-- PerlOpCodeMask (experimental in 1.xx)
-
-- 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
-
- - see if we can avoid touching environ[] until a fork() from Perl happens
-
-- die 404;
-
-- ... others ...
-
-
-core modules:
-------------
-
-- see also: xs/maps/apache_functions.map
-
-addon modules:
--------------
-
-- mod_perl.pm::import
-
-- Apache::Status (stas: in progress, needs Apache::Peek and a few
- other fixes)
-
-- Apache::test: tobe a compat stub around new test framework
-
-- Apache::src: tobe a compat stub around new build framework
-
-- Apache::PerlSections: still missing:
- - $Apache::Server::SaveConfig
- - $Apache::ReadConfig::DocumentRoot
- - $Apache::Server::StrictPerlSections
- - Apache::PerlSections->store(filename)
-
-- Apache::SizeLimit and Apache::Resource
-
-- Apache::ExtUtils
-
-- Bundle::Apache
1.20 +0 -15 modperl-2.0/todo/possible_new_features.txt
Index: possible_new_features.txt
===================================================================
RCS file: /home/cvs/modperl-2.0/todo/possible_new_features.txt,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -u -r1.19 -r1.20
--- possible_new_features.txt 7 Apr 2003 05:08:54 -0000 1.19
+++ possible_new_features.txt 18 Nov 2003 21:45:18 -0000 1.20
@@ -1,21 +1,6 @@
config features:
----------------
-- could add support for embedding apache directives into perl
- directives values, e.g. interpolating $ServerRoot
-
- PerlSwitches -I$ServerRoot/lib/perl
-
-- Since now we have protocol modules, it'd be nice to have a similar
- thing to PerlCleanupHandler, which works only for HTTP requests.
- It should probably be called PerlConnectionCleanupHandler.
-
- If we add it we should probably rename PerlCleanupHadndler to
- PerlRequestCleanupHandler and keep the old name as a deprecated alias.
-
- We could also have PerlServerCleanupHandler, but that's exactly what
- PerlChildExitHandler does. Consider having ServerCleanup as an alias.
-
- 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
1.3 +59 -1 modperl-2.0/todo/release
Index: release
===================================================================
RCS file: /home/cvs/modperl-2.0/todo/release,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -u -r1.2 -r1.3
--- release 18 Nov 2003 00:54:10 -0000 1.2
+++ release 18 Nov 2003 21:45:18 -0000 1.3
@@ -116,11 +116,69 @@
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 and Apache::Resource
+* 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 (???)
+ Apache::GTopLimit (???)
+ 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.
+
+* Set/Add overlapping in config which is not doing the right thing. See:
+ http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=100622977803237&w=2
+ http://marc.theaimsgroup.com/?t=97984528900002&r=1&w=2
+
+* Apache->server_root_relative:
+ needs to default to current pool (pconf at startup, r->pool at
+ request time) - solution: require the pool object to be passed. if a
+ user doesn't have one, make them create one, e.g.:
+ Apache::server_root_relative(APR::Pool->new, ....). Must make sure
+ that the returned SV has a copy of that string and doesn't rely on
+ anything that it's in pool, which will be now destroyed.
+
+* $r->cleanup_for_exec needs to be added to Apache::compat as a noop.
+ Owner: stas
+
+* ht_time() - now requires a pool, temporarily renamed format_time for
+ 1.x ht_time compat. should we just leave as is or see if ht_time can
+ be changed to not require a pool?
+ Status: probably rename it back and just require the
+ pool. Apache::compat will override this method and if the pool
+ wasn't passed it'll create one behind the scenes (APR::Pool->new).
+
+* 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.
+
+* push_handlers has a problem when called to add handlers to the
+ current phase (segfaults, see t/error/push_handlers.t) check that
+ get_handlers sees that added handler.
+
+* Apache::Reload
+ - needs to handle properly redefined subs warnings
+
+