อัปเดตเป็น GNU Coreutils เขียนใหม่ใน Rust

มีการนำเสนอชุดเครื่องมือ uutils coreutils 0.0.12 ซึ่งมีการพัฒนาอะนาล็อกของแพ็คเกจ GNU Coreutils ซึ่งเขียนใหม่ในภาษา Rust Coreutils มาพร้อมกับยูทิลิตี้มากกว่าร้อยรายการ รวมถึง sort, cat, chmod, chown, chroot, cp, date, dd, echo, ชื่อโฮสต์, id, ln และ ls ในเวลาเดียวกันแพ็คเกจ uutils findutils 0.3.0 ได้รับการเผยแพร่พร้อมกับการใช้งานใน Rust ของยูทิลิตี้จากชุด GNU Findutils (ค้นหา, ค้นหา, อัปเดตb และ xargs)

เหตุผลในการสร้างโครงการและการใช้ภาษา Rust คือความปรารถนาที่จะสร้างการใช้งานทางเลือกข้ามแพลตฟอร์มของ Coreutils และ Findutils ซึ่งสามารถทำงานบนแพลตฟอร์ม Windows, Redox และ Fuchsia ได้ ข้อแตกต่างที่สำคัญอีกประการระหว่าง uutils คือการเผยแพร่ภายใต้ MIT Permissive License แทนที่จะเป็น GPL copyleft License

ปัจจุบันการใช้งานยูทิลิตี้ 88 รายการได้ถูกนำมาเปรียบเทียบกับ GNU Coreutils อย่างสมบูรณ์ ข้อบกพร่องส่วนบุคคลถูกบันทึกไว้ในยูทิลิตี้ 18 รายการ รวมถึง cp, dd, date, df, ติดตั้ง, ls, เพิ่มเติม, เรียงลำดับ, แยก, ส่วนท้ายและทดสอบ เฉพาะยูทิลิตี้ stty เท่านั้นที่ยังไม่มีการใช้งาน เมื่อผ่านการทดสอบชุดทดสอบจากโครงการ GNU Coreutils การทดสอบ 214 ครั้งจะดำเนินการได้สำเร็จ แต่อะนาล็อก Rust ยังไม่ผ่านการทดสอบ 313 ครั้ง ในขณะเดียวกัน ความเข้มข้นของการพัฒนาโครงการก็เพิ่มขึ้นอย่างเห็นได้ชัด - มีการเพิ่ม 400-470 แพตช์ต่อเดือนจากนักพัฒนา 20-50 คน แทนที่จะเป็น 30-60 จากนักพัฒนา 3-8 คนในปีที่แล้ว

อัปเดตเป็น GNU Coreutils เขียนใหม่ใน Rust

ในบรรดาความสำเร็จล่าสุด มีการกล่าวถึงการเพิ่มประสิทธิภาพการทำงาน - ในสถานะปัจจุบัน ยูทิลิตี้จำนวนมาก เช่น head and cut มีประสิทธิภาพเหนือกว่าตัวเลือกจาก GNU Coreutils อย่างมาก ความครอบคลุมของชุดทดสอบได้ขยายจาก 55% เป็น 75% ของโค้ดทั้งหมด (80% เป็นเป้าหมายที่เพียงพอ) โค้ดได้รับการปรับโครงสร้างใหม่เพื่อทำให้การบำรุงรักษาง่ายขึ้น เช่น การจัดการข้อผิดพลาดได้รับการรวมเป็นหนึ่งเดียวในโปรแกรมต่างๆ และโค้ดสำหรับการทำงานกับสิทธิ์การเข้าถึงได้ถูกรวมเข้ากับ chgrp และ chown มีการเพิ่มการเปลี่ยนแปลงมากมายเพื่อปรับปรุงความเข้ากันได้กับ GNU Coreutils

แผนสำหรับอนาคตรวมถึงการใช้งานยูทิลิตี้ stty ทำงานอย่างต่อเนื่องเพื่อปรับปรุงความเข้ากันได้กับ GNU Coreutils เพิ่มการเพิ่มประสิทธิภาพเพื่อลดขนาดของไฟล์ปฏิบัติการ รวมถึงการทดลองอย่างต่อเนื่องเกี่ยวกับการใช้ยูทิลิตี้ uutils ใน Debian และ Ubuntu แทน GNU Coreutils และ GNU Findutils (หนึ่งในผู้พัฒนาหลักของ uutils เคยทำงานในโครงการสร้าง Debian GNU/Linux โดยใช้คอมไพเลอร์ Clang) นอกจากนี้ การเตรียมแพ็คเกจ uutils-coreutils สำหรับ macOS การทดลองแทนที่ GNU Coreutils ด้วย uutils coreutils ใน NixOS ความตั้งใจที่จะใช้ uutils coreutils เป็นค่าเริ่มต้นในการแจกแจง Apertis และการปรับตัวของ uutils ที่ตั้งค่าไว้สำหรับ Redox OS จะถูกบันทึกไว้ด้วย

ที่มา: opennet.ru

เพิ่มความคิดเห็น