- Đề xuất loại bỏ các thư viện LLVM, Clang và LLD khỏi dự án Zig.
- Zig có kế hoạch sở hữu các pass tối ưu hóa riêng và thu hút các dự án nghiên cứu cũng như đóng góp từ các nhà sản xuất chip.
- Loại bỏ khả năng biên dịch C++, Objective-C và Objective-C++ khỏi Zig.
- Mã máy do Zig tạo ra có thể kém cạnh tranh trong tương lai gần, nhưng về dài hạn có thể bắt kịp hoặc vượt LLVM và GCC.
- Lợi ích của việc loại bỏ LLVM bao gồm quyền sở hữu lỗi, build và bootstrap dễ hơn, tốc độ biên dịch nhanh hơn và khả năng triển khai các pass tối ưu hóa tùy chỉnh.
- Đã xuất hiện lo ngại về tác động tới các dự án phụ thuộc vào biên dịch C++ và về việc mức độ chấp nhận Zig có thể giảm.
- Việc loại bỏ phụ thuộc vào DirectXShaderCompiler và trình biên dịch shader Metal của Apple có thể sẽ khó khăn.
- Về dài hạn, mục tiêu là thúc đẩy chuyển sang giải pháp thuần Zig.
- Một số người dùng lo ngại về ảnh hưởng tới trải nghiệm phát triển game và việc sử dụng các thư viện, công cụ C++ hiện có.
- Tính đơn giản và khả năng đa nền tảng của Zig được khen ngợi.
- Có đề xuất giữ backend LLVM làm mặc định, hoặc tiếp tục hỗ trợ họ C trong khi loại bỏ phần hạ xuống LLVM IR.
- Người dùng nhấn mạnh tầm quan trọng của khả năng biên dịch trơn tru mã C/C++ bằng Zig và tạo ra binary có hiệu năng tốt.
- Đã có thảo luận về nguy cơ mất các thư viện hiện có và nhu cầu về phương án thay thế cho biên dịch JIT.
- Đề xuất này bị xem là tác động hoàn toàn tiêu cực với người dùng và có thể giống một chiêu nhử.
- Tầm quan trọng của việc duy trì khả năng của Zig trong cross-compile và tích hợp các thư viện hiện có được nhấn mạnh.
- Có đề xuất loại bỏ phụ thuộc vào LLVM và LLD nhưng giữ clang như một phụ thuộc tùy chọn.
- Các lo ngại về tác động tới hiệu năng và tính khả thi của việc thay thế LLVM đã được nêu ra.
- Tầm quan trọng của hỗ trợ biên dịch C++ cho phát triển game và các dự án khác được nhấn mạnh.
- Cũng có nhắc tới khả năng Zig dần thay thế chức năng của LLVM theo thời gian.
- Đã có thảo luận về nhu cầu bảo đảm hiệu năng ở mức hợp lý và nguy cơ mất khả năng tối ưu hóa.
- Tác động tới một số thư viện và công cụ cụ thể như ImGui và Tracy được đề cập.
- Đề xuất loại bỏ LLVM khỏi toolchain của Zig có thể gây chia rẽ trong cộng đồng Zig.
- Một số người dùng có thể tiếp tục dùng các phiên bản Zig cũ để tránh phải di chuyển.
- Việc duy trì LLVM đi kèm với nhiều thách thức và giới hạn.
- Một hệ thống plugin cho trình biên dịch Zig có thể là giải pháp dài hạn.
- Việc biên dịch chương trình Zig cho các nền tảng và ngôn ngữ khác vẫn có thể tiếp tục được hỗ trợ.
- Zig cc, tính năng độc đáo của Zig, có thể tiếp tục phát triển như một dự án riêng.
- Hiện vẫn chưa có quyết định cuối cùng về đề xuất này.
- Tranh luận về việc loại bỏ LLVM đang lan rộng trên mạng xã hội.
- Zig cc được cộng đồng đánh giá cao và có những ưu điểm so với các toolchain khác.
- Có thể duy trì Zig cc mà không cần Clang.
- Một dự án riêng đóng gói Clang có thể hỗ trợ các trường hợp sử dụng hiện tại là build mã C++ bằng Zig.
- Tách công cụ thành dự án riêng hoặc thuê maintainer để duy trì Zig cc là những giải pháp tiềm năng.
- Có thể phát triển công cụ di chuyển cho các codebase phụ thuộc vào những tính năng bị loại bỏ.
- Gần đây, một kỹ sư phần mềm đã chuyển một dự án sang phiên bản GHC mới hơn dùng native code generator để có tốc độ biên dịch nhanh hơn.
- Dự án Silk.NET sử dụng zig cc và zig c++ để cung cấp môi trường build có thể tái tạo cho các thư viện native, cho phép cross-compile dễ dàng và thiết lập cục bộ.
- Một kỹ sư phần mềm sử dụng zig cc và zig c++ trong các dự án cá nhân để dễ dàng cross-compile thư viện và dùng một cấu hình
build.zig duy nhất.
- Trình biên dịch Intel C/C++ đã hoàn tất việc áp dụng LLVM, mang lại thời gian biên dịch nhanh hơn, tối ưu hóa tốt hơn và hỗ trợ offload cho GPU và FPGA.
- Đề xuất chuyển phần llvm của Zig sang một dự án riêng do cộng đồng duy trì nhận được phản ứng trái chiều.
- Một số người dùng bày tỏ lo ngại về việc loại bỏ hỗ trợ C++ khỏi Zig, trong khi những người khác cho rằng chi phí hỗ trợ là quá cao và không nằm trong ngân sách.
- Nhóm Zig gợi ý rằng những ai coi trọng hỗ trợ C++ nên cân nhắc đóng góp tài chính hoặc thời gian để duy trì tính năng này.
- Một số người dùng cho rằng việc loại bỏ LLVM có thể mang lại lợi ích dài hạn, nhưng vẫn lo ngại về việc xóa hoàn toàn hỗ trợ C++ và Obj-C(++).
- Có đề xuất thu gọn trình biên dịch Zig thành một binary nhỏ và nhẹ hơn, rồi bổ sung các tính năng LLVM dưới dạng extension.
2 bình luận
Liệu có thể đạt được mức tối ưu hóa hay hỗ trợ nền tảng như LLVM không..
Ý kiến trên Hacker News