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

Reply via email to