2005-03-31  ------ omnetpp-3.1 released ------

2005-03-23  Andras Varga

	* main.cc renamed to nedtool.cc

2005-03-11  Andras Varga

	* opp_msgc: fix: with customize=true, opp_msgc generates a comment in 
	the .h file containing the minimum code the user has to write -- dup() 
	in that code was missing const modifier [reported by Kurtis Kredo]

2005-03-02  Andras Varga

	* nedc removed (replacement is nedtool)

2005-01-10  Andras Varga

	* main.cc: factored out platform dependencies to include/platdep

2004-12-29  ------ omnetpp-3.0 released ------

2004-12-22  Andras Varga

	* opp_msgc: fix: in generated setArraySize(), avoid calling "new [0]"
	if size==0 is passed.

2004-12-19  Andras Varga

	* opp_msgc: fix: if a message was subclassed in another .msg file, base
	class fields were not visible in Tkenv [reported by Julien Cartigny]

2004-11-29  Andras Varga

	* ebnf.y: malloc.h changed to stdlib.h. Change needed for Mac OS/X 
	[patch from Michael Tuexen]

2004-11-23  ------ omnetpp-3.0b1 released ------

2004-11-19  Andras Varga

        * main.cc: implemented -h option [thanks Johnny]

2004-11-03  ------ omnetpp-3.0a9 released ------

2004-10-04  ------ omnetpp-3.0a8 released ------

2004-09-25  Andras Varga

        * opp_msgc: added support for initializers in structs (generates
        constructor for structs now). Fields without initializer are 
        initialized to zero.

        * opp_msgc: "message" keyword is also accepted in forward declarations

2004-09-24  ------ omnetpp-3.0a7 released ------

2004-09-24  Andras Varga

        * opp_msgc: adds some Doxygen comments to the generated classes

2004-07-27  Andras Varga

        * ebnf.lex: fixed "`yytext_ptr' undeclared" error with some flex 
        versions

2004-07-22  ------ omnetpp-3.0a6 released ------

2004-06-07  ------ omnetpp-3.0a5 released ------

2004-05-27  Andras Varga

        * opp_msgc: generates netPack()/netUnpack() for parallel simulation

2004-05-26  Andras Varga

        * opp_msgc: prohibit using cObject fields in structs and non-cObject
        classes (ownership issues)

2004-05-16  Andras Varga

        * opp_msgc: fixed two bugs introduced since 2.3p1

2004-05-15  ------ omnetpp-3.0a4 released ------

2004-03-22  ------ omnetpp-3.0a3 released ------

2004-03-18  Andras Varga

        * opp_msgc: if a struct or class has operator<<, it is used for the
        getFieldAsString() function (and will be displayed in Tkenv)

2004-03-05  Andras Varga

        * opp_msgc: remove output files (_m.cc,_m.h) if translation fails

2004-03-03  ------ omnetpp-3.0a2 released ------

2004-03-03  Andras Varga

        * opp_msgc: uses cPolymorphic as default base class for classes.
        (There was no default base class before.) Using cPolymorphic for base 
        class enables the class to be registered (Register_Class()), and
        doesn't cost anything because cPolymorphic has no data members only 
        vptr, and opp_msgc-generated classes have vptr anyway (as some methods
        are virtual.)

2004-03-01  Andras Varga

        * opp_msgc: added omitGetVerb boolean property. If turned on, generates
        field getter methods without the "get" word, e.g. a field called
        destAddr can be read by method destAddr() and not getDestAddr().
        Example usage:
           class Foo {
               properties:
                   omitGetVerb=true;
               ...
           };

        * opp_msgc fixes: 
        - added simtime_t to list of accepted types
        - accept symbolic constant for array size (before it could only be 
          numeric constant)
        - enums can be predeclared (needed if they come from another msg file)
        - fields can have an enum type and an initializer at the same time

2004-02-24  Andras Varga

        * main.cc: nedtool didn't understand -I without space [reported by 
        Andreas Koepke]

2004-02-09  Andras Varga

        * main.cc: improved list file handling

