# 7. Release Notes

The following abbreviated list of release notes applies to this code base as of this writing (10 Mar 2023):

## 7.1. General notes

- Systems that have been tested are:

  - Linux (various flavors/distros), 64 bit (x86), with gcc, Intel, and Portland (*)

  - OS X (10.7 and above), 64 bit (x86_64), with gcc and clang (*)

- OpenPMIx has taken some steps towards Reproducible Builds (https://reproducible-builds.org/). Specifically, OpenPMIx’s `configure` and `make` process, by default, records the build date and some system-specific information such as the hostname where OpenPMIx was built and the username who built it. If you desire a Reproducible Build, set the `$SOURCE_DATE_EPOCH`, `$USER` and `$HOSTNAME` environment variables before invoking `configure` and `make`, and OpenPMIx will use those values instead of invoking `whoami` and/or `hostname`, respectively. See https://reproducible-builds.org/docs/source-date-epoch/ for information on the expected format and content of the `$SOURCE_DATE_EPOCH` variable.

## 7.2. Compiler Notes

- The Portland Group compilers prior to version 7.0 require the `-Msignextend` compiler flag to extend the sign bit when converting from a shorter to longer integer. This is is different than other compilers (such as GNU). When compiling PMIx with the Portland compiler suite, the following flags should be passed to PMIx’s configure script:

      shell$ ./configure CFLAGS=-Msignextend ...

  This will compile PMIx with the proper compile flags.

- Running on nodes with different endian and/or different datatype sizes within a single parallel job is supported in this release. However, PMIx does not resize data when datatypes differ in size (for example, sending a 4 byte double and receiving an 8 byte double will fail).