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
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
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
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
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
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
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
35f455acb3
The's refusal of a dyn says what the boundary does at that type, elements that cannot become a dyn are refused against each other, two literal arms meet at the wider type, and the renamed prelude function and a second startup warning stay out of sight
2026-09-25 12:49:02 +07:00
acec25f8a1
Merge master
2026-09-25 12:43:50 +07:00
d8945ae4ae
The address of read-only storage is a (Ptr const T), which nothing is written through and which a C const T * parameter takes
2026-09-25 12:43:04 +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
c0b4b22357
Growing, shrinking or freeing a container reached through a [const T] is refused, and a function that only reads a slice stands where one that may write it is wanted
2026-09-25 12:10:47 +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
6e8cc52bc7
Merge branch 'master' into worktree-agent-ad097f67134ba0552
2026-09-25 12:02:48 +07:00
5c0698d749
(max-of T) and (min-of T) are a numeric type's limits, at a concrete type or a type variable the bound admits, and given a slice they are still the prelude's reductions
2026-09-25 12:00:42 +07:00
2ea47f91eb
A program's function named as a prelude function takes the name over for its own file, with a warning, and the prelude's own calls keep the prelude's
2026-09-25 11:51:58 +07:00
3892f1ed34
Merge master
2026-09-25 11:50:29 +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
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
cb83014715
(clone xs) copies any slice's elements into a block from the context allocator or a named one, through the lowering (bytes s) uses
2026-09-25 11:40:42 +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
3cb6cebdbe
(- x) negates a typed number, a type variable and a dyn, and a float's negation of zero is -0.0
2026-09-25 11:37:56 +07:00
c6f0dd5450
A dev build fills a Vec's old buffer with 0xDEADBEEF when a push moves it, so a stale slice reads a value nobody wrote
2026-09-25 11:36:59 +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
315125c677
A literal arm of an if, a cond or a match takes its type from the arms that are not literals
2026-09-25 11:32:54 +07:00
5062052425
Raylib's strings, models, file lists and matrix stack are bound, and a dev build can name what is still loaded at exit
2026-09-25 11:28:02 +07:00
14bac84f53
!= over floats is unordered, so a NaN is unequal to itself on both backends as it already was on the dyn side
2026-09-25 11:27:49 +07:00
05d86b243f
A library resource is known by its identifying field, a Get or a consuming Load is counted as raylib means it, bare pointers are not resources, the report waits for FLAN_DEV_LEAKS, and a release build emits the code it did before the tracker
2026-09-25 11:27:41 +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
0b9ae9318e
flan build and flan run of a file with no main say so and show one, rather than failing at the link
2026-09-25 11:26:13 +07:00
97a2795cb2
A module that makes a closure stays mapped, and a closure held beside a collecting operand is rooted
2026-09-25 11:24:34 +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
494c57d764
Merge branch 'master' into worktree-agent-ae2997a1e90aa9e02
2026-09-25 11:18:12 +07:00
840b3b215e
A Map's churn test fails a table that doubles instead of sweeping, and nothing recalled is cited as read
2026-09-25 11:18:12 +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
389e93ff09
A capturing fn's environment belongs to the collector, so a closure may outlive the frame that made it
2026-09-25 11:13:57 +07:00
d03b02b347
Merge master
2026-09-25 11:12:30 +07:00
8bebff61eb
Merge branch 'master' into worktree-agent-a8f88805fa4af49cf
2026-09-25 11:01:36 +07:00
cbfac9f474
A Map is a Swiss table, one control byte a slot with key and value side by side
...
Removal marks a deleted slot unless no probe can have passed it, and a rebuild at the same capacity sweeps them. The header, the entry points and the iteration contract are unchanged. A Map has no bounds check, so the entry asking to convert one is closed with nothing to convert.
2026-09-25 11:00:22 +07:00