2004-02-04  ------ omnetpp-3.0pre1 released ------

2004-01-22  Andras Varga

        * opp_msgc: fix: didn't handle files in other directories (wrong
        #ifndef symbol was generated for the header file) [reported by
        Andreas Koepke]

2004-01-04  Andras Varga

        * opp_msgc: updated for changed ownership management rules

2003-12-10  Andras Varga

        * opp_msgc: removed sEnumBuilder usage

2003-12-06  Andras Varga

        * jar.c: removed check for zero-size module vectors

        * jar_expr.c: fixed buffer overrun introduced last time

2003-11-13  Andras Varga

        * jar_expr.c: added typecast when taking address of <math.h> functions
        in generated code. Needed for MSVC 7.0 compiler (it overloads some
        of these functions which caused ambiguities).

2003-11-13  Andras Varga

        * Checked in parallel simulation code that was developed March-May 2003,
        during my stay at Monash University. Changes:

        2003-03-25  Andras Varga
        * jar_mod.c: removed "islocal" stuff from module creation

        2003-11-11  Andras Varga
        * removed "machines" and "on" sections from NED grammar

2003-10-07  Andras Varga

        * ebnf.y: fixed nedc bug, it didn't handle user-defined functions
        with 4 parameters properly. [Reported by Andreas Koepke]

2003-10-07  Johnny Lai

        * jar.c : nedc added -h support for intel compiler on Linux
        (__INTEL_COMPILER && __linux__)

2003-09-30  Andras Varga

        * opp_msgc: with customize=true, adds a default dup() function to the
        generated _Base class that throws an exception and warns the user.
        Also made assignment operator protected, to force the user overwrite
        it with a fresh one in the customized class.

2003-08-12  Andras Varga

        * opp_msgc: implemented -h option, meaning identical to nedc
        [patch by Johnny Lai]

2003-07-27  Andras Varga

        * nedtool: implemented -t option (store source code), needed for
        documentation generation

2003-06-18  Andras Varga

        * TODO: should not generate set...ArraySize() methods for abstract
        arrays. Tkenv doesn't really need them and seems like
        they're in the way.

        * TODO: should *not* generate impl of copy ctor in .._Base class

2003-06-16  ------ omnetpp-2.3 released ------

2003-06-16  Andras Varga

        * opp_msgc: messages (cMessage subclasses) now accept message kind
        as second, optional parameter to constructor.

2003-05-01  Andras Varga

        * opp_msgc fix: perl in RedHat 9 (rpm 5.8.0-88) is broken, it doesn't
        recognize the [^\s] construct in regexps. Workaround: replaced [^\s]
        with [^ \t\r\n].

2003-03-19  Andras Varga

        * opp_msgc: accept, but (since imports are not yet supported) ignore
        the -I flag

2003-03-15  ------ omnetpp-2.3b2 released ------

2003-02-15  ------ omnetpp-2.3b1 released ------

2003-02-14  Andras Varga

        * nedc: no limit on ned file line length

2003-01-30  Andras Varga

        * added handling of new MathFunc4Args

2003-01-22  Andras Varga

        * jar_expr.c: adopted to increased type safety of cFunctionType

2003-01-04  Andras Varga

        * opp_msgc: added support for cplusplus {{ ... }} syntax

        * opp_msgc: 'cobject <classname>' syntax changed to 'class <classname>',
        'noncobject <classname>' changed to 'class noncobject <classname>'.

2002-12-22  Andras Varga

        * jar.c: zero module vector size crashed network setup code. Temprarily,
        check_module_count() changed to make zero size an error. This will
        be fixed in nedtool: zero size should be allowed and properly handled.

2002-12-07  Andras Varga

        * msgc.pl was renamed opp_msgc, and now it gets copied to the bin/
        directory; an opp_msgc.cmd was also added for Windows' sake

        * files for opp_msgc should now have .msg suffix -- nedcwrapper.sh
        removed

        * msgtest.ned renamed to example.msg

2002-11-23  Andras Varga

        * jar_expr.c: fixed bug which caused generated code to crash if
        user-supplied math function (i.e. its cFunctionType object)
        was not found

