Skip to content

Commit c15775f

Browse files
committed
chore: update changelog
1 parent 2017f4d commit c15775f

1 file changed

Lines changed: 9 additions & 44 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2,52 +2,17 @@
22

33
## Unreleased
44

5-
### chore: clean linting and project housekeeping
6-
- Excluded generated `.as-test` build artifacts from ESLint so lint runs only evaluate source files.
7-
- Rewrote a handful of generic deserializer byte-offset calculations to use parser-safe `sizeof<valueof<T>>()` math without changing runtime behavior.
8-
- Updated release/docs project files and removed the obsolete `run-tests.sh` helper.
9-
10-
### fix: add built-in typed array support
11-
- Added default serialization and deserialization support for all built-in typed arrays.
12-
- Added dedicated `ArrayBuffer` parse/serialize helpers and routed transform-generated `ArrayBuffer` field serialization through a dedicated buffer path inside `@json` classes.
13-
- Added regression coverage for direct typed-array round-trips, explicit `ArrayBuffer` helpers, field-initialized `@json` classes with `ArrayBuffer`, constructor-assigned typed-array fields, and nested `@json` class payloads.
14-
15-
### fix: finish subtype-aware StaticArray deserialization
16-
- Reworked `StaticArray` deserialization to dispatch by element subtype, mirroring the existing `Array<subtype>` deserializer matrix instead of relying on a generic fallback.
17-
- Materialized complex deserialized array results into fixed `StaticArray` storage for nested arrays, nested static arrays, maps, `JSON.Value`, `JSON.Box`, `JSON.Obj`, `JSON.Raw`, and transform-backed structs.
18-
- Added regression coverage for richer `StaticArray` payloads and fixed a shared `JSON.Raw[]` delimiter edge case exposed by the new `StaticArray<JSON.Raw>` path.
19-
20-
### fix: tighten default-path runtime correctness
21-
- Fixed `JSON.Value` signed integer tagging and stringification so negative integer values no longer serialize as unsigned.
22-
- Fixed `@omitif("...")` to use the same omit semantics as the callback form during transform-generated serialization.
23-
- Hardened the default deserializers for objects, structs, maps, sets, and raw/string arrays so escaped backslashes and quotes are scanned correctly.
24-
- Implemented `JSON.Obj.from(...)` for serializable object-shaped inputs and aligned `JSON.Box<bool>` with the runtime behavior already exercised by the test suite.
25-
- Added regression coverage for signed `JSON.Value`, decorator omission behavior, escaped nested strings, and raw-array string handling.
26-
27-
### perf: SIMD string fast path for object deserialization
28-
- Added a SIMD string-field deserializer for fast-path object deserialization.
29-
- Updated transform codegen to emit mode-specific string field helpers and route generic array fields through the shared array-field helper.
30-
- Relaxed fast-path `false` validation and fixed fast-path generation to respect `JSON_MODE=naive`.
31-
32-
### perf: optimize direct integer array deserialization
33-
- Added direct SWAR and SIMD integer-array deserializers with reusable-storage fast paths and shared whitespace-correct slow fallback.
34-
- Split SWAR array field deserializers by element kind and added dedicated direct array throughput benches for SWAR and SIMD.
35-
36-
### refactor: add serialize/deserialize index dispatchers
37-
- Added `assembly/serialize/index/*` and `assembly/deserialize/index/*` entrypoints to centralize mode selection.
38-
- Routed the public API through the new index dispatch layer and added top-level barrel exports for both serialize and deserialize.
39-
40-
### perf: speed up float field deserialization
41-
- Replaced linear power-of-ten loops in the handwritten float deserializers with a bitwise power-of-ten path and batched fractional parsing.
42-
- Switched `deserializeFloat` from `f64.parse(ptrToStr(...))` to the handwritten parser path.
43-
- Improved object fast-path throughput substantially on payloads with exponent-form float fields.
44-
45-
### fix: avoid pulling SIMD code into non-SIMD bench builds
46-
- Removed unconditional SIMD imports from generic string and array dispatchers so naive and SWAR builds do not emit SIMD ops.
47-
- Made benchmark temp-file cleanup tolerant of missing temporary outputs after `asc --converge`.
48-
495
## 2026-03-19 - 1.3.0
506

7+
- chore: exclude generated `.as-test` build artifacts from ESLint, tighten generic deserializer offset math, and remove the obsolete `run-tests.sh` helper
8+
- fix: add built-in typed array and `ArrayBuffer` serialization and deserialization support, including transform-generated field handling inside `@json` classes
9+
- fix: finish subtype-aware `StaticArray` deserialization for nested arrays, maps, JSON value types, transform-backed structs, and related regressions
10+
- fix: tighten default-path runtime correctness for signed `JSON.Value`, `@omitif("...")`, escaped nested strings, raw-array string handling, and `JSON.Obj.from(...)`
11+
- perf: add a SIMD string-field deserializer for fast-path object deserialization and align transform codegen with mode-specific field helpers
12+
- perf: add direct SWAR and SIMD integer-array deserializers with reusable-storage fast paths and dedicated throughput benches
13+
- refactor: add `assembly/serialize/index/*` and `assembly/deserialize/index/*` dispatchers and route the public API through them
14+
- perf: speed up float deserialization with handwritten parser paths, bitwise power-of-ten handling, and batched fractional parsing
15+
- fix: avoid pulling SIMD code into non-SIMD bench builds and make benchmark temp-file cleanup tolerant of missing `asc --converge` outputs
5116
- compat: add compatability between json-as and try-as by ignoring methods prefixed by __try
5217
- feat: gate generated fast struct deserialization behind `JSON_USE_FAST_PATH=1`
5318
- refactor: make generated struct `__DESERIALIZE` methods return the advanced source pointer

0 commit comments

Comments
 (0)