greg@vecpyr.UUCP (Greg Millar) (01/14/85)
Is there a C compiler that runs on big IBMs under MVS and/or CMS? If there is does it have a UNIX library for i/o etc? Is it an IBM product or someone else's? Can you link to other existing libraries written in other languages (eg FORTRAN, PL/I), I am particularly interested in GDDM (IBM's Graphics Package)? Thank you Greg Millar ...{ucbvax,decwrl}!dual!vecpyr!greg Visual Engineering, Inc. 2680 N. First San Jose, CA 95134 (415) 945-9055
ron@brl-tgr.ARPA (Ron Natalie <ron>) (01/17/85)
> Is there a C compiler that runs on big IBMs under MVS and/or CMS? > > If there is does it have a UNIX library for i/o etc? > > Is it an IBM product or someone else's? > > Can you link to other existing libraries written in other languages > (eg FORTRAN, PL/I), I am particularly interested in GDDM (IBM's Graphics > Package)? > Don't by the VM/CMS compiler from RSI (the Oracle) system. It is unusable. -Ron
Alan Crosswell <US.ALAN%CU20B@COLUMBIA.ARPA> (01/17/85)
WATCOM Products, Inc. (The University of Waterloo spin-off) has done a nice job on a CMS C compiler. The license fee is reasonable and I found it to be much nicer than Oracle, Whitesmiths, or ATT's C/370. As usual, the Waterloo folks have done a good job. You can call (519) 886-3700 or write to WATCOM Products, Inc. 415 Phillip Street Waterloo, Ontario N2L 3X2 Canada Waterloo C does not provide a "fortran" linkage by just declaring an external function as type fortran but you can write a 10 line assembly interface that maps from their linkage to OS linkage for example. They provide an example subroutine that does just this in the manual. Whether you can get this to work with PL/I or Fortran subroutines really depends. I would say that if you know the junk required to write an Assembler main program that can call a PL/I or Fortran subroutine then you would be able to do it in Waterloo C (with some Assembler). The converse situation: calling a C function from PL/I or Fortran is definitely doable. I have done something along these lines already where I call a C function as a second-level CMS interrupt handler. The first-level handler is an assembler routine that sets up the C environment (stack and registers). Again, the information I needed to set up the environment was in the Waterloo documentation. Alan Crosswell Columbia University Center for Computing Activities -------
herbie@watdcsu.UUCP (Herb Chong [DCS]) (01/20/85)
In article <7476@brl-tgr.ARPA> Alan Crosswell <US.ALAN%CU20B@COLUMBIA.ARPA> writes: >...Whether you can get this to >work with PL/I or Fortran subroutines really depends. I would say that if >you know the junk required to write an Assembler main program that can call a >PL/I or Fortran subroutine then you would be able to do it in Waterloo C >(with some Assembler). > >Alan Crosswell >Columbia University Center for Computing Activities If the person who asked this is using the PL/I Optmizing compiler, then declaring the interface routine as EXTERNAL ENTRY OPTIONS(ASSEMBLER) will use essentially what is the OS interface. Using OPTIONS(FORTRAN) will guarantee generating IBM's standard FORTRAN linkage convention used by all their OS FORTRAN products. Calling a PL/I program is somewhat messier as the PL/I runtime environment needs to be established so that PL/I can perform error recovery. This is documented in the Programmer's Guide for PL/I. You should use the FORTRAN calling sequence from CW and tell PL/I that it is being called by a FORTRAN program. Herb Chong, BASc Computer Consultant I'm user-friendly -- I don't byte, I nybble.... UUCP: {decvax|utzoo|ihnp4|allegra|clyde}!watmath!water!watdcsu!herbie CSNET: herbie%watdcsu@waterloo.csnet ARPA: herbie%watdcsu%waterloo.csnet@csnet-relay.arpa NETNORTH, BITNET: herbie@watdcs, herbie@watdcsu POST: Department of Computing Services University of Waterloo N2L 3G1 (519)885-1211 x3524