I have uploaded tclhttpd3.0.0.tar.gz, tclhttpd300.zip,
tclhttpd3.0.0-dist.tar.gz, and tclhttpd300dist.zip
To ftp://ftp.scriptics.com/pub/tcl/httpd

The TclHttpd home page is http://dev.scriptics.com/software/tclhttpd/

The 3.0 release features support for threads and for SSL.
Both of these features require C extensions.  Threading
requires the Thread 2.0 package, which is bundled in the
"3.0.0-dist" distributions.  SSL and https require Matt Newman's
TLS extension, which you can get from
http://www.sensus.org/tcl/
TLS, in turn, depends on either OpenSSL or RSAREF - you are on
your own to get those.

The code base now depends on the Standard Tcl Library.  Version 0.4
of tcllib is included in the "3.0.0-dist" bundles.  You can use most
of tcllib with any Tcl 8 version, but there are probably also uses of
the new Tcl commands that have crept into 8.2 and 8.3.  If
using older versions of Tcl is important
to you, you can probably port TclLib as far back as Tcl 8.0 easily.

TclHttpd uses these modules from TclLib:
base64  For encode/decode
cmdline Replaces the use of the opt package
ncgi    A module to manage CGI values.  Code that uses ncgi can run either in
        a CGI environment or directly embedded into .tml template pages.
html    A module to generate HTML fragments.

If you use the older form:: interface from TclHttpd, you will see that it
has evolved into the html:: TclLib module.  Also, the use of ncgi:: is meant
to replace direct accesses to the global page(query) variable, although this
variable still exists for compatibility with older sites.

The bundled distribution includes Tcl 8.3.1, which is the only official
supported Tcl release for TclHttpd 3.0.0. I've just done quick tests
on Tcl 8.2 and Tcl 8.0.  8.2 was OK, but I bumped into "string equal"
when running Tcl 8.0.

The Thread 2.0 extension depends on new C apis that were introduced
in Tcl 8.3.1.  The threading work is OK, but not as nice as it will
be when Tcl 8.4 adds the ability to pass sockets between threads.
Currently there is an extra copy made of the data instead of passing
the socket channel.  The decision to use threads is made at the Domain level.
Url_PrefixInstall takes an argument that indicates if that URL domain
should be handled in a thread.  Running in a thread is mostly transparent,
If you have custom domain code that uses the standard Httpd_* functions
to service the request, your code should move to 3.0 without any problems.

Let me know how useful the bundled distribution is, and whether or not
the build scripts worked for you.  You'll be seeing more bundled releases,
and I'd like to make them as easy to use as possible.

--      Brent Welch     <[EMAIL PROTECTED]>
        http://www.scriptics.com
        Scriptics: The Tcl Platform Company


Reply via email to