The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
=head1 ACKNOWLEDGEMENTS

Extra Thanks to:

Andreas Koenig <andreas.koenig@franz.ww.tu-berlin.de>
for *lots* of bug spotting, fixing and patching, 
Apache::Registry and CGI.pm overhaul efforts (aka CGI::XA & CGI::Switch)

Gisle Aas <aas@sn.no>
For getting this effort started

Other contributors are mentioned below:

=item 0.83_06

brought back Makefile.tmpl for current public release

added src/modules/perl/ldopts script, rather than using 'make ldopts'

INSTALL doc fix so 1.1.1 users define RANLIB
 
MODULE_MAGIC_NUMBER fix so we still build with 1.1.1
 
no longer pstrdup when fetching r->args

dropped undocumented SKIP_AUTH_HEADER thingy

=item 0.83_05

added missing Makefile to src/modules/perl/

turned off PERL_TRACE, oops

moved SERVER_VERSION from Apache.xs to Constants.xs

applied another doc patch to Apache.pm from Gisle

=item 0.83_04

updated INSTALL and UsersGuide documents

misc cleanup here and there

Apache::Options is now just a stub that imports from Apache::Constants

updated Apache.pm and Apache::Constants documentation

added Apache::AuthzAge and Apache::AccessLimitNum modules

added $r->requires and $r->is_main, and $r->main methods

added callback hooks for authorization, access, type-check, 
fixup and logger stages of the request

callback hooks can now be turned off at compile time with 
-DNO_PERL_...., and are turned off by default, except for the
handler stage (PerlHandler) 

reworked installation procedure to follow apache 1.2 recomendations, 
the procedure will still work with older versions of apache.
No more Makefile.tmpl.x.x.x mess!!

updated #if MODULE_MAGIC_NUMBERS >='s so we're inline with apache 1.2-dev-19961009130008

=item 0.83_03

Perl*Handler's are now called with Apache->request as an argument
PerlHandler's may still ask for Apache->request so existing code and
mechanisms such as Apache::Registry will continue to work
However, other handlers such as PerlAuthenHandler and PerlTransHandler,
cannot use Apache->request.

added Apache::Constants module, based on patch to Apache.xs 
from Gisle

updated Apache::Debug with patch from Gisle to 
- update the status codes from the latest
  HTTP::Status and produce a prettier and more output.

- We also ensure that we do not generate output for HEAD requests and we
  set up status correctly.

updated Apache.pm and Apache::Options docs, thanks to Gisle

fixed PerlScript bug spotted by Gisle

renamed Apache::Msql to Apache::MsqlProxy

=item 0.83_02

bug patch to Apache::Registry from Andreas

=item 0.83_01

minor clean-up

fixed port and query_string related bugs in Apache::Msql example

applied patch from Salvador Garcia <sortiz@cfe.gob.mx> to fix PerlTransHandler bugs
spotted by Hugues Lafarge <Hugues.Lafarge@afp.com>

