Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site cmcl2.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!panda!talcott!harvard!seismo!cmcl2!edler From: edler@cmcl2.UUCP (Jan Edler) Newsgroups: net.lang.c Subject: Re: AT&T 7300 C compiler/ variable name lengths (general) Message-ID: <1113@cmcl2.UUCP> Date: Tue, 16-Apr-85 23:09:30 EST Article-I.D.: cmcl2.1113 Posted: Tue Apr 16 23:09:30 1985 Date-Received: Thu, 18-Apr-85 23:41:46 EST References: <9726@brl-tgr.ARPA> <585@ahuta.UUCP> <1252@eagle.UUCP> Reply-To: edler@cmcl2.UUCP (Jan Edler) Organization: New York University Lines: 26 Summary: System V/68000 doesn't have this problem We have the System V/68000 tape from AT&T, and it contains a set of tools (C compiler, etc.) that we intend to use but haven't yet. On examination, they seem not to have either of the problems that have been attributed to the 7300 C compiler, namely short external identifiers or name clashes with runtime support routines like ldiv. The System V/68000 C compiler is based on pcc2, and is a more modern compiler than the old one we've been using (based on the MIT pcc-based C compiler). For example, it supports "void *", and no longer supports the old-style assignment operators or initializations (our version of the MIT compiler doesn't even support void). Furthermore, we are expecting a big improvement in the correctness and quality of generated code. Before we fixed it, the MIT compiler also suffered from the name clash problem. Not only was this a problem with routines like lmul or ldiv, but you had to watch out for global variables with names like "sp", "pc", "d0", and so forth. The SV/68 compiler has a nice way of dealing with this; '_' is not prepended to externals, but internal identifiers that should be hidden have a '%' in their names, making clashes with C identifiers impossible. The register names recognized by the assembler have '%'s in them. Jan Edler New York University edler@nyu cmcl2!edler