1 Compile
2 Design
3 Implement
4 Modify
5 Misc
6 Licence

FunnelWeb Developer Manual

3.1 History of FunnelWeb Implementations

FunnelWeb V1 (1986)

The first implementation of FunnelWeb was written in Ada[USDOD83] 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.

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.

FunnelWeb V2 (1991)

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.

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.

FunnelWeb V3.0 (1992)

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.

Version 3.0 proved very solid, but had the following bugs:

  • Bombs with an assertion error if the input file is at least 10000 lines long.

  • Bombs with an assertion error if it's generating a listing file and an error occurs on a line longer than 200 characters.

       lister.dup: count>=DUPMAX
       An assertion has failed! See the line above.
       Press return to abort FunnelWeb>

  • The FunnelWeb shell diff command bombs with an assertion error if it can't open the first file:

    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>

  • Under VMS FunnelWeb overwrites previous output files with the newly generated output files, rather than generating a new version.

FunnelWeb V3.1 (1993)

During 1993, the following changes were made, yielding V3.1:

   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.
   parser.c  Change ty_name to ty_pname
             to save memory.
   data.h    ?
   weave.c   ?

These changes essentially fixed the "10,000 lines" bug and performed some memory tuning.

FunnelWeb 3.05AC

Tony Coates created a FunnelWeb variant 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.

FunnelWeb V3.2 (1999)

In April 1999 I decided to perform extensive housecleaning on FunnelWeb so as to make it more presentable and useable. This process involved:

  • Eliminating all known bugs.
  • Converting all FunnelWeb documentation to webs.
  • Porting FunnelWeb to a wider range of platforms.
  • Providing FunnelWeb executables online.
  • Reworking the main FunnelWeb web.

The result was FunnelWeb V3.2.

Up Up Next

Webmaster    Copyright © Ross N. Williams 1992,1999. All rights reserved.