applied Apache::Registry patch from Andreas  
- allows filanames to start with a digit (you probably saw a "bad
  symbol after ::" error)

- strips path_info before deciding which package the script is compiled
  into.

=head1 *developer's release* release 0.83 - September 12, 1996

added Apache::Msql module

added $r->handler method

added $r->proxyreq method

added PerlTransHandler directive

minor clean-up

=head1 *developer's test* release 0.82 - September 11, 1996

added Apache::Authen and Apache::AuthenDBI modules

added $r->get_basic_auth_pw method

added $r->note_basic_auth_failure method

added PerlAuthHandler directive

added $r->dir_config method 

added PerlSetVar directive

we now have mod_perl.h

fix for using mod_perl_fast with Apache-SSL

=head1 release 0.81 - September 08, 1996

added Apache::CGI->exit method as suggested by Andreas

items needed for 1.2 are now conditional using MODULE_MAGIC_NUMBER

included Makefile.tmpl.1.2  

=head1 release 0.80 - September 06, 1996

fix so we can send $strings of binary data to the client

fix so we can log bytes sent

added Andreas' CGI::XA kit for users of CGI.pm + mod_perl_fast

added PerlSetupEnv directive

added PerlSendHeader directive 

we now take advantage of Perl's new IO abstraction so STDIN and 
STDOUT are hooked up to the client.
Thanks to Sven Verdoolaege <skimo@breughel.ufsia.ac.be> for the
initial patch

added $r->connection->close method

added $r->exit method

applied patch from Rob Hartill <robh@imdb.com> so read_client_block
works with apache-1.2 changes

updated UsersGuide to suggest using configuration that does not
require patching mod_alias.c, thanks to Rob Hartill <robh@imdb.com> 

added $r->method_number method

$r->method() now accepts an argument to change the request method 
(for things like internal re-directs)

added send_cgi_header method

added internal_redirect_handler method

applied NeXT fix from Andreas

applied patch from Andreas to fix eval error line number 
in Apache::Registry

changed Changes file so it can be read with 'perldoc Changes'

=head1 release 0.76b2 - August 16, 1996

updated Apache::CGI, now requires CGI.pm 2.22+

#undef pregcomp to fix namespace clash with Apache 1.2

added (placeholder for) PerlSetVar directive (need to think about it some more)

applied patch from Andreas Koenig <andreas.koenig@franz.ww.tu-berlin.de>
to fix bug introduced with perl5.003_01 + IRIX combo

=head1 release 0.76b1 - July 26, 1996

included Sven Verdoolaege's (experimental) patch for minimal TIEHANDLE
support, so we can tie *STDOUT, 'print' instead of '$r->print' that is.

added (experimental) Apache::TieHandle module

included Chip Salzenberg's FileHandle.pm patch

added UsersGuide document

if no PerlHandler is defined we fail with a SERVER_ERROR

Apache::Registry now checks to make sure uri is not a directory

applied Apache::Registry patch from Andreas for minor clean-up 
and an extra error check

=head1 release 0.75a1 - July 21, 1996

added Apache::Registry module contributed by 
Andreas Koenig <andreas.koenig@franz.ww.tu-berlin.de>

Apache::SSI now checks ExecCGI option before doing an 'exec'

included patch for mod_alias.c to allow for PerlAlias directive

added allow_options and is_perlaliased methods to Apache.pm

added Apache::Options module

added Apache::Debug module

applied patch from Andreas Koenig <andreas.koenig@franz.ww.tu-berlin.de> to
-fake up a PerlScript if one is not specified
-ITERATE over PerlModule directive so it will accept multiple modules
-no longer store request_rec in $Apache::Request
we now require ExtUtils::Embed as it has been re-named for
the standard perl distribution as of 5.003_01


=head1 release 0.71b1 - July 19, 1996

added PERL_CCFLAGS to Makefile.tmpl as suggested by 
Lincoln Stein <lstein@genome.wi.mit.edu>

subroutines no longer need to return '0' for OK status, 200 and 1 
are 'OK' too.

added 'PerlHandler' as replacement for 'PerlResponse',
seems like a more appropriate name after Salvador's 
'AddHandler' suggestion

added item to the handler_rec so we can say 'AddHandler'
Thanks to Salvador Garcia <sortiz@cfe.gob.mx>

fixed bug with storing 'PerlModule's read from srm.conf
Thanks to Salvador Garcia <sortiz@cfe.gob.mx> for the spot and helping with the fix
more Makefile.tmpl fixes from Andreas Koenig <andreas.koenig@franz.ww.tu-berlin.de>

=head1 release 0.70b1 - July 14, 1996

applied patches from Andreas Koenig <andreas.koenig@franz.ww.tu-berlin.de>
to fix Makefile.tmpl bug, NeXT define troubles, 
typos and documentation clean-up

Added Apache::SSI module for server side includes

Added 'PerlModule' directive for loading modules in srm.conf

fixed read_client_block bug that was causing trailing garbage to show up
n the client for some people. 
Thanks to Alan Beale <agb@openplus.co.uk> for the fix.


=head1 release 0.60a5 - June 25, 1996

fixed bug in mod_perl_fast that was causing bizarre problems for some people

=head1 release 0.60a4 - June 18, 1996

dropped content and args methods from Apache.xs, moved to Apache.pm
The xs implementation was causing problems for some people

added Apache::unescape_url function

added $r->header_in method


=head1 release 0.60a3 - June 17, 1996

Added read() alias for read_client_block

Updated Makefile.tmpl to use the renamed ExtUtils::embed

Fixed various small bugs that were causing big problems

pid $$ now set in mod_perl_fast, thanks to Alan Beale <agb@openplus.co.uk>

Added basic_http_header() method 


=head1 release 0.60a2 - May 21, 1996

fixed bug in mod_perl_fast.c the caused problems with 
$r->content and $r->args

Added Apache::CGI module for those who use CGI.pm

There's now a Makefile.PL (currently for installing perl-only modules).


=head1 release 0.60a1 - May 18, 1996

Started getting ready for optional Safe wrapper around scripts

Added $r->get_remote_host() method, putting $r->connection->remote_host back to normal

=head1 release 0.50a2 - May 9, 1996

new (faster) approach with mod_perl_fast
Thanks to John Detloff <detloff@arizona.edu> 
for friendly error checking code.

we now use an Apache.pm file

moved more code from mod_perl to Apache.xs so mod_perl_fast could share it

rganized Apache.xs

fixed $r->connection->remote_host 

hiding of 'Authorization' header is optional now

added 'print' alias to 'write_client'

dropped set_ prefix for several methods

=head1 release 0.50a1 - May 1, 1996

xs_init now gets linked with us, as generated by Devel::embed
so we can bootstrap static extensions (including Apache)

stomped out *main:: variables, moved to Apache.xs as methods

added method 'request' to return the request pointer object
And did a typedef request_rec * Apache
so we don't need to say @request_recPtr::ISA = 'Apache'; anymore

added method 'write_client' for sending a @list of data to the client

added methods that simply access members of request_rec
-method
-uri
-protocol
-path_info
-filename 

added method 'args'
when called in a scalar context, it returns the query string
when called in a list context, it splits the query_string into key => vairs

moved parsing code to Apache.xs, and now data is only read when the user
asks for it with the content() method.

added method 'content'
when called in a scalar context, it reads data from the client
when called in a list context, it splits the content into key => vairs

added method 'headers_in' to return a %hash of request headers
the 'Authentication' header is not returned

added perl_call_argv to Apache->bootstrap ourselves

we now flush the script's %ENV
users can set-up a standard CGI %ENV via method $r->cgi_vars

the script's STDERR in now redirected to the error_log

added client_to_stdout and client_to_stdin methods to
hookup the script's STDOUT and STDIN
** This is broken right now **

added method 'connection' and Apache::Connection class
returns a object reference to the request_rec's conn_rec
methods availible include:
- remote_host
- remote_ip
- remote_logname
- remote_user
- auth_type

added method 'server' and Apache::Server class
returns a object reference to the request_rec's server_rec
methods availible include:

- server_admin
- server_host
- port

Changes for Apache 1.1x
-rprintf to bputs, etc.


=head1 March ?? 1996

Initial version of mod_perl.c and perl_glue.xs
by Gisle Aas <aas@oslonett.no>
Thanks for getting this started Gisle!