TODO.org records the view decisions: str read-only, aggregates written through their own view, no int into a float element, and no check in a release build.
This commit is contained in:
parent
7953376e4e
commit
8291e62d7a
20
TODO.org
20
TODO.org
@ -20,10 +20,12 @@ Dyn text stays immutable, with chars and text converting to and from a dyn
|
||||
vector of characters; length and indexing count characters on dyn text and bytes on
|
||||
str. Waits on the dyn-unless-annotated design.
|
||||
|
||||
** NEXT Any typed container crosses into dyn as a view
|
||||
Decided 2026-09-25: every element type (all numbers, chars, structs, nested arrays)
|
||||
and any storage; a dev build checks a view against its frame or allocation and traps
|
||||
when stale, a release build does not. Waits on the dyn-unless-annotated design.
|
||||
** DONE Any typed container crosses into dyn as a view
|
||||
CLOSED: [2026-09-26]
|
||||
A str element reads as a copy and is never written, an aggregate element is written
|
||||
through its own view, and an int is refused by a float element. A view of storage its
|
||||
own dyn global's initialiser built is refused. Rules out copying at the crossing, and
|
||||
any check in a release build.
|
||||
|
||||
** NEXT Dyn unless annotated
|
||||
Decided 2026-09-25: in both syntaxes an unannotated value is dyn — [6 2 4 9] is a dyn
|
||||
@ -943,13 +945,11 @@ Already fixed by 3672da2, which blames the arm that is not a compiler temp; the
|
||||
caret is on the last operand and =test/test_flan.ml= asserts its column. Rules
|
||||
out relabelling the else arm, a bool sentinel, and inverting the condition.
|
||||
|
||||
** DONE A typed container crosses into dyn as a view, and only from permanent storage
|
||||
** DONE A typed container crosses into dyn as a view
|
||||
CLOSED: [2026-09-20]
|
||||
The descriptor is pointer, length and element type — a slice plus the piece a
|
||||
slice is missing. A =Vec= view holds the address of the =Vec='s own header and
|
||||
reads pointer and length live, so a reallocating push cannot go stale. Elements
|
||||
are =i64=, =f64= and =bool= only. Rules out a heap-held header and anything behind
|
||||
a =(Ptr T)=.
|
||||
A =Vec= view holds the address of the =Vec='s own header and reads pointer and
|
||||
length live, so a reallocating push cannot go stale. Rules out snapshotting a
|
||||
=Vec='s pointer at the crossing.
|
||||
|
||||
** DONE A view of a Vec goes stale at the push, and the warning is at the push
|
||||
CLOSED: [2026-09-21]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user