Latest Results
Guarantee 8-byte alignment in vx_alloc; cast instead of copy in bitpacked
The bitpacked kernel copied packed words out per chunk, defending against
alignment and endianness โ neither of which actually applies in the guest:
wasm32 is always little-endian (matching the serialized format), and every
buffer reaches guest memory through vx_alloc, which we control.
- vx_alloc now allocates with an explicit 8-byte-aligned Layout, and the
alignment is documented as part of the ABI: host uploads (frames, raw
buffers, child structs) always land aligned, so kernels can view typed
data in place and Arrow int64 struct fields are naturally aligned.
- The bitpacked kernel views the packed buffer as &[u32] via a checked
align_to (no word copies), unpacks full in-range chunks directly into the
output โ mirroring the native decode_into fast path โ and uses scratch
only for a sliced first chunk and a partial trailer. Patches are applied
in u32 space; the output converts to bytes with a single cast + copy.
Also validated the no_std-by-default path the kernels should end on: with
fastlanes-rs's num-traits edge patched to default-features = false (a
one-line upstream fix), the identical kernel source builds fully no_std
with the SDK runtime enabled at 37 KB instead of 53 KB, and passes the
whole round-trip suite (this also exercises the SDK bump allocator through
the real pipeline). fsst-rs needs a mechanical no_std-ification for the
same win. Documented in the design doc with measured sizes.
All 11 tests pass in the detached workspace; clippy clean.
Signed-off-by: Robert Kruszewski <robert@spiraldb.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TaUprJCAbZjuvv6S5MVt4sclaude/relaxed-johnson-8sll2h Latest Branches
+20%
+32%
claude/builders-canonical-children-9ze0t6 -31%
claude/chunked-canonical-via-builder-9ze0t6 ยฉ 2026 CodSpeed Technology