DOWNLOAD
2177 Hits
Created on  09/27/2005 11:14
This is the last release before OMNeT++ 3.2. The configure script has been changed significantly -- please report experiences on your platform. IMPORTANT: due to an API change, only INET-20050922 (or later) will compile with 3.2pre4, earlier versions need a small patch (see below, and release notes of INET-20050922). NEW FEATURE: MySQL integration. There's no Windows binary for this release. Read on for the summary of the changes since 3.2pre3.

OMNeT++ 3.2pre4 (Sep 2005)
--------------------------
Simulation kernel:
- cleanup-time garbage collection turned OFF by default. Simple modules
have to deallocate all dynamically objects themselves, that is,
proper destructors have to be added to every simple module class.
Related new omnetpp.ini entries: perform-gc=<yes/no>, print-undisposed=
<yes/no>.

- added method cSimpleModule::cancelAndDelete(cMessage *msg) method, to
facilitate writing destructors.

- requirement for simple module constructors changed: they are invoked
without args now. Module_Class_Members() is now unnecessary, but still
accepted. See include/ChangeLog for details. All sample simulations
have been updated accordingly.

POTENTIAL INCOMPATIBILITY: modules with handcoded constructors need
to be modified. Add default values to constructor arguments:
(const char *name=NULL, cModule *parent=NULL).

