MEUR021@tufts.BITNET (01/23/87)
Date: 20 JAN 87 23:58-EST From: MEUR021@TUFTS To: INFO-ATARI16@SCORE Subject:C compiler I am planning to buy a C compiler. Do you have any suggestion ?
jafischer@watrose.UUCP (01/25/87)
> > I am planning to buy a C compiler. Do you have any suggestion ? Hey! Good news for MWC users / potential users. Remember that msg I posted some time ago asking for news about the C Source Debugger (Csd)? I got impatient, and phoned them on Friday, and was informed that yes, it is under development. I asked the guy for an estimate of the release time, and he simply agreed with me that "within a half-year" was a good guess. Oh boy oh boy. So now I'm back to having to decide which compiler to buy. I was just about to pick up Megamax this weekend. Now, if Megamax had a good debugger... Also: version 2.0 of MWC (oh, that's Mark Williams C, by the way) is soon to be released. Some of the mentioned improvements were: new manual with GEM documentation, automatic jump to Emacs upon compile errors, and automatic compiling from Emacs, uh, let's see, faster compile time, more library functions, and I forget what else. Now: of all the bug notices I've seen on the Net and elsewhere, Mark Williams seems to have been the target of the fewest. Is MWC the most robust compiler? I haven't seen too many Megamax bugs listed, but here's a few that I'm aware of (I work parttime at a computer store & fiddle with Megamax a lot): - gemdos functions within 'if' statements don't work unless you assign them to a variable. I.e., if (Cnecin() == 'q') exit(); won't work, but if ((dummy = Cnecin()) == 'q')... will work. (The reason I say gemdos functions is that other function calls within if statements do work; maybe it has something to do with the 'trap' instruction?) - the '%' operation is poorly implemented. Correct me if I'm wrong, but x % n is supposed to result in an integer from 0 to n-1, right? Well, it often results in a negative number. I.e., something like 30000 % 11 would produce a negative number. - ++ is extremely poorly implemented. Using post-incrementing within a loop will sometimes result in pre-incrementing, for one thing. I.e., for (loop = 0; loop < 10; array[loop++] = x) ; will sometimes go from 1 to 10, rather than 0 to 9. _Sometimes_. - Jonathan Fischer I THINK that I've got this straight: local: jafischer@watrose UUCP: watmath!watrose!jafischer csnet: jafischer%watrose@waterloo.csnet arpa: jafischer%watrose@waterloo.csnet@csnet-relay.arpa (If any of this is wrong, would some kind soul please notify me immediately? Up until I read some 'man' stuff on addresses a few minutes ago, I knew diddly about mail paths).
braner@batcomputer.UUCP (01/28/87)
[] Not that there aren't any bugs in the Megamax C compiler, but in this case the supposed bugs are NOT. Cnecin(), like all the BIOS, XBIOS and GEMDOS functions, returns a LONG value. In the case of keyboard input (Bconin(2), Cconin(), Cnecin()...) the lower word holds the ASCII code of the key, while the upper word holds the physical key code. For example, if 'q' is pressed, Cnecin() returns 00100071 hex. If you want to compare 'q' and Cnecin(), you should write: if ((int)Cnecin() == 'q')... My experiments on the modulus operator (%) and the post-increment (++) didn't show any problems. (If you have a SPECIFIC example, Jonathan, tell me.) - Moshe Braner
jafischer@watrose.UUCP (01/29/87)
In article <2139@batcomputer.tn.cornell.edu> braner@batcomputer.UUCP (braner) writes: > ... you should write > if ((int)Cnecin() == 'q')... Woops. My apologies, I assumed that Cnecin() was actually an int function. You got me there! But wait, >My experiments on the modulus operator (%) and the post-increment (++) >didn't show any problems. (If you have a SPECIFIC example, Jonathan, >tell me.) I'll try to dig up some examples, Moshe. At one point, I was printing out the values right where the '%' was causing me problems, and yup, they were negative. It was some code that worked fine on the IBM PC (Lattice) and PDP-11 compilers at work, but wouldn't work on Megamax on the ST. I ended up using floating point to work around it. The '++' thingy is more obscure, but it was definitely happening once. At least once. Again, it was something I'd written at work which wouldn't work on the ST. I'll look for the code and post it if it's still lying around on a disk somewhere. I suppose (meekness and humility emanating from your screen here...) that I was wrong in posting bug reports without some cold hard code to back up my claims. Unsubstantiated claims like that border on slander, right? Like, I'm dead meat, right? Lawsuit city... No! It was a Unix daemon, not me, who sent that message! ...And, of course, once I post the code, someone (probably Moshe) will point out the obvious error on my part... No, seriously, I'm pretty darn sure about these two errors. I'll look up those two code examples & post 'em pronto. -- - Jonathan Fischer (jafischer@watrose) or: watmath!watrose!jafischer or: jafischer%watrose@waterloo.csnet or: jafischer%watrose@waterloo.csnet@csnet-relay.arpa
MCCABE@MTUS5.BITNET (02/24/89)
Date: 24 February 89, 01:31:18 EST From: Jim McCabe MCCABE at MTUS5 To: INFO-ATARI16 at SCORE.STANFORD.EDU Subject: C Compiler My thanks to everyone who responded to my request for information about the available C compilers! Oddly, almost every piece of mail I received followed the form, "I own MWC, which is great, but you'll probably want Laser C, which I hear is also pretty hot." Laser C looks like the right choice for me personally too, but it's interesting to find so many MWC owners and so little Megamax users. Jim McCabe MCCABE @ MTUS5.BITNET