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***."