3f30b82bcb
A return computes its value before its defers, and a dozen small refusals and constants say what the program meant
2026-09-25 10:54:09 +07:00
2f3544e7f5
Code after a return emits nothing, a wide element names the u64 array, and $ is refused in fn, handler, :keys and & binders
2026-09-25 10:53:52 +07:00
fe20f68ada
The runtime's races are driven by tests, a destroyed arena's record is reused, and a dyn index names its site
2026-09-25 10:51:08 +07:00
cc39ff2a01
A destroyed arena's allocator is reused by the next arena-new with its epoch kept, a stale dyn view names its site, and the spec fixes the Vec at five words in every build
2026-09-25 10:48:30 +07:00
a49ed2243a
Merge branch 'master' into worktree-agent-a4be641f87966b149
2026-09-25 10:48:05 +07:00
0beafedd14
Dead code is gone, and the daemon says what to fix when a session cannot start or reach its program
2026-09-25 10:45:17 +07:00
146be41bd4
flan dev refuses at start a TMPDIR that is missing or too deep for a socket path, and a program with no main, and tells a program with no agent how to add one
...
The dropped (agent/start ...) note named the wrong cause rather than being unreachable: an over-long socket path fails the agent's bind while it is linked. That case is now refused before anything is built, and the comments, the TODO entry and the fixture say so.
2026-09-25 10:43:33 +07:00
12c3d07acf
The x86 backend describes its frames in every build, and converts a u64 to and from a float as LLVM does
2026-09-25 10:43:20 +07:00
22401a6521
Merge branch 'master' into worktree-agent-acca0e216df6ca366
2026-09-25 10:42:50 +07:00
222dc0ae90
A loop, dotimes, match, macro, class or generic binding that starts with $ is refused too
2026-09-25 10:37:43 +07:00
83b244475a
A refusal that suggests a fix suggests one that compiles, for vec-new, map-new and a near miss that is a value
2026-09-25 10:30:52 +07:00
6c9635cd53
A wide literal is refused for its range as an enum member, names the u64 cast where a dyn is wanted, and comes back wide from a macro
2026-09-25 10:26:03 +07:00
5581bafacb
A dyn at, set-at or push that traps names the file, line and column it was written at
2026-09-25 10:25:28 +07:00
cf04bfc8fd
A u64 converts to and from a float on x86 as it does under LLVM, across the top half of its range
2026-09-25 10:21:23 +07:00
ca031d6b38
Every tracked Flan file is what the indenter would write, and a with- head indents its body like a definer
...
clojure-mode decided each shape. A with- head, and a def or with- head behind a namespace, indents as a body; a qualified head finds its unqualified spec. The rest was hand formatting: cond and match results under their tests, ordinary call arguments under the first one, and lone ; continuation comments rewritten as ;; lines above the code.
2026-09-25 10:19:22 +07:00
dd160aa31b
A return computes its value before it runs its defers
2026-09-25 10:19:09 +07:00
4d10f3c327
An allocator outlives the arena arena-destroy hands back, so a container made from it traps on a read of live memory
2026-09-25 10:18:31 +07:00
2b42cecded
No test program is left from the move-only rule for Vec that nothing checks any more
2026-09-25 10:16:25 +07:00
3636f31cba
A running program's reply never says it has not called (agent/start ...), because the agent's constructor has bound the socket before main
2026-09-25 10:16:25 +07:00
f0fc66940f
The break loop's snapshot caps and its choice handoff are driven from inside the stopped thread by a poll hook
2026-09-25 10:15:35 +07:00
d006a8b480
An array literal's first element types the rest, constant arithmetic folds at a bounded type variable, and a pointer or a plain union takes a byte fill
2026-09-25 10:14:24 +07:00
c2f26a9909
The result read's losing side of the seqlock is driven by a hook inside the window between the copy and the check
2026-09-25 10:12:39 +07:00
4a292b5a73
f64-inf, f64-nan, f32-inf and f32-nan are constants the compiler supplies
2026-09-25 10:07:22 +07:00
b153f325b8
A declared name that starts with $ is refused where it is declared
2026-09-25 10:04:23 +07:00
bf827dc55b
A test binary leaves nothing in the temporary directory it was given
2026-09-25 09:56:39 +07:00
f7deba7a3e
A test binary's directory is one it made fresh, and a same-pid name already there when it started is not counted as its leftover
2026-09-25 09:56:25 +07:00
931000fcb5
A test binary's own directory is removed twice over before it is checked, so a child still exiting cannot fail the run
2026-09-25 09:44:02 +07:00
6a1182df5d
A test binary runs under a temporary directory of its own and leaves nothing in the one it was given
2026-09-25 09:40:00 +07:00
795ba945d9
A dyn value held beside a sibling that can allocate is rooted until it is used, on every backend
2026-09-25 09:32:34 +07:00
0d629d791f
The array an index or a slice is taken of is rooted while its index runs, when it is a temporary
2026-09-25 09:30:41 +07:00
11dc230974
A defn- is private to its module, and the module's own macros may call it
2026-09-25 08:57:20 +07:00
793b0eea9e
A defn- is private to its module, the package's own macros may write calls to it, and the refusal names the fix
2026-09-25 08:55:37 +07:00
96314accd0
One library pipeline builds every program, one alias names the corpus, and a closed session leaves no directory behind
2026-09-25 08:53:45 +07:00
00f116ea29
Six small refusals and conversions say what the program wrote
2026-09-25 08:41:31 +07:00
6f0f4957f4
The break buffer, the inspector and the watch table show what a stopped program holds
2026-09-25 08:37:15 +07:00
ff744120fc
A release build's watch is only its value, next-error lets go of a stack that has resumed, and the frame a stop is in is always shown
2026-09-25 08:36:53 +07:00
0653f341d0
A dyn value held in an operand list is rooted while a sibling operand may allocate
2026-09-25 08:36:34 +07:00
63f1a1357f
Merge branch 'master' into worktree-agent-ad23aafb29b84cc8b
2026-09-25 08:33:28 +07:00
cb0be62087
An integer written at or above 2^63 is a u64 and nothing else, and vec-new reads a type from its argument only when the builtin is what was called
2026-09-25 07:43:24 +07:00
6fd456c0a2
A function declared with defn- is callable only from the files of its own package
2026-09-25 07:42:40 +07:00
f986c0728a
A test binary names the signal that killed a daemon, and the break buffer keeps its keys under Evil
2026-09-25 07:40:58 +07:00
414e1e5ae6
The temp directory is left to the build-plumbing lane, and under Evil the break buffer takes only the keys it binds
...
The dead-session sweep and the remove-on-close half are dropped: the sweep contradicts the recorded non-goals, and the other lane owns removal on a clean close. The Evil keys are defined per state from the map's own bindings, so special-mode-map's h, SPC, < and - no longer shadow Evil's.
2026-09-25 07:40:33 +07:00
88584f76bc
The records say what the tree does, and an arena grown in place answers to its budget
2026-09-25 07:39:11 +07:00
cbd910c117
An arena's budget holds when a block grows in place, and a shrink is never over budget
2026-09-25 07:36:52 +07:00
cda939c8be
Only a place has an address in the inspector, and a watched dyn value and string are pinned armed
2026-09-25 07:32:25 +07:00
7d75cc0a5d
The CLI and the tests load, check and link a program through one module in the library
2026-09-25 07:30:55 +07:00
377ada8d27
The inspector says where a slot's value is stored
2026-09-25 07:27:25 +07:00
37ccca56a3
Every sweep reads the corpus through one alias, and a build that raises is a FAIL line in each of them
...
The sanitizer sweep also lists the five macro programs that run.
2026-09-25 07:23:12 +07:00
85b9f35a66
(watch "name" v) renders any value into the watch table the way print renders it
2026-09-25 07:22:59 +07:00
2250548b07
A test that sees a process die on a signal names the signal, not OCaml's number for it
...
OCaml numbers the signals negatively and in its own order: SIGTERM is -11. The globals daemon's "transient signal 11" was a SIGTERM, not a segfault.
2026-09-25 07:21:44 +07:00