Skip to content

Mako v0.4.1

Choose a tag to compare

@loreste loreste released this 22 Jul 15:26

Mako v0.4.1

365 Mako tests + 81 Rust tests, 0 failures. 11/11 CI jobs green.

Runtime

  • Zero-alloc print(f"..."), log_*(f"..."), http_respond(f"...") — f-string bodies consumed directly from the stack buffer, no malloc/free
  • writev print on Unix — single syscall for data + newline
  • Stored hashes in string-keyed maps — skip memcmp on hash mismatch during probing
  • Faster integer hash (splitmix64 replaces wyhash for int-keyed maps)
  • Result/Option = {0} aggregate init instead of memset
  • Fix memory leaks in wrap_err, error_join, error_tag
  • Map probe MAKO_LIKELY branch hints

Codegen

  • len(f"...") computes length from stack buffer without materializing a string
  • Skip redundant old-pointer save on s = append(s, v) self-append
  • emit_fstring_as_view / emit_fstring_view_call helpers for zero-alloc f-string consumers

Performance

  • Inline introsort with corrected depth limit and linear sorted/reverse fast paths
  • Map key ownership: avoid cloning fresh string keys (literals, interpolation, concatenation)
  • Workload: ~23M req/s — tied with Rust, 2x faster than C and Go

Build

  • Windows storage I/O: direct fd, mmap, WAL primitives
  • Portable temp paths for Windows filesystem tests
  • Fix Windows CI: skip plugin compilation test when cc is unavailable
  • All 11 CI jobs pass: Ubuntu, macOS, Windows, ASan, UBSan, TSan, GCC, cross-compile, bench gates, claims

Install

# macOS / Linux
curl -fsSL https://github.com/loreste/mako/releases/latest/download/install-linux.sh | bash

# Or download the binary directly
curl -LO https://github.com/loreste/mako/releases/download/v0.4.1/mako-v0.4.1-darwin-arm64.tar.gz

What's Changed

  • Prevent Windows debug stack overflows by @attahn in #11
  • Add compiler scaling fixtures by @attahn in #12
  • Preserve Windows task results by @attahn in #13
  • Fix runtime optimization correctness regressions by @attahn in #14
  • Make filesystem tests portable on Windows by @attahn in #15
  • Support Windows storage I/O primitives by @attahn in #16

Full Changelog: v0.4.0...v0.4.1

What's Changed

  • Prevent Windows debug stack overflows by @attahn in #11
  • Add compiler scaling fixtures by @attahn in #12
  • Preserve Windows task results by @attahn in #13
  • Fix runtime optimization correctness regressions by @attahn in #14
  • Make filesystem tests portable on Windows by @attahn in #15
  • Support Windows storage I/O primitives by @attahn in #16

Full Changelog: v0.4.0...v0.4.1

What's Changed

  • Prevent Windows debug stack overflows by @attahn in #11
  • Add compiler scaling fixtures by @attahn in #12
  • Preserve Windows task results by @attahn in #13
  • Fix runtime optimization correctness regressions by @attahn in #14
  • Make filesystem tests portable on Windows by @attahn in #15
  • Support Windows storage I/O primitives by @attahn in #16

Full Changelog: v0.4.0...v0.4.1

What's Changed

  • Prevent Windows debug stack overflows by @attahn in #11
  • Add compiler scaling fixtures by @attahn in #12
  • Preserve Windows task results by @attahn in #13
  • Fix runtime optimization correctness regressions by @attahn in #14
  • Make filesystem tests portable on Windows by @attahn in #15
  • Support Windows storage I/O primitives by @attahn in #16

Full Changelog: v0.4.0...v0.4.1

What's Changed

  • Prevent Windows debug stack overflows by @attahn in #11
  • Add compiler scaling fixtures by @attahn in #12
  • Preserve Windows task results by @attahn in #13
  • Fix runtime optimization correctness regressions by @attahn in #14
  • Make filesystem tests portable on Windows by @attahn in #15
  • Support Windows storage I/O primitives by @attahn in #16

Full Changelog: v0.4.0...v0.4.1

What's Changed

  • Prevent Windows debug stack overflows by @attahn in #11
  • Add compiler scaling fixtures by @attahn in #12
  • Preserve Windows task results by @attahn in #13
  • Fix runtime optimization correctness regressions by @attahn in #14
  • Make filesystem tests portable on Windows by @attahn in #15
  • Support Windows storage I/O primitives by @attahn in #16

Full Changelog: v0.4.0...v0.4.1

What's Changed

  • Prevent Windows debug stack overflows by @attahn in #11
  • Add compiler scaling fixtures by @attahn in #12
  • Preserve Windows task results by @attahn in #13
  • Fix runtime optimization correctness regressions by @attahn in #14
  • Make filesystem tests portable on Windows by @attahn in #15
  • Support Windows storage I/O primitives by @attahn in #16

Full Changelog: v0.4.0...v0.4.1

What's Changed

  • Prevent Windows debug stack overflows by @attahn in #11
  • Add compiler scaling fixtures by @attahn in #12
  • Preserve Windows task results by @attahn in #13
  • Fix runtime optimization correctness regressions by @attahn in #14
  • Make filesystem tests portable on Windows by @attahn in #15
  • Support Windows storage I/O primitives by @attahn in #16

Full Changelog: v0.4.0...v0.4.1

What's Changed

  • Prevent Windows debug stack overflows by @attahn in #11
  • Add compiler scaling fixtures by @attahn in #12
  • Preserve Windows task results by @attahn in #13
  • Fix runtime optimization correctness regressions by @attahn in #14
  • Make filesystem tests portable on Windows by @attahn in #15
  • Support Windows storage I/O primitives by @attahn in #16

Full Changelog: v0.4.0...v0.4.1