2022-12-13

Magicsplat Tcl/Tk 1.13.0 for Windows

ANNOUNCE: Magicsplat Tcl/Tk 1.13.0 for Windows


Version 1.13.0 of the Magicsplat Tcl/Tk 8.6.13 for Windows binary distribution is released with new packages and updates. 

所以釋出了一個新的版本。

2022-11-27

BWIDGET 1.9.16 released

ANNOUNCE: BWIDGET 1.9.16 released

 

這個版本修正了以下事項:

Cudos to Wolfgang Kechel to fix one bug: Prevent multiple drops, when
movement while drop is processed

2022-11-23

Tcl/Tk 8.6.13 RELEASED

 Tcl/Tk 8.6.13 RELEASED

 

Tcl/Tk 8.6 釋出了一個新的  patch 版本,8.6.13,下面是改變的總結。

Summary of Changes since Tcl/Tk 8.6.12:
--------------------------------------

This is a patch release, so it primarily includes bug fixes and corrections
to erratic behavior. Highlighted changes are noted below. The changes file
at the root of the source tree contains a more complete list. The Timelines
of all changes are online.

http://core.tcl-lang.org/tcl/timeline
http://core.tcl-lang.org/tk/timeline

* [TIP 622] Tcl_GetRange defined for index args < 0
*** POTENTIAL INCOMPATIBILITY ***

* [TIP 599] [tk::build-info] when paired with Tcl 8.7+

* Fallback initialization of ::env(HOME) from USERPROFILE

* text: direct mouse events to insert mark, not current (textTag-15.4)
*** POTENTIAL INCOMPATIBILITY ***

* New color for Mac: SelectedMenuItemTextColor

* [tk_fontchooser] improvements

* Consistent cross-platform polygon fill

* Fix crashes or hangs in...
- extract signed int operand from bytecode on Plan9
- invalid bytecode in lambda (see apply-10.1)
- writing ill-formed utf-8 (see io-60.1)
- [menu .m -type {}]
- Mac: destroy and re-create toplevel after dragging
- Geometry requests on window not fully created or destroyed
- [ttk::combox .foo] current end
- canvPs-5.1
- canvWind-2.1
- textWind-18.3
- unixW-50.4
- bind-37.1

* Fat binary compiles on Mac M1

* Portability to CHERI-enabled Morello processor

* Floating point rounding portability to x86 Alpine Linux (musl libc)

* Restore Tk builds on MacOSX 10.11 (El Capitan)

* Enable Tk builds on Windows ARM

* Improved cygwin path support in Tk.

* Handle deprecation of OSTypes by MacOSX.

* Mac: Mouse events not delivered to dialog with global grab.

* Mac: Stop beeping when clicking outside comboboxes.

* Win: Adapt pointer warp and [tk busy] for better multi-screen support

* Mac: When a toplevel is minimized, pass focus to another toplevel.

* Mac: fix image positions in canvas screenshots.

* GIF with multiple images may reuse transparent color

* PGM reads with graylevel > 255

* Fixed broken optimization of smoothed line redraws

* Mac: ttk::notebook loses control of tab content

* Mac: enable removal of embedded windows from text widget

* Win, X11: improve (ttk) menubutton menu position

* <Enter> event after one toplevel is destroyed (event-9.[12])

* Execution order when compiled: try second finally [first] (error-9.6)

* CR-LF split between packets/buffers/reads (tests io-29.36.*)

* [string is integer 18446744073709551615]

* ttk::label defaults for -justify/-anchor (test ttk-9.9)

* Win: middle mouse click blocks system clipbord

* Avoid invalid <<TreeviewSelect>> events

* Many code changes to avoid undefined behavior or integer overflow.

* Updated keysym tables to latest X11R6

* Updated bundled packages, libraries, standards, data
- Itcl 4.2.3
- sqlite3 3.40.0
- Thread 2.8.8
- TDBC* 1.1.5 - restored MariaDB support in tdbcmysql
- http 2.9.8 - numeric IPv6 in URL, connection reuse after code 101
- platform 1.0.19 - Ventura support
- tcltest 2.5.5
- libtommath support/1.x branch
- zlib 1.2.13
- Unicode 15
- tzdata 2022e
- msg catalog updates: Chinese, Finnish, Russian, Esperanto

2022-10-29

rl_json 0.11.4

rl_json

rl_json 釋出了新的版本 v0.11.4,新的版本 tclconfig 一樣需要使用 script get_tclconfig.tcl 自行下載。

2022-08-15

Next Scripting Framework 2.4.0

Announcement: Next Scripting Framework 2.4.0 available

 

NSF (Next Scripting Framework) 釋出了一個新的版本 2.4.0,詳細的改變可以看公告。

2022-08-09

tDOM 0.9.3

ANNOUNCE: tDOM 0.9.3


tDom 釋出了一個新版本,版本更改可以參考公告的內容。

2022-07-27

Last Sunday

Write a script to list Last Sunday of every month in the given year.

#!/usr/bin/tclsh
#
# Write a script to list Last Sunday of every month in the given year.
#

proc lastDay {month year} {
    set days [clock format [clock scan "+1 month -1 day" \
        -base [clock scan "$month/01/$year"]] -format %d]
}

