Выпуск системы сборки SCons 4.5.1

good-penguin.png

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 приведены здесь.

>>> Подробности

©  Linux.org.ru