Changes in 1.0d7
--------------------------------------------------------------------------------
- Fixed <Tcl>...</Tcl>, these should be placed outside of <Directory>/<Location> directives.  Everything in <Tcl>...</Tcl> is added to a global variable and then made local to the namespace of the file, this is due to several problems with handling configuration, mainly that exection would either result in a "this directive doesn't belong here" or a problem with the configuration not being built yet as in an EXEC_ON_READ.
- Fixed a bug in ap_create_environment.

Changes in 1.0d6
--------------------------------------------------------------------------------

- ap_send_http_header no longer does anything so the command just returns TCL_OK which essentially makes it null, I'll probably get rid of it later.
- made changes in league with Apache 2.0.14.  Handlers were moved around etc.

Changes in 1.0d5
--------------------------------------------------------------------------------

- Configuration checks for mmap() and will use malloc(),read(),free() in that order to replace mmap() procedures.
- Constants and commands are now placed in the ::apache namespace, so you must import that namespace into your scripts.
- A test script is included with the distribution for testing and example purposes.  test_script.tm

TODO
--------------------------------------------------------------------------------

1. Add configuration documentation to README, add documentation regarding `r' and `r_set' commands.
DONE 2. Possible addition of option to build shared object (.so) library.  (It appears Apache 2.0 has a configuration directive for this --enable-shared, but it appears to be not implemented yet...).
3. A couple of hooks are broken (Apache bug?) the DECLINE causes the server to exit on signal 11 (SEGV).
4. Add non-standard hooks?
5. Add filters?
6. libapreq (doesn't appear to be ported to 2.0 completley yet...)
7. Decide what goals need to be acheived for release 1.0
8. Make necessary changes along with Apache 2.0 revisions.

Map
--------------------------------------------------------------------------------

- 1.0d0 -| Inital port from mod_tcl* 0.26, single file split into 4
         | (Apache 2.0a9)
         |
- 1.0d1 -| removal of nasties, update of configuration
         |
- 1.0d2 -| addition of some API commands
         |
- 1.0d3 -| more of API exposed, new config option, inital checkin to CVS
         |
- 1.0d4 -| Documentation, 99% of API exposed
         |
- 1.0d5 -| constants commands in ::apache namespace, mmap checking, test
         | script
         |
- 1.0d6 -| ap_send_http_header deprecated, updated to be peachy with
         | Apache 2.0.14
         |
% 1.0d7 %| we're still here, just a pre-release
         |
- 1.0d8 -|
         |
- 1.0d9 -|
         |
- 1.0.0 -|
