[gnu.g++.announce] PROTOIZE/UNPROTOIZE 1.39.0 now available

rfg@UUNET.UU.NET (Ron Guilmette) (03/10/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.



// Ron Guilmette  -  C++ Entomologist
// Internet: rfg@ncd.com      uucp: ...uunet!lupine!rfg
// New motto:  If it ain't broke, try using a bigger hammer.