proc getLastSunday {baseDate} {
    set base [clock scan $baseDate -format "%Y%m%d"]
    set day_of_week [clock format $base -format %u]

    # Sunday may report as 0 or 7.
    # If 7, it is not necessary to adjust.
    if {$day_of_week != 7} {
       set timestamp [clock scan "12:00 last sunday" -base $base]
    } else {
       set timestamp $base
    }

    return [clock format $timestamp -format "%Y-%m-%d"]
}


if {$argc >= 1} {
    set year [lindex $argv 0]
} else {
    set year 2022
    puts "Set year to 2022."
}

for {set i 1} {$i <= 12} {incr i} {
    set lday [lastDay $i $year]
    set ltime [format %04d%02d%02d $year $i $lday]
    set sday [getLastSunday $ltime]
    puts $sday
}

2022-06-24

Apache Rivet 3.2.2

 Apache Rivet 釋出了  3.2.x 系列的新版本,3.2.2。

下面是這個版本的更動:

  • A memory leak was fixed in Rivet_Var (src/mod_rivet_ng/rivetCore.c)
  • Installation and TEA scripts were updated
  • The form [::rivet::var all] accepts an optional flat list argument of key-value pairs which are defaults of query variables (yes, this argument must be interpreted as a dictionary). This form generalizes the [::rivet::var get <varname> <default>] command form to [::rivet::var all]
  • Tests for this new form were added. Also ::rivet::var related tests in general were improved
  • Configuration directive HonorHeaderOnlyReqs, though still supported, was renamed as HonorHeadRequests. Default for this directive is now 'On'

2022-06-13

Tcl 8.6.12 for DOS

在瀏覽 FreeDOS 網站的時候,我發現了 Tcl 8.6.12 for DOS 這個訊息(由 Ben Collver 提供的 patch release),檔案有被 mirror 一份到 Ibiblio /files/devel/tcl

很有趣的事情,DOS 的市場份額可能很小,但是還是一直有人使用。

2022-06-02

PgTcl 3.0.0

 PgTcl

 

Change:

* Remove TCL_ARRAY optional code, it hasn't been updated or maintained in years.

 

釋出的原始碼包裡 configure.in 裡的版本還是 2.7.7,如果使用者會在意這件事的話,可以自己修正這件事(在 configure.in 檔案將 2.7.7 改為 3.0.0,然後執行 autoconf, ./configure 與 make)。

2022-05-11

Tcllib 1.21

 Tcllib 釋出了 1.21 版,詳細的改變可以看這裡

2022-05-04

tksvg 0.10

tksvg


v0.10 主要修正:
Fixed rbg percentage parsing in nsvg__parseColorRGB. 


我在之前沒注意到,現在升 tksvg 版本到 0.10。

2022-04-17

openSUSE, Tcl and SQLite

最近的 openSUSE build service 在 devel:languages:tcl/tcl 對 Tcl 套件做了修改,移掉了 Tcl source code 中關於 SQLite3 套件的部份,同時建立與 sqlite3-tcl  套件的依賴性(而這個套件來自於 sqlite3)。

我覺得這似乎有彼此依賴的問題(不確定),不過這樣我就必須把  SQLite3 套件也做一個連結到我 openSUSE build service 的計畫中,才能夠解決其它套件的相依性問題(因為現在 Tcl 會對 sqlite3-tcl 套件產生依賴)。

2022-03-24

Missing Permutation

只是做一點程式練習。


You are given possible permutations of the string 'PERL'.

PELR, PREL, PERL, PRLE, PLER, PLRE, EPRL, EPLR, ERPL,
ERLP, ELPR, ELRP, RPEL, RPLE, REPL, RELP, RLPE, RLEP,
LPER, LPRE, LEPR, LRPE, LREP

Write a script to find any permutations missing from the list.

#!/usr/bin/env tclsh

proc permutations { list size } {
    if { $size == 0 } {
        return [list [list]]
    }

    set retval {}
    for { set i 0 } { $i < [llength $list] } { incr i } {
        set firstElement [lindex $list $i]
        set remainingElements [lreplace $list $i $i]
        foreach subset [permutations $remainingElements [expr { $size - 1 }]] {
            lappend retval [linsert $subset 0 $firstElement]
        }
    }

    return $retval
}

set compare [list PELR PREL PERL PRLE PLER PLRE EPRL EPLR ERPL \
ERLP ELPR ELRP RPEL RPLE REPL RELP RLPE RLEP \
LPER LPRE LEPR LRPE LREP]

set result [list]
foreach r [permutations [list P E R L] 4] {
    set nr [join $r ""]
    lappend result $nr
}

set result [lsort $result]
set compare [lsort $compare]
set len [llength $result]
for {set i 0} {$i < $len} {incr i} {
    set ri [lindex $result $i]
    set ci [lindex $compare $i]

    if {[string compare $ri $ci] != 0} {
        puts $ri
        break
    }
}

2022-03-05

PgTcl 2.8.0

PgTcl


這是一個 bug fix 的版本,不過釋出的原始碼包裡 configure.in 裡的版本還是 2.7.7,如果使用者會在意這件事的話,可以自己修正這件事(在 configure.in 檔案將 2.7.7 改為 2.8.0,然後執行 autoconf, ./configure 與 make)。

2022-02-24

ticklecharts: Tcl wrapper for Apache ECharts

ticklecharts


我有點驚訝,Apache ECharts (JavaScript Visualization library) 有人嘗試撰寫 Tcl wrapper。目前看起來才剛起步,不過有一些命令可以使用了,我想有人嘗試是一件好事。