- มีข้อเสนอให้ลบไลบรารี LLVM, Clang และ LLD ออกจากโปรเจ็กต์ Zig
- Zig วางแผนจะมี optimization pass ของตัวเอง และดึงดูดโปรเจ็กต์วิจัยรวมถึงการมีส่วนร่วมจากผู้ผลิตชิป
- ลบความสามารถในการคอมไพล์ C++, Objective-C และ Objective-C++ ออกจาก Zig
- machine code ที่สร้างจาก Zig อาจมีความสามารถในการแข่งขันลดลงในอนาคตอันใกล้ แต่ในระยะยาวอาจตามทันหรือแซง LLVM และ GCC ได้
- ข้อดีของการลบ LLVM ได้แก่ ความเป็นเจ้าของบั๊กที่ชัดเจนขึ้น การ build และ bootstrapping ที่ง่ายขึ้น ความเร็วคอมไพล์ที่เร็วขึ้น และความสามารถในการทำ custom optimization pass
- มีการแสดงความกังวลต่อผลกระทบต่อโปรเจ็กต์ที่พึ่งพาการคอมไพล์ C++ และต่อการลดลงของอัตราการยอมรับ Zig
- การลบ dependency ต่อ DirectXShaderCompiler และคอมไพเลอร์ shader ของ Apple Metal อาจทำได้ยาก
- ในระยะยาวมีการผลักดันให้เปลี่ยนไปสู่โซลูชันที่เป็น Zig ล้วน
- ผู้ใช้บางส่วนกังวลเกี่ยวกับผลกระทบต่อประสบการณ์การพัฒนาเกม และการใช้ไลบรารีกับเครื่องมือ C++ ที่มีอยู่เดิม
- ความเรียบง่ายและความสามารถข้ามแพลตฟอร์มของ Zig ได้รับคำชม
- มีข้อเสนอให้คง backend ของ LLVM ไว้เป็นค่าเริ่มต้น หรือคงการรองรับตระกูลภาษา C เอาไว้พร้อมกับลบการลดระดับลงสู่ LLVM IR
- ผู้ใช้เน้นย้ำความสำคัญของความสามารถของ Zig ในการคอมไพล์โค้ด C/C++ ได้อย่างราบรื่นและสร้างไบนารีที่มีประสิทธิภาพดี
- มีการพูดคุยถึงการสูญเสียไลบรารีที่มีอยู่เดิมที่อาจเกิดขึ้น และความจำเป็นของทางเลือกสำหรับการคอมไพล์แบบ JIT
- ข้อเสนอนี้ถูกมองว่าให้ผลลบล้วนกับผู้ใช้ และอาจเป็นเหมือนการล่อให้ใช้งาน
- มีการเน้นย้ำความสำคัญของการคงความสามารถของ Zig สำหรับ cross-compilation และการผสานรวมกับไลบรารีเดิม
- มีข้อเสนอให้ลบ dependency ต่อ LLVM และ LLD ขณะเดียวกันคง clang ไว้เป็น dependency แบบเลือกได้
- มีความกังวลเกี่ยวกับผลกระทบต่อประสิทธิภาพและความเป็นไปได้จริงของการแทนที่ LLVM
- มีการเน้นย้ำความสำคัญของการรองรับการคอมไพล์ C++ สำหรับการพัฒนาเกมและโปรเจ็กต์อื่น ๆ
- มีการกล่าวถึงความเป็นไปได้ที่ Zig จะสามารถแทนที่ความสามารถของ LLVM ได้เมื่อเวลาผ่านไป
- มีการพูดคุยถึงความจำเป็นของการรับประกันประสิทธิภาพในระดับที่สมเหตุสมผล และการสูญเสียโอกาสในการ optimization ที่อาจเกิดขึ้น
- มีการกล่าวถึงผลกระทบต่อไลบรารีและเครื่องมือบางตัว เช่น ImGui และ Tracy
- ข้อเสนอให้ลบ LLVM ออกจาก toolchain ของ Zig อาจทำให้ชุมชน Zig แตกออกเป็นฝักฝ่าย
- ผู้ใช้บางรายอาจเลือกใช้ Zig เวอร์ชันเก่าเพื่อหลีกเลี่ยงการย้ายระบบ
- การคง LLVM ไว้มีทั้งความท้าทายและข้อจำกัด
- ระบบปลั๊กอินสำหรับคอมไพเลอร์ Zig อาจเป็นทางออกระยะยาว
- การคอมไพล์โปรแกรม Zig ไปยังแพลตฟอร์มและภาษาอื่นยังอาจได้รับการรองรับต่อไป
zig cc ซึ่งเป็นฟีเจอร์เฉพาะของ Zig อาจยังพัฒนาต่อไปในฐานะโปรเจ็กต์แยก
- ยังไม่มีการตัดสินใจขั้นสุดท้ายเกี่ยวกับข้อเสนอนี้
- การถกเถียงเรื่องการลบ LLVM กำลังแพร่กระจายบนโซเชียลมีเดีย
zig cc ได้รับการชื่นชมอย่างมากจากชุมชน และมีข้อได้เปรียบเมื่อเทียบกับ toolchain อื่น
- สามารถคง
zig cc ไว้ได้แม้ไม่มี Clang
- โปรเจ็กต์แยกต่างหากที่ bundle Clang อาจรองรับ use case เดิมของผู้ใช้ที่ build โค้ด C++ ด้วย Zig ได้
- การแยกเครื่องมือออกเป็นโปรเจ็กต์ต่างหาก หรือการจ้างผู้ดูแลเพื่อคง
zig cc ไว้ เป็นแนวทางแก้ปัญหาที่เป็นไปได้
- อาจมีการพัฒนาเครื่องมือย้ายระบบสำหรับ codebase ที่พึ่งพาฟีเจอร์ที่จะถูกลบ
- เมื่อไม่นานมานี้ วิศวกรซอฟต์แวร์รายหนึ่งได้ย้ายโปรเจ็กต์ไปยัง GHC เวอร์ชันใหม่ที่ใช้ native code generator เพื่อให้คอมไพล์ได้เร็วขึ้น
- โปรเจ็กต์ Silk.NET ใช้
zig cc และ zig c++ เพื่อมอบสภาพแวดล้อมการ build ที่ทำซ้ำได้สำหรับไลบรารีเนทีฟ ทำให้ cross-compilation และการตั้งค่าในเครื่องทำได้ง่าย
- วิศวกรซอฟต์แวร์ใช้
zig cc และ zig c++ ในโปรเจ็กต์ส่วนตัวเพื่อให้คอมไพล์ข้ามแพลตฟอร์มของไลบรารีได้ง่าย และใช้การตั้งค่า build.zig เพียงชุดเดียว
- คอมไพเลอร์ Intel C/C++ ได้เสร็จสิ้นการนำ LLVM มาใช้แล้ว โดยให้เวลาในการคอมไพล์ที่เร็วขึ้น optimization ที่ดีขึ้น และการรองรับการ offload ไปยัง GPU และ FPGA
- ข้อเสนอให้ย้ายส่วน llvm ของ Zig ไปเป็นโปรเจ็กต์ที่ชุมชนดูแลแยกต่างหากได้รับเสียงตอบรับทั้งบวกและลบ
- ผู้ใช้บางรายแสดงความกังวลต่อการลบการรองรับ C++ ออกจาก Zig ขณะที่อีกฝ่ายมองว่าค่าใช้จ่ายในการรองรับสูงและไม่ได้อยู่ในงบประมาณ
- ทีม Zig เสนอว่าผู้ที่เห็นว่าการรองรับ C++ สำคัญควรพิจารณาสนับสนุนฟีเจอร์นี้ด้วยเงินทุนหรือเวลาของตน
- ผู้ใช้บางรายมองว่าการลบ LLVM อาจให้ประโยชน์ระยะยาว แต่ยังกังวลต่อการลบการรองรับ C++ และ Obj-C(++) ออกทั้งหมด
- มีข้อเสนอให้ย่อคอมไพเลอร์ Zig ให้เป็นไบนารีที่เล็กและเบาลง และเพิ่มความสามารถของ LLVM ในรูปแบบส่วนขยาย
2 ความคิดเห็น
จะสามารถทำการปรับแต่งประสิทธิภาพหรือรองรับแพลตฟอร์มต่าง ๆ ได้เท่ากับ LLVM ไหม..
ความคิดเห็นบน Hacker News