Выпуск языка программирования Rust 1.52

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
14-Май-2021 01:30

Опубликован релиз языка системного программирования Rust 1.52, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Автоматическое управление памятью в Rust избавляет разработчика от ошибок при манипулировании указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.
Основные новшества:
  • Убрана привязка к порядку выполнения команд "cargo check" и "cargo clippy". Раньше вызов "cargo clippy" после "cargo check" не приводил к запуску утилиты clippy (linter) из-за отсутствия разделения кэшей для данных режимов проверки. Теперь эта проблема решена и порядок вызова "cargo clippy" и "cargo check" перестал иметь значение.
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы:
  • Признак "const", определяющий возможность использования в любом контексте вместо констант, применён в методах:
  • Добавлена lint-проверка unsafe_op_in_unsafe_fn для определения обрамления unsafe-блоками unsafe-кода, используемого в unsafe-функциях.
  • Разрешено приведение mutable-указателей на массивы в форму указателей на тип, идентичный типу элемента массива.
    let mut x: [usize; 2] = [0, 0];
       let p = &mut x as *mut usize;
       let p = &mut x as *const usize;
  • В clippy (linter) добавлено 9 новых проверок.
  • В пакетном менеджере cargo для пакетов реализована поддержка поля "manifest_path" в JSON. В репозиторий crates.io добавлена поддержка указания информации о лицензиях в формате SPDX 3.11.
  • Разрешено указание нескольких фильтров при выполнении тестов, например запуск "cargo test -- foo bar" запустит все тесты, соответствующие маскам "foo" и "bar".
  • Применяемый по умолчанию инструментарий LLVM обновлён до версии LLVM 12.
  • Реализован третий уровень поддержки для платформ s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl и powerpc-unknown-openbsd. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.

===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_rust
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 02-Июн 19:00
Часовой пояс: UTC + 5