321 Commits

Author SHA1 Message Date
659f4d8c6c Merge branch 'master' into worktree-agent-a26dff0627201f77b 2026-09-26 12:29:59 +07:00
0b56818569 Dev bookkeeping per temp allocation grows without free-temp, recorded. 2026-09-26 12:23:17 +07:00
bfdd971baa A String compares equal to a String or a str by its bytes, and a prelude builder's String is checked at the caller's line. 2026-09-26 12:22:17 +07:00
5cc661d6ab Merge branch 'master' into worktree-agent-a26dff0627201f77b 2026-09-26 12:07:11 +07:00
db67ab19b4 String is owned, growable, always-valid UTF-8 text over a (Vec u8), and the prelude's text builders return it. 2026-09-26 12:07:11 +07:00
66ea0b3abe Merge branch 'master' into worktree-agent-ab88d16e8e6fbfe15 2026-09-26 12:05:38 +07:00
4fb9d3b3fe A wide fold of let operands checks slowly, recorded. 2026-09-26 12:05:30 +07:00
24b346d927 Merge branch 'master' into worktree-agent-ab88d16e8e6fbfe15 2026-09-26 11:52:13 +07:00
6d8ced2ba3 A dyn text becomes a str as its own bytes, a dyn view becomes its own storage, and a dyn vec or map becomes a checked copy in a [const T], a fixed array or a struct, while a writable [T] is never a copy. 2026-09-26 11:48:01 +07:00
e24395a737 Merge branch 'master' into worktree-agent-a65403bb057c203d7 2026-09-26 11:42:43 +07:00
68fddf90a1 if let is queued, with Rust's spelling. 2026-09-26 11:21:25 +07:00
dad9c02dc6 A used when gives an Option and get is a checked lookup, both queued. 2026-09-26 11:19:19 +07:00
c4452fc500 Merge master into the bit operators lane 2026-09-26 11:04:32 +07:00
473bf0a2b7 The bit operators are && || ^^ ~~ in .fln at Python's precedence, take integers only on typed and dyn values, and popcount, leading-zeros, trailing-zeros and the rotations exist on both backends. 2026-09-26 10:49:54 +07:00
fc463cf320 The .fln reader refuses loop and recur, flan convert refuses a .flan file that uses them, and every loop outside recur.flan is a while or until. 2026-09-26 10:31:53 +07:00
d519ca81dd Merge master into the views lane 2026-09-26 09:29:15 +07:00
36156c9de9 A dyn value takes .field and [:key] as get and put, and a class instance refuses a slot it does not have 2026-09-26 09:28:25 +07:00
749b4aeb84 A float element of a dyn view takes an int it holds exactly and traps on one it does not. 2026-09-26 06:22:26 +07:00
e79d9c0d07 Merge master into the views lane 2026-09-26 06:18:31 +07:00
8291e62d7a TODO.org records the view decisions: str read-only, aggregates written through their own view, no int into a float element, and no check in a release build. 2026-09-26 06:10:51 +07:00
06eaf738b9 .fln lambdas are written with =>, and one with a block can sit last inside a call's brackets 2026-09-26 06:10:12 +07:00
b1404727b6 A lambda with a block prints wherever it is last in its brackets, an element after a block lambda is refused as not last, and TAB offers no column of a block whose brackets have closed 2026-09-26 06:09:47 +07:00
2dbc8539e5 Merge branch 'master' into worktree-agent-af3c12884ed5f2255 2026-09-26 06:09:13 +07:00
4eefd25df9 A class instance refuses a key its class does not declare, read or written, through get, put, .field and [:key]. 2026-09-26 06:02:51 +07:00
65be0bf774 The closer placement after RET in an open call is recorded 2026-09-26 06:01:56 +07:00
d8fd89e31c Calls without parentheses are held 2026-09-26 06:00:48 +07:00
e0652f2970 not as a prefix word is queued 2026-09-26 05:58:26 +07:00
1330f2cbc6 .fln has struct, class, method, generic, multi, macro, loop and type headers, one-line structs, and a top-level let is a global 2026-09-26 05:56:48 +07:00
444d2384ce Indices separate like vector elements, queued 2026-09-26 05:56:31 +07:00
1022b7c7f9 Merge branch 'master' into worktree-agent-af3c12884ed5f2255 2026-09-26 05:54:17 +07:00
5a4ed94b65 Merge branch 'master' into worktree-agent-ae8e466a60e7cf35a
# Conflicts:
#	TODO.org
2026-09-26 05:54:09 +07:00
605eb97e75 A dyn value's .field and [:key] read as get and assign as put. 2026-09-26 05:52:56 +07:00
8e8015cb2d Primitive literals are typed by local inference, and container and text literals are dyn unless annotated 2026-09-26 05:52:20 +07:00
7c197e3bb0 A let takes several bindings on indented lines, queued 2026-09-26 05:46:52 +07:00
895828992e Merge branch 'master' into worktree-agent-ae8e466a60e7cf35a 2026-09-26 05:44:39 +07:00
702ebdc9c5 In a .fln file a top-level let is a global and def is refused, while a let in a block or an evaluated expression stays local. 2026-09-26 05:39:59 +07:00
72c73117d6 A .fln file writes a type alias as type Row = Vec(i32), and flan check prints nothing for a file that checks unless given --defs. 2026-09-26 05:39:59 +07:00
1a97dfff77 A .fln file writes a condition's parent as struct DiskFull :parent IoError, a macro as macro repeat(i, n, & body) and a loop as loop x = a, y = b, and flan convert prints them so. 2026-09-26 05:39:59 +07:00
aefd2b7887 Merge branch 'master' into worktree-agent-a13e26f81443d4165 2026-09-26 05:39:56 +07:00
69e5e7fe4a A dyn value takes .field and [:key], queued 2026-09-26 05:37:20 +07:00
6e56fce7fa flan-fln-mode reads a lambda's block inside brackets as statements, and the spec and manual write lambdas with => 2026-09-26 05:27:28 +07:00
7e5ea096a5 A top-level let is a .fln global 2026-09-26 05:27:27 +07:00
3520e2d73e Classes and methods get .fln syntax 2026-09-26 05:23:57 +07:00
267db2cd91 The typed read-only text type is spelled str, and string is refused with that fix. 2026-09-26 05:22:24 +07:00
8d24b024a2 One-line structs are queued 2026-09-26 05:19:51 +07:00
ada798f875 type aliases in .fln are queued, and a noisy flan check is recorded 2026-09-26 05:05:05 +07:00
7d898beb91 Lambdas are written with => 2026-09-26 04:57:45 +07:00
78e0091e3e Dyn unless annotated follows the plain rule 2026-09-26 04:56:02 +07:00
1ef3022599 Parent struct, macro and loop sugar in .fln are queued 2026-09-26 04:52:54 +07:00
fff1c0b9c3 Merge master: return-type inference beside the syntax-following type spellings 2026-09-26 00:27:59 +07:00