Clause documentation
Short reference notes for the current implementation. Each file states behavior
and limits that exist today; plans and step history live in .agents/.
| Topic | Document |
|---|---|
| Building Clause: requirements, presets, configure options, tests, quality gate, benchmarks | building.md |
Preprocessing (epp behavior, includes, macros, features) | preprocessor.md |
| Parsing, AST ownership, syntax limits | parser.md |
| TOML projects, target selection, build directory and caches, ignored sources | projects.md |
| Compiler CLI, artifacts, source and abstract format printing, compile cache, LLVM SDK, PCRE2 and zlib, example | compile.md |
ASN.1 specifications: .asn inputs and [[targets.asn1]], asn1ct options, coverage, generated modules | asn1.md |
| Executable entry, arguments, exit status, output streams, linking | executables.md |
Debug information (-g), debuggers and the Erlang call stack | debugging.md |
Opt-in profiling (--profile FILE): entries and self time per function and process | profiling.md |
| Parse transforms: Clause's transform host, host OTP loader, abstract format interchange, transform lookup | transforms.md |
| Semantic analysis, types, inference, bindings | semantic.md |
Type specialization at -O2: proofs and representation variants | specialization.md |
| Generated-code ABI: terms, symbols, registration, failures, roots | abi.md |
| Patterns, clauses, body matches and comprehensions | patterns.md |
| Guards and the guard BIF catalog | guards.md |
| Term representations (atoms, numbers, containers, maps, bits, records) and printing | terms.md |
| Native, qualified and anonymous records (OTP 29) | native-records.md |
Function values: fun F/A, fun M:F/A, closures, named funs, dynamic calls | funs.md |
| Production builtins: catalog, bridge calls, module builtins, portions, registration | builtins.md |
| Runtime lifecycle, memory, code server, persistent terms, threads, standard output, startup | runtime.md |
| Processes: scheduler workers, messages and receive, links, monitors, registered names, timers, introspection, aliases, exit signals | processes.md |
| Ports: identity, port table, drivers, data modes, the I/O thread, busy ports, subprocesses, standard I/O, files and sockets | ports.md |
| Process heap contract: word layout, areas, admission, roots, collection | runtime-heap.md |
| Execution model: frames, calls, tail calls, yield, exceptions | execution-model.md |
Deferred-feature (notimpl) reporting | features.md |
| OTP source reference pin and refresh procedure | otp-reference.md |
| Known behavior differences from Erlang/OTP | differences.md |
| Validation baseline, test modes, platform gaps, benchmarks, history | validation.md |
Older per-step validation records and evidence JSON were condensed into
validation history; full originals remain in Git
history (last present at commit 2777c98).
Libraries
Clause's own OTP applications under library/, in libraries/.
| Topic | Document |
|---|---|
Library modules under library/{erts,kernel,stdlib} compiled with programs, how programs get them, provided and missing modules | library.md |
Console output: io:format, io:put_chars, devices, format controls, ~p layout | io.md |
| Crypto: OpenSSL versions and sources, building it, linking, FIPS mode and pinned FIPS programs | crypto.md |
public_key: ASN.1 specifications and their sources, generated modules, public_key.hrl | public_key.md |
| ssl: the TLS design over libssl, the application, cipher suites and the other utility functions | ssl.md |
syntax_tools: erl_syntax's trees, prettypr's layouts, erl_prettypr's text, erl_syntax_lib's analyses, comment scanning, epp_dodger and merl for third-party parse transforms and tools | syntax_tools.md |
Clause