Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 20 Jul 2023 22:03:02 +0200] rev 1101
Fix C++11 invalid suffix on literal warning
Edouard Tisserant <edouard@beremiz.fr> [Fri, 05 Apr 2024 12:05:28 +0200] rev 1100
Change STRING length from int8_t to uint8_t.
This fixes GCC warning when using DELETE function from Standard Library.
Edouard Tisserant [Fri, 22 Jul 2022 09:24:12 +0200] rev 1099
In VARIABLES.CSV, RETAIN variable were only flagged as such for GLOBALS, now local POU variable shoud be as well.
Edouard Tisserant [Tue, 15 Feb 2022 10:34:23 +0100] rev 1098
Fixed logic for REPEAT..UNTIL
In Stage4, C code generator, REPEAT statement was generating a while loop with inverted logic
Edouard Tisserant [Tue, 14 Dec 2021 09:02:38 +0100] rev 1097
Added RETAIN qualifier to VARIABLES.CSV
Edouard Tisserant [Tue, 14 Dec 2021 08:48:05 +0100] rev 1096
Variable forcing now uses limited list and buffer instead of systematical instance tree traversal and in-tree "fvalue" to keep track of forced value for pointed variables (external, located). Pointer swapping is performed when forcing externals and located, with backup being restored when forcing is reset. Match Beremiz commit 93ad018fb602.
Edouard Tisserant [Wed, 24 Nov 2021 08:58:58 +0100] rev 1095
Fixed __SET_EXTERNAL_FB declaration in accessor.h, invoked when accessing EXTERNAL_BLOCK.VARIABLE. Macro was invoking __SET_VAR with wrong parameter count. Fixed corresponding code generator for ST. Seems similar codegen for IL is also broken, but fix would affect other (unknown) behviours -> didn't touch it.
Edouard Tisserant [Mon, 04 Oct 2021 11:29:13 +0200] rev 1094
Remove RETAIN qualifier for F_TRIG and R_TRIG 'M' variable. This is not following standard, and implicitely consumes a lot of RETAIN memory. User can explicitely qualify R_TRIG of F_TRIG instance as RETAIN if needed.
Edouard Tisserant [Mon, 06 Jul 2020 13:29:08 +0200] rev 1093
Fix in standard function library: forgot static linkage for inline __str_cmp()
Edouard Tisserant [Tue, 30 Jun 2020 11:23:37 +0200] rev 1092
Fixed in standard function library: NE_BOOL was missing.
Edouard Tisserant [Thu, 18 Jun 2020 14:32:20 +0200] rev 1091
Fixed in standard function library: String comparison was retrurning wrong result whith strings of different sizes but starting the same, or with zero length strings.
Edouard Tisserant [Fri, 08 May 2020 10:20:04 +0200] rev 1090
Fixed FIND Standard Character String Function. Now returns 0 in case empty string is given either for IN1 or IN2.
Edouard Tisserant [Fri, 30 Aug 2019 10:27:45 +0200] rev 1089
Reworked get_greatest_tick_count computation
Edouard Tisserant [Tue, 09 Jul 2019 08:31:02 +0200] rev 1088
Add a column to VARIABLES.CSV, containing variable (derived) type name, additionally to current last column contyaining base type name
Mario de Sousa <msousa@fe.up.pt> [Wed, 13 Feb 2019 14:40:26 +0000] rev 1087
add default NULL value to references (as suggested by anonymous in issue 62)
(Not really needed, but it is good practise...)
Mario de Sousa <msousa@fe.up.pt> [Wed, 13 Feb 2019 14:16:26 +0000] rev 1086
merge
Mario de Sousa <msousa@fe.up.pt> [Wed, 26 Dec 2018 19:36:03 +0000] rev 1085
fix issue #73: add missing overloaded functions ADD, SUB, MUL and DIV for TIME, TOD, DT, ...
Mario de Sousa <msousa@fe.up.pt> [Wed, 26 Dec 2018 12:39:41 +0000] rev 1084
remove debugging printf() introduced in previous commits
Mario de Sousa <msousa@fe.up.pt> [Wed, 26 Dec 2018 12:02:13 +0000] rev 1083
merge
Mario de Sousa <msousa@fe.up.pt> [Wed, 26 Dec 2018 11:56:14 +0000] rev 1082
fix bug introduced in previous commit (force literals to unsigned log long)
Mario de Sousa <msousa@fe.up.pt> [Wed, 26 Dec 2018 11:51:58 +0000] rev 1081
return storage of task interval back to 1 ns resolution (when calculating least common multiple et. al. of task intervals).
Mario de Sousa <msousa@fe.up.pt> [Wed, 26 Dec 2018 11:45:27 +0000] rev 1080
addendum to issue #76: detect overflow when calculating least common multiple of task intervals.
Mario de Sousa <msousa@fe.up.pt> [Wed, 26 Dec 2018 11:40:45 +0000] rev 1079
definitive fix of issue #76: remove internal overflow of u64 when calculating least common multiple of task intervals.
Mario de Sousa <msousa@fe.up.pt> [Wed, 26 Dec 2018 11:12:27 +0000] rev 1078
Test for overflow when translating task periods/intervals to integer variable.
Mario de Sousa <msousa@fe.up.pt> [Tue, 25 Dec 2018 12:15:29 +0000] rev 1077
partial fix to issue #76 - calculate task periods with 1ms (instead of 1ns) resolution. Allows for tasks with periods larger than 4.295s, but smaller than 50 days.
Mario de Sousa <msousa@fe.up.pt> [Tue, 25 Dec 2018 11:10:11 +0000] rev 1076
partial fix for issue 74: allow deref of REF in left hand side of assignment (only works in FUNCTIONS for now)
Mario de Sousa <msousa@fe.up.pt> [Fri, 21 Dec 2018 17:32:36 +0000] rev 1075
fix issue #78: IL NOT operator not working
Mario de Sousa <msousa@fe.up.pt> [Thu, 20 Dec 2018 18:55:22 +0000] rev 1074
fix issue#77 - when IL FB followed by SFC FB, non-existant error was detected in IL code.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sun, 14 Oct 2018 20:14:13 +0300] rev 1073
revert commits improved performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR)
Following commits are reverted:
mjsousa 0b275a2 improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR) -- increase hardcoded limit to 499
mjsousa 2228799 improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR) -- Add comments!!
mjsousa ce81fa6 improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR)"
The reason is that they cause regression in some cases (if function is
used as argument for function block, for example) and this is not
fixed for a long time.
Mario de Sousa <msousa@fe.up.pt> [Fri, 20 Apr 2018 17:40:29 +0100] rev 1072
merge
Mario de Sousa <msousa@fe.up.pt> [Fri, 20 Apr 2018 17:38:09 +0100] rev 1071
fix backup/restore functions: now also backup/restore programs instantiated to run inside tasks.
Andrey Skvortsov [Thu, 01 Mar 2018 19:28:38 +0000] rev 1070
add include <time.h>, required for time_t
Mario de Sousa <msousa@fe.up.pt> [Fri, 02 Feb 2018 18:36:15 +0000] rev 1069
improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR) -- increase hardcoded limit to 499
Mario de Sousa <msousa@fe.up.pt> [Fri, 02 Feb 2018 18:31:40 +0000] rev 1068
improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR) -- Add comments!!
Mario de Sousa <msousa@fe.up.pt> [Fri, 02 Feb 2018 18:15:48 +0000] rev 1067
improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR)"
Mario de Sousa <msousa@fe.up.pt> [Fri, 22 Dec 2017 17:14:02 +0000] rev 1066
Fix method ./configure uses to determine bison version (did not work in bourne shell) (submitted by anonymous)"
Mario de Sousa <msousa@fe.up.pt> [Thu, 21 Dec 2017 17:56:12 +0000] rev 1065
fix bug: allow variables with names starting with 'var' to be used in the first line of POU body
Mario de Sousa <msousa@fe.up.pt> [Fri, 20 Oct 2017 18:49:59 +0100] rev 1064
Abort compilation when finding R_EDGE or F_EDGE
Andrey Skvortsov [Wed, 20 Sep 2017 14:56:18 +0100] rev 1063
Fix bug: XOR operator was broken for ANY_BIT types. No XOR__[DL]WORD__[DL]WORD functions were generated.
mjsousa [Wed, 20 Sep 2017 10:47:54 +0100] rev 1062
Add some comments to code regarding backup/restore functions
Mario de Sousa <msousa@fe.up.pt> [Thu, 14 Sep 2017 10:50:41 +0100] rev 1061
fix initialization of variable (was not following ISO C++ rules)
Mario de Sousa <msousa@fe.up.pt> [Wed, 30 Aug 2017 22:13:26 +0100] rev 1060
make generating backup/restore functions a command line option (off by default).
Mario de Sousa <msousa@fe.up.pt> [Wed, 30 Aug 2017 21:57:18 +0100] rev 1059
add support for generating functions to backup/restore the internal state of the PLC.
Mario de Sousa <msousa@fe.up.pt> [Tue, 29 Aug 2017 12:02:09 +0100] rev 1058
delete unused variable.
Mario de Sousa <msousa@fe.up.pt> [Thu, 03 Aug 2017 22:55:12 +0100] rev 1057
handle POUs with no VAR .. END_VAR blocks
Mario de Sousa <msousa@fe.up.pt> [Thu, 03 Aug 2017 22:32:03 +0100] rev 1056
fix bug introduced in previous commit (matiec was unable to parse SFC code)
Mario de Sousa <msousa@fe.up.pt> [Thu, 03 Aug 2017 22:16:35 +0100] rev 1055
Fix tracking of line numbers in IL code (error messages were previously indicating incorrect line number).
Mario de Sousa <msousa@fe.up.pt> [Mon, 03 Jul 2017 20:31:47 +0100] rev 1054
Fix bug in datatype narrowing algorithm affecting IL code.
Mario de Sousa <msousa@fe.up.pt> [Mon, 03 Jul 2017 20:28:26 +0100] rev 1053
Set the symbol->token member in symbolic_variables_c objects.
Mario de Sousa <msousa@fe.up.pt> [Mon, 03 Jul 2017 20:27:15 +0100] rev 1052
Debugging helper class: print value of tokens in debugging output.
Paul Beltyukov <beltyukov.p.a@gmail.com> [Tue, 09 May 2017 21:46:44 +0100] rev 1051
Fix bug: allow global variables of type DT (initial values for DT are not const!)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sun, 16 Apr 2017 09:00:09 +0100] rev 1050
Add comment stating how to enable debug option in flex.
Mario de Sousa <msousa@fe.up.pt> [Sun, 16 Apr 2017 08:46:58 +0100] rev 1049
merge
Mario de Sousa <msousa@fe.up.pt> [Sun, 16 Apr 2017 08:45:56 +0100] rev 1048
Print error message when FB/Struct initial value contains other strcuts/FB/arrays (not yet supported by C code generator).
Mario de Sousa <msousa@fe.up.pt> [Wed, 05 Apr 2017 13:21:50 +0100] rev 1047
Do datatype checking of initial values for structures and FBs, and print error messages when compiling erroneuos source code.
Mario de Sousa <msousa@fe.up.pt> [Tue, 04 Apr 2017 17:21:42 +0100] rev 1046
fix bug in symbol_c::find_element()
Mario de Sousa <msousa@fe.up.pt> [Tue, 04 Apr 2017 15:28:49 +0100] rev 1045
Acceept structure_element_declaration_c symbol as a possible (non base type) data type
Mario de Sousa <msousa@fe.up.pt> [Tue, 04 Apr 2017 15:24:28 +0100] rev 1044
Add token references in structure_element_declaration_c
Mario de Sousa <msousa@fe.up.pt> [Tue, 04 Apr 2017 15:21:42 +0100] rev 1043
Add token reference to all symbol_c, and add list_c::find_element()
Mario de Sousa <msousa@fe.up.pt> [Tue, 04 Apr 2017 10:41:11 +0100] rev 1042
remove debug code left in by mistake in previous commit
Mario de Sousa <msousa@fe.up.pt> [Mon, 03 Apr 2017 22:18:22 +0100] rev 1041
Access elements[] in list_c through a new get_element() method.
Mario de Sousa <msousa@fe.up.pt> [Mon, 03 Apr 2017 22:06:40 +0100] rev 1040
Start implementation of datatype checking of initial values for structures and FBs.
andrej.skvortzov@gmail.com [Wed, 12 Apr 2017 08:44:42 +0100] rev 1039
fix wrong common_ticktime if task interval is greater than 4.3 seconds
Mario de Sousa <msousa@fe.up.pt> [Sun, 09 Apr 2017 23:43:04 +0100] rev 1038
Allow use of GLOBAL/EXTERNAL variables as control variable of FOR loop.
Mario de Sousa <msousa@fe.up.pt> [Mon, 03 Apr 2017 18:30:50 +0100] rev 1037
Start adding support for explicit initialization of FB instances. Currently only allows initializing FB variables of elementary types.
Mario de Sousa <msousa@fe.up.pt> [Sat, 18 Mar 2017 22:15:19 +0000] rev 1036
merge
mjsousa [Sat, 18 Mar 2017 22:02:14 +0000] rev 1035
merge
mjsousa [Sat, 18 Mar 2017 21:50:00 +0000] rev 1034
merge
mjsousa [Sun, 19 Feb 2017 20:13:02 +0000] rev 1033
Fix date conversion function (seconds to Date_and_Time). First day of month was falling on previous month.
mjsousa [Wed, 25 Jan 2017 19:50:39 +0000] rev 1032
Fix error locations messed up in previous commit.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 25 Jan 2017 18:29:55 +0000] rev 1031
fix compilation of SFC transitions written in IL (compiler was entering endless loop)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 25 Jan 2017 18:25:35 +0000] rev 1030
fix SFC timed qualifier (D, L, ...) with variable time (was generating wrong C code)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 25 Jan 2017 18:22:41 +0000] rev 1029
Fix segmentation fault bug introduced by previous commit
mjsousa [Tue, 24 Jan 2017 12:44:44 +0000] rev 1028
Correcty determine the datatype (TIME) of the parameters of SFC actions with timed qualifiers
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 23 Jan 2017 12:50:07 +0000] rev 1027
Check that flex is installed during ./configure
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 17 Jan 2017 15:50:55 +0000] rev 1026
Fix code generation for XOR expressions in ST (add parenthesis)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 12 Oct 2016 17:54:52 +0300] rev 1025
merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 12 Oct 2016 17:52:48 +0300] rev 1024
make autogenerated functions to be 'static inline' instead of 'inline'
This fixes link issue and compile warning, for more details about this
issue look at
https://bitbucket.org/mjsousa/matiec/issues/53/c-compiler-warning-if-iec-function-is-used
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 10 Oct 2016 18:10:32 +0300] rev 1023
Merged mjsousa/matiec into default
mjsousa [Thu, 08 Sep 2016 17:44:44 +0100] rev 1022
merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 28 Jun 2016 16:35:47 +0300] rev 1021
Merged mjsousa/matiec into default
mjsousa [Thu, 02 Jun 2016 11:59:45 +0100] rev 1020
fix bug introduced by commit 91bef6704b44 (parsing SFCs with transitions in ST and leading whitespace => endless loop)
mjsousa [Thu, 26 May 2016 18:30:17 +0100] rev 1019
Only allow function invocation outside ST expressions when command line option is activated.
mjsousa [Thu, 26 May 2016 17:59:01 +0100] rev 1018
Ignore pragmas inside IL code when handling inline function calls.
mjsousa [Thu, 26 May 2016 15:05:34 +0100] rev 1017
Fix bug: correctly handle formal function calls in IL with no parameters.
mjsousa [Thu, 26 May 2016 15:00:20 +0100] rev 1016
Add support for functions returning VOID (i.e. non-standard extension, allowing functions that do not return any data)
mjsousa [Thu, 26 May 2016 14:26:33 +0100] rev 1015
Add -warn flag when running flex -> warn of potential bugs
mjsousa [Fri, 13 May 2016 12:18:50 +0100] rev 1014
Add support for non-standard VOID datatype. May ony be used to define functions returning VOID.
mjsousa [Wed, 11 May 2016 19:38:31 +0100] rev 1013
Delete the YY_NO_UNPUT define, as we do use the unput() function.
mjsousa [Wed, 11 May 2016 18:41:45 +0100] rev 1012
Add support for non standard feature: allow POUs with no in, out and inout parameters
mjsousa [Sun, 08 May 2016 20:01:15 +0100] rev 1011
Add option to not add the EN and ENO parameters to every function and FB (generated C code becomes smaller, and uses less memory for function invocations)
mjsousa [Sat, 07 May 2016 21:17:49 +0100] rev 1010
Correctly identify errors when parsing erroneous code (make sure flex goes back to INITIAL state when code contains errors that do not allow determining whether ST or IL is being parsed)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 28 Jun 2016 13:34:29 +0000] rev 1009
Created new branch fix_compilation_warnings
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 06 May 2016 11:48:02 +0300] rev 1008
fix compilation error about missing braces
IEC_TIMESPEC has two fields tv_sec and tv_nsec.
Compilation error:
./build/POUS.c:600:45: error: missing braces around initializer [-Werror=missing-braces]
static const STEP temp_step = {{0, 0}, 0, {0, 0}};
^
compilation terminated due to -Wfatal-errors.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 06 May 2016 11:38:35 +0300] rev 1007
fix warning about overflow if matiec is running on 64-bit platform,
but the generated C code will cross-compiled for 32-bit platform
For example:
./build/config.c:29:39: error: large integer implicitly truncated to unsigned type [-Werror=overflow]
unsigned long greatest_tick_count__ = 18446744073709551611UL; /*tick*/
^
compilation terminated due to -Wfatal-errors.
cc1: all warnings being treated as errors
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 06 May 2016 11:01:21 +0300] rev 1006
fix C compilation warning about function prototype in __SET_EXTERNAL
Example warning:
./POUS.c:1220:3: error: function declaration isn't a prototype [-Werror=strict-prototypes]
__SET_EXTERNAL(data__->,KN_AUT,,__GET_VAR(data__->KEY_AUT.STATE_OUT));
^
compilation terminated due to -Wfatal-errors.
cc1: all warnings being treated as errors
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 06 May 2016 10:48:37 +0300] rev 1005
fix C compilation warning from gcc about /* inside of comment section.
./beremiz/iec_std_lib.h:240:1: error: "/*" within comment [-Werror=comment]
/*
^
compilation terminated due to -Wfatal-errors.
cc1: all warnings being treated as errors
mjsousa [Fri, 02 Oct 2015 10:31:20 +0100] rev 1004
Update README.build file with instructions for crosscompiling to win32
mjsousa [Mon, 08 Jun 2015 19:02:33 +0100] rev 1003
Delete commented out code.
mjsousa [Mon, 08 Jun 2015 19:01:56 +0100] rev 1002
Fix FB calls in IL (FB variable name was showing up extraneously before the C function that initializes the POU containing the FB call)
mjsousa [Sat, 06 Jun 2015 18:58:50 +0100] rev 1001
Delete unused code.
mjsousa [Thu, 30 Apr 2015 20:54:04 +0100] rev 1000
Add check for repeated elements in a CASE statement. Emit warnings (and not errors) if found.
mjsousa [Wed, 15 Apr 2015 23:25:07 +0100] rev 999
transform CASE into if()..else if().. -> fixes 2 bugs (1)case within case statements, and (2)repeated elements in case options
mjsousa [Sun, 15 Mar 2015 20:49:55 +0000] rev 998
Initialise arrays to their correct default values - Fix bug introduced in commit 477393b00f95 (2014-11-16)
Edouard Tisserant [Thu, 12 Mar 2015 16:36:33 +0100] rev 997
Fixed reset of current_varqualifier when generating global initializers, causin RETAIN and other option to be ORed and applied to all subsequent global variables.
mjsousa [Mon, 09 Mar 2015 19:22:00 +0000] rev 996
Do fill/narrow datatype analysis algorithm for derived_datatype_identifier_c (fixes bug related to arrays of arrays that was generating incorrect C code).
mjsousa [Sun, 15 Feb 2015 16:08:56 +0000] rev 995
Better identification of error location in some error messages.
mjsousa [Sun, 15 Feb 2015 16:07:29 +0000] rev 994
Fix bug introduced in 2014/10/19, while adding support for REF() opertors -> datatype checking was not catching datatype inconsistency errors!
mjsousa [Thu, 22 Jan 2015 19:00:46 +0000] rev 993
merge
mjsousa [Sat, 10 Jan 2015 23:18:42 +0000] rev 992
Re-write and fix the logic of SFC action modifiers.
mjsousa [Sat, 10 Jan 2015 23:17:08 +0000] rev 991
Correct the number given to actions in the #define's
mjsousa [Fri, 16 Jan 2015 12:20:14 +0000] rev 990
Do not allow constant_propagation algorithm go into infinite loop when analysing code with circular references.
mjsousa [Fri, 16 Jan 2015 11:17:33 +0000] rev 989
Do constant propagation of FBs instantiated in other FB or Programs, so that variable sized arrays can be declared in FBs too.
mjsousa [Sun, 11 Jan 2015 20:49:55 +0000] rev 988
Do constant propagation of instantiated FBs, so that variable sized arrays can be declared in FBs too.
mjsousa [Sun, 11 Jan 2015 19:44:37 +0000] rev 987
Let get_datatype_info_c handle variable sized arrays, even if constant folding is not yet done.
mjsousa [Thu, 08 Jan 2015 19:04:03 +0000] rev 986
Correctly analyse external<->global var compatibility when using variable sized arrays (TODO: does not yet work for FBs!)
mjsousa [Tue, 30 Dec 2014 23:32:04 +0000] rev 985
Add comment about bug that needs to be fixed later on.
mjsousa [Tue, 30 Dec 2014 23:31:36 +0000] rev 984
Break constant_folding_c in two classes: constant_folding_c and constant_propagation_c
mjsousa [Tue, 30 Dec 2014 22:58:52 +0000] rev 983
Add check whether the same constant var_external variable is initialised with two (or more) different constant values.
mjsousa [Tue, 30 Dec 2014 22:17:22 +0000] rev 982
Change algorithm for propagating VAR_GLOBAL constant values to corresponding VAR_EXTERNAL.