2024-12-23

Tcl/Tk 9.0.1

Tcl/Tk 釋出了一個 9.0 的維護版本,9.0.1。

Tcl/Tk 9.0.1 的主要改變可以參考 tcl-release-notes-9.0.1.md, tk-release-notes-9.0.1.md

2024-12-15

Tcl/Tk 8.6.16

 Tcl/Tk 釋出了 8.6 系列的新版本,8.6.16

這個版本的主要更新內容可以參考 tcltk-release-notes-8.6.16.txt

下面就是更新的簡述:

   * Regression in [clock] timezones due to revised tzdata format
   * Improper startup if [pwd] contains a file named init.tcl
   * Fix crashes or hangs in...
      - TclOO + coroutine, oo-1.25
      - lifecycle management of the attributes of a menu entry
      - [grid] and [pack] handling of half-dead argument
      - Tk_DeleteErrorHandler()
      - overwrite of thread data by Tk initialization in second interp
   * Prevent negative zlib stream checksums, zlib-15.1
   * Filesystem path efficiency from skipping unnecessary normalization
   * Revised [clock scan] consistent with leap second timestamp validation
   * Updated bundled packages, libraries, standards, data
      - Itcl 4.3.2
      - sqlite3 3.47.2
      - Thread 2.8.11
      - TDBC* 1.1.10
      - tcltest 2.5.9
      - tzdata 2024b, corrected

2024-11-18

fconfigure -encoding binary in Tcl 9

 注意這個變化:

  • Removed the encoding alias binary to iso8859-1

在 Tcl 9 之前的寫法是  -encoding binary。但是在 Tcl 9 之後如果使用 -encoding binary,會出現一個警告,如果要與之前的語義相同,要將 binary 改為 iso8859-1。下面是一個使用的例子:

fconfigure $fd -blocking 1 -encoding iso8859-1 -translation binary

2024-11-13

Tcl 9 always thread-enabled

Tcl 9.0 的其中一個改變,就是移除了 --disable-threads 編譯選項,所以從 9.0.0 開始都會是 thread-enabled。不過也因為如此,如果你使用下列的方式檢查:

expr {[info exists ::tcl_platform(threaded)] && $::tcl_platform(threaded)}

在 Tcl 9 會得到答案為 0,因為 ::tcl_platform(threaded) 在 Tcl 9 中並不存在。

所以我改寫如下:

#
# Check support thread or not
#
proc is_threaded {} {
  # Tcl 9 always thread-enabled
  if {[package vcompare [info patchlevel] "9.0"] < 0} {
    return [expr {[info exists ::tcl_platform(threaded)] && $::tcl_platform(threaded)}]
  } else {
    return 1
  }
}

目前暫時先這樣,如果有更好的寫法我再更改寫法。
2024/11/16 更新寫法,嘗試使用 package vcompare 來比對版本號。

2024-09-27

Tcl/Tk 9.0.0

 Tcl/Tk 釋出了一個新的主要版本,9.0.0。

Tcl/Tk 9.0 的主要改變可以參考官網的網頁,以及 tcl-release-notes-9.0.0.md, tk-release-notes-9.0.0.md

2024-09-20

Tcl/Tk 8.6.15

Tcl/Tk 釋出了 8.6 系列的新版本,8.6.15

這個版本的主要更新內容可以參考 tcltk-release-notes-8.6.15.txt


2024-07-19

tcl-stbimage v1.1

tcl-stbimage


主要是整合來自 AndroWish project 的 source code,以及更新了 stb_image_resize2.h。

有點麻煩的地方是,AndroWish 有加入了 TkPhoto 相關的程式,並且使用動態載入的方式載入 Tk。但是這個套件一開始的目的就是希望能在沒有 Tk 的情況下使用 stb image 方面的功能;所以我目前並沒有整合 TkPhoto 這部份的程式。

2024-07-09

Tklib 0.8

Tklib is like Tcllib, a collection of many small packages providing utilities, except that packages here are expected to depend on Tk. Tklib specializes in utilities for GUI programming.

Standard Tk Library (tklib) 釋出了 v0.8 版。有興趣的可以參考相關的網頁

2024-05-17

The race to replace Redis

The race to replace Redis
redis (Tcler's Wiki)


雖然有點晚了(在三月發生的事情),不過事件持續中。Redis 資料庫更改授權,從 7.4 開始就不是 Open Source 軟體。Redeis 目前使用雙授權,其中 Server Side Public License (SSPL) 與 MongoDB 所使用的相同,不是 OSI 所認證的自由軟體授權(Redis 另外一個授權也不是!)。也因此有好幾個  Forks 出現,而各個 Linux distribution 需要找出可用的選項。

所以如果有人寫文章列出 Open Source Database,結果有 MongoDB(接下來 Redis 也是如此),你就知道這個文章的作者真的只是搜尋網路然後列出個名單,而他並不用心。

2024-05-16

tablelist v7.2 and Scrollutil v2.2

tablelist, Scrollutil 與 Mentry 都釋出了新版,可以參考作者的網頁

因為三個套件都是 Tklib 的套件,也可以下載 Tklib 最新的原始碼取得。