Skip to content

Implementation Status

Chris Michael edited this page Sep 2, 2026 · 4 revisions

Pudu

Implementation Status

Status: pre-release compiler 0.1.0.0; semantic draft 0.4.0-draft in the versioned vault.

This page separates implemented behavior from design direction. “Implemented” means supported by the current compiler and exercised by repository tests or fixtures.

Compiler and tools

Area Status
Unicode source model and lexer Implemented
Recovery-capable parser Implemented
Hygienic typed macro expansion Implemented
Name resolution and module graph Implemented
Type checking and local inference Implemented
Exhaustiveness/usefulness checks Implemented
Interpreter and program linking Implemented
REPL Implemented
Formatter Implemented
Documentation index/search/site Implemented
Language server and VS Code client Implemented with the capability limits documented here
Native/C/JVM/Wasm backend Not implemented
Package manifest, lockfile, or registry Not implemented

Language areas

Area Status
Records, sums, aliases, tuples, generics Implemented
Parameters of higher kind (F[_], F[_, _]) Implemented; arity declared, never inferred
Ordered Set literals #{...} and Set-only in Implemented
Traits, defaults, orphan rule, exact duplicate-head rejection Implemented; general overlap detection absent
dynamic Trait interpreter dispatch Implemented
if let, let … else, while let, exhaustive match Implemented; binder-carrying pattern alternatives are defective
Result/Option postfix ? Implemented
Numeric widths, checked/wrapping/saturating arithmetic Implemented in checker/interpreter
Exact Decimal Implemented in checker/interpreter and Std.Decimal
Cold async tasks and sequential structured-scope joins Implemented in checker/interpreter; no scheduler or cancellation
Compile-time functions and constants Implemented under restricted evaluator capabilities
Unsafe capability regions Implemented at syntax/checking boundary
Stable foreign declaration and C ABI syntax Not implemented
Full ownership/lifetime/drop proof and native conformance Not complete

Binder-free pattern alternatives execute. Binder-carrying alternatives are not usable correctly: the resolver rejects repeated binders but may admit different binders that leave the unchosen name undefined at run time. Pattern Language records the exact boundary.

Standard library

The shipped library contains 46 Pudu source modules and 1291 exported declarations. It includes collections, eight keyed structures beyond Std.Map, trees, numeric traits, exact decimals, parser combinators, JSON, HTTP data/message handling, URL, files/environment, processes, time, crypto, deterministic random generation, output and formatting as values, and a test framework with property-based generation and shrinking.

Not implemented, with reasons recorded in the repository's architecture/STDLIB:

Missing Why
Std.HashMap No Hash trait. Adding one is a language decision belonging beside Eq and Ord.
Std.Channel, Std.Concurrent, Std.Sync No threads.
Std.Net, Std.Tls, Std.Db, Std.Http.Server No socket primitives.
Std.Bytes, Std.Csv, Std.Toml, Std.Uuid, Std.Path, Std.Bench, Std.Time.Format Buildable in Pudu today; not yet written.

Streaming file/network APIs, an HTTP transport/server, a database layer, a package ecosystem, and multi-gigabyte input support are not implemented.

Performance boundary

The interpreter is currently the dominant runtime cost. Data-structure work includes direct iteration for maps/sets and set membership/algebra improvements, but native predictable-performance claims remain future backend work. Timing and memory claims should be tied to committed benchmarks, not language positioning.

Compatibility

Nothing is stable before 1.0 unless a release explicitly says otherwise. Public semantic changes are recorded in the repository ADRs and semantic revision ledger.

Related

Clone this wiki locally