diff --git a/docs/changelog.md b/docs/changelog.md index 81a77e8a..692aa53d 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -4,7 +4,7 @@ Major implementation milestones recorded per-slice (newest first). See `git log` --- -## Unreleased +## v0.1.712 — 2026-11-07 Wasm now specializes a factory value whose uses settle on one concrete return type, including aliases and nested scopes. Native C emits factory adapters diff --git a/docs/codegen.md b/docs/codegen.md index bb065121..435b9128 100644 --- a/docs/codegen.md +++ b/docs/codegen.md @@ -174,7 +174,7 @@ Builtin values are supported when the backend implements the operation and its use has a concrete callable type. Factory values such as `vec_new` and `map_new` are supported when their return type is concrete, as in [factory_value.mere](../examples/factory_value.mere). An unconstrained -`let make = vec_new` is specialized on unreleased main when it has one concrete use type, +`let make = vec_new` is specialized since v0.1.712 when it has one concrete use type, including through aliases; unresolved uses still need an annotation or a concretely typed parameter. Wrapping a call in `fn` remains useful when an operation has a backend-specific restriction. See the diff --git a/docs/stdlib-reference.md b/docs/stdlib-reference.md index 42e1ddbd..87797ea7 100644 --- a/docs/stdlib-reference.md +++ b/docs/stdlib-reference.md @@ -1843,7 +1843,7 @@ protects stopped stacks separately. The [suffix fixture](../test/parity/map_set_suffix.mere) checks a copied list snapshot across replacement and compaction. -**`snapshot : 'a -> 'a` (unreleased) copies an immutable plain value** into the enclosing +**`snapshot : 'a -> 'a` (v0.1.712) copies an immutable plain value** into the enclosing allocation scope, using the same deep copy as a region result. It supports scalars, strings, bytes, SIMD values, tuples, and records/variants/lists whose contents are also plain. Containers, functions, borrows and capabilities are diff --git a/docs/tutorial.md b/docs/tutorial.md index 7b85ba8d..18d64899 100644 --- a/docs/tutorial.md +++ b/docs/tutorial.md @@ -657,7 +657,7 @@ node scripts/run_wasm.js v.wasm Builtin factories can also be used as values on interpreter, C, LLVM and Wasm when the factory has a concrete return type, for example `let make = (vec_new : unit -> Vec[__heap, int]) in ...`. -On unreleased main, `let make = vec_new` also works when all uses settle on one concrete return +Since v0.1.712, `let make = vec_new` also works when all uses settle on one concrete return type, including aliases. An annotation or a concretely typed parameter remains useful when the return type would otherwise stay unresolved, as in [factory_value.mere](../examples/factory_value.mere). The diff --git a/lib/version.ml b/lib/version.ml index ea1577e2..e451944a 100644 --- a/lib/version.ml +++ b/lib/version.ml @@ -1 +1 @@ -let v = "0.1.711" +let v = "0.1.712"