CompuServe Thread

Manx 5.0a – strike 1

10 messages in this thread
#89480From: David HamkinsFeb 10, 1990 10:45 AM
Anyone out there encountering problems with Manx 5.0a? I can't seem to get function prototypes to work. Manx generates faulty prototypes when functions are passed pointers to arrays, and needlessly generates warnings for seemingly valid prototypes. I've always thought that Manx's strong point was an error-free compiler. My experience with 5.0a leaves me *DEEPLY* troubled :-).
#90198From: Mike Spille/ManxFeb 14, 1990 4:07 PM
Could you show some examples please? If there are problems in this area, I'd like to have them fixed for the next version. But I can't fix 'em w/out examples.
#90338From: David HamkinsFeb 15, 1990 1:43 PM
The following examples illustrate some of the bugs I've encountered with 5.0a to date. Bug 1: 5.0a treats 0.0 as a char in the presence of float prototypes. Example: void foo( float null ) { } main(void) { foo( 0.0 ) ; } Aztec C Version 5.0a Jan 9 1990 7:57:19 Copyright 1989 by Manx Software Systems, Inc. clr.s -(sp) ^ File TMPA341.TMP; Line 16 # Opcode extension size did not match. 1 errors Bug 2: Prototypes are not generated correctly for functions taking array, or pointer to array arguments. Example: void foo1( char (*array)[3][2] ) { } void foo2(array) char (*array)[3][2] ; { } The above program, test.c, when compiled with -qp produces: void foo1(char array[2][3]*); void foo2(char array[2][3]*); Bug 3 (example superfluous): -wq logs only the first 25 (approximately) errors to AztecC.err. Additional errors are not logged, even when -ww is used. Tracking down these bugs takes time. Reporting the bugs in a general sense is much easier. In this spirit I've encountered the following additional bug. Bug 4 (sans example): _stkchk (via the -bd option) will occasionally corrupt the instruction immediately following its invocation (i.e. immediately following jsr __stkchk). Bug 5 (suspected, but not confirmed): sizeof(int) may not be working correctly. I *suspect* that sizeof(int) does not know whether 16 bit or 32 bit ints are being used, although I *have not* confirmed this. I rewrote the code using sizeof() and my problem disappeared. Forgive me if I seem blunt in my criticism of 5.0a. I realize that much has changed since 3.6 and that errors can be expected. If Manx supports 5.0a with courtesy, and corrects bugs promptly – if it offers the level of customer support which has been so very lacking in the past – perhaps I'll get over my grumpiness :-).
#90351From: Mike Spille/ManxFeb 15, 1990 3:41 PM
Thank you for the examples. I'll look into the problems and get back to you on them. That wasn't so hard now, was it? 😎 BTW, the reason I ask for examples is that roughly 25%-30% of the reports we get are programmer errors, not problems with our software. When we request exact examples from people, the lots of people end up saying "oops, sorry, it was my problem all along". Just saying "floats in prototyes don't work" is so vague that the information is almost useless to us – we could spend weeks (literally) just confirming that there is a problem, and what exactly it is, when you've had code that produces the problem all along. I realize that it takes time to come up with examples, but IMHO _not_ giving examples and making wild claims is plain irresponsible and counter-productive to getting the problems fixed.
#90355From: David HamkinsFeb 15, 1990 4:39 PM
I hear you Mike. Certainly it is much easier tracking down bugs with concrete examples. On the other hand, as a consumer, I feel that pin-pointing bugs is not my responsibility. Beta-testers get paid for that. I, on the other hand, have to take valuable time away from programming to track these things down. Again, perhaps I'm just angry at the lack of tech support in the past. At least here on CIS I've got someone to scream at 🙂 (just kidding). Seriously though, when I contacted Manx in the past, they always seemed to be giving me the brush-off. Not only was the tech support lacking, their attitude was all wrong. You said that Manx has corrected this problem. Well ok. I'll put my past experiences aside.
#90450From: Peter SmithemFeb 16, 1990 11:06 AM
I have not found any identifyable bugs yet. I had the compiler go into an endless loop on me last night while compiling uEmacs 3.10, but when I restarted the make, the same file compiled with no problems. I had been changing header files to make the compiler happy and the changes did not affect thefile which choked the compiler. In fact with all the changes in the header for other files, this file must have been recompiled five or six times and only hung the compiler once… strange. Error # 167 (expression too complex – simplify and recompile) is not documented anywhere I can find and was emitted by the compiler when it tried to evaluate the following expresstion: char name[SIZE]; struct foo { char n_name[SIZE]; … etc… }; int *iP; struct foo *fP; name[*iP] = fP->n_name[*iP]; this blows up While I have in the past seen similar errors (CP/M comiler ~8 years ago?, expression with several more pointer dereferences), I've never seen it on such a simple expression. The 3.6 compiler had no problems with exressions much more complex than this. While declaring an extra temp variable to hold the index works, I shouldn't have to do this! <UP ON SOAPBOX> This is yet another gripe to another software developer about …Obnoxious compiler version and copyright notices… Why is it that everyone insists on throwing this information all over the screen EVERY TIME THE PROGRAM RUNS??? I know what version of what compiler I'm running. I know who has the copyrights. Why do I have to sift through all this garbage to see what happened when I ran the program? A simple command line switch would suffice if I forgot! <DOWN OFF SOAPBOX>
#90297From: SyndesisFeb 15, 1990 9:46 AM
Can you give an example? Maybe it's a programmer error. 🙂 I know I certainly learned a lot when I switched to an ANSI compiler on the PC.
#90333From: David HamkinsFeb 15, 1990 1:34 PM
Who me? A programming error. Nah, couldn't be :-). John, I know you're a big Manx advocate, citing product stability as its strong point. 5.0a has shaken my confidence. Examples will be posted to Mike in this forum. Stay tuned …
#90427From: SyndesisFeb 16, 1990 4:43 AM
I own Lattice, too, but not the 5. version yet, I'll probably upgrade, and another faction within Syndesis does use 5.0. I own a commercial version of Manx, and just ordered 6.0. Advocate? Well, yes, but mostly from the big pile of source code for InterChange and InterFont that resides in Manx-ish code. Even if it was easy, I don't have time to port it and then test it to insure the port went correctly. So I'll maintain it all in Manx 3.6a for a long time, I imagine. I'm always distrustful of the first release of *ANYTHING*, and any developer would be a fool to rely on the first release of a new compiler, be it Manx or Lattice. Lattice 5.0 had plenty of bugs, too, and I'm sure Manx 6.0 has got some, too. I paid my $75 more just to keep up; I don't think I'll start working with it seriously until they've posted the second set of bug-fixing patches. 🙂
#90437From: David HamkinsFeb 16, 1990 5:58 AM
Your development strategey seems reasonable – maintain code with proven compilers. I'm developing new stuff though. Perhaps the current strain (of compilers) will be stable by the time I get done. BTW – How's Syndesis?