Terra 1.0.0

I am extremely pleased to announce the release of Terra version 1.0.0. Terra is a programming language that integrates tightly with Lua and provides support for high-performance, low-level code and first-class metaprogramming. Terra runs on Linux, FreeBSD, macOS and Windows, is able to generate code for most CPUs, NVIDIA and AMD GPUs, and has been used on FPGAs. Applications and languages written in Terra have run on many of the world’s largest supercomputers.

This release recognizes what has already been true for many years: Terra is mature and is actively used in production environments to deliver best-in-class performance at a variety of scales. While the language has been stable for some time, this is the first release to introduce a stability policy that describes how we envision development proceeding in the future. This is a living document and we expect this policy to evolve as we gain experience with how this works for our users. As always, feedback is welcome.

A brief summary of what’s included in the release:

  • Support for dramatically more LLVM versions. Currently we support almost every LLVM version between 3.8 and 14, although we have plans to deprecate older versions to reduce the ongoing maintenance burden.

  • Substantially updated platform support, including CUDA (through version 11) and Microsoft MSVC (through version 2022).

  • Build system rewritten from scratch in CMake to improve portability, finally putting to rest a number of long-standing issues with the Makefile build.

  • Experimental support for a number of language features for efficient code generation such as atomics and switch statements that directly generate LLVM jump tables.

  • Very experimental support for AMD GPUs.

For a complete list of changes, see the release notes.

To get started with Terra, you can spin up an instance at Replit or download binaries for your platform. See the getting started guide for an introduction to the language.

Terra is a volunteer-run project, by and for its users. We always welcome new contributions. If you have any questions or want to hang out with other Terra users, come join our Zulip instance.

Finally, let me take this opportunity to thank Zach DeVito for the initial development of Terra. As someone who has been building applications successfully with Terra for many years, I’m grateful to be building on top of such a solid foundation.

Here’s to many more years of Terra!