Команда Rust выпустила версию 1.100.0 12 ноября. Одно из главных изменений — полная стабилизация типа ! после десяти лет работы и пяти неудачных попыток. Он описывает вычисления, которые не возвращают никакого значения. Раньше его уже можно было указывать как возвращаемый тип функции; теперь его разрешено использовать везде, например для обозначения невозможной ошибки
В стандартной библиотеке стабилизировали основу интерфейса собственных распределителей памяти. Разработчики библиотек могут применять их с векторами и контейнерами для размещения отдельных значений в куче. Поддержка остальных коллекций ещё требует работы. При обновлении возможны и изменения совместимости: в старых редакциях языка изменилось поведение вывода типа для вычислений без результата
Система сборки Cargo получила предупреждения о неиспользуемых зависимостях. Проверка срабатывает лишь при сборке всех целей, которые могут использовать соответствующую запись; зависимости для разработки она пока не проверяет. Также появилась необязательная настройка минимального возраста версии пакета: слишком свежие выпуски пропускаются, кроме уже закреплённых в файле фиксации зависимостей. При установке пакетов через Cargo это ограничение не действует и полноценную проверку обновлений не заменяет
Изменилось и размещение промежуточных файлов сборки: теперь хеш конфигурации последовательно используется в структуре каталогов, чтобы уменьшить конфликты кеша. Внешним инструментам, которые ищут результаты сборки по прежним путям, может потребоваться доработка
А насколько всё это сократит ожидание сборки в повседневной работе? Поиск лишних зависимостей даёт разработчику конкретный повод пересмотреть состав проекта. Но полезность этой проверки придётся оценивать с учётом её ограничений: отсутствие предупреждения ещё не означает, что каждая подключённая библиотека нужна
Первоисточник — The Rust Release Team
Сообщите редакции. Существенные исправления мы отмечаем в материале