1bada92870
A handled condition's sentence is consumed when it is copied, and the class-slot, migration and destroyed-allocator traps put their own sentence on the wire
2026-09-25 14:48:46 +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
b6dbc08c78
An expression at a stop that destroys the program's temp arena leaves context/temp empty rather than restoring the destroyed record
2026-09-25 14:26:31 +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
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
9373c43113
The nested-overflow test waits for the outer break to be on top instead of sleeping, and names a session that dies
2026-09-25 13:56:11 +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
8bb2885e63
An abandoned evaluation puts the context allocator back, and a fault's break loop runs on a guarded stack of its own so a runaway recursion evaluated there is another break rather than a dead session
2026-09-25 13:49:24 +07:00
a0a86d0b80
The temp allocator grows a block that outgrows its chunk, answers a formatted number with one bump allocation, poisons what a dev wipe releases, and is wiped after each expression run while parked
2026-09-25 13:47:00 +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
639ff1859c
Aborting an expression that trapped in the park abandons it by a jump back to the poll that called it, and the session stays
2026-09-25 13:28:16 +07:00
9d6694fd92
Merge master: an evaluated expression's lifted bodies are placed with its thunk
2026-09-25 13:18:40 +07:00
9aeee9d676
Merge branch 'master' into worktree-agent-a6ffe579d55d1892b
2026-09-25 13:16:58 +07:00
d864818956
A handler for a parent reads the condition's own name and message or the condition printed with its values, kept in the handler-case's own frame across the unwind, and a frame re-entered through a signal or a C call names where it is
2026-09-25 13:16:35 +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
f87d596bdc
A file with a broken form still starts a session, a package's macros expand bare from its file, a delivery a running program never polls for says so with a fix that compiles, and aborting an expression stopped in the park abandons it and keeps the session
2026-09-25 13:06:36 +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
bfd176cce9
Merge master: a handler clause runs without its own handler in force, over the condition descriptor, and StaleCall is an Error
2026-09-25 12:50:01 +07:00
1fb4b37125
A restart that takes values can be taken from the break loop, which asks for one per parameter and stores them into the frame as an invoke-restart would
2026-09-25 12:46:23 +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
d8945ae4ae
The address of read-only storage is a (Ptr const T), which nothing is written through and which a C const T * parameter takes
2026-09-25 12:43:04 +07:00
1d219b526c
Merge master into the typed class slots lane
2026-09-25 12:14:42 +07:00
23b144178a
A dev build's frame records the call it is in, so a backtrace names the call each caller is making and the expression the innermost one stopped at
2026-09-25 12:12:40 +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
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
73dfaacbc8
A condition type may name a parent and a handler for Error catches every built-in error, a signal passes one descriptor carrying its chain, name, sentence and site, and the break loop shows the sentence the runtime wrote
2026-09-25 12:05:13 +07:00
6e8cc52bc7
Merge branch 'master' into worktree-agent-ad097f67134ba0552
2026-09-25 12:02:48 +07:00
77497cfc2c
A generic's copy made by an evaluated expression is disassembled from that expression's module, and one copy that cannot be shown no longer hides the others
2026-09-25 12:00:50 +07:00
e0af3c9b1d
A method of update-instance-for-redefined-class runs on each instance as it migrates, and one that signals offers migrate-by-name
2026-09-25 11:55:40 +07:00
6c8611cece
Merge master
2026-09-25 11:53:00 +07:00
2ff1da88da
A slice can be read-only: bytes-view answers a [const u8], and a store through one is refused at compile time
2026-09-25 11:43:41 +07:00
20fa04d9df
A program never waits on an editor that stops reading its pushes, and the editor keeps a bounded tail of the program's output
2026-09-25 11:42:54 +07:00
b05a97b029
A generic's name disassembles to its copies, each headed by the types it was called at, and is listed among the program's names
2026-09-25 11:41:31 +07:00
c671f23b2c
Merge master
2026-09-25 11:36:46 +07:00
680c12e686
A restart frame carries where its clause is written, its :report sentence and whether a handler-case made it up, and the break loop shows the first two and hides the third
2026-09-25 11:35:12 +07:00
14da41e1d9
A changed signature installs, its stale callers are named, and a handler is off while its own clause runs
2026-09-25 11:17:48 +07:00
f4725788c5
The daemon pushes the program's output and the watch table to an editor that asked for them, and every key a Flan buffer's own map binds is that buffer's under Evil
2026-09-25 11:16:49 +07:00
ed8dbbcd62
A handler-bind clause runs with only the handlers outside its own form in force, and a stale call in main's running loop stays listed until the callee changes back or the program re-runs
...
The first is CLHS 9.1.4.1: a clause that signalled the condition it handles used to re-enter itself until the stack ran out. The stale list now names a lifted clause by the function it is written in, and BUILT.md's cost line is measured against master.
2026-09-25 11:15:52 +07:00
40bd96ec65
A source heading escapes control characters, names its file by the path it was given, and quotes a form cut at a character boundary
2026-09-25 11:08:11 +07:00
0d771494a6
Merge branch 'master' into worktree-agent-a8f5ad274482eeb9c
2026-09-25 11:07:02 +07:00
573076994e
Merge branch 'master' into worktree-agent-a0a469774e7454c6c
...
# Conflicts:
# lib/loc.ml
# lib/x86.ml
2026-09-25 10:59:24 +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
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
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