EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  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  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: CALC expression
From: Pam Gurd <[email protected]>
To: [email protected]
Date: Wed, 29 Sep 2010 18:27:22 +0200
Everyone who has used many calc records has run into the CALC length limit from time to time - and everyone who has tried to look at someone else's uncommented CALC field has thought that 40 chars is sometimes too many.

I vote for increasing the limit, perhaps to 64, perhaps even to 80 - but never using that many.

    Pam.

----- Original Message -----
From: Andrew Johnson <[email protected]>
Date: Wednesday, September 29, 2010 6:05 pm
Subject: Re: CALC _expression_
To: [email protected]

> Hi Tim,
>
> On Wednesday 29 September 2010 00:47:16 Tim Mooney wrote:
> >   I like the idea of increasing the size of the CALC
> field.  I'd suggest
> > 80.
>
> Thanks for that suggestion
>
> > The RPCL field is private, so it might be left at its current
> size for
> > most expressions, and reallocated for the occasional long
> _expression_.
> That would not be acceptable; the RPCL field is a fixed length
> char array, so
> we can't change its size for individual record instances. 
> I don't want anyone
> being able to crash my IOC by writing long versions of the
> _expression_ 1?1:1?
> 1:1?1:1?1:1 into the CALC field (1?1:1 expands to 31 bytes in
> postfix, and
> each additional 1?1: adds another 21 bytes — there's a macro in
> postfix.h that
> calculates the RPCL size needed from the CALC size).
>
> We *could* make RPCL into a char* pointer and allocate it
> dynamically
> according to the particular _expression_, but that means making
> code changes to
> the record and also opens up the possibility of free memory
> fragmentation on
> vxWorks IOCs (none of the other standard record types allocate
> memory after
> initialization to avoid that).  I think it's too late to
> make those kind of
> changes at this point.
>
> Alternatively we could add integer literal support to the code
> in libCom/calc,
> which would reduce the incremental expansion factor from 21/4 to
> 10/3 or
> better, but again that would be making code changes
> uncomfortably late in the
> development cycle for 3.14.12.
>
> > I would not worry /too/ much about wasted space.  After
> all, every record
> > has a 41-character DESC field, most of them are permanently
> empty, and I
> > don't recall hearing complaints about that.
>
> Making CALC 80 translates to RPCL being 419 bytes instead of its
> current 209
> bytes.  Lewis' suggestion of 64 bytes translates to RPCL
> being 335 bytes.
>
> Do any small-IOC guys want to weigh in on these suggestions?
>
> - Andrew
> --
> If a man is offered a fact which goes against his instincts, he will
> scrutinize it closely, and unless the evidence is overwhelming,
> he will
> refuse to believe it.  If, on the other hand, he is offered
> somethingwhich affords a reason for acting in accordance to his
> instincts, he
> will accept it even on the slightest evidence.  -- Bertrand
> Russell
>
>
References:
CALC expression Andrew Wagner
Re: CALC expression Andrew Johnson
Re: CALC expression Tim Mooney
Re: CALC expression Andrew Johnson

Navigate by Date:
Prev: Re: CALC expression Eric Norum
Next: Re: CALC expression Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: CALC expression Andrew Johnson
Next: Re: CALC expression Tim Mooney
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 29 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·