2026-05-30

날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.

요약 (AI 작성)

zntc는 Zig 0.16 마이그레이션 후속으로 함수 지역, linker 서브시스템, 나머지 코드의 managed HashMap을 차례로 unmanaged로 바꿔 전환을 마쳤고(#4021, #4023, #4026), 그 여파로 깨진 NAPI watch 빌드를 바로 복구했습니다(#4028). 파서는 optional chain 관련 문법 검사를 강화해 new a?.b(), new new a()?.b, a?.b.c = 1 같은 할당 대상, optional chain 위의 tagged template을 SyntaxError로 거부하게 했고(#4022, #4029, #4033, #4035), TS cast로 감싼 구조 분해 패턴도 잘못된 할당 대상으로 처리했습니다(#4047). import 바인딩과 namespace 멤버를 변경하는 코드는 esbuild·rolldown처럼 번들 단계에서 거부하고(#4030), 타입 래퍼를 벗길 때 의미가 있는 괄호를 보존하도록 고쳤습니다(#4044).

오후에는 dev 서버의 온디맨드 청크 컴파일을 위한 lazy compilation RFC와 옵션 뼈대(#4037)를 병합하고, 이어 dev_mode와 code_splitting을 함께 쓰는 경로를 만들면서 청크 경계에서 dev 초기화 코드가 깨지던 #4038을 고쳤습니다(#4040). 이 경로는 lazy_compilation 기본값이 꺼져 있어 기존 dev 단일 번들 동작은 그대로입니다. require.context와 code_splitting 조합 지원(#4041), code_splitting과 minify를 함께 쓸 때 청크 내부 식별자 mangle 통합(#4049), TC39 데코레이터 access getter 멤버 이름의 해제 후 사용(#4050), 템플릿 치환 lookahead 뒤 스택 복구 문제(#4051)도 수정했습니다. 사이트는 벤치마크를 고반복으로 재측정해 갱신하고 플레이그라운드 사이드바를 반응형으로 바꿨으며(#4031), 이미 구현된 청크별 CSS 분리를 로드맵의 미구현 목록에서 뺐습니다(#4036).

suji는 Windows ReleaseSafe·ReleaseFast 빌드에서 렌더러가 V8 스택 오버플로로 죽던 문제를 runHost 분리로 고치고(#62) 렌더러 부팅 회귀 테스트와 Windows 프레임 없는 창·드래그 영역 e2e를 더했습니다(#63, #64). 클립보드를 cef_clipboard.zig로 떼어낸 것(#65)을 시작으로, 밤에는 PR 없이 13,362줄이던 cef.zig를 도메인별 모듈로 나눠 326줄로 줄이고 관련 문서를 정리했습니다. 블로그 저장소 ohah.github.io에는 5월 30일 요약 추가 커밋 1개가 있었습니다.

공개 커밋 32개, 해당일 생성 또는 병합된 PR 24개를 정리했습니다. PR 생성 24개·병합 24개는 같은 PR이 양쪽에 포함될 수 있습니다.

커밋

ohah/ohah.github.io

ohah/suji

ohah/zntc

PR (해당일 생성/머지)

상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.

저장소PR해당일 활동상태대상 브랜치제목
ohah/suji#65생성 · 병합mergedmainrefactor(cef): extract clipboard into cef_clipboard.zig (behavior-unchanged)
ohah/suji#64생성 · 병합mergedmaintest(e2e): close Windows frameless/drag-region verification gap
ohah/suji#63생성 · 병합mergedmaintest(e2e): #60 part 2 ReleaseSafe renderer-boot regression guard
ohah/suji#62생성 · 병합mergedmainfix(cef): Windows ReleaseSafe/ReleaseFast renderer V8 stack-overflow (closes #60 part 2)
ohah/zntc#4051생성 · 병합mergedmainfix(lexer): 템플릿 치환 lookahead 후 template_depth_stack 복구 시 0xaa poison 수정
ohah/zntc#4050생성 · 병합mergedmainfix(transformer): TC39 데코레이터 access getter 멤버 이름 UAF 수정 (string_table realloc)
ohah/zntc#4049생성 · 병합mergedmainfix(bundler): code_splitting + minify 시 청크 내부 식별자 mangle 통합 (#4045)
ohah/zntc#4047생성 · 병합mergedmainfix(parser): TS cast(as/satisfies/!/<T>)로 감싼 destructuring 패턴은 invalid assignment target
ohah/zntc#4044생성 · 병합mergedmainfix(codegen): 타입 래퍼 벗길 때 load-bearing 괄호를 보존 ((a?.b as T).c, (42 as T).x 등)
ohah/zntc#4041생성 · 병합mergedmainfix(bundler): require.context + code_splitting 풀 지원 + production 단일번들 수정 (#4039)
ohah/zntc#4040생성 · 병합mergedmainfeat(bundler): dev_mode + code_splitting 경로 + #4038 수정 (lazy compilation PR-2)
ohah/zntc#4037생성 · 병합mergedmaindocs(rfc): Lazy compilation RFC + 옵션 스캐폴딩 (PR-1)
ohah/zntc#4036생성 · 병합mergedmaindocs(roadmap): 청크별 CSS 분리를 미구현/후순위에서 제거 (이미 구현됨)
ohah/zntc#4035생성 · 병합mergedmainfix(parser): optional chain 위의 tagged template 을 전부 SyntaxError 로 거부 (a?.b.cx)
ohah/zntc#4033생성 · 병합mergedmainfix(parser): optional chain 이 assignment target 체인 어디든 있으면 거부 (a?.b.c = 1)
ohah/zntc#4031생성 · 병합mergedmainfeat(site): 벤치마크 2026-05-30 고반복 재측정 갱신 + 플레이그라운드 반응형 사이드바
ohah/zntc#4030생성 · 병합mergedmainfix(semantic,bundler): import 바인딩/namespace 멤버 변형을 번들 단계에서 거부 (esbuild/rolldown parity)
ohah/zntc#4029생성 · 병합mergedmainfix(parser): 인자 없는 new 뒤 trailing optional chain(new new a()?.b)을 SyntaxError 로 거부
ohah/zntc#4028생성 · 병합mergedmainfix(napi): watch changed_files 를 unmanaged borrow 로 (#4026 napi 빌드 회귀 복구)
ohah/zntc#4026생성 · 병합mergedmainrefactor: 나머지 managed HashMap 전부 unmanaged 로 전환 (마이그레이션 완료)
ohah/zntc#4025생성 · 병합mergedmainfix(parser): new-callee optional-chain 거부의 진단 품질 + computed subscript [+In] 누락
ohah/zntc#4023생성 · 병합mergedmainrefactor(linker): linker 서브시스템 HashMap 을 0.16 unmanaged 로 전환
ohah/zntc#4022생성 · 병합mergedmainfix(parser): new 표현식 callee 의 optional chain(new a?.b())을 SyntaxError 로 거부
ohah/zntc#4021생성 · 병합mergedmainrefactor: 함수-로컬 managed HashMap 을 0.16 unmanaged 로 전환 (컨벤션 통일)