DML 0.9 was the version used internally at Virtutech before it was
release externally as DML 1.0.
More C-like syntax:
Multi-line /*...*/-comments are
allowed. Comments do not nest.
Identifiers cannot contain hyphens (-); use
underscores instead.
for-statements have changed to for
(...;...;...) ... as in C. Comma-separated expressions are
allowed in the first and third sections of the for-statement
head. Declarations in the first section of the head are not
allowed, yet.
verbatim <typedecl>; changed to
extern <typedecl>;.
C function types are handled.
The keyword exit has been changed to
return. exit is no longer a reserved
word.
The keyword fail has been changed to
throw, as in C++. fail is no longer a
reserved word.
The keyword free has been changed to
delete, as in C++. free is no longer a
reserved word.
The keyword except has been changed to
catch, as in C++. except is no longer a
reserved word.
Pre/post-increment/decrement operators ++,
-- have been added.
The shift-assignment operators <<= and
>>= have been added.
Assignments can be used as expressions, not only as
statements. (This is mainly of importance in the head of
for-statements.)
switch-statements, labels, and
goto-statements have been added.
All ANSI C and C99 keywords are reserved in DML.
The C++ keywords class, namespace,
private, protected, public,
this, using, and virtual
are reserved in DML for future use.
The keyword auto may be used as a synonym for
local.
The keyword bitslice-syntax has changed to bitorder, and the
colon following the keyword in such declarations has been dropped.
The keyword log-group has changed to loggroup.
Import declarations on the form import <identifier>; have been
disallowed. The file name must be quoted, and must include the
extension, as in e.g. import "io-memory.dml";.
The syntax for log-statements has changed to the form log "class",
log_level, log_group : "format-string", arg1, ..., argN;, using a
string instead of an identifier to specify the class, and a colon
before the format string. The log level is optional, and defaults to
1. The log class names must use underscores, as in "spec_violation",
not "spec-violation" as previously.
The syntax for field-objects has changed to require [...]
brackets around the range, as in field nyb0 [3:0];. It is also
possible to specify a 1-bit field using a single number without a
colon, as in field bit7 [7];
A simple syntax has been added for registering a callback to be
called later in the simulation. Instead of explicitly creating an
event object and specifying parameters and methods in it, an
after (...) call ... statement can be used; e.g. after (0.01) call
$mymethod(...);.
The standard library file "io-mapped.ddl" has been renamed to
"io-memory.dml".
The standard library file "builtin.ddl" has been renamed to
"utility.dml".
The standard library file "hardwire.ddl" has been renamed to
"dml-builtins.dml" (note however that the user has never needed
to import this file explicitly; it is done automatically by dmlc).
The device method finalize has been renamed to post_init.
The syntax export method ... has been changed to method extern
...; export is no longer a reserved word.