Andrew Johnson
b2ef47573c
Drop TODOs from regression tests, hex now works in array values
2020-08-09 00:33:07 -05:00
Andrew Johnson
b0d78921fd
Final changes to YAJL for use in Base
...
* Bump the YAJL version number
* Define a HAS_JSON5 macro
* Set yajl_allow_json5 by default, fixing yajl_test and API comments
2020-08-09 00:33:07 -05:00
Andrew Johnson
c00f638f7e
yajl: Add yajl_gen_reset() routine
...
For some reason this never got added with the rest of the generator.
2020-08-09 00:33:07 -05:00
Andrew Johnson
975e9ec553
Doxygen text and markup fixes and updates
2020-08-09 00:33:07 -05:00
Andrew Johnson
de2de5e2fd
yajl: Clean up the formatting of some C macros
2020-08-09 00:33:07 -05:00
Andrew Johnson
a8e0de043c
Support for 'single-quoted strings'
...
Also adds missing character flag VIC for 'r'.
The a5_spec_example test was copied from the JSON5 spec.
2020-08-09 00:33:07 -05:00
Andrew Johnson
549d6f67e3
YAJL support for JSON5 \xXX hex escapes in strings, with tests
...
Teach the lexer/parser to recognize and decode them in JSON5 mode.
Teach the encoder to use them in JSON5 mode.
Add another error message for bad hex digits.
Test cases to show they work, and that the bad-digit check fires.
2020-08-09 00:33:07 -05:00
Andrew Johnson
55f4e55383
Support for JSON5 character escapes in strings
...
Any character other than the digits 1-9 may be preceded by a
reverse solidus '\', and unless the combination has an explicitly
defined expansion the character is included without the solidus.
JSON5 adds \', \0 and \v to the set of defined escapes, and an
escaped newline is omitted from a string.
In the test case Perl uses \13 instead of \v in the output
but it is the correct character (13 octal = 11 decimal = '\v').
2020-08-09 00:33:07 -05:00
Andrew Johnson
e2256d0663
Accept unquoted identifiers as map keys
...
Adds another lexer entry point for lexing map keys only,
adjust parser to use this instead of the general lexer.
Also defines another lexer token for internal use only.
2020-08-09 00:33:07 -05:00
Andrew Johnson
88e0ced03e
JSON5 support for generating unquoted map keys
...
Added a new routine to yajl_encode.c that validates bare identifiers.
Use this in yajl_gen_string() to avoid quoting keys we don't have to.
2020-08-09 00:33:07 -05:00
Andrew Johnson
baaf50c6d2
Add yajl_gen_json5 option and generator support for special numbers
...
When this flag is set, the yajl_gen_double() routine can output
the values NaN, -Infinity and +Infinity.
2020-08-09 00:33:07 -05:00
Andrew Johnson
97b8df6912
Added JSON5 support for parsing special numbers
...
NaN and both Infinities, with tests.
Special handling was added to yajl_test since different OSs don't
always generate the same output for special numbers (nan/NaN/...).
2020-08-09 00:33:07 -05:00
Andrew Johnson
98a358437f
Add JSON5 support for hexadecimal integers
...
With tests for YAJL.
Note yajl_parse_integer still can't handle LLONG_MIN in base 10 or 16.
2020-08-09 00:33:07 -05:00
Andrew Johnson
00ac15cec5
Turning on JSON5 also enables comments
...
Includes the simple test case.
2020-08-09 00:33:07 -05:00
Andrew Johnson
456e774d85
JSON5: Modified lexer for some number support
...
If configured for JSON5 the lexer now allows a leading or trailing
decimal point on doubles, and an explicit leading + sign on integers
or double numbers.
Includes test cases.
2020-08-09 00:33:07 -05:00
Andrew Johnson
91c5b2fee2
Trailing commas now require a json5 parser
...
Modifies the yajl test case to add the -5 option
2020-08-09 00:33:06 -05:00
Andrew Johnson
ae604b2a55
Start of JSON5 support
...
Added yajl_allow_json5 config flag, pass it around.
Added -5 option to yajl_test and yajlTestConverter.pl
2020-08-09 00:33:06 -05:00
Andrew Johnson
d381a936b5
Fix for yajl#188 potential UB
...
Apparently it is UB to use an enum in va_start()
2020-08-09 00:33:06 -05:00
Andrew Johnson
e542a22631
Fix Darwin version of epicsMonotonicResolution()
2020-08-04 16:22:03 -05:00
Andrew Johnson
97edcfc289
simmTest.c: Allow the clock to not always tick
...
On some systems the wall clock may tick slowly, so we must allow
the time to not change at all between checks.
Show the time differences.
2020-08-03 18:03:05 -05:00
Andrew Johnson
951b6acbbc
Fix Cygwin TCP_NODELAY issue from Paul Chu & Freddie
2020-08-03 12:25:31 -05:00
Andrew Johnson
3c99391d93
Added SPDX License ID to all EPICS-original source files
...
In some cases the license-identification header was missing,
so I added that as well. Replaced the remaining headers that
specifically identified "Versions 3.13.7 and higher".
Makefiles and the build system were deliberately excluded.
2020-08-03 11:53:01 -05:00
Andrew Johnson
957f386d77
Removed EPICS license header and (c) from yacc/antelope sources
...
These should never have been added in the first place.
2020-08-03 11:49:56 -05:00
Andrew Johnson
60aaa16e1d
Removed EPICS license header and (c) from flex sources
...
These should never have been added in the first place.
2020-08-03 11:49:56 -05:00
Andrew Johnson
3506d11558
Speed up osdTimeGetCurrent() on recent macOS
...
Fixes https://github.com/epics-base/epics-base/issues/83
2020-08-03 11:37:19 -05:00
Michael Davidsaver
bcbaffc158
update submodules
2020-07-26 13:48:01 -07:00
Andrew Johnson
10d472202d
Fix some ca/perl builds
...
Use the pre-expanded Perl configuration variables.
Conda builds of Perl need these (and a fix to the Perl
config files, see https://github.com/conda/conda/issues/8425
for details).
2020-07-21 15:17:37 -05:00
Andrew Johnson
f99bb637b9
ca: Minor cleanups in capr.pl
2020-07-20 18:22:37 -05:00
Andrew Johnson
c55a95fc98
ca: Support DBF_INT64 and DBF_UINT64 in capr.pl
2020-07-20 18:21:46 -05:00
Andrew Johnson
7d9746003b
ca: Fix capr.pl to handle missing fields properly
...
When using an EPICS 7 softIoc.dbd file with a PV from an older version
of Base which didn't have all the fields, our attempts to read those
fields will time out, but the internal logic was buggy. Don't try to
print the values of timed out fields at all. The user will still see a
warning about connection timeouts at the top.
2020-07-20 18:20:45 -05:00
Ralph Lange
7d2e352f6a
Merge changes from 3.15 branch into 7.0
...
- merged 3.15 branch up to bf7a1605
# Conflicts:
# modules/database/src/ioc/db/dbChannel.c
2020-07-15 11:46:45 +02:00
Andrew Johnson
5c03f8ba79
Simplify epicsMessageQueueTest using joinable threads
...
Fixes issues with thread shutdown
2020-07-02 16:17:04 -05:00
Andrew Johnson
1eeac6da2f
Switch RTEMS to the default osdMessageQueue
2020-07-02 16:14:08 -05:00
Michael Davidsaver
d4781bca28
Merge branch 'recnames' into 7.0
...
* recnames:
validate alias names as well
yet more record name validation
Further record name validation
popFirstTemp() may return NULL
fix crash on bad record name
Extend record name validation
2020-06-30 19:54:43 -07:00
Michael Davidsaver
dcee015f71
validate alias names as well
2020-06-29 14:44:04 -07:00
Michael Davidsaver
fddd65ccb1
yet more record name validation
2020-06-29 11:33:21 -07:00
Michael Davidsaver
7f9fefc2a4
Further record name validation
2020-06-26 13:22:11 -07:00
Michael Davidsaver
b34aa594c8
popFirstTemp() may return NULL
...
This indicates an earlier error, which should already
been printed.
2020-06-22 12:09:26 -07:00
Michael Davidsaver
3124d972bf
fix crash on bad record name
2020-06-22 12:09:26 -07:00
Michael Davidsaver
49889d8549
Extend record name validation
...
Begin enforcing earlier check (and tab).
Add new warning for record names beginning
with numeric or '{'.
2020-06-22 12:09:26 -07:00
Michael Davidsaver
4160610885
libCom: test osdSockAddrReuse
...
Ensure that epicsSocketEnableAddressReuseDuringTimeWaitState()
and epicsSocketEnableAddressUseForDatagramFanout()
have the desired effects.
2020-06-20 12:01:40 -07:00
Michael Davidsaver
19146a597b
WIN32: fix epicsSocketEnableAddressReuseDuringTimeWaitState()
2020-06-19 20:17:14 -07:00
Andrew Johnson
b8f0fd4cdb
Make BKPT field an epicsUInt8 for consistency
...
It was the last 'char' field in dbCommon and the Base record types.
2020-06-12 17:11:34 -05:00
Michael Davidsaver
786c4c2ca2
Revert "dbRecordtypeFieldItem() avoid excess strcmp()"
...
This reverts commit 48eb4ff4ac .
2020-06-02 11:26:07 -07:00
Michael Davidsaver
48eb4ff4ac
dbRecordtypeFieldItem() avoid excess strcmp()
...
only one is going to match.
2020-06-02 07:55:22 -07:00
Michael Davidsaver
6c914d19c3
db: validate dbrType
2020-06-02 07:55:22 -07:00
Michael Davidsaver
d6f8e9038c
getLinkValue() use dbInitEntryFromAddr()
...
Called from dbGet(). Optimize hash table lookup
and bsearch of array to O(0) assignment.
2020-06-02 07:55:22 -07:00
Michael Davidsaver
5917990908
dbPutGetTest test plain array field
2020-06-02 07:55:22 -07:00
Michael Davidsaver
eeb198db15
change arrRecord cvt_dbaddr() to behave like waveformRecord et al.
2020-06-02 07:55:22 -07:00
Andrew Johnson
1fec685eed
Merge new stuff after the 7.0.4 release work
2020-05-28 21:23:44 -05:00