Skip to content

Bit 0.29.0

Choose a tag to compare

@mdwekat mdwekat released this 26 Sep 22:40
· 982 commits to b3d49452c73294b9004b6776ce74efbb421ec865 since this release
c1e1c74

Bit 0.29.0

On Linux, clock reads go through the vDSO instead of a clock_gettime system call: about 30 ns per read instead of about 1,020 ns on an x86-64 test box, and about 15 ns instead of 140 ns on aarch64. BIT_VDSO=0 forces the system call.

String reuse is on by default. A function that stores or returns a string it was handed keeps that string's header instead of allocating a copy. BIT_STR_REUSE=0 turns it off.

HTTP responses are written as bytes from one buffer per keep-alive connection. std/net adds Conn.writeBytes, and std/http's Request carries headerLines, the header line count found while the request is validated.

Compiler

  • Flip BIT_STR_REUSE on by default, differentials force it on both sides (7a08ac0)

Runtime

  • runtime/park/linux: read Linux clocks through the vDSO, not a clock_gettime trap (481baee)
  • runtime/net/linux: clamp deadline lazily on first EAGAIN, not on entry (50f5a08)

Standard library

  • std/net Conn.writeBytes; std/http writes responses from a reused per-connection buffer (f7da0ba)
  • writeBytes takes the same no-deadline path as write (288729b)

pkg/web

  • checkHeaderCaps uses std/http's header-line count (74b30b3)
  • Constant Content-Type constructors skip re-validation (8b794fb)

Tests

  • Reviewed pollfree exceptions for the vDSO lookup walk; gcretention json re-pinned for string reuse (8e85ff9)

Build and tooling

  • Repin stage0 to 0.28.0, retire the ptrOf(string) IR signature (1593978)

Benchmarks

  • bench: regenerate README and RESULTS.md at f74fdcf for 0.29.0 (b3d4945)

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.28.0..HEAD