File: implement_history.html

package info (click to toggle)
funnelweb-doc 3.2d-4.2
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,744 kB
  • sloc: perl: 241; makefile: 23
file content (291 lines) | stat: -rw-r--r-- 9,843 bytes parent folder | download | duplicates (5)
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&nbsp;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&nbsp;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&nbsp;C.
To my knowledge this translation process took about three
weeks (in December 1989). The result was called
FunnelWeb&nbsp;V2 and was formally signed into the public
domain on 5&nbsp;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&nbsp;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&nbsp;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&nbsp;June&nbsp;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>&nbsp;&nbsp;&nbsp;
<A HREF="copyright.html">Copyright &copy; 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>