|
|
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 |
|
|
|
20684c2d9f
|
A grown parameter the function returns, or whose field it reassigns, is not warned at
|
2026-09-25 17:06:19 +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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
729d1a27ed
|
map-keys and map-values walk a Map of closures, since (map-next m cur k) walks keys alone and neither needs a zeroed value, and nothing names spike/ any more
|
2026-09-25 16:10:20 +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 |
|
|
|
69d17a9d59
|
Merge branch 'master' into worktree-agent-aebbe657e5dc1f8ef
|
2026-09-25 16:03:19 +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 |
|
|
|
a13c2f9ec3
|
The Map header mirror the collector reads is checked against flan_rt.c's, array key pairs cannot share a name, and a program holding only a Map of dyn sets up the collector
|
2026-09-25 15:52:57 +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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
6e29c19097
|
The collector walks a Map's full slots, so a Map may hold closures and dyn values and keeps them alive
|
2026-09-25 15:31:50 +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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
580d377847
|
A fixed array of strings or of structs is a map key, hashed and compared element by element
|
2026-09-25 15:21:30 +07:00 |
|
|
|
a41e43cbba
|
(slice d ...) over a dyn text answers a text, in the three spellings the typed slice has
|
2026-09-25 15:19:39 +07:00 |
|
|
|
6745aa7cb4
|
map-keys and map-values are prelude generics over any hashable key
|
2026-09-25 15:17:05 +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 |
|
|
|
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 |
|
|
|
409c5f5c0d
|
A read-only slice's diagnostics name (clone v) wherever clone copies the element type
|
2026-09-25 14:31:21 +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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
1e5be63a1a
|
An array reached through read-only storage slices to a [const T], a Vec or Map copied out of one stays read-only through lets, and an if's const and writable branches meet at const in either order
|
2026-09-25 13:08:29 +07:00 |
|
|
|
02e4fef830
|
i64->bytes and f64->bytes allocate from a growing temp allocator that (free-temp) releases once a frame and a dev build's agent poll wipes, so a number drawn every frame no longer leaks
|
2026-09-25 13:07:21 +07:00 |
|
|
|
9394a26449
|
A negative literal fits no unsigned type, u64 included, and the refusal names the cast that writes its bit pattern, which a constant now folds
|
2026-09-25 13:02:50 +07:00 |
|
|
|
325c3662a8
|
A numeric type's limits are (max-value T) and (min-value T), and an array literal of numbers with no common type is refused with the conversion named
|
2026-09-25 12:56:02 +07:00 |
|
|
|
e7b01ea01c
|
Merge branch 'master' into worktree-agent-adcfc27e0ceac8df4
|
2026-09-25 12:55:56 +07:00 |
|
|
|
9ba99d7d5b
|
A dev build puts every closure handed to a named call on the collector's heap, since a redefinition can make the callee keep it
|
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 |
|
|
|
59a0fc80de
|
Only a string the checker marks as a literal reaches C uncopied, a slice of dyn is refused at its clone, and the context allocator holds an incarnation so a restored context whose arena was destroyed traps
|
2026-09-25 12:55:18 +07:00 |
|