Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!quintus!jbeard
From: jbeard@quintus.UUCP (Jeff Beard)
Newsgroups: comp.lang.c
Subject: Re: C COMPILER EVALUATION
Message-ID: <444@eden.quintus.UUCP>
Date: Mon, 7-Dec-87 18:07:14 EST
Article-I.D.: eden.444
Posted: Mon Dec  7 18:07:14 1987
Date-Received: Sun, 13-Dec-87 04:20:30 EST
References: <10668@brl-adm.ARPA>
Organization: Quintus Computer Systems, Mountain View, CA
Lines: 59
Summary: C COMPILER EVALUATION for System/370 users

In article <10668@brl-adm.ARPA>, KCD%NIHCU.BITNET@wiscvm.wisc.EDU writes:
> We are currently considering installing a C language compiler on our
> MVS/XA facility, and would appreciate any feedback ....
> 
> specific items of interest to us include the following:
> 
>      A.) UNIX compatability
>      B.) ANSI compatability
>      C.) PC   compatability
>      D.) Access to the MVS environment
>      E.) Use of the 370 instruction set
>      F.) Control of the runtime environment
>           1. Use of exits
>           2. Use in existing programs
>      G.) Availability of tools (debuggers, etc.)
>      H.) Character code specifics
>      I.) Portability
> 

I've be involved in porting using the Bell portable C compiler, 
SAS, and Waterloo.  We have just completed such a port using the SAS
3.0f version and are quite pleased with the results.

Overview:  System / application requirements determine the adequacy of
	the compiler.  

	Compile times vary significantly.

	re-enterant code for LARGE System / applications is only viable
	with the SAS, using Pseudo Registers rather than static code
	sections.

	post compile time alteration of the generated code (ala cpp)
	is easiest using the WATERLOO

	generated object sizes vary across the compilers for a given
	source program and tend to be indicative of runtime performance,
	as some are not able to recognize the existing content(s) of
	the register set and blindly reload literals and arguments.

	Waterloo runtime is very efficient in the generated prolog/epilog
	code for called routines, but does not obey OS register conventions
	and thus calling OS functions gets tricky!

	SAS advertises object level compatibility between VM and MVS ...
	and by gosh ... it really works!

	MVS/XA is supported by SAS runtime library!

Anything more detailed can be obtained by calling

	Jeff Beard @ Quintus Computer Systems, Inc
	(415) 965-7700 x334

	or writing
	1310 Villa Street
	Mountain View, CA 94041
 
	Telex 9103805744