經過 15 個月的開發,Tcl/Tk 8.6.14 已經發布,這是一種動態程式語言,帶有基本 GUI 元素的跨平台庫。 Tcl 被廣泛用作創建使用者介面的平台和嵌入式語言,但 Tcl 也適用於快速原型設計、Web 開發、網頁應用程式創建、系統管理和測試。項目代碼在 BSD 許可證下分發。
其中的變化:
- 文件路徑的規範化和路徑中“~”字元的處理已實現跨平台形式。
- 以“//”開頭的路徑名不會替換為“/”,包括在 Cygwin 和 QNX 中。
- 允許 [chan create] 中的空模式(“[chan create {} $cmd]”)以允許 [socket -server] 的 refchan 版本。
- 改進了透過 vfork/spawn 使用多執行緒時的 fork 效能。
- 確保僅在必要時才在 Tcl_MakeFileChannel(2) 中呼叫 getsockname(3)。
- 使用OpenBSD 的pledge(2) 函數或類似機制增強了Tcl/tclsh 安全性。
- tcltest 已適應支援 Tcl 9 (>= tcltest 2.5.7)。
- 在解碼不完整的 Unicode 序列時啟用替換字元的使用。
- 在 VxWorks 或其他平台的建置腳本中新增了對 mknod、tcdrain 和 uname 的檢查。
- 32 位元 Cygwin 已經結束,因此不再需要 Cygwin 的「--enable-64bit」參數。
- Tcl_VarEval 不再被棄用。
- 「[interp limit time -seconds]」解決了2038問題。
- utf16 選項已從 win/makefile.vc 中刪除。
- zlib 已更新至版本 1.3.1。
- libtommath 更新至版本 1.2.1。
- install-sh 已更新至版本 2020-11-14.01。
- 新增了對 Unicode 15.1 的支援。
- 時區資料庫已更新為發布tzdata2024a。
- Window 二進位許可證元資料提到了加州大學。
- 修正了手冊頁中參數格式不正確的錯誤。
- 修復了缺少資訊的錯誤 Windows tcl_platforms 中的 11。
- 修正了在具有大端位元組順序的系統上字串比較不正確的錯誤。
- 修復了 tcl_ precision 等於 15..18 時發生的崩潰。
- 修正了清除 memchan 流時罕見的崩潰問題。
- 修正了當檔案註解/檔案名稱太長或不是 iso-latin-1 編碼時 zip 指令顯示錯誤的問題。
- 修復了從 Tcl_GetTime 返回微秒數的問題 Windows.
- 修復了在 TCP 用戶端套接字上應用通道轉換時發生的崩潰。
- 防止 Tcl_UtfToUniChar 中的錯誤讀取。
- В macOS 13 SDK 棄用了 sprintf() 函數。
- 修正了 [scan %num$mode] 中的位置參數溢位。
- 修復了尾調用期間的崩潰。
- 修正了錯誤情況下或縮短選項時時鐘掃描和時鐘添加的錯誤。
- 修正了忽略不完整雙位元組編碼的錯誤,例如在 [encoding Convertfrom gb12345 x] 中。
- 修正了退出載入了 tclvfs 的解釋器時 tclvfs tkt 崩潰的問題。
- 修正了 Tcl_GetUniChar 讀取超出 ASCII 字串長度的字元的問題。
- 修復了微軟版本中的一個錯誤 Windows: Emoji 檔案可以透過 glob 查找,但無法透過檔案存在或開啟方式識別。
- 修正了 VC6 版本 core-8-6-branch 的編譯錯誤:「錯誤 C2065:'int16_t':未宣告的識別碼」。
- 修復了 ClockGetdatefieldsObjCmd() 中的錯誤:有符號整數溢位和平台無關行為。
- 修正了 tclOO.c 中 fakeObject.refCount 初始化的錯誤。
- 修正了 AddressSanitizer 中的 use-after-return 會破壞 NRE 測試和協程的錯誤。
- 修正[時鐘格式]中的錯誤。
- 修復 MS 中的 [exec %var%] 重新分配 Windows該功能於 2013 年 6 月 8 日被禁止。
- Tcl_PkgRequire 的文件修復:版本規格行引用“package require”。
- 修正了 [tcl_startOfPreviousWord string end-1] 中的錯誤。
- 修復了在 Unicode 物件上呼叫 Tcl_ReadChars 時發生的崩潰。
- 修復了覆蓋 proc::history 時的循環。
- 修正了 ::unknown 移入命名空間時的迴圈。
來源: opennet.ru