2002-11-04  Andras Varga

        * ebnf.y: changed right-recursion to left-recursion (large files caused
        stack overflow)

2002-10-19  Andras Varga

        * adopted to kernel changes around buildInside(), see include/ChangeLog

2002-10-07  Andras Varga

        * jar_mod.c: changed Interface macro names to ModuleInterface (see also
        include/ChangeLog)

2002-10-04  Andras Varga

        * nedc: changed opp_error() calls in generated code to throw new cException

2002-06-09  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>

        * Makefile.in (nedtool): use EXPAT_LIB when linking

2002-06-08  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>

        * Makefile.in: new targets nedtool, main.o

2002-07-07  Andras Varga

        * added main.cc and nedtool target to MSVC makefile; unix makefile
        to be done

2002-05-16  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>

        * jar_mod.c (do_simp_or_comp): fixed declaration of className()
        [resolves bug report #14 by jiake]

2002-05-04  ------ omnetpp-2.2 released ------

2002-04-06  Andras Varga

        * jar.c: made text of "version mismatch" #error in generated code
        more intuitive

        * jar.c: version number upped to 2.2

2002-04-05  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>

        * msgc.pl (generateClass): fixed compiler warnings about
        signed/unsigned comparison

2002-03-07  Andras Varga

        * bugfix (id 0004 in the bugtracker): nedc-generated code crashed if
        parameter specified in a 'like' clause didn't exist

        * bugfix: generated code didn't compile if a user-defined function
        (see Define_Function() macro) was used inside a channel definition

2002-02-11  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>

        * Makefile.in (nedc): use CXX instead of CC for linking (gcc-3 patch)

2002-01-23  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>

        * msgc.pl (generateClass): Calls to setOwner() for cObjects and
        cObject arrays inside of constructors.

2002-01-22  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>

        * msgc.pl (generateDescriptorClass): when generating
        getFieldStructPointer(): use getter function of message class,
        implies to get the pointer to the message class first.

2002-01-17  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>

        * msgc.pl: added surrounding #ifndef/#define/#endif construct to
        _n.h file generation to avoid multiple inclusion. Therefore
        introduced new variable $hdef that holds the macro string

2002-01-16  Ulrich Kaage  <kaage@int.uni-karlsruhe.de>

        * nedcwrapper.sh: strip all command line arguments except the last
        one so that only the ned file name is left. Use this for running
        grep and perl.

2001-10-26 Andras Varga

        * ebnf.y, jar_expr.c, jar_lib.c, jar_func.h, jar_lib.h: implemented
        that an expression may refer to a submodule parameter. Syntax:
        submod.par or submod[index].par. Limitations: index may not be
        an expression itself (must be constant, for-variable or (submodule)
        parameter); the generated expression is of 'anytype' (no type-check).

2001-10-06 Andras Varga

        * msgc.pl msgtest.ned msgdoc.txt nedcwrapper.sh: checked in files for
        experimental message subclassing. Read msgdoc.txt for instructions on
        how to try it.

2001-07-11 Andras Varga

        * ebnf.y: Eric Wu's Tru64/MPI port. Tru64 needs extra #includes.

2001-03-10  Andras Varga

        * ------ omnetpp-2.1 released ------

        * Borland C++ support removed: I deleted the project files
        (*.ide). I added equivalent Makefile.bc files (generated from the
        BC IDE), but they are completely unsupported at the moment. If
        there's interest, it's possible that later I'll add makefiles for
        the free command-line bc5.5 compiler.


2001-01-16  Andras Varga

        * ------ omnetpp-2.0p1 released ------

        * ------ omnetpp-2.0 released ------

        * disabled heapcheck in jar_mem.c (this makes nedc a lot faster if
        compiled with Borland C++)

        * added version mismatch check to generated _n.cc files

2000-11-19  Andras Varga

        * ebnf.y updated from GNED (no effect on nedc)

2000-09-30  Andras Varga

        * improvement just for Cygwin: lexer now explicitly ignores '\r'
        (=CR) chars

2000-05-22  Andras Varga

        * ------ omnetpp-2.0b5 released ------

        * ------ omnetpp-2.0b4 released ------

        * const-correctness fix on get_expression() arg list [reported by
        Frank Paehlke]

2000-05-07  Andras Varga

        * Makefile.vc improvements [from Balazs Kelemen]

2000-04-13  Andras Varga

        * Changed operator precedence to bind ||,&& thighter than ?:
        [suggested by Niko]

2000-04-10  Andras Varga

        * TRUE/FALSE (defines) replaced by true/false (C++ keywords)

        * in printf() statements, all "%lf","%lg","%le" was replaced by
        "%f","%g","%e"

2000-04-05  Andras Varga

        * bugfix: nedc hung if last line was a comment and it was
        incomplete (without LF) [reported by Roland Bless]

2000-03-27  Andras Varga

        * bugfix: conditional (?:) operator caused parse error [reported
        by Niko]

2000-03-26  Andras Varga

        * 'char *' --> 'const char *' changes in generated code

2000-03-12  Andras Varga

        * added lines to generated code to disable compiler warnings about
        unused vars under MSVC and Borland C++. I have no solution for gcc
        (gcc doesn't seem to have #pragma or any other mechanism to
        disable warnings from the source).

2000-03-07  Andras Varga

        * bugfix for distributed execution: corrected handling of machine
        parameters at network level

        * changed test12.ned and test13.ned

2000-01-13  Andras Varga

        * ------ omnetpp-2.0b3 released ------

        * "-s" option (output file suffix) was added

2000-01-04  Andras Varga

        * corrected '*new cPar = (char *)something' lines in the generated
        code to '*new cPar() = (char *)something', because in the first
        case, the cPar(char *) constructor was called (wrongly) instead of
        cPar() and operator=(char *).

1999-12-19  Andras Varga

        * changes in generated code due to cPar interface change (see
        sim/ChangeLog)

1999-12-18  Andras Varga

        * changed isA() to className() in generated code (see
        sim/ChangeLog)

        * macro names in module interface declarations (Interface...End)
        changed to reduce chance of name clashes

1999-12-05  Andras Varga

        * Makefile.vc added

1999-12-05  Andras Varga

        * compiled with MSVC. enbf.h added.

        * added generated files enbf.tab.c and lex.yy.c to CVS to make it
        possible to build GNED where flex/bison is not available

1999-08-15  Andras Varga

        * ------ omnetpp-2.0b2 released ------

        * bugfix: with "like", simulation crashed if the actual module
        type didn't have all parameters. (Brent's bug)

