Skip to content

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 05 Jun 07:23
· 46 commits to main since this release
v1.4.0
24a8e09

Changes

  • release: v1.4.0 (24a8e09)
  • docs(changelog): write v1.4.0 (lazy fields + chunked FAST + serialize fixes) (392387c)
  • chore(charts): transparent background for multilib charts 13/14 (1f51969)
  • chore(charts): give the JS baselines distinct hues on multilib charts (53e9526)
  • docs(readme): add library-comparison + primitive perf charts (50a3b1a)
  • chore(charts): average the 3 scan modes per family on multilib charts (b44a987)
  • chore(charts): drop data labels on line charts 07-10 (56c8b8f)
  • chore(charts): declutter line charts 07-10 (e4507bd)
  • docs(improvements): add #11 — shorter compile times / less Binaryen pressure (73bc7ae)
  • chore(charts): swap shared palette to the 9-colour scheme (48198c0)
  • chore(charts): standardize on a single shared colour palette (ea2e098)
  • bench(multilib): add a lazy ("auto") json-as struct variant (fe3c169)
  • chore: split bench into smaller files (5ea8a3a)
  • docs: update benchmark machine to Apple M4 Max (5a4c816)
  • fix(serialize): @omitnull/@omitif use a leading comma, not a trailing one (cb4f684)
  • perf(transform): chunk the optional (seenAny) FAST deserializer tiers too (cefc9f6)
  • perf(transform): chunk the straight-line FAST deserializer into helper methods (a9b05aa)
  • perf(codegen): remove all inline.always() forced call-site inlining (0f9c4d9)
  • perf(transform): tier generated deserializer by struct width to bound Binaryen (f55f457)
  • fix(lazy-fields): preserve declared field defaults on constructed instances (4e79e27)
  • fix(lazy-fields): ensureSize before key writes in lazy serialize (8819adb)
  • perf(codegen): drop @inline from worker functions (7325b58)
  • bench(lazy): add large.lazy:"auto" variant (334317c)
  • bench(lazy): add small/medium/token/vec3 lazy:"auto" variants (026048b)
  • docs(readme): add lazy serialize chart, fix access-pattern wording (8c6ff2b)
  • bench(lazy): add committed eager-vs-lazy benchmark + chart backing (ada825a)
  • docs(types): add @serializer/@deserializer examples + env-var config (f4d26b2)
  • docs(types): flesh out JSDoc in assembly/index.d.ts (84c36f2)
  • fix(charts): draw lazy bar labels via a geometry-based plugin (3b9c2b9)
  • fix(charts): center the bar value labels (7404993)
  • docs(readme): point lazy charts at the SVG variants (b8cce26)
  • chore(charts): match chart01 style (legend + build-info sidebar), emit SVG (22f9245)
  • chore: delete runners (a8f9dbb)
  • refactor(lazy-fields): materialize via JSON.__deserialize, drop __materializeLazy (d61fedf)
  • chore(transform): stop emitting source maps (49e1531)
  • docs(readme): add lazy-fields performance charts + guide link (4d7d4b5)
  • chore(charts): add build-chart15.ts — lazy-fields benchmark charts (de25680)
  • chore(playground): construct via new + setter (object-literal init is AS-incompatible with accessors) (2a94eb8)
  • refactor(lazy-fields): make the lazy slot/memo/__src fields private (77c5169)
  • chore: track assembly/playground.ts as a shared scratch pad (56010cb)
  • perf(lazy-fields): refine auto cost (c9bcb75)
  • perf(lazy-fields): materialize scalars/strings from slice pointers (4ec099a)
  • fix(lazy-fields): error on lazy fields with custom serializer/deserializer (4e1e4cb)
  • perf(lazy-fields): pack <=32-bit scalar values into the slot (1ac0868)
  • perf(lazy-fields): pack materialized flag into the u64 slot (fa528cc)
  • fix(lazy-fields): unset/absent lazy field returns default (3a89ecd)
  • feat(lazy-fields): support @omitnull and @omitif on lazy fields (31e4b53)
  • perf(lazy-fields): share the parser across lazy getters (19f274f)
  • feat: support @lazy, @eager, and automatic deferring of expensive fields (03501e2)
  • feat: switch value scanning to SIMD and SWAR for roughly 60% gain (b707e68)
  • feat: implement first draft of lazy fields (be6ff8c)
  • feat: lots of stuff (8af3337)
  • feat: use nan-boxing for JSON.Value and hook up (6e7d52b)