Thu, 22 Aug 2013 19:12:10 +0100 mjsousa Add code to check if an IN_OUT variable is being passed an IL list in formal IL FB/function invocations.
Thu, 22 Aug 2013 18:50:43 +0100 mjsousa Generate correct error message when encountering IL lists embedded in IL formal invocations.
Thu, 22 Aug 2013 16:53:17 +0100 mjsousa Fill in the 'datatype' anotation in the identifiers of symbolic variables.
Thu, 22 Aug 2013 16:51:22 +0100 mjsousa Fix C code generation of FB invocation in IL.
Thu, 22 Aug 2013 07:39:33 +0100 mjsousa Fix detection of datatype errors on IL conditional flow control operators (JMPC, RETC, ...)
Wed, 21 Aug 2013 21:56:41 +0100 mjsousa Allow array_dimension_iterator to accept an array_spec_init_c.
Wed, 21 Aug 2013 21:34:43 +0100 mjsousa Small code cleanup (move common code to a function)
Wed, 21 Aug 2013 21:26:55 +0100 mjsousa Fix datatype analysis of conditional IL operators (CALC, CALCN, RETC, RETCN, JMPC, JMPCN, S and R)
Wed, 21 Aug 2013 21:14:50 +0100 mjsousa Fix datatype analyses of S and R IL operators.
Wed, 21 Aug 2013 16:08:50 +0100 mjsousa make sure all IL operands are narrowed (datatype checking algorithm)
Wed, 21 Aug 2013 16:06:43 +0100 mjsousa cosmetic change only - fix code alignment.
Tue, 20 Aug 2013 11:15:40 +0100 mjsousa Add support for FB call semantics of 'S' and 'R' IL operators!
Tue, 20 Aug 2013 11:11:09 +0100 mjsousa Stop lvalue check from segfaulting when coming across buggy IL code (IL operator with no operand!)
Tue, 20 Aug 2013 11:08:15 +0100 mjsousa Allow get_datatype_info_c to be called with NULL parameters.
Thu, 15 Aug 2013 11:24:54 +0100 mjsousa Do lvalue check of function output parameters (since they may contain expressions inside array subscripts!)
Sat, 10 Aug 2013 09:10:06 +0100 mjsousa Handle buggy source code gracefully (do not bork when non-array variable is used as an array. e.g: int_var[42]:= 33)
Wed, 07 Aug 2013 10:34:57 +0100 mjsousa Delete debugging messages left in by mistake.
Wed, 07 Aug 2013 10:24:32 +0100 mjsousa Fix segfault when doing lvalue check of buggy IEC 61131-3 source code
Wed, 07 Aug 2013 10:18:29 +0100 mjsousa Fix datatype analysis of structured variables that contain arrays in their fields (e.g. var.x1[var2 + 42].y1).
Mon, 05 Aug 2013 15:57:00 +0100 mjsousa Add capability of returning array subscript list while decomposing a struct/array variable.
Mon, 05 Aug 2013 08:26:30 +0100 mjsousa Code cleanup: Remove unused option = Delete dead code.
Tue, 20 Aug 2013 17:35:11 +0100 mjsousa merge
Fri, 19 Jul 2013 13:31:35 +0100 Mario de Sousa Declare that YYLSTYPE is not the default trivial datatype used by bison. (was causing compile errors in bison ver >= 2.7)
Wed, 19 Feb 2014 22:25:10 +0100 Edouard Tisserant Fix build on Ubuntu 13.10
Fri, 11 Oct 2013 12:38:36 +0200 Laurent Bessard Fixed warning when compiling generated program containing external variable assignments
Fri, 07 Jun 2013 11:27:29 +0900 Edouard Tisserant Enlarged flex buffer size in order to accept larger C pragmas
Sat, 18 May 2013 16:35:41 +0900 edouard Missing braces arround extern declarartions in __SET_EXTERNAL define was making problem with GCC in switch case statements
Thu, 16 May 2013 14:37:33 +0900 Edouard Tisserant Moved __INIT_* defines within type definition headers files
Thu, 02 May 2013 10:42:17 +0200 Laurent Bessard Fixed warning in accessor __SET_EXTERNAL
Thu, 18 Apr 2013 22:27:01 +0200 Laurent Bessard Fixed bug when defining task with single_data_source instead of interval_data_source
Fri, 05 Apr 2013 09:37:52 +0900 Edouard Tisserant Merged Mario's changes
Thu, 04 Apr 2013 18:55:20 +0100 Mario de Sousa Fix bug related to FB invocation of FB instances declared as VAR_EXTERN.
Thu, 04 Apr 2013 09:45:11 +0900 Edouard Tisserant Merged Mario's changes
Wed, 03 Apr 2013 19:49:52 +0100 Mario de Sousa Partial fix to VAR_EXTERN vs VAR_GLOBAL check. Now considers globals declared in resources too. TODO: recursively check FB declared in the program.
Fri, 22 Feb 2013 21:09:59 +0000 Mario de Sousa Allow variables declared inside resources to be referenced by res_name.var_name
Wed, 13 Feb 2013 18:56:25 +0000 Mario de Sousa Add a new node to the abstract symtax tree, which will let us do datatype checking of FB variable declarations using the standard algorithm, and no special cases.
Tue, 05 Feb 2013 17:40:23 +0000 Mario de Sousa Print filename when debugging abstract symbol table.
Wed, 23 Jan 2013 14:53:14 +0000 Mario de Sousa Consider fb_name_decl_c a non base data type class!
Wed, 23 Jan 2013 14:30:03 +0000 Mario de Sousa Fill symbol->datatype anotation for FB declarations.
Wed, 23 Jan 2013 13:46:11 +0000 Mario de Sousa Fill in the symbol.datatype annotation in symbol classes used in derived data type declarations.
Tue, 22 Jan 2013 16:07:49 +0000 Mario de Sousa Use simple_spec_init_c inside en_param_declaration_c (will reduce need to handle it as a special case in the future).
Mon, 11 Mar 2013 12:54:25 +0100 Laurent Bessard Merged
Mon, 11 Mar 2013 12:51:01 +0100 Laurent Bessard Fixed bug in string format when translating TIME and DATETIME to STRING
Mon, 11 Mar 2013 12:49:33 +0100 Laurent Bessard Fixed bug with SFC transition datatype checking
Fri, 08 Mar 2013 11:38:26 +0900 Edouard Tisserant Stripped generated files again. http://stackoverflow.com/questions/3290908/which-files-generated-by-autotools-should-i-keep-in-version-control-repository
Fri, 08 Mar 2013 02:00:36 +0100 Laurent Bessard Fixed bug in case statement with enumerated type variable as case expression
Fri, 08 Mar 2013 01:01:15 +0100 Laurent Bessard Merged
Sun, 13 Jan 2013 16:06:00 +0000 Mario de Sousa Set the symbol->datatpe of function_declaration_c
Sun, 13 Jan 2013 14:25:38 +0000 Mario de Sousa Fill in the symbol->datatype of elementary datatypes.
Thu, 10 Jan 2013 10:49:50 +0000 Mario de Sousa merge
Thu, 03 Jan 2013 18:27:06 +0000 Mario de Sousa merge
Thu, 03 Jan 2013 18:26:32 +0000 Mario de Sousa Fix divide by 0 bug.
Thu, 03 Jan 2013 18:23:07 +0000 Mario de Sousa grand merge
Thu, 10 Jan 2013 10:47:06 +0000 Mario de Sousa disable not yet complete constant propagation algorithm (currently brocken and producing incorrect results),
Thu, 10 Jan 2013 10:38:41 +0000 Mario de Sousa merge
Thu, 03 Jan 2013 23:39:25 +0100 Manuele Conti Fix constant propagation for repeat_statement_c class.
Thu, 03 Jan 2013 23:16:19 +0100 Manuele Conti Remove unused variable.
Thu, 03 Jan 2013 22:54:55 +0100 Manuele Conti Implement Mario's suggestions:
Thu, 03 Jan 2013 20:34:10 +0100 Manuele Conti Fix constant_folding missing call. [Bug found by Mario.]
Thu, 03 Jan 2013 19:31:12 +0000 Mario de Sousa Fix divide by 0 bug.
Thu, 03 Jan 2013 17:04:04 +0000 Mario de Sousa merge
Thu, 03 Jan 2013 11:39:27 +0100 Manuele Conti Fix CPPFLAGS Makefile.am for all stage4.
Mon, 31 Dec 2012 11:02:38 +0100 Manuele Conti Remove redundant class for get variable name.
Fri, 28 Dec 2012 16:24:17 +0100 Manuele Conti Fix constant propagation alg. in for statement like Mario suggestion.
Fri, 28 Dec 2012 11:22:02 +0100 Manuele Conti Add note about How Constant Folding class is extended with a implementation constant propagation algorithm
Thu, 27 Dec 2012 00:17:08 +0100 Manuele Conti Add constant propagation algorithm for loop cycles.
Fri, 28 Dec 2012 11:51:24 +0000 Mario de Sousa Update symbol_c::first_file/last_file entries in list_c::add_element()
Thu, 27 Dec 2012 15:31:01 +0000 Mario de Sousa moved class to obtain datatype name (in char *) to get_datatype_info_c
Thu, 27 Dec 2012 15:04:58 +0000 Mario de Sousa merge
Mon, 24 Dec 2012 16:56:08 +0100 Manuele Conti Fix comment about meet semilattice rules.
Sat, 22 Dec 2012 19:34:57 +0100 Manuele Conti Complete fix initialize const_value.
Sat, 22 Dec 2012 19:31:48 +0100 Manuele Conti Start to implement constant propagation algorithm.
Sat, 22 Dec 2012 19:30:44 +0100 Manuele Conti Fix const_value field initialized.
Sun, 02 Dec 2012 18:20:02 +0100 Manuele Conti Remove Ambiguous enumerate value in enum conversion functions.
Sun, 02 Dec 2012 12:30:41 +0100 Manuele Conti Fix enum conversion function to string.
Wed, 28 Nov 2012 22:51:24 +0100 Manuele Conti Fix struct generic_function_call_t initialize style.
Tue, 27 Nov 2012 23:47:22 +0100 Manuele Conti Merge with Mario's changes.
Thu, 20 Dec 2012 10:46:51 +0100 Manuele Conti Merge with Mario's repository.
Thu, 20 Dec 2012 10:42:01 +0100 Manuele Conti Fix warning about call fprintf without format string.
Mon, 03 Dec 2012 18:44:16 +0000 Mario de Sousa merge
Sun, 02 Dec 2012 18:20:02 +0100 Manuele Conti Remove Ambiguous enumerate value in enum conversion functions.
Sun, 02 Dec 2012 12:30:41 +0100 Manuele Conti Fix enum conversion function to string.
Wed, 28 Nov 2012 22:51:24 +0100 Manuele Conti Fix struct generic_function_call_t initialize style.
Mon, 03 Dec 2012 14:06:49 +0000 Mario de Sousa Small code cleanup.
Sat, 01 Dec 2012 11:30:16 +0000 mjsousa Allow bison to ask for an END_OF_INPUT token multiple times!
Sat, 01 Dec 2012 11:27:48 +0000 mjsousa Protect against redefining macros
Tue, 27 Nov 2012 17:20:16 +0000 Mario de Sousa merge
Tue, 27 Nov 2012 17:01:41 +0100 Manuele Conti Fix flag to enable conversion functions.
Tue, 27 Nov 2012 15:49:05 +0000 Mario de Sousa Code cleanup: move tracking functions to flex.
Tue, 27 Nov 2012 14:49:08 +0000 Mario de Sousa Insert the auto generated enum datatype conversion functions after the TYPE...END_TYPE, instead of at the end of input file.
Mon, 26 Nov 2012 16:38:15 +0000 Mario de Sousa merge
Fri, 23 Nov 2012 11:38:57 +0100 Manuele Conti Set ENO to false when conversion function fails.
Fri, 23 Nov 2012 14:11:57 +0100 Manuele Conti Fix typo in functionDataType array.
Fri, 23 Nov 2012 09:31:55 +0000 Mario de Sousa Add files missing from a few commits ago...
Thu, 22 Nov 2012 19:26:56 +0000 Mario de Sousa merge
Tue, 20 Nov 2012 21:06:55 +0100 Manuele Conti Refix automake files.
Tue, 20 Nov 2012 20:55:44 +0100 Manuele Conti Add some comments to argument new code.
Tue, 20 Nov 2012 00:01:57 +0100 Manuele Conti Start to change code like Mario suggestions.
Mon, 19 Nov 2012 22:53:43 +0100 Manuele Conti Create functionDataType array in derived_conversion_functions_c.
Fri, 16 Nov 2012 10:26:23 +0100 Manuele Conti Add conversion functions option.
Thu, 15 Nov 2012 17:30:35 +0100 Manuele Conti Start enumerate conversion functions.
Thu, 22 Nov 2012 19:19:48 +0000 Mario de Sousa merge
Mon, 12 Nov 2012 22:36:55 +0100 Manuele Conti Be sure to not redefine TRUE and FALSE macros.
Thu, 22 Nov 2012 19:05:29 +0000 Mario de Sousa merge
Mon, 12 Nov 2012 22:33:58 +0100 Manuele Conti Removed unused __attribute__((__packed__)) only gcc compatible.
Mon, 12 Nov 2012 22:26:21 +0100 Manuele Conti Protect IEC_STD_LIB.H header agaist multi-include problems.
Thu, 22 Nov 2012 19:02:05 +0000 Mario de Sousa merge
Thu, 22 Nov 2012 18:53:37 +0000 Mario de Sousa Start to move enumeration declaration checking to its own class.
Thu, 22 Nov 2012 18:51:42 +0000 Mario de Sousa Fix comments and code alignment
Mon, 19 Nov 2012 18:59:12 +0000 Mario de Sousa Fix warnings previous change introduced when compiling with gcc.
Sun, 18 Nov 2012 12:54:48 +0100 Manuele Conti Fix some important clang++ warnings.
Thu, 15 Nov 2012 14:14:00 +0000 Mario de Sousa Allow use of type#value syntax when defining default initial value inside a TYPE..END_TYPE declaration.
Thu, 15 Nov 2012 12:57:04 +0000 Mario de Sousa Do datatype verification of fully qualified enumerated values (e.g. ENUMTYPE#enumconst)
Wed, 14 Nov 2012 18:39:02 +0000 Mario de Sousa Add datatype checking of enumeration data type declarations.
Wed, 14 Nov 2012 18:37:42 +0000 Mario de Sousa Print const values of symbol.
Wed, 14 Nov 2012 15:25:03 +0000 Mario de Sousa Fix code generation of enum value constants (this is a temporary fix - it will be followed by a code cleanup).
Wed, 14 Nov 2012 15:18:14 +0000 Mario de Sousa Fix bug in datatype checking of enumerated datatypes delcarations.
Wed, 14 Nov 2012 14:03:57 +0000 Mario de Sousa Fix datatype checking of enumerated datatype declarations. We now follow the fill->narrow algorithm correctly.
Wed, 14 Nov 2012 13:10:05 +0000 Mario de Sousa Add method to determine the id (name) of a datatype.
Tue, 13 Nov 2012 18:03:17 +0000 Mario de Sousa Change the base datatype of enumerations to an enumerated_type_declaration_c (for named types!)
Tue, 13 Nov 2012 18:02:15 +0000 Mario de Sousa Change the public interface to debug functions.
Fri, 09 Nov 2012 14:34:36 +0000 Mario de Sousa Check for errors in enum datatype declarations. (This is not yet complete as it will not yet stop the compilation process if these errors are found)
Fri, 09 Nov 2012 13:08:18 +0000 Mario de Sousa Fix one more bug - upper_bound() works a little differently to what we want!
Thu, 08 Nov 2012 17:54:48 +0000 Mario de Sousa Fix more bugs in dsymtable_c (real semantics of std::multimap::lower_bound is not what was assumed!)
Thu, 08 Nov 2012 17:31:50 +0000 Mario de Sousa Fix counting bug in dsymbtable_c
Thu, 08 Nov 2012 17:31:29 +0000 Mario de Sousa Use duplicate symtable instead of symtable for enum constant value table (this will later allow us to detect semantic errors in IEC 61131-3 source code)
Thu, 08 Nov 2012 12:49:03 +0000 Mario de Sousa Move the enumerated_value_symtable to fill_candidate_datatypes_c, since it is only used there!
Wed, 07 Nov 2012 20:07:11 +0000 Mario de Sousa Make search_base_type_c a singleton!
Wed, 07 Nov 2012 19:26:38 +0000 Mario de Sousa Start datatype checking of variable declarations (for now, only seting symbol.datatype of enumerations)
Wed, 07 Nov 2012 10:03:54 +0000 Mario de Sousa Do datatype checking of enum values defined inside anonymous enumeration types (i.e. enum types defined inside a VAR ... END_VAR daclaration).
Sat, 23 Feb 2013 23:14:59 +0100 Laurent Bessard Added support for testing BCD value validity in BCD_TO_UINT function
Sat, 23 Feb 2013 22:38:37 +0100 Laurent Bessard Fixed bug in DATE_AND_TIME_TO_TIME_OF_DAY and DATE_AND_TIME_TO_DATE when date and time is before 1970-01-01-00:00:00
Wed, 19 Dec 2012 12:25:56 +0100 Laurent Bessard Fix warning message when declaring global variables in configuration
Tue, 04 Dec 2012 00:05:22 +0100 Laurent Bessard Removed unused variable
Mon, 03 Dec 2012 23:36:03 +0100 Laurent Bessard Replacing libc time functions for date <-> timespec translation by platform and localtime independant implementation
Wed, 28 Nov 2012 12:00:38 +0900 Edouard Tisserant Removed files generedted by autoconf, should not be in repo
Wed, 28 Nov 2012 11:52:03 +0900 Edouard Tisserant Fixed timegm usage incompatible with mingw, reverted to mktime in case mingw is detected
Fri, 16 Nov 2012 01:02:54 +0100 Laurent Bessard Fix in accessor undefined init methods for function block global instances
Fri, 16 Nov 2012 00:39:35 +0100 Laurent Bessard Fix undefined function toupper in iec_std_lib
Thu, 15 Nov 2012 22:28:53 +0100 Laurent Bessard Adding support for declaring function block instances as global and external variables
Thu, 08 Nov 2012 18:55:57 +0100 Laurent Bessard Fix DATE conversions standard functions
Thu, 08 Nov 2012 12:10:52 +0100 Laurent Bessard Fix definition of BCD to ANY_UINT and ANY_UINT to BCD conversion standard functions
Tue, 06 Nov 2012 19:56:23 +0100 Laurent Bessard Fix indentation in SFC SL qualifier code generated
Tue, 06 Nov 2012 19:17:36 +0100 Laurent Bessard Fix indentation and unused variable warning in SFC generated code
Wed, 31 Oct 2012 19:21:09 +0100 Laurent Bessard Fix pragma with double bracket token stripping
Wed, 24 Oct 2012 00:06:55 +0200 Manuele Conti Fix some warning about loss of precision data in iec_std_lib.h file.
Fri, 26 Oct 2012 17:41:21 +0100 Mario de Sousa Fix typo.
Fri, 26 Oct 2012 13:52:16 +0100 Mario de Sousa Remove deprecated class search_constant_type_c
Fri, 26 Oct 2012 13:48:16 +0100 Mario de Sousa replace call to search_constant_type_c with symbol.datatype
Tue, 09 Oct 2012 22:29:26 +0200 Manuele Conti Removing several warning in iec_std_lib.h
Fri, 26 Oct 2012 10:25:38 +0100 Mario de Sousa Code formating only.
Sat, 06 Oct 2012 14:21:04 +0200 Manuele Conti Fix stage4 for compare expressions.
Fri, 26 Oct 2012 10:11:28 +0100 Mario de Sousa Prepare to delete search_constant_type_c -> Move the static variables from search_constant_type_c to get_datatype_info_c
Thu, 25 Oct 2012 18:51:55 +0100 Mario de Sousa Remove no longer needed search_il_operand_type_c
Thu, 25 Oct 2012 18:27:23 +0100 Mario de Sousa Also force_narrow IL instructions inside IL expressions, i.e. inside parenthesis.
Thu, 25 Oct 2012 18:20:28 +0100 Mario de Sousa Correctly generate C code for IL expressions, i.e. IL instructions inside parenthesis.
Thu, 25 Oct 2012 18:12:51 +0100 Mario de Sousa Fix bug when handling IL expressions (i.e. IL instructions inside parenthesis).
Thu, 25 Oct 2012 13:40:13 +0100 Mario de Sousa Delete debugging code, introduced by mistake in previous commit.
Thu, 25 Oct 2012 12:48:48 +0100 Mario de Sousa Fix handling of IL parenthesized expressions in generate_c_il_c
Thu, 25 Oct 2012 12:39:01 +0100 Mario de Sousa Fix processing of TIME literals (submited by Andreas)
Thu, 25 Oct 2012 12:05:31 +0100 Mario de Sousa Fix flow control analysis of IL simple instructions (i.e. IL instructions inside parenthises!)
Thu, 25 Oct 2012 11:28:06 +0100 Mario de Sousa Comment out invalid assertion.
Thu, 25 Oct 2012 11:15:55 +0100 Mario de Sousa Code cleanup: get the datatype of each entity off symbol->datatype (set in stage3 datatype checking), instead of determining it again in stage4. (NOTE: handling of IL parenthesized expressions is not working! Will be fixed later.)
Wed, 24 Oct 2012 15:32:48 +0100 Mario de Sousa Major code cleanup: IL code generation now uses symbol.datatype (filled in during stage3 data type checking) instead of determining the symbol's datatype by itself.
Thu, 18 Oct 2012 10:57:13 +0100 Mario de Sousa Do not repeat narrow algorithm for ST code, and better comments.
Tue, 16 Oct 2012 18:56:03 +0100 Mario de Sousa New visitor classes missing from previous commit.
Tue, 16 Oct 2012 18:23:16 +0100 Mario de Sousa Remove line printing debug info.
Tue, 16 Oct 2012 18:06:32 +0100 Mario de Sousa Add classes to print status of AST (use only for debugging!)
Tue, 16 Oct 2012 18:01:22 +0100 Mario de Sousa Remove all remaining NULL (undefined) datatypes from IL code.
Sat, 13 Oct 2012 12:13:49 +0100 Mario de Sousa Move is_datatype_valid/equal() to get_datatype_info_c
Thu, 11 Oct 2012 19:16:35 +0100 Mario de Sousa Fix bug related to support of SAFE datatypes.
Sun, 07 Oct 2012 09:45:54 +0100 Mario de Sousa Set datatype of il_intruction_c objects containing an ST operator.
Sun, 07 Oct 2012 09:33:42 +0100 Mario de Sousa Delete unused variables.
Sat, 06 Oct 2012 22:29:04 +0100 Mario de Sousa Use doubly linked connections for flow control graph (will be used later).
Thu, 04 Oct 2012 18:54:15 +0100 Mario de Sousa Remove deprecated search_expression_type_c
Thu, 04 Oct 2012 18:50:21 +0100 Mario de Sousa Deprecate use of search_expression_type_c (prepare for complete removal!).
Thu, 04 Oct 2012 18:29:26 +0100 Mario de Sousa Deprecate use of search_expression_type_c (prepare for complete removal!)
Thu, 04 Oct 2012 16:53:02 +0100 Mario de Sousa Deprecating use of search_expression_type_c, so it may later be deleted!
Thu, 04 Oct 2012 15:10:45 +0100 Mario de Sousa Merge
Thu, 04 Oct 2012 14:30:51 +0100 Mario de Sousa Add new get_datatype_info_c (preparing to remove search_expression_type_c)
Thu, 04 Oct 2012 13:12:19 +0100 Mario de Sousa Delete declaration of unused & undeclared functions.
Wed, 03 Oct 2012 17:44:25 +0100 Mario de Sousa Delete class elements that are not used (clean up code).
Fri, 28 Sep 2012 23:59:28 +0200 Manuele Conti Add check whether external var matches to global var.
Thu, 27 Sep 2012 18:14:52 +0100 Mario de Sousa Also check FB passed as parameters in FB/Function calls (Thanks Andreas!)
Wed, 26 Sep 2012 20:12:39 +0200 Manuele Conti Minor changes needed to build with pedantic flag.
Fri, 21 Sep 2012 09:54:10 +0100 Mario de Sousa Also check external/global variable consistency in configurations and FBs.
Fri, 21 Sep 2012 09:53:20 +0100 Mario de Sousa add method for printing class_name. USE ONLY FOR DEBUGING!
Wed, 19 Sep 2012 11:23:15 +0100 Mario de Sousa store POU reference to POU declaration instead of global var declarations.
Tue, 18 Sep 2012 14:21:19 +0200 Manuele Conti Start declaration check class.
Fri, 14 Sep 2012 23:35:18 +0200 Manuele Conti Start declaration check class.
Thu, 13 Sep 2012 17:12:40 +0100 Mario de Sousa Adjust coding style.
Sat, 08 Sep 2012 10:44:04 +0100 agraeper list_c: initial capacity. ERROR_MSG(msg,...) supports optional arguments now.