Команда Rust core выпустила стабильную версию Rust 1.3 с новыми значениями времени жизни объектов по умолчанию.
Язык системного программирования Rust разработан таким образом, чтобы быть безопасным, быстрым и параллельным без сборщика мусора, который хорош для встраивания в другие языки, написания программ с определенными требованиями к пространству и времени, а также написания низкоуровневого кода, такого как драйверы устройств и операционные системы.
Стабильная версия Rust 1.3 работает быстрее, чем предыдущие версии, в основном из-за изменений в стандартной библиотеке. В релиз входит новая книга под названием Rustonomicon, руководство по “Темным искусствам продвинутого и небезопасного программирования Rust». Согласно сообщению в блоге на языке Rust:
“хотя она все еще находится в черновике, эта книга уже дает глубокое освещение некоторых темных уголков Ржавчины”.
Новая версия также выиграла от стабилизации API, включая новый API продолжительности и улучшения ошибок и хэширования/хеширования.
Акцент на повышение производительности за счет изменения стандартной библиотеки означает, что сопоставитель подстрок теперь использует более эффективный алгоритм; есть улучшения в заполнении нуля, которые ускоряют Vec::resize и Read::read_to_end; и реализация PartialEq на срезах теперь намного быстрее.
Команда также добавила предварительную поддержку для таргетинга на Windows XP. Хотя они не намерены рассматривать Windows XP как платформу “первого уровня”, теперь можно создавать код Rust для XP, если вы избегаете определенных частей стандартной библиотеки. В сообщении в блоге говорится, что работа над интеграцией MSVC toolchain продолжается, с полной поддержкой (на 64-разрядной версии) доставки в бета-версии 1.4, которая была отправлена одновременно со стабильной версией 1.3.
Основным усовершенствованием Cargo, менеджера пакетов Rust,является поддержка укупорки ворса. Идея заключается в том, что линты в ваших зависимостях не должны влиять на вашу способность к чистой компиляции, что, в свою очередь, облегчает настройку работы линтов без лишних хлопот в экосистеме.
Одно критическое изменение в новой версии происходит в новом времени жизни объекта по умолчанию. В примечаниях к выпуску на GitHub говорится, что эти:
“были включены после цикла предупреждений об изменении”.
Теперь такие типы, как &’a Box