Zig 0.16.0 릴리즈
핵심 내용
Zig 0.16.0이 I/O 인터페이스 개편과 대규모 breaking changes와 함께 공개됐다.
자세히 보기
2026년 4월 14일 공개된 Zig 0.16.0은 244명 기여자가 8개월, 1,183개 커밋으로 만든 대형 릴리즈다.
가장 큰 변화는 I/O as an Interface다. 파일시스템, 네트워킹, 타이머, 동기화처럼 블로킹이 생길 수 있는 동작을 새 std.Io 인터페이스로 묶었고, 이제 I/O를 쓰는 코드는 Io 인스턴스를 받아야 한다. 덕분에 동시성 모델에 덜 묶인 재사용 가능한 패키지와 언어 차원의 이벤트 루프 처리가 가능해졌다.
구현체는 세 가지다.
Io.Threaded: 스레드 기반의 완성된 구현체, cancellation 지원Io.Evented: 유저스페이스 스택 스위칭(그린 스레드) 기반의 실험적 구현체Io.Uring: Linuxio_uring기반의 PoC 구현체
컴파일러 쪽에서는 LLVM 백엔드 incremental compilation이 추가됐다. 컴파일 에러가 나면 LLVM Emit Object 단계를 건너뛰어 에러 확인이 더 빨라진다. type resolution도 내부 의존성 그래프를 순환 구조에서 DAG로 바꾸는 식으로 재설계됐고, 네임스페이스로만 쓰이는 타입은 불필요한 분석을 덜 하게 됐다. 그 결과 바이너리 크기와 루프 에러 메시지 품질도 개선됐다.
다른 핵심 항목으로는 aarch64 백엔드의 Debug 모드 기본값 전환을 향한 작업, 그리고 AST Smith 기반 멀티프로세스 퍼징, Infinite Mode, 크래시 덤프를 포함한 내장 fuzzer 강화가 있다.
호환성 측면의 변경도 크다. 마이그레이션이 필요한 항목은 다음과 같다.
- **
@cImport**가 빌드 시스템으로 이동 @Type빌틴 제거, 타입별 개별 빌틴으로 대체- Lazy Field Analysis 도입
- packed union/struct 내부에 포인터를 넣을 수 없게 변경
posix,os.windows관련 API 다수 제거
표준 라이브러리도 많이 바뀌었다.
- **
heap.ArenaAllocator**가 스레드 안전 + 락 프리로 변경 heap.ThreadSafeAllocator 제거- Deflate 압축 추가, 해제 API 단순화
- **
std.crypto**에 AES-SIV, AES-GCM-SIV, Ascon-AEAD, Ascon-Hash 추가 Thread.Pool,GenericReader/AnyReader/FixedBufferStream제거- Windows 네트워킹이
ws2_32.dll없이 동작, NtDll 마이그레이션 완료
툴체인도 함께 올라갔다.
- LLVM 21
- musl 1.2.5
- glibc 2.43
- Linux 6.19 headers
- macOS 26.4 headers
- FreeBSD 15.0 libc
다음 릴리즈인 0.17.0의 방향은 async I/O 안정화, aarch64 Debug 기본화, LLD 의존성 제거, incremental compilation을 지원하는 링커 구현이다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.