- 3.1.18
-
经过多年的 bjam 开发... 这是 3.1.x 系列的最后一个非捆绑版本。从现在开始,bjam 将仅作为更大的 Boost Build 系统的一部分进行捆绑。因此,它可能会在某个时候更改名称。作为此举的副作用,人们将获得更频繁的 bjam 版本(或最终称为任何名称)。
- 新增内置函数:MD5、SPLIT_BY_CHARACTERS、PRECIOUS、PAD、FILE_OPEN 和 UPDATE_NOW。 -- Vladimir P.
- 确保在 *nix 上执行操作完成后关闭所有文件描述符。 -- Noel B.
- 修复警告,来自 Mateusz Loskot 的补丁。 -- Vladimir P.
- 添加 KEEP_GOING 变量以通过编程方式覆盖 '-q' 选项。 -- Vladimir P.
- 将规则调用中的参数增加到 19 个(从 9 个开始)。来自 Jonathan Biggar 的补丁。 -- Vladimir P.
- 即使通常情况下 '-d0' 选项处于静默状态,也要打印失败的命令输出。 -- Vladimir P.
- 使用 vc10(即 Visual Studio 2010)构建 bjam。 -- Vladimir P.
- 更多用于检测 OSPLAT 的宏,来自 John W. Bito 的补丁。 -- Vladimir P.
- 添加 PARALLELISM 变量以通过编程方式覆盖 '-j' 选项。 -- Vladimir P.
- 调整文档构建以允许生成文档的 PDF 版本。 -- John M.
- 3.1.17
-
经过一年的开发,此版本包含许多稳定性改进和各种性能改进。并且由于 Jurko 的努力,代码的可读性大大提高了!
- 反映从 Python 调用 bjam 的结果。 -- Rene R.
- 对于在 Windows 上构建:重新设计参数的解析和测试方式,以修复对带引号的参数、选项参数和带“=”的参数的处理。 -- Rene R.
- 尝试解决 GCC 和变量别名相关的至少一个编译器错误,该错误会导致哈希文件缓存条目崩溃。 -- Rene R.
- 为 QCC/QNX 添加 -Wc,-fno-strict-aliasing 以避免与通用 GCC 4.x 系列相同的别名崩溃(感谢 Niklas Angare 提供的修复)。 -- Rene R.
- 在 Windows 上,让子 bjam 命令继承 stdin,因为某些命令假定它可用。 -- Rene R.
- 在 Windows 上,不要将 bjam 输出限制为 ASCII,因为某些工具会输出扩展字符集中的字符。 -- Rene R.
- 将运行 bjam 测试隔离到各个 bjam 实例,以防止一个测试的错误可能影响另一个测试。将用于运行测试的 bjam 与正在测试的 bjam 分开。并添加正在测试的 bjam 的自动重新构建。 -- Rene R.
- 修复 Fortify 构建揭示的一些可能的溢出问题。感谢 Steven Robbins 指出这些问题。 -- Rene R.
- 处理 \n 和 \r 转义序列。 -- Vladimir P.
- 对次要编辑以删除 -Wall 警告。 -- Rene R.
- 动态调整 pwd 缓冲区查询大小,以允许在 PATH_MAX 默认定义而不是由系统 C 库提供时使用。 -- Rene R.
- 通过用更快的版本替换哈希函数,对 bjam 进行细微的性能改进。Boost 树的差异仅为 1%。 -- Rene R.
- 更新了 Boost Jam 在解析 Jamfiles 时错误位置的报告。现在,在遇到意外的 EOF 时,它会报告正确的错误位置信息。它现在还会报告读取无效词法标记开始的位置而不是结束的位置,这使得更容易找到诸如未关闭的引号或花括号之类的错误。 -- Jurko G.
- 从 build.jam 中删除了 -xarch=generic 架构,因为此选项在 Linux 上的 Sun 编译器中未知。 -- Noel B.
- 修复了 T_FATE_ISTMP 同时报告为 T_FATE_ISTMP & T_FATE_NEEDTMP 的错误,原因是 switch 语句中缺少 break。 -- Jurko G.
- 修复了 Boost Jam 的一个错误,该错误会导致它有时触发依赖于尚未构建的目标的操作。 -- Jurko G.
- 为 Boost Jam 的 :T 变量扩展修饰符添加了缺少的文档,该修饰符将所有反斜杠 ('\') 转换为正斜杠 ('/')。 -- Jurko G.
- 添加了 Boost Jam 对执行超过 2047 个字符(最多 8191 个字符)的命令行的支持,在 Windows XP 或更高版本的 OS 上运行时。 -- Jurko G.
- 修复了 Windows 上 Boost Jam 的一个错误,导致其 SHELL 命令无法与某些包含引号的命令一起正常工作。 -- Jurko G.
- 更正了 Boost Jam 的 builtin_shell() 函数中潜在的内存泄漏,如果 Boost Jam 曾经开始释放其分配的字符串对象,则会出现此泄漏。 -- Jurko G.
- 使所有 Boost Jam 的 ECHO 命令自动刷新标准输出,以便更及时地将该输出显示给用户。 -- Jurko G.
- 使 Boost Jam 测试在调用时引用其 bjam 可执行文件名,允许这些可执行文件在其名称和/或路径中包含空格。 -- Jurko G.
- 更改 execunix.c 以始终在 Mac 上使用 fork() 而不是 vfork()。这解决了 Tiger 下 PPC 上 bjam 的已知问题以及 Rene 报告的 Leopard 下 x86 上 bjam 的问题。 -- Noel B.
- 更正了 Boost Jam 的基本 Jambase 脚本中的一个错误,该错误导致它在多次调用其 boost-build 规则时修剪显示的错误消息。 -- Jurko G.
- 当从 Python 导入到名称为空字符串的模块时,导入到根模块。 -- Vladimir P.
- 针对内置 Boost Jam 规则 NORMALIZE_PATH 的补丁,以及 path.jam Boost Build 模块的相应更新,该规则用于实现路径连接和相关操作。 -- Jurko G.
- 修复了一个错误,导致 Boost Jam 未能正确处理同时指定为短文件名和长文件名的目标文件名。 -- Jurko G.
- 放宽测试,忽略驱动器盘符的大小写。 -- Roland S.
- 实现了 Igor Nazarenko 贡献的补丁,重新实现了 list_sort() 函数以使用 C qsort() 函数而不是手工制作的合并排序算法。使某些列表排序(例如 1,2,1,2,1,2,1,2, ...)速度极快,从而显着加快某些项目的构建速度。 -- Jurko G.
- 修复了 bjam 未能正确处理没有指定驱动器盘符的 '' 根 Windows 路径的错误。 -- Jurko G.
- 解决了子进程返回 259(Windows 常量 STILL_ACTIVE)导致 bjam 无法检测到它已退出并因此无限循环运行的问题。 -- Jurko G.
- 解决了 bjam 在等待其子进程之一终止时进入活动等待状态,占用处理器资源,而并非所有可用的子进程插槽都正在使用的问题。 -- Jurko G.
- 解决了 bjam 的输出读取/子进程终止检测与子进程的输出生成/终止之间的竞争条件,这可能导致 bjam 未能收集已终止进程的最终输出。 -- Jurko G.
- 在 Darwin 上执行操作时,从 vfork 更改为 fork 以提高稳定性。 -- Noel B.
- 代码重格式化和清理。 -- Jurko G.
- 实现 ISFILE 内置函数。 -- Vladimir P.
- 3.1.16
-
这主要是一个错误修复版本。
- 解决某些 Windows CMD.EXE 程序的问题,这些程序在执行完全为空的批处理文件时将失败。 -- Rene R.
- 添加对检测和使用
vc9
构建的支持。 -- John P.
- 修复关闭操作时的内存泄漏。感谢 Martin Kortmann 发现此问题。 -- Rene R.
- 对
__TIMING_RULE__
和 __ACTION_RULE__
目标变量钩子进行了各种改进。 -- Rene R.
- 更改
JAMDATE
以使用常见的 ISO 日期格式。 -- Rene R.
- 添加对简单操作(即空操作)的结果状态值的测试。 -- Rene R.
- 修复扩展
@()
子表达式时的缓冲区溢出错误。 -- Rene R.
- 检查空字符串不变量,而不是假设所有字符串都已分配。并在释放字符串时重置它们。 -- Rene R.
- 为 HP-UX PA-RISC 添加
OSPLAT=PARISC
。 -- Boris G.
- 通过不打印命令输出,使静默操作真正静默。静默操作的输出仍然可以通过
__ACTION_RULE__
获得。 -- Rene R.
- 将 intel-win32 切换为使用静态多线程运行时,因为单线程静态运行时不再可用。 -- Rene R.
- 设置
OSPLAT
时,检查 __ia64
宏。 -- Boris G.
- 使 Unix 定时正常工作。 -- Noel B.
- 在使用 gcc 编译时添加
-fno-strict-aliasing
。这解决了 GCC-4.2 崩溃问题。 -- Boris G.
- 增强了对 Python 集成的支持。 -- Vladimir P.,Daniel W.
- 允许指定带引号的选项,即
--with-python=xyz
,以解决 CMD shell 使用 =
作为参数分隔符的问题。 -- Rene R.
- 将使用 -s 指定的变量的值添加到 .EVNRION 模块中,以便我们可以在命令行上覆盖环境。 -- Vladimir P.
- 使 NORMALIZE_PATH 将 \ 转换为 /。 -- Vladimir P.
- 3.1.15
-
此版本对长期存在的 Perforce/Jam 问题进行了一系列修复。其中大多数与使用 -jN 选项并行运行操作有关。更改的最终结果是,现在可以在 Unix 和 Windows 环境中可靠地并行运行操作。非常感谢 Noel 加入这项工作,以实现和修复 Unix 方面的内容。
- 添加对使用 pgi 和 pathscale 工具集构建 bjam 的支持。 -- Noel B.
- 实现通过管道运行操作命令(-p 选项),以修复在使用 -j 选项并行执行时输出混乱的问题。这已在 Unix 变体和 Windows(Win32/NT)上实现。 -- Rene R.,Noel B.
- 添加“sun”作为 Sun Workshop 编译器工具的别名。 -- Rene R.
- 为 AIX 将 jam.h 中的 MAXLINE 设置为 23k 字节。分段归档操作在默认的 MAXLINE 为 102400 时出现故障。由于 AIX shell 使用了 24k 默认缓冲区大小的一部分供自身使用,因此我将其减少到 23k。-- Noel B.
- 利用 msvc 的输出目录选项,避免编译文件污染源代码目录。-- Rene R.
- 一个小小的修复,以便 -d+2 始终显示正在执行的“真实”命令,而不是随意显示临时批处理文件的文件名。-- Roland S.
- 添加测试以检查 'bjam -n'。-- Rene R.
- 添加测试以检查 'bjam -d2'。-- Rene R.
- 恢复 -n 选项丢失的输出。-o 选项由于 @ 文件功能,长期以来一直存在故障,现在仍然存在故障。-- Rene R.
- 更新 GC 支持,使其能够与 Boehm GC 7.0 协同工作。-- Rene R.
- 恢复 BOOST_BUILD_PATH 更改,因为传递给 boost-build 的目录应位于搜索路径的首位,否则项目本地构建系统将无法正确选择。更改顺序是为了允许从 boost build 搜索备用用户配置 jam 文件。最好使用 --user-config= 开关或类似方法来实现。-- Roland S.
- 初步支持从 Python 定义操作体。-- Vladimir P.
- 在解析阶段实现 @() 展开。-- Rene R.
- 在可能的情况下,无条件地更通用地定义 OSPLAT 变量。-- Rene R.
- 修复某些平台(例如 Linux)上未声明的 INT_MAX。-- Rene R.
- 修改 execunix.c 以添加对终止占用过多 CPU 或挂起且根本无法占用 CPU 的进程的支持。这是为了支持 bjam -lx 选项。-- Noel B.
- 为多文件生成操作添加内部依赖项,以指示所有目标仅在第一个目标出现时才会出现。这修复了 Perforce/Jam 在多文件操作和并行执行 (-jN) 方面长期存在的问题。-- Rene R.
- 添加对 -l 限制选项的测试,现在该选项已在 Windows 和 Unix 上实现。-- Rene R.
- 添加对无操作 @() 展开的测试。-- Rene R.
- 处理 @() 的无效格式,执行直接替换而不是出错。-- Rene R.
- 对 SGI/Irix 的各种编译修复。-- Noel B.
- 添加当操作使用 -lN 选项超时时的输出。-- Rene R., Noel B.
- 添加必要的包含文件(根据 XOPEN),用于定义 WIFEXITED 和 WEXITSTATUS。-- Markus S.