Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-crg!caip!brl-adm!brl-smoke!smoke!prindle@nadc.ARPA From: prindle@nadc.ARPA Newsgroups: net.micro.cpm Subject: Mix C+ Message-ID: <2778@brl-smoke.ARPA> Date: Mon, 4-Aug-86 10:31:01 EDT Article-I.D.: brl-smok.2778 Posted: Mon Aug 4 10:31:01 1986 Date-Received: Mon, 4-Aug-86 21:17:46 EDT Sender: news@brl-smoke.ARPA Lines: 35 There is a review of Mix C in the June 86 issue of BYTE magazine. May I add that I own a copy for CP/M-80 and have found that it works in general, though a bit slower than Aztec C; the generated code is somewhat more bulky and runs more slowly too. It also has some strange characteristics for the unwary - for example, string substitutions (from #defines) eat up the whitespace following the token to be replaced, and if the replacement string does not include a trailing comment, no whitespace is replaced. E.G.: #define EXTERN extern EXTERN int noodle; expands to: externint noodle; Which, of course, generates a compiler error. The solution is to add a comment to the end of the #define with intervening whitespace: #define EXTERN extern /**/ Also, it's treatment of comments is somewhat nonstandard - I believe something like this blows off: /*commented out inode++; /*increment node pointer*/ All in all, such things wouldn't bother you once you know about them, but they are a pain if trying to port a program written for another compiler. So for $40.00, you probably get more than you pay for, though not everything you always wanted, and there is a huge book included (not the best C tutorial I've ever seen, but acceptable). Suggest you read the Byte article for more details on the cans and cannots. Sincerely, Frank Prindle Prindle@NADC.arpa