From 5a8e110c53947d06cb54a090303cc5c613273356 Mon Sep 17 00:00:00 2001 From: Ivan Perez Date: Wed, 8 Jan 2025 03:22:02 +0000 Subject: [PATCH] Update news for Copilot 4.2. Refs #58. --- home.md | 71 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 53 insertions(+), 18 deletions(-) diff --git a/home.md b/home.md index d1b4c01..f70d794 100644 --- a/home.md +++ b/home.md @@ -1,33 +1,68 @@ ## News -**Release 3.20 -- 2024-07-07** +**Release 4.2 -- 2025-01-07** -We are pleased to announce the release of Copilot 3.20, a stream-based DSL -for writing and monitoring embedded C programs, 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. +We are pleased to announce the release of Copilot 4.2, a stream-based DSL for +writing and monitoring embedded C programs, 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. Among others, Copilot is being used at the Safety Critical Avionics Systems Branch of NASA Langley Research Center for monitoring test flights of drones. -This release introduces support to upload the values of fields in structs, and -add support for GHC 9.8. We also remove deprecated functions from -`copilot-language` that had been renamed in prior versions for compatibility -with newer versions of GHC. +This release introduces several big improvements to Copilot: + +- Specifications can now use the same handler for multiple monitors, provided + that the arguments to those handlers always have consistent types and arity. +This simplifies the code that uses Copilot, since it's no longer necessary to +create multiple boilerplate wrappers around the same handling routines. + +- The use of structs has been vastly simplified. Before, it was necessary to + define class instances for structs, whose implementations were, although +repetitive, not intuitive especially for users unfamiliar with Haskell. In +Copilot 4.2, it is now possible to define those methods automatically by +relying on default method implementations that work well for most cases, +although users retain the ability to customize those methods if desired. + +- We have increased test coverage in `copilot-core`, reaching full coverage of + the public interface. + +The interface of `copilot-core` has also been simplified, deprecating record +fields of an existential type UExpr, which were largely unused outside of +Copilot's internals. + +The new implementation is compatible with versions of GHC from 8.6 to 9.10, as +well as with the Stackage Nightly. + +This release has been made possible thanks to key submissions from Frank Dedden +(@fdedden), Ryan Scott (@RyanGlScott), and Kyle Beech (@kaBeech), the last of +which is also a first-time contributor to the project. We are grateful to them +for their timely contributions, especially during the holidays, and for making +Copilot better every day. We also want to thank the attendees of Zurihac 2024 +for technical discussions that helped find the right solutions to some of the +problems addressed by this release. Details are available -[here](https://github.com/Copilot-Language/copilot/milestone/27?closed=1), +[here](https://github.com/Copilot-Language/copilot/milestone/30?closed=1), and -[here](https://github.com/Copilot-Language/copilot/releases/tag/v3.20). +[here](https://github.com/Copilot-Language/copilot/releases/tag/v4.2). + +As always, we're releasing exactly 2 months since the last release. Our next +release is scheduled for Mar 7th, 2025. -Current emphasis is on introducing support to update the values of elements in -arrays, improving the codebase in test coverage, removing unnecessary -dependencies, hiding internal definitions, and formatting the code to meet our -new coding standards. We also plan to add extensions to be able to visualize -streams. Users are encouraged to participate by opening issues and asking -questions via our [github repo](https://github.com/copilot-language/copilot). +We want to remind the community that Copilot is now accepting code +contributions from external participants again. Please see the discussions and +the issues to learn how to participate. + +Current emphasis is on improving the codebase in terms of performance, +stability and test coverage, removing unnecessary dependencies, hiding internal +definitions, formatting the code to meet our new coding standards, and +simplifying the Copilot interface. Users are encouraged to participate by +opening issues, asking questions, extending the implementation, and sending bug +fixes via our [github repo](https://github.com/copilot-language/copilot). ## License + Copilot is distributed under the BSD-3-Clause license, which can be found [here](https://raw.githubusercontent.com/Copilot-Language/Copilot/master/LICENSE).