Skip to content

Releases: loreste/mako

Mako v0.4.5

Choose a tag to compare

@github-actions github-actions released this 22 Jul 18:33

Full Changelog: v0.4.1...v0.4.5

Full Changelog: v0.4.1...v0.4.5

Full Changelog: v0.4.1...v0.4.5

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

Mako v0.4.0

Choose a tag to compare

@loreste loreste released this 20 Jul 20:16

v0.4.0 — Performance, DCE, lint, runtime speed

362 Mako tests + 80 Rust tests, 0 failures. All CI jobs pass.

Performance

  • 99.8% C output reduction (30,184 → 64 lines for hello.mko)
  • Fast int-to-string (24x faster, no snprintf)
  • Realloc string concat (16% faster chained ops)
  • Dead code elimination (default-on)
  • Demand-driven type helpers (tuples, arrays, channels)
  • Compile-time folding: booleans, strings, len, contains, prefix, suffix, repeat, replace

Lint (mako lint)

  • Unused imports, unreachable code, unused variables, shadowed variables

Concurrency

  • Hardened channel select (thread-local state, seeded stress tests under TSan)

Build

  • --strip flag for smaller binaries
  • Improved Linux installer (distro detection, profile persistence)

Install

curl -fsSL https://github.com/loreste/mako/releases/download/v0.4.0/install-linux.sh | bash

What's Changed

  • Free discarded Option and Result payloads by @attahn in #8
  • fix(installer): detect Linux distribution and persist shell environme… by @imfanee in #10
  • Harden channel select concurrency by @attahn in #9

New Contributors

Full Changelog: v0.3.0...v0.4.0

What's Changed

  • Free discarded Option and Result payloads by @attahn in #8
  • fix(installer): detect Linux distribution and persist shell environme… by @imfanee in #10
  • Harden channel select concurrency by @attahn in #9

New Contributors

Full Changelog: v0.3.0...v0.4.0

What's Changed

  • Free discarded Option and Result payloads by @attahn in #8
  • fix(installer): detect Linux distribution and persist shell environme… by @imfanee in #10
  • Harden channel select concurrency by @attahn in #9

New Contributors

Full Changelog: v0.3.0...v0.4.0

What's Changed

  • Free discarded Option and Result payloads by @attahn in #8
  • fix(installer): detect Linux distribution and persist shell environme… by @imfanee in #10
  • Harden channel select concurrency by @attahn in #9

New Contributors

Full Changelog: v0.3.0...v0.4.0

What's Changed

  • Free discarded Option and Result payloads by @attahn in #8
  • fix(installer): detect Linux distribution and persist shell environme… by @imfanee in #10
  • Harden channel select concurrency by @attahn in #9

New Contributors

Full Changelog: v0.3.0...v0.4.0

What's Changed

  • Free discarded Option and Result payloads by @attahn in #8
  • fix(installer): detect Linux distribution and persist shell environme… by @imfanee in #10
  • Harden channel select concurrency by @attahn in #9

New Contributors

Full Changelog: v0.3.0...v0.4.0

What's Changed

  • Free discarded Option and Result payloads by @attahn in #8
  • fix(installer): detect Linux distribution and persist shell environme… by @imfanee in #10
  • Harden channel select concurrency by @attahn in #9

New Contributors

Full Changelog: v0.3.0...v0.4.0

What's Changed

  • Free discarded Option and Result payloads by @attahn in #8
  • fix(installer): detect Linux distribution and persist shell environme… by @imfanee in #10
  • Harden channel select concurrency by @attahn in #9

New Contributors

Full Changelog: v0.3.0...v0.4.0

What's Changed

  • Free discarded Option and Result payloads by @attahn in #8
  • fix(installer): detect Linux distribution and persist shell environme… by @imfanee in #10
  • Harden channel select concurrency by @attahn in #9

New Contributors

Full Changelog: v0.3.0...v0.4.0

Mako v0.3.0

Choose a tag to compare

@loreste loreste released this 19 Jul 17:58

v0.3.0 — Cross-platform, all CI green

360 Mako tests + 79 Rust tests, 0 failures. All 11 CI jobs pass.

Cross-platform

  • Ubuntu, macOS, Windows, ASan, UBSan, GCC, TSan — all pass
  • Cross-compile: Windows, Linux musl (static), WASI
  • Windows CI: full suite (soft) + 17 core tests (strict)
  • IPv6 tests fixed (non-blocking accept, socket timeouts)

Ownership hardening (SAFE-006)

  • Match Own free, bind-scope free, alias-mut freer flags
  • Path-local early-return free, arm-local cleanup
  • 4 ASan ownership regression tests + leba build verified

