DOWNLOAD
Change Log
What's New
==========

This file summarizes OMNeT++ changes in each release. For changes related to
simulation model compatibility, see doc/API-Changes. For more detailed info
about all changes, see include/ChangeLog, src/*/ChangeLog, and ide/ChangeLog.

OMNeT++ 4.4.1 (Feb 2014)
------------------------

Bugs fixed: http://tinyurl.com/omnetpp441-fixes


OMNeT++ 4.4 (Dec 2013)
----------------------

Sim:

  - 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

        @signal[<signalName>](type=<dataType>).

    <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:

        @signal[receivedPk](type=cPacket?);

    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-<n>" 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.

  - Added cNEDValue::parseQuantity()

  - New result filter: removeRepeats

  - Feature: Just-in-Time debugging support. It adds the following new
    configuration options: debugger-attach-on-startup=<bool>,
    debugger-attach-on-error=<bool>, debugger-attach-command=<string>,
    debugger-attach-wait-time=<time>. When any of the first two options are
    set to true, the simulation kernel will launch an external debugger
    attached to the simulation process at the appropriate time. The default
    debugger on Linux is Nemiver.

NED:

  - 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.

Tkenv:

  - 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