- Allow ACF files to contain sections that are unsupported
- introduce a pragma disable-strict-parsing to disable strict parsing and allow files to be accepted
Add tests for future proof parser functionaluty
Expanded tests for Access Security configurations to validate parsing behaviors for unsupported elements. Added detailed cases covering invalid formats, unsupported modifications, and acceptable configurations while maintaining future-proofing and backward compatibility assurances.
Refactor parser to handle generic items and floating-point tokens
Replaced "unsupported elements" with a more flexible "generic items" mechanism to enhance parser extensibility. Added support for floating-point numbers in parsing rules. Updated tests and rules to reflect these changes, ensuring better handling of nested and unknown configurations.
Add warnings for unsupported ACF elements and update tests
Introduced `yywarn` to log warnings for unsupported ACF elements, rule permissions, and conditions in `asLib.y`. Updated test configuration to replace generic placeholders with more descriptive names. Adjusted test cases and reduced the test plan count to reflect the changes.
Remove unused strictParsing logic and improve error handling.
Removed strictParsing variable and related code as it was no longer in use. Enhanced error messaging and parsing logic for handling unsupported elements. Updated test cases for better clarity and expanded coverage of edge cases.
Enhance ASLib parsing with Int64/Float64 support.
Updated ASLib to utilize 64-bit integers and floats for improved parsing precision. Replaced legacy parsing methods with epics-friendly functions, improved error handling, and adjusted tests and grammar accordingly.
Refactor AS parser to separate non-rule keywords
Introduced a new `non_rule_keyword` type and moved `tokenASG` and `tokenRULE` under it for better logical grouping. This improves parser clarity and maintains a clean separation of keyword types.
Add rule-specific parsing for generic block elements
Introduce new rules for parsing rule-specific generic block elements and their names. This enhances the grammar to handle additional cases while maintaining memory management and error handling. Adjust references to use the new rule where applicable.
Refactor grammar rules in asLib.y to remove remaining shift/reduce conflict
Reorganize and refine grammar rules for handling generic elements, blocks, and lists. Simplifies the structure while introducing clearer distinctions between different constructs. This enhances maintainability and removes ambiguities in parsing.
* fix(aao, aai): change VAL field type from DOUBLE[] to FTVL[]
* fix(aSub): change 'Input Value Fields' type from FT[A–U] to FT[A–U][NOA–NOU]
* fix(aSub): change 'Output Value Fields' type from FTV[A–U] to FTV[A–U][NOVA–NOVU]
* fix(waveform): change VAL field type from FTVL to FTVL[NELM]
* fix(aai): remove 'analog' from the record name
* fix(aao): remove 'analog' from the record name
* fix(aai,aao): remove 'Analog' from the record names
* Update normativeTypes to fix NTNDArray::getValueSize
* Update normativeTypes for Release Notes
---------
Co-authored-by: Andrew Johnson <anj@anl.gov>
* Fix typo in epicsEventWaitWithTimeout.
* Reword epicsEvent timeout documentation to reflect the actual behavior.
Negative values of timeout are handled the same way as zero values.
Change the documentation to reflect this behavior.
Tests killed by a signal should cause the .t script to exit with an
error code, otherwise its exit code will be 0, and the test harness
won't be aware of the unsuccessful exit.
This change also makes the test runner more robust, so attaching to a
running test (e.g. with gdb or strace) won't cause the .t script to
exit.
* Allow CA clients to determine the server protocol version
Adds a call to the CA client API that allows a client to determine the server's
protocol minor version number. This is needed to allow the ca-nameserver to
report a server's protocol version correctly to a client.
* ca_host_minor_protocol return for disconnected channels
ca_host_minor_protocol now explicitly returns CA_UKN_MINOR_VERSION for a disconnected channel.
OP_SYS_LDLIBS ends up on the GeSys object link command line, which ends
up breaking things. When linking GeSys objects, a symbol root is not
defined using -u or -e, which is required for --gc-sections to work.
These were defined as macros in osdMessageQueue.h, but declared as
prototypes in epcisMessageQueue.h public header. We need to implement
them as C functions for these to actually be usable.
* warn to stderr when un-setting inapplicable CPP flag on output links
* Warn and unset CP flag for output links
* use errlogprintf instead of fprintf for dbParseLink CP/CPP warning
* Pass source record name to dbParseLink for debug information when modifier is discarded
* make CP/CPP discard warning less verbose
* Include field name of affected record when warning of CP/CPP discard
If you overwrite INSTALL_LOCATION in CONFIG_SITE, then it would be the case that
TOP_CFG_CONFIGS would point to those from EPICS base and not from the module
that you are loading. Fetching these earlier fixes that issue.