Getting Started
OverviewLanguage GuideFull Reference
Book
Table of ContentsIntroductionPrefaceGetting StartedLanguage TourOwnershipErrorsConcurrencyStdlibNetworkingDataPackagesSpeed & SafetyCross-PlatformToolingCookbookAppendix
Reference
Standard LibraryKeywordsPerformanceSecurityBuilt-in FunctionsStatusDebuggingABI
How-To
Getting StartedHTTP APIsErrorsPackagesConcurrencyMemoryWASITestingRelease Builds
Project
RoadmapVisionChangelogContributing

Makori status (adversarial / verified)

Last inventory: 2026-08-30 · product mako0.6.8 (tip; release tag v0.6.8) · versioning: small patches — VERSIONING.md.

Unique Mako surface · pack/pull · map/slice/bag monomorphs · package-per-directory · const-fn depth (match/while/for/strings · s[i]) · 438 examples/testing *_test.mko files · 2026-08-30: release claims gate passed · cargo test 356 passed, 0 failed · tooling, stdlib, memory-safety, and performance gates passed locally · CI ASan/UBSan; focused concurrency under TSan · CI honesty policy gates hard failures/quarantines · The Makori Book.

Book: The Makori Book · Guide: GUIDE.md · Identity: IDENTITY.md · Pain points: PAIN_POINTS.md · Build: BUILD.md · Stdlib: STDLIB.md · Roadmap: ROADMAP.md · Changelog: ../CHANGELOG.md · Release: RELEASE.md · Soundness: SOUNDNESS.md · Memory model: MEMORY_MODEL.md.


Completion estimate (honest)