1999-07-17  Andras Varga

        * help text changed

1999-07-10  Andras Varga

        * ebnf.y fixed, nedc works fine again.

1999-06-30  Andras Varga

        * ebnf.y ported back from GNED

        * added nedc.ide and b.bat

        * doesn't work yet!

1999-06-21  Andras Varga

        * all sources checked in under CVS

        * makefile.in modified for use with GNU Autoconf; also renamed to
        Makefile.in

        * version.log renamed to ChangeLog

        * removed support for DOS with BC3.1

        * portability change: ebnf.y now includes malloc.h

1999-02-07  Andras Varga

        * updated for sim174

1999-01-25  Andras Varga

        * updated for sim172b: simulation.error() --> simError()

1998-12-27  Andras Varga

        * #include <malloc.h> changed to <stdlib.h>

        * makefile renamed to makefile.in

1998-08-17  Andras Varga

        * in the generated code, added check_error() to the 'if (isInput)
        read' lines

1998-08-15  Andras Varga

        * error message format changed to Borland-like for easy
        integration into the BC IDE ($CAP MSG(BORL2MSG) transfer macro can
        be used)

1998-07-15  Andras Varga

        * small fixes

1998-07-02  Andras Varga

        * some error messages made more clear

1998-06-09  Andras Varga

        * upgraded for sim162

1998-06-05  Andras Varga

        * minor bug (with display strings) fixed

