Types phase 3 — the option/result safety pair. result/ok/err/try shipped in #46; this adds its companion option: - some(v) -> option (present value; any i32-width scalar) - none() -> option (empty; no magic -1 sentinel) - is_some / is_none -> bool - unwrap_or(o, fallback) -> int A heap %Option = { i32 present, i32 value }, bare builtins guarded by find_fn (a user fn of the same name still wins), gated by g_uses_option so unused programs compile byte-identically — same idiom as result. Wired: emit_call codegen + %Option decl (emit_decl) + g_uses_option (emit_core), reseeded seed, vocabulary sync (header/JetBrains/TextMate), builtin docs + inventory, and a self-asserting example (examples/library/optionresult.ludic + feat_case). All suites green incl. golden renders byte-identical and the bootstrap fixpoint. Tagged-union enums (variant payloads + binding match + exhaustiveness) are the deep type-system feature, split out to #56. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| anim-ergonomics.md | ||
| audio-namespace.md | ||
| coverage.md | ||
| engine-systems.md | ||
| error-handling.md | ||
| http-namespace.md | ||
| input-actions.md | ||
| input-device-layer.md | ||
| input-hardware-bindings.md | ||
| light-ecs-components.md | ||
| light-namespace.md | ||
| light-tiers.md | ||
| README.md | ||
| recover.md | ||
| testing-framework.md | ||
| types-2d-ivec-rect.md | ||
| types-bignum-decimal.md | ||
| types-containers.md | ||
| types-huge-angle-percent.md | ||
| types-option.md | ||
| value-tree.md | ||
Changesets
A changeset is one small Markdown file describing a single user-facing change,
dropped in this directory. x release consumes every changeset here into a new
CHANGELOG.md section, bumps VERSION, and deletes the consumed files.
Format
bump: minor
type: feat
One or more lines describing the change, in the past-agnostic imperative used in
the changelog. Markdown is fine.
bump:—major,minor, orpatch(SemVer). The release version is bumped by the highest level among the pending changesets (unlessx release <level>overrides it).type:— the Conventional Commit type (feat,fix,perf,docs, …); it becomes the bold prefix of the changelog bullet.
Adding one
Create a file with a short, unique name, e.g. changes/regex-namespace.md. Any
filename works except this README.md, which the release step always skips.