Note

You are not reading the most recent version of this documentation. 1.4.7 is the latest version available.

Language Standards

Language Standard 1
Tool Version:>= 1.0

This is the base language standard that was introduced with Coco 1.0.0.

Language Standard 1.1
Tool Version:>= 1.3

This is a small revision to 1 in order to introduce some new features. This standard was introduced in Coco 1.3.0.

The changes are:

  • compound await and simple await were introduced.
  • The builtin Vector module was introduced.
  • The following additional keywords were reserved: abstract, await, inherit, monitor, trace, verify.
  • Ports were prohibted from defining any members called: ambiguous, call, connect, drainQueue, processQueue, send, timer, or unused.

To upgrade to 1.1, modify the Coco.toml file to set language.standard to 1.1. Following this, fix any name clashes identified by the tooling; these should all be clashes with the new reserved words mentioned above.

Language Standard 1.2
Tool Version:>= 1.4

See Migrating to Coco Standard 1.2 for further details on how to upgrade.

Language Standard 2024
Tool Version:>= 1.5

This is a small revision to 1.2. The changes are:

  • The Display trait was introduced.
  • Format strings now default to format expressions using the Display trait instead of the Log trait.
  • Coco’s logging will by default log sends of signals if value logging is enabled. This can be disabled by setting the logSendSignals option to false.
  • The C++ generator will generate functions marked with @noSideEffects as const.
  • The C++ runtime will by default be split into header and source files. This can be disabled by setting the generator.cpp.headerOnlyRuntime option to false.