6 марта состоялся выпуск системы сборки Scons 4.5.0. Вслед за ним было выпущено корректирующее обновление 4.5.1.
SCons – инструмент автоматизации сборки программных проектов, автоматически анализирующий зависимости между файлами исходного кода и требования адаптации к целевой операционной системе.
Помимо исправлений ошибок и небольших улучшений к основным изменениям в версии 4.5.0 относятся:
Новые возможности
-
Добавлен новый метод
ValidateOptions(), который будет проверять, что все опции командной строки являются параметрами SCons или добавлены с помощью методаAddOption()в файлыSConstruct/SConscript. Эти параметры командной строки не должны вызываться до завершения всех вызовов методаAddOption(). -
Добавлена экспериментальная опция
--experimental=tm_v2, которая активирует новую реализацию распараллеливания задач от Эндрю Морроу (Andrew Morrow). Опция также может быть активирована с помощью методаSetOption(). -
Добавлен параметр
FILE_ENCODING, с помощью которого можно явно указать кодировку текста для файлов, записанных с помощью правил сборкиTextfile()иSubstfile(). Если параметр не задан, то по умолчанию указанные правила сборки записывают файлы в кодировке UTF-8.
Изменения/улучшения существующих возможностей
-
Добавлен поддержка опции
-fsanitizeдля методаParseFlags(). Её действие распространяется на переменныеCCFLAGSиLINKFLAGS. -
Вызовы методов
EnsureSConsVersion()иEnsurePythonVersion()больше не инициализируют окружение по умолчанию, т.е.DefaultEnvironment. -
Вывод в терминал метода
Chmod()теперь отображается в восьмеричном формате, используя синтаксис современного языка Python (0o755вместо0755). -
Проведена миграция реализации ведения логов для опции
--taskmastertraceна использование встроенного модуля ведения логов языка Python. Добавлено ведение логов для новой реализации распараллеливания задач от Эндрю Морроу (Andrew Morrow). -
Добавлена предварительная поддержка языка Python 3.12.
-
Вызов команды сборки
LaTeXтеперь происходит только после выполнения вызововbiber/bibtex, если это необходимо. -
Конфигурация контекстных методов
CheckLibиCheckLibWithHeaderтеперь расширена добавлением двух дополнительных аргументов:append, который управляет добавлением в конец списка (по умолчанию) или в начало списка$LIBSобнаруженных библиотек; иunique, который определяет добавлять ли библиотеку в список$LIBS, если она уже представлена в нём. Это изменение привносит дополнительную возможность управления списком библиотек с помощью обычных методовAppend,AppendUnique,Prepend,PrependUnique. -
Значения переменной
CPPDEFINES, добавленные с использованием типа данных «словарь», больше не сортируются по значению ключа. Раньше сортировка использовалась, чтобы обеспечить сохранение порядка параметров командной строки при последовательных запусках SCons, но это приводило к тому, что макросы не всегда вызывались в том порядке, в котором были переданы. Улучшения интерпретатора языка Python больше не требуют использования сортировки. Может происходить однокаратная переборка целей, которые использовали отсортированные ключи в рамках своих вызовов.
Корректирующий выпуск SCons 4.5.1 исправляет следующую ошибку:
- В определённых случаях после вызова метода
Clone(), новое окружение разделяет переменнуюCPPDEFINESс исходным окружениемEnvironment(), которое было скопировано. Значения этих переменных в данных окружениях должны быть независимы.
С полным списком изменений и исправлений ошибок в версии 4.5.0 можно ознакомиться по ссылке.
Изменения версии 4.5.1 приведены здесь.
>>> Подробности