Package integrity

  • V2 digest format, build-time verification, legacy compatibility

Install

curl -fsSL https://github.com/loreste/mako/releases/download/v0.3.0/install-linux.sh | bash

What's Changed

  • Make package publication immutable by @attahn in #4
  • Fix cross-platform CI failures by @attahn in #6
  • Harden registry package verification by @attahn in #5
  • Fix v0.2.4 Winget checksum by @attahn in #7

Full Changelog: v0.2.5...v0.3.0

What's Changed

  • Make package publication immutable by @attahn in #4
  • Fix cross-platform CI failures by @attahn in #6
  • Harden registry package verification by @attahn in #5
  • Fix v0.2.4 Winget checksum by @attahn in #7

Full Changelog: v0.2.5...v0.3.0

What's Changed

  • Make package publication immutable by @attahn in #4
  • Fix cross-platform CI failures by @attahn in #6
  • Harden registry package verification by @attahn in #5
  • Fix v0.2.4 Winget checksum by @attahn in #7

Full Changelog: v0.2.5...v0.3.0

What's Changed

  • Make package publication immutable by @attahn in #4
  • Fix cross-platform CI failures by @attahn in #6
  • Harden registry package verification by @attahn in #5
  • Fix v0.2.4 Winget checksum by @attahn in #7

Full Changelog: v0.2.5...v0.3.0

What's Changed

  • Make package publication immutable by @attahn in #4
  • Fix cross-platform CI failures by @attahn in #6
  • Harden registry package verification by @attahn in #5
  • Fix v0.2.4 Winget checksum by @attahn in #7

Full Changelog: v0.2.5...v0.3.0

What's Changed

  • Make package publication immutable by @attahn in #4
  • Fix cross-platform CI failures by @attahn in #6
  • Harden registry package verification by @attahn in #5
  • Fix v0.2.4 Winget checksum by @attahn in #7

Full Changelog: v0.2.5...v0.3.0

What's Changed

  • Make package publication immutable by @attahn in #4
  • Fix cross-platform CI failures by @attahn in #6
  • Harden registry package verification by @attahn in #5
  • Fix v0.2.4 Winget checksum by @attahn in #7

Full Changelog: v0.2.5...v0.3.0

What's Changed

  • Make package publication immutable by @attahn in #4
  • Fix cross-platform CI failures by @attahn in #6
  • Harden registry package verification by @attahn in #5
  • Fix v0.2.4 Winget checksum by @attahn in #7

Full Changelog: v0.2.5...v0.3.0

What's Changed

  • Make package publication immutable by @attahn in #4
  • Fix cross-platform CI failures by @attahn in #6
  • Harden registry package verification by @attahn in #5
  • Fix v0.2.4 Winget checksum by @attahn in #7

Full Changelog: v0.2.5...v0.3.0

Mako v0.2.5

Choose a tag to compare

@loreste loreste released this 19 Jul 03:03

v0.2.5 — Memory safety audit + LSP + honest docs

357 tests, 0 failures. Full suite passes under AddressSanitizer.

Memory safety (10 codegen ownership bugs fixed)

  • Return-from-field clone, consumed-argument transfer, void-call sink
  • Arena scope free suppression, stack-view boxing in Result/Option
  • Ok/Err/Some transfer_own_on_return, struct-borrow from array indexing
  • String/struct array reassign shallow-free
  • Save/restore own_drop_live across if-branches
  • Source temp marked as moved on reassign

Proven regression test

own_branch_regress_test reproduces the exact if-branch ownership defect:
fails with heap-use-after-free on the pre-fix compiler, passes on this release.

LSP v0.5.0

  • Hover, inlay hints, signature help with parameter info

Infrastructure

  • Per-test timeout, ASan + UBSan + GCC CI, Windows CI corrected
  • Installer: --no-same-owner, graceful read-only shell RC

Install

curl -fsSL https://github.com/loreste/mako/releases/download/v0.2.5/install-linux.sh | bash

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Full Changelog: v0.2.4...v0.2.5

Mako v0.2.4

Choose a tag to compare

@loreste loreste released this 18 Jul 19:34

Mako 0.2.4

mako0.2.4 (CARGO_PKG_VERSION) — soundness wave and efficiency release after 0.2.3.

