Yi Duan
b36771ba37
feat: support Go 1.19 ( #275 )
...
* feat: support Go 1.19
* fuzz test refactor
* fix fuzz bug, generate pointer typ
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
2022-08-09 12:54:11 +08:00
Yi Duan
07d7b867d4
feat (encoder): add encoder option NoNullSliceOrMap ( #218 )
...
* feat (encoder): add encoder option `NoNullSliceOrMap`
* feat: add option on `sonic.Config`
* build: specify `self-host` to x64 machine
2022-07-08 15:07:42 +08:00
Yi Duan
55e3d10619
fix: (decoder) return io.EOF when read nothing from io.Reader ( #254 )
...
* fix: (decoder) return io.EOF when read nothing from io.Reader
* build:(CI) codeql-analysis only use x86 machine
2022-07-01 17:51:42 +08:00
liu
410625ca9e
opt: remove bound and loop unrolling in quote (begin to use clang13) ( #237 )
...
* opt: remove most bound check in quote
* opt: remove branch in copied escaped chars
* opt: use cache-friendly bool array
* opt: use loop unrolling in quote
* feat: add `-t` for bench.py
Change-Id: I3f41218187597126ef960eab09c6fa6fe252f347
* test:(bench) adjust repeat_time
* test: add Diff on CI
* test: update bench.py
* doc: update README.md
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2022-06-08 21:50:10 +08:00
liu
3717c62ec2
test: add generic benchmark ( #239 )
...
* test: add generic benchmark
* test: add ci
* chore: adjust generic benchmark variable name
* ci: fix compare bug in bench.py
* build: adjust CI yaml
* test: use sonic.Config
* chore: generic test
* test: add interface type bench
Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2022-06-07 13:26:28 +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
f9d033d6f8
feat: support streaming IO ( #225 )
...
* feat (decoder): support streaming IO
* opt: fine tune buffer size factors
* feat (encoder): support streaming IO
* doc: refactor format and add comments
* fix: io.EOF dead loop
* build: adjust CI files
* doc: update README.md
2022-05-24 10:38:43 +08:00
75b728ba51
feat: support for Windows ( #228 )
...
* feat: support for Windows
* fix (loader): default loader now has build tag: for linux and darwin
* feat (loader): add memory allocator support for Windows
* feat: add Windows CI
Added Windows CI for GitHub Actions
Go version: 1.15.x, 1.16.x, 1.17.x, 1.18.x
* fix (loader): remove `amd64` build constraint from Windows
* fix: TSAN error on Windows CI
Temporary remove `-race` flag
Link: https://github.com/golang/go/issues/46099
Co-authored-by: Yi Duan <duanyi.aster@bytedance.com>
2022-05-23 12:55:45 +08:00
Yi Duan
fe2497d01e
fix:(loader) init _Moduledata.gcdatapointer to avoid panic on plugin-mode ( #188 )
...
* fix:(loader) init `_Moduledata.gcdata`pointer to avoid panic on plugin-mode
* fix: freeze gcdata pointer
* feat: go115
* update test
* fix: use unique bytes pointer
* test: drop go1.15 race test
* feat: support go1.18
2022-04-01 16:46:07 +08:00
Yi Duan
cb1702dc8c
feat: support Go1.18 ( #205 )
...
* feat: support Go1.18
* fix: re-encoding `moduledata.pclntab`
* test: add generic func wrap test
2022-03-28 20:43:43 +08:00
Yi Duan
f087445eee
fix: allow string value decoded as json.Number ( #196 )
...
* fix: allow string value decoded as `json.Number`
* test: move -race flag from Go1.15 since it reports "race: limit on 8128 simultaneously alive goroutines is exceeded, dying"
* test: add benchmarks
2022-02-28 20:14:38 +08:00
Yi Duan
526c46883e
fix: support writeBarrier for Go 1.15 ( #181 )
2022-01-27 17:37:42 +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
Yi Duan
c3cb5de704
feat:(ast) support sorting node keys ( #164 )
...
* feat: ast.Node support ForEach() iteration (DFS)
Change-Id: Ia53f1db2814036e12b760dfbb7a21094a6abd541
* feat: support Node's key sorting
Change-Id: I0b93d9b4feada853fa2ca9f48277da71948a95be
* fmt
Change-Id: I1a53170959c08f1a32f02b0f163207254a87362c
* test: forbid `checkptr`
Change-Id: I6b34f74ee3bad883f515728300bf735a9e10b0d6
* fmt: add comments
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-12-28 20:29:09 +08:00
Pure White
188e829dd7
chore(ci): setup self-hosted runner for ci ( #158 )
2021-12-20 19:56:07 +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
49df11ef83
feat: adjust ABI for supporting go1.17 ( #116 )
...
* feat: adjust encoder ABI for supporting go1.17
* binding
* generic
* opt: exchange R10/R11 with BX/BP when call c func
* fmt
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-11-30 18:47:17 +08:00
Yi Duan
5b38f56cec
fix: go1.15 CANNOT support gcWriteBarrier due to linkname bug ( #134 )
...
* fix: go1.15 CANNOT add gcWriteBarrier due to linkname bug
* add go1.15 push-check
Co-authored-by: duanyi.aster <duanyi.aster@bytedance.com>
2021-11-18 11:15:14 +08:00
chenzhuoyu
fc6fe804a7
fix: disable golink, it does not recognize my black-magic
2021-05-29 00:32:43 +08:00
Pure White
ce0e349cdf
Initial commit
2021-05-28 22:44:30 +08:00