9 điểm bởi xguru 2022-05-26 | 1 bình luận | Chia sẻ qua WhatsApp
  • Uber sử dụng zig cc (bazel-zig-cc) để biên dịch mã C/C++
    → Hiện tại mới chỉ áp dụng trong Go Monorepo. Có kế hoạch mở rộng sang các ngôn ngữ khác cũng đang dùng toolchain C/C++
    → Vì có thể chọn phiên bản glibc và hỗ trợ cross-compile cho macOS
  • Tuy nhiên, họ không có kế hoạch sử dụng chính ngôn ngữ Zig. Nói cách khác, Uber chỉ tận dụng toolchain C của Zig
  • Uber đã quyên góp cho Zig Foundation (ZSF) và ký hợp đồng ưu tiên sửa lỗi (52.800 USD)
  • Điểm mạnh của zig cc
    • Trình biên dịch C/C++ hoàn toàn khép kín, chỉ nặng 40MB. Chỉ bằng 1/10 so với Clang tiêu chuẩn
    • Có thể liên kết với phiên bản glibc được chỉ định qua tham số dòng lệnh
    • Host và Target được tách rời. Bất kể host là gì, cấu hình cho linux-aarch64darwin-x86_64 vẫn giống nhau
    • Việc liên kết với musl cũng chỉ giống như chọn một phiên bản libc khác -target x86_64-linux-musl