2026-05-28

요약 (AI 작성)

오늘 ohah는 주요 라이브러리 프로젝트에서 계속해서 기능 개선과 아키텍처 리팩터링을 진행했습니다. ohah/zntc에서는 RFC #3940(라이프사이클 스코프 재설계)를 중심으로 번들러 아키텍처와 프로파일링 시스템을 대폭 개선했습니다. Transformer ownership transfer를 통해 복사 연산 회피와 peak RSS -33% 목표를 달성하기 위한 여러 Sub-PR(PR-13, L.0aL.5c)들이 머지되었으며, rename_table 단일 출처 전환, SymbolID 타입 도입, ProfileSnapshot API 등이 구현되었습니다. 또한 개발 서버 HMR 개선(SSE listener, phase별 분석)과 incremental build 프로파일링, 메모리 계측 등 성능 개선 작업도 함께 이루어졌습니다.

ohah/suji에서는 Electron 마이그레이션 관련 문서화와 플러그인 시스템 개선에 집중했습니다. libnode 바인딩, rich notification actions, mobile HTTPS CA bundle injection, Lua 백엔드 런타임 추가 등 다양한 플러그인과 C ABI 노출 작업이 이루어졌으며, shared state 관리 완료와 create-suji 툴체인 행렬 추가로 SDK 출시 준비를 강화했습니다. 마지막으로 ohah/ohah.github.io에서는 크론(CRON) 작업을 통해 MDX 파일 맞춤법 교정 검증이 수행되었습니다.

총 35개 커밋과 23개 PR이 머지되었으며, 특히 zntc 프로젝트는 라이프사이클 재설계를 위한 중장기 이커스텀과 개발 서버 성능 개선이 큰 축이었습니다. PR #3940(emit incremental CLOSED)과 #3938~3937(graph persistence CLOSED) 등 차기 레버 후보를 위한 문서화 작업도 이어졌습니다.

커밋

ohah/ohah.github.io

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

repo#상태제목
ohah/zntc#3971mergedfix(build): lib/exe 테스트 바이너리 직렬 실행으로 CI flaky 제거
ohah/zntc#3970mergedperf(mangler): 식별자 slot 할당을 esbuild 식 scope-nesting(O(N))으로 교체
ohah/zntc#3969mergedfix(bundler): multi-pass capture stale-idx 근본 수정 (RFC #3940 L.5c review)
ohah/zntc#3968mergedrefactor(bundler): Symbol.canonical_name field 제거 — rename_table 단일 출처 (RFC #3940 Sub-PR-L.5c)
ohah/zntc#3967mergedfeat(bundler): syntheticName rt 필수화 (canonical 이중경로 제거) + single-file dynamic import rt (RFC #3940 Sub-PR-L.5b)
ohah/zntc#3965mergedfeat(bundler): carry-over 를 rename_table 기반 재설계 — syncRenameTableFromCanonical 폐기 (RFC #3940 Sub-PR-L.5a)
ohah/zntc#3964mergedtest: make test262 suite deterministic
ohah/zntc#3963mergedfeat(bundler): esm_wrap helper layer canonical read 를 rename_table 로 (RFC #3940 Sub-PR-L.4c-2a-ii)
ohah/zntc#3962mergedfeat(bundler): syntheticName canonical read 를 rename_table 로 — non-esm_wrap (RFC #3940 Sub-PR-L.4c-2a-i)
ohah/zntc#3961mergedfeat(bundler): computeMangling dedup key 를 rename_table lookup 으로 전환 (RFC #3940 Sub-PR-L.4c-1)
ohah/zntc#3960mergedfeat(bundler): emitter canonical read 를 rename_table lookup 으로 전환 (RFC #3940 Sub-PR-L.4b)
ohah/zntc#3959mergedfeat(bundler): transform_prepass carry-over rename_table 동기화 (RFC #3940 Sub-PR-L.4a)
ohah/zntc#3958mergeddocs(rfc): RFC #3940 다음 레버 후보를 추적 이슈 #3957 로 링크
ohah/zntc#3956mergedfeat(bundler): RenameTable 병행 작성 (RFC #3940 Sub-PR-L.3)
ohah/zntc#3955mergedperf(transpile): phase 메모리 계측 + RFC 분포 분석 (RFC #3940 PR-3)
ohah/zntc#3954mergedfeat(bundler): SymbolID 타입 정의 (RFC #3940 Sub-PR-L.2)
ohah/zntc#3953mergeddocs(rfc): Sub-PR-L.1 cross-build memory ownership audit (RFC #3940 Phase 1)
ohah/zntc#3952mergedfeat(transpile): cloneForTransformer 회피 — initFromOwnedAst 사용 (RFC #3940 PR-2)
ohah/zntc#3951mergedchore(profile): @setEvalBranchQuota num_categories 기반 derived 표현
ohah/zntc#3950mergedfix(bench): devserver-hmr WS filter + warmup + SSE teardown 정리
ohah/zntc#3949mergedfix(profile-harness): dev_server watchLoop break + incremental fatal reset
ohah/zntc#3948mergedfeat(transformer): Transformer.initFromOwnedAst API 추가 (RFC #3940 PR-1)
ohah/zntc#3947mergedfeat(napi): WatchHandle phaseDurations 에 link sub-phase 추가 (RFC #3940 Sub-PR-L.0e)
ohah/zntc#3946mergeddocs(rfc): transformer ownership transfer — clone 회피 (peak RSS -33% 목표)
ohah/zntc#3945mergedbench(devserver-hmr): SSE listener + iteration 별 phase breakdown (RFC #3940 Sub-PR-L.0d)
ohah/zntc#3944mergedfeat(dev-server): SSE bundle_build_done 에 profile snapshot 포함 (RFC #3940 Sub-PR-L.0c)
ohah/zntc#3943mergedfeat(incremental): doBuild 가 ProfileSnapshot 캡처 (RFC #3940 Sub-PR-L.0b)
ohah/zntc#3942mergedfeat(profile): ProfileSnapshot API + RFC_RELEASE_PROFILING_HARNESS (RFC #3940 Sub-PR-L.0a)
ohah/zntc#3941mergedfeat(transpile): arena 분리 (parser_arena + transformer_arena, Step 1/2)
ohah/zntc#3940mergeddocs(rfc): lifecycle scope redesign — esbuild parity 의 architectural path (mid-term)
ohah/zntc#3939mergeddocs(rfc): emit incremental CLOSED — 모든 Sub-PR-C PoC NO-GO
ohah/zntc#3938mergedfeat(bundler): ChunkEmitCache API skeleton (RFC_EMIT_INCREMENTAL Sub-PR-C.1)
ohah/zntc#3937mergeddocs(rfc): graph persistence CLOSED (PoC NO-GO) + emit incremental RFC