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 2004/03/03 23:45:40 UTC
cvs commit: modperl-2.0/todo features_registry bugs_registry
stas 2004/03/03 14:45:40
Modified: todo bugs_registry
Added: todo features_registry
Log:
separate features from bugs
Revision Changes Path
1.5 +0 -77 modperl-2.0/todo/bugs_registry
Index: bugs_registry
===================================================================
RCS file: /home/cvs/modperl-2.0/todo/bugs_registry,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -u -r1.4 -r1.5
--- bugs_registry 24 Nov 2003 09:55:06 -0000 1.4
+++ bugs_registry 3 Mar 2004 22:45:40 -0000 1.5
@@ -20,85 +20,8 @@
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.
-
-- 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 ###
-
-- Bjarni R. Einarsson <br...@klaki.net> has suggested this Registry hack
- http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=98961929702745&w=2
- Message-ID: <20...@diskordiah.mmedia.is>
-
-- 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.1 modperl-2.0/todo/features_registry
Index: features_registry
===================================================================
#####################
# Registry 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.
- 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 ###
- Bjarni R. Einarsson <br...@klaki.net> has suggested this Registry hack
http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=98961929702745&w=2
Message-ID: <20...@diskordiah.mmedia.is>
- 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.
* 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.
Priority: very low