mem: typed allocation helpers + drop bare malloc/free (Phase 2.2); resolve 0119 as |>-contract clarification

This commit is contained in:
agra
2026-06-11 16:17:39 +03:00
parent 3e10809d7e
commit 84e0fb0752
51 changed files with 33256 additions and 32716 deletions

View File

@@ -1,5 +1,21 @@
# 0119 — UFCS dot-call on a GENERIC free function: "unresolved '<name>'"
> **RESOLVED — not a bug** (2026-06-11, Agra language ruling, same
> session). Dot-form UFCS on generic free functions is NOT the language
> contract: UFCS free-function dot-dispatch is the annotated mechanism
> (`name :: ufcs target;`, concrete targets), and the FLUENT spelling
> for free functions is the pipe operator — `xs |> first_of()` desugars
> at parse time to `first_of(xs)`, which dispatches generics through
> the normal monomorphization machinery (verified:
> `context.allocator |> create(Session)` works). specs.md §UFCS
> corrected (it overstated "works with ... generic functions" for the
> dot form). No compiler change. MEM Phase 2.2 unblocked — helpers
> shipped as free functions with the direct + `|>` contract
> (examples/0838-memory-helpers.sx pins both spellings).
> Residual corner (not contracted, unfiled): a `ufcs` ALIAS naming a
> generic target also doesn't dot-dispatch; file separately if ever
> wanted.
## Symptom
`obj.func(args)` where `func` is a generic free function (any `$T` in its