[net.lang.c] Lattice C for IBM Mainframes from SAS

dgary@ecsvax.UUCP (D Gary Grady) (07/30/85)

The latest (Summer 1985) issue of SAS Communications announces that the
SAS Institute has determined that all future releases of SAS will be
written in C.  Hitherto, SAS had been written in a mix of PL/I and
FORTRAN and (more recently) in PL/I.  But the absence of a serious PL/I
compiler on the IBM PC led them to choose C as the development language
for the soon-to-be-shipped PC version, and (quoting the article)
"Development for the PC was so successful, that it was decided that all
future versions of the SAS System, regardless of hardware, would be
written in C.  That decision meant that a C compiler for mainframes was
needed."

The article continues, "Under an agreement with Lattice, Inc., SAS
Institute has developed an IBM mainframe version of the Lattice C
compiler and library."  The compiler is said to offer reentrant code,
optimization, use of extended (31-bit) addressing modes (AMODE) under
MVS/XA, and generation of identical code under OS and CMS.  Also
included are UNIX-style I/O, malloc, calloc, free, etc. and, of course,
a math library.  There is also a cross compiler that runs on the
mainframe and produces 8086 object code for the PC.

The native-code mainframe compiler is in beta test; the cross-compiler
is available immediately.  No pricing information is given, but if
you're interested or want to become a test site, the article says to
call (919) 467-8000, ext. 280.

I have no direct experience with this compiler, nor have I any
connection with the SAS Institute other than having programmed in SAS.
But there have been enough queries about the availability of C on IBM
mainframes that this sounds like a quite interesting development, and
one that stands to promote the use of C.
-- 
D Gary Grady
Duke U Comp Center, Durham, NC  27706
(919) 684-3695
USENET:  {seismo,decvax,ihnp4,akgua,etc.}!mcnc!ecsvax!dgary

stevens@hsi.UUCP (Richard Stevens) (08/02/85)

I talked to them on the phone and they will want $3,500 per year
for the compiler (its licensed, not sold).  It will also come with all
of the non-standard Lattice C "features" that will break all your code
(#define definitions and invocations cannot take more than one source
line, lack of unsigned chars and unsigned longs, comments that nest
by default, conversion of structure arguments to structure addresses,
abysmal support for printf and scanf, and on and on).

We've been using Lattice for over 2 years for our PC product and just
dumped it for the new Microsoft compiler (which has worked flawlessly).
We can finally get rid of all the "#ifdef LATTICE" statements !!
We don't have to deal with Lifeboat anymore either !!