- dup() method got moved to cPolymorphic, and return type changed to
cPolymorphic. In the next release we'll drop MSVC 6.0 support,
and move to covariant return types (which MSVC 6.0 doesn't support).

New examples:
- database integration. With the given extensions, one can transparently
redirect output vectors and output scalars into a MySQL database, read
module parameters from a MySQL database (all without modification of
existing models), or build a network from topology stored in a database.

Other:
- NED: enabled parent module gates to get connected with "++".
parentmodgate++ connects the first unconnected gate, but it doesn't
create new ones -- it is an error to exceed sizeof(gate).

- Precision in output vector/scalar files, that is, the number of
significant digits printed can be set from the configuration now:
[General] / output-scalar-precision=<int>, output-vector-precision=<int>.
The default is 12, but it might not be straightforward to decide what
is the "optimal" setting -- see src/envir/ChangeLog for a discussion.

- configure script revised significantly: better detection of compiler
(e.g. the Intel compiler is autodetected now); detection of linker
flags needed for OMNeT++ models to be put into static/dynamic libs
(-z allextract/--whole-archive, --export-dynamic); detection of "make"
program (must be GNU make); improvement in detecting BLT and MPI.
Now it also allows variables to be defined on the command line before
running ./configure, as an alternative to configure.user.

- nedtool and the preload-ned-files= omnetpp.ini entry now distinguishes
between two types of listfiles, @listfile and @@listfile; the difference
is in the interpretation of relative paths contained in the list file;
see src/nedc/ChangeLog for details.

- GNED: further improvements


OMNeT++ 3.2pre3 (Aug 2005)
--------------------------
Tkenv:
- the "Find/Inspect Objects" dialog became nonmodal, and it can be kept
open while the simulation is running.

- added the "Run until next local event" command to modules' context menu
(which pops up when you right-click an icon)

GNED:
- reorganized and improved connection properties dialog (knows what gates
submodules have, which gates are vectors, only offers output gates as src
gate and input gates as dest gate, etc.)

opp_msgc:
- "const fix": generate both const and non-const getter methods for fields
of class or struct type.

- it is no longer required to write out "fields:" in an otherwise empty
class definition

- added the possibility to set a base class field. E.g. kind=5 will
generate the setKind(5) line into the constructor.

- generate a protected and unimplemented operator==(), to prevent
accidental usage of compiler-generated one

- added the possibility (-P option) to declare generated classes to be
dllexport/dllimport on Windows.

- generated C++ header now contains relevant part of the .msg files as
Doxygen comment

nedtool, dynamic NED loading:
- don't look for the module type if the module vector size is zero

opp_nmakemake:
- added options (-s, -t, -d) to enable building Windows DLLs from simple
modules, plus -P option to support opp_msgc's similar option

Simulation kernel:
- implemented reference counting of encapsulated messages. This should
dramatically increase performance of wireless simulations, where lots
of message duplication is done (AirFrames) with most copies discarded
without looking into them (noisy channel or wrong L2 dest address).
There' nominal (<1%) performance penalty for other simulations.

omnetpp.ini:
- one can now use parameters like $MODULE_FULLPATH in the 2nd argument
of xmldoc(), i.e. the paths expression to select part of an XML file
to load. This allows for assigning XML params of several modules with a
single line in omnetpp.ini. Consider the following:
**.xmlConfig=xmldoc("all-in-one.xml","config[@mod=$MODULE_FULLPATH]")
where all-in-one.xml contains <config mod="net.host1.rt">...</config>
elements for every module.

- also fixed some anomalies in the XML path expression interpreter.


OMNeT++ 3.2pre2
---------------
Simulation kernel:
- WATCH() overhaul: now anything can be watched that has operator<<. If it
also has operator>>, you can use WATCH_RW() to make it editable on the GUI.
Objects and pointers to objects can be watched with WATCH_OBJ() and
WATCH_PTR(). STL container classes can be watched via WATCH_VECTOR(),
WATCH_PTRVECTOR(), WATCH_MAP(), WATCH_PTRMAP(), etc.

- modules can now get notified when a module parameter changes. Just redefine
the new handleParameterChange(const char *parname) method of cModule.

- parallel distributed simulation: added the cPtrPassingMPICommunications
class, for use in 64-bit supercomputing clusters like SGI Altix.

Tkenv:
- flush omnetpp.vec every time the simulation is stopped (to enable looking
at it with Plove to decide if simulation needs to be run longer)

- added support for OPP_PLUGIN_PATH environment variable, and
[Tkenv]/plugin-path= omnetpp.ini entry.

- cGate inspector: channel attributes (delay, error and datarate)
can now be changed from the GUI.

- added support for custom items on the context menu (e.g. right-click
on a router, "Inspect Routing Table..." Usage: place a .tcl file into
the plugin path (./plugins by default) that calls the extendContextMenu
Tcl procedure.

GNED: Michael Franzen contributed several improvements and fixes:
- new option: "Open imported files automatically": tries to open all the
files that are imported by an opened NED file. (It takes care that
every NED file is opened only once.)

- an "import path" can be specified, which is a list of directories
where imported files are searched for (Andras)

- new option: "Autoextend gates using gate++ notation". When this option
is enabled (Options Menu), GNED does not generate "gatesizes" sections,
and automatically uses the extension operator "++" on all gates that
are connected. However, you always can use indices in the property page
of modules to override automatic gate extension.

- "Auto-calculate gate size": when switched on, this option generates
"gatesize" entries for every gate of a module that is endpoint for
indexed connections. The code searches for the maximum index of all
connections ending at that port and generates the "gatesize" entry
from that. If no indexed connection to the port is found, the
"gatesize" entry is removed again.

- "Set 'nocheck' for new modules": generates "connections nocheck" for
all newly generated modules. This feature has a counterpart in the
property page of modules: an "Allow unconnected gates" checkbox
to enable/disable this feature for each module individually.

- plus several smaller fixes

Heaps of small API improvements, see include/ChangeLog. A sample:
- cOutvector: added recordWithTimestamp()
- cDisplayString: setTagArg() now accepts numeric (long) arg too.
- cMessage: if "vector" is a vector gate, msg->arrivedOn("vector")
now checks if msg arrived one of the vector's gates.
- cXMLElement: added getFirstChildWithTagName() and getNextSiblingBy-
TagName()
Thanks to Michael Tuexen, Ignacio Arenas Jimenez and Wei Yang Ng who suggested
several of the above improvements.


OMNeT++ 3.2pre1
----------------
- Plove and Scalars: improved Chart Settings dialog, and default settings
can now be saved. New Plove filters, and fix in the winavg filter.
- Tkenv: added Timeline Status Bar
- Tkenv: fixed the r= display string tag (it displayed a circle half the
specified size)
- Tkenv: cMessage inspector now displays message size in bytes as well (not
just in bits); also, it now displays time *until* arrival time (a delta)
in addition to the absolute arrival time.
- new cMessage member functions: byteLength(), setByteLength(), addByte-
Length(). They just invoke the length(), setLength(), addLength() methods.
- new utility function simtimeToStrShort()
- fixed gcc-4 compilation errors, and removed -fwritable-strings compiler
option
- fixes and improvements on opp_neddoc
- configure script now accepts NO_TCL=1 variable (for emergency use only)
- opp_nmakemake: improved output of recursive build
- Readme.MSVC updated on how to build DLLs from simple modules
Plus a number of smaller fixes, see the ChangeLogs in individual directories.
Documentation update is still TBD.