9P by xguru 2022-05-26 | favorite | 댓글 1개
  • 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