EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: CALC record weird behaviour
From: Dirk Zimoch <[email protected]>
To: "Oleg A. Makarov" <[email protected]>
Cc: TechTalk <[email protected]>
Date: Mon, 02 Apr 2007 09:24:11 +0200
Hi Oleg,

try to switch off optimization and recompile EPICS base. There is a bug in one cross-compiler version on Linux (I don't remember which version).

This calculation does not work correctly with optimization:
double a,b,c;
a=(b==c);
It calculates a=(b<=c) instead (or something like this).

BTW: The cross compiler for Solaris as provided by WR does not have this bug.
And this always works:

double a,b,c;
int i;
i=(b==c);
a=i;

Dirk

Oleg A. Makarov wrote:
We encounter misbehaviour of a CALC record in the IOC running under EPICS 3.14.9/tornado 2.2.1.
(but it works correctly under EPICS 3.14.9/tornado 2.0.2)



Test database consists of two records - CALC and BI, see below.


No matter what value - 1 or 0 - is written by "caput" program to "myBi", "myCalc" always has VAL=1

However, with CALC field changed to <A#0>, myCalc.VAL field updates correctly with changes of "myBi".

What is wrong?


Regards,


Oleg Makarov

record(calc, myCalc) {

field(SCAN, "1 second")

field(CALC, "A=1")

field(INPA, "myBi")

}

record(bi, myBi) {

}





-- Dr. Dirk Zimoch Computing and Controls Paul Scherrer Institut phone +41 56 310 5182 fax +41 56 310 4413

References:
CALC record weird behaviour Oleg A. Makarov

Navigate by Date:
Prev: Re: Question about mbboDirect record Andrew Johnson
Next: Re: sequencer installation Emmanuel Mayssat
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: CALC record weird behaviour Oleg A. Makarov
Next: vxWorks 5.5.2 (Tornado 2.2.2) on MVME6100 Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Nov 2011 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·