Release 1.0.2
elliottslaughter
released this
26 Jun 06:02
·
80 commits
to master
since this release
This release includes improvements to make Terra better match Unix-like system conventions, as well as substantial improvements to C calling convention conformance on PPC64le.
Changed behaviors
- Terra historically installed its shared library as
terra.so
orterra.dylib
on Unix-like systems. This is for compatibility with Lua, which allows a module be loaded asrequire("terra")
ifterra.so
(orterra.dylib
, depending on the system) is present. However, this conflicts with the Unix standard of having libraries prefixed withlib
. In this release, Terra installs its shared library aslibterra.so
orlibterra.dylib
, and installs a symlink forterra.so
orterra.dylib
for backwards compatibility. (Behavior on Windows and with static libraries is unchanged.)
Improvements
- Substantially improved C calling convention conformance on PPC64le, along with a new conformance test that matches behavior against C for all primitive types (
uint8
,int16
,int32
, ...) and structs/arrays of those types, up to a bound. Successfully tested on POWER9 hardware up toN
= 23. Current test suite pass rate on this hardware is 98.5%.
Binaries
Binaries for this release were produced in the following configurations:
- Linux: x86_64 on Ubuntu 18.04 with LLVM 13 and CUDA 11.6 (verified to work on Ubuntu 20.04 and 22.04)
- macOS: x86_64 on macOS 10.15 with LLVM 13 (verified to work on macOS 12.4)
- Windows: x86_64 on Server 2022 with LLVM 11 and CUDA 11.6
Note that, while we do our best to make the binaries compatible across OS versions/distros, in general we cannot guarantee compatibility outside of the specified OS release (except where otherwise noted).
Experimental binaries
In addition, the following experimental binaries are available. These platforms do NOT pass 100% of the Terra test suite, and are being provided on an as-is basis for interested users. Your specific mileage may vary depending on what Terra features you use.
- Linux: ARM64 on Ubuntu 18.04 with LLVM 13 (verified on Ubuntu 22.04: passes about 96% of tests)
- Linux: PPC64le on Ubuntu 18.04 with LLVM 13 (verified on RHEL 8: passes about 98.5% of tests)