fc6e2f7dfb
The break window evaluates in a frame and steps through a function, and C-c C-c reports every error in the form
...
# Conflicts:
# test/test_dev.ml
2026-09-25 16:52:32 +07:00
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
96dbcb1f2f
An expression that makes a function value keeps its module mapped, a process a merged program starts does not take the session's socket, and an evaluation's value is its own expression's and not one a restart resumed
2026-09-25 16:37:43 +07:00
020392b064
Merge branch 'master' into worktree-agent-a55c4be9d199b8eb4
2026-09-25 16:22:58 +07:00
f32f88413e
Merge branch 'master' into worktree-agent-a4f010dac78379ee2
2026-09-25 16:20:22 +07:00
6c8f503ebf
A --two-process re-run checks the whole program before building it and refuses at a stale caller, and a change made while the child has ended waits in the session for the re-run
2026-09-25 16:08:13 +07:00
4b64dc5f65
Code-carrying dev requests name their syntax and starting line and column, so a .fln snippet sent from the middle of a buffer reads with the buffer's own locations
2026-09-25 15:57:09 +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
d0fc036bba
flan dev --sanitize builds the host under ASan and UBSan on LLVM, refuses --x86 by name, and the sanitize sweep drives a real session through reloads and breaks
2026-09-25 15:39:00 +07:00
f67498c789
A re-run under --two-process builds the program again from the session and starts it in a new process, and the daemon outlives a finished child
2026-09-25 15:35:23 +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
c30f52c5a7
A stop records whether it was inside an evaluated thunk, and an evaluation waits through a break the program's own code entered
2026-09-25 15:25:09 +07:00
d5fc3aa657
The agent binds the daemon's socket only in the process the daemon launched, named by FLAN_AGENT_OWNER
2026-09-25 15:18:55 +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
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
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
f3d969618d
A class slot can carry a type, and set writes a declared slot
2026-09-25 13:32:16 +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
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
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
35f455acb3
The's refusal of a dyn says what the boundary does at that type, elements that cannot become a dyn are refused against each other, two literal arms meet at the wider type, and the renamed prelude function and a second startup warning stay out of sight
2026-09-25 12:49:02 +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
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
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
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
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
6c8611cece
Merge master
2026-09-25 11:53:00 +07:00
0636eb3b8d
A generic's copy that the file does not make is named in its lowering rather than left out
2026-09-25 11:47:11 +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
2682214499
A defclass slot may declare a type that every store into it checks, and set writes a declared slot
2026-09-25 11:40:08 +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
0b9ae9318e
flan build and flan run of a file with no main say so and show one, rather than failing at the link
2026-09-25 11:26:13 +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
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
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