Linux 6.18-rc2 cập nhật quy tắc format Rust sau khi Linus Torvalds chỉ trích `rustfmt`

Linus Torvalds trước đó đã chỉ trích gay gắt công cụ rustfmt của Rust, gọi cơ chế kiểm tra định dạng của nó là mindless and completely crazy vì tự động gộp các lệnh import nhiều dòng thành một dòng. Để giải quyết, bản vá mới cho Linux 6.18-rc2 đã được merge, áp dụng một giải pháp workaround để giữ code Rust dễ đọc và tránh xung đột khi merge.

853739ed-072a-4c47-98ef-b9c340d9e0ec

Trong kỳ merge window của Linux 6.18, Linus Torvalds đã bình luận gay gắt về việc rustfmt công cụ định dạng mã tự động của Rust xử lý các câu lệnh import. Ông không hài lòng khi công cụ này tự động condensing nhiều dòng import thành một dòng duy nhất, gọi đây là hành vi mindless and completely crazy.

Miguel Ojeda, lập trình viên chính của dự án Rust for Linux, đã xác nhận vấn đề này trong bản merge mới nhất trên Linux Git. Ông giải thích: “Mặc định, rustfmt định dạng các import theo cách dễ gây conflicts khi merge và rebase, vì trong một số trường hợp, nó gộp nhiều item vào cùng một dòng.”

Để giải quyết lời chỉ trích của Torvalds và giúp mã Rust vận hành mượt mà hơn trong kernel, các bản vá mới đã được hợp nhất, dự kiến có mặt trong Linux 6.18-rc2. Các thay đổi này cập nhật lại guidelines của kernel.

guidelines chỉ rõ, rustfmt mặc định định dạng import theo cách dễ gây xung đột, ví dụ:

// Không sử dụng kiểu này.
use crate::{
    example1,
    example2::{example3, example4, example5},
    example6, example7,
    example8::example9,
};

Thay vào đó, kernel sẽ sử dụng bố cục dọc (vertical layout) như sau:

use crate::{
    example1,
    example2::{
        example3,
        example4,
        example5, //
    },
    example6,
    example7,
    example8::example9, //
};

Theo đó, mỗi item phải nằm trên một dòng riêng, và dấu ngoặc nhọn được sử dụng ngay khi có nhiều hơn một item trong danh sách. Để buộc rustfmt tuân thủ quy tắc mới này, nhóm phát triển sẽ sử dụng một workaround là trailing empty comment // vào cuối một số dòng, ngăn rustfmt tự động gộp chúng lại.

Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận