Опубликован релиз языка системного программирования Rust 1.40, основанного проектом Mozilla, сообщает OpenNET.
Основные нововведения:
- Добавлена возможность пометки структур (struct) и перечислений (enum c блоком Variant) при помощи атрибута «#[non_exhaustive]», который позволяет в дальнейшем добавлять новые поля и варианты в объявленные структуры и перечисления.
- Добавлена возможность вызова процедурного макроса mac! () в контексте типа.
- В блоках «extern { … }» добавлена возможность использования процедурных и атрибутных макросов, в том числе макросов «bang! ()».
- В макросах реализована возможность генерации элементов «macro_rules!» — как в напоминающих функции макросах («mac! ()»), так и в макросах в форме атрибутов (»#[mac]»).
- В элементе сопоставления $m: meta добавлена поддержка произвольных значений перечислений токенов («[TOKEN_STREAM]», «{TOKEN_STREAM}» и «(TOKEN_STREAM)»).
- В режиме Rust 2015 активирован вывод ошибки для проблем, выявленных при проверке заимствования переменных (borrow checker) c использованием техники NLL (Non-Lexical Lifetimes).
- Признак «const», определяющий возможность использования в любом контексте вместо констант, применён для функции is_power_of_two (для беззнаковых целых чисел).
- В разряд стабильных переведены новые API.
- В пакетном менеджере cargo реализовано кэширование на диске предупреждений компилятора. В команду «cargo metadata» добавлена опция «--filter-platform» для показа в графе разрешения зависимостей только пакетов, привязанных к указанной целевой платформе. Добавлен параметр конфигурации http.ssl-version для определения допустимых версий TLS. Добавлена возможность публикации секции «dev-dependencies» без указания ключа «version».
- В компиляторе rustc обеспечен третий уровень поддержки целевых платформ thumbv7neon-unknown-linux-musleabihf, aarch64-unknown-none-softfloat, mips64-unknown-linux-muslabi64 и mips64el-unknown-linux-muslabi64. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования и публикации официальных сборок.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.