Short: Literate programming discipline for C/C++. Author: levy@geom.umn.edu (Silvio Levy and Donald E. Knuth) Uploader: scherer genesis informatik rwth-aachen de (Andreas Scherer) Type: dev/c Architecture: m68k-amigaos Files: cweb33p11a.lha, cweb33p11a.readme This is the portability implementation of Silvio Levy's and Donald Ervin Knuth's CWEB system, version 3.3 of December 7, 1994, compiled and provided with changefiles for ANSI-C, TURBO-C, and SAS/C 6.x and makefiles for UNIX-make, Borland-make and SAS-make by Andreas Scherer. It is based on the CWEB 3.1 port by Tomas Charles Willis and the CWEB 2.8 port by Carsten Steger and the CWEB-p 3.0 distribution by Hans-Hermann Bode and Klaus Guntermann, including all features of the original UNIX implementation like ANSI-C and C++ support, full ASCII input capability, and more, plus all enhancements made in these AMIGA, MSDOS, and UNIX ports plus some special features like: - The complete source code is capable of being recompiled with SAS/C for AmigaOS, with Borland C/C++ 3.1 for MSDOS, and with CC, C89, and GCC for UNIX without the need for further changes. The Amiga versions of all three system programs are compiled and linked in genuine C++ mode. For compilation in ANSI-C mode rename the .cc files to their .c form, and modify the EXTENSION field in the makefile accordingly. - The `+l' option with its argument `X' causes CWEAVE to prepend `X' to `cwebmac.tex' in the first line of the output file. `X' may be any string of characters (case dependent and possibly empty), e.g., if you called CWEAVE with the option `+ldansk', the danish macro file `danskcwebmac.tex' would be included instead of `cwebmac.tex'. The macro file `Xcwebmac.tex' itself contains some modifications to the original `cwebmac.tex' file as described in the documentation. There are macro packages `dcwebmac.tex' by Andreas Scherer for German users, `icwebmac.tex' by Giuseppe Ghibò for Italian users, and lately even `fcwebmac.tex' by Denis B. Roegel for French CWEB programmers. These macro files translate all captions used by the CWEAVE processor into the respective languages and also include support for special characters like umlauts (diacritics) and some other frequently used specials according to ISO Latin-1, IBM PC International Codepage 850, Macintosh 8-bit font table and HP Roman 8. Similar packages for other languages can easily be added to this scheme. To date there are no conflicting languages, so single-character strings are used. - There are TeX macro files `ecma94.sty', `hp8.sty', `mac8.sty', and `pc850.sty' for support of extended code tables. These have been set up to work as `packages' for LaTeX2e too. Also included are the files `ecma94.w', `hp8.w', `mac8.w', and `pc850.w' with appropriate transliteration tables. The option `+a' of former versions of the AMIGA installation is now replaced by the file `amiga_types.w', which can be `@i'ncluded in the source files where needed. - Two AREXX scripts for use with the CygnusEd Professional Editor were added to this package, one for CTANGLE and CWEAVE, localized with the help of language catalogs under AmigaOS version 2.1 or 3.0, the other for use with the SAS/C 6.x compiler in connection with CED V3.5. - Both CTANGLE and CWEAVE are fully localized with the help of language catalogs and the `locale.library' of AmigaOS 2.1/3.0. Default is (of course) English; catalogs for German and Italian are provided and other language catalogs can easily be added. #include files with the English, German, and Italian strings are provided for non-localized operating systems. - An algorithm for recursive `@i'nclude file search was adapted from the TeX and METAFONT implementation. The current directory is searched first, then the contents of the (possibly empty) environment variable CWEBINPUTS, and then the (system dependent) internal defaults given in the compile-time constants CWEBINPUTS in the respective makefiles. - The `-o' option was added in connection with `-i' by Carsten Steger. - Five additional CWEB example programs are included as examples for the portability between PASCAL-WEB and C-CWEB and for the usage of the C++ features of version 3.1. The fifth example program is a simple text converter for files with extended character codes of ISO-Latin-1, PC-850, MAC 8-bit font, and HP 8-bit font. - All three system programs support the `version' information command. - All three system programs are compiled in the NEAR data segment and can be made resident. - The `+m' option enables ARexx communication between CWEB and the SAS/C message browser SCMSG. Any warnings or error messages are transferred to its list window. The behaviour of this feature can be controlled via the external environment variable SCMSGOPT, which may be set to any legal option string as described in the documentation of the SAS/C development system by SAS Institute. - The output files are only written when there are significant changes to their contents, i.e., when a CWEB source creates multiple output files, only those modules effected by changes will be recompiled in the `make' process. This mechanism was taken from Preston Briggs's NUWEB program, to whom credit is due. Major parts of this Amiga port were done and completely tested with SAS/C version 6.3 and SAS/C++ version 6.51 on the AMIGA. After completion the official version [p10] of the package was re-ported to various UNIX systems (HP 9000, HP-PA, Sun, SGI) with CC, C89, and GCC, and ported to MSDOS with Borland C/C++ 3.1. Provided that all these ports work successfully, I am quite sure that all bugs have been found and fixed. New and modified features were tested on the AMIGA with SAS/C++ 6.51 in both ANSI-C and C++ mode and on a DEC station running Ultrix 4.4 with the DEC CC compiler. Again the resulting system was then ported to MSDOS with Borland C/C++ 3.1, now in the form of three C++ projects (there wasn't enough free memory to start Borland-make from within the development environment, so Makefile.pc actually wasn't tested). As Levy and Knuth seem to have changed their update policy, this is the second version of CWEB 3.3 in December 1994. Right after patch level 11 was installed in the AmiNet, Stanford provided a new distribution. To keep you up to date, the changes are made in this updated version too. Enjoy, Andreas. December 13, 1994.