Commit Graph

1444 Commits

Author SHA1 Message Date
Michael Davidsaver
186106cd33 process doc comments in callback.h
Also change doxygen annotation style from '\' to '@'
2025-12-03 17:23:11 -08:00
Michael Davidsaver
baa4cb5495 doc and callbackSetQueueSize sanity check 2025-12-03 17:14:10 -08:00
Michael Davidsaver
7ae3e4c2df epicsTimerTest: assert timers not expiring early 2025-12-03 17:08:48 -08:00
Michael Davidsaver
01360b2a69 Avoid early expiration of timers on !RTOS 2025-12-03 17:08:48 -08:00
Michael Davidsaver
491d532170 doc epicsSnprintf()
Document that epicsSnprintf() adds a nil on success,
capacity permitting.

Note OS specific ambiguity on error.  Linux and MSVC
inject nil for most failures (bad format).
Not clear if vxworks/fioFormatV() does.

Not clear if long description of non-compliant
return value is still accurate.
2025-12-03 10:04:33 -06:00
Michael Davidsaver
cc98ef8696 doc: epicsThread.h
Describe lifetime of epicsThreadId for a newly created thread.
2025-12-03 09:46:39 -06:00
Michael Davidsaver
1910478297 Ensure pthreadInfo->tid initialized for both creator and new thread 2025-12-03 09:46:39 -06:00
Michael Davidsaver
214b5d935b posix: correct race and mis-count in epicsThreadCreateOpt()
Corrects two issues.  012139638d
added a dec-ref in the status==EPERM path, but neglected to
add a matching inc-ref.  So if a joinable pthread_create()
actually errored with EPERM, then no reference is left for the
joiner.

Secondly, and far more suble, is a data race if pthread_create()
succeeds in starting a new thread, which ends and free()'s
pthreadInfo before pthread_create() writes pthreadInfo->tid .
2025-12-03 09:46:39 -06:00
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
Michael Davidsaver
1f4b39cd08 ascheck cleanup 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
Jerzy Jamroz
84b4a5f63c Doc: Fix array field descriptions
* 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
2025-11-19 10:47:23 -06: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
6c2cbe0101 Update normativeTypes to fix NTNDArray::getValueSize (#732)
* Update normativeTypes to fix NTNDArray::getValueSize

* Update normativeTypes for Release Notes

---------

Co-authored-by: Andrew Johnson <anj@anl.gov>
2025-11-05 14:17:31 -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
Jerzy Jamroz
d58d1420b8 docs: clarify Drive Limits behavior in aoRecord 2025-11-05 09:36:49 -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
3f382f6b68 Revert "dbCa: iocInit wait for local CA links to connect"
This reverts commit a46bd5ae88.
2025-10-17 14:51:46 -07:00
Michael Davidsaver
a46bd5ae88 dbCa: iocInit wait for local CA links to connect 2025-10-14 19:45:15 -07: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
DW
a2e01c2929 fix: stdint.h is not available before vw6.9 2025-10-08 18:40:04 -07:00
Andrew Johnson
280aa0b399 Initialize error strings before any database errors occur 2025-10-08 16:11:15 -05:00
Andrew Johnson
9af7ff3b3f Don't duplicate dbLoadRecords() error message 2025-10-08 16:10:00 -05:00
54ca2cb595 support menus and devsups 2025-10-08 10:14:49 -05:00
f5a5e7c5f7 more in-code documentation and STATIC_ASSERT check 2025-10-08 10:14:49 -05:00
47c263112f calm down codacy 2025-10-08 10:14:49 -05:00
a781896e28 map for fields and more 2025-10-08 10:14:49 -05:00
3600924f99 better guesses for wrong field names 2025-10-08 10:14:49 -05:00
232d9bec10 MSVC does not support designated initializers before C++20 2025-10-08 10:09:06 -05:00
Michael Davidsaver
271f20faa0 expand dbEvent synchronization
Changes method of waiting in db_flush_extra_labor_event(),
which also blocks if labor is pending.

Adds testMonitorSync()
2025-10-08 10:07:23 -05:00
bsbevins
d763541341 Allow CA clients to determine the server protocol version (#711)
* 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.
2025-10-08 09:57:30 -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
Evan Daykin
acd1aef2a0 Warn to stderr when discarding CPP modifier for outlink (#608)
* 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
2025-10-08 09:44:27 -05:00
Madeline Park
1cea3f1eed added prop(YES) annotations (#706)
All Base record types annotated with `prop(YES)` as appropriate.
2025-10-08 09:35:29 -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
Simon Rose
187801c2e6 Fix MSI tests when INSTALL_LOCATION is set 2025-08-27 09:40:24 -05:00
c3c492d2cd test IVOA in dfanout 2025-08-13 10:02:58 -05:00
bff913e4d1 test new dfanout outputs 2025-08-13 10:02:58 -05:00
4c40b9f4bb make dfanoutTest processing synchronous 2025-08-13 10:02:58 -05:00
640ced41c3 increase number of dfanout outputs to 16
and add IVOA/IVOV fields
2025-08-13 10:02:58 -05:00
5c77c842a4 test improvements: NAN, DBR strings, floating point format
* Allow testdbGetFieldEqual to check for NAN double and float values
 * Print DBR_xxx names instead of numbers
 * use %g instead of %e to format floating point values to improve readability
2025-08-13 10:02:58 -05: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