cvs commit: modperl-2.0/ModPerl-Registry TODO
stas2003/02/04 20:06:28 Modified:.Changes ModPerl-Registry/lib/ModPerl RegistryCooker.pm ModPerl-Registry TODO Log: warn on using -T in ModPerl::Registry scripts when mod_perl is not running with -T Revision ChangesPath 1.122 +7 -4 modperl-2.0/Changes Index: Changes === RCS file: /home/cvs/modperl-2.0/Changes,v retrieving revision 1.121 retrieving revision 1.122 diff -u -r1.121 -r1.122 --- Changes 4 Feb 2003 06:52:15 - 1.121 +++ Changes 5 Feb 2003 04:06:27 - 1.122 @@ -10,10 +10,13 @@ =item 1.99_09-dev -perl 5.7.3+ has a built-in ${^TAINT} to test whether running under --(T|t). Backport ${^TAINT} for mod_perl running under 5.6.0-5.7.3, -(what used to be $Apache::__T. $Apache::__T is available too, but -deprecated. [Stas] +warn on using -T in ModPerl::Registry scripts when mod_perl is not +running with -T [Stas] + +perl 5.7.3+ has a built-in ${^TAINT} to test whether it's running +under -(T|t). Backport ${^TAINT} for mod_perl running under +5.6.0-5.7.3, (what used to be $Apache::__T. $Apache::__T is available +too, but deprecated. [Stas] add PerlChildExitHandler implementation [Stas] 1.30 +4 -5 modperl-2.0/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm Index: RegistryCooker.pm === RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- RegistryCooker.pm 18 Jan 2003 02:04:32 - 1.29 +++ RegistryCooker.pm 5 Feb 2003 04:06:27 - 1.30 @@ -552,10 +552,9 @@ my %switches = ( 'T' = sub { -# XXX: need to have $Apache::__T set by the core on PerlSwitches -T -# Apache::warn(T switch is ignored, , -#enable with 'PerlSwitches -T' in httpd.conf\n) -# unless $Apache::__T; + Apache::warn(-T switch is ignored, . +enable with 'PerlSwitches -T' in httpd.conf\n) + unless ${^TAINT}; ; }, 'w' = sub { use warnings;\n }, @@ -574,7 +573,7 @@ last if substr($s,0,1) eq -; for (split //, $s) { next unless exists $switches{$_}; - $prepend .= {$switches{$_}}; + $prepend .= $switches{$_}-(); } } ${ $self-[CODE] } =~ s/^/$prepend/ if $prepend; 1.12 +0 -2 modperl-2.0/ModPerl-Registry/TODO Index: TODO === RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/TODO,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- TODO 29 Dec 2002 10:11:49 - 1.11 +++ TODO 5 Feb 2003 04:06:27 - 1.12 @@ -14,8 +14,6 @@ ### missing features ### -- need to port $Apache::__T, to test against when user supplies -T flag. - - port Apache::PerlRunXS - replace the local implementation of slurp_filename() and finfo(),
cvs commit: modperl-2.0/ModPerl-Registry TODO
stas2002/08/15 09:16:24 Modified:ModPerl-Registry TODO Log: issues that have been taken care of Revision ChangesPath 1.8 +1 -9 modperl-2.0/ModPerl-Registry/TODO Index: TODO === RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/TODO,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- TODO 7 Dec 2001 18:12:17 - 1.7 +++ TODO 15 Aug 2002 16:16:24 - 1.8 -6,15 +6,11 ### bugs ### -- prototyping sub handler($$) segfaults on request - - consider not to use $$ in debug tracing. Not all platforms give out a different pid for different threads. ### missing features ### -- need to properly handle HEAD requests - - need to port $Apache::__T, to test against when user supplies -T flag. - port Apache::PerlRunXS -53,10 +49,6 ### optimizations ### -- $o-[CLASS] of the subclass is known at compile time, so should - create the subs using $o-[CLASS] on the fly for each subclass - which wants them - - 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 -88,7 +80,7 - could also try to privide an optional workaround for the problem with libs collisions as explained here: - http://perl.apache.org/guide/porting.html#Name_collisions_with_Modules_and + 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
cvs commit: modperl-2.0/ModPerl-Registry TODO
stas01/12/07 10:12:17 Modified:ModPerl-Registry TODO Log: - todo: need to properly handle HEAD requests Revision ChangesPath 1.7 +2 -0 modperl-2.0/ModPerl-Registry/TODO Index: TODO === RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/TODO,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- TODO 2001/11/23 16:26:31 1.6 +++ TODO 2001/12/07 18:12:17 1.7 @@ -13,6 +13,8 @@ ### missing features ### +- need to properly handle HEAD requests + - need to port $Apache::__T, to test against when user supplies -T flag. - port Apache::PerlRunXS
cvs commit: modperl-2.0/ModPerl-Registry TODO
stas01/10/22 01:33:48 Modified:ModPerl-Registry TODO Log: - document the rest of the nice to have things Revision ChangesPath 1.4 +39 -7 modperl-2.0/ModPerl-Registry/TODO Index: TODO === RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/TODO,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TODO 2001/10/22 05:18:23 1.3 +++ TODO 2001/10/22 08:33:48 1.4 @@ -7,8 +7,6 @@ - consider not to use $$ in debug tracing. Not all platforms give out a different pid for different threads. - - ### missing features ### - need to port $Apache::__T, to test against when user supplies -T flag. @@ -40,20 +38,54 @@ 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. + ### optimizations ### - $o-[CLASS] of the subclass is known at compile time, so should create the subs using $o-[CLASS] on the fly for each subclass which wants them -### nice to have ### +- 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. -- in namespace_from_filename() should test whether a file is a symlink - and if so use readlink() to get the real filename. - -### other things ### +### nice to have ### - Bjarni R. Einarsson [EMAIL PROTECTED] has suggested this Registry hack http://marc.theaimsgroup.com/?l=apache-modperl-devm=98961929702745w=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/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.
cvs commit: modperl-2.0/ModPerl-Registry TODO
stas01/10/19 03:43:25 Modified:ModPerl-Registry TODO Log: - summarize things that have to be done for Registry Revision ChangesPath 1.2 +44 -26modperl-2.0/ModPerl-Registry/TODO Index: TODO === RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/TODO,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- TODO 2001/10/09 12:47:38 1.1 +++ TODO 2001/10/19 10:43:25 1.2 @@ -1,36 +1,54 @@ -- META tags in the modules +RegistryCooker: +### bugs ### - - print STDERR is buffered in test handlers, whereas warn() works - normally. select() helps, but STDERR should be unbuffered in first - place. +- prototyping sub handler($$) segfaults on request +### missing features ### - what's the replacement of NameWithVirtualHost? Obviously we need something - to distinguish between vhs. +- need to port $Apache::__T, to test against when user supplies -T flag. -DougM: well, if possible we should distinguish between the uri and -requested resource instead. in otherwords, we have the: r-uri = -r-filename translation, just need to figure out if r-filename is the -actual filename or a symlink (readlink can be used to get the real -filename). then create a package based on the filename, but with as -few package:: levels as possible (hopefully none beyond -ModPerl::RegistryROOT::filename) +- port Apache::PerlRunXS -DougM: using filenames makes for long packages names == lengthy -lookups and more memory than we need. at least the way it is -currently implemented where each '/' turns into '::'. could be that -s,/,_,g is good enough, but haven't thought about this for a while. -in any case, we should get rid of the NameWithVirtualHost stuff, its -caused too many problems in the past. +- implement RegistryLoader (per module or a single one?) +- implement slurp_filename and remove Apache::compat -Bjarni R. Einarsson [EMAIL PROTECTED] has suggested this Registry hack -http://marc.theaimsgroup.com/?l=apache-modperl-devm=98961929702745w=2 -Message-ID: [EMAIL PROTECTED] +- $r-chdir_file is not handled/implemented, see todo/api.txt unsafe! +- $Apache::Server::CWD doesn't exist + +- NameWithVirtualHost is not handled + +- 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. + +### optimizations ### + +- $o-[CLASS] of the subclass is known at compile time, so should + create the subs using $o-[CLASS] on the fly for each subclass + which wants them + +### nice to have ### + +- in namespace_from_filename() should test whether a file is a symlink + and if so use readlink() to get the real filename. + +### other things ### + +- Bjarni R. Einarsson [EMAIL PROTECTED] has suggested this Registry hack + http://marc.theaimsgroup.com/?l=apache-modperl-devm=98961929702745w=2 + Message-ID: [EMAIL PROTECTED]