Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!mit-eddie!genrad!decvax!ucbvax!CORY.BERKELEY.EDU!dillon From: dillon@CORY.BERKELEY.EDU (Matt Dillon) Newsgroups: comp.sys.amiga Subject: Re: Manx 3.4 bug and sc.c Message-ID: <8705171820.AA20297@cory.Berkeley.EDU> Date: Sun, 17-May-87 14:20:07 EDT Article-I.D.: cory.8705171820.AA20297 Posted: Sun May 17 14:20:07 1987 Date-Received: Sun, 17-May-87 19:50:33 EDT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 55 You just ran across the infamous "cannot make declaration larger than 32K problem. E.G., if COUNT was defined to be, say, 256, then the storage would be 131072 bytes. The Aztec (And this is *definately* a bug) compiler uses unsigned shorts to remember global sizes. I believe the assembler has the same problem. Worse, if you declare something that is larger than 32K, the compiler doesn't tell you that it isn't giving you the space you requested! E.G. char cell[65535] gives you an 'array size cannot be negative' error, but char cell[65537] doesn't give an error message and only allocates a single byte. In anycase, what happened was that the generated assembly became: global Cell,0 instead of global Cell,131072 Which caused the assembler to ignore the declaration. Apart from this size limitation, I have found the Aztec does just about everything right. I use strange and uncommon declarations all the time and there isn't a problem. In fact, both Lattice and Aztec are very good compilers. I tend to like Aztec better, however. With a 1.4 Meg ram disk and precompiled symbol tables, compiles only take a few seconds! Whereas with Lattice, I would be eating up another 100K and would have to wait while the thing compiled all the thousands of #include's over and over again. -Matt Your message: :I was using someone's Manx compiler to compile the fractal terraion :generator sc.c (which, incidentally just guru'd when I tried to run it..) :anyway, it has a line : :short Cell[COUNT][COUNT]; : :in it (a global). This compiles, but is an undefined symbol at link time. :Changing the line to : :static short Cell .... : :fixed this. :Conclusion: this compiler (at least) does not understand C. :ow if Microsoft would write Intuition support and a MC680XX code generator :or MC4.0.... dream on :->. : :michael. BTW Microsoft? There getting almost as bad as IBM. I wouldn't trust them to give us a well supported compiler any more than I would trust my dog with an unattended cookie plate. -Matt