245 Commits

Author SHA1 Message Date
39d35f51db A function whose signature changed installs, and a caller compiled against the old one stops on StaleCall at the call
A dev cell carries its body's signature word beside the body, every call through a cell (and every function value taken from one) compares it with the word the site was compiled for, and the session lists the stale callers by file and line on the reply. Both backends, both installers; release builds have neither the word nor the compare.
2026-09-25 10:40:18 +07:00
60ef7b2e06 A recur from an arm of a match over an enum is in tail position, and a session's blind spot for macros an expansion defines is recorded 2026-09-25 10:39:42 +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
066fb18940 Every Flan form heads the code it produced in the emitted IR, the x86 listing and both disassembly buffers, and the objects are the same with or without it 2026-09-25 10:34:07 +07:00
e9e151e1a4 A match over an enum names its members as keywords and is refused when it misses one 2026-09-25 10:33:22 +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
7abe760288 cond and until are prelude macros, and a macro module holds only the macros its forms reach 2026-09-25 10:28:32 +07:00
5214343251 Every tracked .flan file reindents to itself 2026-09-25 10:28:28 +07:00
d1fd323043 The destroyed-allocator trap is recorded as having no site 2026-09-25 10:27:39 +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
fc9f3059f9 C's calling convention for CFn waits with the callbacks 2026-09-25 10:23:28 +07:00
e16b5cbced A local's type is to print qualified by its package 2026-09-25 10:23:18 +07:00
0e7a9ab98f The x86 survey is to compare against LLVM at -O0 only 2026-09-25 10:21: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
e85b2d3e98 A dev session is to run under the sanitizer on request 2026-09-25 10:19:02 +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
ea19dedb90 The corpus is to be swept once for leaks nothing owns 2026-09-25 10:18:17 +07:00
49a7860cc4 The truthiness retry is to reuse the first pass and stay linear 2026-09-25 10:16:45 +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
ddf7ca4974 The flan_dyn.h ABI has one implementation, flan_dyn.c 2026-09-25 10:16:02 +07:00
c1dcdeb5af A stop is to say whose it is from the frame that stopped 2026-09-25 10:15:47 +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
9dd7dd4137 The agent socket is to bind only for the daemon that launched the program 2026-09-25 10:14:48 +07:00
0167fcef43 A quasiquote inside a quasiquote nests, and a macro that writes a macro defines one the program can call 2026-09-25 10:14:41 +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
dab556ab7f Re-run under --two-process is to start a fresh child and say so 2026-09-25 10:14:04 +07:00
1e462e06f6 Lexical blocks in DWARF wait for a debugger that needs them 2026-09-25 10:13:30 +07:00
764c5d4561 Every string literal is to end in a NUL on both backends, and a literal crosses to C uncopied 2026-09-25 10:12:56 +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
96b7ffb654 A program stays one compilation, which is why a generic's body is always there 2026-09-25 10:10:33 +07:00
9cc820cb52 A class redefinition is to take a migration hook written from the live session 2026-09-25 10:08:22 +07:00
96be1193c0 The x86 backend describes every frame it emits for an unwinder, in a release build as in a debug one 2026-09-25 10:07:40 +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
763c835496 Per-version class layouts wait for a case that needs them 2026-09-25 10:07:19 +07:00
cf737076e9 A moved Vec's old buffer is to be poisoned in a dev build, and the unread generation word goes 2026-09-25 10:06:41 +07:00
aa1bbe550c A use-after-release check is to be studied before anything is built 2026-09-25 10:04:50 +07:00
b153f325b8 A declared name that starts with $ is refused where it is declared 2026-09-25 10:04:23 +07:00
0fb30ad945 The mutation pass is to run again with the next heavy sweep 2026-09-25 10:04:13 +07:00
299b3bcb61 The OFL font stays out of the repository 2026-09-25 10:03:46 +07:00
8006f8728f The daemon buffer is to colour the compiler's lines and set the program's output apart 2026-09-25 10:03:19 +07:00
4ae7beb6ce An evaluation sent from a package's file is to resolve names in that package 2026-09-25 10:01:31 +07:00
bf827dc55b A test binary leaves nothing in the temporary directory it was given 2026-09-25 09:56:39 +07:00
16d04cbb49 A parameter vector that reads a name as a type is to be warned at, the type winning 2026-09-25 09:56:33 +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
9650f331d6 A pointer and an untagged union are to take a byte fill 2026-09-25 09:55:07 +07:00
81569b60d8 A compound constant is to fold before a bounded variable checks it 2026-09-25 09:54:35 +07:00
f6cdb4e31b A quasiquote is to nest, counting depth as SBCL's backquote does 2026-09-25 09:54:05 +07:00