192 Commits

Author SHA1 Message Date
37938db7c2 A call through a failed local is not reported and a miscounted call's arguments are, eval-in-frame answers slotless frames and ended stops, flan dev links its own agent, and the daemon buffer colours only file:line:col diagnostics 2026-09-25 16:47:51 +07:00
f32f88413e Merge branch 'master' into worktree-agent-a4f010dac78379ee2 2026-09-25 16:20:22 +07:00
a13c2f9ec3 The Map header mirror the collector reads is checked against flan_rt.c's, array key pairs cannot share a name, and a program holding only a Map of dyn sets up the collector 2026-09-25 15:52:57 +07:00
9a91440486 C-c C-s installs a defn that stops before each form of its body, and the break buffer steps it with s and runs the rest of the call with c 2026-09-25 15:43:24 +07:00
a615e4ecfc The leak sweeps have switches, a C source that includes the dyn header is recompiled when the header changes, and the map-remove and map-keys programs free what they allocate 2026-09-25 15:38:02 +07:00
da9f21ddcd A form sent to the daemon is refused with every error in it, and an expression evaluated from the break buffer sees the stopped frame's locals 2026-09-25 15:33:23 +07:00
580d377847 A fixed array of strings or of structs is a map key, hashed and compared element by element 2026-09-25 15:21:30 +07:00
a41e43cbba (slice d ...) over a dyn text answers a text, in the three spellings the typed slice has 2026-09-25 15:19:39 +07:00
6745aa7cb4 map-keys and map-values are prelude generics over any hashable key 2026-09-25 15:17:05 +07:00
52c154e306 The x86 survey compares against LLVM built at -O0, the level the hand-written backend corresponds to 2026-09-25 15:15:30 +07:00
8dc90416d4 The daemon's buffer draws errors, warnings and notes in compilation's faces and the program's own output in a face of its own 2026-09-25 15:14:23 +07:00
610e9fcf9d A parent's handler reads a name and message made in context/temp, whole and good until the frame ends, and the handler-case landing no longer holds a buffer of its own 2026-09-25 14:36:46 +07:00
bb4705b7e0 An allocator is two words and dies with its arena, clone copies a slice, and quick formatting uses a per-frame temporary allocator 2026-09-25 14:26:45 +07:00
22d2a4cfb2 An indented surface beside s-expressions is specified as a second reader chosen by file extension 2026-09-25 14:21:51 +07:00
5646ae148e Merge master; an expression evaluated at a stop runs against a scratch temp arena that is wiped after it, and the program's own temp arena is never rolled back 2026-09-25 14:09:30 +07:00
f04cd18c0a A session's evaluated modules are recorded as never unmapped 2026-09-25 14:06:06 +07:00
38055b8fdc A file with no main opens a session, and a crash in an evaluated expression leaves the session running 2026-09-25 14:04:14 +07:00
46a89aac0c An expression evaluated at a stop rolls the temp allocator back to where it was, so its own text is reclaimed and the stopped frames' text survives 2026-09-25 13:54:07 +07:00
b2eb81f7bf A slice or pointer can be read-only, and what it reaches cannot be written through it 2026-09-25 13:39:04 +07:00
5a78cdd202 Merge master 2026-09-25 13:36:54 +07:00
d2f25a6e44 Merge branch 'master' into worktree-agent-a9288676abb278ffb 2026-09-25 13:35:10 +07:00
f3d969618d A class slot can carry a type, and set writes a declared slot 2026-09-25 13:32:16 +07:00
53880eb685 A class slot's type names its own package's class first, an int widens into a float slot exactly when it round-trips, and a constructor's refusal names the call that was wrong 2026-09-25 13:29:30 +07:00
3e09a1f722 Merge branch 'master' into worktree-agent-ac750a5e83cab251b 2026-09-25 13:18:42 +07:00
9d6694fd92 Merge master: an evaluated expression's lifted bodies are placed with its thunk 2026-09-25 13:18:40 +07:00
bbfb8ca58c The parent-link entry says a parent's handler reads the message with its values 2026-09-25 13:18:10 +07:00
9aeee9d676 Merge branch 'master' into worktree-agent-a6ffe579d55d1892b 2026-09-25 13:16:58 +07:00
0358f6637c Merge branch 'master' into worktree-agent-ad097f67134ba0552 2026-09-25 13:15:36 +07:00
1998f57ca8 Merge branch 'master' into worktree-agent-ac49c2c6835655472 2026-09-25 13:14:44 +07:00
02e4fef830 i64->bytes and f64->bytes allocate from a growing temp allocator that (free-temp) releases once a frame and a dev build's agent poll wipes, so a number drawn every frame no longer leaks 2026-09-25 13:07:21 +07:00
9394a26449 A negative literal fits no unsigned type, u64 included, and the refusal names the cast that writes its bit pattern, which a constant now folds 2026-09-25 13:02:50 +07:00
325c3662a8 A numeric type's limits are (max-value T) and (min-value T), and an array literal of numbers with no common type is refused with the conversion named 2026-09-25 12:56:02 +07:00
e7b01ea01c Merge branch 'master' into worktree-agent-adcfc27e0ceac8df4 2026-09-25 12:55:56 +07:00
16427f8d07 A class slot may be a class or an Option, an int widens into a float slot when exact, a gained typed slot starts at its zero, and a migration never re-enters itself 2026-09-25 12:55:25 +07:00
b74002be02 Merge master 2026-09-25 12:54:55 +07:00
e75a66e463 The parent-link entry is followed by a blank line like its neighbours 2026-09-25 12:50:25 +07:00
2e586ef45f The condition and restart entries this branch closes are off the list 2026-09-25 12:50:16 +07:00
cc95006024 Merge branch 'master' into worktree-agent-ac750a5e83cab251b 2026-09-25 12:49:38 +07:00
37e577d5e1 (Ptr const T) is documented beside [const T], and the TODO entries for it are closed 2026-09-25 12:46:07 +07:00
11e1ff10a7 flan dev starts on a file with no main and links the agent into every program it builds, C-c C-k loads a file keeping what compiles, and an expression sent from a package's file resolves in that package 2026-09-25 12:44:15 +07:00
acec25f8a1 Merge master 2026-09-25 12:43:50 +07:00
ce66bb7f3b Merge branch 'master' into worktree-agent-ad097f67134ba0552 2026-09-25 12:43:04 +07:00
d3ac1ab4dc Type limits are spelled min-value and max-value, and quick formatting is to use a per-frame temporary allocator 2026-09-25 12:20:12 +07:00
aedd50c646 Merge branch 'master' into worktree-agent-ac750a5e83cab251b
# Conflicts:
#	lib/check.ml
2026-09-25 12:17:58 +07:00
1d219b526c Merge master into the typed class slots lane 2026-09-25 12:14:42 +07:00
c6cb018b9f Only a closure that outlives its frame takes a collector environment, and the collector reads a Vec's elements only through a block it knows is live 2026-09-25 12:12:25 +07:00
bf0a939093 A dyn negation of a non-number is refused by name, and a prelude function shadowed in a live session is a recorded gap 2026-09-25 12:07:32 +07:00
c116237621 An Allocator value is its record and the incarnation it was made for, so one kept past its arena-destroy traps at every use even after arena-new reuses the record 2026-09-25 12:05:44 +07:00
caf39c4346 A read-only pointer is to sit beside the read-only slice 2026-09-25 12:04:08 +07:00
6e8cc52bc7 Merge branch 'master' into worktree-agent-ad097f67134ba0552 2026-09-25 12:02:48 +07:00