Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!houxm!vax135!cornell!uw-beaver!tektronix!hplabs!qantel!lll-crg!seismo!mcvax!boring!guido From: guido@boring.UUCP (Guido van Rossum) Newsgroups: net.micro.pc Subject: Re: rename library routine in Microsoft C 3.0 Message-ID: <6731@boring.UUCP> Date: Fri, 17-Jan-86 18:51:55 EST Article-I.D.: boring.6731 Posted: Fri Jan 17 18:51:55 1986 Date-Received: Mon, 20-Jan-86 04:41:14 EST References: <6727@boring.UUCP> Reply-To: guido@mcvax.UUCP (Guido van Rossum) Organization: "Stamp Out BASIC" Committee, CWI, Amsterdam Lines: 38 Summary: Nevertheless, Microsoft C 3.0 is *great*! Apparently-To: rnews@mcvax In a previous article with the above subject I noted a strange error in Microsoft C's library. I received several letters, none very informative, most to the tone of "Microsoft blew it again". That's not fair! While they may have slipped here, my general feeling towards their 3.0 C compiler and library is extermely positive. We received it just a week ago, and I have already decided to junk our (2.15) Lattice compiler completely. I have used it to compile some 20,000 lines of C, and with one exception it compiled flawlessly. The exception was a compiler assertion error, apparently caused by a too complicated expression (it was really HUGE). I can live with that. About two third of this code had earlier been used with Lattice, and MSC proved to be *extremely* compatible. They support almost all MS-DOS- specific functions and #include files in the Lattice library. The only thing that bit me (besides the rename bug) was the fact that Microsoft has signed characters -- my fault for not writing portable code. The other third had hardly ever left UNIX, and was full of things like exec, chdir, stat, chmod and signal. It was very easy to port, because Microsoft implemented almost all well-known UNIX system calls that can possibly be emulated on MS-DOS to some extent. My main problems with porting it were changing assumptions about file names (I was parsing paths and only took '/' as a delimiter) and finding a replacement for fork/exec/wait sequences -- not too difficult, since Microsoft provides functions spawn* that combine these three calls. But the best surprise was the execution speed of my program (even though I directed all optimizations to saving space): sometimes twice as fast! I could go on, but these are my actual experiences until now. The manuals are also of very good quality, and I am looking forward to using the overlay feature of the new linker. Next, I might try porting Gosmacs! P.S.: please don't send any more mail concerning rename. -- Guido van Rossum, CWI, Amsterdam (guido@mcvax.UUCP)