The next cumulative delivery for RSARTE 9.1.2 CP1 is now available for download. In addition to bug fixing and performance improvements a few new features are also included.
The Compare/Merge user interface has lots of buttons and views to fit in a relatively small window. To save some space the Structure view that appears when you do a sub-compare or sub-merge is now hidden by default. This view is intended to show the structure of code snippets, but since code snippets often cannot be parsed correctly by CDT in isolation, the view often is just empty (or contains a single "Translation Unit" node). If you want to show the Structure view you can do so by enabling the preference General - Compare/Patch - Modeling Compare/Merge - Show structure view in sub-merge sessions.
The text of comments is now visible in the Project Explorer. If the comment has multiple lines, only the first line is shown. Rich text annotations are ignored.
Comments for internal transitions can now be shown in the internal transitions compartment for a state symbol or state chart diagram. To make them visible enable the preference UML Development - Real Time - Diagrams - State Chart - Show Internal Transition Comments inside Compartment. This preference can also be set on individual state chart diagrams using the Appearance tab of the Properties view. The comment is shown on a separate line before the transition name and is preceded by '//'. For example:
A macro ATTR_UNUSED is now generated for the variable 'rtg_list' which is not used by generated code, and often neither used by user code snippets.
unsigned char ATTR_UNUSED rtg_list[1];
This macro is defined in the unit header file (by default called UnitName.h). For gcc this macro expands to the compiler directive __attribute__((unused))
which avoids a warning to be reported for this variable. For other compilers the macro expands to an empty string.
When this preference is set the C++ code generator automatically computes the set of source elements to transform, based on the top capsule and which other model elements it depends on (directly or indirectly). This scheme now works better when C++ external libraries are used. All code for prerequisite TCs will be built with the settings specified in the top executable TC, and external libraries will be linked with the application as usual.
Mattias Mohlin
Architect for IBM Model RealTime