1998-05-11  Andras Varga

        * shared ebnf.y/ebnf.lex files updated from GNED package

        * minor grammar change: made a bit more tolerant with semicolons

        * new: synonyme for `include' keyword: `import'.  I feel that
        'importing' is closer to what really happens (thanks Geza!)

1998-05-04  Andras Varga

        * ebnfcfg.h added, ebnf.lex/ebnf.y modified so that grammar source
        can be shared with GNED

1998-04-14  Andras Varga

        * "display:" phrase added to NED language; it is to support
        visualization/animation in Tkenv and other GUI simulation tools.
        See SIM's version.log for info on setDisplayString(type).

1998-02-14  Andras Varga

        * "generate vs not generate code from include files" problem:
        reverted back to pre-98 versions (98-103 were never released).

        * improved error msg format

        * JAR was renamed to NEDC.  This was necessary to reduce
        confusion: ARJ software has an archiver called jar; on Sun, Java
        archiver is also called jar; and JAR compiles NED files anyway.
        So this version is NEDC104.

1998-02-10  Andras Varga

        * bugfixes on #102; output code cleaned up around 'if' sections

1998-02-08  Andras Varga

        * typed parameters and type checking added to NED language and Jar compiler.
          Parameters can be declared: numeric, const numeric, string, bool, anytype.
            Syntax:
                   module Foo
                      parameters:
                        nn1,
                        nn2: numeric,
                        nn3: numeric const,
                        bb: bool,
                        ss: string,
                        aa: anytype;
                        ...

        Default type is numeric (as for nn1).  Anytype turns off type
        checking for the parameter, it will be compatible with any other
        type.  In computations, bool is treated as numeric.

        * C-style expressions completed with NEW bitwise operators:
           & and, | or, # xor (Note that ^ is reserved for power!)
           ~ complement, << >> shift

            Bitwise operators raised to one rank higher precedence than in C
            (just above ==,!=,<,>,<=,>=). Conditional (?:) is also at higher
            level than in C, just above &&,||,##.

        * notation of logical operators changed:
           && and, || or, ## xor (does not exist in C), ! not

        * compatibility: requires sim154 or above

1998-02-05  Andras Varga

        * development version

1998-01-01  Andras Varga

        * initial version of typed parameters added; still bogus

        * testNN.ned files cleaned up a bit

1997-12-13  Andras Varga

        * check for unset submodule parameters have been disabled. Now all
        parameters not explicitly set will be 'Input'.

        * known problem: if the same module gets included more than once
        in a ned file, C++ compiler will report duplicated symbols. This
        could be eliminated if Jar kept track what has been written out.

1997-12-13  Andras Varga

        * now generates code from include files too

        * uses Register_Module() macro

        * compatible with: sim150 and up

1997-10-02  Andras Varga

        * cleaned up & renamed several member functions; compatible with
        sim147

1997-07-10  Andras Varga

        * changes to makefile; #ifdefs in source to get it compiled with
        Cygnus gcc

1997-07-06  Andras Varga

        * handling of CONST parameters changed

        * support for consistency check of module interface declarations

1997-06-30  Andras Varga

        * INPUT now can be used without specifying default value

        * fixed bug with the NOT operator

1997-04-18  Andras Varga

        * bug with 'ancestor ref' parameters fixed

1997-04-12  Andras Varga

        * Change in generated source: 'value.cancelindirection()' placed
        before each setting of 'value' (otherwise, ref parameters would
        cause problems)

1997-04-06  Andras Varga

        * small changes to makefile

        * copyright msg changed; a typo corrected

1997-03-10  Andras Varga

        * bugfixes

1997-03-07  Andras Varga

        * new feature: submodule type can be parameter. Syntax:
        modulename : parametername LIKE moduletype

1997-03-03  Andras Varga

        * updated for sim108: knows about genk_xxxx functions

1997-02-25  Andras Varga

        * bugfixes

        * after submodule parameters sections, "if (isinput()) read()"
        added for each parameter

        * time units can be used as constants (e.g. 10ms, 1h 2m .001s)

1997-02-24  Andras Varga

        * makejar.bat added

