프로그래밍 언어 Zig(지그)가 핵심적인 변화를 발표했습니다. 기존에는 컴파일러 실행 파일 내부에 포함되어 있던 패키지 관리 로직을 빌드 시스템의 별도 프로세스인 '메이커(maker)'로 분리한 것입니다. 이는 build.zig 스크립트와 빌드 시스템 자체를 별도 프로세스로 분리하려는 Zig의 전반적인 흐름에 맞춰 이루어진 것으로, `zig build`, `zig fetch`, `zig init`, `zig libc`와 같은 하위 명령들이 이제 메이커 프로세스에서 처리됩니다.
이번 변경으로 컴파일러 실행 파일에서 HTTP, TLS, Git 프로토콜, 압축(xz, gzip 등), build.zig.zon 파일 처리 등 방대한 코드 영역이 분리되어 소스 형태로 배포됩니다. 이는 컴파일러를 재빌드하지 않고도 패키지 관리 기능을 패치하고 개선할 수 있게 하여 사용자 및 기여자의 실험을 용이하게 합니다. 또한, 메이커 실행 파일이 ReleaseSafe 모드로 컴파일되면서 패키지 관리의 네트워킹 작업에서 안전성 검사가 활성화되고, 암호화 코드는 호스트의 특수 CPU 명령을 활용해 성능을 높일 수 있습니다. 결과적으로 Zig 실행 파일 크기는 4% 감소한 13.5MiB로 줄어들었습니다.
이러한 구조 변경의 원래 목적은 빌드 서버 프로토콜(build server protocol)을 노출하여 ZLS(Zig Language Server)를 막고 있던 문제를 해결하는 것입니다. 새로운 프로세스 트리에서는 `zig build`가 컴파일러만 담당하고, 메이커가 빌드 시스템과 패키지 관리자를 모두 처리하며, 설정(configurer)은 메이커의 자식 프로세스가 됩니다. 이로써 설정 재실행 시에도 메이커 프로세스가 계속 살아있을 수 있어 더 안정적인 처리가 가능해지며, 장기적으로는 빌드 서버가 클라이언트에 설정 변경을 직접 알리는 구조를 통해 개발 경험을 크게 향상시킬 수 있을 것으로 기대됩니다. 이러한 변화는 단기적으로 사용자에게 큰 비호환성을 야기하지 않으면서도, Zig 생태계의 장기적인 안정성과 확장성을 위한 중요한 기반을 마련하고 있습니다.