Более эффективное использование системной памяти во время выполнения является основным улучшением последней версии Rust версии 1.28.
Улучшения прямо соответствуют первоначальным целям разработки Rust, которые должны быть безопасными, быстрыми и параллельными без использования сборщика мусора. Он построен таким образом, что проблемы обнаруживаются во время компиляции, чтобы его можно было безопасно использовать для системного программирования. Rust изначально спонсировался Mozilla и предназначен для использования в ситуациях, включая встраивание в другие языки, написание программ с определенными требованиями к пространству и времени, а также написание низкоуровневого кода, такого как драйверы устройств и операционные системы.
Первое улучшение — это недавно стабилизированные глобальные распределители, которые обрабатывают, как программы в Rust получают память из системы во время выполнения.В предыдущих выпусках было невозможно изменить способ получения памяти,поэтому разработчикам приходилось использовать альтернативные варианты, такие как jemalloc или системный распределитель, в зависимости от базовой системы. В этой версии атрибут глобального распределителя теперь стабилен, что позволяет программам Rust устанавливать свой распределитель на системный распределитель. Разработчики также могут определять новые распределители на основе признака GlobalAlloc.
В дополнение к стабилизированной характеристике GlobalAlloc были также стабилизированы другие библиотеки. В частности, ненулевые типы чисел теперь можно использовать для обертывания стандартных целочисленных типов без знака, чтобы обеспечить оптимизацию размера, когда нет необходимости обрабатывать данные, которые никогда не будут равны нулю.
Груз — это еще одна основная область, на которую обратили внимание. Cargo-это менеджер пакетов Rust, и он больше не позволит вам публиковать ящики со сценариями сборки, которые изменяют каталог src. Каталог src в ящике следует считать неизменяемым, по мнению разработчиков Rust.
Также была продолжена работа над параметрами диагностики в этом выпуске, с акцентом на сообщения об ошибках форматирования. Раньше вам говорили только о том, что строка формата недопустима; теперь вам говорят о конкретной причине, по которой строка формата недопустима.
Rust 1.28 теперь доступен на GitHub.