docs: tuple syntax cutover — Tuple(...) type, .(...) value, channel-outside-Tuple failables
Rewrite specs.md tuple/failable/pack/UFCS/grammar sections to the new syntax, update readme.md, and refresh stale tuple references in example header comments. Also fixes two pre-existing doc inaccuracies surfaced in review: drop the value-discarding `;` in the tuple-return examples, and correct the §13 function-type grammar production (optional param list + optional trailing `!` channel). Optional semantics unchanged. current/CHECKPOINT-LANG.md logs the cutover.
This commit is contained in:
@@ -498,11 +498,11 @@ operands or to give a value a name distinct from its register. A label that just
|
||||
echoes its register (`[rax] "={rax}"`) is rejected.
|
||||
|
||||
Outputs decide the result: **0** → `void` (and the asm must be `volatile`);
|
||||
**1** → that type; **N** → a tuple, named by each operand's name.
|
||||
**1** → that type; **N** → a `Tuple`, named by each operand's name.
|
||||
|
||||
```sx
|
||||
// multiple value outputs → a destructurable tuple
|
||||
split :: (x: u64) -> (lo: u64, hi: u64) {
|
||||
split :: (x: u64) -> Tuple(lo: u64, hi: u64) {
|
||||
return asm {
|
||||
#string ASM
|
||||
and %[l], %[x], #0xff
|
||||
|
||||
Reference in New Issue
Block a user