Commit Graph

687 Commits

Author SHA1 Message Date
90a727c901 Fix spelling errors
Most errors found with:

codespell -L cach,thst,odly,aslo,parm,parms,inpu,ges,prset,pevent,ptd,pring,valu,noo,noe,ned,inout,ro,siz,froms,nd,fo,singl,sart,multy,tthe,allong,ment,inate,nodel,tring,alse,ture,thi,wille,numer

Some more manually found (its -> it's)

c++20: Do not use apostrophe (e.g. can't) in unquoted #error message
2025-12-01 19:00:04 -08:00
Michael Davidsaver
45e3e58a1f asLib: fix generic lexer/parser 2025-11-23 14:03:47 -08:00
george-mcintyre
9b532540bf Introduce Future Proofing to ACF parsing.
- 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.
2025-11-23 14:03:47 -08:00
Ralph Lange
0916cf985c libCom/posix: don't memlock() if opted out of FIFO scheduling 2025-11-19 10:25:42 -06:00
Ralph Lange
862272d666 libCom/posix: add env var to opt out of FIFO scheduling
- add EPICS_ALLOW_POSIX_THREAD_PRIORITY_SCHEDULING
  (default: YES)
- start EPICS threads with default policy
  when set to NO
2025-11-19 10:25:42 -06:00
88bfd6f378 Allow hex and octal strings in dbPut and dbGet
Setting EPICS_DB_CONVERT_DECIMAL_ONLY to YES/yes change the dbPut() and dbGet()
string to integer conversions to the original decimal only policy.
2025-11-05 10:11:06 -06:00
Michael Davidsaver
e08d7310b9 posix: epicsThreadShowAll include OSD priority range and mlockall state 2025-11-05 09:59:50 -06:00
Andrew Johnson
e12269c302 Include readline.h before EPICS headers 2025-10-24 13:13:03 -05:00
Andrew Johnson
8311a5b360 Disable epicsStdio.h redefinitions
readline.h uses printf in an attribute
2025-10-24 12:22:54 -05:00
Michael Davidsaver
098b3968d6 doc 2025-10-14 19:44:53 -07:00
Gustavo de Souza dos Reis
0ab956b123 Fix doc. comments in epicsEvent.h
* 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.
2025-10-14 08:47:59 -07:00
232d9bec10 MSVC does not support designated initializers before C++20 2025-10-08 10:09:06 -05:00
Jeremy Lorelli
bd8c35d8e7 Implement epicsMessageQueueSend/epicsMessageQueueReceive to resolve link error
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.
2025-10-08 09:53:33 -05:00
Michael Davidsaver
7444936a22 colorize more errors/warnings 2025-09-20 09:42:01 -05:00
Michael Davidsaver
edd99a903b doc 2025-09-20 09:42:01 -05:00
Michael Davidsaver
2e26ec09a6 posix: initialize pthread_attr for non-epics threads 2025-09-03 07:36:36 -07:00
Michael Davidsaver
9ce921f4fd fdManagerTest: quiet spurious failure
One iteration should be enough, but not always,
and not for all targets...
2025-08-28 11:16:56 -07:00
79624b72e5 extend calc, calcout and sub records and calc expressions to inputs A - U
To accomodate for the increased number of inputs, the size of CALC and OCAL
fields has been doubled to 160 characters.
2025-08-13 09:47:40 -05:00
007df69726 fix EPICS_PRINTF_STYLE so old mingw recognizes %ll and %z (#674)
gcc knows __gnu_printf__ since version 4.4.0, not only for MinGW but for
all targets. As we would need to check the gcc version anyway to avoid
"unrecognized format function type" errors with older MinGW versions,
we can simply use it for recent gcc versions and not depend on MinGW at all.
2025-07-30 10:23:19 -05:00
Michael Davidsaver
5ae9cc6536 gethostbyname -> getaddrinfo
Prefer reentrant DNS API
2025-07-30 10:16:23 -05:00
Jerzy Jamroz
f4e1019ebe fix: ts{} {} warning: missing initializer for members
- warning: missing initializer for member ‘epicsTimeStamp::secPastEpoch’ [-Wmissing-field-initializers]
- warning: missing initializer for member ‘epicsTimeStamp::nsec’ [-Wmissing-field-initializers]
2025-07-21 10:23:12 -05:00
Andrew Johnson
dc776b547a Update CALC expression documentation
Doxygen changes in postfix.h mostly formatting & adding tags.
Rec-ref changes regrouped the operators to match the order in
postfix.h, formatting, and added some missing operators.

Updated description of calcout.OEVT for named events.
2025-07-16 10:25:46 -05:00
Michael Davidsaver
7236f3ad5f macLib: add emphasis when expansion finds an undefined macro 2025-07-07 16:45:44 -07:00
Hinko Kocevar
f911f8ca3e fix Makefile test for including readlineTest 2025-06-20 16:01:44 -05:00
Hinko Kocevar
38376b95ea fix no. of test to be ran 2025-06-20 16:01:44 -05:00
Hinko Kocevar
f7f7443c4f remove the trailing newline in test file 2025-06-20 16:01:44 -05:00
Hinko Kocevar
f34dd44c29 add more tests 2025-06-20 16:01:44 -05:00
Hinko Kocevar
e294bb443c 2nd attempt to fix a linter error for step 49 of "Path" 2025-06-20 16:01:44 -05:00
Hinko Kocevar
5813dcd639 attempt to fix a linter error for step 49 of "Path" 2025-06-20 16:01:44 -05:00
Hinko Kocevar
2e00d068d3 add multiline-input.txt and multiline-expect.txt to TESTFILES 2025-06-20 16:01:44 -05:00
Hinko Kocevar
7449a947ed check for fgets return value 2025-06-20 16:01:44 -05:00
Hinko Kocevar
b8e70783d8 trying to fix vs2012 and vs2010 builds 2025-06-20 16:01:44 -05:00
Hinko Kocevar
a2be1c4f4f readline test
should work with READLINE and EPICS command line libraries
2025-06-20 16:01:44 -05:00
Hinko Kocevar
87b8050437 handle backslash for EPICS command line library (similar to READLINE) 2025-06-20 16:01:44 -05:00
Hinko Kocevar
b9b2da26fd detect and handle backslash as part of multi-line string 2025-06-20 16:01:44 -05:00
Jerzy Jamroz
7b6ec35110 test: afterIocRunningTest improved with help and pwd check 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
70d5df05c7 refactor: atInit changed to afterIocRunning 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
2fc955bf8a docs: add license header to atInitTest.cpp 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
71e4b4ce2a test: add atInit test for arguments with spaces 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
4fbe6daab7 refactor: testOkEnv instead of atInitTextEnv - better meaning. 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
455978d9fb test: atInitTest added. 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
6683d81eb9 fix: strlen instead of strnlen. 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
d87ad35d37 feat: atInit presents its commands in the green colour. 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
a9b66218c6 refactor: const adjustment. 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
4cf7077ee2 fix: Copyright update. 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
71e86e51bd fix: error C2059: syntax error at the atInitDef structure. 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
43003ea18a fix: (CWE-126) CodeQL removal. 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
61deabd787 fix: CMP=vs2012 (error C2143) variables to the top of a function. 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
3ece668f6b refactor: strncpy to memcpy; malloc with the identifier. 2025-06-20 15:42:47 -05:00
Jerzy Jamroz
d7a02342e5 fix: CodeQL check failure.
Possibly wrong buffer size in string copy (Critical)
2025-06-20 15:42:47 -05:00