Repository navigation
Bit 0.31.0
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
@jsonvalue 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
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 macOSFull commit log: v0.30.0..HEAD