bob@anwar.UUCP (Bob Erickson) (04/29/85)
How come I can't seem to find one which fits my requirements ? We are about to begin porting a major application of ours to the PC/AT. In trying to find the best C compiler to do the job. I've run into a no win situation so far. Our application expects a large, linear address space which can be gotten out of the 8088/8086/80286 environment using large model compilers, but there always seems to be a snag. Here are my requirements. 1. A full K&R C compiler implementation. 2. Bitfields which can be declared as either 16 or 32 bits in size. 3. The ability to dynamically allocate memory in chunks which might be larger than 64k bytes. Most of the major C compilers satisfy 1, but I'm having real trouble getting 2 and 3 satisfied by one compiler. Lattice C 2.? almost made it, but they don't support 32bit bitfields which means a lot of code hacking and ugliness. They satisfy all other requirements. Microsoft C version 3.? almost won too, but for some reason they will not allow any individual data structures to be larger than 64k bytes, whether they are dynamically allocated or not. Does anyone know of a C compiler for MSDOS PC's which is production quality and meets my requirements ? How about rumors of changes to existing compilers which might solve my problem ? Our application, a digital simulation/fault simulation system runs on 18 different computers including Vaxen, 68000en, Pyramiden, Data Generalen, and 16032en. (Oops. sorry, 32032en) When is Intel going to grow up and stop making such difficult architectures to work with ? Whats even more ironic is when their ads try to imply that segment registers and special purpose register usage is really 'state-of-the-art' Sorry for the flame, I had to get it off my chest. Again, any help in solving my requirements problem would be appreciated. bob -- ========================================================== Be Company: HHB-Softron 1000 Wyckoff Ave. Mahwah NJ 07430 201-848-8000 UUCP address: {ihnp4,decvax,allegra}!philabs!hhb!bob
sharpe@drivax.UUCP (Andrew Sharpe) (05/03/85)
{ihnp4,decvax,allegra}!philabs!hhb!bob writes: > > How come I can't seem to find one which fits my requirements ? > > Our application expects a large, linear address space which can be gotten > out of the 8088/8086/80286 environment using large model compilers, but there > always seems to be a snag. > > Here are my requirements. > > 1. A full K&R C compiler implementation. > 2. Bitfields which can be declared as either 16 or 32 bits in size. > 3. The ability to dynamically allocate memory in chunks which might > be larger than 64k bytes. A couple of comments. First, large model in no way gives you a 'linear' architecture in the pure sense. Second, K&R defines ( albeit vaguely ) bit fields to work with the 'int' type only, whatever that happens to be on your implementation. Third, allocation of huge arrays on the Intel architecture requires an implementation of brk ( or sbrk ) that guarantees contiguous allocation. Even then, accessing this huge data structure as an array requires help from the compiler, probably implementing a 'contiguous selector' algorithm. -- Andrew Sharpe { ihnp4, mot, ucscc, amdahl } !drivax!sharpe