1.1 Pre-Releases¶
1.1.0-beta.7 (25/11/2021)¶
New features:
- Reachability counterexamples have been improved to also show the reachability data in a tabular form, alongside the state diagram view.
Improvements:
- Coco’s
gmock_helpers.hheader now includes some additional matchers to assist with matching values of typecoco::optionalorcoco::expected, making it easier to construct gMock-based tests. - The Coco generated mocks now expose the normally protected port fields (e.g. for a required port
r, the field would be calledr_) to allow thesend_methods to be directly accessed to ease construction of asynchronous mocks. - The Java API can now override the path to the license file, allowing for easier integration with CI pipelines.
Bug fixes:
- Fixes a case where the generated code would mistakenly elide sub-expressions with side effects when using the
Result.discardfunction. - Fixes a crash when generating code that uses
Result.valuein certain combinations. - Fixes a crash when running Eclipse for more than 24 hours whilst using the remote verification.
- Fixes a crash when typechecking files that used implicit member expressions on values of type Signal where the signals had parameters.
- Fixes an issue that would cause text to be incorrectly sized on the architecture, state, and counterexample diagrams on Linux.
1.1.0-beta.6 (05/11/2021)¶
- A new state machine structure viewer has been added to the Coco plugin for Eclipse. This provides an easy way to see a summary of which events are allowed in which states. This is only an initial release and more features will follow.
- Functions marked with
@noSideEffectscan now be used inside state invariants. - The command-line output now includes a summary of how many errors were encountered.
- Added support for using
COCOTEC_AUTH_TOKENtogether with thecocobinary to directly invoke Coco using a machine authentication token. - Fixes a problem where incorrect include extensions would be created when generating code.
- Fixes an issue with sizing the swimlane columns in the counterexample viewer on Linux.
- Fixes an issue that prevented using
coco --no-license-serverwith an on-premise license token.
1.1.0-beta.5 (27/10/2021)¶
- This release includes several improvements to the architecture diagram:
- Highly-connected ports are now shown as references rather than edges.
- Comments from declarations are now shown in the tooltips when hovering over a node.
- Performance on large diagrams has been improved.
- Added
generator.cpp.componentStyleto provide an additional mode for generating C++ code for components that is designed to improve compilation times on large components by generating code using a pImpl-like pattern. - Fixes a case where Coco would incorrectly allow components that used
_inside implicit member expressions. - Fixes a case where some unusual architectures were incorrectly allowed with missing
setAccesscalls.
1.1.0-beta.4 (30/09/2021)¶
1.1.0-beta.3 (26/09/2021)¶
Bug fixes:
- Fixes a case where the C generator would generate uncompilable C code when passing a
Slot<T>to a function of type&out T. - Fixes a case where the C generator would generate uncompilable C code when dereferencing via multiple fields (e.g.
x.y.z).
1.1.0-beta.2 (23/09/2021)¶
New features:
- Member functions inside external types, structs, and enums can now use the
binaryOperator,implicitCast, andunaryOperatorattributes. - Member functions on external types, enums and structs can now be nondeterministic.
Improvements:
- Non-verified fields of structs can now be referenced without preventing verification.
- The C generator now supports struct literals and
range.
Bug fixes:
- Fixes a case where the typechecker would fail, but no diagnostics would be reported.
- Fixes a case where the verification would report an internal error when a function inside a state machine returns a value that is then immediately implicitly cast.
- Fixes a case where
valsof typeBoundedwould not have their bounds checked on initialisation. - Fixes a bug where the support bundle command would incorrectly mangle the names of modules.