Skip to content

Commit

Permalink
Merge branch 'release-4.2' into src. Close #58.
Browse files Browse the repository at this point in the history
  • Loading branch information
ivanperez-keera committed Jan 8, 2025
2 parents e5860b7 + 5a8e110 commit 7ea2dee
Showing 1 changed file with 53 additions and 18 deletions.
71 changes: 53 additions & 18 deletions home.md
Original file line number Diff line number Diff line change
@@ -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).

Expand Down

0 comments on commit 7ea2dee

Please sign in to comment.