Hi café!
We are really excited to announce Copilot 4.7.1 [1]. Copilot is a
stream-based EDSL in Haskell for writing and monitoring embedded
systems, with an emphasis on correctness and hard realtime
requirements. Copilot is typically used as a high-level runtime
verification framework, and supports temporal logic (LTL, PTLTL and
MTL), clocks and voting algorithms. Compilation to Bluespec, to target
FPGAs, is also supported.
Copilot is NASA Class D open-source software, and is being used at NASA
in drone test flights and with rovers. Through the NASA tool Ogma [2]
(also written in Haskell), Copilot also serves as a programming
language and runtime framework for NASA's Core Flight System, Robot
Operating System (ROS 2) and FPrime (the software framework used in the
Mars Helicopter). Ogma now supports producing flight and robotics
applications directly in Copilot, not just for monitoring, but for
implementing the logic of the applications themselves.
This release introduces several improvements to Copilot:
- Fix corner cases in the treatment of special floating point numbers
in the Bluespec backend and `copilot-theorem`.
- Fix errors in examples in `copilot-theorem` that use Z3.
- Add to `copilot-libraries` a module to perform sanity checks of
Copilot specifications.
- Add to `copilot-libraries` a module to facilitate implementing state
machines.
Copilot is compatible with versions of GHC from 8.6 to 9.10. Packages
are published on Hackage [3], as well as several Linux distributions
(e.g., Debian, Fedora).
This release has been possible thanks to submissions from Ryan Scott
(Galois) and Chris Hathhorn (Galois). We are grateful to them for their
contributions, and for making Copilot better every day.
For details on this release, see:
https://github.com/Copilot-Language/copilot/releases/tag/v4.7.1.
As always, we're releasing exactly 2 months since the last release. Our
next release is scheduled for Jul 7th, 2026.
We want to remind the community that Copilot is now accepting code
contributions from external participants again. Please see the
discussions and the issues in our Github repo [4] to learn how to
participate.
Current emphasis is on using Copilot for full data processing
applications (e.g, system control, arduinos, rovers, drones), improving
usability, performance, and stability, increasing test coverage,
removing unnecessary dependencies, hiding internal definitions, and
formatting the code to meet our coding standards. Users are encouraged
to participate by opening issues, asking questions, extending the
implementation, and sending bug fixes.
Happy Haskelling!
Ivan
--
[1] https://github.com/Copilot-Language/copilot/releases/tag/v4.7.1
[2] https://github.com/nasa/ogma
[3] https://hackage.haskell.org/package/copilot
[4] https://github.com/Copilot-Language/copilot