cvs commit: modperl-2.0/xs/tables/current/ModPerl FunctionTable.pm
geoff 2003/12/01 09:14:17
Modified:xs/Apache/MPM Apache__MPM.h
xs/maps apache_functions.map modperl_functions.map
xs/tables/current/Apache FunctionTable.pm
xs/tables/current/ModPerl FunctionTable.pm
Added: t/response/TestAPI query.pm show.pm
Removed: t/response/TestAPI mpm_query.pm show_mpm.pm
Log:
change Apache::MPM::show_mpm() to constant subroutine Apache::MPM->show
change Apache::MPM::mpm_query() to class method Apache::MPM->query()
adjust test names to match
Revision ChangesPath
1.1 modperl-2.0/t/response/TestAPI/query.pm
Index: query.pm
===
package TestAPI::query;
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestUtil;
use Apache::TestTrace;
use Apache::MPM ();
use Apache::Const -compile => qw(OK :mpmq);
sub handler {
my $r = shift;
plan $r, tests => 3;
# ok, this isn't particularly pretty, but I can't think
# of a better way to do it
# all of these attributes I pulled right from the C sources
# so if, say, leader all of a sudden changes its properties,
# these tests will fail
my $mpm = lc Apache::MPM->show;
if ($mpm eq 'prefork') {
{
my $query = Apache::MPM->query(Apache::MPMQ_IS_THREADED);
ok t_cmp(Apache::MPMQ_NOT_SUPPORTED,
$query,
"MPMQ_IS_THREADED ($mpm)");
}
{
my $query = Apache::MPM->query(Apache::MPMQ_IS_FORKED);
ok t_cmp(Apache::MPMQ_DYNAMIC,
$query,
"MPMQ_IS_FORKED ($mpm)");
}
}
elsif ($mpm eq 'worker') {
{
my $query = Apache::MPM->query(Apache::MPMQ_IS_THREADED);
ok t_cmp(Apache::MPMQ_STATIC,
$query,
"MPMQ_IS_THREADED ($mpm)");
}
{
my $query = Apache::MPM->query(Apache::MPMQ_IS_FORKED);
ok t_cmp(Apache::MPMQ_DYNAMIC,
$query,
"MPMQ_IS_FORKED ($mpm)");
}
}
elsif ($mpm eq 'leader') {
{
my $query = Apache::MPM->query(Apache::MPMQ_IS_THREADED);
ok t_cmp(Apache::MPMQ_STATIC,
$query,
"MPMQ_IS_THREADED ($mpm)");
}
{
my $query = Apache::MPM->query(Apache::MPMQ_IS_FORKED);
ok t_cmp(Apache::MPMQ_DYNAMIC,
$query,
"MPMQ_IS_FORKED ($mpm)");
}
}
elsif ($mpm eq 'winnt') {
{
my $query = Apache::MPM->query(Apache::MPMQ_IS_THREADED);
ok t_cmp(Apache::MPMQ_STATIC,
$query,
"MPMQ_IS_THREADED ($mpm)");
}
{
my $query = Apache::MPM->query(Apache::MPMQ_IS_FORKED);
ok t_cmp(Apache::MPMQ_NOT_SUPPORTED,
$query,
"MPMQ_IS_FORKED ($mpm)");
}
}
else {
skip "skipping MPMQ_IS_THREADED test for $mpm MPM", 0;
skip "skipping MPMQ_IS_FORKED test for $mpm MPM", 0;
}
# make sure that an undefined MPMQ constant yields undef
{
my $query = Apache::MPM->query(72);
ok t_cmp(undef,
$query,
"unknown MPMQ value returns undef");
}
Apache::OK;
}
1;
1.1 modperl-2.0/t/response/TestAPI/show.pm
Index: show.pm
===
package TestAPI::show;
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestUtil;
use Apache::MPM ();
use Apache::Const -compile => 'OK';
sub handler {
my $r = shift;
plan $r, tests => 1;
my $mpm = Apache::Test::config->{server}->{mpm};
warn " trying now***";
ok t_cmp(qr!$mpm!i,
Apache::MPM->show(),
'Apache::MPM->show()');
Apache::OK;
}
1;
1.2 +17 -9 modperl-2.0/xs/Apache/MPM/Apache__MPM.h
Index: Apache__MPM.h
===
RCS file: /home/cvs/modperl-2.0/xs/Apache/MPM/Apache__MPM.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Apache__MPM.h 25 Nov 2003 18:56:34 - 1.1
+++ Apache__MPM.h 1 Dec 2003 17:14:16 - 1.2
@@ -1,17 +1,25 @@
-static MP_INLINE
-int mpxs_Apache__MPM_mpm_query(int query)
+static MP_INLINE SV *mpxs_Apache__MPM_query(pTHX_ SV *self, int query_code)
{
int mpm_q
cvs commit: modperl-2.0 Changes
geoff 2003/12/01 09:14:24
Modified:.Changes
Log:
Revision ChangesPath
1.264 +1 -1 modperl-2.0/Changes
Index: Changes
===
RCS file: /home/cvs/modperl-2.0/Changes,v
retrieving revision 1.263
retrieving revision 1.264
diff -u -r1.263 -r1.264
--- Changes 25 Nov 2003 23:44:27 - 1.263
+++ Changes 1 Dec 2003 17:14:24 - 1.264
@@ -15,7 +15,7 @@
fix "PerlSetVar Foo 0" so that $r->dir_config('Foo') returns 0, not undef
[Geoffrey Young]
-add Apache::MPM class, along with show_mpm() and mpm_query() functions
+add Apache::MPM class, along with show() and query() class methods
[Geoffrey Young]
add :mpmq import tag to Apache::Const [Geoffrey Young]
cvs commit: modperl-2.0/xs/Apache/MPM Apache__MPM.h
geoff 2003/12/01 09:28:36
Modified:src/modules/perl mod_perl.c
t/response/TestAPI query.pm
t/response/TestAPR os.pm
xs/Apache/MPM Apache__MPM.h
Log:
Apache::MPM->is_threaded() replaces Apache::MPM_IS_THREADED
Revision ChangesPath
1.204 +0 -4 modperl-2.0/src/modules/perl/mod_perl.c
Index: mod_perl.c
===
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
retrieving revision 1.203
retrieving revision 1.204
diff -u -r1.203 -r1.204
--- mod_perl.c3 Nov 2003 23:31:19 - 1.203
+++ mod_perl.c1 Dec 2003 17:28:36 - 1.204
@@ -52,7 +52,6 @@
static void modperl_boot(pTHX_ void *data)
{
MP_dBOOT_DATA;
-MP_dSCFG(s);
int i;
modperl_env_clear(aTHX);
@@ -70,9 +69,6 @@
/* outside mod_perl this is done by ModPerl::Const.xs */
newXS("ModPerl::Const::compile", XS_modperl_const_compile, __FILE__);
-
-newCONSTSUB(PL_defstash, "Apache::MPM_IS_THREADED",
-newSViv(scfg->threaded_mpm));
#ifdef MP_PERL_5_6_x
/* make sure DynaLoader is loaded before XSLoader
1.2 +35 -2 modperl-2.0/t/response/TestAPI/query.pm
Index: query.pm
===
RCS file: /home/cvs/modperl-2.0/t/response/TestAPI/query.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- query.pm 1 Dec 2003 17:14:16 - 1.1
+++ query.pm 1 Dec 2003 17:28:36 - 1.2
@@ -15,7 +15,7 @@
my $r = shift;
-plan $r, tests => 3;
+plan $r, tests => 5;
# ok, this isn't particularly pretty, but I can't think
# of a better way to do it
@@ -33,6 +33,16 @@
ok t_cmp(Apache::MPMQ_NOT_SUPPORTED,
$query,
"MPMQ_IS_THREADED ($mpm)");
+
+# is_threaded() is just a constsub set to the result from
+# ap_mpm_query(AP_MPMQ_IS_THREADED)
+
+ok t_cmp($query,
+ Apache::MPM->is_threaded,
+ "Apache::MPM->is_threaded() equivalent to
query(MPMQ_IS_THREADED)");
+
+t_debug('Apache::MPM->is_threaded returned ' .
Apache::MPM->is_threaded);
+ok (! Apache::MPM->is_threaded);
}
{
@@ -50,8 +60,15 @@
my $query = Apache::MPM->query(Apache::MPMQ_IS_THREADED);
ok t_cmp(Apache::MPMQ_STATIC,
- $query,
+$query,
"MPMQ_IS_THREADED ($mpm)");
+
+ok t_cmp($query,
+ Apache::MPM->is_threaded,
+ "Apache::MPM->is_threaded() equivalent to
query(MPMQ_IS_THREADED)");
+
+t_debug('Apache::MPM->is_threaded returned ' .
Apache::MPM->is_threaded);
+ok (Apache::MPM->is_threaded);
}
{
@@ -70,6 +87,13 @@
ok t_cmp(Apache::MPMQ_STATIC,
$query,
"MPMQ_IS_THREADED ($mpm)");
+
+ok t_cmp($query,
+ Apache::MPM->is_threaded,
+ "Apache::MPM->is_threaded() equivalent to
query(MPMQ_IS_THREADED)");
+
+t_debug('Apache::MPM->is_threaded returned ' .
Apache::MPM->is_threaded);
+ok (Apache::MPM->is_threaded);
}
{
@@ -88,6 +112,13 @@
ok t_cmp(Apache::MPMQ_STATIC,
$query,
"MPMQ_IS_THREADED ($mpm)");
+
+ok t_cmp($query,
+ Apache::MPM->is_threaded,
+ "Apache::MPM->is_threaded() equivalent to
query(MPMQ_IS_THREADED)");
+
+t_debug('Apache::MPM->is_threaded returned ' .
Apache::MPM->is_threaded);
+ok (Apache::MPM->is_threaded);
}
{
@@ -100,7 +131,9 @@
}
else {
skip "skipping MPMQ_IS_THREADED test for $mpm MPM", 0;
+skip "skipping Apache::MPM->is_threaded equivalence test for $mpm MPM", 0;
skip "skipping MPMQ_IS_FORKED test for $mpm MPM", 0;
+skip "skipping Apache::MPM->is_threaded test for $mpm MPM", 0;
}
# make sure that an undefined MPMQ constant yields undef
1.4 +2 -1 modperl-2.0/t/response/TestAPR/os.pm
Index: os.pm
===
RCS file: /home/cvs/modperl-2.0/t/response/TestAPR/os.pm,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- os.pm 23 May 2002 19:49:49 - 1.3
+++ os.pm 1 Dec 2003 17:28:36 - 1.4
@@ -6,6 +6,7 @@
use Apache::Test;
use Apache::TestUtil;
+use Apach
cvs commit: modperl-2.0 Changes
geoff 2003/12/01 09:28:50
Modified:.Changes
Log:
Apache::MPM->is_threaded() replaces Apache::MPM_IS_THREADED
Revision ChangesPath
1.265 +3 -0 modperl-2.0/Changes
Index: Changes
===
RCS file: /home/cvs/modperl-2.0/Changes,v
retrieving revision 1.264
retrieving revision 1.265
diff -u -r1.264 -r1.265
--- Changes 1 Dec 2003 17:14:24 - 1.264
+++ Changes 1 Dec 2003 17:28:50 - 1.265
@@ -12,6 +12,9 @@
=item 1.99_12-dev
+Apache::MPM->is_threaded() replaces Apache::MPM_IS_THREADED
+[Geoffrey Young]
+
fix "PerlSetVar Foo 0" so that $r->dir_config('Foo') returns 0, not undef
[Geoffrey Young]
cvs commit: modperl/src/modules/perl Apache.xs
geoff 2003/12/01 09:30:19
Modified:src/modules/perl Apache.xs
Log:
fix "PerlSetVar Foo 0" so that $r->dir_config('Foo') returns 0, not undef
Revision ChangesPath
1.130 +1 -1 modperl/src/modules/perl/Apache.xs
Index: Apache.xs
===
RCS file: /home/cvs/modperl/src/modules/perl/Apache.xs,v
retrieving revision 1.129
retrieving revision 1.130
diff -u -r1.129 -r1.130
--- Apache.xs 16 Sep 2003 19:51:06 - 1.129
+++ Apache.xs 1 Dec 2003 17:30:19 - 1.130
@@ -2084,7 +2084,7 @@
&perl_module);
TABLE_GET_SET(c->vars, FALSE);
}
-if (!SvTRUE(RETVAL)) {
+if (!SvOK(RETVAL)) {
s = r && r->server ? r->server : perl_get_startup_server();
if (s && s->module_config) {
SvREFCNT_dec(RETVAL); /* in case above did newSV(0) */
cvs commit: modperl Changes
geoff 2003/12/01 09:30:33
Modified:.Changes
Log:
fix "PerlSetVar Foo 0" so that $r->dir_config('Foo') returns 0, not undef
Revision ChangesPath
1.687 +3 -0 modperl/Changes
Index: Changes
===
RCS file: /home/cvs/modperl/Changes,v
retrieving revision 1.686
retrieving revision 1.687
diff -u -r1.686 -r1.687
--- Changes 26 Nov 2003 02:22:11 - 1.686
+++ Changes 1 Dec 2003 17:30:33 - 1.687
@@ -10,6 +10,9 @@
=item 1.30_01-dev
+fix "PerlSetVar Foo 0" so that $r->dir_config('Foo') returns 0, not undef
+[Geoffrey Young]
+
for some reason .pm files during the modperl build see $ENV{PERL5LIB}
set in Makefile.PL, which is used for generating Makefiles, as
"PERL5LIB=/path:/another/path" instead of "/path:/another/path"
cvs commit: modperl STATUS
geoff 2003/12/01 09:54:39
Modified:.STATUS
Log:
remove PerlSetVar Foo 0 issue (resolved)
Revision ChangesPath
1.43 +1 -7 modperl/STATUS
Index: STATUS
===
RCS file: /home/cvs/modperl/STATUS,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- STATUS25 Nov 2003 20:44:51 - 1.42
+++ STATUS1 Dec 2003 17:54:39 - 1.43
@@ -12,12 +12,6 @@
Available Patches:
-* given "PerlSetVar Foo 0" $r->dir_config('Foo') returns undef
- instead of zero
-Report: http://marc.theaimsgroup.com/?l=apache-modperl&m=106909301704472&w=2
-Status: fixed in 2.0, patch for 1.0 (untested) occurs late in
-the above thread
-
* if the requested number of bytes was less
than or equal to the available amount of input then the call
would be successful, otherwise the buffer would come back
cvs commit: modperl-2.0/t/response/TestAPI query.pm
stas2003/12/01 09:55:35 Modified:t/response/TestAPI query.pm Log: indent Revision ChangesPath 1.3 +1 -1 modperl-2.0/t/response/TestAPI/query.pm Index: query.pm === RCS file: /home/cvs/modperl-2.0/t/response/TestAPI/query.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -u -u -r1.2 -r1.3 --- query.pm 1 Dec 2003 17:28:36 - 1.2 +++ query.pm 1 Dec 2003 17:55:35 - 1.3 @@ -60,7 +60,7 @@ my $query = Apache::MPM->query(Apache::MPMQ_IS_THREADED); ok t_cmp(Apache::MPMQ_STATIC, -$query, + $query, "MPMQ_IS_THREADED ($mpm)"); ok t_cmp($query,
cvs commit: modperl-2.0/todo utils.txt
stas2003/12/01 11:08:46 Modified:todo utils.txt Log: mp2doc is already implemented Revision ChangesPath 1.4 +0 -9 modperl-2.0/todo/utils.txt Index: utils.txt === RCS file: /home/cvs/modperl-2.0/todo/utils.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -u -u -r1.3 -r1.4 --- utils.txt 14 Mar 2003 02:23:56 - 1.3 +++ utils.txt 1 Dec 2003 19:08:46 - 1.4 @@ -1,14 +1,5 @@ a helper tools/utils that we want/need to have: - -- perldoc won't search pods under Apache2/ unless you have a PERL5LIB - with Apache2 dirs. We could provide a custom version of modperl2doc: - - #!/usr/bin/perl - use Apache2; - use Pod::Perldoc; - exit( Pod::Perldoc->run() ); - - Changes files should be autogenerated from cvs logs. [ Ask thinks that's a really bad idea; such logs are rarely
cvs commit: modperl-2.0/todo utils.txt
stas2003/12/01 11:09:54 Modified:todo utils.txt Log: looks like we don't really want this change log autogenerator Revision ChangesPath 1.5 +0 -29 modperl-2.0/todo/utils.txt Index: utils.txt === RCS file: /home/cvs/modperl-2.0/todo/utils.txt,v retrieving revision 1.4 retrieving revision 1.5 diff -u -u -r1.4 -r1.5 --- utils.txt 1 Dec 2003 19:08:46 - 1.4 +++ utils.txt 1 Dec 2003 19:09:54 - 1.5 @@ -1,30 +1 @@ a helper tools/utils that we want/need to have: - -- Changes files should be autogenerated from cvs logs. - - [ Ask thinks that's a really bad idea; such logs are rarely -useful. Too verbose and nitty gritty detailed for their own good. -"foo->sda fixed to be foo->sdb to fix foogo bug in blah" vs "fixed -foogo bug in blah (patch from C. Ontributor)" - -I have always found the mod_perl change logs very useful and -helpful in the current format. - ] - - http://www.red-bean.com/cvs2cl/ already does that, but we have an - extra wish list: - - o \n after the list of files - - o the PR: Obtained from: Submitted by: Reviewed by: -could each be on their own line and omitted if there is no value -(e.g. none of the current modperl-2.0 changes have a PR) - - o 2001-09-08 11:00 stas -were expanded to the full name -2001-09-08 11:00 Stas Bekman - - o if we could somehow skip the Apache-Test directory, since that -ChangeLog should be in httpd-test/perl-framework - -
cvs commit: modperl-2.0/todo api.txt release
stas2003/12/01 11:11:19
Modified:todo api.txt release
Log:
move the issue to the new release file
Revision ChangesPath
1.38 +0 -2 modperl-2.0/todo/api.txt
<>
1.5 +2 -1 modperl-2.0/todo/release
Index: release
===
RCS file: /home/cvs/modperl-2.0/todo/release,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -u -r1.4 -r1.5
--- release 23 Nov 2003 08:47:29 - 1.4
+++ release 1 Dec 2003 19:11:19 - 1.5
@@ -179,6 +179,7 @@
* Apache::Reload
- needs to handle properly redefined subs warnings
-
+* Apache->unescape_url{_info}:
+ not yet implemented. should be moved to Apache::Util
cvs commit: modperl-2.0/todo features_deprecated deprecated_features.txt
stas2003/12/01 11:13:42 Added: todo features_deprecated Removed: todo deprecated_features.txt Log: rename to be consistent with other filenames Revision ChangesPath 1.1 modperl-2.0/todo/features_deprecated Index: features_deprecated === these features with either: a) never be in 2.0 b) only be in #ifdef MP_DEPRECATED c) be a form that was nothing like 1.xx (e.g. Apache::Leak) d) split off into something standalone on cpan - MaxModPerlRequestsPerChild - $r->seqno, $r->sent_header, $r->query_string, $r->basic_http_header, $r->new_read, $r->write_client, $r->read_client_block, $r->translate_name - $r->content, $r->args in-a-list-context (exist in Apache::compat) - $Apache::Server::Starting, $Apache::Server::ReStarting - modules: + Apache::SIG: dead + Apache::Symbol: unknown + Apache::Leak: could be made useful + Apache::RedirectLogFix: dead + Apache::Include: was just an example + Apache::Debug: could be make useful + Apache::FakeRequest: should be built in + Apache::httpd_conf: dead (to be replaced by new test framework) + Apache::Symdump: unknown + Apache::Opcode: was experimental, needs much attention to be useful
cvs commit: modperl-2.0/todo possible_new_features.txt
stas2003/12/01 11:15:23 Modified:todo possible_new_features.txt Log: implemented: use 5.7.1+'s PerlIO rather than tied filehandles Revision ChangesPath 1.21 +0 -2 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.20 retrieving revision 1.21 diff -u -u -r1.20 -r1.21 --- possible_new_features.txt 18 Nov 2003 21:45:18 - 1.20 +++ possible_new_features.txt 1 Dec 2003 19:15:23 - 1.21 @@ -49,8 +49,6 @@ optimization features: - -- use 5.7.1+'s PerlIO rather than tied filehandles - - copy-on-write SvPVX - hook Perl malloc into apr_pool
cvs commit: modperl-2.0/t/response/TestAPR finfo.pm
geoff 2003/12/01 11:16:51
Modified:t/response/TestAPR finfo.pm
Log:
use the more idiomatic object method $r->finfo->stat() form, rather than
passing the APR::Finfo object as the first argument to a function
Revision ChangesPath
1.6 +1 -2 modperl-2.0/t/response/TestAPR/finfo.pm
Index: finfo.pm
===
RCS file: /home/cvs/modperl-2.0/t/response/TestAPR/finfo.pm,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- finfo.pm 22 Nov 2003 21:59:21 - 1.5
+++ finfo.pm 1 Dec 2003 19:16:51 - 1.6
@@ -45,8 +45,7 @@
# stat tests
{
# populate the finfo struct first
-my $status = APR::Finfo::stat($r->finfo, $file,
- APR::FINFO_NORM, $r->pool);
+my $status = $r->finfo->stat($file, APR::FINFO_NORM, $r->pool);
ok t_cmp(APR::SUCCESS,
$status,
cvs commit: modperl-2.0 Changes
geoff 2003/12/01 11:17:41 Modified:.Changes Log: use the more idiomatic object method $r->finfo->stat() form, rather than passing the APR::Finfo object as the first argument to a function Revision ChangesPath 1.266 +1 -1 modperl-2.0/Changes Index: Changes === RCS file: /home/cvs/modperl-2.0/Changes,v retrieving revision 1.265 retrieving revision 1.266 diff -u -r1.265 -r1.266 --- Changes 1 Dec 2003 17:28:50 - 1.265 +++ Changes 1 Dec 2003 19:17:41 - 1.266 @@ -38,7 +38,7 @@ add access to $r->finfo() and related APR::Finfo methods, such as $r->finfo->size(), $r->finfo->mtime(), and -APR::Finfo::stat() [Geoffrey Young] +$r->finfo->stat() [Geoffrey Young] add :filetype import tag to APR::Const [Geoffrey Young]
cvs commit: modperl-2.0/todo possible_new_features.txt features_maybe
stas2003/12/01 11:19:11
Modified:todo possible_new_features.txt features_maybe
Log:
another reshuffle
Revision ChangesPath
1.22 +0 -123modperl-2.0/todo/possible_new_features.txt
<>
1.3 +125 -0modperl-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_maybe18 Nov 2003 21:45:18 - 1.2
+++ features_maybe1 Dec 2003 19:19:11 - 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 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=10055485881&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 direct
cvs commit: modperl-2.0/todo README api.txt filters.txt missing_old_features.txt possible_new_features.txt utils.txt
stas2003/12/01 11:21:43 Modified:todo README Removed: .ROADMAP todo api.txt filters.txt missing_old_features.txt possible_new_features.txt utils.txt Log: complete the re-org of the todo issues Revision ChangesPath 1.6 +7 -1 modperl-2.0/todo/README Index: README === RCS file: /home/cvs/modperl-2.0/todo/README,v retrieving revision 1.5 retrieving revision 1.6 diff -u -u -r1.5 -r1.6 --- README18 Nov 2003 21:45:18 - 1.5 +++ README1 Dec 2003 19:21:43 - 1.6 @@ -1 +1,7 @@ -this directory contains notes on whats left to be done \ No newline at end of file +this directory contains notes on whats left to be done: + +release- showstopper issues for mod_perl 2.0 release + +features_* - + +bugs_* - \ No newline at end of file
cvs commit: modperl-2.0/todo features_maybe
stas2003/12/01 11:48:23 Modified:todo features_maybe Log: log the status of PerlModule speedup Revision ChangesPath 1.4 +4 -1 modperl-2.0/todo/features_maybe Index: features_maybe === RCS file: /home/cvs/modperl-2.0/todo/features_maybe,v retrieving revision 1.3 retrieving revision 1.4 diff -u -u -r1.3 -r1.4 --- features_maybe1 Dec 2003 19:19:11 - 1.3 +++ features_maybe1 Dec 2003 19:48:22 - 1.4 @@ -67,7 +67,10 @@ - PerlModule can be made more efficient using Perl_load_module - + Status: it's possible to implement, but currently there is no way to + prevent from Perl logging the loading error messages to the + console + http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2003-03/msg00319.html perl language features: --
