Commit Graph

171 Commits

Author SHA1 Message Date
andrew bf3fbd638c arm64 implementation for scanning for non-normal chars in strings 2025-05-24 13:34:59 -04:00
andrew 493e6aec31 Benchmark different strides 2025-05-22 19:24:14 -04:00
andrew 41c8fcc30c Fix gcc build 2025-05-22 16:32:45 -04:00
andrew 18748483b2 Add to corpus 2025-05-22 15:51:51 -04:00
andrew ef19dae3f6 Simd string2 2025-05-22 15:36:46 -04:00
andrew ad17336997 Remove alignas(16) from tables
I don't think it makes a difference
2025-05-22 14:54:32 -04:00
andrew 23929289cb Annotate all reject code paths as unlikely 2025-05-22 14:51:55 -04:00
andrew 3682bea38a Add to corpus 2025-05-22 13:17:38 -04:00
andrew d68c9a8ccc Pass test if one parser says overflow and the other says reject
Maybe in the future we could rerun with a bigger stack?
2025-05-22 12:57:12 -04:00
andrew c939bc3baa Remove most usages of T_END_NUMBER 2025-05-22 12:37:08 -04:00
andrew 76e03e635b Skip past false,true,null directly if buffered 2025-05-22 12:23:09 -04:00
andrew af07cdc8be Skip past N_INTEGER 2025-05-22 12:15:50 -04:00
andrew 3afa3b6e9a Skip N_OBJECT and N_ARRAY 2025-05-22 11:55:27 -04:00
andrew 3635f5cf18 Skip over n_string when you know it matches 2025-05-22 11:45:57 -04:00
andrew 56f6ab6566 Fuse whitespace into string 2025-05-22 11:42:05 -04:00
andrew 297d6b48f7 Fuse whitespace into object2, object3, array2, array3, colon 2025-05-22 11:38:42 -04:00
andrew dff2120867 Remove redundant len check 2025-05-22 11:31:07 -04:00
andrew 048caa830a Fuse N_WHITESPACE into N_VALUE 2025-05-22 11:21:58 -04:00
andrew 0786d8db4c More work on c api 2025-05-22 11:00:59 -04:00
andrew 6e602d8fd5 Start working on c api 2025-05-22 10:55:15 -04:00
andrew 96ef50d52f Add to corpus 2025-05-21 17:00:05 -04:00
andrew 45029e7dfa Add to corpus 2025-05-21 16:48:01 -04:00
andrew 0b68fd1d41 Test more strides 2025-05-21 16:19:58 -04:00
andrew 611d1a07de Validate correct string data in fuzz test 2025-05-21 15:45:24 -04:00
andrew c261b64620 Fix unintentionally disabled test 2025-05-21 14:06:43 -04:00
andrew bde83c0b15 Write readme 2025-05-20 12:43:26 -04:00
andrew c79b19b24f Add to corpus 2025-05-20 11:56:25 -04:00
andrew a890ce3666 Move copying out of tight loop 2025-05-19 19:49:11 -04:00
andrew a4d7d1f91e Loop in string2 in normal case 2025-05-19 17:50:48 -04:00
andrew 918950d7f8 Fix unescaping bug 2025-05-19 17:16:37 -04:00
andrew 4174f1c609 Add test witnessing unescaping bug 2025-05-19 17:15:56 -04:00
andrew 9a5b94e25d Remove redundant nonterminals 2025-05-19 17:02:45 -04:00
andrew 7a5b538132 Avoid some checks for len == 0 2025-05-19 16:58:01 -04:00
andrew 5df17a0d47 Consume whitespace in loop 2025-05-19 16:27:13 -04:00
andrew ff00f3eead Fix bogus assert 2025-05-19 16:21:31 -04:00
andrew 2b604a4f89 Add to corpus 2025-05-19 16:19:21 -04:00
andrew be8187b2fd Fix issue with fuzz test
Previously an implementation could never call on_begin_number or
on_end_number and still pass
2025-05-19 15:58:15 -04:00
andrew 2cb9bc8ad2 Add to corpus 2025-05-19 15:13:55 -04:00
andrew bf30eabdfc Match simdjson behavior for surrogate pairs
As far as I can tell
2025-05-19 15:11:30 -04:00
andrew 292154100f Implement utf16 surrogate pairs 2025-05-19 14:53:16 -04:00
andrew 34ad19c22f Unescape basic multi-lingual plane utf8 2025-05-19 14:26:12 -04:00
andrew 19bc216458 Add utf-8 unescaping test 2025-05-19 13:14:24 -04:00
andrew d9bb22e6b1 Fix several unescaping issues 2025-05-19 13:10:24 -04:00
andrew 553a273a1b Basic unescaping 2025-05-19 12:47:14 -04:00
andrew d5bd9fc018 Call on_string_data with all available data 2025-05-19 12:41:12 -04:00
andrew b7cacf13f4 Call on_number_data with all available bytes 2025-05-19 12:37:06 -04:00
andrew 5ae8d4343c Add simple unescaping test 2025-05-19 12:25:59 -04:00
andrew fc747f96df invalidUtf8 -> invalidStringByte 2025-05-19 12:25:13 -04:00
andrew a271d698d0 Include "callbacks.h" 2025-05-19 11:36:02 -04:00
andrew d279173482 Validate utf8 2025-05-18 17:23:22 -04:00