bbaca242e5
A dev eval prints the compiler's warnings for the forms it sent and not again for forms sent earlier.
2026-09-26 18:59:34 +07:00
08ecba92f6
The checker warns at a call through which a function calls itself on every path, so it never returns.
2026-09-26 18:55:49 +07:00
5274f83f88
One fn form holds all of a name's arities, and evaluating it replaces them all.
2026-09-26 18:30:11 +07:00
ae41ec8454
An install reply's :fns and flan reload's summary name each fn once, as it is written.
2026-09-26 18:29:54 +07:00
1215db7d26
Merge master into the arity lane.
2026-09-26 18:29:54 +07:00
2010655d60
The vendor libraries, examples and sand are written in .fln.
2026-09-26 18:24:54 +07:00
d6c33928f5
A name an as bound is refused as itself when assigned, in the program and in a stopped frame alike.
2026-09-26 18:16:13 +07:00
c1018d87c5
Every reference to the removed .flan files is updated, generated.fln's stale banner line is regenerated, and the ported .fln files read like handwritten Flan.
2026-09-26 18:13:56 +07:00
7d2da19c0c
A fn form's arities are one definition by an id the form is given, and a caller of a removed arity stops on StaleCall and is compiled again whenever its call checks.
2026-09-26 18:08:41 +07:00
83bb65957d
Each name an as binds is a slot of its own under its name, so the break loop's locals show it with what the test found.
2026-09-26 17:59:59 +07:00
e4d0e9c60e
A pause mark on any column of a condition keeps what it binds, an as in parentheses gets its own refusal, and what an as finds is held in one slot.
2026-09-26 17:52:06 +07:00
dd719766ee
A fn's arities are one form, fn f with a (params) -> R line per arity, and evaluating it replaces every arity at once.
2026-09-26 17:35:18 +07:00
179156b105
A function name has one version per arity, and a call picks the version by its number of arguments.
2026-09-26 17:08:15 +07:00
178c129c97
A .fln name carries no ? or !, and .fln has T?, x ?? d, x!, if let over a plain name and a?.b chaining.
2026-09-26 14:54:58 +07:00
7db1a81d1f
Builtins, prelude, vendor and raylib predicates are named with is- or has- and no name carries a ? or !.
2026-09-26 14:34:36 +07:00
267db2cd91
The typed read-only text type is spelled str, and string is refused with that fix.
2026-09-26 05:22:24 +07:00
2135f6d37f
Merge branch 'master' into worktree-agent-a46233a32d1912c78
2026-09-25 23:27:55 +07:00
6583392504
A prelude body moved by one live shadowing is compiled again when a later shadowing moves a call inside it
2026-09-25 22:51:02 +07:00
ccdadeeb6e
A mark or a step spliced into a program that defines its own pause or step-point calls the prelude's
2026-09-25 22:34:28 +07:00
d07c7b4e2c
A prelude function shadowed live keeps the prelude's own calls on the prelude's body, as a rebuild does
2026-09-25 22:28:58 +07:00
69eb11ce9b
Return types read off the body and generic structs live together
2026-09-25 20:51:38 +07:00
f6384fdf38
Merge master into the generics lane
2026-09-25 20:03:34 +07:00
ad40123b25
Master's error recovery and return types read off the body live together, and two ways out of an inferred body that cannot share a type are refused with both named
2026-09-25 19:58:31 +07:00
ff88b9dad6
A defn whose return slot is _ (or a .fln fn with no arrow) takes its return type from its own body, recursion through such functions is refused by name, and a stale caller of one is told which line changed its type
2026-09-25 17:09:13 +07:00
4c336687ef
Master's error recovery is merged, and the refusal memos are consulted only where a refusal is raised
2026-09-25 17:03:32 +07:00
2f321fd061
Merge master into the generics lane
2026-09-25 17:03:13 +07:00
9d0d42e467
A generic struct's copy prints as (Pair i32 {...}), crosses to C behind a pointer, names each use that made it when refused, settles literal fields at the wider type, and is laid out by stores and restarts that first name it
2026-09-25 16:59:11 +07:00
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
83dc716133
A program's or a session's defn named as a macro shadows the macro for its calls, with the shadowing warning a prelude function gets
2026-09-25 16:32:49 +07:00
4054c4921b
A defstruct whose fields introduce $t or an array length $n is a generic struct, each application of it an ordinary struct copy that generic functions bind against, and a printed call is evaluated once
2026-09-25 16:08:14 +07:00
527da37633
An evaluated expression's module is unloaded when its only strings are literals or registry names, because a literal is a copy the process keeps
2026-09-25 15:57:40 +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
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
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
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
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
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
1d219b526c
Merge master into the typed class slots lane
2026-09-25 12:14:42 +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
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
de8e00314b
A string literal handed to a declare-c reaches C uncopied, and both backends write a NUL after every literal
2026-09-25 11:33:03 +07:00
9e26275f9b
A quasiquote nests as SBCL's does, a match takes an enum, and until is a prelude macro
2026-09-25 11:27:14 +07:00
de26d6e625
~~@xs splices an unquote per element, a session can call a macro an expansion defined, and an enum member cannot be named else
2026-09-25 11:24:27 +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
0a6ea7c32b
A caller excused for going stale takes back the generic copies its failed check cached, and a package's stale callers are named at their own file and line
2026-09-25 10:51:44 +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
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