Highlights

  • Memory-safe drops by construction (slices, maps, strings, structs, ?, break/continue)
  • string_view + stack POD array lits (no malloc tax on hot loops)
  • Opt-in scheduler pool (sched_set_workers) and channel take-send ownership
  • Build-time locked dependency verification (PR #3)

Install (after GitHub Actions publish assets)

curl -fsSL https://github.com/loreste/mako/releases/download/v0.2.4/install-release.sh \
  | bash -s -- --version v0.2.4 --yes

Linux:

curl -fsSL https://github.com/loreste/mako/releases/download/v0.2.4/install-linux.sh \
  | bash -s -- --version v0.2.4

Packaging maintainers

./scripts/fill-release-packaging.sh v0.2.4

See CHANGELOG.md section 0.2.4.

Full changelog: v0.2.3...v0.2.4

What's Changed

  • Verify locked dependencies during builds by @attahn in #3

Full Changelog: v0.2.3...v0.2.4

What's Changed

  • Verify locked dependencies during builds by @attahn in #3

Full Changelog: v0.2.3...v0.2.4

What's Changed

  • Verify locked dependencies during builds by @attahn in #3

Full Changelog: v0.2.3...v0.2.4

Mako v0.2.3

Choose a tag to compare

@loreste loreste released this 18 Jul 15:09

Mako 0.2.3

mako0.2.3 (CARGO_PKG_VERSION) — security patch after 0.2.2.

Highlights

JWT / JWKS hardening

  • Strict JSON number/literal/object/array skip with depth limit
  • Reject trailing junk and malformed JWKS (jwt_verify_jwks fails closed)
  • Safer jwt_sign / jwt_verify (payload cap, HMAC length, free buffers)

HTTPS / listen

  • Dual-stack HTTP listen (shared TCP backlog helper)
  • Hardened TLS live tests (ports, SNI bind asserts)

Docs

  • Verified HTTPS vs cleartext http_*, OIDC, JWT SNI contracts

Install (after GitHub Release assets are published)

curl -fsSL https://github.com/loreste/mako/releases/download/v0.2.3/install-release.sh \
  | bash -s -- --version v0.2.3 --yes

Linux-only:

curl -fsSL https://github.com/loreste/mako/releases/download/v0.2.3/install-linux.sh \
  | bash -s -- --version v0.2.3

Fill brew/winget SHAs after tag CI:

./scripts/fill-release-packaging.sh v0.2.3

See CHANGELOG.md section 0.2.3.

Full changelog: v0.2.2...v0.2.3

Full Changelog: v0.2.2...v0.2.3

Full Changelog: v0.2.2...v0.2.3

Full Changelog: v0.2.2...v0.2.3

Mako v0.2.2

Choose a tag to compare

@loreste loreste released this 18 Jul 14:36

Mako 0.2.2

mako0.2.2 (CARGO_PKG_VERSION) — patch after 0.2.1.

Highlights

TLS SNI (multi-cert servers)

  • Concurrent-safe SNI set rebuild/swap on add
  • tls_server_sni_update / tls_server_sni_remove
  • Client hostname verification when peer verify is on

HTTPS client + identity

  • https_get / https_post / https_request (+ last status/headers)
  • oidc_discovery / oidc_token
  • jwt_verify_rs256 / jwt_verify_jwks

Packaging

  • SHA-256 lockfile integrity v2 (verify on install)

Install (after GitHub Release assets are published)

curl -fsSL https://github.com/loreste/mako/releases/download/v0.2.2/install-release.sh \
  | bash -s -- --version v0.2.2 --yes

Linux-only:

curl -fsSL https://github.com/loreste/mako/releases/download/v0.2.2/install-linux.sh \
  | bash -s -- --version v0.2.2

Fill brew/winget SHAs after tag CI:

./scripts/fill-release-packaging.sh v0.2.2

See CHANGELOG.md section 0.2.2.

Full changelog: v0.2.1...v0.2.2

What's Changed

  • Harden claims and add multi-certificate TLS SNI by @loreste in #1
  • Enforce SHA-256 package lock integrity by @attahn in #2

New Contributors

Full Changelog: v0.2.1...v0.2.2

What's Changed

  • Harden claims and add multi-certificate TLS SNI by @loreste in #1
  • Enforce SHA-256 package lock integrity by @attahn in #2

New Contributors

Full Changelog: v0.2.1...v0.2.2

What's Changed

  • Harden claims and add multi-certificate TLS SNI by @loreste in #1
  • Enforce SHA-256 package lock integrity by @attahn in #2

New Contributors

Full Changelog: v0.2.1...v0.2.2

Mako v0.2.1

Choose a tag to compare

@github-actions github-actions released this 17 Jul 16:25

Full Changelog: v0.2.0...v0.2.1

Full Changelog: v0.2.0...v0.2.1

Full Changelog: v0.2.0...v0.2.1

Mako v0.2.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 15:35

Full Changelog: v0.1.10...v0.2.0

Full Changelog: v0.1.10...v0.2.0

Full Changelog: v0.1.10...v0.2.0