Мининовости
Мелкие изменения: стабилизация API, новые методы и impl, правки Cargo.
У ненулевых целочисленных типов появился разбор записи с указанным основанием счётной системы. До этого умели только десятичную.
В relibc реализованы posix_spawn и posix_spawnp с полным набором структур для действий над файлами и атрибутов. Это стандартный способ запустить процесс в одном вызове, без пары fork плюс exec.
У владельца значения в куче появились методы получения сырого указателя на содержимое. Раньше для этого требовалось приведение указателя к ссылке и обратно.
У обоих упорядоченных и неупорядоченных словарей появились методы, которые либо вставляют значение по умолчанию, либо возвращают ошибку из замыкания.
Появились операции полного приведения регистра, а не только приведения к верхнему или нижнему. Это то, что для сравнения строк без учёта регистра считается правильным во всех языках.
У числового литерала в процедурных макросах появились методы получения значения. Раньше это приходилось делать обходным путём.
У владельца пути появился метод, отдающий путь как строку сразу, без промежуточного преобразования и без проверки, что путь вообще выражается текстом.
У обоих вариантов результата появился метод: он применяет преобразование к имеющемуся значению, а при отсутствии возвращает значение по умолчанию для типа результата.
В relibc исправлена обработка ошибок в sem_trywait, sem_clockwait и sem_wait. Из-за ошибок в ней не работал потоковый модуль Python; заодно добавлена проверка переполнения размера в shmget.
В ядре Redox появился смешанный профилировщик: он строит флеймграф, где видны и системные вызовы, и код приложения, с переходом между ними. Вывод — SVG с кликабельным раскрытием деталей.
В relibc появился POSIX-способ открыть псевдотерминал и три ioctl-запроса к нему: получение номера терминала, разблокировка и проверка блокировки. Раньше это приходилось делать через /dev/ptmx вручную.
В ядре Redox переработан механизм таймаутов событий ввода-вывода, а в relibc добавлена его поддержка. Точность poll и epoll при ограничении по времени выросла заметно; автор сводки заявляет также четырёхкратное ускорение самих вызовов.
У типа пути появился метод проверки на отсутствие компонентов.
В ядре добавлены варианты системных вызовов call и std_fs_call, принимающие сразу несколько файловых дескрипторов. Обёртки появились в крейтах libredox и event.
Для файловой системы в памяти реализован вызов relpathat, возвращающий канонический путь разрешения символических ссылок относительно корня. Обёртки добавлены в крейты libredox и redox-scheme.