Contents

Preface preface

This manual is for hackers! Anyone who wants to bash, diddle, frob, grind, mangle, patch, poke, toggle, twiddle, zap, or generally hack FunnelWeb should at least take a look at this manual.

This document has been created to serve two purposes:

  1. To act as a repository for specific design and implementation information not appropriate to be included in program comments.

  2. To guide those interested in modifying the program.

As a result, this document has grown in fits and starts. This manual is not a particularly polished or well-balanced document but it should be of assistance to those (including myself) involved with modifying FunnelWeb.


Ṟoss N. Williams
A̱delaide, Australia
M̱ay 1992

Acknowledgements acknowledgements

Many thanks to Ḏavid HulseDavidHulse (dave@cs.adelaide.edu.au) for translating the original version of FunnelWeb (FunnelWeb V1) from AdaAda into C and getting it to work on Unix and a PC. The C code written by David (FunnelWeb V2) formed the basis of FunnelWeb V3, but was entirely rewritten during the intensive refinement and feature-injection period leading up to this release (FunnelWeb V3 is about three times the size of FunnelWeb V2). Nevertheless, without this important first translation step, I would probably not have found the motivation to develop FunnelWeb to its present state.

Thanks go to S̱imon HackettSimonHackett (simon@internode.com.au) of Internode Systems Pty Ltd for the use of his Sun, Mac, and PC, for assistance in porting FunnelWeb to the Sun and PC, and for helpful discussions.

Thanks go to J̱eremy BeggJeremyBegg (jeremy@vsm.com.au) of VSM Software Services for the use of his VAX, and for assistance with the VMS-specific code.

Thanks to Ḇarry DwyerBarryDwyer (dwyer@cs.adelaide.edu.au) and Ṟoger BrissendenRogerBrissenden (rjb@koala.harvard.edu) for trying out FunnelWeb Version 1 in 1987 and providing valuable feedback.

Thanks to Donald KnuthDonaldKnuth for establishing the idea of literate programming in the first place.


Ṟoss N. Williams
A̱delaide, Australia
M̱ay 1992

Presentation Notes presentation notes

References: All references are set in bold and are cited in square brackets in the form [̱<ıfirstauthor> <ıyear>]̱. All references cited in the text appear in the reference list and the index.

Special terms: New or important terminology has been set in bold face and appears in the index.

Typesetting: Thistypesetting document was prepared by the author using Andrew Trevorrow'sAndrewTrevorrow (akt150@cscgpo.anu.edu.au) implementation (OzTeXOzTeX) of the TEX/LATEXKnuth84Lamport86TeXLaTeX typesetting system running on a Macintosh-SE.Macintosh

Graphics: All diagrams have been constructed out of text using the LATEXLaTeX verbatim environment so as to allow this document to be disseminated electronically and printed using LATEX without access to the author's drawing tools.

Known typesetting problems: While every attempt has been made to give a good presentation within the time available, some shortcuts have had to be taken. In particular, the author has been unable to work out how to get LATEX to suppress blank pages at the start of chapters.