CPAL v1.17 Release Notes
Version 1.17 – released on January 20, 2017
This is maintenance release that consolidates the extensions brought by release 1.16, corrects issues in the distribution packages and comes with an improved documentation.
What is new
What has been fixed or changed
CPAL now ships with standard libraries located in the
folder in all distributions. These libraries must be included at parse time, this can be done through the parser option:
or by setting the
shell variable to the pkg folder location (e.g. on Linux:
include directive syntax is now of the form
include "my folder /my include with spaces.cpal" with quotes.
Strong typing in enums: enumerators must be prefixed by the name of the enum, e.g.
Fixed wrong error line numbers with included files.
\n\r line endings not handled correctly on Linux (#339).
Statements executed in the interactive mode of the interpreter do not need to be prefixed by
Fixed interpreter terminating when an unknown command is entered in the interactive mode (#337).
@cpal:XX annotations accepted by the parser. User-defined annotations of the form
first is anything other than
cpal, are ignored by the parser.
In multi-interpreter mode, predictable PIDs are given to the processes of each interpreter: first interpreter PIDs are 0, 1, 2, etc, second interpreter PIDs are 1000, 1001, etc.
Code metrics and overhead data (figures for embedded Linux platform)
Test code coverage for the execution engine: 78.8% (lines of code), 78.9% (functions) and 65.7% (branches)
Tests: parser=3948, interpreter=1219, cpal2x=4, others=30
Timing overhead (Cortex M4 at 120MHz with floating point unit): timer interrupt = 0.6us, scheduler overhead at process activation = 1.6us + n x 4.6 us where n is the number of active processes, process switching time = 2us