Boost C++ Libraries

PrevUpHomeNext

歷史紀錄

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.
  • 將規則呼叫的參數從 9 個增加到 19 個。來自 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,因為有些命令假設 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 解析 Jamfile 時的錯誤位置回報功能。現在,當遇到非預期的檔案結尾 (EOF) 時,它會回報正確的錯誤位置資訊。它現在也會回報讀取無效詞彙標記的起始位置,而不是結束位置,這使得查找未閉合的引號或大括號等錯誤變得更加容易。-- Jurko G.
  • 從 build.jam 中移除了 -xarch=generic 架構,因為 Linux 上的 Sun 編譯器無法識別此選項。-- Noel B.
  • 修復了由於 switch 陳述式中缺少 break 語句導致 T_FATE_ISTMP 同時被回報為 T_FATE_ISTMP 和 T_FATE_NEEDTMP 的錯誤。-- Jurko G.
  • 修復了 Boost Jam 的一個錯誤,該錯誤有時會觸發依賴於尚未建置目標的操作。-- Jurko G.
  • 新增了 Boost Jam 的 :T 變數展開修飾符的說明文件,該修飾符會將所有反斜線 ('\') 轉換為正斜線 ('/')。-- Jurko G.
  • 在 Windows XP 或更高版本的作業系統上運行時,Boost Jam 現在支援執行長度超過 2047 個字元(最多 8191 個字元)的命令列。-- 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.
  • 修補了 NORMALIZE_PATH 內建 Boost Jam 規則,並對 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.
  • 透過不印出命令輸出,使 quietly 操作真正安靜。 quietly 操作的輸出仍然可以透過 __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.
  • 將 jam.h 中的 MAXLINE 設定為 23k 位元組(適用於 AIX 系統)。使用預設的 102400 位元組 MAXLINE 時,piecemeal archive 動作會失效。由於 AIX shell 會將預設的 24k 緩衝區大小部分用於自身用途,我將其減少到 23k。-- Noel B.
  • 利用 msvc 的輸出目錄選項,避免編譯後的檔案污染 src 目錄。-- 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 搜尋替代的 user-config.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.
  • 新增 WIFEXITED 和 WEXITSTATUS 定義所需的 include(根據 XOPEN)。-- Markus S.


PrevUpHomeNext