We're just about to order an IBM mainframe compiler and we're going with
Whitesmiths, now that they finally provide a Version 7 run-time
library as an option.  I have a lot more faith in the Whitesmiths
compiler faithfully following K&R than what I've seen from Lattice.
Also, Whitesmiths runs under CMS, OS and DOS, while SAS has no plans
at all for DOS.  Whitesmiths is also considering CICS which SAS won't
talk about.  The people at SAS also said when I called that their ads
had been placed "prematurely" as the product is not available yet
(but you can get a beta test version for free, if you like finding
other people's bugs).  One support issue that I should mention is
that I think the Whitesmiths compiler was done out-of-house and I don't
think they have an IBM mainframe in-house, while I'd bet SAS has an
actual system in-house.

	Richard Stevens
	Health Systems International, New Haven, CT
           ihnp4 ! hsi ! stevens

peter@kitty.UUCP (Peter DaSilva) (08/06/85)

How compatible with K&R is Microsoft C? How much of section 3 does the
library emulate? Last time I looked at compilers Lattice was the only
one that made a decent effort at implementing section 3. That was 6 months
ago and that was the one I bought.

Also, I don't have any #ifdef LATTICE statements. I do have a couple
of #ifdef IBMPC, but that's because the IBM-PC doesn't implement ioctl
and stat. :->  How many macros do you use that extend over 1 line anyway?

Anyway, if uSoft 'C' is particularly UNIX-library-compatible I'd like to
know about it.  I'm always looking for anything to help my massive porting
habit.

brownc@utah-cs.UUCP (Eric C. Brown) (08/07/85)

In article <252@kitty.UUCP> peter@kitty.UUCP (Peter DaSilva) writes:
>How compatible with K&R is Microsoft C? How much of section 3 does the
>library emulate? Last time I looked at compilers Lattice was the only
>one that made a decent effort at implementing section 3. That was 6 months
>ago and that was the one I bought.

You call 30 incompatible string functions, no math library, and a broken 
setjmp.h implementing section 3????  At the time, Wizard was selling a 
compiler that emulated a full System III library with MS-DOS extensions that 
was at least as bug free as Lattice 2.1[34] (not sure which version was
current).

>Also, I don't have any #ifdef LATTICE statements. I do have a couple
>of #ifdef IBMPC, but that's because the IBM-PC doesn't implement ioctl
>and stat. :->  How many macros do you use that extend over 1 line anyway?

Well, you must never use realloc, since realloc is not implemented in Lattice
2.15 and below.  Furthermore, since Lattice doesn't support struct assignment,
I end up with lots of multiline macros to fake the struct assignment.  Also, 
Lattice apparently never heard of unsigned long, since Lattice barfs on it.

>Anyway, if uSoft 'C' is particularly UNIX-library-compatible I'd like to
>know about it.  I'm always looking for anything to help my massive porting
>habit.

As far as I can tell, Microsoft C is a port of their Xenix C compiler to 
MS-DOS.  At least the library looks like a bunch of Xenix functions.


Happy with Wizard C,

Eric C. Brown
brownc@utah-cs
...!{ihnp4, seismo, decvax}!utah-cs!brownc

peter@kitty.UUCP (Peter DaSilva) (08/07/85)

> >Me
> Eric Brown
Me :->

[I made a request for information. Eric responded with what looks like a flame]

> >one that made a decent effort at implementing section 3. That was 6 months
> >ago and that was the one I bought.
> 
> You call 30 incompatible string functions, no math library, and a broken 
> setjmp.h implementing section 3????  At the time, Wizard was selling a 
> compiler that emulated a full System III library with MS-DOS extensions that 
> was at least as bug free as Lattice 2.1[34] (not sure which version was
> current).

I'm using Lattice 2.15. It supports the math library and the UNIX string
functions. Setjmp works fine. I don't know what older versions are like,
just what's available now.

> >Also, I don't have any #ifdef LATTICE statements. I do have a couple
> >of #ifdef IBMPC, but that's because the IBM-PC doesn't implement ioctl
> >and stat. :->  How many macros do you use that extend over 1 line anyway?
> 
> Well, you must never use realloc, since realloc is not implemented in Lattice

No, I don't.  Do I have to?

> 2.15 and below.  Furthermore, since Lattice doesn't support struct assignment,

Neither does V7 UNIX 'C', which is the base defacto language definition. Since
I'm currently using a slightly berkeleyised V7 I'm quite satisfied.

> I end up with lots of multiline macros to fake the struct assignment.

Why not just use pointers? I've never felt the need to assign structures, at
least not if I can't add & multiply them as well (the only thing I like about
ADA is that you can do this, with a little care).

> Also, 
> Lattice apparently never heard of unsigned long, since Lattice barfs on it.

So does K&R.

> >Anyway, if uSoft 'C' is particularly UNIX-library-compatible I'd like to
> >know about it.  I'm always looking for anything to help my massive porting
> >habit.
> 
> As far as I can tell, Microsoft C is a port of their Xenix C compiler to 
> MS-DOS.

Last time I looked Microsoft 'C' was a slightly modified version of Lattice
'C', which is why I asked the question. If it's Xenix 'C' that's more like
it.

> At least the library looks like a bunch of Xenix functions.
> 
> 
> Happy with Wizard C,
> 
> Eric C. Brown

Beating out the fires,

Peter da Silva