2026-05-20

요약 (AI 작성)

ohah/zntc에서 주력으로 다중 포맷 빌드 기능 개발과 성능 프로파일링 인프라를 확장했습니다. Rollup 스타일의 zntc(input).write(output).close() API를 추가하고, OutputConfig + BundleOptions.output[]을 통해 여러 출력 포맷을 한 번에 지원하는 기능을 구현했습니다. 이어 모듈 페더레이션과 다중 포맷의 조합을 거부하도록 막는 로직과 CSS 공유 자산 정책을 문서화했습니다. 동시에 인크리멘트 빌드 성능 측정을 위한 프로파일링 시스템(M0-M8)을 구축하고, RequestedExports를 HashMap에서 플랫 배열로 변경하여 그래프 성능을 개선했습니다. ohah/ohah.github.io에서는 맞춤법 검사용 크론 작업과 개발 로그 관리를 진행했습니다.

커밋

ohah/ohah.github.io

ohah/zntc

PR (해당일 생성/머지)

repo#상태제목
ohah/zntc#3601openfeat(graph): ensureCapacity(8) for Module.dependencies/importers (Z3)
ohah/zntc#3600mergedchore(profile): record_dep + add_module internal decomposition (M8)
ohah/zntc#3599mergedfeat(graph): RequestedExports.names HashMap → flat array (Z2)
ohah/zntc#3598mergedchore(profile): re_export entry 3-way decomposition (M7)
ohah/zntc#3597mergedfeat(graph): stack buffer for requested_names in re_export entry (Z1)
ohah/zntc#3596mergedchore(profile): re_export caller side entry/outer decomposition (M6)
ohah/zntc#3595mergedchore(profile): requestNamed/All internals 4-way decomposition (M5)
ohah/zntc#3594mergedfeat(graph): migrate request_exports callers to index lookup (Y2)
ohah/zntc#3593mergedfeat(graph): export_index_by_name precompute (dormant Y1)
ohah/zntc#3592mergedchore(profile): split requestDependencyExports into 3 branches (M4)
ohah/zntc#3591mergedchore(profile): decompose replay into 4 sub-steps (M3)
ohah/zntc#3590mergedchore(bench): sub-phase µs output for incremental bench (M2)
ohah/zntc#3589mergedchore(profile): incremental rebuild sub-phase categories (M1)
ohah/zntc#3588mergedchore(bench): production-realistic incremental rebuild measurement (M0)
ohah/zntc#3587mergeddocs(roadmap): RN CLI/MCP 스코프를 빌드+실행+디버깅으로 확장
ohah/zntc#3586mergedchore(bench): incremental rebuild measurement infra (ROI investigation)
ohah/zntc#3585mergedfeat(core): esbuild-style build({output:[]}) sugar
ohah/zntc#3584mergedfeat(emit): document multi-format shared-asset policy + CSS test gate
ohah/zntc#3583mergedfix(graph): remap SymbolRef.module in renumber (cross-module resolution hotfix)
ohah/zntc#3582mergedfeat(bundler): reject Module Federation + multi-format combination
ohah/zntc#3581mergedtest(integration): rollup-style multi-format API smoke
ohah/zntc#3579mergedfeat(core): rollup-style zntc(input).write(output).close() API
ohah/zntc#3578mergedtest(bundler): multi-format equivalence + order invariance + memory safety gates
ohah/zntc#3577mergedfeat(bundler): emit loop for multi-format (single path only)
ohah/zntc#3576mergedfeat(bundler): OutputConfig + BundleOptions.output[] (infrastructure only)
ohah/zntc#3575mergedfeat(linker): setEmitFormat + resetEmitTransients per-emit entry points
ohah/zntc#3574mergedrefactor(linker): thread Format through metadata builders (no behavior change)
ohah/zntc#3573mergedtest(infra): determinism gate code-splitting fixture — outdir 모드 helper 확장
ohah/zntc#3571mergedfix(linker): stable-order fatal diagnostics flush
ohah/zntc#3570mergedfix(emitter): sort emit-path hashmap iterators (esm-wrap star + chunk exports)
ohah/zntc#3569mergedfix(bundler): path-stable bundleOrderLessThan for exec_index ties
ohah/zntc#3568mergedfix(linker): path-stable NameOwner sort in name collision resolution
ohah/zntc#3567mergedfeat(mangler): path-stable candidate tie-breaker for cross-module frequency sort
ohah/zntc#3566mergedfix(graph): deterministic module index assignment via path-stable renumber
ohah/zntc#3565mergedtest(infra): byte-identical determinism gate (N=10) — 5 fixture + helpers + CI job