Skip to content

v0.23.0

Latest

Choose a tag to compare

@github-actions github-actions released this 21 Aug 06:48
· 89 commits to main since this release
e2b489f

What's Changed

  • fix(dart): a string-free scope must skip a string, not validate it (§6.4) by @Andste82 in #269
  • fix(all but c/c-cpp): the declared integer width is a validity bound (#266) by @Andste82 in #274
  • fix(rust,zig,java,csharp,dart): a skip is scoped and inert (#268 #270 #271 #272 #273) by @Andste82 in #276
  • fix(dart): the fp32 raw-bits companion must be consumer-visible (#275) by @Andste82 in #278
  • fix(bench): repair the two recipes that made rust-no-std and dart unmeasurable by @Andste82 in #280
  • fix(cpp): arm readArray's element-width bound (#279) by @Andste82 in #281
  • fix(bench): warm up the go harness before the collected op by @Andste82 in #282
  • feat(bench): measure allow_dynamic, and record which python engine ran by @Andste82 in #284
  • feat(bench): measure corelib-py's accelerator as its own row by @Andste82 in #285
  • fix(rust): stack only live scopes, so a deep skip can't lose the field after it (#283) by @Andste82 in #286
  • fix(cpp): compile the harness JSON reader as C, so clang can build the project by @Andste82 in #287
  • refactor(cpp): guard an empty default with empty(), not a comparison by @Andste82 in #288
  • feat(cpp)!: allow_dynamic selects storage on corelib: cpp too by @Andste82 in #289
  • fix(c): don't double the " * " prefix in generated doc comments by @Andste82 in #290
  • feat!: align the generated encode/decode API — public feed(), one streaming-encode name by @Andste82 in #291
  • feat(typescript)!: chunked decode via decoder()/feed() by @Andste82 in #292
  • fix(zig): a reassembled payload gets its own storage, not the shared buffer (#293) by @Andste82 in #294
  • fix(zig)!: the streaming decoder owns its payloads, it cannot borrow (#295) by @Andste82 in #296
  • fix(typescript): malformed UTF-8 leaves feed() as SofabError, not a TypeError (#297) by @Andste82 in #298
  • feat(rust): allow_dynamic selects storage on corelib: rs too by @Andste82 in #299
  • fix(typescript): the streaming visitor must test an array's element kind before bounding it (#300) by @Andste82 in #301
  • chore(bench): regenerate results.txt from a full run by @Andste82 in #302
  • feat(all): state a field's schema bound in its own doc comment by @Andste82 in #309
  • fix(java): a schema type is a public class in its own file by @Andste82 in #310
  • docs(rust): no_std: false also changes the crate shape by @Andste82 in #311
  • fix(typescript): take the fixlen maxlen verdict at the length word by @Andste82 in #303
  • fix(typescript): latch an array element's declared width at that element (#267) by @Andste82 in #304
  • fix(go,dart,python): latch a schema bound at the word that carries it (#267) by @Andste82 in #277
  • docs: record where a schema bound is latched, per backend (#267) by @Andste82 in #313
  • docs: two CORELIB_PLAN rules went normative; record them and pin the evidence by @Andste82 in #314
  • test(dart): take trydecode's first line with sed, not head by @Andste82 in #315
  • feat(go): decode straight out of an io.Reader via AcceptStream (#312) by @Andste82 in #316
  • test(rust): give rs-static a streaming leg (#306) by @Andste82 in #317
  • fix(typescript): keep an fp32 array element's wire bits on the visitor path (#300) by @Andste82 in #318
  • fix(rust,java,csharp,zig): latch a fixlen bound at its length word (#267) by @Andste82 in #319
  • fix(typescript): a wrapper element's maxlen goes into the reader (#300) by @Andste82 in #320
  • fix(go,dart,python): latch an array element's declared width at that element (#267) by @Andste82 in #321
  • fix(rust): install an OStream through the fallible constructor by @Andste82 in #328
  • docs(architecture,zig): heap-free field storage is a stated backend axis (#323) by @Andste82 in #324
  • feat(go,python,typescript,dart)!: the caller owns the encode buffer by @Andste82 in #329
  • fix(go,dart): guard a nested array row's element width by @Andste82 in #331
  • fix(cpp): encode() must not cap an unbounded message at the ceiling by @Andste82 in #332
  • fix(python): declare a schema-bounded field so the receiver cap stops binding it by @Andste82 in #333
  • perf(java)!: the array path — decode -25% on the array-heavy shape by @Andste82 in #334
  • perf(typescript): close the protobufjs gap on decode; fix bigint fields holding numbers by @Andste82 in #335
  • bench: make the int64 axis measurable, and guard against a row that cannot (#336) by @Andste82 in #337
  • feat(kotlin): an eleventh target, against corelib-kotlin-mp by @Andste82 in #340
  • chore(deps): update gradle/actions action to v6 by @renovate[bot] in #341
  • devcontainer: a kotlinc for the review corpus by @Andste82 in #342
  • feat(typescript)!: int64 long backs u64/i64 scalars with Long, and the push decoder takes corelib's Long channel by @Andste82 in #343
  • docs(architecture): §8 says where a static helper lives, by its shape by @Andste82 in #346
  • docs(architecture): §8 asks for no version floor; API_VERSION cannot express one by @Andste82 in #347
  • perf(typescript): take corelib's Long channel on the push decoder where it pays by @Andste82 in #348
  • generator: emit the helper blocks only where something calls them by @Andste82 in #349
  • refactor(go)!: emit sofab.UTF8Valid, the corelib's initialism-correct name by @Andste82 in #350
  • refactor(zig)!: emit sofab.utf8Valid, the corelib's camelCase spelling by @Andste82 in #351
  • fix(typescript): a nested row's element carries its declared width on the push path too by @Andste82 in #353
  • refactor(zig)!: take the corelib's arrays.at instead of emitting the cast by @Andste82 in #354
  • refactor(go)!: take corelib-go's collectors instead of emitting them (#345) by @Andste82 in #356
  • refactor(java)!: take corelib-java's support layer instead of emitting it by @Andste82 in #357
  • refactor(typescript)!: call the corelib's generated-layer helpers, stop emitting copies by @Andste82 in #359
  • refactor(csharp)!: take the corelib's decode-side support helpers by @Andste82 in #360
  • refactor(rust)!: take the corelib's PayloadAcc instead of emitting the accumulator by @Andste82 in #361
  • refactor(cpp)!: take the corelib's MessageSeq instead of emitting WrapperSeq by @Andste82 in #362
  • refactor(zig)!: take the corelib's support types instead of emitting them by @Andste82 in #363
  • refactor(dart)!: reject through MessageVisitor.invalidate(), not a flag of our own by @Andste82 in #355
  • refactor(kotlin)!: take the corelib's support layer instead of emitting Sbuf.kt by @Andste82 in #358
  • refactor(dart)!: take the corelib's visitor base, list compare and strict UTF-8 by @Andste82 in #364
  • refactor(dart)!: take the corelib's element collectors by @Andste82 in #365
  • refactor(go)!: decline an unknown subtree instead of no-op'ing through it by @Andste82 in #366
  • refactor(typescript)!: decline an unknown subtree instead of routing it to _DEAD by @Andste82 in #367
  • fix(rust): the no-std corelib's PayloadAcc shape follows the crate, not the build flag by @Andste82 in #368
  • docs(npm): the README lists every target, and current versions by @Andste82 in #372
  • chore(packaging): npm/ becomes packaging/npm/, one directory per channel by @Andste82 in #370
  • feat(packaging): build the sofabgen PyPI wheels by @Andste82 in #371
  • feat(packaging): publish the wheels from the release tag via OIDC by @Andste82 in #373
  • docs(readme): an Installation chapter, and Quick start stops building from source by @Andste82 in #374

Full Changelog: v0.22.0...v0.23.0