Project Description

This section will cover the tools and languages used during the development of the PPF. This list will undoubtedly change as the PPF is ported to more platforms, it is the hope of the developers that eventually PPF should run on all POSIX compliant systems with ANSI compliant c++ compilers.


Platforms
Full specification data on these two platforms can be found at, Livermore Resource Page.
Compilers

Two main compiler where used in the development of the PPF, KCC of Kuck and Associates, and gcc2.95.2. The development of the PolyMesh code prior to the start of the PPF project was done exclusively using KCC. During porting of the PolyMesh code to gcc under Linux we observed that KCC allows the programmer freedom with certain template construct usage that is not supported by other compilers. We had to manually add typename constructs to the code and update the compiler to successfully port the PolyMesh code. During the PPF development, versions of the project where tested with both compilers to ensure compatibility.


Versioning

On the Livermore platforms, the full PPF project and source were controlled by a branch in the Perforce versioning system. While this provides a convenient method for simultaneous development and integration on the Livermore machines, version control between development on the Linux platform and the others was more complicate. Due to security issues it was not possible to create a remotely accessible branch. Therefore during simultaneous development, work was divided so that multiple developers would not be modifying the same file. In the advent that the same file was modified by more than one programmer, diff was used as well as heavy commenting for integration.

On the Linux platform RCS was used for independent file versioning. This was useful for logging all changes and access to the repository during harmful changes.


Installation Software

In order to ease the hassle of installation on multiple platforms, we have used autoconf to determine system specifics. Currently, the configure file checks for endian ordering, a few system calls and the correct library. We plan, in the future to handle more complicated tests such as compiler reactions to C++ code snippets.


Rendering

The rendering package in development for the PPF uses Opengl for graphics. Opengl is a portable, 2D/3D graphical api which was developed at Silicon Graphics and has become the industry standard for high-quality graphics. Since there are no commercial ports of OpenGL to Linux, we have used a high-quality public domain OpenGL-like implementation called Mesa which was written by Brian Paul. We would like to thank Brian for his contribution to the open source community!!


External Libraries

For compilations, linking and usage of the Polymesh code we had to include a couple of external libraries into the make system of the PPF project. These libraries include the the following.


Editing Environment

PPF was witting in its entirety using the GVIM and Xemacs editors. I, Martin, much prefer using Gvim as my main editor, however Noel prefers the mammoth editor-turn-operating-system Xemacs. Both editors provide: