wip(E4): partial source-pin + non-transitive flip [stdlib E4 attempt-1 WIP checkpoint]

Incomplete WIP from a worker killed at the 55-min wall (large blast radius:
core source-pin + ~8 example migrations + ~10 library module migrations).
Committed so the resumed session continues on a clean tree. May not build.
This commit is contained in:
agra
2026-06-08 11:12:08 +03:00
parent 4d539eeacd
commit 33a6f5c650
28 changed files with 202 additions and 58 deletions

View File

@@ -21,6 +21,7 @@
// the Metal backend takes — caller branches on OS).
#import "modules/std.sx";
#import "modules/allocators.sx";
#import "modules/compiler.sx";
#import "modules/opengl.sx";
#import "modules/gpu/types.sx";

View File

@@ -7,6 +7,7 @@
// non-iOS targets don't reach the Metal-touching code paths.
#import "modules/std.sx";
#import "modules/allocators.sx";
#import "modules/std/objc.sx";
#import "modules/compiler.sx";
#import "modules/gpu/types.sx";

View File

@@ -58,6 +58,9 @@
// =====================================================================
#import "modules/std.sx";
// `Array`/`Object` methods take an explicit `alloc: Allocator`; bare-import
// visibility is non-transitive, so the module that names the type imports it.
#import "modules/allocators.sx";
#import "modules/fs.sx";
// The writer's failure contract: a too-small caller buffer (Overflow) or

View File

@@ -22,6 +22,12 @@
// caller returns. If you need that, ship a `Block_copy`-backed sibling
// API and use it instead.
// `build_block_convert` (below) is a comptime metaprogram that emits sx source
// with `concat` / `int_to_string`; those live in std.sx. A metaprogram body
// resolves its bare names in its OWN module (issue 0106), so this module must
// import std.sx itself rather than relying on the call site's visibility.
#import "modules/std.sx";
// Standard 32-byte block header plus two trailing slots for the sx closure
// it wraps. Total = 48 bytes.
Block :: struct {

View File

@@ -1,4 +1,5 @@
#import "modules/std.sx";
#import "modules/allocators.sx";
#import "modules/math";
#import "modules/ui/types.sx";
#import "modules/ui/render.sx";

View File

@@ -1,4 +1,5 @@
#import "modules/std.sx";
#import "modules/allocators.sx";
#import "modules/opengl.sx";
#import "modules/gpu/types.sx";
#import "modules/gpu/api.sx";

View File

@@ -1,5 +1,6 @@
#import "modules/std.sx";
#import "modules/allocators.sx";
#import "modules/ui/glyph_cache.sx"; // `font: GlyphCache` — name it, import it (non-transitive).
#import "modules/opengl.sx";
#import "modules/gpu/api.sx";
#import "modules/ui/types.sx";

View File

@@ -1,4 +1,5 @@
#import "modules/std.sx";
#import "modules/allocators.sx";
// --- State(T) — a handle to persistent storage ---