home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / dev / c / cweb / cweb33p11.readme < prev    next >
Encoding:
Text File  |  1994-12-14  |  6.4 KB  |  113 lines

  1. Short: Literate programming discipline for C/C++.
  2. Type: dev/c
  3. Files: cweb33p11.lha, cweb33p11.readme
  4. Uploader: scherer@genesis.informatik.rwth-aachen.de (Andreas Scherer)
  5. Author: levy@geom.umn.edu (Silvio Levy and Donald E. Knuth)
  6.  
  7. This  is  the  portability implementation of Silvio Levy's and Donald Ervin
  8. Knuth's CWEB system, version 3.3 of December 7, 1994, compiled and provided
  9. with  changefiles  for  ANSI-C,  TURBO-C,  and  SAS/C 6.x and makefiles for
  10. UNIX-make,  Borland-make  and  SAS-make by Andreas Scherer.  It is based on
  11. the  CWEB 3.1 port by Tomas Charles Willis and the CWEB 2.8 port by Carsten
  12. Steger  and  the  CWEB-p  3.0  distribution  by Hans-Hermann Bode and Klaus
  13. Guntermann, including all features of the original UNIX implementation like
  14. ANSI-C  and  C++  support,  full ASCII input capability, and more, plus all
  15. enhancements  made  in these AMIGA, MSDOS, and UNIX ports plus some special
  16. features like:
  17.  
  18.    - The complete source code is capable of being recompiled with SAS/C for
  19.      AmigaOS, with Borland C/C++ 3.1 for MSDOS, and with  CC, C89, and  GCC
  20.      for  UNIX without the need for further changes.  The Amiga versions of
  21.      all three system programs are compiled and linked in genuine C++ mode.
  22.      For compilation in  ANSI-C mode rename the .cc files to their .c form,
  23.      and modify the EXTENSION field in the makefile accordingly.
  24.  
  25.    - The `+l' option with its  argument `X' causes CWEAVE to prepend `X' to
  26.      `cwebmac.tex' in  the first line of the output file.  `X'  may  be any
  27.      string of characters (case dependent and possibly empty), e.g., if you
  28.      called  CWEAVE  with  the  option  `+ldansk',  the  danish  macro file
  29.      `danskcwebmac.tex'  would  be  included instead of `cwebmac.tex'.  The
  30.      macro  file  `Xcwebmac.tex' itself contains some  modifications to the
  31.      original `cwebmac.tex' file as described in the documentation.   There
  32.      are macro packages `dcwebmac.tex' by Andreas Scherer for German users,
  33.      `icwebmac.tex'  by  Giuseppe Ghibò  for Italian users, and lately even
  34.      `fcwebmac.tex' by  Denis B. Roegel for French CWEB programmers.  These
  35.      macro  files  translate all captions used by the CWEAVE processor into
  36.      the   respective  languages  and  also  include  support  for  special
  37.      characters  like umlauts  (diacritics)  and some other frequently used
  38.      specials according to ISO Latin-1, IBM  PC International Codepage 850,
  39.      Macintosh 8-bit font table and HP Roman 8.  Similar packages for other
  40.      languages  can  easily  be added to this scheme.  To date there are no
  41.      conflicting languages, so single-character strings are used.
  42.  
  43.    - There  are  TeX macro  files `ecma94.sty', `hp8.sty', `mac8.sty',  and
  44.      `pc850.sty' for  support  of  extended  code  tables.  These have been
  45.      set up to work as `packages' for LaTeX2e too.  Also  included  are the
  46.      files `ecma94.w', `hp8.w',  `mac8.w',  and  `pc850.w' with appropriate
  47.      transliteration  tables.   The option  `+a'  of former versions of the
  48.      AMIGA installation is now replaced by the file  `amiga_types.w', which
  49.      can be `@i'ncluded in the source files where needed.
  50.  
  51.    - Two  AREXX  scripts for use with the CygnusEd Professional Editor were
  52.      added to this package, one for CTANGLE and CWEAVE, localized  with the
  53.      help of language catalogs under  AmigaOS version 2.1 or 3.0, the other
  54.      for use with the SAS/C 6.x compiler in connection with CED V3.5.
  55.  
  56.    - Both CTANGLE and CWEAVE are fully localized with  the help of language
  57.      catalogs and the `locale.library' of  AmigaOS 2.1/3.0.  Default is (of
  58.      course)  English;  catalogs  for  German  and Italian are provided and
  59.      other language catalogs  can easily be added.  #include files with the
  60.      English,  German,  and  Italian strings are provided for non-localized
  61.      operating systems.
  62.  
  63.    - An algorithm for recursive `@i'nclude file search was adapted from the
  64.      TeX  and  METAFONT  implementation.  The current directory is searched
  65.      first,  then the contents of the (possibly empty) environment variable
  66.      CWEBINPUTS, and then the (system dependent) internal defaults given in
  67.      the compile-time constants CWEBINPUTS in the respective makefiles.
  68.  
  69.    - The `-o' option was added in connection with `-i' by Carsten Steger.
  70.  
  71.    - Five additional CWEB example programs are included as examples for the
  72.      portability between PASCAL-WEB and C-CWEB and for the usage of the C++
  73.      features of version 3.1.  The  fifth  example program is a simple text
  74.      converter  for  files  with  extended  character codes of ISO-Latin-1,
  75.      PC-850, MAC 8-bit font, and HP 8-bit font.
  76.  
  77.    - All three system programs support the `version' information command.
  78.  
  79.    - All  three  system  programs are compiled in the NEAR data segment and
  80.      can be made resident.
  81.  
  82.    - The `+m' option enables ARexx communication between CWEB and the SAS/C
  83.      message browser SCMSG.  Any warnings or error messages are transferred
  84.      to its list  window.  The behaviour of  this feature can be controlled
  85.      via  the  external  environment variable SCMSGOPT, which may be set to
  86.      any legal option string as described in the documentation of the SAS/C
  87.      development system by SAS Institute.
  88.  
  89.    - The  output  files are only written when there are significant changes
  90.      to  their  contents, i.e., when  a CWEB source creates multiple output
  91.      files,  only  those  modules effected by changes will be recompiled in
  92.      the  `make'  process.  This mechanism was taken from  Preston Briggs's
  93.      NUWEB program, to whom credit is due.
  94.  
  95. Major  parts  of this Amiga port were done and completely tested with SAS/C
  96. version  6.3  and  SAS/C++ version 6.51 on the AMIGA.  After completion the
  97. official version [p10] of the package was re-ported to various UNIX systems
  98. (HP  9000, HP-PA, Sun, SGI) with CC, C89, and GCC, and ported to MSDOS with
  99. Borland  C/C++  3.1.  Provided that all these ports work successfully, I am
  100. quite sure that all bugs have been found and fixed.
  101.  
  102. New  and  modified  features  were tested on the AMIGA with SAS/C++ 6.51 in
  103. both  ANSI-C  and C++ mode and on a DEC station running Ultrix 4.4 with the
  104. DEC  CC compiler.  Again the resulting system was then ported to MSDOS with
  105. Borland  C/C++  3.1,  now  in  the form of three C++ projects (there wasn't
  106. enough  free  memory  to  start  Borland-make  from  within the development
  107. environment, so Makefile.pc actually wasn't tested).
  108.  
  109.  
  110. Enjoy, Andreas.
  111.  
  112. December 13, 1994.
  113.