5 Standard Templates B Messages
Device Modeling Language 1.2 Reference Manual  / 

A Known Limitations

The following are known limitations of the dmlc compiler at the time of this writing:

Conflicting C names

Because of the way that C identifiers are generated from DML, there is a possibility that the C compiler will complain about conflicting identifiers. The reason is that when generating C functions from DML methods, the fully qualified is used, with double underscores substituted for the separating periods. This means that the following two declarations will create a conflict:

bank foo {
    method export bar { ... }
}
method export foo__bar { ... }

The qualified names the methods are foo.bar and foo__bar, respectively, and these both get mangled to the same C identifier foo__bar.

To avoid this problem, never use double underscores in names in DML.

5 Standard Templates B Messages