[net.lang.c] unix -> pc port tools

rich@rexago1.UUCP (K. Richard Magill) (01/22/86)

My original message:
> Could someone who has done a bit of UNIX to pc porting contact me, please?
> I would like to know what libraries & compilers you use.

Summary of responses:

We have ported a number of programs/systems between  UNIX/XENIX and the pc.
Curses on the pc was accomplished with the Lattice curses package. This
package provides the majority of the functionality and maintains the same
function calls. There are a few functions missing and some of the existing
functions perform slightly different (i.e. clear vs. erase). Some minor
surgery was performed on the screen I/O to stop the "snow" during refresh
on color monitors.

With a small number of "ifdef's", the ports were fairly straight forward.
----
We use Wizard C.  It is a SYS III look alike with long identifiers, enums,
and structure assignments.  It also has a fairly complete implementation
of the standard SYS III libraries.  It also comes with sources to the
libraries.  The only problem we have had are bugs that crop up in the 
compiler but Wizard is fast and responsive in fixing them.  For an extra
$100 we have gotten almost monthly updates.

Second (distant) choice would be MicroSoft C.

We are porting and supporting about 150,000 lines of C on BSD 4.x, 
SYS III, and MS-DOS.  
-----
I have no particular info on curses emulation packages for the PC, but I can
throw in a plug for Microsoft C Version 3.00. It runs fairly fast, and has
the most complete set of unix library calls and system calls I've seen in a 
PC package. I ported a large amount of code from a 68k environment, and with 
a few exceptions, it all ran first time.
-----
I  have  recently  ported the troll DBMS (and some of it's related
tools,   including a version of curses)  to the PC (MSDOS 2.x).  I
started  out  using  the  old  version  of  the Microsoft compiler
(s.03),   but  it had so many annoying UNIX incompatibilities that
I  looked  for  something  better.   The  new  Microsoft  compiler
(version  3.0)   is  the  best  I  found.   I  have found very few
incompatibilities  in  well  over  20000 lines of UNIX based code.
There  were,   of  course,  changes that had to be made because of
the  different  environment,   but  this,   too,  was eased by the
very UNIX compatible library provided.  

Here are a few of the problems I had:

        1.   A  minor  problem in stdio.h resulted in errors if it
                was included more than once.  

        2.   File  names  couldn't have multiple '.'s in them (not
                really a compiler problem).  
	
        3.    In   the  large  data  model,   I  experienced  some
                'casting'   errors on expressions that worked fine
                with the small data model.  

        4.   Reading  of  directories  cannot  be done in the UNIX
		fashion.  

Most  of  the other problems were very environment dependent (e.g.
signal catching,  pipes,  multiple process,  file name size).  
-----

Me again:

The man at Wizard that I spoke to told me they were now very nearly
SV compatible.

Sounds like it doesn't much matter which compiler or library set I use.
Based on the above recommendation,  the C compiler review in Dr. Dobbs,
and a phone call to Wizard Systems I've ordered a Wizard.  If you're
interested in this compiler I'll tell you where to get it for ~300.

K. Richard Magill
...decvax!cwruecmp!rexago1
"I'm not crazy.  I just don't give a f***."