[net.lang.c] If there are so many C compilers for MSDOS PC's .....

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