Subject: PC implementation of Spidery WEB

From: Hans-Hermann Bode <[email-masked]>
Date: Wed, 04 Dec 91 16:24:12 MEZ

Hello,

I like to let you know about a PC version of your Spidery WEB system that I
implemented. In fact, it is an ANSI-C version also, as appropriate changes
are provided and the PC-related stuff is conditional. The implementation is
available as an archive file spiderpc.zip by anonymous ftp from
dione.rz.uni-osnabrueck.de (in the directory /pub/msdos/tex/web) or from
rusinfo.rus.uni-stuttgart.de (in the directory /soft/tex/web/spiderweb); it
contains the original files (none of it was edited directly, but a few had
to be renamed) and changefiles and makefiles for the PC version. For your
information I append the file readme.pc from spiderpc.zip.

Hans-Hermann Bode
Arbeitsgruppe Systemforschung, Universit\"at Osnabr\"uck
Tel.: (49)-541-9692545
e-mail: [email-masked]

------------------------------------------------README.PC-from-SPIDERPC.ZIP---
								-*-Text-*-
This is the PC implementation of Norman Ramsey's Spidery WEB system,
compiled and provided with changefiles and makefiles for PC-/MS-DOS by
Hans-Hermann Bode <[email-masked]>. The changes are appropriate for
ANSI-C compilers as well as for Turbo C++, where the latter are made
conditional (they will become effective only if the symbol __TURBOC__ is
defined, which automatically is the case when compiled with Turbo C++), so
users of other systems with ANSI-C compilers might be interested also.

Note that---though the Spider programs itself now should be suitable for
ANSI-C compilers---there is no Spidery ANSI-C WEB yet, i.e., a weave
processor capable to typeset ANSI-C programs is missing (the provided
ceeweave is intended for traditional C only---the tangle processor, on the
other hand, causes no problem, so the make procedure is not affected by
this). You could use the C++ version (ccweave) instead, but this will not
recognize traditional comments (the /*...*/ form). A quick solution might be
to take the C++ Spider source (./cc/cc.spi, see below) and to change the
comment rule appropriately. Possibly, this will be the first exercise for
you in generating a new Spidery WEB.

To install the system unpack the archive and reproduce the following
directory structure:

.
./ada
./ada/make
./ada/ada.spi
./ada/stacks.web
./ada/new.spi
./ada/old.spi
./ada/pcmake.sh		*
./ada/pcmake.bat	*
./ada/adatangl.exe	+
./ada/adaweave.exe	+
./ada/adaweb.tex	+
./awk
./awk/awk.spi
./awk/make
./awk/tangle.c
./awk/nawk.spi
./awk/pcmake.sh		*
./awk/pcmake.bat	*
./awk/awktangl.exe	+
./awk/awkweave.exe	+
./awk/awkweb.tex	+
./awk/awktangl.c	+
./c
./c/local.gui
./c/make
./c/c.spi
./c/tangle.c
./c/pcmake.sh		*
./c/pcmake.bat		*
./c/ceetangl.exe	+
./c/ceeweave.exe	+
./c/cweb.tex		+
./c/ceetangl.c		+
./cc
./cc/make
./cc/cc.spi
./cc/pcmake.sh		*
./cc/pcmake.bat		*
./cc/cctangle.exe	+
./cc/ccweave.exe	+
./cc/ccweb.tex		+
./dijkstra
./dijkstra/binary.web
./dijkstra/make
./dijkstra/d.spi
./dijkstra/sp.web
./dijkstra/readme
./dijkstra/pcmake.sh	*
./dijkstra/pcmake.bat	*
./dijkstra/dtangle.exe	+
./dijkstra/dweave.exe	+
./dijkstra/dijkstra.tex	+
./larch
./larch/make
./larch/l.spi
./larch/lists.web
./larch/pcmake.sh	*
./larch/pcmake.bat	*
./larch/ltangle.exe	+
./larch/lweave.exe	+
./larch/larchweb.tex	+
./penelope
./penelope/make
./penelope/spiderma
./penelope/a.spi
./penelope/nesting.spi
./penelope/stacks.web
./penelope/proc-a.spi
./penelope/scan_ann.awk
./penelope/spimkfil.pc	*
./penelope/pcmake.sh	*
./penelope/pcmake.bat	*
./ssl
./ssl/make
./ssl/s.spi
./ssl/pcmake.sh		*
./ssl/pcmake.bat	*
./ssl/stangle.exe	+
./ssl/sweave.exe	+
./ssl/sslweb.tex	+
./doc
./doc/spiderma.aux
./doc/spiderwe.toc
./doc/makefile
./doc/cacm.aux
./doc/cacm.tex
./doc/abstract.tex
./doc/spiderma.tex
./doc/overview.aux
./doc/overview.tex
./doc/spiderwe.tex
./doc/descript
./master
./master/cycle.awk
./master/nodups.awk
./master/transche.awk
./master/pathopen.h_0
./master/multitan.ch
./master/common.web
./master/cycle.web
./master/webhead
./master/spider.awk
./master/webtail
./master/common.h_0
./master/newdefs.awk
./master/transche.lis
./master/pretty.awk
./master/pathopen.web
./master/make.pre
./master/webmakef
./master/common.c_0
./master/pathopen.c_0
./master/makefile
./master/spider.web
./master/junk.lis
./master/weave.web
./master/tangle.web
./master/makefile.pc	*
./master/pathopen.ch	*
./master/common.ch	*
./master/common.hch	*
./master/common.h	o
./master/tangle.ch	*
./master/weave.ch	*
./master/pathopen.h	+
./master/pathopen.c	+
./master/common.c	+
./master/common.obj	+
./master/pathopen.obj	+
./gawk210
./gawk210/gawk.exe
./gawk210/gawk.1
./gawk210/gawk.dvi
./gawk210/gawk.tex
./gawk210/texinfo.tex
./gawk210/problems
./gawk210/readme
./gawk210/copying
./readme
./copyrigh
./bugs
./webkerne.tex
./makefile
./readme.pc		*

