Yi Duan
f87d87de7a
feat: fallback on unsupported go versions ( #358 )
...
* feat: fallback api on unsupported go version
* add compact test
* not support go version <= 1.14
2023-02-08 16:56:10 +08:00
Yi Duan
518110bd99
feat:(decoder) clear memory when decoding failed ( #320 )
...
* feat:(decoder) clear memory when decoding failed
* fix test case
* fix: skip empty string for `,string` option
* test map text key
* support skip mismatched key-value of map
2022-11-07 11:04:19 +08:00
Yi Duan
02fe88266f
feat:(decoder) support skip mismatche-typed value ( #325 )
...
* feat:(decoder) support skip mismatche-typed value
* change test cases
* refactor: add type check down into `CompilePrimitive()` to avoid repeat `null` check
* opt call skip()
* bench: add option `--repeat_times`
* test: omit check primitive
* opt: inline primitive check into its OP
* implement on Go1.15
* fix: support skip json.Numer
* fix: OP_go_skip
* update README.md
2022-11-04 14:27:21 +08:00
liu
6deed01a90
opt: reduce memory pool size ( #302 )
...
* fix: reduce state stack size
* fix types
* opt: shrink encoder stack size
* opt: reduce decoder stack size
* add bench.py loops
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2022-10-28 16:40:14 +08:00
liu
ccc0f3f1e3
opt: faster ftoa ( #291 )
...
* opt: faster f64toa
* feat:(option) add option `MaxInlineDepth` for addjust compilation inline depth (#287 )
* feat: make compilation depth changeable
* feat: add option `DefaultMaxInlineDepth`
* add recurse depth = 10
* refactor
* doc: readme and comment
* opt: add `_MAX_FIELDS` to limit the inlining of big struct
* update license
* fix typo
* feat:(ast) support cast `null` to empty value (#278 )
* fix: recompile
* test: add ftoa benchmarks
* feat: add f32toa
* fix: add license
* opt: optimize decimal
* fix benchmarks
* fix: poor performance in atof32
* test: add more integer test
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: Yi Duan <duanyi.aster@bytedance.com>
2022-09-20 10:26:18 +08:00
liu
de2dc2c35a
add ValidateString option into decode ( #253 )
...
* fix: add escape validate
* feat: add validatestring option
* add print debug
* add jit debug in decoder
* fix go1.16 decoder debug
* fix: not change others
* fix generic parse bug
* remove debug info
* test twitter json
* fix: option typos
* test: add bug test
* fix validate bugs
* fix: validate
* remove files
* re-compile
* update license
* add flags on `skip_xxx()`
* fix internal native tests
* re-compile
* add validstring for perftest
* modify api
* fix readme
* fix comment
* add license
* rename to ValidateString
* fix xprintf.h
* add debug
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2022-08-11 19:06:11 +08:00
Yi Duan
ced28302a9
feat: add compatible API ( #233 )
...
* feat: add compatible API
* test: add api compatibility test
* fmt
* test: adjust CI
* fix: no trailing '\n' for std `Marshal()`
* doc: update README.md
* test: add windows CI
* doc: update README.md
* doc: update README.md
* fmt: add comments and refator
2022-05-25 14:16:56 +08:00
Yi Duan
22229eefc3
fix: relocate stack pointers ( #156 )
...
* fix: relocate stack pointer _VAR_sv to keep it alive
* fix: add stack pointer _VAR_vk to defend `encoding.TextUnmarshaler`
* fix: align faker func's stack with JIT func's
* fix: clear _Stack memory when err returned
* fix: clear stack pointer before return
* fix: relimit stack-overflow check at `_ValueDecoder`
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-12-20 16:19:12 +08:00
Yi Duan
c1749cfd1f
fix( #100 ): check type-size of map element to decide whether use mapassign_fastxx ( #102 )
...
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-09-16 20:13:29 +08:00
chenzhuoyu
955ab75cf5
fix: return error on stack overflow instead of panicking
2021-06-24 12:52:31 +08:00
chenzhuoyu
b2fbad7b4c
feat: rewrite generic decoder in Go, using Finite State Machine
2021-06-16 23:05:21 +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
fbe0828190
chore: make it open-source
2021-05-28 23:58:58 +08:00