Hi café!

We are really excited to announce Copilot 4.6 [1, 2]. 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. Through the NASA tool Ogma [3] (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), 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 major release improves the Bluespec backend, producing more
suitable Verilog code. Prior implementations required modifying the
resulting Verilog to help connect it to external systems (e.g.,
sensors, actuators), while the new Bluespec backend produces code that
can be used without modification.

The new implementation is compatible with versions of GHC from 8.6 to
9.12.

This release has been made possible thanks to Sukhman Kahlon (NASA),
who carried out a thorough evaluation of our FPGA backend, and to Ryan
Scott (Galois), who implemented the updated solution. This work has
also greatly benefited from discussions with the Bluespec team on the
code generated by Copilot and possible improvements. We are grateful to
all of them for their contributions, and for making Copilot better
every day.

For details on this release, see [1].

As always, we're releasing exactly 2 months since the last release. Our
next release is scheduled for Jan 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.6

[2] https://hackage.haskell.org/package/copilot

[3] https://github.com/nasa/ogma

[4] https://github.com/Copilot-Language/copilot