Experimental Physics and
| |||||||||||||||
|
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 > >
| ||||||||||||||
ANJ, 29 Sep 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |