You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rivet-dev@tcl.apache.org by da...@apache.org on 2003/11/27 10:57:55 UTC

cvs commit: tcl-rivet/doc/html index.en.html internals.en.html upgrading.en.html

davidw      2003/11/27 01:57:55

  Modified:    .        ChangeLog
               doc      rivet.xml
               doc/html index.en.html internals.en.html upgrading.en.html
  Log:
  * doc/rivet.xml: Added information about debugging Apache/Rivet.
  
  Revision  Changes    Path
  1.146     +4 -0      tcl-rivet/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/ChangeLog,v
  retrieving revision 1.145
  retrieving revision 1.146
  diff -u -r1.145 -r1.146
  --- ChangeLog	20 Nov 2003 10:51:13 -0000	1.145
  +++ ChangeLog	27 Nov 2003 09:57:55 -0000	1.146
  @@ -1,3 +1,7 @@
  +2003-11-27  David N. Welton  <da...@dedasys.com>
  +
  +	* doc/rivet.xml: Added information about debugging Apache/Rivet.
  +
   2003-11-20  David N. Welton  <da...@dedasys.com>
   
   	* src/make.tcl: Changed xsltproc lines to deal with new link
  
  
  
  1.36      +79 -2     tcl-rivet/doc/rivet.xml
  
  Index: rivet.xml
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/doc/rivet.xml,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- rivet.xml	20 Nov 2003 10:51:13 -0000	1.35
  +++ rivet.xml	27 Nov 2003 09:57:55 -0000	1.36
  @@ -1590,6 +1590,83 @@
   	feature can significantly improve performance.
         </para>
       </section>
  +
  +    <section>
  +      <title>Debugging Rivet and Apache</title>
  +      <para>
  +	If you are interested in hacking on Rivet, you're welcome to
  +	contribute!  Invariably, when working with code, things go
  +	wrong, and it's necessary to do some debugging.  In a server
  +	environment like Apache, it can be a bit more difficult to
  +	find the right way to do this.  Here are some techniques to
  +	try.
  +      </para>
  +      <para>
  +	The first thing you should know is that Apache can be launched
  +	as a <emphasis>single process</emphasis> with the
  +	<option>-X</option> argument:</para>
  +      <programlisting>httpd -X</programlisting>.
  +      <para>
  +	On Linux, one of the first things to try is the system call
  +	tracer, <command>strace</command>.  You don't even have to
  +	recompile Rivet or Apache for this to work.
  +      </para>
  +
  +      <programlisting>strace -o /tmp/outputfile -S 1000 httpd -X</programlisting>
  +
  +      <para>This command will run httpd in the system call tracer,
  +	which leaves its output (there is potentially a lot of it) in
  +	<filename>/tmp/outputfile</filename>.  The <option>-S</option>
  +	option tells <command></command>strace to only record the
  +	first 1000 bytes of a syscall.  Some calls such as
  +	<function>write</function> can potentially be much longer than
  +	this, so you may want to increase this number.  The results
  +	are a list of all the system calls made by the program.  You
  +	want to look at the end, where the failure presumably occured,
  +	to see if you can find anything that looks like an error.  If
  +	you're not sure what to make of the results, you can always
  +	ask on the Rivet development mailing list.
  +      </para>
  +
  +      <para>
  +	If <command>strace</command> (or its equivalent on your
  +	operating system) doesn't answer your question, it may be time
  +	to debug Apache and Rivet.  To do this, you will need to run
  +	the <command>./configure.tcl</command> script with the
  +	<option>-enable-symbols</option> option, and recompile.
  +      </para>
  +      <para>
  +	Since it's easier to debug a single process, we'll still run
  +	Apache in single process mode with -X:
  +      </para>
  +
  +      <programlisting>
  +@ashland [~] $ gdb /usr/sbin/apache.dbg
  +GNU gdb 5.3-debian
  +Copyright 2002 Free Software Foundation, Inc.
  +GDB is free software, covered by the GNU General Public License, and you are
  +welcome to change it and/or distribute copies of it under certain conditions.
  +Type "show copying" to see the conditions.
  +There is absolutely no warranty for GDB.  Type "show warranty" for details.
  +This GDB was configured as "powerpc-linux"...
  +(gdb) run -X
  +Starting program: /usr/sbin/apache.dbg -X
  +[New Thread 16384 (LWP 13598)]
  +.
  +.
  +.
  +      </programlisting>
  +
  +      <para>
  +	When your apache session is up and running, you can request a
  +	web page with the browser, and see where things go wrong (if
  +	you are dealing with a crash, for instance).  A helpful
  +	<command>gdb</command> tutorial is available here: <ulink
  +	  url="http://www.delorie.com/gnu/docs/gdb/gdb_toc.html"></ulink>
  +      </para>
  +
  +    </section>
  +
     </section>
     <section id="upgrading">
       <title>Upgrading from mod_dtcl or NeoWebScript</title>
  
  
  
  1.3       +1 -1      tcl-rivet/doc/html/index.en.html
  
  Index: index.en.html
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/doc/html/index.en.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- index.en.html	20 Nov 2003 11:04:55 -0000	1.2
  +++ index.en.html	27 Nov 2003 09:57:55 -0000	1.3
  @@ -2,7 +2,7 @@
   	��<tt class="email">&lt;<a href="mailto:davidw@apache.org">davidw@apache.org</a>&gt;</tt><br>
   	</p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Damon</span> <span class="surname">Courtney</span></h3><div class="affiliation"><div class="address"><p><br>
   	��<tt class="email">&lt;<a href="mailto:damonc@apache.org">damonc@apache.org</a>&gt;</tt><br>
  -	</p></div></div></div></div><div><p class="copyright">Copyright � 2002, 2003 Apache Software Foundation</p></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="index.en.html#id5416011">Introduction to Apache Rivet</a></span></dt><dt><span class="section"><a href="installation.en.html">Apache Rivet Installation</a></span></dt><dt><span class="section"><a href="directives.en.html">Rivet Apache Directives</a></span></dt><dt><span class="section"><a href="commands.en.html">Rivet Tcl Commands and Variables</a></span></dt><dt><span class="section"><a href="examples.en.html">Examples and Usage</a></span></dt><dt><span class="section"><a href="tcl_packages.en.html">Rivet Tcl Packages</a></span></dt><dt><span class="section"><a href="help.en.html">Resources - How to Get Help</a></span></dt><dd><dl><dt><span class="section"><a href="help.en.html#id5419473">Mailing Lists</a></span></dt><dt><span class="section"><a href="help.en.html#id5419522">Newsgroup</a></span></dt><dt><span class="section"><a href="help.en.html#websites">Web Sites</a></span></dt><dt><span class="section"><a href="help.en.html#id5419635">Bug Tracking System</a></span></dt><dt><span class="section"><a href="help.en.html#id5419658">IRC</a></span></dt><dt><span class="section"><a href="help.en.html#id5419674">Editing Rivet Template Files</a></span></dt></dl></dd><dt><span class="section"><a href="internals.en.html">Rivet Internals</a></span></dt><dd><dl><dt><span class="section"><a href="internals.en.html#id5419745">Initialization</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420201">RivetChan</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420232">The global Command</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420282">Page Parsing, Execution and Caching</a></span></dt></dl></dd><dt><span class="section"><a href="upgrading.en.html">Upgrading from mod_dtcl or NeoWebScript</a></span></dt><dd><dl><dt><span class="section"><a href="upgrading.en.html#id5420364">mod_dtcl</a></span></dt><dt><span class="section"><a href="upgrading.en.html#id5420381">NeoWebScript</a></span></dt></dl></dd></dl></div><p style="width:90%">
  +	</p></div></div></div></div><div><p class="copyright">Copyright � 2002, 2003 Apache Software Foundation</p></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="index.en.html#id5416011">Introduction to Apache Rivet</a></span></dt><dt><span class="section"><a href="installation.en.html">Apache Rivet Installation</a></span></dt><dt><span class="section"><a href="directives.en.html">Rivet Apache Directives</a></span></dt><dt><span class="section"><a href="commands.en.html">Rivet Tcl Commands and Variables</a></span></dt><dt><span class="section"><a href="examples.en.html">Examples and Usage</a></span></dt><dt><span class="section"><a href="tcl_packages.en.html">Rivet Tcl Packages</a></span></dt><dt><span class="section"><a href="help.en.html">Resources - How to Get Help</a></span></dt><dd><dl><dt><span class="section"><a href="help.en.html#id5419473">Mailing Lists</a></span></dt><dt><span class="section"><a href="help.en.html#id5419522">Newsgroup</a></span></dt><dt><span class="section"><a href="help.en.html#websites">Web Sites</a></span></dt><dt><span class="section"><a href="help.en.html#id5419635">Bug Tracking System</a></span></dt><dt><span class="section"><a href="help.en.html#id5419658">IRC</a></span></dt><dt><span class="section"><a href="help.en.html#id5419674">Editing Rivet Template Files</a></span></dt></dl></dd><dt><span class="section"><a href="internals.en.html">Rivet Internals</a></span></dt><dd><dl><dt><span class="section"><a href="internals.en.html#id5419745">Initialization</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420201">RivetChan</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420232">The global Command</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420282">Page Parsing, Execution and Caching</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420340">Debugging Rivet and Apache</a></span></dt></dl></dd><dt><span class="section"><a href="upgrading.en.html">Upgrading from mod_dtcl or NeoWebScript</a></span></dt><dd><dl><dt><span class="section"><a href="upgrading.en.html#id5419788">mod_dtcl</a></span></dt><dt><span class="section"><a href="upgrading.en.html#id5419805">NeoWebScript</a></span></dt></dl></dd></dl></div><p style="width:90%">
       This document is also available in the following languages: <a href="index.it.html" target="_top">Italian</a>, <a href="index.ru.html" target="_top">Russian</a>
     </p><p style="width:90%">
       Document reversion: $Revision$, last modified $Date$ by $Author$.
  
  
  
  1.2       +57 -1     tcl-rivet/doc/html/internals.en.html
  
  Index: internals.en.html
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/doc/html/internals.en.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- internals.en.html	20 Nov 2003 10:51:13 -0000	1.1
  +++ internals.en.html	27 Nov 2003 09:57:55 -0000	1.2
  @@ -1,4 +1,4 @@
  -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Rivet Internals</title><link rel="stylesheet" href="rivet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.62.4"><link rel="home" href="index.en.html" title="Apache Rivet"><link rel="up" href="index.en.html" title="Apache Rivet"><link rel="previous" href="help.en.html" title="Resources - How to Get Help"><link rel="next" href="upgrading.en.html" title="Upgrading from mod_dtcl or NeoWebScript"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Rivet Internals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="help.en.html"><img src="images/prev.png" alt="Prev"></a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="upgrading.en.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section" lang="en"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="internals"></a>Rivet Internals</h2></div></div><div></div></div><div class="toc"><dl><dt><span class="section"><a href="internals.en.html#id5419745">Initialization</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420201">RivetChan</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420232">The global Command</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420282">Page Parsing, Execution and Caching</a></span></dt></dl></div><p style="width:90%">
  +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Rivet Internals</title><link rel="stylesheet" href="rivet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.62.4"><link rel="home" href="index.en.html" title="Apache Rivet"><link rel="up" href="index.en.html" title="Apache Rivet"><link rel="previous" href="help.en.html" title="Resources - How to Get Help"><link rel="next" href="upgrading.en.html" title="Upgrading from mod_dtcl or NeoWebScript"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Rivet Internals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="help.en.html"><img src="images/prev.png" alt="Prev"></a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="upgrading.en.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section" lang="en"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="internals"></a>Rivet Internals</h2></div></div><div></div></div><div class="toc"><dl><dt><span class="section"><a href="internals.en.html#id5419745">Initialization</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420201">RivetChan</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420232">The global Command</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420282">Page Parsing, Execution and Caching</a></span></dt><dt><span class="section"><a href="internals.en.html#id5420340">Debugging Rivet and Apache</a></span></dt></dl></div><p style="width:90%">
         This section easily falls out of date, as new code is added, old
         code is removed, and changes are made.  The best place to look
         is the source code itself.  If you are interested in the changes
  @@ -66,4 +66,60 @@
   	without having to reload it (and re-parse it) from the disk.
   	The number of scripts stored in memory is configurable.  This
   	feature can significantly improve performance.
  +      </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id5420340"></a>Debugging Rivet and Apache</h3></div></div><div></div></div><p style="width:90%">
  +	If you are interested in hacking on Rivet, you're welcome to
  +	contribute!  Invariably, when working with code, things go
  +	wrong, and it's necessary to do some debugging.  In a server
  +	environment like Apache, it can be a bit more difficult to
  +	find the right way to do this.  Here are some techniques to
  +	try.
  +      </p><p style="width:90%">
  +	The first thing you should know is that Apache can be launched
  +	as a <span class="emphasis"><em>single process</em></span> with the
  +	-X argument:</p><pre style="background:#bbffbb ; width:90ex ; margin: 2ex ;      padding: 1ex; border: solid black 1px ; white-space: pre;      font-family:monospace ; " class="programlisting">httpd -X</pre>.
  +      <p style="width:90%">
  +	On Linux, one of the first things to try is the system call
  +	tracer, <span style="font-family:monospace"><span><b class="command">strace</b></span></span>.  You don't even have to
  +	recompile Rivet or Apache for this to work.
  +      </p><pre style="background:#bbffbb ; width:90ex ; margin: 2ex ;      padding: 1ex; border: solid black 1px ; white-space: pre;      font-family:monospace ; " class="programlisting">strace -o /tmp/outputfile -S 1000 httpd -X</pre><p style="width:90%">This command will run httpd in the system call tracer,
  +	which leaves its output (there is potentially a lot of it) in
  +	<tt class="filename">/tmp/outputfile</tt>.  The -S
  +	option tells <span style="font-family:monospace"><span><b class="command"></b></span></span>strace to only record the
  +	first 1000 bytes of a syscall.  Some calls such as
  +	<tt class="function">write</tt> can potentially be much longer than
  +	this, so you may want to increase this number.  The results
  +	are a list of all the system calls made by the program.  You
  +	want to look at the end, where the failure presumably occured,
  +	to see if you can find anything that looks like an error.  If
  +	you're not sure what to make of the results, you can always
  +	ask on the Rivet development mailing list.
  +      </p><p style="width:90%">
  +	If <span style="font-family:monospace"><span><b class="command">strace</b></span></span> (or its equivalent on your
  +	operating system) doesn't answer your question, it may be time
  +	to debug Apache and Rivet.  To do this, you will need to run
  +	the <span style="font-family:monospace"><span><b class="command">./configure.tcl</b></span></span> script with the
  +	-enable-symbols option, and recompile.
  +      </p><p style="width:90%">
  +	Since it's easier to debug a single process, we'll still run
  +	Apache in single process mode with -X:
  +      </p><pre style="background:#bbffbb ; width:90ex ; margin: 2ex ;      padding: 1ex; border: solid black 1px ; white-space: pre;      font-family:monospace ; " class="programlisting">
  +@ashland [~] $ gdb /usr/sbin/apache.dbg
  +GNU gdb 5.3-debian
  +Copyright 2002 Free Software Foundation, Inc.
  +GDB is free software, covered by the GNU General Public License, and you are
  +welcome to change it and/or distribute copies of it under certain conditions.
  +Type "show copying" to see the conditions.
  +There is absolutely no warranty for GDB.  Type "show warranty" for details.
  +This GDB was configured as "powerpc-linux"...
  +(gdb) run -X
  +Starting program: /usr/sbin/apache.dbg -X
  +[New Thread 16384 (LWP 13598)]
  +.
  +.
  +.
  +      </pre><p style="width:90%">
  +	When your apache session is up and running, you can request a
  +	web page with the browser, and see where things go wrong (if
  +	you are dealing with a crash, for instance).  A helpful
  +	<span style="font-family:monospace"><span><b class="command">gdb</b></span></span> tutorial is available here: <a href="http://www.delorie.com/gnu/docs/gdb/gdb_toc.html" target="_top">http://www.delorie.com/gnu/docs/gdb/gdb_toc.html</a>
         </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="help.en.html"><img src="images/prev.png" alt="Prev"></a>�</td><td width="20%" align="center"><a accesskey="u" href="index.en.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right">�<a accesskey="n" href="upgrading.en.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Resources - How to Get Help�</td><td width="20%" align="center"><a accesskey="h" href="index.en.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top">�Upgrading from mod_dtcl or NeoWebScript</td></tr></table></div></body></html>
  
  
  
  1.2       +3 -3      tcl-rivet/doc/html/upgrading.en.html
  
  Index: upgrading.en.html
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/doc/html/upgrading.en.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- upgrading.en.html	20 Nov 2003 10:51:13 -0000	1.1
  +++ upgrading.en.html	27 Nov 2003 09:57:55 -0000	1.2
  @@ -1,12 +1,12 @@
  -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Upgrading from mod_dtcl or NeoWebScript</title><link rel="stylesheet" href="rivet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.62.4"><link rel="home" href="index.en.html" title="Apache Rivet"><link rel="up" href="index.en.html" title="Apache Rivet"><link rel="previous" href="internals.en.html" title="Rivet Internals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Upgrading from mod_dtcl or NeoWebScript</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="internals.en.html"><img src="images/prev.png" alt="Prev"></a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�</td></tr></table></div><div class="section" lang="en"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="upgrading"></a>Upgrading from mod_dtcl or NeoWebScript</h2></div></div><div></div></div><div class="toc"><dl><dt><span class="section"><a href="upgrading.en.html#id5420364">mod_dtcl</a></span></dt><dt><span class="section"><a href="upgrading.en.html#id5420381">NeoWebScript</a></span></dt></dl></div><p style="width:90%">
  +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Upgrading from mod_dtcl or NeoWebScript</title><link rel="stylesheet" href="rivet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.62.4"><link rel="home" href="index.en.html" title="Apache Rivet"><link rel="up" href="index.en.html" title="Apache Rivet"><link rel="previous" href="internals.en.html" title="Rivet Internals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Upgrading from mod_dtcl or NeoWebScript</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="internals.en.html"><img src="images/prev.png" alt="Prev"></a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�</td></tr></table></div><div class="section" lang="en"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="upgrading"></a>Upgrading from mod_dtcl or NeoWebScript</h2></div></div><div></div></div><div class="toc"><dl><dt><span class="section"><a href="upgrading.en.html#id5419788">mod_dtcl</a></span></dt><dt><span class="section"><a href="upgrading.en.html#id5419805">NeoWebScript</a></span></dt></dl></div><p style="width:90%">
         Rivet is a break from the past, in that we, the authors, have
         attempted to take what we like best about our past efforts, and
         leave out or change things we no longer care for.  Backwards
         compatibility was not a primary goal when creating Rivet, but we
         do provide this information which may be of use to those wishing
         to upgrade from mod_dtcl or NWS installations.
  -    </p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id5420364"></a>mod_dtcl</h3></div></div><div></div></div><p style="width:90%">
  +    </p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id5419788"></a>mod_dtcl</h3></div></div><div></div></div><p style="width:90%">
   	Rivet was originally based on the dtcl code, but it has
   	changed (improved!) quite a bit.  The concepts remain the
   	same, but many of the commands have changed.
  -      </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id5420381"></a>NeoWebScript</h3></div></div><div></div></div><p style="width:90%">TODO</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="internals.en.html"><img src="images/prev.png" alt="Prev"></a>�</td><td width="20%" align="center"><a accesskey="u" href="index.en.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right">�</td></tr><tr><td width="40%" align="left" valign="top">Rivet Internals�</td><td width="20%" align="center"><a accesskey="h" href="index.en.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top">�</td></tr></table></div></body></html>
  +      </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id5419805"></a>NeoWebScript</h3></div></div><div></div></div><p style="width:90%">TODO</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="internals.en.html"><img src="images/prev.png" alt="Prev"></a>�</td><td width="20%" align="center"><a accesskey="u" href="index.en.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right">�</td></tr><tr><td width="40%" align="left" valign="top">Rivet Internals�</td><td width="20%" align="center"><a accesskey="h" href="index.en.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top">�</td></tr></table></div></body></html>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-cvs-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-cvs-help@tcl.apache.org