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.