Skip to content

v1.10.0

Compare
Choose a tag to compare
@AsterDY AsterDY released this 10 Aug 10:49
· 88 commits to main since this release
81a43a9

Break Change

  • [#464] Due to design bugs, we are sorry to warn you that some behaviors of ast.Node have to be changed:

    • BREAK CHANGE: ast.Unset() now WON'T change ast.Len() and ast.Index()
    • BREAK CHANGE: ast.UnsafeArray() and ast.UnsafeMap() are deprecated and user SHOULDN'T modify node based on these API
  • [#393] Due to difficulty of maintaining compatibility with Golang:

    • BREAK CHANGE: sonic now only support Go 1.16~1.20, drop Go 1.15 support

Feature

  • [#493] support Go1.21.0
  • [#471] (ast) add ast.Visitor for transversing JSON in-place
  • [#470] add Valid() API

Bugfix

  • [#486] possible overflowed instruction while handling byte type
  • [#484] (decoder) avoid scratched memory of returned error
  • [#496] (ast) Exist() didn't check Valid() first
  • [#498] (ast) drop ast.Node API UnsafeArray() and UnsafeMap() (Break Change)

Optimization

  • [#393] refactor asm2asm to avoid SIGPROF crashing, and enable traceback when C function panics
  • [#464] (ast) use linked chunk as fundamental storage for nodes to keep node pointer valid (Break Change)
  • [#464] (ast) avoid malloc when meeting empty values, and inline header chunk into lazy-parsing stack to reduce malloc. The performance of Parse()\Load()\Interface() promoted 10~60%
  • [#475] (last) pass skipnumber flag to avoid decoding numbers

New Contributors

Full Changelog: v1.9.2...v1.10.0