PROTOIZE/UNPROTOIZE version 1.39.0 now available
Ron Guilmette
lupine!rfg at uunet.uu.net
Wed Feb 27 06:53:27 AEST 1991
--text follows this line--
** 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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.
More information about the Comp.lang.c
mailing list