Repository navigation
Bit 0.29.0
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
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.28.0..HEAD