2026-05-12

요약 (AI 작성)

zntc는 지난 24시간 동안 성능 최적화와 버그 수정에 집중했습니다. 코드 생성기(codegen), 번들러, 해결자(resolver) 영역에서 여러 최적화를 적용했고, React Native 번들 생성과 JSX 프라그마 처리 관련 버그를 다수 수정했습니다. 특히 resolver 캐시를 16-way로 샤딩해 Mutex 경합을 줄이고, minify 과정에서 불필요한 중괄호와 공백을 제거해 번들 크기를 줄이는 성과를 거두었습니다. 동시에 런타임 폴리필 가이드를 추가하고 per-file JSX pragma 주석 문서화를 완료해 개발 경험을 개선했습니다. ohah.github.io에서는 크론(Cron) 작업으로 발생한 맞춤법 검증을 자동화하고 문서를 정정하는 CI 연계를 보강했습니다.

커밋

ohah/ohah.github.io

ohah/zntc

PR (해당일 생성/머지)

repo#상태제목
ohah/zntc#3139mergedchore(bundler): /simplify 후속 — lazy-barrel gate 정리 (no behavior change)
ohah/zntc#3138mergedfix(bundler): 순수 re-export barrel 만 import 를 lazy-defer (deferred record raw require 잔존 완전 해결)
ohah/zntc#3137mergedfix(bundler): export * source 는 namespace 전체를 요청 (deferred record raw require 잔존 수정)
ohah/zntc#3135mergedfix(bundler): helper-downleveled 모듈의 import 를 lazy-defer 하지 않기
ohah/zntc#3134mergedfix(bundler): use getEnvVarOwned for ZNTC_MODULE_STATS (Windows build)
ohah/zntc#3133mergedchore(bundler): ZNTC_MODULE_STATS — module classification histogram (PoC)
ohah/zntc#3132mergedperf(resolver): probe candidate extensions via dir cache, not full-path allocs
ohah/zntc#3131mergedperf(resolver): shard the resolve-result cache (16-way) to cut mutex contention
ohah/zntc#3130mergedperf(resolver): cache parsed package.json per directory
ohah/zntc#3128mergedfix(profile): WASM 빌드에서 64-bit atomic counter 컴파일 실패 수정
ohah/zntc#3127mergedchore(profile): break down resolve.resolver into pkg.json / exports
ohah/zntc#3126mergedfix(react-native): handle RN Hermes downlevel edge cases
ohah/zntc#3125mergedchore(profile): break down metadata phase into sub-phases
ohah/zntc#3124mergedperf(bundler): skip transformer pre-pass for plain node_modules modules
ohah/zntc#3123mergedfix(resolver): guard browser_overrides_cache with its own mutex
ohah/zntc#3122mergedrefactor(resolver): DirEntryCache — readdir outside the lock, pointer-stable entries
ohah/zntc#3121mergedfix(profile): make timer aggregation thread-safe
ohah/zntc#3120mergedperf(minify): single-use identifier-alias inline — const x = foo → use(foo) (#3112)
ohah/zntc#3119mergedtest(integration): manualChunks 스모크 타임아웃 회귀 — 루트 스크립트 위임 + per-test 10s
ohah/zntc#3118mergedperf(codegen): minify_syntax 시 if-return + 후속 return → return c?A:B (#3110)
ohah/zntc#3117mergedfix(react-native): preserve RuntimeKind in RN bundles
ohah/zntc#3116mergedperf(codegen): #3094 후속 — do-while 본문 / if(true)·if(false) DCE 분기 의 single-statement {} 제거 (#3111)
ohah/zntc#3115mergedperf(codegen): if-else-return ternary 의 else-if 체인 완전 변환 (#3109)
ohah/zntc#3114mergedperf(codegen): minify_syntax 시 if → 논리/삼항 식 변환 (#3107)
ohah/zntc#3113mergeddocs: 런타임 폴리필 (core-js) 전용 가이드 추가 + 사이드바 노출
ohah/zntc#3108mergedfix(bundler): minify 시 entry export 후행 newline 유지 — line-limit + sourcemap 회귀 (#3096 후속)
ohah/zntc#3106mergedperf(codegen): minify_syntax 시 if-else-return → return ternary (#3095)
ohah/zntc#3105mergedperf(codegen): minify 시 single-statement block 의 불필요한 {} 제거 (#3094)
ohah/zntc#3104mergedfix(semantic,bundler): synthetic 이름이 string_table 슬라이스로 dangling — RN 번들에 0xaa garbage
ohah/zntc#3103mergedperf(codegen): single-param arrow 괄호 제거 + bundle entry export brace 공백 (#3096)
ohah/zntc#3102mergedperf(codegen): minify_syntax 시 const → let 다운그레이드 (#3098)
ohah/zntc#3101mergedperf(codegen): minify 시 binary +/- 연산자 공백 제거 (#3097)
ohah/zntc#3099mergedfix(bundler,test): dev 빌드 에러 후 overlay 가 잘못 사라지는 버그 + watch-stress warmup false positive
ohah/zntc#3093mergeddocs: PUBLISH.md 절차 보강 (release.yml 흐름 + e2e + 롤백 + 체크리스트)
ohah/zntc#3092mergedfeat(transformer): @jsx / @jsxFrag pragma 가 automatic runtime 에서 무시될 때 warning
ohah/zntc#3091mergeddocs: per-file JSX pragma 주석 문서화 (@jsx / @jsxFrag / @jsxRuntime / @jsxImportSource)
ohah/zntc#3090mergedfeat(transformer): per-file JSX pragma 주석 지원 (@jsx / @jsxFrag / @jsxRuntime / @jsxImportSource)
ohah/zntc#3089mergedfix(transformer): classic JSX factory 가 named import 일 때 elision 되지 않게
ohah/zntc#3088mergedfeat(app): zntc build / dev 가 JSX runtime 설정을 app 빌드에 전달