pereinar 2002/10/14 22:58:47
Modified: src/about config.cfg
Added: src/about history.pod
Log:
Added history file (not finished)
Revision Changes Path
1.8 +2 -1 modperl-docs/src/about/config.cfg
Index: config.cfg
===================================================================
RCS file: /home/cvs/modperl-docs/src/about/config.cfg,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- config.cfg 22 Jul 2002 17:23:10 -0000 1.7
+++ config.cfg 15 Oct 2002 05:58:47 -0000 1.8
@@ -9,10 +9,11 @@
General information regarding mod_perl of historical interest.
EOB
- group => 'People Behind mod_perl',
+ group => 'Development',
chapters => [qw(
contributors/people.html
contributors/other.pod
+ history.pod
)],
group => 'Link to This Site',
1.1 modperl-docs/src/about/history.pod
Index: history.pod
===================================================================
=head1 NAME
History
=head1 Description
Since mod_perl's inception in 1996, many things have changed, and it's
interesting to look at mod_perl's evolution and related events during
the time from then to now.
Based on the mod_perl I<Changes> file and talks with mod_perl
developer's, we have here reconstructed the important steps in the
development of this successful Open Source project.
=head1 Beginnings
The first version of mod_perl was written by Gisle Aas and released on
March 25, 1996. The effort was instantly recognized by Doug MacEachern
and Andreas Koenig; the former had been working on Perl
embedding. They picked up the torch and brought the project we all
love to what it has become today, thanks to the help of countless
contributors.
An extract from I<Changes> (the first one):
=item March 25, 1996
Initial version of mod_perl.c and perl_glue.xs
by Gisle Aas <aas (at) oslonett.no>
Thanks for getting this started Gisle!
Andreas Koenig tells us about how things happened:
"It was a time when FastCGI was still considered cool. But making
FastCGI work required a patched perl, since tied file handles were
still in their infancy.
"PHP was also around already, and was an embarrassing witness to Perl's
greatest weakness for server-side programming: that embedding Perl was
a pain. Although the hooks were there for embedding Perl, they were
both undocumented and buggy.
"Doug MacEachern first got involved by addressing these problems. He
wrote documentation for embedding Perl (the C<perlembed> manpage) and
fixed a couple of bugs. Then one day, Gisle Aas posted on
perl5-porters that he had built Apache with an embedded Perl
interpreter as a proof-of-concept. However, Gisle lacked the time for
further work.
"That announcement was like a lightening bolt for at least two guys:
Doug and me. While Doug shuffled the C code, I wrote the first working
I<Makefile.PL>, or at least I smoothed the build process to reduce the
error rate resulting from silly mistakes during installation. Doug was
working on HP-UX and I was using IRIX, so Doug wrote
C<ExtUtils::Embed> to generate the command line arguments for I<gcc>
that tie things together for embedded applications.
"Early versions of mod_perl needed to be recompiled to add a single
CGI application. To get over that, I invented something without a name
that mapped filenames to perl package names. When Doug received it, he
called it C<Apache::Registry>, as noted in I<Changes>:
=item release 0.75a1 - July 21, 1996
added Apache::Registry module contributed by
Andreas Koenig <andreas.koenig (at) franz.ww.tu-berlin.de>
"From that moment in July 1996, we could count on a number of
interested developers on the mailing list to test the nacent mod_perl.
The I<Changes> file mentions a few of them: Salvador Ortiz, Alan
Beale, and John Detloff. Rob Hartill of IMDB fame joined us in
July. (See L<contributors|about::contributors::people> for more
information.)
In August 1996, time was ripe to let a production server run mod_perl,
and PAUSE (the Perl Authors Upload Server) was the first such
server. We still had to use C<$r-E<gt>print>, and couldn't C<"use
CGI">, but we could add and remove scripts without recompiling and we
were happy. Being unable to use the popular C<CGI.pm> module turned
out to be a pain for us, so I wrote a complete C<CGI.pm> clone,
C<CGI::XA> and hoped that Lincoln would pick up the ball once there
was a working alternative implementation. Eventually, Lincoln (with
the encouragement of Mike Stok) made C<CGI.pm> compatible with
mod_perl starting with C<CGI.pm> 2.32, and in March 1997, C<CGI::XA>
was removed from the mod_perl distribution. This was one of the most
important entries into the Changes file:
=item 0.95 - 03/20/97
******************************************
*** CGI-XA/* removed from distribution ***
CGI.pm-2.32 is now mod_perl compatible, and
now ships with CGI::Switch and CGI::Apache.
******************************************
Can you feel the relief it was for Doug to write that? I think this
was the greatest day of the whole development. One year of very tough
work got the reward it deserved.
After that, mod_perl started to get attention from an increasing
number of users. Doug worked like mad on fixing bugs and inventing one
thing after another, just as he still does today. Things started
flowing and people sent in patches, so Doug got the impression that
the bazaar model was beginning to work. (From Eric Raymond's essay
"The Cathedral and the Bazaar," the unofficial manifesto of the Open
Source movement.)
I remember one day Doug got a confidential message from a Sun
employee. They had made an investigation on "where the web is
heading", and they had come to the conclusion that "mod_perl will have
an impact on the whole Web"."
=head1 Up to 1.0
The first public release after Gisle's proof-of-concept happened on
May 1, 1996: release 0.50a1 of mod_perl, with a long list of changes.
In 0.50a2, an alternative implementation was provided, mod_perl_fast,
which became the standard in 0.83_10.
Another probably important change was the possibility of using
C<print> instead of C<$r-E<gt>print>, greatly facilitating output
generation:
=item release 0.80 - September 06, 1996
[...]
we now take advantage of Perl's new IO abstraction so STDIN and
STDOUT are hooked up to the client.
Thanks to Sven Verdoolaege <[EMAIL PROTECTED]> for the
initial patch
With 0.85 came the start of the test suite!
=item 0.85
added the start of a mod_perl test suite
Another interesting feature was added just before 1.0: stacked
handlers!
=item 0.95_02
introduced experimental "stacked handlers" mechanism, allowing more
than one Perl*Handler to be defined and run during each stage of the
request.
Perl*Handler directives can now define any number of subroutines, e.g.
PerlTransHandler OneTrans TwoTrans RedTrans BlueTrans
with a new method, Apache->push_handlers can add to the stack by
scripts at runtime
And just after that, our beloved C<E<lt>PerlE<gt>> sections!
=item 0.95_03
[...]
added <Perl> config section (see httpd.conf.pl)
(needs 'perl Makefile.PL PERL_SECTIONS=1')
Finally, more than one year after Doug's original 0.50a1, 1.0 was
released on July 28 1997:
=item 1.00 - 07/28/97
It primarily began adapting to the 1.3 series of Apache.
=head1 1.x development
=head2 Core
During 1.x development, there has generally been many bugfixes and
adaptions to Apache and Perl versions, striving to remain
compatible. Some parts stand out as pretty important.
In v1.12, the important APACI-support was added thanks to Ralf
S. Engelschall:
=item 1.12 - June 14, 1998
added new (but still optional!) Apache 1.3 support via the new Apache
Autoconf-style Interface (APACI): The option USE_APACI=1 triggers a new
build-environment (from local apaci/) for the APACHE_SRC/src/modules/perl/
which provides a clean way (i.e. without patching anything inside
APACHE_SRC,
not even the Configuration file) of configuring mod_perl via a
APACHE_SRC/src/modules/perl/mod_perl.config file. The completey
configuration
is enabled by just using the APACI command "configure
--activate-module=src/modules/perl/libperl.a"
[Ralf S. Engelschall <[EMAIL PROTECTED]>]
And with new versions of Perl come new fixes to mod_perl of course.
=item 1.22 - March 22, 2000
compile fixes for 5.6 + -Duse5005threads
[Lincoln Stein <[EMAIL PROTECTED]>]
But the most important happenings weren't the bugfixes in the mod_perl
core, but all that happened around it. The L<usage
statistics|outstanding::stats::netcraft> show an incredible boom in
mod_perl deployment, which has been accompanied by the release of very
interesting applications and frameworks for mod_perl.
=head2 Related events
Maybe even more interesting are the things happening around mod_perl,
mainly concerning Perl and Apache. The reason is that this impacts as
much on mod_perl users as the changes to mod_perl itself; for example,
a bug fix in Perl will help a lot to someone writing Perl handlers,
and a security fix in Apache is of immense benefit to I<anyone>
running an Apache server.
I<Writing Apache Modules with Perl and C> (http://www.modperl.com/),
by Lincoln Stein and Doug MacEachern, for a long time considered the
best resource for mod_perl programmers, was published in March 1999 by
O'Reilly & Associates. While not the only book on the subject, it is
still a must-have for any serious mod_perl programmer.
In March 2000, Perl 5.6.0 was released, bringing many new features to
Perl and mod_perl programmers the world over.
In October 2000, Take23 (http://www.take23.org/) was created as an
alternative site for mod_perl, because of the back-and-forth
discussions about re-designing the I<perl.apache.org> site weren't
going anywhere at that time. It collected news and articles about
mod_perl and also related issues such as other interesting Apache
modules.
The I<mod_perl Pocket Reference>
(http://www.oreilly.com/catalog/modperlpr/), by Andrew Ford, was
published by O'Reilly and Associates in December 2000. It summarizes
the whole mod_perl API as well as configuration directives and some
other tips in an easy-to-use format.
In January 2002, the I<mod_perl Developer's Cookbook>
(http://www.modperlcookbook.org/), authored by Geoffrey Young, Paul
Lindner and Randy Kobes, was published by Sams Publishing. It presents
the mod_perl API by example, teaching a programmer all the facets of
mod_perl installation, programming and configuration, and is a
valuable resource to everyone.
META:
- mailing list creations
- beginnings of new site
- conferences w/ mod_perl present
- when Doug and Stas funded? Stas: August 2001; end 2002
- digest started?
=head1 The arrival of 2.0
...
=head1 Future directions for mod_perl
mod_perl has clearly shown its strength as an Open Source project and
application development platform. mod_perl 2.0 has been a jump
forward, but with the arrival of Perl 6 we might expect another new
version of mod_perl. If the developers are still interested, that
is. There has been started development on mod_parrot
(http://cvs.perl.org/cvsweb/mod_parrot/), but Perl 6 is far from
ready, so we don't really know what will be needed. The future hold
great things for us.
I will quote Stas Bekman's commentary in the L<contributors
list|about::contributors::people/stas-bekman>:
I<"He is now thinking about mod_perl 3.0's architecture, hopefully to
be implemented solely with AND and OR gates, driven by the Perl 6.0
chipset for the best performance. Don't be surprised when you get
offered a shiny Bluetooth mod_perl 3.0 PCI card when you shop for your
new server machine.">
Who knows?
=head1 See Also
=over
=item *
CPAST: Comprehensive Perl Arcana Society Tapestry,
http://history.perl.org/
=item *
About the Apache HTTP Server Project,
http://httpd.apache.org/ABOUT_APACHE.html
=item *
The I<perlhist> manpage, containing records of all perl versions, and
the I<perl*delta> manpages relating changes in the respective
versions.
=back
=head1 Maintainers
The maintainer is the person you should contact with updates,
corrections and patches.
=over
=item *
Per Einar Ellefsen E<lt>pereinar (at) oslo.online.noE<gt>
=back
=head1 Authors
=over
=item *
Per Einar Ellefsen E<lt>pereinar (at) oslo.online.noE<gt>
=back
Only the major authors are listed above. For contributors see the
Changes file.
=cut
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]