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
- docs: update CRON_CRD_WRITE.md with latest verification (2026-05-12 15:00 KST)
- chore(cron): verify one mdx file for spelling (2026-05-12 19:00 KST)
- docs: CRON task completed - verified development-1.mdx for spelling
- fix: correct spacing in development-3.mdx (napi-rs 2일 때)
ohah/zntc
- docs: 런타임 폴리필 (core-js) 전용 가이드 추가 + 사이드바 노출
- test(integration): root test:integration 가 패키지 test 스크립트로 위임
- test(integration): bump real-library manualChunks smoke timeout to 10s
- perf(codegen): if-else-return ternary 의 else-if 체인 완전 변환 (#3109)
- feat(transformer): @jsx / @jsxFrag pragma 가 automatic runtime 에서 무시될 때 warning (D026 후속)
- feat(transformer): per-file JSX pragma 주석 지원 — @jsx / @jsxFrag / @jsxRuntime / @jsxImportSource (D026)
- docs: per-file JSX pragma 주석 (@jsx / @jsxFrag / @jsxRuntime / @jsxImportSource) 문서화
- docs: PUBLISH.md 절차 보강 — release.yml 흐름 + e2e + 롤백 + 체크리스트
- perf(codegen): #3094 후속 — do-while 본문 / if(true)·if(false) DCE 분기 의 single-statement {} 제거 (#3111)
- perf(codegen): minify_syntax 시 if-return + 후속 return → return c?A:B (#3110)
- perf(codegen): minify_syntax 시 if → 논리/삼항 식 변환 (#3107)
- fix(transformer): classic JSX factory(named import) 가 elision 되지 않게 (#3063)
- feat(app): zntc build / dev 가 JSX runtime 설정을 app 빌드에 전달 (#3087)
- perf(codegen): minify_syntax 시 if-else-return → return ternary (#3095)
- fix(bundler): minify 시 entry export 후행 newline 유지 — line-limit + sourcemap 회귀 (#3096 후속)
- perf(codegen): single-param arrow 괄호 제거 + bundle entry export brace 공백 (#3096)
- perf(codegen): minify_syntax 시 const → let 다운그레이드 (#3098)
- fix(semantic,bundler): synthetic 이름이 string_table 슬라이스로 dangling — RN 번들에 0xaa garbage (#3100)
- perf(codegen): minify 시 single-statement block 의 불필요한
{}제거 (#3094) - fix(bundler,test): dev 빌드 에러 후 incremental rebuild 가 overlay 를 잘못 clear / watch-stress warmup false positive
- perf(codegen): minify 시 binary +/- 연산자 공백 제거 (#3097)
- fix(profile): make timer aggregation thread-safe
- perf(bundler): skip transformer pre-pass for plain node_modules modules
- fix(resolver): guard browser_overrides_cache with its own mutex
- chore(profile): break down
metadataphase into sub-phases - chore(profile): break down
resolve.resolverinto pkg.json / exports - perf(minify): single-use identifier-alias inline — const x = foo → use(foo) (#3112)
- fix(profile): WASM 빌드에서 64-bit atomic counter 컴파일 실패 수정
- refactor(bundler,semantic): dedupe export-name 추출 분기 (function/class/enum 통합)
- fix(react-native): preserve RuntimeKind in RN bundles
- refactor(resolver): DirEntryCache — readdir outside the lock, pointer-stable entries
- perf(resolver): probe candidate extensions via dir cache, not full-path allocs
- chore(bundler): ZNTC_MODULE_STATS — module classification histogram (PoC)
- perf(resolver): shard the resolve-result cache (16-way) to cut mutex contention
- perf(resolver): cache parsed package.json per directory
- refactor(transformer): /simplify 정리 — generator yield 추출 dedup, object-method gate
- fix(react-native): handle RN Hermes downlevel edge cases
- fix(bundler): use getEnvVarOwned for ZNTC_MODULE_STATS (Windows build)
- fix(bundler): don't lazy-defer imports of helper-downleveled modules
- fix(bundler): request all exports from
export *sources, not just the name - chore(bundler): tidy lazy-barrel gate after /simplify review
- fix(bundler): only lazy-defer imports of pure re-export barrels