2023-05-13

NaviServer 4.99.25 available

 NaviServer 釋出了 4.99.25 版,詳細的資料可以參考 Announcement: NaviServer 4.99.25 available 這篇公告。

2023-03-24

tcl-rocksdb 0.3.2

tcl-rocksdb

 

openSUSE build service 上現在有一個官方維護的 rocksdb,今天收到刪掉我自己維護版本的要求,我想了一下,我也有一段時間沒有更新了,所以刪掉了我自己維護的版本,換成官方的。然後發現 rocksdb 8.0.0 函式庫已經需要 c++ 17 才能夠編譯,所以修改了 tcl-rocksdb 的編譯選項,這樣才能夠成功編譯。

更新:
OBS 下的 server:database/rocksdb 一個很不妙的點是,他們還是把 jemalloc  OPTION 設為 ON,然後系統的 jemalloc 並沒有針對 jemalloc 5.0.1 TLS error: cannot allocate memory in static TLS block 做出相關的改變,這樣會變成可以編譯成功,但是你在使用的時候會無法啟動。

一開始我只是想建個 link 在自己  repo 這樣可以避免找不到 rocksdb 的問題,但是我發現問題很大,所以我有 report 我自己的修改,同時也有提供資訊,至於要怎麼改是打包的人要決定的。總之解法不是直接關閉 jremalloc 選項,效能會下降但是可以執行;不然就是系統端提供的 jemalloc 要加 --disable-initial-exec-tls 並且重新編譯,然後因為 jemalloc 的問題解決了就可以編譯 rocksdb with jemalloc。

2023-01-24

BAWT 2.3.1

Announce: BAWT 2.3.1 released

 

The following features are included in this release:
- Switched default MinGW gcc version back to 7.2.0. Version 8.1.0 produced incorrect tcltls binaries.
- Corrected download URL to https://www.tcl3d.org/bawt/download due to new server configuration using https.
- New package: Snack.
- Updated packages: CAWT, mupdf, MuPDFWidget, rl_json, SWIG.

所以 BATW 因為 MinGW gcc 的關係,更新了一個小版本。

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
}