Мининовости
Мелкие изменения: стабилизация API, новые методы и impl, правки Cargo.
В загрузчике Redox сделан текстовый редактор переменных окружения. Через него задаются уровни логирования ядра, инициализации, драйверов и библиотеки C — журналирование ведётся через крейт log.
У срезов появился метод, который упорядочивает элементы только заданного диапазона, оставляя остальные как есть. Пока помечен как нестабильный.
У атомарного указателя появился константный конструктор нулевого значения, симметричный уже существующему конструктору висячего значения.
Стабилизирован метод, возвращающий смещение элемента внутри среза, считая в элементах среза, а не в байтах. Частичная стабилизация: остальные методы той группы ждут появления новых типов диапазонов.
У ключа выгрузки отчёта о времени сборки убрано значение, выдающее результат в виде данных. Вместо него данные берутся из журналирования сборки и из новых команд отчётов.
Переменные окружения с путями к исполняемым файлам тестов стали доступны не только при сборке теста, но и при его выполнении.
В relibc реализована функция malloc_usable_size: она возвращает размер блока памяти вместе со служебной информацией аллокатора, а не только запрошенный. Это позволяет точно считать расход памяти и находить утечки.
В файловой системе RedoxFS удаление файла теперь откладывается до закрытия всех открытых на него дескрипторов. Это соответствует POSIX для анонимных файлов и удаления при закрытии.
Сборочный скрипт крейта может получать произвольные метаданные зависимостей, объявленные в манифесте. Раньше набор предопределённых полей был ограничен.
Принят RFC из серии о build-std: сборка стандартной библиотеки вместе с приложением получает явный контекст.
Добавляется несколько преобразований, которые раньше писали вручную: из символа в номер, из числа в логическое значение, из массива неинициализированных значений в обёртку и обратно.
У длительности появился метод деления на другую длительность с округлением вниз или вверх.
Появились методы, разворачивающие вложенное значение за ссылкой в один уровень — как с переносом владения, так и с изменяемой ссылкой.
В ядре появился трейт, который даёт аллокатору возможность сообщить, что переданный ему указатель на самом деле не указывает на память и освобождать её не нужно.
Доступ к полю времени публикации версии в записи индекса реестра перестал быть экспериментальным.