Zig、パッケージ管理をコンパイラからビルドシステムへ移行

원제: Zig: All Package Management Functionality Moved from Compiler to Build System

왜 중요한가

패키지 관리의 컴파일러 분리로 Zig 생태계의 유지보수성과 보안성이 향상되며, ZLS 등 주변 툴링 개발 재개를 가능하게 한다.

Zig 언어 개발자 Andrew Kelley는 2026년 6월 30일, 패키지 관리 기능 전체를 컴파일러 실행 파일에서 빌드 시스템(maker 프로세스)으로 이전했다고 발표했다. HTTP 클라이언트, TLS, Git 프로토콜, 압축 파일 처리 등がソース形式で提供され、컴파일러 재빌드 없이 패치 가능해진다. 실행 파일 크기는 14.1MiB에서 13.5MiB로 약 4% 감소했다。

Zig 프로그래밍 언어의 핵심 개발자 Andrew Kelley는 2026년 6월 30일, 패키지 관리 관련 기능을 컴파일러 실행 파일에서 빌드 시스템인 maker 프로세스로 이전했음을 공식 개발 로그를 통해 발표했다.

이번 변경으로 maker 프로세스로 이전된 서브커맨드는 `zig build`, `zig fetch`, `zig init`, `zig libc`이며, HTTP 클라이언트 및 네트워킹, TLS와 관련 암호화, Git 프로토콜, xz·gzip·zstd·flate·zip 파싱, build.zig.zon 파일 처리 등 대규모 기능이 소스 형태로 제공된다.

실질적 효과로는 세 가지가 있다. 첫째, 컴파일러를 재빌드하지 않고도 패키지 관리 기능을 패치할 수 있어 사용자와 기여자가 더 쉽게 수정할 수 있다. 둘째, maker 실행 파일이 ReleaseSafe 모드로 컴파일되므로 네트워킹 시 안전성 검사가 활성화된다. 셋째, 호스트에서 사용 가능한 특수 CPU 명령어를 암호화 연산에 활용할 수 있게 된다.

프로세스 구조도 변경되었다. 종래의 `zig build(컴파일러+패키지 관리자) → builder(빌드 로직)` 구조에서, 이번 변경 후에는 `zig build(컴파일러) → maker(빌드 시스템+패키지 관리자) → configurer(사용자 build.zig 로직)` 의 3단계 구조가 된다. 이를 통해 `zig build --watch` 실행 중 build.zig 변경이 감지되어도 maker 프로세스가 종료되지 않고 재구성이 가능해진다.

컴파일러 실행 파일 크기는 14.1MiB에서 13.5MiB로 약 4% 감소했다. 변경에 따른 주요 차이점으로는 `--maker-opt` 플래그가 `ZIG_DEBUG_MAKER` 환경 변수로 대체되고, `--zig-lib-dir` 플래그는 `ZIG_LIB_DIR` 환경 변수로 대체된다.

Kelley는 빌드 서버 프로토콜 MVP 구현, 빌드 스크립트 경로 의존성 추가, `--watch` 모드에서의 빌드 스크립트 변경 감지 등이 Zig 0.17.0 태깅 전 해결해야 할 과제라고 밝혔다. 7월 두 개의 컨퍼런스 일정을 감안해 8월 초에 마무리할 것으로 전망했으며 기여를 환영한다고 덧붙였다.

출처

ziglang.org — 원문 읽기 →