liu
57989f38ba
opt: skip number in json.Number parsing ( #209 )
...
* opt: skip number in json.Number parsing
* fix: generic use skip_number
* test: add json.Number decoding benchmarks
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2022-04-01 17:45:06 +08:00
liu
ce41dd9636
fix: correct htmlescape chars check ( #190 )
...
* fix: correct htmlescape chars check
* fix: continuous html escape chars
* tmp: compile clang13
* fix: check single xe2 char
* fix: htmlescape no mem test
* fix: htmlescape zero check bug
* fix: htmlescape bug
* build: clang12
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2022-02-22 11:43:58 +08:00
liu
7475b256ce
support JSON validate ( #189 )
...
* fix: check unescaped control chars in decode
* feat: add utf8 validate func
* feat: validate utf8 in json string
* feat: add validateone api
* fix: check unicode pointer for surrogate
* clang12 compile
* feat: Import `Valid()` and `Skip()`
* opt: use looktable
* fix utf-8 validate performance problem
* fix: utf-8 validate bug
* clang12 build
* feat: (encoder) accelerate validating json from `json.Marshaler`
chore!:
- `encoder.NoCompactMarshaler`changes to `encoder.CompactMarshaler`, which means compacting operation is not open by default
* fix: only one json value is `Valid()`
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2022-02-21 16:35:53 +08:00
liu
bf4e9e1982
fix: check number ending in skip number ( #179 )
...
* fix: check number ending in skip number
* build: clang12
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2022-01-25 15:21:00 +08:00
liu
d75ce3f730
opt: use simd to optimize htmlescape ( #171 )
...
* opt: use simd to optimize htmlescape
* opt: reuse escaped buffer
* feat: cmake with Clang12
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2022-01-18 11:30:28 +08:00
liu
1443eb3bcf
fix: move large-size local array to _Stack ( #162 )
...
* fix: move large-size local array to _Stack
* fix: adjust jsonstate and add alwaysinline
* fix: initialize types.JsonState's dbuf at prologue
* fix: replace `always_inline` with `inline`
* fix: remove unused types
* feat: update asm2asm
* fix: check stack size befor call JIT function
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-12-30 14:51:23 +08:00
liu
8dfaa13d3e
fix: out-of-bounds accessing in advance_string() ( #161 )
...
* fix: out-of-bounds accessing in advance_string()
* fix: use Clang12 as C compiler
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-12-21 20:03:01 +08:00
Yi Duan
442ce696fb
fix: use stackmap of shadow func as jit func's ( #127 )
...
* fix: use stackmap of shadow func as jit func's
* fix: use LoadWithFaker in decoder
* fix: LoadWithFaker support go115
* add 'runtime.' prefix on jit funcname to prevent preempt
* add parallel GC tests
* remove no_stack_pointer()
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
2021-11-09 11:50:40 +08:00
liu
530d423243
fix: make it parse the UTF-16 surrogate pair after invalid unicode ( #111 )
2021-09-24 16:33:02 +08:00
liu
a7ace8cd03
fix: skip exponent number that begin with zero in skip_number() ( #109 )
2021-09-23 15:02:09 +08:00
chenzhuoyu
0e4b0b8ee1
fix: check character range before BTQ
2021-09-17 19:48:47 +08:00
liuqiang
9ba912d20a
fix: make it return error when unmarshal infinity float number
2021-09-14 18:17:45 +08:00
liuqiang
ec15697761
fix: support IEEE-754 negative zero in both marshal and unmarshal
2021-09-14 15:06:47 +08:00
Oxygen
6aff4b1ad6
fix: handling of surrogate-half characters within double-quoted strings ( #89 )
2021-09-07 14:14:06 +08:00
liu
365da9c1a8
fix: check prefix in native float parsing ( #86 )
2021-09-06 16:01:42 +08:00
chenzhuoyu
8383178c89
feat: supports map key-sorting via encoder options
2021-08-16 18:31:41 +08:00
liuqiang
ebac0a347a
fix: parse min int64 number to float when UseInt64()
2021-07-29 21:27:05 +08:00
liu
83208b7ac4
feat: optimize float-to-str encoding through the Ryu algorithm ( #60 )
...
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: Oxygen <chenzhuoyu@users.noreply.github.com>
2021-07-29 17:03:38 +08:00
liuqiang
e88411dafe
fix: parsing to float64 when the integer(int64) overflow
2021-07-23 18:29:31 +08:00
liuqiang
f9632ab873
fix: enhance float parsing as Go encoding/json
2021-07-23 16:39:32 +08:00
liu
a5efd7e8b7
fix: support high precision for float parsing ( #54 )
...
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
2021-07-18 11:37:59 +08:00
chenzhuoyu
bcca8c2052
fix: fix addressing past valid memory for empty string
2021-07-02 18:25:50 +08:00
chenzhuoyu
5cb6f17944
feat: performance optimizations
2021-07-02 14:38:12 +08:00
chenzhuoyu
85a0d4219f
feat: rewrite the generic decoder in assembly
2021-06-21 11:34:18 +08:00
chenzhuoyu
b2fbad7b4c
feat: rewrite generic decoder in Go, using Finite State Machine
2021-06-16 23:05:21 +08:00
chenzhuoyu
34fa8d64a8
feat: CPU feature detection support
2021-06-10 17:14:25 +08:00
chenzhuoyu
e44e686d90
fix: clears rest of the array if the JSON is not long enough. This fixes #7 .
2021-06-06 16:25:34 +08:00
chenzhuoyu
fc6fe804a7
fix: disable golink, it does not recognize my black-magic
2021-05-29 00:32:43 +08:00
chenzhuoyu
203b83a8cf
fix: fix Copyright placements
2021-05-29 00:15:37 +08:00
chenzhuoyu
fbe0828190
chore: make it open-source
2021-05-28 23:58:58 +08:00