Nix-Ninja นำการคอมไพล์แบบเพิ่มเติมมาสู่ Nix โดยใช้ Dynamic Derivations
Nix-Ninja นำการคอมไพล์แบบเพิ่มเติมมาสู่ Nix โดยใช้ Dynamic Derivations
ระบบนิเวศโอเพนซอร์ส Nix กำลังได้เห็นการพัฒนาที่น่าตื่นเต้นกับ nix-ninja เครื่องมือที่สัญญาว่าจะปฏิวัติขั้นตอนการคอมไพล์โดยใช้ประโยชน์จากฟีเจอร์ทดลอง dynamic derivations ของ Nix นวัตกรรมนี้ได้สร้างความสนใจอย่างมากในชุมชนนักพัฒนา โดยเฉพาะในกลุ่มผู้ที่ทำงานกับระบบการสร้างที่ซับซ้อนDynamic Derivations: เส้นทางสู่การเปิดตัวเวอร์ชันเสถียรหนึ่งในประเด็นที่มีการพูดถึงมากที่สุดในชุมชนคือกรอบเวลาสำหรับการทำให้ dynamic derivations ใน Nix มีความเสถียร ปัจจุบัน nix-ninja ต้องพึ่งพาฟีเจอร์ทดลองจากเวอร์ชัน Nix ที่ยังไม่ได้เปิดตัว ซึ่งทำให้เกิดคำถามว่าฟีเจอร์เหล่านี้จะได้รับการสนับสนุนอย่างเป็นทางการเมื่อใดนักพัฒนาหลักของ Nix ที่เกี่ยวข้องกับ dynamic derivations ได้ให้ความชัดเจนเกี่ยวกับแผนงาน โดยอธิบายว่า dynamic derivations ขึ้นอยู่กับ content-addressing derivations ซึ่งอยู่ในสถานะฟีเจอร์ทดลองมาระยะหนึ่งแล้ว อย่างไรก็ตาม ด้วยความพยายามที่มุ่งเน้นและการจัดการขอบเขต การทำให้เสถียรอาจเป็นไปได้ในอนาคตอันใกล้ นักพัฒนาอธิบายว่างานที่เหลืออยู่ไม่ได้มากมายจริงๆ แม้จะเป็นชุดของ yak shaves - คำที่หมายถึงลำดับของงานที่ดูเหมือนไม่เกี่ยวข้องกันซึ่งต้องทำให้เสร็จก่อนที่จะจัดการกับเป้าหมายหลักศักยภาพด้านประสิทธิภาพสำหรับการสร้างที่ซับซ้อนผลกระทบด้านประสิทธิภาพของ nix-ninja มีความน่าสนใจเป็นพิเศษ เครื่องมือนี้มีเป้าหมายที่จะเปิดใช้งานการคอมไพล์แบบเพิ่มเติมอย่างแท้จริง ซึ่งการเปลี่ยนแปลงไฟล์ C/C++ เพียงไฟล์เดียวในกราฟการสร้างจะต้องคอมไพล์เฉพาะไฟล์นั้นใหม่และเชื่อมโยงเฉพาะไฟล์ที่ทำงานได้หรือไลบรารีที่ใช้ร่วมกันที่ได้รับผลกระทบเท่านั้นแม้จะยังอยู่ในระหว่างการพัฒนา การทดสอบเบื้องต้นแสดงให้เห็นว่าค่าโสหุ้ยของการแซนด์บ็อกซ์ของ Nix มีน้อยมากสำหรับงานการคอมไพล์แบบเพิ่มเติม อย่างไรก็ตาม ฟีเจอร์บางอย่างยังขาดอยู่ เช่น การจัดการเป้าหมายที่ขึ้นอยู่กับไฟล์ซอร์สที่สร้างขึ้น (เช่น ตัวแยกวิเคราะห์ bison ของ Nix) ซึ่งปัจจุบันกำลังถูกติดตามเป็นปัญหาที่ยังเปิดอยู่เป้าหมายระยะยาวคือถ้าคุณไม่เปลี่ยนส่วนหัวและเปลี่ยนเพียง C/C++ เดียว ไม่ว่าจะอยู่ที่ไหนในกราฟการสร้างสำหรับระบบทั้งหมดของคุณ คุณควรจะได้รับการคอมไพล์ใหม่อย่างรวดเร็วเฉพาะไฟล์นั้น + เชื่อมโยงใหม่เฉพาะไฟล์ที่ทำงานได้/ไลบรารีที่ใช้ร่วมกันที่ไฟล์วัตถุเอาต์พุตถูกสร้างขึ้นคุณสมบัติหลักของ nix-ninjaแยกวิเคราะห์ไฟล์ ninja.build และสร้าง derivation สำหรับแต่ละหน่วยการคอมไพล์จัดเก็บอินพุตและเอาต์พุตของการสร้างใน derivation แบบ content-addressed เพื่อความละเอียดในการทำงานแบบเพิ่มเติมมี CLI ที่เข้ากันได้กับ ninja (สามารถใช้แทนกันได้โดยตรง)รองรับการทำงานในเครื่องหรือภายใน Nix derivationความต้องการของระบบNix ที่เปิดใช้งานคุณสมบัติทดลอง:nix-commanddynamic-derivationsca-derivationsrecursive-nixเป้าหมายการพัฒนา0.1.0: การเปิดตัวครั้งแรกที่เน้นความถูกต้อง0.2.0: คุณสมบัติประสิทธิภาพหลักเพื่อให้การสร้างแบบเพิ่มเติมมีประสิทธิภาพการมุ่งเน้นเชิงกลยุทธ์ที่ไฟล์สร้าง Ninjaนักพัฒนาเลือกที่จะมุ่งเป้าไปที่ไฟล์สร้าง Ninja โดยเฉพาะ ซึ่งพิสูจน์แล้วว่าเป็นการตัดสินใจเชิงกลยุทธ์ การสนับสนุน Ninja ในฐานะการแสดงกราฟการสร้าง ทำให้ nix-ninja สามารถทำงานกับระบบการสร้างยอดนิยมหลายระบบเช่น CMake, meson, premake และ gn ที่สร้างไฟล์ Ninjaแนวทางนี้มีความเกี่ยวข้องเป็นพิเศษสำหรับชุมชน Nix เนื่องจาก Nix เองใช้ meson และสร้างไฟล์ Ninja การเลือกนี้ช่วยให้มีแนวทางแบบเพิ่มเติมที่สามารถระดมทุนได้เพื่อปรับปรุงประสิทธิภาพการสร้างทั่วทั้งระบบนิเวศ โดยเริ่มจากโปรเจกต์ขนาดใหญ่เช่น LLVM และ Chromium ที่จะได้รับประโยชน์มากที่สุดจากการคอมไพล์แบบเพิ่มเติมในขณะที่ nix-ninja ยังคงพัฒนาต่อไปสู่เป้าหมาย 0.1.0 ที่มุ่งเน้นความถูกต้องและการเปิดตัว 0.2.0 ต่อมาที่มีเป้าหมายด้านฟีเจอร์ประสิทธิภาพ โปรเจกต์นี้เป็นก้าวที่มีแนวโน้มดีในการทำให้การสร้าง Nix มีประสิทธิภาพมากขึ้นโดยไม่จำเป็นต้องเขียนระบบการสร้างที่มีอยู่ใหม่ทั้งหมด สำหรับนักพัฒนาที่ทำงานกับฐานโค้ดที่ซับซ้อน เครื่องมือนี้อาจช่วยปรับปรุงผลผลิตอย่างมีนัยสำคัญโดยลดเวลาในการคอมไพล์และให้การเพิ่มเติมที่ละเอียดยิ่งขึ้นผ่าน content-addressed derivations ของ Nixอ้างอิง: nix-ninja
1 ชั่วโมงที่ผ่านมา
InitWare ปรากฏตัวเป็นทางเลือกที่พกพาได้และเป็นโมดูลมากกว่า systemd
สตาร์ทอัพ
2 ชั่วโมงที่ผ่านมา
InitWare ปรากฏตัวเป็นทางเลือกที่พกพาได้และเป็นโมดูลมากกว่า systemd
Bill Gates ฉลองครบรอบ 50 ปีของ Microsoft ด้วยการเปิดเผยซอร์สโค้ดดั้งเดิมของ BASIC
Microsoft
2 ชั่วโมงที่ผ่านมา
Bill Gates ฉลองครบรอบ 50 ปีของ Microsoft ด้วยการเปิดเผยซอร์สโค้ดดั้งเดิมของ BASIC
รายได้ ChatGPT พุ่งสูงถึง 415 ล้านดอลลาร์ต่อเดือน เมื่อผู้สมัครสมาชิกหลั่งไหลเข้าใช้ฟีเจอร์พรีเมียม
3 ชั่วโมงที่ผ่านมา
รายได้ ChatGPT พุ่งสูงถึง 415 ล้านดอลลาร์ต่อเดือน เมื่อผู้สมัครสมาชิกหลั่งไหลเข้าใช้ฟีเจอร์พรีเมียม
Apple ครบรอบ 49 ปี: นวัตกรรมที่ขยายไปถึงการจัดการแบตเตอรี่ iPhone
Apple
4 ชั่วโมงที่ผ่านมา
Apple ครบรอบ 49 ปี: นวัตกรรมที่ขยายไปถึงการจัดการแบตเตอรี่ iPhone
Anthropic เปิดตัว Claude for Education เพื่อเปลี่ยนแปลงบทบาทของ AI ในการศึกษาระดับอุดมศึกษา
ปัญญาประดิษฐ์
4 ชั่วโมงที่ผ่านมา
Anthropic เปิดตัว Claude for Education เพื่อเปลี่ยนแปลงบทบาทของ AI ในการศึกษาระดับอุดมศึกษา
ข่าวลือ Google Pixel 10 Pro Fold: ดีไซน์เดิม ราคาถูกลง แต่ยังมีข้อกังวลเรื่องกล้อง
โทรศัพท์
5 ชั่วโมงที่ผ่านมา
ข่าวลือ Google Pixel 10 Pro Fold: ดีไซน์เดิม ราคาถูกลง แต่ยังมีข้อกังวลเรื่องกล้อง
Samsung Galaxy Ring 2 อาจมาพร้อมเทคโนโลยีแบตเตอรี่โซลิดสเตทที่ปฏิวัติวงการในปี 2025
อุปกรณ์สวมใส่
8 ชั่วโมงที่ผ่านมา
Samsung Galaxy Ring 2 อาจมาพร้อมเทคโนโลยีแบตเตอรี่โซลิดสเตทที่ปฏิวัติวงการในปี 2025
Google เสริมความปลอดภัยให้ Chrome ด้วยข้อกำหนด HTTPS ใหม่และนำส่วนขยายแบบเดสก์ท็อปมาสู่ Android
ความปลอดภัย
9 ชั่วโมงที่ผ่านมา
Google เสริมความปลอดภัยให้ Chrome ด้วยข้อกำหนด HTTPS ใหม่และนำส่วนขยายแบบเดสก์ท็อปมาสู่ Android
พบ Samsung Galaxy M56 มาพร้อม Exynos 1480: อาจเป็นการลดสเปคจาก M55?
โทรศัพท์
10 ชั่วโมงที่ผ่านมา
พบ Samsung Galaxy M56 มาพร้อม Exynos 1480: อาจเป็นการลดสเปคจาก M55?
Mithril.js: เฟรมเวิร์กน้ำหนักเบาที่ยืนหยัดผ่านกาลเวลา
13 ชั่วโมงที่ผ่านมา
Mithril.js: เฟรมเวิร์กน้ำหนักเบาที่ยืนหยัดผ่านกาลเวลา
ไลบรารี Textcase ของ Python แก้ไขความท้าทายในการแปลงรูปแบบตัวอักษรโดยไม่ต้องพึ่งพาไลบรารีอื่น
13 ชั่วโมงที่ผ่านมา
ไลบรารี Textcase ของ Python แก้ไขความท้าทายในการแปลงรูปแบบตัวอักษรโดยไม่ต้องพึ่งพาไลบรารีอื่น
Headscale ได้รับความนิยมในกลุ่มผู้ใช้ Self-Host แม้จะมีความกังวลด้านความปลอดภัย
ความปลอดภัย
14 ชั่วโมงที่ผ่านมา
Headscale ได้รับความนิยมในกลุ่มผู้ใช้ Self-Host แม้จะมีความกังวลด้านความปลอดภัย
Age LAN Server รักษาฟังก์ชันการเล่นแบบหลายผู้เล่นสำหรับ Age of Empires Definitive Editions
เกมคอมพิวเตอร์
14 ชั่วโมงที่ผ่านมา
Age LAN Server รักษาฟังก์ชันการเล่นแบบหลายผู้เล่นสำหรับ Age of Empires Definitive Editions
จุดติดตามจากเครื่องพิมพ์: การเฝ้าระวังที่ซ่อนอยู่ในงานพิมพ์สีและวิธีรับมือ
ความปลอดภัย
19 ชั่วโมงที่ผ่านมา
จุดติดตามจากเครื่องพิมพ์: การเฝ้าระวังที่ซ่อนอยู่ในงานพิมพ์สีและวิธีรับมือ
Google NotebookLM เพิ่มฟีเจอร์ค้นหาแหล่งข้อมูลเว็บ แต่ผู้ใช้ยังต้องการฟีเจอร์เพิ่มเติม
ปัญญาประดิษฐ์
เมื่อวาน
Google NotebookLM เพิ่มฟีเจอร์ค้นหาแหล่งข้อมูลเว็บ แต่ผู้ใช้ยังต้องการฟีเจอร์เพิ่มเติม
การอัปเดตการติดตามแบบแม่นยำด้วย UWB ของ Google Find My Device ใกล้เสร็จสมบูรณ์
แอปพลิเคชัน
เมื่อวาน
การอัปเดตการติดตามแบบแม่นยำด้วย UWB ของ Google Find My Device ใกล้เสร็จสมบูรณ์
แว่นตาอัจฉริยะ Hypernova ของ Meta จะเปิดตัวปีนี้ พร้อมจอแสดงผลในตัว ราคาเกิน 1,000 ดอลลาร์
อุปกรณ์สวมใส่
เมื่อวาน
แว่นตาอัจฉริยะ Hypernova ของ Meta จะเปิดตัวปีนี้ พร้อมจอแสดงผลในตัว ราคาเกิน 1,000 ดอลลาร์
Sony เปิดตัวไลน์อัพทีวี Bravia ปี 2025: รุ่นเรือธง QD-OLED ใหม่สัญญาว่าจะเพิ่มความสว่างขึ้น 50%
เมื่อวาน
Sony เปิดตัวไลน์อัพทีวี Bravia ปี 2025: รุ่นเรือธง QD-OLED ใหม่สัญญาว่าจะเพิ่มความสว่างขึ้น 50%
RTX 5080 กลายเป็นจีพียู Nvidia ซีรีส์ 50 รุ่นแรกที่ปรากฏในการสำรวจฮาร์ดแวร์ของ Steam
การ์ดจอ
เมื่อวาน
RTX 5080 กลายเป็นจีพียู Nvidia ซีรีส์ 50 รุ่นแรกที่ปรากฏในการสำรวจฮาร์ดแวร์ของ Steam