[comp.lang.c] PROTOIZE/UNPROTOIZE 1.39.0 now available

rfg@lupine.ncd.com (Ron Guilmette) (03/02/91)

Sorry if this is a repost.  I'm not sure that this message made it out
the first time.

---------------------------------------------------------------------------

                             Protoize/Unprotoize

     This is a brief announcement concerning the release of new versions
     (1.39.0) of two free software tools called protoize and unprotoize.
     Protoize is a tool to assist in the conversion of old-style (K&R) C
     code  to  new-style  ANSI  C code or C++ code (with function proto-
     types).  Unprotoize is a tool to assist in the conversion  of  new-
     style ANSI C code to old-style (K&R) C code without function proto-
     types.

     Neither of these tools claims to do a  complete  conversion  (there
     are too many niggling little incompatibilities) however the bulk of
     the work (usually  more  than  90%)  in  such  conversions  usually
     involves  function  prototypes.   This  is the part of the job that
     protoize and unprotoize can perform automatically (leaving  you  to
     contend only with the remaining niggling details).

     The protoize and unprotoize tools have been built specifically  for
     doing  mass  conversions  on large systems of C source code.  Thus,
     both protoize and unprotoize are able to deal effectively  with  an
     entire group of source files during each individual run.

     Most importantly, protoize can use  information  gleaned  from  one
     source  file to help with the conversion of other base source files
     and/or include files in the same group.  This capability is partic-
     ularly  useful when one wants one's include files to contain ANSI C
     (and/or C++) function prototypes.  Protoize is  able  to  automati-
     cally insert such prototypes into include files based upon informa-
     tion it gets from your  base  source  (i.e. .c)  files.   Likewise,
     external  function  declarations  appearing  in one .c file will be
     converted to prototype form based upon  information  gathered  from
     the  corresponding function definitions in the same .c source file,
     or in other .c files.

     Protoize can also be  used  with  your  system's  own  native  lint
     libraries  to  generate a complete set of fully prototyped "system"
     include files.  Such a set can be useful for catching more function
     calling  errors  at  compile  time. (Note however that this feature
     requires an additional script which is  not  currently  distributed
     with the protoize/unprotoize patch kit.  Send E-mail to rfg@ncd.com
     for further details.)

     Protoize and unprotoize work in conjunction with the GNU C compiler
     (GCC)  which is used as a front-end information gathering tool.  In
     order to build or use protoize or unprotoize you  must  also  build
     and use GCC.

     Version 1.39.0 of protoize/unprotoize is significantly better  than
     previous  versions.   If  you  tried protoize/unprotoize before and
     didn't like them, please try them again.   You  may  be  pleasantly
     surprized.   The  1.39.0  version  of  protoize/unprotoize has been
     pre-tested by several people on a number of different machines  and
     is believed to be quite portable and reasonably bug free.  (My spe-
     cial thanks to all the pre-testers!)

     As with prior versions,  the  distribution  file  is  a  compressed
     *patch* file (not a tar file) which should be applied to a pristine
     set of GCC Version 1.39 source files.

     The application of the protoize/unprotoize patches in the kit to  a
     set  of GCC 1.39 sources will result in the creation of several new
     files.  Among these "additions" are the file README-PROTOIZE and  a
     common  pre-man-page  file called proto-unproto.1.  The latter file
     will be preprocessed into two man-page files (called protoize.1 and
     unprotoize.1)  by  the (modified) Makefile during a normal build of
     the (modified) GCC.

     Note that when using protoize 1.39.0 you may occasionally get  mes-
     sages like:

             please add `extern foobar()' to LIBC.c

     These messages are an indication that your native "system"  include
     files  are  not  yet in fully prototyped form.  For now, you should
     just ignore these messages.  I am now  developing  a  plan  whereby
     protoize will be able to automatically create protoized versions of
     system include files for a variety of systems.  Additional code and
     scripts  needed  to  implement  this  scheme will be available in a
     later release of protoize/unprotoize.

     Because many things have changed in this version,  it  is  strongly
     advised  that  you  read the README-PROTOIZE file and the man pages
     again, even if you  have  already  been  using  prior  versions  of
     protoize/unprotoize.

     As before, I welcome comments, suggestions, bug reports and  (espe-
     cially)  compliments.   User suggestions have been the major source
     of ideas for new features up till now, and I'll try to be receptive
     if you have a new idea for an additional feature.  Also, please let
     me know if you use these tools to do  a  conversion  on  any  large
     (i.e. >= 100k lines of code) system.

     The size of the protoize-1.39.0.Z patch kit file is  114009  bytes.
     If  you get the patch kit via anonymous FTP, via anonymous UUCP, or
     via mail server (as described below) and  if  it  has  a  different
     size, then something is definitely wrong.

     Protoize, Unprotoize, and GCC are owned and operated  by  the  Free
     Software Foundation.  They are available to all under the terms and
     conditions of the GNU General Public License, a copy  of  which  is
     provided with the source code for GCC.


                             U. S. Availability

     Protoize/unprotoize version 1.39.0 is available via  anonymous  FTP
     from   prep.ai.mit.edu   (18.71.0.38)   on  the  east  coast,  from
     ics.uci.edu   (128.195.1.1)   on   the   west   coast,   and   from
     tut.cis.ohio-state.edu (128.146.8.60) in between.

     On prep.ai.mit.edu the protoize/unprotoize version 1.39.0 patch kit
     is  located  in  the pub/gnu subdirectory of the home directory for
     anonymous  FTP.   Contact  for  help  with   FTP   transfers   from
     prep.ai.mit.edu is Joe Turner <cutter@ai.mit.edu>.

     On ics.uci.edu the protoize/unprotoize version 1.39.0 patch kit  is
     located  in  the  ftp/gnu  subdirectory  of  the home directory for
     anonymous  FTP.   Contact  for  help  with   FTP   transfers   from
     ics.uci.edu is <gnu@ics.uci.edu>.

     On tut.cis.ohio-state.edu the  protoize/unprotoize  version  1.39.0
     patch  kit  is  located in the pub/gnu/protoize subdirectory of the
     home directory for  anonymous  FTP.   Contact  for  help  with  FTP
     transfers  from tut.cis.ohio-state.edu is <uucp@cis.ohio-state.edu>
     or ...!osu-cis!uucp.

     Protoize/unprotoize  version  1.39.0  can  also  be  obtained   via
     anonymous  UUCP from osu-cis.  Contact for help with UUCP transfers
     from  osu-cis  is  <uucp@cis.ohio-state.edu>  or  ...!osu-cis!uucp.
     Instructions for anonymous UUCP transfers from osu-cis are given at
     the end of this file.

     My thanks to Joe Turner, Bryan Dunlap, and that special  person  at
     UCI  for  making  the  protoize/unprotoize version 1.39.0 patch kit
     available in the U. S.


                            European Availability

     Protoize/unprotoize version 1.39.0 is available via  anonymous  FTP
     from    mizar.docs.uu.se   (130.238.4.1)   in   Sweden   and   from
     archive.cs.ruu.nl (131.211.80.5) in the Netherlands.

     On mizar.docs.uu.se the protoize/unprotoize  version  1.39.0  patch
     kit  is  located in the ftp/pub/gnu subdirectory of the home direc-
     tory for anonymous FTP.  Contact for help with FTP  transfers  from
     mizar.docs.uu.se is Ove Ewerlid <ewerlid@mizar.docs.uu.se>.

     On archive.cs.ruu.nl the protoize/unprotoize 1.39.0  patch  kit  is
     located  in  the ftp/pub/GNU subdirectory of the home directory for
     anonymous FTP.  Contact for help with anonymous FTP transfers  from
     archive.cs.ruu.nl is Edwin Kremer <edwin@cs.ruu.nl>.

     European  sites  not  having  FTP  access  may  also  retrieve  the
     protoize/unprotoize version 1.39.0 patch kit from the Rijks Univer-
     siteit  Utrecht   by   sending   an   email   message   to   <mail-
     server@cs.ruu.nl> with the following contents:

               path <your_valid_return_address>
               btoa
               send GNU/protoize-1.39.0.Z
               end

     Leave out the line with "btoa" if you  prefer  uuencoding.   Please
     use a domain-based return address, or you may loose out.

     My thanks to Ove  Ewerlid  and  to  Edwin  Kremer  for  making  the
     protoize/unprotoize version 1.39.0 patch kit available in Europe.


           Instructions for Anonymous UUCP transfers from osu-cis.

     The file (osu-cis!~/GNU.how-to-get) describes how to get  the  fol-
     lowing software from osu-cis via semi-anonymous UUCP:

     C++ Tests        Compress         Deliver 2.0      GNU binutils
     GAS (GNU asm)    GNU Awk          GNU Bash         GNU Bison
     GNU G++          GNU libg++       GCC (GNU C)      GNU Chess
     GNU COFF Sup     GNU CPIO         GNU DBM          GDB (Debugger)
     GNU Diff         GNU Emacs        GNU Emacs Ada    GNU Emacs Franz
     GNU Lisp Man     GNU fileutils    GNU Find         GNU Finger
     GNU Go           GNU C/Gperf      GNU Grep         GNU Indent
     GNU Lex          GNU M4           GNU Make         GNU Pins+Art
     GNU Plot/2PS     GNU Roff         GNU Sed          GNU Tar
     Ghostscript      Gnews            Ispell           KA9Q
     Kermit           M3               MIT C Scheme     Mg2a
     NNTP             News             Oops             PCRRN
     GNU Patch        Pathalias        Protoize         Proxy ARP
     RCS              RFCs+IDEAS       RN               SB Prolog
     STDWIN           Sendmail         Smail            Smalltalk
     Tcsh             VM

     There's a lot of other available miscellany that  isn't  explicitly
     listed  here.   You can find out about it in the file osu-cis!~/ls-
     lR.Z

     The Computer and Information Science Department of the  Ohio  State
     University provides Free Software Foundation GNU products (and oth-
     ers) via UUCP only as a  redistribution  service.   Anything  found
     here  is  only  and  exactly  as it would be found on the indicated
     Internet hosts, were one to acquire it via anonymous FTP  (like  we
     did);  or else saved it as it flowed past on the Usenet source dis-
     tribution newsgroups.  OSU CIS takes no responsibility for the con-
     tents  of  any of the distributions described in this message.  See
     the Distribution document (emacs/etc/DISTRIB when  you  unpack  and
     build   Emacs)   and   the   GNU   Emacs   General  Public  License
     (emacs/etc/COPYING, similarly).

     Much of the GNU software is  in  beta-test.   For  a  list  of  the
     current  statuses  (stati?),  ask gnu@prep.ai.mit.edu for a copy of
     the latest FSF order form.

     Here is a set of L.sys or Systems file lines suitable for  contact-
     ing osu-cis:

     #
     # Direct Trailblazer
     # dead, dead, dead...sigh.  for the 3rd time in as many months.
     #
     #osu-cis Any ACU 19200 1-614-292-5112 in:--in:--in: Uanon
     #
     # Direct V.32 (MNP 4)
     # dead, dead, dead...sigh.
     #
     #osu-cis Any ACU 9600 1-614-292-1153 in:--in:--in: Uanon
     #
     # Micom port selector, at 1200, 2400, or 9600 bps.
     # Replace ##'s below with 12, 24, or 96 (both speed and phone number).
     # Can't use MNP with V.32 on -3196
     #
     osu-cis Any ACU ##00 1-614-292-31## ""7 Uanon

     Modify as appropriate for your site, of course, to deal  with  your
     local  telephone  system.   There are no limitations concerning the
     hours of the day you may call.

     We are deeply grateful to  Philips  Components  of  Eindhoven,  the
     Netherlands for the donation of a Trailblazer Plus and a Codex 2264
     for use by the community at large.

     Most items exist on osu-cis for distribution purposes in compressed
     tar  form,  exactly  what  you  find  on the indicated hosts in the
     specified origin files.  Most items are cut  into  pieces  for  the
     sake  of  uucp  sanity.  This separation helps if your uucp session
     fails midway through a conversation; you need restart only with the
     part that failed, rather than the whole beast.  The pieces are typ-
     ically named with a root word, followed by letter pairs  like  "aa"
     and "bj," meaning that the pieces are all named with the root word,
     followed by a dash and the suffixes indicated,  using  the  letters
     inclusive  between  the  two  limits.   All pieces but the last are
     100,000 bytes long, and the fragmentary last piece has some smaller
     size.

     The  protoize/unprotoize  version  1.39.0   patch   kit   file   is
     ~/gnu/protoize/protoize-1.39.0.Z.  It is one file of 114,009 bytes.
     Source is trix.mit.ai.edu:pub/gnu/protoize-1.39.0.Z as  of  25  Feb
     1991.