The files marked with `*' are specific and essential for the PC
implementation, those marked with `+' are the results of pcmake runs (see
below) and are reproducible. The file marked with `o' will not be generated
by pcmake but might be reproduced from masterfile ./master/common.h_0 and
changefile ./master/common.hch by means of a tool like WMERGE or TIE (or by
hand). All files with names ending in `_0' are renamed from the original
distribution, because they are replaced by new ones. The file
./awk/nawk.spi, a Spider source for the new Awk language, is contributed by
Erich Neuwirth. The directory ./gawk210 contains the GNU implementation of
the Awk programming language, Version 2.10; the interpreter, gawk.exe, is
used in the pcmake process. All other files come from the original
distribution of Spidery WEB.

For more information on the Spider system see the file ./readme and the
documentation in the directory ./doc. For the copyright policy on Spidery
WEB consider the file ./copyrigh. For the same subject on GAWK pay attention
to the file ./gawk210/copying. Unfortunately, I can't tell you where to get
the source files of the PC implementation of GAWK 2.10, since I got the
system myself exactly as it is in ./gawk210 (look in ./gawk210/readme for
contact persons, if required).

Using Spidery WEB on a PC
-------------------------

For your convenience, precompiled executables are provided with this
distribution. So, all you have to do is the following:

  - Copy the file ./webkernel.tex to a directory where TeX looks for input
files.

  - Pick up one or more of the directories ./ada, ./awk, ./c, ./cc,
./dijkstra, ./larch, and ./ssl that correspond to the languages you like to
use (cc is actually c++ in the original distribution). Copy the TeX files
(*web.tex) to your TeX-inputs directory, too, and copy the exe files
(*tangle.exe and *weave.exe) to your binaries directory, i.e., a directory
that is in the DOS PATH.

  - That's all!

Note that there are no executables in the ./penelope directory. This is due
to the fact that GAWK hung up while processing ./penelope/proc-a.spi. I
didn't fix this problem up to now.

Setting up new Spiders on a PC
------------------------------

If you want to build new Spidery WEBs or like to change existing ones,
you'll need the following resources:

  - An Awk interpreter. As GAWK, Version 2.10, is included in this archive,
you don't have to worry about. Notice that GAWK, Version 2.11, will not
work. Other MS-DOS Awk interpreters have not been tested, but probably won't
work also.

  - A C compiler. The executables and object files supplied herein were
compiled with and the changefiles as well as ./master/makefile.pc are
intended for Turbo C++, Version 1.01. Other MS-DOS C compilers may also
work, but you might run into delicate problems with Microsoft C, Version
6.00.

  - A make utility (if you don't prefer to do the job by hand, which would
be a hard one). The file ./master/makefile.pc is intended for Turbo Make,
Version 3.0.

  - A lot of memory. The most storage-consuming process is the interpreting
of the Spider source (*.spi) by GAWK. This will need about 550 to 575 KByte
of memory available on your system, so remove all memory-resident programs
that aren't really necessary.

The file ./master/makefile.pc provides a full automatic creation of a
Spidery WEB for a certain language from a Spider source file (don't use the
other makefiles in this distribution, they are not intended for PC-/MS-DOS).
For flexibility, several macros have to be defined from the command line;
read the comment at the beginning of the makefile for more information.
Incidentally, a symbol CMD may be defined, in which case the
makefile---besides the interpreter and compiler mentioned above---will use
standard DOS file utilities only; default is to use Unix-like utilities like
cp, sort, and rm.

Each of the language-specific directories contains a script file, pcmake,
that calls ./master/makefile.pc appropriate for the major Spider source of
the language in question (sometimes, alternative sources are provided;
again, don't use the other make scripts, they won't call the right
makefile). Actually, two versions of pcmake reside in each of these
directories: pcmake.bat is a batch file for use with command.com, pcmake.sh
is a shell script for use with a bourne shell like ms_sh. Because both
command processors will run the corresponding script automatically, simply
type `pcmake' if you use either of these.

It is assumed that bourne-shell users have the Unix-like file utilities
mentioned above available, thus pcmake.sh will run the makefile without
defining CMD, while pcmake.bat defines it. Besides, in both cases the make
utility will be called under the name `tmake'. If one of these facts doesn't
fit your needs, you have to edit pcmake.sh or pcmake.bat first.

The make procedure implies a call to both the tangle processors of the Awk
and the C language (awktangle.exe and ceetangle.exe). Hence you must install
those in your binaries directory before doing anything else. If for some
reason you can't use the binaries provided, you have to recompile
./c/ceetangle.c, ./awk/awktangle.c, ./master/common.c, and
./master/pathopen.c (don't forget to define the symbol MSDOS from the
command line) and link the resulting ceetangle.obj and awktangle.obj with
the resulting object files of the ./master sources, respectively.

When you ever change ./master/pathopen.web or ./master/pathopen.ch, the make
process will generate a new pathopen.h in the current directory. You should
move this file to the ./master directory, so it will not be produced once
more in subsequent runs until it is outdated again.

By taking all these suggestions into account, after editing one of the
Spider sources you should delete the exe files from the directory in
question and, from that directory, just say `pcmake'. If everything works
alright, after a while you will get new executables *tangle.exe and
*weave.exe and a new macro package *web.tex besides some intermediate files.
You can remove the latter by saying `pcmake clean' (this will not affect the
exe and tex files). If you ceate a Spidery WEB for a new language, you
should take one of the pcmake files as a model to proceed with a similar
procedure.
									-H2B-