Platforms and compilers
What third-party software is used in terp™?
terp is implemented in pure Java. It requires at least Java5 (Java6 for one Java6-specific feature) and has been tested on a variety of platforms, including AIX, HP-UX, Linux, MacOS-X, QNX Neutrino, Solaris, and Windows. It should work on any other platform with a Java5 JRE but certain features might yield incomplete or incorrect information. Such features are what we call "platform-sensitive."
The ^os() type converter is a host expert that uses the Java runtime's system properties to populate its fields. When running on operating systems that we or our customers have not had a chance to test with, the operating system instance might not be automatically populated with meaningful data.
The ^procarch() type converter is a host expert that uses the Java runtime's system properties to populate its fields. When running on less common CPU types, the processor architecture instances might not be automatically populated with meaningful data. Supported processor architectures include: x86, ia64, amd64, sparc, sparc v9, powerpc, powerpc64, parisc, parisc64, and a host of embedded processor architectures for QNX Neutrino.
The ^shell() type converter is a host expert that represents a shell executor. On Windows, it attempts to use the executable denoted by the COMSPEC environment variable. In its absence, it assumes the presence of cmd.exe. On all other platforms, it checks for the SHELL environment variable and then for the presence of /bin/bash, /bin/tcsh, or /bin/sh. If the chosen one of these executables cannot be run for any reason, most process executor features will be broken. For example, the C++ compiler executors are derived from the ^shell() executor and will not be able to initialize themselves correctly.
The ^cpp() type converter (the C++ compiler executor) and all its subtypes (^acc(), ^gcc(), ^msvc(), etc.) rely on the presence of C++ compiler executables in certain standard locations. On Windows, terp attempts to inspect the Windows registry to locate the compilers. On Unix platforms, terp checks certain well-known locations. If compilers are installed in non-standard locations, terp might not be able to locate them. The list of supported C++ compilers includes: HP's aCC, GNU's g++, SUN's Workshop C++, IBM's Visual C++, Microsoft's VisualStudio C++, Intel's C++ compiler, and the QNX Neutrino qcc compiler.