ReviewOS

home-lang/home

build: finish full native Home release compilation under bounded memory

#855
Open chris opened this 9 days ago ·
9 days ago

Full native Home ReleaseFast and ReleaseSmall compilation remains unfinished under the tested bounded build budgets on the 18 GiB arm64 macOS host. This blocks release-mode verification of the new native channel/event source ownership in #810 and the broader suite in #66.

The complete source is built through zig build home -Denable_jsc=true -Dstrip=true, with Zig 0.17.0-dev.2163+89ff10d56. The home target uses the complete compiler/runtime executable and its existing aliases. Native C++ bindings compile successfully: 22/22 steps, measured tree-footprint peak 719 MB. Each failed attempt below was stopped by the resource supervisor with exit 125; it is not a proven OS out-of-memory defect.

BuildCeiling MBObserved MBResult
ReleaseFast initial/default38403879stopped
ReleaseFast with cached bindings38403855stopped
ReleaseFast stripped38404186stopped
ReleaseFast stripped/default51205276stopped
ReleaseFast stripped/complete home81928215stopped
ReleaseSmall stripped/complete home81928391stopped
Debug stripped/complete home8192563528/28 steps pass
Debug rebased onto current main8192568728/28 steps pass

The first Debug executable passes all six unchanged Atomics/BroadcastChannel entries: 46 registered cases, zero failures/skips/TODOs, and one successful standalone Node process check. All captures and JUnit results validate. Six native worker/message-port lifecycle controls pass. Rebased execution is being verified separately. These are Debug results, not release-mode performance or whole-suite completion evidence.

A retained three-second Debug compiler sample shows ZigLLVMTargetMachineEmitToFile, LLVM machine-function passes and AArch64 instruction selection. No release-mode allocation/pass attribution is established yet. All failed logs, exact command metadata and source/fixture hashes are retained for publication with the source ownership checkpoint.

Remaining work:

  • Profile the live release compiler before resource termination and identify the allocating phase.
  • Fix the compiler/build/toolchain issue while preserving every runtime/compiler feature and original test workloads/deadlines.
  • Produce and verify the complete native release executable under a documented safe resource budget, with normal host-pressure and disk checks active.
  • Re-run the unchanged applicable native tests and retain complete terminal evidence, including unsuccessful attempts.

Related: #810, #66. Full Bun parity remains incomplete.

9 days ago

The ownership source and complete retained attempts are published on main: source db130b6f1, evidence manifest and archives.

The combined Debug build passes 28/28 steps at observed 5,687 MB. Its six original corpus entries validate with 46 registered passes and one standalone Node process check; six native worker controls pass. ReleaseFast and ReleaseSmall remain stopped at their recorded budgets. The Debug sample records LLVM AArch64 code generation, without release-mode pass/allocation attribution. All failed attempts and the exact Debug response-file arguments remain retained. This issue stays open for the full release-build diagnosis and acceptance criteria.

9 days ago

