aboutsummaryrefslogtreecommitdiff
path: root/docs/design/handoff.md
diff options
context:
space:
mode:
authorGravatar Moon Flower <moonflower@elhenney.local> 2026-10-12 08:46:23 +0330
committerGravatar Moon Flower <moonflower@elhenney.local> 2026-10-12 08:46:23 +0330
commitecc350ca5c2eb50be8309c5f14f8bf0d87db9a02 (patch)
tree70e0af76a1b13affff7c6cc8aac7b3e6ef960478 /docs/design/handoff.md
a
Diffstat (limited to 'docs/design/handoff.md')
-rw-r--r--docs/design/handoff.md20
1 files changed, 20 insertions, 0 deletions
diff --git a/docs/design/handoff.md b/docs/design/handoff.md
new file mode 100644
index 0000000..0b08048
--- /dev/null
+++ b/docs/design/handoff.md
@@ -0,0 +1,20 @@
+# implementation notes
+
+this note summarizes implemented language and tooling features that were previously tracked across design documents. feature details live in the project readme and examples.
+
+## language and library
+
+- struct methods and static functions support typed parameters and return types. the existing untyped form remains available.
+- `src/lib/std.zc` groups helpers in structs of static functions, called with `Group.name(args)`. `Text`, `Bytes`, `Host`, `Arena` and `Buf` provide string, byte, host, arena and buffer helpers. linux `syscall` is host-only and bypasses vm checks.
+- tagged enums support payload members, constructors that return owned enum pointers, and `case member(fields)` bindings in ordinary `switch` statements. omitted members produce a warning when there is no `default`.
+- struct values can cross native calls on x86-64 sysv and linux arm64 aapcs64 for the interpreter, o3, llvm and jit paths described in the readme. apple arm64 remains unchecked.
+
+## language server
+
+the language server runs the compiler in check mode, so diagnostics and semantic highlighting use the same parser and symbol tables as compilation. hover supports declarations, parameters, locals, built-ins and documented keywords. it does not follow declarations reached through `include` yet.
+
+## optimization
+
+o3 remains the explicit way to request native regions; automatic tiering was dropped. llvm inlining and global copy propagation are implemented. see [tiering](tiering.md) for the rationale and [struct-by-value](struct-by-value.md) for native aggregate limits.
+
+the runtime memory map is generated from a preset. fixed code and compiler tables have finite capacity; the heap grows within the configured machine memory. see the project readme's memory map section for the current build controls.