diff --git a/TODO.org b/TODO.org index a2f71138..cce2e0a9 100644 --- a/TODO.org +++ b/TODO.org @@ -1084,11 +1084,16 @@ An unknown call whose near miss is a value — =(context-allocator)= against =context/allocator=, or a global — says the name is a value written without parentheses, and names no call at all when the call had arguments. -** NEXT (max-of T) and (min-of T) +** NEXT (max-value T) and (min-value T) Decided 2026-09-25: the type-limit constants as a form taking a type, Odin's max(T), valid at any numeric type or a numeric?-bounded variable. For a float, min-of is the most negative finite value. +** NEXT (Ptr const T), the pointer beside [const T] +Decided 2026-09-25: addr through a read-only slice gives a (Ptr const T), which +nothing writes through; (Ptr T) widens to it and never back; a C parameter +declared const T* takes one. Closes the addr hole in [const T]. + * Backends ** DONE The x86 backend tracks LLVM at -O0 @@ -1266,6 +1271,13 @@ lowering buffer annotates all four sections, the two =llc= ones from a =--debug= copy of the IR. Rules out writing a disassembler, and reading the source off disk at disassembly time. +** NEXT A temporary allocator, wiped each frame +Decided 2026-09-25: Odin's context.temp_allocator. i64->bytes, f64->bytes and +other quick formatting allocate from it, so a number drawn every frame no longer +leaks from the default allocator. A dev build wipes it at each frame boundary; +otherwise the program calls (free-temp) once per frame. Text kept past the frame +is cloned. + * Runtime ** DONE An index out of range is a condition