<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html>
  <head>
    <title>mod_dtcl News & Status</title>
    <link rel="stylesheet" href="../style.css">
  </head>
  <body>
    
	<table align="center" width="63%" border="0">
	<tr>
	<td align="center" valign="top">
	<h1 style="padding: .3em;">
    
mod_dtcl

	</h1>
	</td>
	</tr>
	</table>
	<hr>
    


    <table class="main">
	<tr>
	    <td bgcolor="#cccccc" valign="top" align="left">
    <b>
      <div class="box">
      <a href="../">Apache Tcl Home</a>
      </div><div class="box">
      <hr></hr>
      </div><div class="box">
      <a href="index.html">mod_dtcl Home</a>
      </div><div class="box">
      <a href="documentation/">mod_dtcl documentation</a>
      </div><div class="box">
      <a href="examples.html">mod_dtcl examples</a>
      </div><div class="box">
      <a href="download.html">Download mod_dtcl</a>
      </div><div class="box">
      <a href="news.html">News &amp; Status</a>
      </div><div class="box">
      <a href="contributing.html">Contributing</a>
      </div><div class="box">
      <a href="contact.html">Contact/Mailing list</a>
      </div><div class="box">
      <a href="credits.html">Credits</a>
      </div>
  </td>


	  <td valign="top">
	    <h2>News & Status</h2>

	    <p>
	      <b>August 13, 2002</b> <a href="../rivet/">Apache
	      Rivet</a> is now on the Apache Tcl site.  mod_dtcl will
	      at some point be phased out in favor of Rivet.
	    </p>

	    <p>
	      <b>January 29, 2002:</b> The Apache Tcl mailing list
	      archives are now available from: <a
	      href="http://www.apachelabs.org">www.apachelabs.org</a>.
	      Thanks to Justin Erenkrantz!
	    </p>

	    <p>
	      <b>December 9, 2001:</b> Added mod_dtcl and tcl <a
	      href="/presentations/">presentations</a>.
	    </p>

	    <p>
	      <b>November 26, 2001:</b> The mailing list archives can
	      be found at <a
	      href="http://marc.theaimsgroup.com/?l=apache-moddtcl&r=1&w=2">marc.theaimsgroup.com</a>.
	      Hopefully the ASF will create a solution for all ASF
	      project mailing lists.
	    </p>

	    <p>
	      <b>Noverber 3, 2001:</b> mod_dtcl 0.11.5 release -
	      Small content-type bug fixed.
	    </p>

	    <p>
	      <b>October 15, 2001:</b> mod_dtcl 0.11.4 release -
	      Parse bug fixed, windows makefile updates, Debian script updates.
	    </p>

	    <p>
	      <b>October 10, 2001:</b> mod_dtcl 0.11.3 release -
	      updates are mainly relevant to internationalization.
	    </p>

	    <p>
	      <b>August 30, 2001:</b> mod_dtcl 0.11.2 has been
	      released, without any major changes.
	    </p>

	    <p>
	      <b>August 4, 2001:</b> New documentation is available on
	      line - check out the documentation link.  In addition, a
	      new version of mod_dtcl is out.
	    </p>

	    <p>
	      <b>March 18, 2001:</b> mod_dtcl version 0.10.0 has been released!
	    </p>

	    <p>
	      <b>December 24, 2000</b> Mailing list archives for
	      mod_dtcl are available here: <a
	      href="http://archive.covalent.net/">http://archive.covalent.net/</a>,
	      at the bottom of the page.
	    </p>


	    <p>
	      <b>December 8, 2000:</b> The mod_dtcl code in CVS has
	      file upload capabilities, as well as support for
	      per-virtual-server Tcl interpreters.
	    </p>

	    <p>
	      <b>December 8, 2000:</b> tcl.apache.org is now linked
	      from the Apache site!
	    </p>

	    <p>
	      <b>November 10, 2000:</b> mod_dtcl is released as an official
	      Apache Software Foundation project under the umbrella of
	      Apache Tcl.
	    </p>

	  </td>
	</tr>
    </table>
    
	<table align="center" width="100%">
	<tr>
	<td align="left">
	<a href="http://www.apache.org/"><img src="/apache_pb.gif"
	alt="Powered by Apache" border="0"
	width="259"
	height="32"></a>
	</td>
	<td align="right">
	<a href="http://www.tcl.tk/"><img src="/tclp.gif"
	alt="Powered by Tcl" border="0"
	width="42"
	height="64"></a>
	</td>
	</tr>
	</table>
    

  </body>
</html>
