<div dir="ltr">Hi everyone!!<br><br>We are really excited to announce Copilot 4.2 [1,2]. Copilot is a<br>stream-based EDSL in Haskell for writing and monitoring embedded C<br>programs, with an emphasis on correctness and hard realtime<br>requirements. Copilot is typically used as a high-level runtime<br>verification framework, and supports temporal logic (LTL, PTLTL and<br><div>MTL), clocks and voting algorithms. Compilation to Bluespec, to</div><div>target FPGAs, is also supported.<br></div><br>Copilot is NASA Class D open-source software, and is being used at NASA<br>in drone test flights. Through the NASA tool Ogma [3] (also written in<br>Haskell), Copilot also serves as a runtime monitoring backend for<br>NASA's Core Flight System, Robot Operating System (ROS2), FPrime (the<br>software framework used in the Mars Helicopter).<br><br>This release introduces several big improvements to Copilot:<br><br>- Specifications can now use the same handler for multiple monitors,<br>  provided that the arguments to those handlers always have consistent<br>types and arity. This simplifies the code that uses Copilot, since<br>it's no longer necessary to create multiple boilerplate wrappers around<br>the same handling routines.<br><br>- The use of structs has been vastly simplified. Before, it was<br>  necessary to define class instances for structs, whose<br>implementations were, although repetitive, not intuitive especially for<br>users unfamiliar with Haskell. In Copilot 4.2, it is now possible to<br>define those methods automatically by relying on default method<br>implementations that work well for most cases, although users retain<br>the ability to customize those methods if desired.<br><br>- We have increased test coverage in `copilot-core`, reaching full<br><div>  coverage of all elements of the public interface that are not</div><div>  automatically generated by GHC.</div><br>The interface of `copilot-core` has also been simplified, deprecating<br>record fields of an existential type UExpr, which were largely unused<br>outside of Copilot's internals.<br><br>The new implementation is compatible with versions of GHC from 8.6 to<br>9.10, as well as Stackage Nightly.<br><br>This release has been made possible thanks to key submissions from<br>Frank Dedden, Ryan Scott, and Kyle Beech, the last of which is also a<br>first-time contributor to the project. We are grateful to them for<br>their timely contributions, especially during the holidays, and for<br>making Copilot better every day. We also want to thank the attendees of<br>Zurihac 2024 for technical discussions that helped find the right<br>solutions to some of the problems addressed by this release.<br><br>For details on this release, see [1].<br><a href="https://github.com/Copilot-Language/copilot/releases/tag/v4.2">https://github.com/Copilot-Language/copilot/releases/tag/v4.2</a>.<br><br>As always, we're releasing exactly 2 months since the last release. Our<br>next release is scheduled for Mar 7th, 2025.<br><br>We want to remind the community that Copilot is now accepting code<br>contributions from external participants again. Please see the<br>discussions and the issues in our github repo [4] to learn how to<br>participate.<br><br>Current emphasis is on improving the codebase in terms of performance,<br>stability and test coverage, removing unnecessary dependencies, hiding<br>internal definitions, formatting the code to meet our new coding<br>standards, and simplifying the Copilot interface. Users are encouraged<br>to participate by opening issues, asking questions, extending the<br>implementation, and sending bug fixes.<br><br>Happy Haskelling!<br><br>Ivan<br><br>--<br><br>[1] <a href="https://github.com/Copilot-Language/copilot/releases/tag/v4.2">https://github.com/Copilot-Language/copilot/releases/tag/v4.2</a><br><br>[2] <a href="https://hackage.haskell.org/package/copilot">https://hackage.haskell.org/package/copilot</a><br><br>[3] <a href="https://github.com/nasa/ogma">https://github.com/nasa/ogma</a><br><br>[4] <a href="https://github.com/Copilot-Language/copilot">https://github.com/Copilot-Language/copilot</a></div>