> Summary: I am working on changes and enhancements to the calcPerform code
The ability to use real variable names in the expressions instead of A, B, C
etc might also be needed for client specified CA subscription update
filters.
A quick look in the free software directory revealed Matjito which appears
to have that capability and many others including an X86 JIT compiler.
Disclaimer: I havent looked at this close enough yet to hazard an opinion on
whether we would want to use it or not, and whether a JIT compiler would
noticably improve performance in this context isnt clear either.
http://sourceforge.net/projects/matjito/
The Author did indicate earlier that he might sign a grant of license.
Jeff
> -----Original Message-----
> From: Andrew Johnson [mailto:[email protected]]
> Sent: Friday, March 03, 2006 1:56 PM
> To: Tech Talk
> Subject: calcPerform expressions: 'NOT' operator
>
>
> Summary: I am working on changes and enhancements to the calcPerform
> code in R3.14, and am considering making a change that will alter the
> behaviour of expressions that use the 'NOT' operator in
> future versions
> of EPICS. Please respond if this change will adversely affect your
> site, i.e. if you actually make heavy use of the 'NOT' operator (as
> against the related '-', '~' or '!' operators).
>
> The libCom calc subsystem is used by the calc and calcout records,
> Channel Access security module, MEDM and probably some other client
> tools to evalutate expressions. It provides separate operators for
> doing logical and bitwise operations, for example '&' is a
> bitwise AND
> while '&&' is a logical AND. The operator 'AND' is also
> supported as a
> synonym for the bitwise operator, and has parallel operators
> 'OR' and 'XOR'.
>
> When it comes to the unary NOT operations however, the operator 'NOT'
> does not match the bitwise '~' not operator, but instead performs a
> NEGATE operation like the unary minus operator. This obscure
> behavior
> is documented in the Record Reference manual.
>
> The current 'NOT' operator dates back to a time when the expression
> parser only supported the use of '-' as a binary subtraction
> operator,
> and for some reason the keyword 'NOT' was picked for the unary minus
> operator. However the ability to use '-' for unary minus was
> added by
> Janet in R3.12.0beta7 about 11 years ago, so I'm now
> proposing to change
> 'NOT' to be a synonym for the bitwise operator '~'.
>
> Please reply if you object to this change because your site
> uses 'NOT'
> in a significant number of CALC expressions of a 3.14
> database or Access
> Security configuration file.
>
>
> To reward anyone who was interested enough to read to the
> bottom of this
> message, here's what I'm up to: I've been significantly
> improving the
> error checking and reporting from the expression parser, and
> have added
> an assignment operator ':=' and expression terminator ';'. A single
> CALC record can now return multiple results, although it is still
> subject to the 40 character limit for the expression string.
>
> - Andrew
> --
> There is no S in exprexxo.
>
- References:
- calcPerform expressions: 'NOT' operator Andrew Johnson
- Navigate by Date:
- Prev:
RE: calcPerform expressions: 'NOT' operator Redman, Russell
- Next:
What is Matjito? Jeff Hill
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
<2006>
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
calcPerform expressions: 'NOT' operator Andrew Johnson
- Next:
Re: calcPerform expressions: 'NOT' operator Tim Mooney
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
<2006>
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|