std: restructure step 3 — ffi/ moves, build.sx, math dir spelling, fixtures

- objc.sx, objc_block.sx (from std/) + sdl3/opengl/raylib/stb/stb_truetype/
  wasm vendor bindings (from modules/ root) -> modules/ffi/
- std/uikit.sx deleted: platform/uikit.sx already declares UIApplicationMain
  and imports objc; '#framework "UIKit"' cannot live in a file imported on
  macOS targets (unconditional link directive, UIKit is iOS-only), so the
  three iOS-only examples carry the 3-line glue inline. 1607/1608/1616 also
  un-rotted (dead ns_string -> 'xx "..."' Into conversions, callconv(.c)
  msgSend fn-ptrs) — all three build for ios-sim/ios again.
- math/math.sx -> math/scalar.sx; one spelling '#import "modules/math"'
  everywhere (4 pinned IR snapshots regenerated: dir import adds Vec2/Mat4
  to the type tables).
- compiler.sx -> build.sx (imports, CLAUDE.md bundling table, specs.md).
- testpkg/ + test_c.sx -> tests/fixtures/ (resolve CWD-relative from repo
  root, same as vendors/).
- library-internal imports use full modules/... paths (std.sx tail,
  platform/bundle.sx, fixtures).
This commit is contained in:
agra
2026-06-11 08:37:22 +03:00
parent 59f0aa7716
commit 12bf61a9fc
142 changed files with 5026 additions and 4161 deletions

View File

@@ -22,8 +22,8 @@
#import "modules/std.sx";
#import "modules/std/mem.sx";
#import "modules/compiler.sx";
#import "modules/opengl.sx";
#import "modules/build.sx";
#import "modules/ffi/opengl.sx";
#import "modules/gpu/types.sx";
#import "modules/gpu/api.sx";

View File

@@ -8,8 +8,8 @@
#import "modules/std.sx";
#import "modules/std/mem.sx";
#import "modules/std/objc.sx";
#import "modules/compiler.sx";
#import "modules/ffi/objc.sx";
#import "modules/build.sx";
#import "modules/gpu/types.sx";
#import "modules/gpu/api.sx";

View File

@@ -30,7 +30,7 @@
// without changing the lifecycle.
#import "modules/std.sx";
#import "modules/compiler.sx";
#import "modules/build.sx";
#import "modules/ui/types.sx";
#import "modules/ui/events.sx";
#import "modules/platform/types.sx";

View File

@@ -1,7 +1,7 @@
#import "../std.sx";
#import "../compiler.sx";
#import "../std/fs.sx";
#import "../std/process.sx";
#import "modules/std.sx";
#import "modules/build.sx";
#import "modules/std/fs.sx";
#import "modules/std/process.sx";
// =====================================================================
// platform.bundle — sx-side Apple `.app` bundler.

View File

@@ -1,9 +1,9 @@
#import "modules/std.sx";
#import "modules/std/mem.sx";
#import "modules/compiler.sx";
#import "modules/opengl.sx";
#import "modules/sdl3.sx";
#import "modules/wasm.sx";
#import "modules/build.sx";
#import "modules/ffi/opengl.sx";
#import "modules/ffi/sdl3.sx";
#import "modules/ffi/wasm.sx";
#import "modules/ui/types.sx";
#import "modules/ui/events.sx";
#import "modules/platform/types.sx";

View File

@@ -7,9 +7,9 @@
// reach the unresolved Obj-C symbols.
#import "modules/std.sx";
#import "modules/std/objc.sx";
#import "modules/compiler.sx";
#import "modules/opengl.sx";
#import "modules/ffi/objc.sx";
#import "modules/build.sx";
#import "modules/ffi/opengl.sx";
#import "modules/ui/types.sx";
#import "modules/ui/events.sx";
#import "modules/platform/types.sx";

View File

@@ -36,7 +36,7 @@ Source_Location :: struct {
}
string :: []u8 #builtin;
#import "std/mem.sx";
#import "modules/std/mem.sx";
// --- Allocator protocol (impls live in std/mem.sx) ---
@@ -492,9 +492,9 @@ List :: struct ($T: Type) {
}
// --- The stdlib namespace tail: flat-importing std.sx carries these ---
mem :: #import "std/mem.sx";
xml :: #import "std/xml.sx";
log :: #import "std/log.sx";
mem :: #import "modules/std/mem.sx";
xml :: #import "modules/std/xml.sx";
log :: #import "modules/std/log.sx";
// fs/process/socket/json/cli/hash/test join the tail once the global
// last-wins maps are fully own-wins (their decls collide across programs
// when pulled into every closure) — import them directly meanwhile:

View File

@@ -30,7 +30,7 @@
// =====================================================================
#import "modules/std.sx";
#import "modules/compiler.sx";
#import "modules/build.sx";
proc :: #import "modules/std/process.sx";
libc :: #library "c";

View File

@@ -1,17 +0,0 @@
// UIKit framework bindings — iOS only.
//
// Consumers `#import "modules/std/uikit.sx";` and inherit the
// `#framework "UIKit"` link directive plus any C-API declarations exposed
// here. Obj-C class/method dispatch goes through `modules/std/objc.sx`
// which we re-import so users only need this one file.
#import "objc.sx";
#framework "UIKit";
// int UIApplicationMain(int argc, char *_Nullable argv[_Nonnull],
// NSString *_Nullable principalClassName,
// NSString *_Nullable delegateClassName);
//
// Blocks. Drives the iOS run loop. Normally never returns.
UIApplicationMain :: (argc: s32, argv: *void, principal_class: *void, delegate_class: *void) -> s32 #foreign;

View File

@@ -1,4 +0,0 @@
#import c {
#include "vendors/test_c/test.h";
#source "vendors/test_c/test.c";
};

View File

@@ -1,4 +0,0 @@
// This file lives in modules/testpkg/ and imports std relative to its directory.
#import "../std.sx";
cwd_greet :: () -> string { format("cwd-import-ok") }

View File

@@ -1 +0,0 @@
hello :: () -> string { "hello from testpkg" }

View File

@@ -1,2 +0,0 @@
add :: (a: s32, b: s32) -> s32 { a + b }
mul :: (a: s32, b: s32) -> s32 { a * b }

View File

@@ -1,5 +1,5 @@
#import "modules/std.sx";
#import "modules/sdl3.sx";
#import "modules/ffi/sdl3.sx";
#import "modules/ui/types.sx";
MouseButton :: enum {

View File

@@ -1,10 +1,10 @@
#import "modules/std.sx";
#import "modules/std/mem.sx";
#import "modules/opengl.sx";
#import "modules/ffi/opengl.sx";
#import "modules/gpu/types.sx";
#import "modules/gpu/api.sx";
#import "modules/stb_truetype.sx";
#import "modules/stb.sx";
#import "modules/ffi/stb_truetype.sx";
#import "modules/ffi/stb.sx";
#import "modules/ui/types.sx";
// Cached glyph data with UV coordinates into the atlas texture

View File

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

View File

@@ -1,6 +1,6 @@
#import "modules/std.sx";
#import "modules/compiler.sx";
#import "modules/opengl.sx";
#import "modules/build.sx";
#import "modules/ffi/opengl.sx";
#import "modules/math";
#import "modules/gpu/types.sx";
#import "modules/gpu/api.sx";