Previous: About This Guide Up: Introduction Next: Reasons for Porting

What is a Port

The emphasis in the whole VICAR porting activity is the word portable. All VICAR code, including programs, procedures, and subroutines, must be able to run on many different computers and operating systems. This activity is not a conversion, which implies the old version is being thrown out. This happened when VICAR was converted from the IBM to VMS. It is truly a port, meaning that VICAR will run on the old VMS system as well as Unix systems.

The portable RTL has been set up to allow the current, unportable, VMS code to continue to run on VMS. This helps to smooth the transition between a VMS-specific system and a portable system. However, you must be careful to maintain the distinction between ported and unported code. After a program is ported, it still runs on VMS, as before, but it will look quite different internally.

MIPL will only officially support VICAR on a few computer platforms. All VICAR software must run on all of these platforms (specific waivers may be granted for special hardware-dependent code). These platforms depend to a large extent on the hardware that is present at MIPL. The VAX running VMS is obviously one of the supported platforms. A DEC Alpha running VMS is likely, although not yet officially supported. Currently supported Unix platforms are Sun SPARC (SunOS), Silicon Graphics, and Hewlett-Packard 9000/700 series computers. Solaris 2 support for Sun SPARC machines is also likely, although not yet official. VICAR code is only required to run on the machines MIPL officially supports. However, whenever possible, keep in mind general portability rules. It is possible that MIPL may add more supported machine types in the future. The more portably that application code is written, the easier the job of adding a machine will be.

It is important to realize that different computers run slightly different versions of Unix. It is not enough to say your program is portable if it runs on the VMS system and one Unix system. It must run on all the versions of Unix that MIPL supports. The RTL is designed to run on many more machines than will likely be supported, as you can tell from the HOST listings in Table . This allows parts of VICAR to be tested on machines that are not fully supported. Applications do not need to support all of these machines, but they should support as many as are practical.