Tod Harter wrote: > Tom Schindl wrote: > > Tom, I've been doing some pretty heavy mod_perl work on Apache2... > > 1) The API, while useable is still pretty buggery. The main > problem is that unless you have a certain exact mod_perl version, > things tend to blow up, which makes it a real PITA to code for, > IE 1.99_17 has certain bugs, 1.99_15 has different bugs/deficiencies, > not unusual but its especially pronounced in mod_perl 1.99xx. To get > my stuff working I've found over 50% of the code is version/ > regression hacks and certain parts of the system are still REALLY > rough.
I sat in at a number of mod_perl sessions at ApacheCon this past week. According to Geoffrey Young and Phillipe Chaisson mod_perl 2.0 has no pending feature additions, and only 6 or 7 outstanding bugs to resolve. Geoffrey would only say "Real soon now", but Phillipe gave a "before year end" estimate on when mod_perl would be released. If you know of bugs or difficiencies now would be the time to share them... ;-) > 2) The most rough part is config, which is one thing AxKit always > did really nicely, so it looks like to build in configuration > capabilities equivalent to AxKit 1.6 has on 2.x Apache is still > not possible as of 1.99_17, at least not in perl. Perhaps I'm missing something, but building configuration directives for Perl modules in mod_perl 2.0 looked really really easy. Check out Geoffrey Young's "mod_perl 2.0 at warp speed" slides 13+ at: http://www.modperlcookbook.org/~geoff/slides/ApacheCon/2004/mp2-warp.pdf Or the Apache Server Configuration Customization in Perl docs at: http://perl.apache.org/docs/2.0/user/config/custom.html Or for a short example: package My::Directive; use Apache::Module (); use Apache::Const -compile => qw(FLAG RSRC_CONF); use Apache::RequestRec (); use Apache::ServerRec (); my @directives = ({ name => 'Widget', req_override => Apache::RSRC_CONF, args_how => Apache::FLAG }); Apache::Module::add(__PACKAGE__, [EMAIL PROTECTED]); sub Widget { my ($cfg, $parms, $arg) = @_; $cfg->{widget} = $arg; } sub handler { my $r = shift; my $cfg = Apache::Module::get_config(__PACKAGE__, $r->server, $r->per_dir_config); my $widget = $cfg->{widget}; ... } > Currently It uses the streaming filter interface, but I THINK if > I understand bucket brigades correctly you SHOULD be able to chain > several of these together and brigade the DOM from one to the next > without serializing. Or if that isn't possible then I guess there's > always 'pnotes' :). That would increase efficiency greatly in > real-world scenarios. The documentation I've seen on bucket brigades is all in the context of input and output filters operating on a individual chunks (buckets) in the stream of data (brigades). -- Garrett Goebel IS Development Specialist ScriptPro Direct: 913.403.5261 5828 Reeds Road Main: 913.384.1008 Mission, KS 66202 Fax: 913.384.2180 www.scriptpro.com garrett at scriptpro dot com