|
|
fcd32c21c5
|
A match arm can be a number, char or string literal
|
2026-09-25 21:01:40 +07:00 |
|
|
|
76b2ab3113
|
A duplicate literal arm is one whose value equals an earlier arm's at the scrutinee's type, and a literal no dyn holds is refused with a pattern fix
|
2026-09-25 21:01:15 +07:00 |
|
|
|
9e09375d7b
|
Merge branch 'master' into worktree-agent-a6088ba602da36c5e
# Conflicts:
# TODO.org
|
2026-09-25 20:58:42 +07:00 |
|
|
|
4d3688a519
|
Merge master into the .fln mode lane; a .fln arm sends its match whenever its value uses any name the pattern has, C-c C-s steps a .fln top-level form, and a comment block directly above a form is part of its text objects
|
2026-09-25 20:53:48 +07:00 |
|
|
|
69eb11ce9b
|
Return types read off the body and generic structs live together
|
2026-09-25 20:51:38 +07:00 |
|
|
|
111ee66a4b
|
A match arm can be a number, char or string literal compared with =, over a number, a string or a dyn, with a _ arm required
|
2026-09-25 20:51:24 +07:00 |
|
|
|
a6ccce0e67
|
Every store of a frame address into a global outside main is refused, fn and handler bodies and restart clauses are checked as frames of their own, and the suggested clone keeps the slice's bounds
|
2026-09-25 20:50:17 +07:00 |
|
|
|
c6a3259a62
|
A function that returns or stores into a global an address or slice of its own frame is refused, a dev free-all poisons any arena's released bytes and ASan sees them released, and @sanitize checks stack use after return
|
2026-09-25 20:40:21 +07:00 |
|
|
|
df7078d586
|
A _ function's exits combine exactly as an if's arms do, a refused _ body or loop is collected with every other error, and the placeholder type never leaves the checker
|
2026-09-25 20:37:50 +07:00 |
|
|
|
f1bdcc8840
|
Editor code cut out mid-line carries :indent, the column its statement starts at, so the reader accepts its wrapped lines as the file does and reports every location where it is in the buffer
|
2026-09-25 20:35:33 +07:00 |
|
|
|
36c2d14c28
|
The inspector's reader prints a generic struct instance as (Pair i32 {…}) through Render.head, as the compiled renderer does.
|
2026-09-25 20:33:31 +07:00 |
|
|
|
db7f703c0e
|
ML-style patterns are held as a future direction
|
2026-09-25 20:33:26 +07:00 |
|
|
|
25911d7c9d
|
Nested ML-style patterns are wanted
|
2026-09-25 20:31:57 +07:00 |
|
|
|
e7d82cb640
|
A match arm can match a number or string literal, queued
|
2026-09-25 20:30:31 +07:00 |
|
|
|
c3ba4c9e08
|
A wrapped condition or arm value is sent whole and reads as it does in the file, an arm whose value uses nothing its pattern binds sends that value, a match arm is a clause object, and dad on the last form takes the blank lines before it
|
2026-09-25 20:29:06 +07:00 |
|
|
|
72c35ff05c
|
A dyn value the inspector reads is rendered on the program's own thread, so one that traps or faults is a nested break and the daemon keeps answering.
|
2026-09-25 20:24:34 +07:00 |
|
|
|
8fdf8513fd
|
A _ body's errors are reported with every other error in the file, a literal return takes the type of the other exits, and a recursive _ function that gives nothing returns ()
|
2026-09-25 20:17:44 +07:00 |
|
|
|
267e84bada
|
In a .fln buffer numbers are coloured, a colon is not part of a name, TAB keeps a line at a valid column, evil line objects take their newline, and C-x C-e and C-u C-c C-c understand match arms, conditions, clauses and comments
|
2026-09-25 20:14:51 +07:00 |
|
|
|
5d3a0fc316
|
Inferring a closure return and recompiling a _ caller after its callee changes wait behind .fln
|
2026-09-25 20:14:22 +07:00 |
|
|
|
241ea67fbb
|
A struct can be generic over types and lengths, and an error in a generic names the call that made it
|
2026-09-25 20:03:49 +07:00 |
|
|
|
f6384fdf38
|
Merge master into the generics lane
|
2026-09-25 20:03:34 +07:00 |
|
|
|
df00848910
|
A struct value's printed head comes from Render.head, which every renderer shares
|
2026-09-25 20:00:51 +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 |
|
|
|
ff8b61e44c
|
A self-containing or runaway generic struct and a where clause over a length are each one error among the file's others, and a literal that does not fit a variable a typed field decided names that field
|
2026-09-25 19:57:58 +07:00 |
|
|
|
ae23787c04
|
The inspector reads a stopped program's memory through the compiled layouts, so locals, inspect, at, condition and globals build no module, and the inspector reads a generic instance's type arguments.
|
2026-09-25 19:57:39 +07:00 |
|
|
|
8c814b39c1
|
.fln files open in flan-fln-mode, which evaluates, moves over, indents and edits statements, clauses and top-level forms, and every Flan mode derives from flan-base-mode
|
2026-09-25 17:13:12 +07:00 |
|
|
|
89e4f53895
|
Places are evaluated once, enums have a predicate, CFn values live in structs, and a program's names cannot break the prelude
|
2026-09-25 17:12:56 +07:00 |
|
|
|
d6e6a5dc0c
|
A program's global named as a prelude function or global shadows it for the file, with the shadowing warning a defn gets
|
2026-09-25 17:12:05 +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 |
|
|
|
20684c2d9f
|
A grown parameter the function returns, or whose field it reassigns, is not warned at
|
2026-09-25 17:06:19 +07:00 |
|
|
|
dbdaf66e29
|
A slice that bytes or clone copied is released with free, and a dev build traps a free through the wrong allocator
|
2026-09-25 17:05:08 +07:00 |
|
|
|
7bcf9e5054
|
A dev build refuses (free s) on a slice over a Vec's or a Map's storage, and says a formatted number's text is released by free-temp
|
2026-09-25 17:04:52 +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 |
|
|
|
1e8086b4d3
|
The use-after-release checks to build are recorded
|
2026-09-25 17:00:16 +07:00 |
|
|
|
7c1cbd3a9f
|
Merge branch 'master' into worktree-agent-a9288676abb278ffb
|
2026-09-25 17:00:08 +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 |
|
|
|
2c8bd61a20
|
(free s) hands a slice (bytes s) or (clone xs) made back to the context allocator or a named one, a dev build traps on the wrong allocator, and a sliced array literal lives for its whole function on x86
|
2026-09-25 16:48:09 +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 |
|
|
|
43c7494d54
|
A Vec or Map field grown through a struct parameter taken by value is warned at the parameter, naming the field path and the (Ptr ...) that reaches the caller's
|
2026-09-25 16:40:39 +07:00 |
|
|
|
d5978aeab8
|
The dev daemon re-runs under two processes, knows whose break it is, guards its socket, runs under sanitizers, and unloads evaluated modules
|
2026-09-25 16:39:09 +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 |
|
|
|
00fd022330
|
A call through a null CFn parks a dev program in the break loop with NullCall named and continue takeable, on LLVM and x86
|
2026-09-25 16:37:05 +07:00 |
|
|
|
a95b4c288e
|
Merge branch 'master' into worktree-agent-a37bbb17fdd22924a
|
2026-09-25 16:35:58 +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 |
|
|
|
730730a1a7
|
A relocated prelude refusal's note says only that the refusal is there, since the notes before it name which body
|
2026-09-25 16:23:19 +07:00 |
|
|
|
020392b064
|
Merge branch 'master' into worktree-agent-a55c4be9d199b8eb4
|
2026-09-25 16:22:58 +07:00 |
|
|
|
7b3e7f0efa
|
A program's global or type cannot change what the prelude means: a type variable wins over a global in a type position, prelude signatures pair against prelude types, and a global or type spelled like a built-in type is refused
|
2026-09-25 16:22:27 +07:00 |
|
|
|
f32f88413e
|
Merge branch 'master' into worktree-agent-a4f010dac78379ee2
|
2026-09-25 16:20:22 +07:00 |
|