std: full namespace tail — fs/process/socket/json/cli/hash/test

With 0115's own-wins globals landed, the remaining tail modules join
std.sx: every '#import "modules/std.sx"' now carries mem/xml/log/fs/
process/socket/json/cli/hash/test as namespaces (trace stays a direct
import).

Enablers in the same change:
- emit: dead-global elimination — a plain-data global no instruction
  references is not emitted, so tail modules' data (hash's 64-entry K
  table, OS/ARCH/POINTER_SIZE) stays out of binaries that don't use it.
  Comptime-backed globals keep their #run evaluation. 37 pinned IR
  snapshots regenerated (dead globals dropped + string renumbering from
  the larger module).
- 1055/1056 stop pinning the global error-tag ordinal (it shifts with
  program composition); they assert nonzero + tag identity + name.
- specs/readme/CLAUDE.md tail docs updated.
This commit is contained in:
agra
2026-06-11 10:49:39 +03:00
parent 0b13498e25
commit 330c3aeef7
47 changed files with 129030 additions and 28600 deletions

View File

@@ -495,7 +495,10 @@ List :: struct ($T: Type) {
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:
// #import "modules/std/fs.sx"; etc.
fs :: #import "modules/std/fs.sx";
process :: #import "modules/std/process.sx";
socket :: #import "modules/std/socket.sx";
json :: #import "modules/std/json.sx";
cli :: #import "modules/std/cli.sx";
hash :: #import "modules/std/hash.sx";
test :: #import "modules/std/test.sx";