Pushed fb20db9ac (fix(build): validate shipped event package graphs (#855)) directly to main.

This fixes two standalone release paths that still used the removed addStaticLibrary constructor:

  • packages/events now wires its real threading/threading_futex dependency graph once, then uses that same module for the installed static library and tests.
  • packages/realtime now uses one module for the installed library and tests, exposes a compile-only check step, and injects std.Io for clocks and mutex blocking instead of relying on removed std.posix.clock_gettime / std.Thread.Mutex APIs.

Verification was deliberately run against the shipped module graphs rather than independent test roots:

  • native Debug library build + tests: Zig 0.17 and Zig 0.18
  • native ReleaseFast library build + tests: Zig 0.17 and Zig 0.18
  • x86_64-linux-gnu ReleaseFast compile-only library + tests: Zig 0.17 and Zig 0.18
  • all guarded runs stayed below 300 MB peak tree footprint

The tests initially exposed missing module wiring and dormant realtime stdlib failures, which are now part of the fixed paths rather than hidden by empty/independent build graphs.

9 days ago

Pushed a742b69f6 (fix(redis): migrate client to std.Io (#855)) directly to main.

This fixes another standalone package whose tests did not compile the exact module graph shipped by its static library. The Redis build now shares one module between the installed library, internal tests, and a public-import test, and zig build check compiles all three.

That exact graph exposed real Zig master breakage:

  • semantic migration: std.net -> injected std.Io plus std.Io.net hostname/IP connection, stream read/write/flush/close, and std.Io.Mutex;
  • API contract change: ArrayList.pop() is optional, so the non-empty pool branch now unwraps explicitly;
  • compiler semantic change: recursive inferred RESP error sets are rejected, so the parser now declares the precise recursive error set;
  • existing auth/select responses are now validated and freed, and failed initialization closes the partially opened stream.

Verified under the 3,840 MB guard, one process at a time:

  • Zig 0.17.0-dev.2163: Debug check/tests, ReleaseFast tests;
  • Zig 0.18.0-dev.146: Debug check/tests, ReleaseFast tests;
  • both versions: x86_64-linux-gnu ReleaseFast compile-only check of shipped library + tests.

All passed; peak guarded footprint was 505 MB.

9 days ago

Pushed 60c673b02 (fix(cache): inject std.Io into drivers (#855)) directly to main.

The cache package previously had no shipped library target, its test step ignored tests/cache_test.zig, and lazy inline tests did not materialize all public drivers. The package now installs a static library and uses the exact same cache module for that artifact, inline tests, and public-import tests; zig build check compiles all of them.

The exact graph exposed semantic Zig master migrations, all now ported without shims:

  • clock access, filesystem operations, TCP/DNS, stream I/O, close, and all three driver mutexes use one injected std.Io;
  • the inline Redis client now validates/frees AUTH and SELECT responses and closes a partial connection on failure;
  • attacker-controlled RESP bulk/array lengths use checked usize conversion instead of trapping casts;
  • cache-file key lengths are bounded before allocation, and all positional reads reject short files.

Final guarded matrix passed:

  • Zig 0.17.0-dev.2163 and 0.18.0-dev.146: Debug shipped-graph checks and ReleaseFast tests;
  • both versions: x86_64-linux-gnu ReleaseFast shipped-graph checks.

Peak guarded footprint: 563 MB.

9 days ago

Pushed e7cadfd7f (fix(mail): inject std.Io into memory transport (#855)) directly to main.

The standalone mail package now installs a static library and compiles/runs both inline and public-import tests against the exact same module. This exposed the removed std.Thread.Mutex and POSIX clock APIs; MemoryTransport now takes an injected std.Io and uses std.Io.Mutex plus std.Io.Clock.real.

Final guarded matrix passed on Zig 0.17.0-dev.2163 and 0.18.0-dev.146: Debug checks/tests, ReleaseFast tests, and x86_64-linux-gnu ReleaseFast shipped-graph checks. Peak guarded footprint was 545 MB.

9 days ago

Pushed 2d2abd417 (fix(ratelimit): inject std.Io into stores (#855)) directly to main.

The rate-limit package now installs a static library and compiles/runs inline plus public-import tests against the exact shipped module. TokenBucket, MemoryStore, and SlidingWindowStore all receive std.Io; both stores use std.Io.Mutex, and every timestamp comes from the injected real clock rather than POSIX globals.

Final guarded matrix passed on Zig 0.17.0-dev.2163 and 0.18.0-dev.146: Debug checks/tests, ReleaseFast tests, and x86_64-linux-gnu ReleaseFast shipped-graph checks. Peak guarded footprint was 531 MB.

9 days ago

Pushed 5e058526c (fix(logging): migrate handlers to std.Io (#855)) directly to main.

The logging package now installs a static library and compiles/runs inline plus public-import tests against the exact shipped module. Console, JSON, rotating-file, memory, logger-clock, and global-lock paths now consume explicit std.Io; file writers are created with owned local buffers and flushed before return, and file rotation/sync use the new std.Io APIs.

Final guarded matrix passed on Zig 0.17.0-dev.2163 and 0.18.0-dev.146: Debug checks/tests, ReleaseFast tests, and x86_64-linux-gnu ReleaseFast shipped-graph checks. Peak guarded footprint was 540 MB.

9 days ago

Pushed 26baac70d (fix(database): migrate network clients to std.Io (#855)) directly to main.

This migrates the database package's MySQL, placeholder PostgreSQL, wire-protocol PostgreSQL, and Redis clients from removed std.net/std.Thread.Mutex APIs to injected std.Io, std.Io.net, and std.Io.Mutex. Hostname resolution is preserved (IP fast path plus HostName.connect), socket closure now uses the owning Io, stream reads/writes use the new interfaces, and the RESP/PostgreSQL parsers retain protocol validation rather than dropping fallible checks. The same four files also migrate their allocator-explicit ArrayList calls and force declaration-level compilation in standalone tests.

Verification under the 3,840 MB guard, one process group at a time:

  • every declaration in all four clients: pass on Zig 0.17.0-dev.2163+89ff10d56 and 0.18.0-dev.146+35accc06e
  • database package tests: Debug and ReleaseFast pass on both compilers
  • x86_64-linux-gnu ReleaseFast package compile: pass on both compilers
  • peak observed guarded footprint: 1,080 MB; no unbounded scan was run

This is a semantic std.Io migration, not a token rename: callers must supply the execution context, mutex operations require it, and stream lifetime/read/write operations are context-bound.

9 days ago

Follow-up pushed to main: 6aac8dd77 (fix(database): align shipped and test build graphs (#855)).

The database package now installs a static library and its check step compiles that shipped artifact plus every separately importable module (database, migrations, MySQL, both PostgreSQL layers, Redis, ORM, and typed ORM). All modules share the same database root and SQLite/libc configuration, closing the exact test-vs-shipped blind spot described in this issue.

Making the hidden ORM modules part of the graph surfaced and fixed real Zig-master breakage: removed std.io.fixedBufferStream, allocator-less ArrayList calls, old @typeInfo(...).Struct.fields reflection, and stale calls into the current QueryBuilder API. Concrete tests now execute fixed/caller-owned writer output and typed schema generation.

Final guarded matrix (peak 1,129 MB, one process group at a time):

  • Debug full module graph: compile + run pass on Zig 0.17 and Zig 0.18
  • ReleaseFast full module graph: compile + run pass on both
  • x86_64-linux-gnu ReleaseFast full graph, including vendored SQLite/libc: compile pass on both
9 days ago

Pushed 59dea25b6 (fix(build): exercise shipped service package graphs (#855)) directly to main.

This closes another shipped-vs-test graph gap for three standalone packages:

  • validation, queue, and scheduler now install an actual static library and compile that shipped module as part of check.
  • Tests reuse the shipped module instead of constructing an independent root with different dependencies.
  • queue now declares libc on the shared module; the Linux ReleaseFast cross-check exposed the missing requirement that native tests had masked.
  • scheduler now wires its real threading/threading_futex dependency into the standalone graph and declares libc consistently.
  • While exercising the real queue graph, fixed two ownership bugs: hash-map keys no longer borrow a job-owned queue name, and workers no longer retain a slice into a temporary default-queue array.

Verified sequentially under the 3,840 MB guard on both Zig 0.17.0-dev.2163 and 0.18.0-dev.146:

  • Debug host tests for all three packages
  • ReleaseFast host tests for all three packages
  • x86_64-linux-gnu ReleaseFast check for all three packages

Peak guarded footprint was 1,083 MB.

9 days ago

Pushed 565c1fbfa (fix(build): exercise auth config and i18n artifacts (#855)) directly to main.

This four-file batch converts auth, config, and i18n from test-only standalone graphs into installed static libraries whose tests reuse the exact shipped module. Each package now has a check step covering both the library and test artifact.

Exercising the real i18n module exposed two previously hidden defects:

  • parameter substitution still used the removed allocator-owning ArrayList.init API;
  • substituted translations escaped without an owner and leaked.

Translator now uses explicit allocator operations, skips allocation when no replacement occurs, owns generated results until deinit, and has a leak-checked substitution regression.

Verified sequentially under the 3,840 MB guard on Zig 0.17.0-dev.2163 and 0.18.0-dev.146:

  • Debug host tests for all three packages;
  • ReleaseFast host tests for all three packages;
  • x86_64-linux-gnu ReleaseFast check for all three packages.

Peak guarded footprint was 1,203 MB. After this batch, 26 of the 43 standalone tested package graphs build a shipped artifact; 17 test-only graphs remain to audit.

9 days ago

Pushed 84ae6fd71 (fix(build): exercise low-level package artifacts (#855)) directly to main.

inline, intrinsics, and volatile now install static libraries and run tests against the exact same reusable modules. Their new check steps compile both shipped and test artifacts, including architecture-specific intrinsics code.

Verified sequentially under the 3,840 MB guard on Zig 0.17.0-dev.2163 and 0.18.0-dev.146:

  • Debug host tests for all three packages;
  • ReleaseFast host tests for all three packages;
  • x86_64-linux-gnu ReleaseFast check for all three packages.

All 18 stages passed; peak guarded footprint was 1,159 MB. The standalone package audit is now 29/43 tested package graphs with shipped artifacts, leaving 14 test-only graphs.

9 days ago

Pushed 634c94c31 (fix(build): exercise web service package artifacts (#855)) directly to main.

middleware, notifications, and routing now install static libraries and compile tests from the same shipped modules. Each package has a check step covering both artifacts.

The stronger notifications graph exposed and fixed two previously uncompiled defects:

  • timestamp acquisition used the removed std.posix.clock_gettime API and now uses std.Io.Clock.real;
  • the multipart SMS test used invalid Python-style string repetition and now constructs the exact 200-byte fixture with typed @splat.

Verified sequentially under the 3,840 MB guard on Zig 0.17.0-dev.2163 and 0.18.0-dev.146: Debug and ReleaseFast host tests plus x86_64-linux-gnu ReleaseFast check for all three packages. Peak guarded footprint was 1,110 MB.

The standalone audit is now 32/43 tested package graphs with shipped artifacts; 11 test-only graphs remain.

9 days ago

Pushed ad3503b2a (fix(build): exercise stateful package artifacts (#855)) directly to main.

session, storage, and templates now install static libraries and compile tests from the same shipped modules. Each standalone package has a check step covering both library and test artifacts.

Verified sequentially under the 3,840 MB guard on Zig 0.17.0-dev.2163 and 0.18.0-dev.146: Debug and ReleaseFast host tests plus x86_64-linux-gnu ReleaseFast check for all three packages. All 18 stages passed; peak guarded footprint was 1,168 MB.

The standalone audit is now 35/43 tested package graphs with shipped artifacts; eight test-only graphs remain.

9 days ago

Pushed ac5ba9a82 (fix(build): exercise core utility artifacts (#855)) directly to main after rebasing onto the concurrent inspector commits.

compression, io, and platform now install static libraries and compile their shipped modules as part of check. Compression retains its public API and module tests; I/O additionally verifies the real consumer module with its collections dependency rather than relying only on alternate test roots.

Verified sequentially under the 3,840 MB guard on Zig 0.17.0-dev.2163 and 0.18.0-dev.146: Debug/ReleaseFast host tests and x86_64-linux-gnu ReleaseFast check for all three packages. All 18 stages passed; peak guarded footprint was 1,138 MB.

The standalone audit is now 38/43 tested package graphs with shipped artifacts; five test-only graphs remain.

9 days ago

Pushed 4793b595b (fix(build): exercise network package artifacts (#855)) directly to main after rebasing onto the concurrent VM/filesystem work.

app, http-client, and websocket now install static libraries and compile tests from the exact shipped modules. Each package has a check step covering the library and test artifact.

Verified sequentially under the 3,840 MB guard on Zig 0.17.0-dev.2163 and 0.18.0-dev.146: pinned Debug tests, both Debug/ReleaseFast host matrices, and x86_64-linux-gnu ReleaseFast check for all three packages. All stages passed.

The standalone audit is now 41/43 tested package graphs with shipped artifacts. Only media and video remain; both have dependency-rich integration/conformance graphs and will be handled together rather than hidden behind a test-only module.

9 days ago

The final standalone shipped-graph audit reached packages/video and confirmed why a test-only graph was misleading.

After wiring the shipped video root and all three test artifacts into one build graph, pinned Zig immediately exposes 47 source errors across the library (old syntax, reserved identifiers, stale ArrayList patterns, shadowing, unused values, and malformed literals). The graph was not weakened to preserve a green test result.

This is not ready to land as one build-script commit: the shipped library itself does not compile, and the fixes span substantially more than the 3–5-file commit limit. It will be repaired in coherent source batches, with the shipping graph kept as the acceptance target. media remains the other final standalone graph.

9 days ago

Pushed 5bf57649a (fix(video): repair caption and GIF parsers (#855)) directly to origin/main.

This five-file batch:

  • migrates accessibility and CEA caption buffers to the allocator-explicit ArrayList API;
  • repairs CEA-608 control dispatch and preserves non-ASCII caption characters as UTF-8;
  • preserves CEA-708 text as UTF-8 and gives returned caption events an explicit deallocation path;
  • fixes two H.264 parser struct declarations;
  • replaces the GIF decoder's zero-filled placeholder with bounded LZW decompression, repairs literal-code width/reset handling, and fixes quantizer/frame ownership on allocator failures.

Verification (one guarded process at a time, 3,840 MB ceiling):

  • accessibility + CEA suite: 13/13 on pinned Zig 0.17 and Zig 0.18.0-dev.146;
  • GIF LZW roundtrip: 1/1 on both compilers;
  • H.264 analysis declaration compile: clean on both compilers;
  • the full pinned video graph previously dropped from 47/48 root errors to 41/42 after this batch, with no remaining diagnostic in these five files.

The standalone video graph is not green yet, so the build-graph/test-root edits remain uncommitted while the remaining source failures are handled in later 3–5-file batches.

9 days ago

Pushed the next five-file batch as d0adb9776 (fix(video): migrate audio processing to current Zig (#855)).

Changes cover FFT shadowing, STFT/spectrum/AAC allocation const-correctness, removal of the old array-repeat operator in favor of typed @splat, and @max in place of the removed std.math.max. The newly unblocked ducker test also now samples after its configured 5 ms attack window (240 frames at 48 kHz) instead of incorrectly expecting attenuation at frame 50.

Verification under the 3,840 MB process guard:

  • audio-processing tests: 5/5 on pinned Zig 0.17 and Zig 0.18.0-dev.146;
  • FFT and visualization focused compiles: clean on both compilers;
  • full standalone video graph: root diagnostics reduced from 41/42 to 33/34 on both compilers, with no remaining diagnostic in these five files.
9 days ago

Third five-file video batch pushed as 2ddb9ff8d (fix(video): migrate analysis and decoder arrays (#855)).

The batch replaces removed array-repeat expressions with typed @splat in scene/quality analysis and AC-3/DTS decoder state, completes allocator-explicit ArrayList migration in scene analysis, and fixes const/unused declarations exposed afterward. It also adds overflow-safe YUV420 frame-size validation to PSNR and SSIM; the old 16×16 fixtures had only 256 bytes and would panic while reading the required 384-byte Y+U+V frame.

Verification:

  • detection 5/5, quality 4/4, scenecut 3/3 under both pinned Zig 0.17 and Zig 0.18.0-dev.146;
  • full standalone video graph reduced from 33/34 to 28/29 diagnostics on both compilers;
  • no remaining diagnostic points into these five files.
9 days ago

Pushed 476a876b6 (fix(video): migrate Vorbis and frame codecs (#855)) directly to origin/main.

This five-file batch migrates Vorbis decoder state plus H.264/VP9 arrays from removed ** repetition to typed @splat, fixes allocation constness, removes a stale Vorbis discard, and corrects a non-mutated VP9 test parser.

Verification under the 3,840 MB guard:

  • standalone Vorbis parser/decoder/encoder files compile under pinned Zig 0.17 and Zig 0.18.0-dev.146;
  • complete package graph reports no remaining diagnostic in these five files on either compiler;
  • full video diagnostics reduced from 28/29 to 23/24.
9 days ago

Pushed 005147fc5 (fix(video): migrate metadata and streaming headers (#855)) directly to origin/main.

The five-file batch migrates LUT/HDR/ID3/RTP/timecode fixed arrays and allocator-explicit lists, introduces a shared RGB result type for LUT interpolation, fixes integer slice widths, and closes allocation-failure cleanup paths. It also repairs RTSP protocol behavior: valid uppercase wire methods now parse, serialization emits the required uppercase names, and unsupported versions are rejected.

Verification:

  • LUT 5/5, HDR 4/4, ID3 3/3, RTP/RTSP/SDP 3/3, timecode/LTC 6/6 under Zig 0.18.0-dev.146; corresponding pinned-Zig tests pass;
  • complete package diagnostics reduced from 23/24 to 18/19 on both compilers;
  • no remaining diagnostic points into these five files.
9 days ago

Pushed 1ec0f51c6 (fix(video): migrate broadcast and muxing paths (#855)) directly to origin/main.

This five-file batch migrates AFD/SCTE-35, MP4 muxing, output targets, and frame seeking to the current Zig APIs. It also fixes two real latent muxer defects exposed by focused tests: FastStartMp4Muxer.finalize() called a nonexistent buildMoov, and chunk offsets did not account correctly for standard versus extended mdat headers. SCTE-35 parse-error ownership is now balanced for commands, descriptors, components, UPIDs, and private bytes.

Verification (one guarded process at a time, 3,840 MB ceiling):

  • pinned Zig 0.17.0-dev.2163: focused video root, 23/23 tests passed; peak 182 MB
  • Zig 0.18.0-dev.146: focused video root, 23/23 tests passed; peak 208 MB
  • full packages/video compile graph under both toolchains no longer reports diagnostics in these five files

The full graph is not green yet; remaining diagnostics are isolated to subsequent source/test batches rather than hidden or weakened.

9 days ago

Pushed d7a389227 (fix(video): migrate bindings and timeline storage (#855)) directly to origin/main.

This four-file batch migrates Home video bindings, raw sources, VobSub control storage, and timeline serialization to allocator-explicit collections. It also removes the remaining shipped-library compile diagnostics in those paths and adds failure cleanup for partially parsed VobSub command sequences.

Verification under the 3,840 MB guard:

  • pinned Zig 0.17.0-dev.2163: shipped static video library compiles successfully; focused sources/VobSub/timeline root passes
  • Zig 0.18.0-dev.146: shipped static video library compiles successfully; the same focused root passes
  • full graph is now blocked only in test roots (16 unit-root diagnostics, 2 integration diagnostics, 1 conformance diagnostic), not in the shipped library

No tests or build paths were disabled.

9 days ago

Pushed 498551180 (fix(video): migrate robustness and filter tests (#855)) directly to origin/main.

Five-file batch: MP4 enum decoding now uses the checked optional conversion; enum reflection uses the current field_names ABI; robustness and stabilization collections use allocator-explicit storage; robustness frame-rate values now use the actual Rational.denom field rather than the stale .den spelling.

Verification under the 3,840 MB guard:

  • pinned Zig 0.17.0-dev.2163: focused batch 27/27 tests passed
  • Zig 0.18.0-dev.146: focused batch 27/27 tests passed
  • full unit-test root reduced from 16 diagnostics to 4 under both toolchains
  • shipped video library remains green under both toolchains

The remaining four unit-root diagnostics are isolated to HLS, RTMP, ASS, and VTT compatibility calls.

9 days ago

Pushed 4cdcd2fea (fix(video): migrate streaming time and trim APIs (#855)) directly to origin/main.

Five-file batch: HLS/ASS/VTT use the current trimStart API; RTMP client and server handshakes now accept std.Io and source wall-clock time through std.Io.Clock.real; PRNG usage is migrated to std.Random; bilinear scaling now maps destination edges to source edges and handles one-pixel destinations without division by zero.

Verification under the 3,840 MB guard:

  • full video unit suite: 318/318 passed on pinned Zig 0.17.0-dev.2163
  • full video unit suite: 318/318 passed on Zig 0.18.0-dev.146
  • focused RTMP suite: 4/4 passed on both toolchains, explicitly exercising client and server std.Io handshake paths
  • shipped video static library remains green on both toolchains

Only the integration and conformance test-driver migration remains before the complete package graph can run.

9 days ago

Pushed 4b1aeb1c6 (test(video): restore the complete package graph (#855)) directly to origin/main.

This restores the shipped video static-library artifact, adds a check step that compiles the shipped library plus unit/integration/conformance targets, updates the external test-framework wiring, and replaces stale tests that referenced nonexistent nested APIs with current public workflows and conformance assertions.

Verified under the pinned Zig (0.17.0-dev.2163+89ff10d56) with one guarded -j1 process:

  • zig build --build-file packages/video/build.zig check -j1 --summary all: 5/5 steps succeeded
  • zig build --build-file packages/video/build.zig test-all -j1 --summary all: 320/320 outer Zig tests passed
  • The two framework-driven outer tests execute 22 registered integration/conformance cases.
  • Peak guarded compile footprint: 443 MB.

The same graph is also green under Zig 0.18.0-dev.146+35accc06e (452 MB peak), so this package now tests the same root module and optimization selection used by the installed static library.

9 days ago

Pushed c67751f directly to origin/main (author/committer: glennmichael123). The bounded runner now reports the largest sampled process PID and physical footprint when it terminates a tree for its memory ceiling or critical host pressure. It reuses the existing footprint sample, without a new pressure-time probe or a higher memory limit. Verification: Perl syntax, footprint parser, 64 MB kernel-footprint/kill integration, process-snapshot/descendant cleanup, and stalled-probe/deadline tests all pass. This is diagnostic instrumentation only: it does not lower release compiler memory use or establish a passing native release build. #855 remains open; the next guarded release attempt should use this attribution to identify the allocating process/phase.

9 days ago

Fresh source-592bbe4 ReleaseFast stripped native build, pinned Zig 0.17.0-dev.2163, one guarded -j1 process with an unchanged 3,840 MB tree ceiling and 600 s deadline: native C++ binding compilation completed far enough to launch the final Zig build-exe for src/main.zig. The supervisor then stopped the run with exit 125 at sampled tree footprint 4,150 MB; its new per-PID attribution reports pid 13515 at 4,136.2 MB, host free/uncompressed 32%. The final emitted command is Zig build-exe using -Ofast and -fstrip, with the combined language CLI, home_test, TS frontend and JSC runtime graph. This identifies the large Zig executable compilation step, not an LLVM subpass or a proven OS OOM. No executable was produced or original native test credited. Exact local verbose log is /private/tmp/home-855-release.XXXXXX.log (160,222 bytes, SHA-256 e1e1c9409199b60fdb7071217bd5d4c50dbe69a49e7bd80cba0a5c91797cb777). The @args file SHA-256 is a1f5a0011b609f5302e1a06de1f7e58f1fa3da322acf5f9c6c95ec2dc6396c4a. Next work should sample/attribute allocation inside that build-exe phase before changing the build architecture; simply raising the ceiling or claiming a release pass would be unsound.

9 days ago

Evidence retention note: the final Zig @args bytes were preserved at /private/tmp/home-855-release.args with the same SHA-256 a1f5a0011b609f5302e1a06de1f7e58f1fa3da322acf5f9c6c95ec2dc6396c4a. The 160,222-byte verbose log remains at /private/tmp/home-855-release.XXXXXX.log. Only this attempt’s isolated derived Zig cache directories were removed after the hashes were checked; source, SDK inputs and other user files were untouched.

9 days ago

New bounded-build observation on current main (480af47), while preparing #886 inspector successor coverage: pantry/.bin/zig build debug -j1 -Denable_jsc=true --summary all under HOME_RUN_MAX_MB=3840 run_bounded 600 stopped with exit 125 when the measured tree footprint reached 4,339 MB (largest process 4,325.3 MB; host free-and-uncompressed level 30%). A broader default zig build -j1 -Denable_jsc=true -Doptimize=Debug first reached its 300-second time limit (exit 124); the subsequent targeted build made compiler progress but exceeded the unchanged memory guard. Neither run produced a new JSC-enabled executable or an inspector test result. Existing zig-out/bin/home and home-debug both report jsc-disabled for this route. I did not raise the 3,840 MB ceiling, weaken the build, or claim native parity. This extends #855 evidence to the current Debug target under the strict goal budget; the release-mode acceptance remains open.

Sign in to comment on this issue.