Support for optional signal checking. When signal checking is turned on, signals emitted by modules/channels must be declared with a @signal property in the module’s or channel’s NED description; undeclared signals will result in a runtime error. Signal declarations are of the form
<signalName> may contain wildcards (?,*). Type is optional; if present, data type can be long, unsigned long, double, simtime_t, string, or a registered class name. To allow NULL pointers, append a question mark to the class name. Example:
This feature is controlled by the check-signals=<bool> configuration option, and it is turned off by default for now.
Support for @statistic-style declarative result recording on dynamically registered signals (e.g. "conn-" where n is an integer). Instead of @statistic, add a @statisticTemplate property in the NED file, and for each new signal call ev.addResultRecorders(...).
Support for programmatically adding result filters and recorders on signals: cResultRecorder has been revised to allow result recorders to be used without a corresponding @statistic attribute, e.g. they can now be added to signals programmatically.
Further signals-related changes:
added emit(simsignal_t, const cObject*) to cComponent
added receiveSignal() overload for bool to cIListener
introduced SimsignalType which replaces the older cITimestampedValue::Type
added cObjectFactory::isInstance() method that effectively wraps a dynamic_cast
added Register_Abstract_Class() macro that allows abstract classes to be used in signal declarations as type.
New result filter: removeRepeats
Feature: Just-in-time debugging support.
new configuration options: debugger-attach-on-startup, debugger-attach-on-error, debugger-attach-command, debugger-attach-wait-time.
the simulation kernel can invoke the debugger on an error (or on startup) using the command-line specified by the debugger-attach-command option.
More freedom in NED property syntax: (1) Hyphens, dots and colons are now allowed in property names and indices; and (2) values no longer need to be enclosed in quotes if they contain parens, provided that parens are balanced.
Feature: Animation filters (right-click on any message, and select "Exclude messages like … from animation" from the context menu.)
Feature: "Debug Next Event" (Ctrl+F9). It causes the simulation program to stop in the debugger just before entering the handleMessage() call.
Fixes and workarounds for various issues on Mac OS X (poor animation speed, missing icons on OS X Mavericks, hang on the F5 key, etc.)
Fix: the "Filter Window Contents" dialog could lose state
Source cleanup (consistent naming style for Tcl procedures)
Use Eclipse 4.3 as base platform
Support for project-specific images: icons from the "images/" folder of the project and its dependencies are automatically used by the NED editor, and added to the Tkenv image path when the simulation is launched. (The folder name is currently hardcoded; it will become configurable in future versions.)
Sequence Chart: Fixed bug that caused including the same reuses multiple times. Fixed error handling when the error occurs in paint during startup.
Improved support for C++11, Mac OS X:
The source now compiles without any warning with both gcc and clang, using the "-std=c++11 -Wall" flags (clang is the default compiler on OS X since version 10.9 Mavericks).
Added proper support for cross-compilation using ./configure --host=i686-w64-mingw32
Updated install instructions for OS X 10.9 Mavericks. Specifically, gdb is no longer distributed with OS X; users are expected to install it themselves from MacPorts, and digitally sign it.
IDE: fixed the launcher not to throw error if the toolchain is clang.
Updated the source to compile with both Bison 2.3 and 3.0
Bugs fixed: http://tinyurl.com/omnetpp44-fixes