Change Highlights

MC-3020 2.2 has refined its support for the features of BridgePoint 5 and has fixed problems discovered in the 2.1 version of MC-3020. However, MC-3020 2.2 is primarily a partner release to BridgePoint 5.1, required due to schema changes.

Enhancements

A new callout function has been added to allow error handling when too many Interleaved Bridges have been invoked overflowing an architectural queue.

To support polymorphic events in MC-3020 2.2, a $T "nosplat" filter is required in [PT install dir]/BridgePoint/[client_type]/client/lib/[libtrans.lib].

If a customer has a custom libtrans.* (typically done for internationalization purposes), that library must be updated to provide "nosplat". The default libtrans.* supplied by PT has this filter in it.

An example of PT "nosplat" is provided in [PT install dir]/BridgePoint/samples/translate/pt_trans.c.

The "nosplat" filter simply needs to remove the "*" character (as associated with polymorphic events in ModelBuilder) from the presented string.

Fixes

Change in Schema

The MC-3020 meta model has been changed per the release notes of BridgePoint 5.1. MC-3020 2.2 translates only models generated from BridgePoint 5.1.

Field Issue 447: Synchronous Service Problem

Corrected.

In this issue, the user tried to return data across an interleaved bridge. This is not possible. Interleaved bridges use "disconnected invocation"; the first section of the bridge operation posts the second section to a queue to be invoked at a safe time. Therefore interleaved bridges must return void.

Code was added to coloring to cause translation to fail with coloring errors when the user attempts to color a non-void bridge to be safe for interrupt invocation.

Field Issue 454: make bridge_skel

Fixed.

Makefile.domain had incorrect invocation of rox_get_dom_branch. Removed inconsistent config_version argument to rox_get_dom_branch.

Field Issue 455: Interleaved Bridge Callout

Interleaved bridging (safe for interrupts) uses a queue to post the bridge operations for execution between state actions. There was no explicit recovery code to handle the situation when this queue was overflowed. A new user callout function

UserInterleavedBridgeOverflowCallout()
was added.

Field Issue 458: No states in State Chart

Corrected.

Before polymorphic events, a state model with no states, transitions or events was harmless. However, with polys, it is possible for an event to land on a state chart with no states. This could be dangerous. In this situation, there is no opportunity to distinguish between Ignore and Can't Happen.

A change has been made to generate code that will fail to compile in this situation.

Field Issue 459: max_select_extent not found

Fixed.

domain_init.arc had a bug that is now fixed.

Field Issue 460: Bridge not interrupt safe

Corrected.

This was an attempt to use a feature that does not exist. Here, an old FBO type bridge action was trying to receive parameters from another context. Parameter passing across interleaved bridges is supported only for synchronous services (domain functions).

Added a test to fail out attempts to use FBOs for this type of activity and added wording in the User Guide that makes this more clear.

Field Issue 464: Bool not defined

Fixed.

The boolean type was not defined in certain situations. The required include file was added in the erroneous situation.

Field Issue 478: Assignment to bridge param

Fixed.

Code was missing for bridge parameters (by reference). Added it to frag_bridge.arc and changed fragment to call new code. This is consistent with sync_services and transformers.

Field Issue 227: Bridge coloring error

Fixed.

Strings were not processed correctly in clr_bridge.arc.

Field Issue 228: Incorrect Makefile generated for transformers

Fixed.

When transformers were part of a bridge object, correct code was generated, but the makefile did not compile and link it.

Field Issue 230: Bad enumeration values in transformer code

Fixed.

An error in rval_add_parens affected the formation of the enumerator value names.

Internal Issue 74: bridge_skel fails on empty subsystem.

Fixed.

When a model domain (subsystem) does not have any classes, MC-3020 generates error messages when running "make bridge_skel". A test for empty subsystems has been added.

Internal Issue 75: Make targets unavailable.

Fixed.

The make targets for the Single Directory Environment (SDE) were not operating properly. Additionally, the clobber target was not deleting the html reports. Note that the Single Directory Environment is developed for a few compilers that cannot deal with multiple directories of source and include files.