После долгих лет развития... Это будет последний несвязанный релиз серии 3.1.x. С этого момента bjam будет только частью более крупной системы Boost Build. Скорее всего, в какой-то момент название изменится. В качестве побочного эффекта этого шага люди будут получать более частое высвобождение джема (или как он в конечном итоге называется).
Новые встроенные модули MD5, SPLIT_BY_CHARACTERS, PRECIOUS, PAD, FILE_OPEN и UPDATE_NOW. Владимир П.
Убедитесь, что все дескрипторы файлов закрыты при выполнении действий в *nix. Noel B.
Исправьте предупреждения, патч от Матеуша Лоскота. Владимир П.
Добавить KEEP_GOING var, чтобы программно переопределить опцию «-q». Владимир П.
Добавьте больше параметров, до 19 из 9, для вызовов правил. Патч от Джонатана Биггара. Владимир П.
Печать вышла из строя, даже если обычно опция «-d0». Владимир П.
Создание bjam с vc10, также известный как Visual Studio 2010. Владимир П.
Больше макросов для обнаружения OSPLAT, патч от Джона В. Бито. Владимир П.
Добавить ПАРАЛЛЕЛИЗМ var, чтобы программно переопределить опцию «-j». Владимир П.
Tweak doc building позволяет создавать PDF-доки. Джон М.
3.1.17
Год в создании этого релиза имеет много улучшений стабильности и различных улучшений производительности. И благодаря усилиям Юрко код значительно более читаемый!
Отражать результаты вызова bjam из Python. Рене Р.
Для создания Windows: Переработать анализ и проверку аргументов, чтобы исправить обработку приведенных аргументов, аргументов вариантов и аргументов с помощью «=». — Рене Р.
Попробуйте обойти по крайней мере одну ошибку компилятора с GCC и переменным псевдонимом, которая вызывает сбои с записями хеширования файла кэша. Рене Р.
Добавьте -Wc,-fno-strict-aliasing для QCC/QNX, чтобы избежать тех же сбоев, что и в общей серии GCC 4.x (благодаря Никласу Ангаре за исправление). Рене Р.
В Windows пусть команда bjam унаследует stdin, так как некоторые команды предполагают, что он доступен. Рене Р.
В Windows не ограничивайте вывод бьяма ASCII, поскольку некоторые инструменты выводят символы в расширенных наборах символов. Рене Р.
Изолируйте запуск бьям-тестов для отдельных случаев бьям-тестирования, чтобы предотвратить возможные ошибки перетекания из одного теста, влияющие на другой тест. Отделите бьям, используемый для выполнения тестов, от тестируемого бьяма. И добавьте автоматическое восстановление тестируемого бьяма. Рене Р.
Исправьте некоторые возможные проблемы, выявленные Fortify build. Спасибо Стивену Роббинсу за то, что указал на проблемы. Рене Р.
Управляйте \n и \r последовательностями выхода. Владимир П.
Небольшие правки для удаления -Wall предупреждения. Рене Р.
Динамическая настройка размера буферного запроса pwd, чтобы учесть, когда PATH_MAX определяется по умолчанию, а не предоставляется библиотекой системы C. Рене Р.
Незначительное улучшение перф для bjam путем замены хеш-функции на более быструю версию. Только 1% дифф для дерева поднятия. Рене Р.
Обновленная информация о местоположении ошибки Boost Jam при анализе Jamfiles. Теперь он сообщает правильную информацию о местоположении ошибки при встрече с неожиданным EOF. Теперь он также сообщает, где недействительный лексический токен, который читается, начинается, а не заканчивается, что значительно облегчает поиск ошибок, таких как незакрытые цитаты или вьющиеся брекеты. Юрко Г.
Удаление архитектуры -xarch=generic. Как эта опция неизвестна, так и Sun компиляторы на Linux. Noel B.
Исправлена ошибка с сообщением T_FATE_ISTMP как T_FATE_ISTMP & T_FATE_NEEDTMP в то же время из-за недостающего перерыва в выключателе. Юрко Г.
Исправлена ошибка Boost Jam, которая иногда вызывает действия в зависимости от целей, которые еще не были построены. Юрко Г.
Добавлена недостающая документация для модификатора расширения переменной Boost Jam:T, который преобразует все задние слэши ('') в передние слэши ('/'). Юрко Г.
Добавить Boost Поддержка джема для выполнения командных строк длиной более 2047 символов (до 8191) при работе на Windows XP или более поздней версии ОС. Юрко Г.
Исправлена ошибка Boost Jam в Windows, в результате чего команда SHELL не работает правильно с некоторыми командами, содержащими цитаты. Юрко Г.
Исправлена потенциальная утечка памяти в функции Boost Jam builtin_shell(), которая появится, если Boost Jam когда-либо начнет выпускать выделенные струнные объекты. Юрко Г.
Все команды ECHO Boost Jam автоматически смывают стандартный вывод, чтобы сделать этот вывод более быстро отображаемым для пользователя. Юрко Г.
Сделано для повышения Тесты джема цитируют свое исполняемое имя bjam, когда называют его, позволяя этим исполняемым файлам содержать пробелы в своем имени и / или пути. Юрко Г.
Измените execunix.c, чтобы всегда использовать fork() вместо vfork() на Mac. Это работает вокруг известных проблем с бьямом на PPC под Tiger и проблемы, о которой сообщил Рене с бьямом на x86 под Leopard. Noel B.
Исправлена ошибка в базовом скрипте Jambase Boost Jam, в результате чего он устраняет сообщение об ошибке, отображаемое при многократном вызове правила бустерной сборки. Юрко Г.
При импорте из Python в модуль с пустой строкой в качестве имени импортируйте в корневой модуль. Владимир П.
Патч для встроенного правила Boost Jam NORMALIZE_PATH, а также соответствующее обновление для модуля path.jam Boost Build, где это правило использовалось для реализации соединения пути и связанных с ним операций. Юрко Г.
Исправлена ошибка, заставляющая Boost Jam не обрабатывать целевые имена файлов, указанные как короткие, так и длинные имена файлов. Юрко Г.
Расслабленный тест, игнорирующий случай с письмом. Роланд С.
Реализовал патч, внесённый Игорем Назаренко, реализовав функцию list_sort() для использования функции C qsort() вместо ручного алгоритма слияния-сорта. Делает некоторые сортировки списков (например, 1,2,1,2,1,2,1,2, ...) чрезвычайно быстрыми, в свою очередь значительно ускоряя некоторые сборки проектов. Юрко Г.
Исправлена ошибка с bjam, не обрабатывающая путь root Windows правильно без указания буквы диска. Юрко Г.
Решена проблема с возвратом значения 259 (постоянное значение Windows STILL_ACTIVE), в результате чего бьям никогда не обнаруживает, что он вышел, и поэтому продолжает работать в бесконечном цикле. Юрко Г.
Решена проблема с переходом bjam в активное состояние ожидания, наращивание ресурсов процессора, при ожидании завершения одного из его детских процессов, в то время как используются не все доступные слоты для детских процессов. Юрко Г.
Решил условие расы между обнаружением завершения процесса считывания/детского процесса bjam и генерацией/прекращением процесса ребенка, которое могло привести к тому, что bjam не будет собирать конечный результат завершенного процесса. Юрко Г.
Переход от вилки к вилке для выполнения действий по Дарвину для улучшения стабильности. Noel B.
Переформатирование и очистка кода. Юрко Г.
Внедрить встроенный файл. Владимир П.
3.1.16
Это в основном выпуск исправления ошибок.
Работайте с Windows CMD. EXE-программы, которые не смогут выполнить полностью пустой пакетный файл. Рене Р.
Добавить поддержку обнаружения и построения с помощью vc9. - Джон П.
Утечка памяти при закрытии действий. Спасибо Мартину Кортману за то, что он нашел это. Рене Р.
Различные улучшения для __TIMING_RULE__ и _ACTION_RULE__ целевых переменных крючков. Рене Р.
Изменить JAMDATE, чтобы использовать общий формат даты ISO. Рене Р.
Добавить тест на значение статуса результата простых действий, т.е. пустых действий. Рене Р.
Исправьте ошибку переполнения буфера в расширении @() подвыражений. Рене Р.
Проверьте инварианты пустых строк, вместо того, чтобы предполагать, что все строки выделены. И сбрасывать струны, когда они освобождаются. Рене Р.
Добавить OSPLAT=PARISC для HP-UX PA-RISC. -- Boris G.
Сделайте тихие действия действительно тихими, не распечатав выход команды. Выход для тихого действия по-прежнему доступен через __ACTION_RULE__. Рене Р.
Переключите intel-win32 для использования статического многопоточного времени выполнения, поскольку однопоточное статическое время выполнения больше не доступно. Рене Р.
При настройке OSPLAT проверьте __ia64 макрос. Борис Г.
Установите правильное время UNIX. Noel B.
Добавить -fno-strict-aliasing к компиляции с gcc. Это связано с проблемами аварий GCC-4.2. Борис Г.
Поддержка интеграции Python. Владимир П., Дэниел В.
Разрешить определение вариантов с помощью кавычек, т.е. ---with-python=xyz, работать вокруг оболочки CMD, используя = в качестве разделителя аргументов. Рене Р.
Добавить значения переменных, указанных с -s к . Модуль EVNRION, чтобы мы могли переопределять среду в командной строке. Владимир П.
Преобразовать NORMALIZE_PATH в /. -- Владимир П.
3.1.15
В этом выпуске видны различные исправления для давних проблем Perforce / Jam. Большинство из них связаны с выполнением действий параллельно с опцией -jN. Конечным результатом изменений является то, что запуск параллельных действий теперь надежно возможен в средах Unix и Windows. Большое спасибо Ноэлу за то, что он присоединился к усилиям по реализации и исправлению Unix.
Добавьте поддержку для создания bjam с pgi и наборами инструментов Pathscale. Noel B.
Внедряйте команды запуска действия через трубы (-p опция) для фиксации перемешанного вывода при использовании параллельного выполнения с опцией -j. Это реализовано для версий Unix и Windows (Win32/NT). Rene R., Noel B.
Добавьте «солнце» в качестве псевдонима в инструменты компилятора Sun Workshop. Рене Р.
Установите MAXLINE в jam.h до 23k байт для AIX. Поэтапное действие архива было нарушено стандартом MAXLINE 102400. Поскольку оболочка AIX использует буферный размер 24k по умолчанию для собственного использования, я уменьшил его до 23k. Noel B.
Используйте параметры вывода dir msvc, чтобы не загрязнять src dir компилируемыми файлами. Рене Р.
Небольшое исправление, поэтому -d+2 всегда будет показывать исполняемые «реальные» команды вместо случайного имени временного пакетного файла. Роланд С.
Добавить тест для проверки "bjam-n". Рене Р.
Добавить тест для проверки "bjam -d2". Рене Р.
Верните недостающий выход опции -n. Опция -o продолжает нарушаться, как это было в течение длительного времени из-за функции файла @. Рене Р.
Обновить поддержку GC для работы с Boehm GC 7.0 Рене Р.
Верните изменение BOOST_BUILD_PATH, поскольку каталог, переданный в бустер-билдинг, должен быть первым в поиске путей, иначе система локального построения проекта будет выбрана неправильно. Заказ был изменен, чтобы разрешить поиск альтернативных файлов user-config.jam из бустерной сборки. Это лучше делать с помощью --user-config= switch или аналогичного. Роланд С.
Первоначальная поддержка определения тела действия от Python. Владимир П.
Внедрение расширения @() на этапе разбора. Рене Р.
Определите OSPLAT var безоговорочно и более обобщенно, когда это возможно. Рене Р.
Исправьте незадекларированный INT_MAX на некоторых платформах. Рене Р.
Модифицированный execunix.c, чтобы добавить поддержку для завершения процессов, которые потребляют слишком много CPU или которые висят и не потребляют CPU вообще. Это в поддержку опции bjam-lx. Noel B.
Добавьте внутренние зависимости для действий, генерирующих несколько файлов, чтобы указать, что все цели появляются только тогда, когда появляется первая цель. Это устраняет давнюю проблему Perforce/Jam с многофайловыми действиями и параллельным выполнением (-jN). Рене Р.
Добавьте тест опции ограничения -l теперь, когда она реализована на Windows и Unix. Рене Р.
Добавить тест на расширение no-op @(). Рене Р.
Обрабатывайте недействительные форматы @() в качестве прямой замены вместо ошибки. Рене Р.
Различные исправления для компиляции на SGI/Irix. Noel B.
Добавьте выход для тайм-аута действий с опцией -lN. Rene R., Noel B.
Необходимо добавить (согласно XOPEN) для определения WIFEXITED и WEXITSTATUS. Маркус С.
Статья History раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 46. Boost.Jam : 3.1.19 может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.