1440 Commits

Author SHA1 Message Date
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
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
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
8fe2a666a1 A refused if is answered from memory for the same condition, scope and expectation, so a refused or/and chain is checked in linear time 2026-09-25 16:09:31 +07:00
25e303caf4 Master's indented reader is merged, and its x += v over a place with a call in it reads as update, evaluating the place once 2026-09-25 15:56:51 +07:00
d46067962d A Vec or Map parameter the function grows with push, reserve or put is warned at the parameter, naming the (Ptr ...) that reaches the caller's container 2026-09-25 15:41:42 +07:00
e616a29ceb A parameter vector paired by a lowercase type the program declares is warned at, naming the type and where it is declared 2026-09-25 15:37:26 +07:00
17f0358e92 A .fln file is read as indented syntax into the same forms, and flan convert prints a program in it 2026-09-25 15:35:42 +07:00
1716b146cd A condition check_truthy has already refused is refused again from memory, so a retry through nested not is linear and keeps its message 2026-09-25 15:35:36 +07:00
23af8a4dd3 A bool arm and a dyn arm of an if meet at dyn with the bool boxed, so (or false (box "s")) answers "s" 2026-09-25 15:31:12 +07:00
074b2da6f3 The indented reader refuses a continuation line that is not deeper than its statement, takes one-line statements in arms, then/else and defer, typed lets and bare-name blocks, and names the shape it wanted where it used to say two values cannot sit side by side 2026-09-25 15:30:52 +07:00
f6ba1e6c4d A CFn may sit in a struct field, a fixed array or a global, and a call through a null one signals NullCall on both backends 2026-09-25 15:26:27 +07:00
8cc63ed9f6 A place in update, ++ and -- evaluates each of its subexpressions once, and (update place f args ...) stores (f old args ...) back into it 2026-09-25 15:26:27 +07:00
b8c81d94ee enum? admits exactly the enums, entails ordered? and equal?, and licenses a generic conversion from an enum to a number beside numeric? 2026-09-25 15:26:27 +07:00
58d1e35225 A local of a package's type is named by its qualified type in the break buffer's listing and the inspector, pinned by a shape/Box local in dev-inspect.flan 2026-09-25 15:22:48 +07:00
5b8c4a68fa into refuses to copy elements that own storage as they stand, and names (map clone) where clone takes the element 2026-09-25 15:22:44 +07:00
82b02b6584 Merge branch 'master' into worktree-agent-ab75070e065de0e53 2026-09-25 15:21:12 +07:00
d7016f91c7 A .fln file is read by an indented reader that yields the paren reader's forms, every program entry point picks the reader by extension, and flan convert prints either syntax as the other 2026-09-25 15:04:32 +07:00
e2aa0196cf Conditions have parents under Error, restarts carry where and why, and a handler reads the message with its values 2026-09-25 14:51:18 +07:00
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
d6621827b3 A read-only slice's diagnostics suggest clone where clone accepts the type 2026-09-25 14:31:36 +07:00
409c5f5c0d A read-only slice's diagnostics name (clone v) wherever clone copies the element type 2026-09-25 14:31:21 +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
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
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
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
a4e45d9a78 A message longer than its buffer is cut at a character and ends in an ellipsis, and the break loop and the unhandled message use the full text 2026-09-25 13:41:58 +07:00
e6ea657263 The array literal given a slice type by the matches a read-only slice too 2026-09-25 13:41:49 +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
c6ad71dc5b A value that owns storage is never copied out of read-only storage, and two arguments at one type variable meet at const 2026-09-25 13:30:47 +07:00
8eca8c78f2 The checker refuses what it cannot type honestly and says which element is wrong 2026-09-25 13:29:56 +07:00
5066b8d288 The literal an array cannot hold is the element blamed, a negative literal in a generic body names a fix for every instantiation, and a doubly negated literal is positive 2026-09-25 13:29:42 +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
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
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
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