Uber가 Zig를 사용하는 방법
(jakstys.lt)- Uber는 "zig cc" (bazel-zig-cc)를 사용하여 C/C++ 코드를 컴파일
→ 현재는 Go Monorepo 에서만. C/C++ 툴체인 사용중인 다른 언어로도 확장 계획이 있음
→ glibc 버전 선택이 가능하며, macOS 크로스 컴파일 가능하기 때문 - 하지만, Zig 언어 자체를 사용할 계획은 없음. 즉 Zig의 C 툴체인만 활용
- Uber는 Zig 재단(ZSF)에 기부를 하고, 버그수정 우선순위 계약을 체결했음 ($52800)
- zig cc 의 강점
- 40MB 밖에 안되는 크기의 완전 밀폐형 C/C++ 컴파일러. 표준 CLang의 1/10 밖에 안됨
- 명령줄 인수로 제공하는 glibc 버전으로 링크 가능
- Host 와 Target이 디커플됨. 호스트 상관없이 linux-aarch64 와 darwin-x86_64 의 설정이 동일
- musl과 링크하는 것은 그냥 또 다른 libc 버전을 선택하는 것과 같음
-target x86_64-linux-musl