Rust 1.24 Добавляет Переформатирование


Последняя версия Rust добавила инструмент для форматирования кода в стандартном стиле . Язык системного программирования также имеет инкрементную компиляцию, включенную по умолчанию.

Rust изначально спонсировался Mozilla и был разработан, чтобы быть безопасным, быстрым и параллельным без сборщика мусора. Он использует инновационные средства для обеспечения безопасности системного программирования с помощью языка, построенного таким образом, чтобы проблемы могли быть обнаружены во время компиляции. Предполагаемое использование включает в себя встраивание в другие языки, написание программ с определенными требованиями к пространству и времени, а также написание кода низкого уровня, например драйверов устройств и операционных систем.

Новое форматирование utlitiy-это предварительный выпуск rustfmt. По умолчанию применяется стиль, соответствующий руководству по стилю Rust, которое было формализовано в процессе style RFC. Этот стиль аналогичен стилю, используемому другими формататорами кода на основе LLVM.

Другим основным улучшением является то, что инкрементная компиляция теперь включена по умолчанию. Инкрементная компиляция преодолевает проблему необходимости компиляции всего проекта, сделав лишь небольшое изменение. Инкрементная компиляция компилирует только код, который вы фактически изменили, что означает, что вторая сборка выполняется быстрее, и эта функция теперь включена по умолчанию.

Последнее примечательное изменение в новом выпуске-лучшая обработка неопределенного поведения. Разработчики говорят:

«Rust обычно стремится свести к минимуму неопределенное поведение, не имея ничего из этого в безопасном коде и как можно меньше в небезопасном коде. Одна из областей, где вы могли бы вызвать UB, — это когда паника! пересекает границу FFI.»

Другими словами, это:

extern «C» fn panic_in_ffi() {

паника!(«Тест»);

}

Который не может работать, так как точный механизм работы паники должен быть согласован с тем, как работает ABI «C» в этом примере или любой другой ABI в других примерах. В Rust 1.24 этот код теперь будет прерываться вместо того, чтобы вызывать неопределенное поведение.

Новая версия доступна на GitHub.


Добавить комментарий