Tin tức

Nix-Ninja Mang Tính Năng Biên Dịch Gia Tăng Đến Nix Sử Dụng Các Derivation Động
Hệ sinh thái mã nguồn mở Nix đang chứng kiến một sự phát triển thú vị với công cụ nix-ninja, một công cụ hứa hẹn sẽ cách mạng hóa quy trình biên dịch bằng cách tận dụng tính năng thử nghiệm derivation động của Nix. Sự đổi mới này đã thu hút sự quan tâm đáng kể từ cộng đồng lập trình viên, đặc biệt là những người làm việc với các hệ thống build phức tạp.Dynamic Derivations: Con Đường Đến Phiên Bản Ổn ĐịnhMột trong những khía cạnh được thảo luận nhiều nhất trong cộng đồng là lộ trình để ổn định các dynamic derivation trong Nix. Hiện tại, nix-ninja phụ thuộc vào các tính năng thử nghiệm từ phiên bản chưa phát hành của Nix, điều này làm dấy lên câu hỏi về thời điểm các tính năng này có thể được hỗ trợ chính thức.Một nhà phát triển cốt lõi của Nix tham gia vào việc phát triển dynamic derivations đã cung cấp một số thông tin rõ ràng về lộ trình, giải thích rằng dynamic derivations phụ thuộc vào content-addressing derivations, vốn đã nằm trong tình trạng thử nghiệm trong một thời gian. Tuy nhiên, với nỗ lực tập trung và quản lý phạm vi, việc ổn định có thể đạt được trong tương lai gần. Nhà phát triển mô tả công việc còn lại là không thực sự quá nhiều mặc dù đó là một loạt các yak shaves - một thuật ngữ chỉ chuỗi các nhiệm vụ dường như không liên quan phải hoàn thành trước khi giải quyết mục tiêu chính.Tiềm Năng Hiệu Suất cho Các Build Phức TạpNhững ảnh hưởng về hiệu suất của nix-ninja đặc biệt hứa hẹn. Công cụ này nhằm mục đích cho phép biên dịch gia tăng thực sự, trong đó việc thay đổi một tệp C/C++ duy nhất ở bất kỳ đâu trong đồ thị build sẽ chỉ yêu cầu biên dịch lại tệp đó và liên kết lại chỉ các tệp thực thi hoặc thư viện chia sẻ bị ảnh hưởng.Mặc dù vẫn đang trong giai đoạn phát triển, các thử nghiệm ban đầu cho thấy chi phí overhead của sandbox Nix là không đáng kể đối với các tác vụ biên dịch gia tăng. Tuy nhiên, một số tính năng vẫn còn thiếu, chẳng hạn như xử lý đúng các mục tiêu phụ thuộc vào các tệp nguồn được tạo ra (như trình phân tích bison của Nix), hiện đang được theo dõi như một vấn đề cần giải quyết.Một mục tiêu dài hạn là nếu bạn không thay đổi các file header và chỉ thay đổi một file C/C++ duy nhất, ở bất kỳ đâu trong đồ thị build cho toàn bộ hệ thống, bạn sẽ nhận được quá trình biên dịch lại nhanh chóng chỉ cho file đó + liên kết lại chỉ các file thực thi/thư viện chia sẻ mà file đối tượng đầu ra được xây dựng trong đó.Các tính năng chính của nix-ninjaPhân tích các tập tin ninja.build và tạo ra một derivation cho mỗi đơn vị biên dịchLưu trữ đầu vào và đầu ra của quá trình xây dựng trong các derivation dựa trên nội dung để tăng tính tăng dần chi tiếtCLI tương thích với ninja (có thể được sử dụng như một giải pháp thay thế trực tiếp)Hỗ trợ chạy cục bộ hoặc bên trong một Nix derivationYêu cầuNix với các tính năng thử nghiệm được kích hoạt:nix-commanddynamic-derivationsca-derivationsrecursive-nixCác mốc phát triển0.1.0: Phiên bản đầu tiên tập trung vào tính chính xác0.2.0: Các tính năng hiệu suất chính để làm cho quá trình xây dựng tăng dần hiệu quảTập Trung Chiến Lược vào Các File Build NinjaCác nhà phát triển đã chọn nhắm vào các file build Ninja cụ thể, điều này đã chứng minh là một quyết định chiến lược. Bằng cách hỗ trợ Ninja làm đại diện cho đồ thị build, nix-ninja có thể làm việc với nhiều hệ thống build phổ biến như CMake, meson, premake và gn, những hệ thống tạo ra các file Ninja.Cách tiếp cận này đặc biệt phù hợp với cộng đồng Nix vì bản thân Nix sử dụng meson và tạo ra các file Ninja. Sự lựa chọn này cho phép một cách tiếp cận gia tăng, có thể thu hút sự đóng góp từ cộng đồng để cải thiện hiệu suất build trên toàn hệ sinh thái, bắt đầu với các dự án lớn như LLVM và Chromium, những dự án sẽ được hưởng lợi nhiều nhất từ việc biên dịch gia tăng.Khi nix-ninja tiếp tục phát triển hướng tới cột mốc 0.1.0 tập trung vào tính chính xác và phiên bản 0.2.0 tiếp theo nhắm vào các tính năng hiệu suất, dự án này thể hiện một bước tiến đầy hứa hẹn hướng tới việc làm cho các build Nix hiệu quả hơn mà không yêu cầu viết lại hoàn toàn các hệ thống build hiện có. Đối với các nhà phát triển làm việc với các codebase phức tạp, công cụ này có thể cải thiện đáng kể năng suất bằng cách giảm thời gian biên dịch và cung cấp tính gia tăng chi tiết hơn thông qua các derivation dựa trên nội dung của Nix.Tham khảo: nix-ninja
3 giờ trước
InitWare Nổi Lên Như Một Giải Pháp Thay Thế Linh Hoạt, Mô-đun Cho systemd
Khởi nghiệp
3 giờ trước

Bill Gates Kỷ Niệm 50 Năm Microsoft Bằng Việc Công Bố Mã Nguồn BASIC Nguyên Bản
Microsoft
3 giờ trước

Doanh thu ChatGPT tăng vọt lên 415 triệu đô la mỗi tháng khi người dùng đổ xô đến các tính năng cao cấp
4 giờ trước

Apple Tròn 49 Tuổi: Cách Đổi Mới Của Hãng Mở Rộng Đến Quản Lý Pin iPhone
Apple
5 giờ trước

Anthropic Ra Mắt Claude for Education Để Chuyển Đổi Vai Trò Của AI Trong Giáo Dục Đại Học
AI
5 giờ trước

Tin đồn về Google Pixel 10 Pro Fold: Thiết kế giữ nguyên, giá thấp hơn, nhưng vẫn còn lo ngại về camera
Điện thoại
6 giờ trước

Samsung Galaxy Ring 2 Có Thể Trang Bị Công Nghệ Pin Thể Rắn Cách Mạng Vào Năm 2025
Thiết bị đeo
9 giờ trước

Google Tăng cường Bảo mật cho Chrome với Yêu cầu HTTPS Mới và Mang Tiện ích Mở rộng Kiểu Desktop đến Android
Bảo mật
10 giờ trước

Samsung Galaxy M56 xuất hiện với Exynos 1480: Có phải là bước lùi so với M55?
Điện thoại
12 giờ trước

Mithril.js: Framework Nhẹ Đã Vượt Qua Thử Thách Của Thời Gian
14 giờ trước

Thư viện Textcase của Python giải quyết thách thức chuyển đổi kiểu chữ mà không cần phụ thuộc
14 giờ trước

Headscale Ngày Càng Được Ưa Chuộng Trong Cộng Đồng Tự Quản Lý Máy Chủ Bất Chấp Lo Ngại Về Bảo Mật
Bảo mật
15 giờ trước

Age LAN Server Bảo Tồn Chức Năng Chơi Nhiều Người cho Age of Empires Definitive Editions
Trò chơi máy tính
15 giờ trước

Chấm Theo Dõi Máy In: Giám Sát Ẩn trong Bản In Màu và Cách Đối Phó
Bảo mật
21 giờ trước

Google NotebookLM Bổ Sung Tính Năng Khám Phá Nguồn Web, Nhưng Người Dùng Vẫn Mong Muốn Nhiều Hơn
AI
Hôm qua

Cập nhật tính năng theo dõi chính xác UWB của Google Find My Device sắp hoàn thành
Ứng dụng
Hôm qua

Kính Thông Minh Hypernova của Meta Ra Mắt Năm Nay với Màn Hình Tích Hợp, Giá Trên 1.000 Đô la
Thiết bị đeo
Hôm qua

Sony Giới Thiệu Dòng TV Bravia 2025: Flagship QD-OLED Mới Hứa Hẹn Tăng 50% Độ Sáng
Hôm qua

RTX 5080 Trở Thành GPU Đầu Tiên Của Dòng Nvidia 50-Series Xuất Hiện Trong Khảo Sát Phần Cứng Steam
GPU
Hôm qua
