Skip to content

Bit 0.31.0

Choose a tag to compare

@mdwekat mdwekat released this 27 Sep 10:19
· 1055 commits to a4a7d44bb9bc9d643ae4a65299ae0af26d8654ed since this release
410b94c

Bit 0.31.0

@json classes now get a direct __jsonAppend writer by default, and pkg/web's c.json uses it to encode a value straight to bytes without building a Json tree. Interface assertions v.(I) now check method name and signature by default, and bounds checks are removed through nested if joins by default. The std/http request loop allocates three fewer objects per request, the allocation cache answers its common case without a call, and on macOS a keep-alive connection no longer issues the read that returns EAGAIN after a drained read.

BIT_DCE_PARAMS stays off by default. BIT_STATIC_CONST ships switched off: a bare function value references one static closure cell instead of allocating one.

Compiler

  • Repin stage0 to 0.30.0, flip BIT_IFACE_SIG and BIT_BCE_JOIN on by default (e301720)
  • Flip BIT_DCE_PARAMS and BIT_JSON_APPEND on by default (063813b)
  • Keep BIT_DCE_PARAMS off by default (3c01242)
  • A bare function value references one static closure cell, behind BIT_STATIC_CONST, default off (741cb9c)
  • The static closure cell goes to the writable data section with a rebased fixup (e95d2e0)
  • Data-section fixup loops move to machoDataFixups/peDataFixups (ddcf4f0)
  • One fixup helper per writer serves both the rodata and data fixups (02a14ec)

Runtime

  • runtime/net/darwin: wait for readiness instead of the EAGAIN read after a short read (d84120d)
  • runtime/gc: answer the alloc-cache steady state without a call (57e880e)

Standard library

  • std/http: a peer that sends half a request and closes is forgotten (a3bd23e)
  • std/http: drop three dead per-request objects (621acc8)
  • std/http: keep readMessage's path fix under the 80-line ceiling (2aac714)

pkg/web

  • c.json encodes a @json value straight to bytes via __jsonAppend (d0dbebb)
  • jsonRes direct path leaves serialize unset until heldValue (f7e4bdd)

Tests

  • Split staticconst main under the complexity limit, trim selfhost-diffdump.sh to 800 lines (eb71528)

Benchmarks

  • bench: regenerate README and RESULTS.md at eb71528 for 0.31.0 (a4a7d44)

Artifacts

Published for aarch64-linux, aarch64-macos, x86_64-linux and x86_64-windows.
See dist/README.md for the full target table, the archive layout,
the required BIT_STDLIB/BIT_LIBBITRT environment, and the
SHA256SUMS format.

Verify a download before running it:

sha256sum --check --ignore-missing SHA256SUMS   # shasum -a 256 on macOS

Full commit log: v0.30.0..HEAD