Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utcsri!utegc!utai!garfield!john13 From: john13@garfield.UUCP Newsgroups: comp.sys.amiga Subject: Re: C-compilers for Amiga are Terrible (really Manx problem) Message-ID: <3060@garfield.UUCP> Date: Thu, 27-Nov-86 14:55:24 EST Article-I.D.: garfield.3060 Posted: Thu Nov 27 14:55:24 1986 Date-Received: Fri, 28-Nov-86 11:47:08 EST References: <8611191016.AA19776@cory.Berkeley.EDU> <1074@zen.BERKELEY.EDU> <1133@zen.BERKELEY.EDU> <9705@sun.uucp> Sender: larry@garfield.UUCP Reply-To: john13@garfield.UUCP (John Russell) Distribution: net Organization: Memorial U. of Nfld. C.S. Dept., St. John's Lines: 34 Summary: floating point broken? [] One problem I haven't seen mentioned (although if it is known and there is a way around it, I'd like to hear about it!): Manx printf doesn't like %f! main() { float x=1; printf("%f\n",x); } causes an "f" to be printed when I run it through Manx. This problem cropped up recently again, and I thought that it had happened before only when using 16 bit ints; however, when I used "+l" and c32.lib, it still wouldn't work. Now I do have programs written where it *does* work, scanf's and printf's with %f's all over the place. But I remember having problems with them then too, and having to use +l to get them to work (which was of no help the other night). The last several times that this has happened to me, I've always been a bit tight for memory (about 145K free before invoking compiler), but I can't see why that should make a difference, and even if that is the reason, it's still a pretty strange bug. The Manx documentation had nothing to say about this, other than that it supported full Kernighan & Richie, and that double precision variables take up 64 bits although only 32 are used. Kernighan & Richie also says %e is an alternate floating point specifier, but using that just changed the "f" to an "e" when the program was run. I also tried various combinations of double, "%lf", "%le", cc +l, ln -lc32, etc, without success. When using "%lf" it would accept the "l", but still print the "f", not take it as a parameter. Thanks for any help! John