zadco@ssc-vax.UUCP (Rick Fairfield) (04/30/85)
Recently, I have been using the Whitesmiths C compiler (1980 version) on a CP/M 2.2 system. I'm really unhappy with this compiler and would like suggestions on a replacement. The only other CP/M C compiler I know of is one called BDS (?), which I have not had occasion to use. Here are some examples of things I hate about the Whitesmiths C and would, therefore, like to avoid in a replacement: 1) The names of many (most) of the "standard" library functions are very different than for my 4.2 bsd C compiler; many of these functions require unusual arguments and return unusual values. Most blatant example: putfmt, instead of printf. 2) All externals need to be initialized (yes, even pointers and arrays, although array names can be initialized to the null pointer). 3) You can have multiple functions in a single source file but, apparently, NOT in the file that contains main(). 4) putfmt (printf) doesn't flush the buffer until a NEWLINE is issued. 5) The compiler runs in 3 passes (preprocessor plus two compiler passes) which are invoked separately from a script; it is a VERY slow process and I can't figure out how to make it stop if an error occurs in an early phase (short of hitting the reset button). 6) Generally flakey implementation of I/O functions, particularly those that perform character I/O (text). I could go on but I think you get the idea. Any suggestions for a replacement will be appreciated. Also, please include $ amounts if you know them. Thanx, zzzzzadco aka Rick Fairfield Boeing Aerospace Co 206-773-1004
jp@lanl.ARPA (05/01/85)
> Recently, I have been using the Whitesmiths C compiler (1980 version) on > a CP/M 2.2 system. I'm really unhappy with this compiler and would like > suggestions on a replacement. The only other CP/M C compiler I know of is > one called BDS (?), which I have not had occasion to use. Whitesmith's C is indeed reputed to be a dog for the reasons which you list. BDS C, on the other hand, is a pretty good product. It is speedy and produces relatively small object files. But it is not a full implementation of C. One of the things that is missing is floating point math, although there are subroutines for doing floating point indirectly. If you want a full implemen- tation, I suggest you look at Computer Innovations CI-86. It has a good reputation and I think it supports an 8087 math coprocessor. The ad in May BYTE says that there is a new version available aimed at the IBM PC/AT (Is this an irresistible trend??). But there used to be a CPM-86 version available. Contact CI at Computer Innovations, Inc. 980 Shrewsbury Avenue Tinton Falls, NJ 07724 Call 800-922-0169 for "further information" or 201-542-5920 for "technical assistance" Good luck, Jim Potter jp@lanl.arpa
jrv@mitre-bedford.ARPA (05/02/85)
For pointers to C compilers, get a copy of Dr. Dobb's. There were also a number of reviews in Byte a while back. (August of some year - 1982 or 1983?). Some of the ones you should check out: BDS, Q/C, C80, Aztec. - Jim Van Zandt
jordan%ucbarpa@ucb-vax.ARPA (Jordan Hayes in his room) (05/02/85)
>>> FLAME ON <<< The question specifically stated a CP/M 2.2 system (you even put that part in your reply) -- CI-86 (as the name suggests... ;-) is for CP/M-86 -- 8087 support is not going to help any on a 2.2 system. >>> FLAME OFF <<< Anyway, the CP/M-86'ers out there probably appreciate the tip... Waste not, want not, so here's a question of my own : Does anyone know if there is a version of xlisp (or any other public domain lisp package) around? Is it on simtel20? I'm running CP/M+ (that's 3.0 -- the one with the good-features but no software...) on an Osborne Executive. Thanks. /jordan ARPA : jordan@BERKELEY.ARPA UUCP : ...!ucbvax!jordan -or- sunybcs!canisius!jordan
milazzo@RICE.ARPA (Paul Milazzo) (05/02/85)
Rick: I have both the BDS and Manx (Aztec II) C compilers for my CP/M system. For Unix compatibility, I recommend the Manx compiler. I have written a fair number of programs which compile and execute without change under both CP/M and 4.2bsd on VAXen and SUN-2 workstations. I have also ported, with minimal effort, several programs originally written under 4.2bsd. While the BDS compiler often seems to produce tighter code, I almost always use the Aztec II compiler because it is much closer to the K&R standard. Manx has also recently added a number of the Berkeley extensions such as "void" declarations. If someone is interested, I could post a review of the Aztec II compiler. Paul G. Milazzo <milazzo@rice.ARPA> Dept. of Computer Science Rice University, Houston, TX
jp@LANL.ARPA (James Potter) (05/02/85)
Right you are. Some mornings I'm not as bright as others.
ABN.ISCAMS@USC-ISID.ARPA (05/02/85)
Jordan, Re your query for a version of xlisp... look in Volume 118 of the SIGM Archives at SIMTEL20 - the whole volume is full of one. That would be micro:<sigm.vol118>give.me.it.all.you.fool (just kidding - you gotta cwd first) Now for CP/M 86... Same place, same crowd, but micro:<sigm.vol153> Regards, David Kirschbaum Toad Hall (ABN.ISCAMS@USC-ISID)
towson@AMSAA.ARPA (SECAD) (05/02/85)
Jordan - XLISP is available on SIMTEL20 in directory MICRO:<CPM.XLISP>. Dave towson@amsaa.arpa
shor@sphinx.UChicago.UUCP (Melinda Shore) (05/04/85)
[] > From: jp@lanl.ARPA > I suggest you look at Computer Innovations CI-86. Whoops!! The original poster was looking for a compiler for a CP/M 2.2 system. The C-86 compiler is for MS-DOS systems. Perhaps there's a C-86 for CP/M-86, but this still won't run on a humble z-80. There are a number of reasons not to go with the BDS compiler, the primary one being slight non-standardness. I have the Manx Aztec C. It's quite standard and is rather nice to work with. The problem with it is that it generates lousy code (n.b. mine is rather old. I understand newer releases are somewhat tighter). No discussions of CP/M C compilers would be complete without mention of Software Toolworks' C/80. Very inexpensive, very solid compiler, but *very* incomplete. I bought one two years ago. At that time the rather tiny library was in assembler. I think that right now the most appealing of the compilers is EcoSoft C. I don't have one, but I understand that they generate good, fast code and are reasonably K & R standard. I think it also supports post-K & R constructs. Hope this helps ... -- Melinda Shore University of Chicago Computation Center uucp: ..!ihnp4!gargoyle!sphinx!shor Mailnet: staff.melinda@uchicago.mailnet Bitnet: shor%sphinx@uchicago.bitnet ARPA: staff.melinda%uchicago.mailnet@mit-multics.arpa
droms@PURDUE.ARPA (Ralph E Droms) (05/05/85)
> ... No discussions of CP/M C compilers would be complete > without mention of Software Toolworks' C/80. Very inexpensive, very solid > compiler, but *very* incomplete. I bought one two years ago. At that time > the rather tiny library was in assembler. ... > > Melinda Shore I recently purchased C/80 V3.1. The library seems very complete, and *C* sources are included. The most significant limitations to V3.1 include: Float, double, entry and typedef keywords not implemented Float and long constants and arithmetic (Float and long may be added with the optional [$29.95??] "mathpak") Typedef not implemented Bit fields not implemented #line directive not implemented ** Function calls must have the same number of arguments as the called function definition. (There is a hack to make [s]printf work correctly.) #define does not allow arguments Blocks: declarations are allowed only at the beginning of a function For $49.95, I've found C/80 V3.1 to be a very useful tool. My biggest complaint is inherent in the nature of it's recursive descent algorithm; once an error is discovered, the compiler "discovers" MANY more errors until it gets itself resynched with the input. - Ralph Ralph Droms ihnp4!purdue!droms 445 MATH droms@purdue.arpa Dept. of Computer Science droms@purdue.csnet Purdue University West Lafayette, IN 47906 ----------
christe@rand-unix.ARPA (Chris McMenomy) (05/07/85)
The current Dr. Dobbs Journal has a clear and concise review of Software Toolworks C/80 3.1, both the standard C compiler and the Mathpak. --Christe