Scope Approx.
Product version 0.6.8 tip · release tag v0.6.8 (ROADMAP.md, VERSIONING.md)
MVP / usable language Core compiler/runtime scope is exercised; this is not a production-readiness claim
STATUS north-star Tracked scope is explicit; optional depth below remains
Mako identity (preferred syntax) Checklist complete — IDENTITY.md; not a maturity score
Target pain coverage 22/24 scoreboard rows Strong (1 Partial, 1 mixed) — PAIN_POINTS.md
Dual-form coverage (optional sugar) 52/52 in-scope items Done (1 intentional Won't: *T/&x) — GO_SYNTAX_CHECKLIST.md
Standard library Application packs have Go-equivalent surfaces (2026-08-18 wave). The default-safe claim covers safe and audited checked-native packages only; unsafe-boundary, blocked, won't, and external/environmental surfaces are excluded unless hardened and reclassified. Evidence lives in STDLIB_SAFETY.md and STDLIB_SAFETY_MATRIX.md. Not every Go toolchain/unsafe package — see STDLIB.md
Soundness (SAFE/RT core) Introduced in 0.2.4, actively hardened — SOUNDNESS.md; soaks and edge cases remain

Soundness — introduced in 0.2.4, actively hardened

The core ownership and runtime safety model was introduced in 0.2.4 and continues to be hardened through adversarial tests, sanitizers, and regression gates. It is not a completed, permanently solved property.

Program: SOUNDNESS.md · model: MEMORY_MODEL.md · roadmap: ROADMAP.md.

Area Status
SAFE-001 bounds in release Done
SAFE-002 ownership categories Done
SAFE-003/004 slice+map free (incl. monomorph) + reassign + nested release_replaced Done (2026-07-18 audit)
SAFE-005 string own + string_view Done
SAFE-006 CFG drops (return/break/continue/?/match/discard) + double-free guards Done (core) — resolved bag payload cleanup, borrowed-bag guard, bind-scope free, __own alias mut, move/clone store
SAFE-007 arena/slice escape + field store Done
SAFE-008 capture matrix Done (core)
SAFE-009 CMap gate Done
SAFE-010 memory model doc Done
RT-001 / RT-005 / RT-006 Done
RT-002/003 scheduler pool + spawn_blocking Done (seed)
RT-004 channel ownership (clone/take) Done (core)
Struct Own field free Done
Pkg lock build verification (PR #3) Done
Hot path: stack POD lits + cold free Done

Docs — Done

Piece Status
The Makori Book (docs/book/ · mdBook book.toml + chapters) Done
Accuracy pass: README / GUIDE / STATUS / ROADMAP / howto index Done
Collections surface docs (ERGONOMICS · LANGUAGE · BUILTINS · book ch03/ch14/ch15 · howto/10 · llms*) Done — full map/slice/bag surface + demand-driven monomorphs

Tooling — Done

Piece Status
makori version / --version with OS/arch Done
Grouped import ( / { + fmt Done
Packs & pulls (pack/pull flair, always qualify, import/package dual, internal rewrite) Done
Low-ceremony ergonomics doc + tests (print poly, == strings, match routes, maps/slices) Done — ERGONOMICS.md
Path-style import blocks (nested std, vendor/, module=, aliases, blank-line groups) Done
Speed / concurrency / parallelism north star (SPEED.md) Done (product bar)
fan + Mako fn lambdas (block body codegen + types) · crew/fan tests Done
CLI help polish (build/run/check/test flag docs; version near top) Done
VS Code mako-native launch configs through LLDB/cpptools Done
makori pkg audit offline advisory and license policy checks Done
mako doc API markdown, runnable examples, and search index Done
makori test --coverage plus fuzz/property/snapshot/mock/fixture categories Done
mako profile wall-clock compile/run profile reports with JSON output Done
Release archives include the full internal docs tree and top-level release notes Done

Standard library — Wave 9

Area Status
RE2 backrefs \1\9 · \p{L/N} ASCII · [:lower:]/[:upper:]/[:punct:] Done
JFIF grayscale encode (jpeg_encode_gray_jfig + jpeg_is_jfif) Done
Reflect type schema registry from codegen constructors Done
SMTP STARTTLS soft path + AUTH PLAIN; OpenSSL probe Done
str_cut / str_count Done
UTF-8-aware regexp \p{...} for common scripts/categories + simple lookahead Done
Tests goext_wave8_test.mko, goext_wave9_test.mko

Standard library — Go-equivalent wave (2026-08-18)

Capability equivalents of the Go application stdlib. Mako names (concat, matches, cut_ok). No panic-on-OOB. Not unsafe / go/* / debug/*.

Area Status Tests
strings / bytes / slices / strconv / path / filepath Done stdlib_parity_core_test
cmp / math/bits / cmplx / big / hashes / utf16 / ascii85 / pem / qp / tabwriter / scanner / suffixarray Done stdlib_parity_packs_test
io Limit/Section/copy_n Done stdlib_parity_io_test
os/env / os/user / io/fs Done stdlib_parity_os_test
net host/port / net/netip Done stdlib_parity_net_test
time.parse_duration / sync.once Done stdlib_parity_time_sync_test
stdlib-gate 144 package files type-check scripts/stdlib-gate.sh
compress flate/zlib/lzw/bzip2 · crypto md5/sha3/subtle/rsa/ecdsa · Rat · crc64 · cookiejar · httputil · expvar · unique · iter · color/draw · textproto · rpc · iotest · asn1 · syslog Done stdlib_parity_gap_test
Adversarial vectors (MD5/SHA3/CRC-64/ECMA, Rat 2/4, ASN.1 128/−128, LZW binary, cookie host isolation, RPC escape) Done stdlib_parity_adversarial_test
crypto/rand / hkdf / pbkdf2 · testing/{quick,fstest,slogtest} · image Point/Rect · regexp/syntax · httptrace · context.with_value · rand.shuffle/perm · named time offsets Done stdlib_parity_wave3_test

Verified this session

Check Result
Ownership free + no double-free (match Own, bind-scope, alias mut __own, move/clone) PASS — ASan: double_free_guard_test, match_own_free_test, own_branch_regress_test, ownership suite
cargo build --release PASS
cargo test --release PASS — 146 unit tests (2026-08-19)
map[K]Option[T] / map[K]Result[T,E] PASS — map_option_result_test (11 tests)
Security residuals (at-rest, limits, cancel, mTLS, SCRAM cbind) PASS — security_residuals_test
Security product polish (path size, PEM, CSR/self-signed, prom/trace, SCRAM-PLUS helpers) PASS — security_product_test
Backend ergonomics already on tip (for…in range, fmt_sprintf*, match/switch, chan[Struct], POD kick) Documented — ERGONOMICS.md · SPEED.md
Struct update S { ..base, field: v } + POD enum kick / chan[Enum] Done — struct_update_test
First-class fns · f"…" · field defaults · chan[tuple] Done — lang_ergonomics_test
chan_len / chan_cap on any chan[T] (struct/tuple/string rings) Done — typecheck + codegen dispatch · ptr/str runtime helpers
Portable timeouts (send/recv_timeout, join_deadline, deadline_remaining_ms) Done — timeout_portable_test
Crew child error prop (first_err / wait) · detach · actor state Done — crew_error_prop_test · detach_test · actor_test
Observability depth (OTLP JSON, profile snapshot, stack_trace, crash_report, PGO/LTO) Done seed — observability_depth_test
Capturing closures (POD + string + struct env via MakoFn) Done seed — capturing_closure_test · struct_capture_test
Kick first-class fn values across crew (Send) Done seed — kick_fn_test
f-string format specs (flags + # - 0, hex/oct/bin, float e/f/g) Done seed — fstring_fmt_test
fn_drop / env free + debugger/task inspect seeds Done seed — fn_drop_debug_test
Storage page + WAL seeds Done seed — storage_wal_test
Hash index + store txn + snap predict seeds Done seed — store_index_test
Domain tracks (btree/LSM/MVCC/rollback/gfx/AI/debug frame) Done seed — domain_tracks_test (no SIPREC/WebRTC)
Storage depth (btree disk, SST, pcache, MVCC version reclamation, SIMD) Done seed — storage_depth_test
LSM compact · store WAL recover · hot-reload mtime Done seed — domain_tracks_test (lsm_compact, store_recover_wal, hot_reload_*)
Multi-level LSM (L1–L3) · page-backed btree Done seed — domain_tracks_test (lsm_compact_down, pbtree_*)
Storage polish (bloom · range · disk page manager) Done seed — domain_tracks_test (bloom_*, btree_range/sst_range, pman_*)
Domain handles as params/returns/struct fields Done — Bloom/PageMan/Predict/MultiMap map to C pointers · TestDomainHandleFieldsAndFns
Storage P0–P4 product surface Done — range grow+iter · multimap · str keys · pman bulk · btree_save checksum · registry · append2 · TestDomainStoragePolishP0toP4
SQL str4 empty-bind arity + multi-arg sql_query_str2/3/4 Done — sql_str4_empty_bind_test · sql_query_str_multi_test
Zero-copy string regions (language) Done — str_slice_eq / str_slice_index / str_at_eq / str_byte_at · str_slice_zc_test
Debugger depth (line BP · frames · async parent · snapshot) Done seed — fn_drop_debug_test
OTLP protobuf + HTTP exporter client Done seed — trace_export_otlp_pb · otlp_export_traces_* · observability_depth_test
Sampling CPU profiler Done seed — profile_sample_* · profile_sample_test
DAP JSON + pprof-text + tid samples Done seed — residual_seeds_test · profile_sample_test
lldb-backed source-level debugger (mako dap real DAP adapter · mako debug · lldb formatters · VS Code direct) Done — scripts/test-dap.sh · src/dap.rs · editors/lldb/mako_formatters.py · profile HTTP routes /debug/pprof/*
Cross-target FreeBSD/RISC-V dry-run Done seed — scripts/cross-target-seed.sh · CI workflow
Comptime const if / comparisons Done seed — const_fn_test (abs_const / clamp_const)
Hot-reload swap/stamp · predict service Done seed — residual_seeds_test
DAP stdio session (real adapter, no flags) · profile-serve · plugin live reload · soft FB Done — mako dap + residual_seeds_test
MSI/notarize/brew/winget publish seeds Done seed — scripts + package-seed.yml · WiX skeleton
gfx_poll · GPU backend availability · netcode deltas Done seed — residual_seeds_test
plugin_open/call/close · hot_reload_unwatch Done seed — residual_seeds_test · domain_tracks_test
Full unicode + utf8 package Done — Unicode 17 UCD props/case/normalization (NFC/NFD/NFKC/NFKD) + XID identifiers + encode/decode · std/unicode · unicode_full_test · unicode17_normalization_test
List[T] + richer collections Done — List/[]T + set/heap/ring/stats · std/collections · collections_*_test
Plugin product package Done — live dylib load/call/reload/manifest · std/plugin · plugin_product_test
Full time package Done — calendar/parse/format/duration · std/time · time_full_test
Full syscall package Done — portable OS primitives · std/syscall · syscall_full_test
YAML + TOML encoding packages Done — flat/section config · std/encoding/{yaml,toml} · yaml_toml_test
Product version 0.1.6 Done — tree-wide version sync
Product version 0.1.7 Done — freeze codecs/combinators/packages wave
Product version 0.1.8 Done — speed wave (wyhash, f-string stack, select condvar, HTTP 1024)
Product version 0.1.9 Done — generic structs/enums, interface bounds, iterator/closure seeds
Product version 0.2.0 Done — stdlib in Makori (io, collections, context, json, http, sql pool)
Product version 0.2.1 Done — match exhaustiveness, guards, safety verification
Product version 0.2.3 Done — JWT/HTTPS input hardening on top of 0.2.2 SNI/HTTPS/JWT/lock integrity
Product version 0.4.0 Done — soundness wave (SAFE/RT), string_view, scheduler pool, stack lits, lock verify
Generic structs struct Pair[T] + multi-param Done — monomorph Pair__int · generic_struct_test
Generic enums enum MyBox[T] + match Done — generic_enum_test
Interface bounds fn f[T: I](…) Done — structural · generic_bounds_test · bad/generic_bound_fail
Nested generics / multi-instantiation Done — generic_adversarial_test
Iterator Type_nextfor with mut self Done — advances binding · iterator_test
Mutable closure capture cells Seed — mutable_closure_test
CBOR + MessagePack binary Done — encode/decode subset · std/encoding/{cbor,msgpack} · cbor_msgpack_test
List combinators (map/filter/fold style) Done — int mono helpers · cbor_msgpack_test
Avro binary + GraphQL/protobuf packages Done — std/encoding/{avro,protobuf} · std/graphql · avro_graphql_tz_test
Named timezone offsets Done seed — fixed zones · time_offset_named / format_offset
Installer UX (manifest + doctor + Windows) Done seed — install-manifest.json · doctor fields · install.ps1
Actor spawn_cap + interface on T : I sugar Done seed — actor_test · iface_on_iface_test
Error chain peel + tag helpers Done seed — error_unwrap / root / as_tag / has_tag · error_chain_test
fallthrough switch dual Done seed — fallthrough_test
Richer errors beyond stringly defaults Done seed — Result[T, Enum] · wrap chain · std/errors
Package-per-directory (multi-file pack) Done — merge all units · same pack name · pkg_per_dir_test · examples/pkg_per_dir
Unbuffered rendezvous channels Done — chan_new(0) / chan_open[T](0) · chan_rendezvous_test
Implicit interface method sets (Go-like) Done — on T { fn m } / T_m implements I · iface_implicit_test
Actor int message payload Done seed — receive Inc(delta) / actor_pack · actor_test
Const-fn match + while depth Done seed — int match / bounded while · const_fn_test
Const-fn for (count + C-style) Done seed — for i in n / for i in range n / C-for · const_fn_test
Const-fn break/continue Done seed — bare break/continue in const loops · const_fn_test
Const string seed Done seed — literals / + / str_len / == · const_fn_test
Const fn string params/returns Done seed — shout / greet / len_greet · const_fn_test
SIP library (platform builtins + std/sip) Done — RFC 3261/3581 Via/RR/NAT, Digest HA1, framing, SDP rewrite
SIP zero-copy header/method views Done — sip_header_view / sip_method_eq / sip_header_eq
ShareInt capture (shared mut via RC handle) Done seed — share_capture_test
Packaging seeds (deb/rpm/winget/matrix/homebrew) Done seed — scripts + packaging/
Book samples makori check / run PASS — docs/book/examples/book_*.mko
makori test examples/testing (inventory) 423 *_test.mko files; native/default suite 423 passed, 0 failed locally with MAKO_RUNTIME=runtime (2026-08-26)
makori test examples/testing --backend c 423 passed, 0 failed locally with MAKO_RUNTIME=runtime MAKO_TEST_TIMEOUT_SECS=120 (2026-08-26)
makori test examples/testing --backend native 423 passed, 0 failed locally per-file with MAKO_RUNTIME=runtime MAKO_TEST_TIMEOUT_SECS=45 (2026-08-26)
CI honesty / quarantine 0.5.12 hard gate: no workflow continue-on-error; Windows full-suite failures must match the 18-entry deterministic ci/windows-quarantine.txt plus the 3-entry explicit flaky ci/windows-flaky-quarantine.txt; unknown failures and recovered deterministic quarantines fail CI
Memory-safety gate Passed (2026-08-24): no GC path, ASan contract fixture, slice RSS soak, long-run ownership/RSS soak
Claims/speed gate Passed (2026-08-24): strict Rust gate fib 0.10x, slice 0.51x, map 0.14x Mako/Rust
Stdlib safety completion Passed (2026-08-26): 144 std files, 102 checked-native packages with package-local evidence, 38 safe, 4 unsafe-boundary explicitly excluded from default-safe claims, 3 enforced contract families
Package-local malformed codec coverage Passed (2026-08-23): archive/image/protocol and binary codec malformed-input fixture on default + C backends
GC removal regression checks PASS — removed builtin and legacy [package] gc = true both fail, including isolated cache paths
Speed gate PASS — normal ≤2.0× and strict ≤1.5× Rust gates; final measured ratios 0.21×–0.65×
Leba downstream smoke PASS — current compiler builds/checks Leba; compiled doctor reports 0 errors
if init; cond { } + both-branches-return body Done — examples/testing/if_init_test.mko
Go switch/case/default (value, expr-less, init) Done — examples/testing/switch_test.mko
Go fallthrough (case body merge) Done seed — examples/testing/fallthrough_test.mko
Positional struct literals Point{1, 2} / Point{} Done — examples/testing/struct_positional_test.mko
go f() → kick onto enclosing crew Done — examples/testing/go_stmt_test.mko
Compound assign += … ++ -- (ident/field/index) Done — examples/testing/compound_assign_test.mko
Generalized mutable index lvalues Done — chained slice views, nested slices, and field-backed slices; examples/testing/slice_test.mko
Go for forms (C-style, while, infinite, range) Done — examples/testing/for_forms_test.mko
Parallel binding/assignment (a, b = b, a swap) Done — examples/testing/parallel_assign_test.mko
if as an expression (let x = if c { a } else { b }) Done — examples/testing/if_expr_test.mko
Argon2id password hashing (crypto.password_hash) Done (OpenSSL) — examples/testing/password_hash_test.mko
UDP proxy routing (game_udp_sender_addr / send_to) Done — examples/testing/udp_proxy_test.mko
Sendable sync handles across kick (CMap/Mutex/RWMutex/AtomicInt) Done — examples/testing/kick_sync_test.mko
PBKDF2-HMAC-SHA256 (crypto.pbkdf2, SCRAM primitive) Done — examples/testing/pbkdf2_test.mko
Per-connection HTTP/2 state (http2_conn_new/use/free) Done — examples/testing/http2_multiconn_test.mko
HTTP/2 read request + http2_response (full request/response cycle) Done — fixed inverted stream parity; examples/testing/http2_request_test.mko
HPACK decode for real clients (Huffman, indexed names, full static table) Done — curl --http2 verified; examples/testing/hpack_decode_test.mko · examples/h2_dynamic_server.mko
HTTP/2 reverse proxy (http_forward upstream + relay) Done — curl→proxy→backend verified; examples/h2_reverse_proxy.mko
TCP pool + http_forward_full + http_proxy_raw Done — pool reuse, status/body, raw pump; examples/testing/proxy_pool_test.mko
HTTP parse object + chunked decode Done — http_parse / http_decode_chunked
Nonblocking connect + fd splice/copy Done — tcp_connect_nb / tcp_fd_copy / tcp_splice
Socket tuning (reuseport, buffers, accept4) Done
Async TLS accept (tls_accept_start / handshake step) Done — event-loop friendly surface
Multi-certificate TLS SNI Done — exact + longest left-most wildcard selection; opt-in live handshake coverage in examples/testing/tls_sni_live_test.mko
HTTP/2 stream multiplexing (ready queue, 64 slots) Done — http2_next_ready_stream / stream_take / stream_body
HTTP/2 hardened path (dual FC, SETTINGS, auto WU, PADDED, overflow hard-fail) Done — http2_conn_* · examples/testing/http2_prod_test.mko
HTTP/2 TLS one-shot (tls_serve_h2_routes) Demo/smoke only — production path is tls_server_new + http2_conn_*
HTTP/3 server surface (UDP bind/poll/stream) Done — h3_server_* (quiche when linked)
HTTP/3 hardened path (64 KiB bodies, no silent truncate, accessors, h3_response) Done — examples/h3_server.mko · h3_server_test.mko · smoke
FS / storage surface (atomic_write, mkdir_all, remove_all, dio CLOEXEC, mmap) Done — examples/testing/fs_storage_test.mko
Low-level networking (peer/local addr, UDP sender, write_all/read_n, shutdown, CLOEXEC) Done — examples/testing/net_lowlevel_test.mko
IPv6 dual-stack listen/connect + Happy Eyeballs tcp_connect Done — examples/testing/net_ipv6_he_test.mko
Low-latency clocks (mono_* / deadlines / sleep_ns / spin_until) Done — examples/testing/time_latency_test.mko
LLM programming (chat/tools/SSE/JSON extract, OpenAI-compatible HTTPS) Done — C and native bridge coverage; examples/testing/llm_test.mko · examples/llm_chat.mko
LLM stream transport + embeddings + error/retry helpers Done — native bridge shims for llm_chat_stream, llm_embeddings, llm_https_post, llm_embed*, llm_is_error, llm_chat_retry
SQL string params + last_insert_id / rows_affected (SQLite + Postgres) Done — examples/testing/sql_programming_test.mko
SQL multi-row cursor + bulk first-column (sql_query_rows*, sql_query_col_*) Done — examples/testing/sql_rows_test.mko
SIP/SDP/RTP platform (parse/build; build stacks in Makori — not a softswitch) Done — examples/testing/sip_test.mko · examples/sip_ua.mko · std/sip
ML-DSA post-quantum signatures (FIPS 204, OpenSSL 3.5+) Done — MLDSA44/65/87 keygen, sign, verify, X.509, TLS 1.3 · mldsa_pqc_test.mko
Error tracing with source locations Done — error_trace / error_wrap_trace / error_chain auto-inject file:line · error_trace_test.mko
UUID v1/v6/v8 (RFC 9562 complete) Done — time-based v1/v6, custom v8, timestamp extraction · uuid_v1v6v8_test.mko
JSON marshal float/bool/nested struct (#[derive(json)]) Done — json_f/json_b/json_get_float/json_get_bool · json_marshal_test.mko
SRTP crypto building blocks (aes_ctr, hmac_sha1 / hmac_sha1_raw) Done — examples/testing/crypto_srtp_blocks_test.mko (HMAC RFC 2202)
TLS client socket API (tls_client_new / tls_connect + SNI/VERIFY_PEER) Done — examples/testing/security_crypto_test.mko
Secrets helpers (secret_len / secret_eq_str) + HKDF-SHA256 Done — RFC 5869 A.1 vector; security_crypto_test.mko
Strong structured logging (JSON/logfmt, levels, multi-field, file, redaction) Done — examples/testing/strong_log_test.mko · runtime/mako_log.h
WebSocket RFC 6455 (client/server frames, mask, frag, ping/pong, close codes) Done — runtime/mako_ws.h · examples/testing/ws_api_test.mko
GPU AI seed (OpenCL multi-vendor + host; matmul/relu/bias/softmax f32) Done — runtime/mako_gpu.h · gpu_seed_test.mko (NVIDIA/AMD/Intel/Apple)
Local models (safetensors load, .makomodel, author MLP, linear HF layout) Done — runtime/mako_model.h · model_weights_test.mko · examples/model_mlp.mko
GGUF F32/F16 load + attention/LN/GELU/SiLU + vocab tokenizer Done — model_load_gguf, gpu_attention_f32, tok_* · ai_depth_test.mko
Multi-head attention + GGUF Q4_0/Q8_0 dequant + BPE tokenizer Done — gpu_mha_f32, quant GGUF, tok_encode_bpe · ai_depth_test.mko
Email / SMTP (MIME builder, session, STARTTLS, AUTH PLAIN, mock e2e) Done — mako_mail.h · mail_smtp_test.mko · examples/mail_program.mko
Go-style templates (if/range/with/define, HTML escape) Done — mako_template.h · template_test.mko · examples/template_demo.mko
fmt / print packages (Sprintf/Print/Errorf, multi-arg) Done — mako_fmt.h · std/fmt · std/print · fmt_print_test.mko
Hex/dec/bin/oct format + parse (bases 2–36, %#x/%08x) Done — format_int_* / parse_int_* · fmt_print_test.mko
Language residuals wave 40 (deep Send/race, NLL, patterns, stability, GC, reflect, JPEG baseline, Unicode) Done — lang_residuals_test.mko · nll_multi_label_test.mko · api_stable_test.mko
Language residuals wave 41 (Ok(Some) non-generic, exotic ?, race stack, UCD/PCRE depth) Done — lang_residuals_test.mko
UUID v4/v5/v7 + ULID (Copy POD, kick/Send, parse polish) Done — runtime/mako_uuid.h · uuid_test.mko · std/uuid
Speed gate vs Rust (fib/slice/map ≤2×) PASS — ./scripts/bench-gate.sh
Speed audit: safe release bounds; empty str singleton; map 75% load Done — see PERFORMANCE.md
Map set_take (no string-key clone) + HTTP zero-copy views into raw Done — map_take_http_test.mko
Header/Content-Type interning + respond_json static CT Done — runtime mako_http_intern_*
HTTP/2 DATA auto-split (≤16384) + proxy/map free safety Done — http2_data_frame split; http2_prod_test
chan_str_send_take / try_send_take (no string clone) Done — chan_string_test.mko
Proxy splice polish (256 KiB + sendfile file→socket) Done — mako_proxy.h tcp_fd_copy
Proxy edge cases (headers, chunked, 204/304, pool release latency) Done — examples/testing/proxy_edge_test.mko; docs in BUILTINS Reverse-proxy notes
Checked integer overflow (--overflow trap, checked_*, would_overflow_{add,sub,mul}) Done — full wire types+codegen+runtime; overflow_shutdown_test.mko
Parser multi-error recovery Done — parse_with_errors keeps following good decls (unit test); examples/bad/multi_error.mko
Graceful shutdown builtins Done — signal_on_term / server_drain / register_listener
Leak scopes Done — leak_scope_enter / exit / leak_check
Trace id / spans Done — trace_id / begin / end / log
makori dev hot reload seed Done — mtime poll rebuild+rerun
Result[int, Enum] typed errors + match Done — result_enum_test.mko
const fn compile-time fold Done — const_fn_test.mko
crew.drain + evloop_shutdown Done — crew_drain_test.mko
NLL const-fold comparisons Done — more int/ident folds for dead edges
Module layout (suggested order) Done — src/overflow.rs, recovery.rs, shutdown.rs, errors.rs, leak.rs + runtime headers
bcrypt ($2b$) via libxcrypt (crypto.bcrypt/bcrypt_check) Done — verified on Linux x86_64: round-trip + distinct salts; examples/testing/bcrypt_test.mko
SCRAM-SHA-256 core (crypto.scram_*, raw sha256/hmac, xor_bytes) Done — RFC 7677 vector byte-exact on Linux; examples/testing/scram_test.mko
Native bind-address control (tcp_listen_addr) Done — verified on Linux: loopback-only bind, non-host IP rejected
TLS 1.3 termination Verified on Linux — openssl s_client -tls1_3TLSv1.3 / TLS_AES_256_GCM_SHA384
Socket-style TLS server (tls_server_new/tls_accept/read/write/alpn) Done — STARTTLS-upgrade verified; examples/testing/tls_server_test.mko
DTLS 1.2 over UDP + SRTP key export + fingerprints (std/dtls, dtls_*) Done — loopback handshake/echo/fingerprint/SRTP export on C + native backends; examples/testing/dtls_test.mko; openssl s_client -dtls1_2 interop via scripts/dtls-smoke.sh
Signal hooks by name (signal_watch/fired/ignore HUP/TERM/…) Done — reload/shutdown verified; examples/testing/signal_test.mko
File-system watch (watch_new/add/poll/close, kqueue+inotify) Done — change detection verified; examples/testing/watch_test.mko
Contextual pack/pull/switch/go (usable as identifiers) Fixed — no longer reserved words
C keyword / stdlib-name identifiers (switch, read, time, …) emit valid C Fixed — codegen mangles reserved & libc names
makori fmt doubled export on structs Fixed
The Makori Book + docs accuracy Done
Pack-qualified types (eng.Table annot / lit / pattern) + multi-return of structs Done — pack_types_test · tuple_struct_test
Struct eq/hash with slice/map fields (engine tables as packs) Done — struct_slice_fields_test
Struct eq/hash with Option/Result/enum fields Done — struct_slice_fields_test · lang_residuals_test
Pack-qualified enums (eng.Red / eng.Color.Green(n) construct + match) Done — pack_types_test
Maps of structs (map[int]T / map[string]T, pack types) Done — map_struct_test
make(chan[Struct]) + maps_* on II/SS/struct maps Done — chan_make_struct_test · map_struct_test
map[int]float / map[string]float + structural maps_equal Done — map_float_test · map_struct_test
Struct/enum == != (structural) Done — struct_eq_test
Float map keys (map[float]int|string|float|Struct) Done — map_float_test · map_struct_test
Struct map keys (map[Point]int|string|float|bool|Struct) Done — map_struct_key_test
map[Struct]Struct (named key + named value) Done — map_struct_key_test
map[K]bool + []bool + map[bool]V Done — map_bool_test
Enum maps + []Enum (map[K]Enum, map[Enum]V, …) Done — map_enum_test
Nested slices [][]T Done — nested_slice_test
map[K][]T (scalar + named keys × slice values) Done — map_slice_test
Nested maps map[K]map[K2]V (depth 2) Done — map_nested_test
Nested maps depth 3 map[K]map[K2]map[K3]V Done — map_depth3_test
map[K][][]T (nested-slice values) Done — map_nested_slice_test
Nested maps with slice values map[K]map[…][]T Done — map_map_slice_test
Option[map[K]V] / Result[map[K]V] (all map kinds, match unbox) Done — option_map_test
[]map[K]V and map[K][]map[…] Done — slice_map_test
map[K]Option[T] / map[K]Result[T,E] (bag values) Done — map_option_result_test
[]Option[T] / []Result[T,E] (bag element slices) Done — option_result_slice_test
map[K][]Option[T] / map[K][]Result[T,E] Done — map_option_slice_test
map[K]Option[[]T] / map[K]Result[[]T,E] Done — map_option_of_slice_test
map[K](T,U) tuple values (scalar 2–3-tuples) Done — map_tuple_test
Map tuples with Struct/Enum + homogeneous 4-tuples Done — map_tuple_struct_test
map[K]Option[map] / map[K]Result[map] Done — map_option_of_map_test
map[K]chan[T] channel values Done — map_chan_test
map[K][]chan[T] slices of channels Done — map_slice_chan_test
Option[chan] / map[K]Option[chan] / Result[chan] Done — map_option_chan_test
Nested channel bags []Option[chan] / Option[[]chan] Done — map_option_chan_nested_test
[][]chan[T] / (chan, scalar) map values Done — map_chan_nested_slice_tuple_test
3-tuples with channel field as map values Done — map_tuple_chan3_test
Nested Option[Option[…]] / Result[Option[chan]] maps Done — map_nested_option_chan_test
Mixed bag nests Option[Result] / triple Option / Result[Result] maps Done — map_option_result_nested_test
Nested bag slices []Option[Option] / Option[[]Option] maps Done — map_nested_bag_slice_test
Bag fields in map tuples (Option[T], U) / (Result[T,E], U) Done — map_tuple_bag_test
Demand-driven map monomorph emission (O(used), not N² grid) Done — AST collection + gated helpers (1dd3ddf)
Nested bag slices / bag-field map tuples Done — map_nested_bag_slice_test · map_tuple_bag_test
len nil-safe on SI/II/SS maps (and monomorphized maps) Done — runtime + nested tests
Low-ceremony collections ergonomics Done — ERGONOMICS.md

Wave 10 — language core (compat-safe)

Piece Status
User generics monomorphization fn id[T](x: T) -> T Done
Generic structs / enums + interface bounds (0.1.9) Done — see product 0.1.9 rows above
Mako methods on Type { fn m(self) … } Done (desugars to Type_m)
Tuples + tuple patterns Done
export + visibility = "explicit" seed Done (default open)
chan_open[T] / make(chan[T], n) (int + string) Done; chan_new unchanged
#line source maps + bounds_checks = "on" profile Done
Compat policy COMPAT.md
Tests examples/testing/lang_wave10_test.mko (6 tests)

Wave 10b — Go-first surface

Piece Status
func alias for fn Done
var / := short declaration Done
Go method receivers func (p Point) m() int Done
type Point struct { x int } (no colon) Done
Params a int / a, b int (no colon) Done
Bare returns func f() int Done
package main clause Done
Multi-return a, b := f() Done
Capitalized export (Go-style) Done
Checklist with % GO_SYNTAX_CHECKLIST.md ~78%
Example / tests examples/go_style.mko, go_style_test.mko (6 tests)

True hard residuals

Closed this pass (gap close):

Piece Status
Send-like kick rules (Copy / string / chan / deep-POD struct / Option·Result·tuple of sendables) Done — kick_send_test, POD kick waves, bad kick_array_arg / kick_non_pod
visibility = "explicit" filters pulled symbols Done — examples/export_vis/
Ok/Err respect enclosing Result[T, E] Done — errors_typed_test
chan_open int family + bool Done
fan uses HW concurrency (not fixed 4 threads) Done
fan on []float (mako_par_map_float) Done
ShareInt/Arena rejected across kick Done
scripts/performance-contract.sh vs Rust (fib/struct/slice/map/string strict, channel regression-only) Done
chan_open[string] + kick with chan handle Done
error_context (wrap_err alias) Done
makori lint --identity (dual spellings as style) Done
Atomic share RC + share_set Done
fan on []string (mako_par_map_str) Done
error_join combine Results Done
performance-contract strict Rust claims ≤1.5× (fib/struct/slice/map/string) Done
ShareInt + string kick auto-clone heap pack Done
chan50k regression-only budget ≤3.5× Rust Done (not a speed claim)
chan_open[Struct] via MakoChanPtr heap-box Done
error_tag(tag, msg) enum-like string errors Done

Closed (wave 7–39): join_timeout flatten · POD kick + string fields · reflect_value_of N + nested POD · Result/Option deep nests · nested None/Err edges · ? int/string/float/bool/struct/slice/map + nested · SOF0 header fields · jpeg_is_baseline_gray · JFIF shell probes · jpeg_roundtrip_ok · APP layout checks · NLL for/if/match · kick Result/Option reject · script/category \p{…} · expanded TSan · prior work.

Wave 39 tests: examples/testing/wave39_queue_test.mko · bad try_slice_in_void.

Pain residuals (language) — Wave 40 close: see PAIN_POINTS.md.

  1. Language-boundary race safety — deep Send + Sync; per-kick race stack; closure/function-value capture analysis (including aliases); mut Option/Result/tuple/enum/array/map captures until join; nested field/index writes; capture-free fan; TSan opt-in (--race). C/FFI and explicit unsafe remain outside the safe-language guarantee.
  2. Result/Option edge shapes — non-generic Ok(Some(v)); exotic ? cross (Option→Result Err("None"), Result→Option None); generic nests (wave18+)
  3. Stronger NLL multi-label — const-fold + multi-label break products

Stdlib / product (wave 40–41):

  1. Unicode Lu/Ll/Lo/ASCII/Any/Assigned/Alnum/Word/… + \P/\X/\h/\R/\N — full UCD still not claimed
  2. Viewer Huffman JPEGjpeg_encode_gray_baseline / jpeg_is_baseline_huff
  3. Reflect non-POD — Option/Result/array/map fields (chan still rejected)
  4. Symbol-level parity inside Done packages

Also: #[stable] / #[deprecated]. Mako intentionally has no tracing GC; ownership, hold/share, and arenas are the only memory-management model.


External

homebrew-core publish — Formula/mako.rb.

Edit this page on GitHub Report an issue