1673 Commits

Author SHA1 Message Date
36655025c0 Master is merged into the when, get and if let lane again. 2026-09-26 12:23:17 +07:00
83fa52a9c3 A dyn value crosses into typed code wanting a str, a slice, a fixed array or a struct, checked at the crossing, and a writable slice is never a copy. 2026-09-26 12:23:05 +07:00
8d08e82b7c The paren printer breaks an if-let as it breaks an if, and a one-key dyn get takes no slot. 2026-09-26 12:17:47 +07:00
62fd7b19bc Master is merged into the when, get and if let lane. 2026-09-26 12:13:55 +07:00
5ee433a38f A kept when answers an Option, get is a checked lookup over arrays, slices, Vecs and dyn, and if let reads as a two-arm match in both syntaxes. 2026-09-26 12:12:48 +07:00
78e25dfa48 A str from dyn text is pinned once per temp stamp and is a poisoned temp copy in a dev build, a float past f32's range and a map key a struct lacks trap, and a struct's refusal names what the value is. 2026-09-26 12:09:25 +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
d742be75bd .fln has bit operators &&, ||, ^^ and ~~ above comparisons, and bit-not, popcount, the zero counts and rotations work on typed and dyn integers. 2026-09-26 12:05:16 +07:00
24b346d927 Merge branch 'master' into worktree-agent-ab88d16e8e6fbfe15 2026-09-26 11:52:13 +07:00
ca9e28860a A dyn value into a written type has a checker row that compiles. 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
bcdb6250a9 A bit operator's operand of any shape that answers a bool gets the and, or or not hint, found by a check that is thrown away. 2026-09-26 11:46:32 +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
5712d4bdc0 A bool operand of a bit operator is refused with its and, or or not hint in a whole-file check, whichever operand it is. 2026-09-26 11:04:32 +07:00
c4452fc500 Merge master into the bit operators lane 2026-09-26 11:04:32 +07:00
75fe42d310 A dev build's views are checked in constant time per lookup, the dev registry grows instead of dropping notes, and a release crossing into dyn carries no dev record. 2026-09-26 10:57:35 +07:00
4188c47b76 A dev build's self-equality scan starts by bumping a stamp rather than clearing its table, so one large scan leaves later ones as cheap as their own size. 2026-09-26 10:52:59 +07:00
7123d4d3f0 .fln has no loop or recur, and flan convert refuses a file that uses them. 2026-09-26 10:50:12 +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
17a7afb297 The .fln reader takes loop and recur as names wherever the Lisp loop's spellings are not written, and the convert refusal lists its lines in a sentence of their own. 2026-09-26 10:43:10 +07:00
9644b8a616 A dev build's self-equality scan walks each container once, a free finds its block by the keyed probe, a registry listing waits out a growth, and a view's crossing and scalar read take fewer instructions. 2026-09-26 10:41:12 +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
0a05d83b3b A release build's dyn view carries no dev record, the dev registry grows instead of dropping notes, a container compared with itself still traps on a stale view inside it, has-key? traps at its site, and a trap clears the walk site it leaves. 2026-09-26 10:13:01 +07:00
ee6fa5297a A view of any typed value crosses into dyn, reads and writes through .field and [:k], and traps under --dev once its owner is gone. 2026-09-26 09:58:33 +07:00
497c9f470f A dyn view's record is collected with it, a dev build ties a view of a stack address to its owning frame and finds a heap block through an address index, and a view's traps name the field, the operation and the site. 2026-09-26 09:54:45 +07:00
7991e00e76 A struct's dyn view takes .field and [:k], read and assigned, and a get on it traps at its own site. 2026-09-26 09:32:49 +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
f39612bc7c Code a request sends without :syntax is read in its file's syntax, or the program's when it names none, and a dotted dyn name points to its accessor. 2026-09-26 06:21:07 +07:00
e79d9c0d07 Merge master into the views lane 2026-09-26 06:18:31 +07:00
26fc9d82a6 docs/BUILT.md states how a dev build decides a dyn view is stale. 2026-09-26 06:17:59 +07:00
d5d9dc1538 A view describes a struct from its own program's table, and an Option's payload is bound to a slot before it is viewed. 2026-09-26 06:17:59 +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
7953376e4e Any typed container of numbers, bools, str, structs, arrays, slices or Vecs crosses into dyn as a view from any storage, and a dev build traps on a view whose frame returned or whose block was released. 2026-09-26 06:10:11 +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
6f6e01db06 A bare def is answered with the let to write, and a generic missing its arrow is refused at the end of its line. 2026-09-26 05:54:01 +07:00