Requirements

13 May 2021

This page describes the hardware and software required to build and run the PLEXIL Executive and its supporting programs.

Development environment

Any modern Unix-like system with the required development software should be able to build and run the PLEXIL Executive and its associated programs.

The source distribution requires about 200 MB of file system space to build fully.

Operating systems

The development team regularly builds and maintains PLEXIL on the following operating systems:

  • Linux (Red Hat Enterprise Linux, versions 5 and newer; Ubuntu releases since 12.04 LTS) on Intel x86-64 and AMD64 hardware

  • macOS versions 10.8 and newer, on x86-64 Macs

The PLEXIL Executive has been successfully built on these additional platforms.

The PLEXIL development team welcomes feedback and patches from users of platforms other than Linux and macOS. While we make every effort to assure portability, we may not be able to offer support for alternative platforms.

Development software

The PLEXIL Executive and the StandAlone Simulator are written in C++. PLEXIL C and C++ code from the PLEXIL-4 releases should be buildable on any C++03 and C99 compliant compiler, and should run unmodified in most POSIX-compliant environments. A C++11 compliant compiler is required for the forthcoming PLEXIL 6 release. The ‘develop’ branch requires a C++14 compiler.

The following compiler suites are actively used in development, and known to work across multiple releases and platforms:

There are no known issues on desktop systems using either GNU libc/libcpp/libstdc++ or LLVM libc++, the standard libraries associated with the compiler suites above.

Other development tools required by PLEXIL can be found in a typical Linux or macOS development environment. The ones that aren’t preinstalled are often available through native package managers on Linux distributions, MacPorts or Homebrew on macOS, or the ports systems on BSDs.

The following are required to build PLEXIL from the tarball releases:

If you are building the Plexil Executive from a Git clone, you will also need:

Caution

The libtool utility provided with Apple’s Xcode development tools is not GNU libtool. You must install GNU libtool if you are planning to build PLEXIL from a Git clone.

The PLEXIL compilers, PLEXIL Viewer, and other development tools are written in portable Java. A Java 8 or newer runtime is required. PLEXIL is regularly tested with the following Java JDK environments:

The following software packages are required for building PLEXIL Java software from source:

  • Apache ant version 1.7 or newer - requires the antlr add-ons to build the Plexilscript compiler

  • Java compiler for the chosen Java runtime

To build the RoboSim graphical robot simulator example, additional X Window System and OpenGL packages are required:

  • libXi (X11 Input Extension) and its development header files

  • libXmu and its development header files

  • mesa - open source implementation of OpenGL

  • libGLU (OpenGL Utilities library) and its development header files

  • freeglut (OpenGL Utilities Toolkit) and its development header files

Runtime environment

Any environment capable of building the PLEXIL Executive should be able to run it. In addition, the PLEXIL Executive has been successfully ported to several embedded runtime environments.

Hardware

The Executive code base is 64-bit clean. It is actively maintained on Intel/AMD x86 architectures in both 32- and 64-bit modes. It has been successfully demonstrated on 32-bit PowerPC and ARM platforms by the development team. It should be portable to other 32- and 64-bit architectures with minimal effort.

Hardware floating point is desirable, but not required, if a software floating point library is available.

Runtime memory requirements vary by platform and application. The Executive should run adequately on most systems with at least 16 MB of RAM, including embedded platforms. Large PLEXIL plans may require more RAM.

Operating systems

The PLEXIL Executive has been demonstrated on these embedded platforms:

  • VxWorks real time operating system on 32-bit PowerPC

  • Buildroot embedded Linux on 32-bit ARM

Required libraries

The default C and C++ runtimes are GNU libc and libstdc++, or LLVM libc++ when the Clang compiler is used.

The PLEXIL Executive has run on embedded Linux platforms using uClibc-ng, a lightweight open-source libc implementation, and on the standard VxWorks C runtime, both with minor modifications to the source.

The development team has no experience with reduced C++ Standard Library implementations; we welcome user feedback about them.

Use of the following APIs is optional, and can be disabled at build time:

  • POSIX threads (pthreads). The universalExec application requires threads, semaphores, and mutexes. Other thread APIs may be usable with some effort; e.g. the macOS build uses the native Mach semaphores. But the Executive core is entirely single-threaded, and an Executive application can be built without threads. The NASA AOS PLEXIL-cFS app (link to be supplied) uses the Executive core in this fashion.

  • The POSIX dynamic loading API. While useful for (e.g.) loading interface libraries during development, dynamic loading is not required.