|
1 | 1 | ## News
|
2 |
| -**Release 3.20 -- 2024-07-07** |
| 2 | +**Release 4.2 -- 2025-01-07** |
3 | 3 |
|
4 |
| -We are pleased to announce the release of Copilot 3.20, a stream-based DSL |
5 |
| -for writing and monitoring embedded C programs, with an emphasis on correctness |
6 |
| -and hard realtime requirements. Copilot is typically used as a high-level |
7 |
| -runtime verification framework, and supports temporal logic (LTL, PTLTL and |
8 |
| -MTL), clocks and voting algorithms. |
| 4 | +We are pleased to announce the release of Copilot 4.2, a stream-based DSL for |
| 5 | +writing and monitoring embedded C programs, with an emphasis on correctness and |
| 6 | +hard realtime requirements. Copilot is typically used as a high-level runtime |
| 7 | +verification framework, and supports temporal logic (LTL, PTLTL and MTL), |
| 8 | +clocks and voting algorithms. |
9 | 9 |
|
10 | 10 | Among others, Copilot is being used at the Safety Critical Avionics Systems
|
11 | 11 | Branch of NASA Langley Research Center for monitoring test flights of drones.
|
12 | 12 |
|
13 |
| -This release introduces support to upload the values of fields in structs, and |
14 |
| -add support for GHC 9.8. We also remove deprecated functions from |
15 |
| -`copilot-language` that had been renamed in prior versions for compatibility |
16 |
| -with newer versions of GHC. |
| 13 | +This release introduces several big improvements to Copilot: |
| 14 | + |
| 15 | +- Specifications can now use the same handler for multiple monitors, provided |
| 16 | + that the arguments to those handlers always have consistent types and arity. |
| 17 | +This simplifies the code that uses Copilot, since it's no longer necessary to |
| 18 | +create multiple boilerplate wrappers around the same handling routines. |
| 19 | + |
| 20 | +- The use of structs has been vastly simplified. Before, it was necessary to |
| 21 | + define class instances for structs, whose implementations were, although |
| 22 | +repetitive, not intuitive especially for users unfamiliar with Haskell. In |
| 23 | +Copilot 4.2, it is now possible to define those methods automatically by |
| 24 | +relying on default method implementations that work well for most cases, |
| 25 | +although users retain the ability to customize those methods if desired. |
| 26 | + |
| 27 | +- We have increased test coverage in `copilot-core`, reaching full coverage of |
| 28 | + the public interface. |
| 29 | + |
| 30 | +The interface of `copilot-core` has also been simplified, deprecating record |
| 31 | +fields of an existential type UExpr, which were largely unused outside of |
| 32 | +Copilot's internals. |
| 33 | + |
| 34 | +The new implementation is compatible with versions of GHC from 8.6 to 9.10, as |
| 35 | +well as with the Stackage Nightly. |
| 36 | + |
| 37 | +This release has been made possible thanks to key submissions from Frank Dedden |
| 38 | +(@fdedden), Ryan Scott (@RyanGlScott), and Kyle Beech (@kaBeech), the last of |
| 39 | +which is also a first-time contributor to the project. We are grateful to them |
| 40 | +for their timely contributions, especially during the holidays, and for making |
| 41 | +Copilot better every day. We also want to thank the attendees of Zurihac 2024 |
| 42 | +for technical discussions that helped find the right solutions to some of the |
| 43 | +problems addressed by this release. |
17 | 44 |
|
18 | 45 | Details are available
|
19 |
| -[here](https://github.com/Copilot-Language/copilot/milestone/27?closed=1), |
| 46 | +[here](https://github.com/Copilot-Language/copilot/milestone/30?closed=1), |
20 | 47 | and
|
21 |
| -[here](https://github.com/Copilot-Language/copilot/releases/tag/v3.20). |
| 48 | +[here](https://github.com/Copilot-Language/copilot/releases/tag/v4.2). |
| 49 | + |
| 50 | +As always, we're releasing exactly 2 months since the last release. Our next |
| 51 | +release is scheduled for Mar 7th, 2025. |
22 | 52 |
|
23 |
| -Current emphasis is on introducing support to update the values of elements in |
24 |
| -arrays, improving the codebase in test coverage, removing unnecessary |
25 |
| -dependencies, hiding internal definitions, and formatting the code to meet our |
26 |
| -new coding standards. We also plan to add extensions to be able to visualize |
27 |
| -streams. Users are encouraged to participate by opening issues and asking |
28 |
| -questions via our [github repo](https://github.com/copilot-language/copilot). |
| 53 | +We want to remind the community that Copilot is now accepting code |
| 54 | +contributions from external participants again. Please see the discussions and |
| 55 | +the issues to learn how to participate. |
| 56 | + |
| 57 | +Current emphasis is on improving the codebase in terms of performance, |
| 58 | +stability and test coverage, removing unnecessary dependencies, hiding internal |
| 59 | +definitions, formatting the code to meet our new coding standards, and |
| 60 | +simplifying the Copilot interface. Users are encouraged to participate by |
| 61 | +opening issues, asking questions, extending the implementation, and sending bug |
| 62 | +fixes via our [github repo](https://github.com/copilot-language/copilot). |
29 | 63 |
|
30 | 64 | ## License
|
| 65 | + |
31 | 66 | Copilot is distributed under the BSD-3-Clause license, which can be found
|
32 | 67 | [here](https://raw.githubusercontent.com/Copilot-Language/Copilot/master/LICENSE).
|
33 | 68 |
|
|
0 commit comments