1997-02-21  Andras Varga

        * internal expression handling totally rewritten; now it goes with
        sim103

        * keyword 'system' changed to 'network'

        * small additional modifications

1997-02-15  Andras Varga

        * data rate support added

1997-01-16  Andras Varga

        * jar_mod.c: bug with "inline connection delay specification"
        ('mm1.gg1 --> delay a --> mm2.gg2') fixed

1997-01-16  Andras Varga

        * jar.c: '-i' option corrected to '-I'

1997-01-10  Andras Varga

        * loop connection: 'start_index<=end_index' check removed from
        generated code

1996-12-15  Andras Varga

        * added support for delay, error phrases in connections

        * made case-sensitive

1996-12-01  Andras Varga

        * modified makefile for use with yacc

1996-11-01  Andras Varga

        * added oparators: == != < <= > >= and or ..

        * now recognizes external C++ functions

        * `sizeof()' and `index' operators

        * support for <-- (not only -->)

        * implemented conditional sections, conditional connections

        * `nocheck' operator

        * changed the implementation of links

        * removed "Mapping:" section (that info was moved into omnet.ini)

        * bug fixes etc

1996-09-29  Andras Varga

        * changed global "Machines:" keyword to "Mapping:" and implemented
        it

        * inserted adding of "default" machine to modules with no
        "machines:" definition

        * added opt_semicolon to make compiler more tolerant

        * fixed small bugs

        * to do: implement the I/O interfaces

1996-05-01  Andras Varga

        * PVM, machine, on

        * to do: system module: host.domain, only the defined formal
        machines can be used

1996-03-29  Andras Varga

        * increased buffer sizes....

1996-03-29  Andras Varga

        * under MSDOS, limit output filenames to 8+3 chars

        * stop processing if there's parse error in ANY file

1996-03-29  Andras Varga

        * totally rewritten parameter handling mechanism, for example
        changed implementation of REF to parentmodpar() mechanism.

1996-03-29  Andras Varga

        * simplified the grammar: functionvalue eliminated, inputvalue
        simplified

        * discovered that expressions cannot be nested (because code uses
        global variables). This way, one cannot write "-uniform(0,1)^2"!!!

1996-03-29  Andras Varga (15-29)

        * finished rewriting the grammar. Now the simple modules can have
        different gate vector sizes for each occurrence in the NED file;

        * deleted keywords `EndSubmodules', `EndConnections' etc;

        * added `GateSizes' section to compound module definition

        * added `sizeof(gate_vector_name)' phrase to NED

        * added several `check_xxx()' macros to generated code

        * changed the generated code for the `input' parameters

        * in the generated code, changed addgate()/addpar() calls to
        setgatesize()/setpar() -- addgate()/addpar() was moved to cMod's
        constructor

        * commented how expressions work

1996-03-15  Andras Varga

        * changed the grammar!!!  Not finished yet.

1996-03-15  Andras Varga

        * changed var names in generated code etc.

1996-03-15  Andras Varga (8-15)

        * begun porting to DOS/Borland C++

        * moved global variable definitions from jar.h to jar.c

        * added function prototypes and changed empty funtion arg list
        '()' to '(void)' to enable arg list checks in C

        * several small modifications to make source portable between
        yacc/bison, lex/flex and between different platforms

        * reorganized header files and renamed jar.h to jar_func.h; added
        several comments

        * added banners and comments to src files

        * added jar_yyrestart() function for compatibility with flex

        * added jar_mem.c to help debugging memory allocation problems

        * fixed a bug in jar_mod.c (pointer deallocated twice)

        * eliminated the source of several null pointer
        assignments/segmentation faults by adding jar_strcpy(),
        jar_strcat(), jar_strdup() etc.

        * begun tailoring generated code: changed format of channel
        creation function in generated C++ src

        * JAR now compiles and works under DOS/Borland C++ 3.1, DOS/DJGPP
        V1, Linux/Gnu C++

by Andras Varga, from March 1996
Initial version was written on AIX by Alex Paalvast, Jan Heijmans and
Robert van der Leij, during summer 1995.
