319 Commits

Author SHA1 Message Date
2135f6d37f Merge branch 'master' into worktree-agent-a46233a32d1912c78 2026-09-25 23:27:55 +07:00
3e504deb6f An arm is checked at the other arm's type first and meets it at the join only when refused there, so every program master accepts keeps its type and value while arms still meet in either order 2026-09-25 23:10:16 +07:00
c1beb602a7 A .fln let is always flat, and flan convert writes flat lets, renaming a shadowed name instead of nesting 2026-09-25 23:01:11 +07:00
93e614e239 A frame that prints shows its globals, live prelude shadowing matches a rebuild, flan run cleans up and dies with flan, and a long socket path works from Emacs 2026-09-25 22:59:50 +07:00
e18b28be3e Master is merged into the flat-let lane 2026-09-25 22:49:39 +07:00
319a3c78c4 Merge branch 'master' into worktree-agent-a46233a32d1912c78 2026-09-25 22:40:48 +07:00
a14e633a21 A pointer's element type can be cast and a slice made from a pointer and a count with slice-from 2026-09-25 22:35:34 +07:00
ccdadeeb6e A mark or a step spliced into a program that defines its own pause or step-point calls the prelude's 2026-09-25 22:34:28 +07:00
70b9040512 type-of answers a dyn value's kind as a keyword, and a class cannot be named after a built-in kind 2026-09-25 22:29:26 +07:00
d07c7b4e2c A prelude function shadowed live keeps the prelude's own calls on the prelude's body, as a rebuild does 2026-09-25 22:28:58 +07:00
c41d27ec45 A frame whose slots are all the compiler's own is compared against the slot count its record carries, so a frame that prints keeps its globals and locals 2026-09-25 22:26:11 +07:00
4b1e722854 slice-from makes a slice from a pointer and any integer count, and ((Ptr U) p) casts a pointer's element type without dropping const 2026-09-25 22:24:11 +07:00
285bb1047f The half-write test reports a session that closes under a question as a failure instead of ending test_dev 2026-09-25 22:24:08 +07:00
0b80c1956f A let in .fln is always flat and a line indented under one is refused, the printer renames a let's name a later statement means otherwise or puts the let in a do: block, and a one-argument and/or prints as its argument 2026-09-25 22:23:37 +07:00
e80411d283 type-of answers a value's kind as a keyword or an instance's class name, and a class named like a kind is refused. 2026-09-25 22:18:36 +07:00
47cc213b42 Return types read off the body and the converter's latest fixtures live together 2026-09-25 22:14:32 +07:00
a1e5e39dba Master's changes are merged into the dyn printing lane, with its converter fixture 2026-09-25 22:11:04 +07:00
2b35085358 flan run removes its executable and work directory when it is sent SIGTERM or SIGHUP, and the one-shot commands' empty work directory is gone from TODO.org since the exit handler already removes it 2026-09-25 22:10:07 +07:00
8aaf33589e type-of is queued 2026-09-25 22:04:28 +07:00
5adabd9f3c Dyn text is immutable and counts characters, str counts bytes 2026-09-25 22:03:26 +07:00
85283c2e87 Any typed container crosses into dyn as a view 2026-09-25 22:02:04 +07:00
c3d36b5108 The inspector reads memory directly, a trapped read shows as trapped without a break, and requests take effect in the order the client sent them 2026-09-25 22:01:53 +07:00
4f060bb648 Dyn and typed containers print as [1 2 3] and {:a 1}, a refused dyn view names the value and a dyn fix in the file's own syntax, and a dyn function whose body gives no value says so by name 2026-09-25 22:01:40 +07:00
c9b556a539 A restart is taken only after every job queued before it was accepted has run, and a choice waiting for an outer break survives a nested one, so a fix loaded just before retry is the body the retry runs. 2026-09-25 22:01:08 +07:00
af6e00bc2a = compares bools, a match over a bool takes true and false, and a match over a dyn takes keyword arms 2026-09-25 22:00:51 +07:00
cecbec6c71 A slice from a C pointer and a pointer cast are queued 2026-09-25 22:00:13 +07:00
cc45b8a55d Dyn has a character type 2026-09-25 21:57:37 +07:00
2dec18b87f The typed text types are str and String 2026-09-25 21:54:26 +07:00
d8ece682d3 Merge master 2026-09-25 21:51:08 +07:00
bb800903d8 Return types read off the body and frame-escape refusals live together 2026-09-25 21:49:14 +07:00
7bc04cc434 Flan is dyn unless annotated 2026-09-25 21:43:21 +07:00
18581a452c = and != compare bools, a match over a bool takes true and false arms, a match over a dyn takes keyword arms, and where predicates joined with and are refused with the comma or vector form as the fix 2026-09-25 21:35:31 +07:00
94134da25a Dyn containers print without a space after the bracket, queued 2026-09-25 21:32:46 +07:00
d991e1986c Flat lets and one-argument and/or in the .fln printer are queued 2026-09-25 21:27:50 +07:00
ed7258c80f An abandoned check puts back everything it wrote into the environment, an else arm refused on its own terms is not blamed for the then arm's type, and a match's arms meet at the same join as an if's 2026-09-25 21:26:56 +07:00
d574031609 Keyword arms over a dyn and = on bool are queued 2026-09-25 21:23:50 +07:00
bd70dfa913 Merge branch 'master' into worktree-agent-a9ad2e8b56d1fbd10 2026-09-25 21:18:18 +07:00
4fa11f6360 Merge master 2026-09-25 21:11:31 +07:00
0fc258c434 Merge branch 'master' into worktree-agent-a46233a32d1912c78 2026-09-25 21:11:17 +07:00
f76d0d6e9f An if's arms and a _ function's exits meet at one join in any order, a return inside the last form counts where it is written, and a constant computed by a _ function is refused as with a written type 2026-09-25 21:02:26 +07:00
9e09375d7b Merge branch 'master' into worktree-agent-a6088ba602da36c5e
# Conflicts:
#	TODO.org
2026-09-25 20:58:42 +07:00
69eb11ce9b Return types read off the body and generic structs live together 2026-09-25 20:51:38 +07:00
111ee66a4b A match arm can be a number, char or string literal compared with =, over a number, a string or a dyn, with a _ arm required 2026-09-25 20:51:24 +07:00
c6a3259a62 A function that returns or stores into a global an address or slice of its own frame is refused, a dev free-all poisons any arena's released bytes and ASan sees them released, and @sanitize checks stack use after return 2026-09-25 20:40:21 +07:00
36c2d14c28 The inspector's reader prints a generic struct instance as (Pair i32 {…}) through Render.head, as the compiled renderer does. 2026-09-25 20:33:31 +07:00
db7f703c0e ML-style patterns are held as a future direction 2026-09-25 20:33:26 +07:00
25911d7c9d Nested ML-style patterns are wanted 2026-09-25 20:31:57 +07:00
e7d82cb640 A match arm can match a number or string literal, queued 2026-09-25 20:30:31 +07:00
8fdf8513fd A _ body's errors are reported with every other error in the file, a literal return takes the type of the other exits, and a recursive _ function that gives nothing returns () 2026-09-25 20:17:44 +07:00
5d3a0fc316 Inferring a closure return and recompiling a _ caller after its callee changes wait behind .fln 2026-09-25 20:14:22 +07:00