1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<!--
***********************************************************************
FUNNELWEB MANUAL WEB PAGE
=========================
Copyright (c) Ross N. Williams 1992,1999. All rights reserved.
Permission is granted to redistribute and use this manual in
any medium, with or without modification, provided that all
notices (including, without limitation, the copyright
notice, this permission notice, any record of modification,
and all legal notices) are preserved on all copies, that all
modifications are clearly marked, and that modified versions
are not represented as the original version unless all the
modifications since the manual's original release by Ross N.
Williams (www.ross.net) consist of translations or other
transformations that alter only the manual's form, not its
content. THIS MANUAL IS PROVIDED "AS IS" AND WITHOUT ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND
FITNESS FOR A PARTICULAR PURPOSE. TO THE EXTENT PERMITTED BY
LAW THERE IS ABSOLUTELY NO WARRANTY.
***********************************************************************
-->
<HEAD>
<TITLE>3.1 History of FunnelWeb Implementations</TITLE>
<STYLE TYPE="text/css"> <!-- A {text-decoration: none} // --> </STYLE>
</HEAD>
<BODY BACKGROUND="binary/background.gif"
BGCOLOR="#FFFFFF"
TEXT="#000000"
VLINK="#660000"
LINK="#FF0000"
ALINK="#CC0000">
<TABLE WIDTH="490">
<TR>
<TD WIDTH="130" VALIGN="top">
<IMG SRC="binary/d_clear.gif" ALT="" WIDTH="130" HEIGHT="1"><BR>
<FONT SIZE="2">
<BR>
<A HREF="http://www.ross.net/"
TARGET="rosshome"
onClick="window.open('','rosshome','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
>
<IMG SRC="binary/rossnet_logo.gif"
WIDTH="64" HEIGHT="32"
BORDER="0" ALT="RossNet"
HSPACE="0" VSPACE="1"></A><BR>
<BR>
<A HREF="../index.shtml"
TARGET="funnelweb"
onClick="window.open('','funnelweb','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
>
<IMG SRC="binary/linklogo.gif"
WIDTH="64" HEIGHT="32"
BORDER="0" ALT="FunnelWeb"
HSPACE="0" VSPACE="1"></A><BR>
<BR>
<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0><TR><TD BGCOLOR="#000000">
<A HREF="../reference/index.html"
TARGET="funnelwebreference"
onClick="window.open('','funnelwebreference','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
><FONT COLOR="#FFFFFF"><B>Reference</B></FONT></A><BR>
<BR>
<A HREF="../tutorial/index.html"
TARGET="funnelwebtutorial"
onClick="window.open('','funnelwebtutorial','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
><FONT COLOR="#FFFFFF"><B>Tutorial</B></FONT></A><BR>
<BR>
<A HREF="index.html"><FONT COLOR="#FFFFFF"><B>Developer</B></FONT></A><BR>
<A HREF="compile.html"><FONT COLOR="#FFFFFF">1 Compile</FONT></A><BR>
<A HREF="design.html"><FONT COLOR="#FFFFFF">2 Design</FONT></A><BR>
<A HREF="implement.html"><FONT COLOR="#FFFFFF">3 Implement</FONT></A><BR>
<A HREF="modify.html"><FONT COLOR="#FFFFFF">4 Modify</FONT></A><BR>
<A HREF="misc.html"><FONT COLOR="#FFFFFF">5 Misc</FONT></A><BR>
<A HREF="gpl.html"><FONT COLOR="#FFFFFF">6 Licence</FONT></A><BR>
<BR>
<A HREF="search.html"><FONT COLOR="#FFFFFF"><B>SEARCH</B></FONT></A><BR>
</FONT>
</TD></TR></TABLE>
</TD>
<TD WIDTH="360" VALIGN="top">
<FONT SIZE="3">
<A HREF="index.html"><IMG SRC="binary/title.gif"
WIDTH="316" HEIGHT="24"
BORDER="0" ALT="FunnelWeb Developer Manual"
HSPACE="0" VSPACE="0"></A>
<P><FONT SIZE="5">3.1 History of FunnelWeb Implementations</FONT><BR>
<P><BR><FONT SIZE="4"><STRONG>FunnelWeb V1 (1986)</STRONG></FONT><BR>
<P>The first implementation of FunnelWeb was written in
Ada<STRONG>[USDOD83]</STRONG> in December 1986. I used
FunnelWeb as a program to write to help me learn Ada.
FunnelWeb V1 took about one month to write and was fairly
VMS dependent.
<P>I used FunnelWeb V1 to write all the Ada software
for my Ph.D. project and it was very successful in this
role, helping me to document some complicated code. However
when I finished the Ph.D work in July 1989, I lost
access to the VAX and hence to FunnelWeb. During my
candidature, at least twenty thousand lines of code were
written using FunnelWeb, but hardly anyone else used
FunnelWeb. After losing access to Ada and the Vax (and hence
to FunnelWeb), I was forced back to programming the
non-literate way. I recognised a need to translate FunnelWeb
into the more portable C programming language, but didn't
have the time or energy to create one.
<P><BR><FONT SIZE="4"><STRONG>FunnelWeb V2 (1991)</STRONG></FONT><BR>
<P>About this time (late 1989), David
Hulse, at the time a student in
Computer Science at the University of
Adelaide, volunteered to
translate the 4000 line Ada version of FunnelWeb into C.
To my knowledge this translation process took about three
weeks (in December 1989). The result was called
FunnelWeb V2 and was formally signed into the public
domain on 5 May 1992. However, it was never publicly
released.
<P>I would like to take this opportunity to thank David
Hulse for translating FunnelWeb from Ada to C, as this
effort was the basis of later work on FunnelWeb.
<P><BR><FONT SIZE="4"><STRONG>FunnelWeb V3.0 (1992)</STRONG></FONT><BR>
<P>Lack of portability of the translated C code,
combined with the need for a rather solid design review,
combined with the need to strengthen the program to bring it
up to production standard, resulted in my performing a
complete reworking of the code in late 1991 and early 1992.
The C code was entirely, but incrementally, replaced or
reformatted. The code was also strengthened and new features
were added. This process took about two months (November and
December 1991). A further two months (approx) were spent
writing documentation, constructing a regression test suite,
porting the program to different machines, and sorting out
the legal issues involved in its release. FunnelWeb V3.0 was
publicly released on the Internet under a GNU licence
on 6 June 1992.
<P>Version 3.0 proved very solid, but had the following
bugs:
<UL>
<LI> Bombs with an assertion error if the input file
is at least 10000 lines long.
<BR><BR>
<LI> Bombs with an assertion error if it's generating
a listing file and an error occurs on a line longer than 200
characters.
<P>
<FONT SIZE="2"><PRE>
lister.dup: count>=DUPMAX
An assertion has failed! See the line above.
Press return to abort FunnelWeb>
</PRE></FONT>
<BR><BR>
<LI> The FunnelWeb shell <SAMP>diff</SAMP> command bombs
with an assertion error if it can't open the first file:
<P>
<FONT SIZE="2"><PRE>
FunnelWeb>diff deleteme.list vctest01.ans x.x
E: DIFF: Error mapping "deleteme.list".
Error fopen()ing input file
(to determine its length).
do_diff: Image comparison succeeded,
but text comparison failed.
An assertion has failed! See the line above.
Press return to abort FunnelWeb>
</PRE></FONT>
<BR><BR>
<LI> Under VMS FunnelWeb overwrites previous output files
with the newly generated output files, rather than generating a
new version.
<BR><BR>
</UL>
<P><BR><FONT SIZE="4"><STRONG>FunnelWeb V3.1 (1993)</STRONG></FONT><BR>
<P>During 1993, the following changes were made, yielding V3.1:
<PRE>
13-Oct-1993:
lister.c: Increased MAXLINES to one million to
avoid mes_wri case default bomb.
Modified bomb message in mes_wri.
memory.* Modified package to count blocks
of various sizes.
command.c Modified it to call memory to
write out mem report.
13-Oct-1993
parser.c Change ty_name to ty_pname
to save memory.
data.h ?
weave.c ?
</PRE>
<P>These changes essentially fixed the "10,000 lines" bug
and performed some memory tuning.
<P><BR><FONT SIZE="4"><STRONG>FunnelWeb 3.05AC</STRONG></FONT><BR>
<P><A HREF="http://www.theoffice.net/abcoates/" TARGET="_blank">Tony Coates</A> created a
<A HREF="http://www.ems.uq.edu.au:7007/People/Tony/funnelweb.html">FunnelWeb variant</A>
called FunnelWeb V3.05AC that fixes some bugs, and provides some extra
useful features (including HTML output). This version has been officially
classified as an unofficial version.
<P><BR><FONT SIZE="4"><STRONG>FunnelWeb V3.2 (1999)</STRONG></FONT><BR>
<P>In April 1999 I decided to perform extensive housecleaning on
FunnelWeb so as to make it more presentable and useable. This process
involved:
<P>
<UL>
<LI> Eliminating all known bugs.
<LI> Converting all FunnelWeb documentation to webs.
<LI> Porting FunnelWeb to a wider range of platforms.
<LI> Providing FunnelWeb executables online.
<LI> Reworking the main FunnelWeb web.
</UL>
<P>The result was FunnelWeb V3.2.
<P>
<TABLE WIDTH="100%">
<TR>
<TD ALIGN="left" VALIGN="bottom"><A HREF="implement.html"><IMG SRC="binary/fw_up.gif" HEIGHT="32" WIDTH="32" BORDER="0" ALT="Up"></A></TD>
<TD ALIGN="center" VALIGN="bottom"><A HREF="implement.html"><IMG SRC="binary/fw_up.gif" HEIGHT="32" WIDTH="32" BORDER="0" ALT="Up"></A></TD>
<TD ALIGN="right" VALIGN="bottom"><A HREF="implement_self.html"><IMG SRC="binary/fw_right.gif" HEIGHT="32" WIDTH="32" BORDER="0" ALT="Next"></A></TD>
</TR>
</TABLE>
<P>
<HR>
<FONT SIZE="2">
<A HREF="mailto:webmaster@ross.net">Webmaster</A>
<A HREF="copyright.html">Copyright © Ross N. Williams 1992,1999. All rights reserved.</A><BR>
</FONT>
</FONT>
</TD>
</TR>
</TABLE>
</BODY>
<!-- *********************************************************************** -->
<!-- End Of A FunnelWeb Manual Web Page (www.ross.net/funnelweb/) -->
<!-- *********************************************************************** -->
</HTML>
|