home *** CD-ROM | disk | FTP | other *** search
- Short: Literate programming discipline for C/C++.
- Type: dev/c
- Files: cweb33p11.lha, cweb33p11.readme
- Uploader: scherer@genesis.informatik.rwth-aachen.de (Andreas Scherer)
- Author: levy@geom.umn.edu (Silvio Levy and Donald E. Knuth)
-
- 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).
-
-
- Enjoy, Andreas.
-
- December 13, 1994.
-