|
|
680b8e7e59
|
A refusal inside a generic copy names each call that asked for it, a refused generic body is reported once, and a type variable prints with its $
|
2026-09-25 15:13:12 +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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
0358f6637c
|
Merge branch 'master' into worktree-agent-ad097f67134ba0552
|
2026-09-25 13:15:36 +07:00 |
|
|
|
1998f57ca8
|
Merge branch 'master' into worktree-agent-ac49c2c6835655472
|
2026-09-25 13:14:44 +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 |
|
|
|
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 |
|
|
|
e75a66e463
|
The parent-link entry is followed by a blank line like its neighbours
|
2026-09-25 12:50:25 +07:00 |
|
|
|
2e586ef45f
|
The condition and restart entries this branch closes are off the list
|
2026-09-25 12:50:16 +07:00 |
|
|
|
cc95006024
|
Merge branch 'master' into worktree-agent-ac750a5e83cab251b
|
2026-09-25 12:49:38 +07:00 |
|
|
|
37e577d5e1
|
(Ptr const T) is documented beside [const T], and the TODO entries for it are closed
|
2026-09-25 12:46:07 +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 |
|
|
|
ce66bb7f3b
|
Merge branch 'master' into worktree-agent-ad097f67134ba0552
|
2026-09-25 12:43:04 +07:00 |
|
|
|
d3ac1ab4dc
|
Type limits are spelled min-value and max-value, and quick formatting is to use a per-frame temporary allocator
|
2026-09-25 12:20:12 +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 |
|
|
|
c6cb018b9f
|
Only a closure that outlives its frame takes a collector environment, and the collector reads a Vec's elements only through a block it knows is live
|
2026-09-25 12:12:25 +07:00 |
|
|
|
bf0a939093
|
A dyn negation of a non-number is refused by name, and a prelude function shadowed in a live session is a recorded gap
|
2026-09-25 12:07:32 +07:00 |
|
|
|
c116237621
|
An Allocator value is its record and the incarnation it was made for, so one kept past its arena-destroy traps at every use even after arena-new reuses the record
|
2026-09-25 12:05:44 +07:00 |
|
|
|
caf39c4346
|
A read-only pointer is to sit beside the read-only slice
|
2026-09-25 12:04:08 +07:00 |
|
|
|
6e8cc52bc7
|
Merge branch 'master' into worktree-agent-ad097f67134ba0552
|
2026-09-25 12:02:48 +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 |
|
|
|
6c8611cece
|
Merge master
|
2026-09-25 11:53:00 +07:00 |
|
|
|
3892f1ed34
|
Merge master
|
2026-09-25 11:50:29 +07:00 |
|
|
|
7cf57eb8ba
|
A read-only slice refuses a dyn view without promising one later, and taking a read-only element's address is recorded as an open decision
|
2026-09-25 11:49:17 +07:00 |
|
|
|
c671bba490
|
(the T e) gives any expression its type, and an array literal nothing names is typed when its elements agree and a dyn vector when they mix
|
2026-09-25 11:47:28 +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 |
|
|
|
c9eb425ed1
|
A number i64->bytes or f64->bytes renders is copied into the context allocator and outlives the frame that made it
|
2026-09-25 11:47:01 +07:00 |
|
|
|
2ff1da88da
|
A slice can be read-only: bytes-view answers a [const u8], and a store through one is refused at compile time
|
2026-09-25 11:43:41 +07:00 |
|
|
|
a2eeb65f50
|
Program output reaches the editor as it is printed, and every Flan buffer keeps its keys under Evil
|
2026-09-25 11:43:21 +07:00 |
|
|
|
d2867a4267
|
not= stays refused in favour of !=
|
2026-09-25 11:41:58 +07:00 |
|