From: CRDGW2::CRDGW2::MRGATE::"SMTP::AI.MIT.EDU::GNULISTS" 27-FEB-1991 04:41:32.94 To: ARISIA::EVERHART CC: Subj: PROTOIZE/UNPROTOIZE version 1.39.0 now available From: gnulists@ai.mit.edu@SMTP@CRDGW2 To: Everhart@Arisia@MRGATE Received: by crdgw1.ge.com (5.57/GE 1.87) id AA27896; Wed, 27 Feb 91 04:30:04 EST Received: by life.ai.mit.edu (4.1/AI-4.10) id AA15269; Wed, 27 Feb 91 01:54:02 EST Return-Path: Received: from wheat-chex (wheat-chex.ai.mit.edu) by life.ai.mit.edu (4.1/AI-4.10) id AA14780; Wed, 27 Feb 91 01:29:26 EST Received: by wheat-chex (4.1/AI-4.10) id AA27212; Wed, 27 Feb 91 01:29:30 EST Resent-Date: 26 Feb 91 19:53:27 GMT Resent-From: gnulists@ai.mit.edu Resent-Message-Id: <9102270629.AA27212@wheat-chex> Received: from aeneas.MIT.EDU by life.ai.mit.edu (4.1/AI-4.10) id AA01320; Tue, 26 Feb 91 17:24:44 EST Received: from uunet.UU.NET by aeneas.MIT.EDU (5.61/4.7) id AA06390; Tue, 26 Feb 91 15:04:23 -0500 Received: from lupine.UUCP by uunet.UU.NET with UUCP (5.61/UUNET-primary-gateway) id AA03542; Tue, 26 Feb 91 14:54:47 -0500 Received: by lupine.ncd.com (4.1/SMI-4.1) id AA28591; Tue, 26 Feb 91 11:53:30 PST Original-To: uunet!gnu-gcc-announce@uunet.uu.net Path: lupine!lupine.ncd.com From: lupine!rfg@uunet.uu.net (Ron Guilmette) Sender: gnulists@ai.mit.edu Newsgroups: comp.lang.c,comp.std.c,comp.lang.c++,comp.std.c++,gnu.gcc.announce,gnu.g++.announce Subject: PROTOIZE/UNPROTOIZE version 1.39.0 now available Message-Id: <4115@lupine.NCD.COM> Date: 26 Feb 91 19:53:27 GMT Reply-To: lupine!rfg@uunet.uu.net Followup-To: comp.lang.c Organization: Network Computing Devices, Inc., Mt. View, CA To: info-gcc@prep.ai.mit.edu, info-g++@prep.ai.mit.edu ** NOTE ** If you decide to use the software tools described in the following message, you should probably keep an eye on the net newsgroup called `gnu.gcc.bug' for notices regarding these tools. Patches (when required) will be posted to that newsgroup. -------------------------------------------------------------------------- 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 . 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 . 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 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 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 . 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 . 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 with the following contents: path 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.