2007-12-31

ttk::treeview


回、Tcl/Tk 8.5.0 で追加されたテーマ・ウィジェットを紹介しましたが、このテーマ・ウィジェット Ttk では、Tk にないウィジェットも利用できます。
ttk::treeview はそのうちのひとつです。 今回は、Tk のデモプログラムをベースに、単体で動作するように修正したサンプルを紹介します。このサンプルは、ルートディレクトリ以下のファイルの階層構造をツリー状に表示します。

#!/bin/sh
# the next line restarts using wish \
exec wish "$0" "$@"


# ----------------------------------------------------------------------------
# Code to populate the roots of the tree (can be more than one on Windows)
# ----------------------------------------------------------------------------

proc populateRoots {tree} {
foreach dir [lsort -dictionary [file volumes]] {
set node [$tree insert {} end -text $dir -values [list $dir directory]]
populateTree $tree $node
}
}

# ----------------------------------------------------------------------------
# Code to populate a node of the tree
# ----------------------------------------------------------------------------

proc populateTree {tree node} {
if {[$tree set $node type] ne "directory"} return

set path [$tree set $node fullpath]
$tree delete [$tree children $node]

foreach f [lsort -dictionary [glob -nocomplain -dir $path *]] {
set type [file type $f]
set id [$tree insert $node end \
-text [file tail $f] \
-values [list $f $type]]

if {$type eq "directory"} {
# Make it so that this node is openable
$tree insert $id 0 -text dummy ;# a dummy
$tree item $id -text [file tail $f]
} elseif {$type eq "file"} {
set size [file size $f]
# Format the file size nicely
if {$size >= 1024*1024*1024} {
set size [format %.1f\ GB [expr {$size/1024/1024/1024.}]]
} elseif {$size >= 1024*1024} {
set size [format %.1f\ MB [expr {$size/1024/1024.}]]
} elseif {$size >= 1024} {
set size [format %.1f\ kB [expr {$size/1024.}]]
} else {
append size " bytes"
}
$tree set $id size $size
}
}

# Stop this code from rerunning on the current node
$tree set $node type processedDirectory
}

# ----------------------------------------------------------------------------
# MAIN
# ----------------------------------------------------------------------------

wm title . "Directory Browser"
ttk::style theme use "clam"

# Create the tree and set it up
ttk::treeview .tree \
-columns {fullpath type size} \
-displaycolumns {size} \
-yscroll ".vsb set" \
-xscroll ".hsb set"

if {[tk windowingsystem] ne "aqua"} {
ttk::scrollbar .vsb -orient vertical -command ".tree yview"
ttk::scrollbar .hsb -orient horizontal -command ".tree xview"
} else {
scrollbar .vsb -orient vertical -command ".tree yview"
scrollbar .hsb -orient horizontal -command ".tree xview"
}

.tree heading \#0 -text "Directory Structure"
.tree heading size -text "File Size"
.tree column size -stretch 0 -width 70

populateRoots .tree
bind .tree <<TreeviewOpen>> {populateTree %W [%W focus]}

# Arrange the tree and its scrollbars in the toplevel
grid .tree -column 0 -row 0 -sticky news
grid .vsb -column 1 -row 0 -sticky ns
grid .hsb -column 0 -row 1 -sticky ew
grid columnconfigure . 0 -weight 1
grid rowconfigure . 0 -weight 1

# ---
# ttkwidget_treeview.tcl



Windows XP で実行した例




Fedora 8 (Linux) で実行した例


ちなみに階層構造を扱うウィジェットには、拡張パッケージ BWidgetTreeIncr Widgetshierarchy などが利用できます。

2007-12-30

Tk themed widgets


日リリースされた Tcl/Tk 8.5.0 では、"Tk themed widgets" (正式な訳語を知りませんので、便宜上「テーマ・ウィジェット」と呼ぶことにします)というウィジェットが追加されています。
このウィジェットは、拡張パッケージ Tilettk という名前空間に Tk の標準機能として統合されたものです(TIP#248)。
このパッケージは、ウィジェットを OS 固有の見映え(ルック&フィール)に近づけたり、あるいは firefox などで利用できるテーマ(スキン)と同じような機能を実現します。


Tk のデモプログラムにテーマ・ウィジェットのサンプルがありますが、サンプルコードの記述が読みにくいので、自分でも簡単なサンプルを作ってみました。先日リリースした、クロスコンパイル版 Windows 用 Tcl/Tk、tcltk8.5.0-011 を使っています。











#!/bin/sh
# the next line restarts using wish \
exec wish "$0" "$@"


# ----------------------------------------------------------------------------
# テーマ変更処理
# ----------------------------------------------------------------------------

proc changeTheme {themeVal} {
ttk::style theme use $themeVal
return
}

# ----------------------------------------------------------------------------
# メイン
# ----------------------------------------------------------------------------

wm resizable . 0 0
wm title . "Ttk"

set tk_icon "
R0lGODlhEAAQAIAAAP8AAP///yH5BAEAAAEALAAAAAAQABAAAAIpjI+py+C/nnSIynosrcBAn3QgE2x
bJGoi501hWpZrm13zOc2yopP+XwAAOw==
"
image create photo Tk -data $tk_icon

# デフォルトのテーマ設定
set theme "default"
changeTheme $theme

# メニューボタン
ttk::menubutton .mb \
-text "メニューボタン" \
-image Tk \
-compound left \
-cursor hand2 \
-menu .mb.theme
pack .mb -anchor w

menu .mb.theme
foreach themeName [ttk::themes] {
.mb.theme add radiobutton \
-label $themeName \
-variable theme \
-value $themeName \
-command {changeTheme $theme}
}
.mb.theme add separator
.mb.theme add command \
-label "Exit" \
-command exit

# テーマ名表示部
ttk::frame .fra
pack .fra -expand yes -fill both -padx 0 -side top

ttk::label .fra.lab1 -text "テーマ"
ttk::label .fra.lab2 -textvariable theme
pack .fra.lab1 -side left
pack .fra.lab2 -expand yes -fill both -padx 5 -side left

# ---
# ttkwidget_menubutton.tcl


テーマ名の一覧は、ttk::themes あるいは ttk::style theme names コマンドで得られますが、Windows 版と UNIX 版とでは利用できるテーマの数が違います。Windows 版で次の6種類、

winnative clam alt default classic xpnative

UNIX 版は、Windows 系のテーマを除いた次の4種類、

clam alt default classic

です。今後、標準で利用できるテーマの種類が増えるかもしれません。以下は、Fedora 8 (Linux) 上で実行した例です。デスクトップには Gnome を使用しています。

2007-12-29

MinGW runtime & w32api の更新

SourceForge.net Logo
MinGW のプロジェクトサイトで 12 月 27 日に、mingw-runtime-3.14w32api-3.11 がリリースされました。

早速、Linux でのクロスコンパイル用パッケージを Fedora 8 上でビルドして、MinGW Cross Compiler のプロジェクトサイトにアップロードしました。

mingw-3.14-1

2007-12-22

Tcl/Tk for Windows, build011

SourceForge.net Logo
ロスコンパイル環境で生成した Tcl/Tk 8.5.0 のウィンドウズ用インストールパッケージを MinGW Cross Compiler のプロジェクトサイトにアップロードしました。ダウンロードは以下からどうぞ。

tcltk8.5.0-011

今回、収録したパッケージとビルドした環境は以下の通りです。

Tcl/Tk for Windows, bitWalk build #011
released on 2007-12-22

1. Available version of Tcl/Tk and extensions in this package
- Tcl/Tk 8.5.0
http://sourceforge.net/projects/tcl
- Thread 2.6.5
http://sourceforge.net/projects/tcl
- Incr Tcl/Tk 3.4 (itcl-20071105.tar.gz)
http://sourceforge.net/projects/incrtcl/
- Incr Widgets 4.0.2 (iwidgets-20070610.tar.gz)
http://sourceforge.net/projects/incrtcl/
- BWidget 1.8.0 (bwidget-20071031.tar.gz)
http://sourceforge.net/projects/tcllib
- Tcllib 1.10
http://sourceforge.net/projects/tcllib
- TkCon 2.4
http://sourceforge.net/projects/tkcon

2. build environment for compiling binaries
- MinGW Cross Compiler on Fedora Linux 8
mingw-binutils-2.18.50-1.fc8
mingw-runtime-3.13-3.fc8
mingw-w32api-3.10-3.fc8
mingw-gcc-core-4.2.1-4.fc8

3. packaging environment
- Inno Setup Compiler 5.2.2
on wine-0.9.49-1.fc8 / Fedora Linux 8
http://www.jrsoftware.org/isinfo.php

2007-12-21

Tcl/Tk 8.5.0 リリース


式リリースの直前になって、慌しくリリース候補 rc5 ~ rc7 が出ましたが、その後(いつのまにか)正式版として公開されたようです。リリースアナウンスは 12 月 20 日付けになっています。

Tcl/Tk 8.5.0 Release Announcement

バージョン 8.4.0 がリリースされたのは 2002 年 9 月 10 日のことですから、実に5年ぶりにマイナーバージョンが更新されたことになります。

バージョン番号の定義でいうと、8.x9.0 に変わればメジャーバージョンが更新されたといえるのですが、今回の 8.5.0 は、あたかもメジャーバージョンが更新されたかのような雰囲気です。つまり、それだけ改善点や機能追加が盛りだくさんなのですが、自分はまだ全容を理解しきれていないので、特筆すべき点があれば本ブログで紹介していこうと考えています。

なお、ソースは、以下のサイトから入手できます。

http://sourceforge.net/project/showfiles.php?group_id=10894


参考
Tcl/Tk 8.5登場 - 実行速度10%改善、Windows/OSXネイティブテーマ
Tcl/Tk 8.5:Windows/OS Xテーマ改善、X11ではアンチエリアスも
Slashdot | Tcl/Tk 8.5.0 Released

2007-12-20

Tcl/Tk 8.5.0rc7


リースの直前(実際には SourceForge.net からリリースアナウンスメントのメールが送信されてしまいましたが…)でバグが見つかり Tcl/Tk 8.5.0 のリリース候補7 (rc7) が出ました。

Date: Wed, 19 Dec 2007 16:59:16 -0500
From: Donald G Porter <dgp at nist.gov>
To: Tcl Core List <tcl-core at lists.sourceforge.net>
Subject: [TCLCORE] Tcl 8.5.0 RC 7

Thanks to Jeff for quickly fixing Tcl Bug 1854399.

No thanks to the absolutely no one who ran the tcllib test suite
since December 7, even with at least 5 RC available during that time.

Release Candidate 7 for Tcl 8.5.0 has the fix:

ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc7-src.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl850rc7-src.zip

The other 8.5.0 RC files remain unchanged at RC 5.

I've given up predicting when 8.5.0 will go final.

--
| Don Porter Mathematical and Computational Sciences Division |
| donald.porter at nist.gov Information Technology Laboratory |
| http://math.nist.gov/~DPorter/ NIST |
|______________________________________________________________________|

2007-12-19

Tcl/Tk 8.5.0rc6


らに Tcl/Tk 8.5.0 のリリース候補6 (rc6) が出ました。正規表現エンジン関連のバグフィックスのようです。

Date: Tue, 18 Dec 2007 11:16:16 -0500
From: Donald G Porter <dgp at nist.gov>
To: Tcl Core List <tcl-core at lists.sourceforge.net>
Subject: [TCLCORE] Tcl 8.5.0 RC 6

A very nice bug fix for the regexp engine came in yesterday, and Donal
was able to merge it onto the HEAD this morning. This final RC
incorporates the fix into the 8.5.0 release.

ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc6-src.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl850rc6-src.zip

The other 8.5.0 RC files are unchanged at RC 5.

8.5.0 goes final later today.

--
| Don Porter Mathematical and Computational Sciences Division |
| donald.porter at nist.gov Information Technology Laboratory |
| http://math.nist.gov/~DPorter/ NIST |
|______________________________________________________________________|

2007-12-18

Tcl/Tk 8.5.0rc5


んと Tcl/Tk 8.5.0 のリリース候補5 (rc5) が出ました。これで問題がなければ、明日 8.5.0 がリリースされることになりそうです。

Date: Mon, 17 Dec 2007 13:15:16 -0500
From: Donald G Porter <dgp at nist.gov>
To: Tcl Core List <tcl-core at lists.sourceforge.net>
Subject: [TCLCORE] Tcl/Tk 8.5.0 RC5 available

Latest release candidates correct a memory alignment problem reported
over the weekend.

ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc5-src.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tk8.5.0rc5-src.tar.gz

ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc5-html.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl850rc5-src.zip
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tk850rc5-src.zip

Once again, intent is to rename these files to the real 8.5.0 release
tomorrow, unless some other serious bug fix comes in.

--
| Don Porter Mathematical and Computational Sciences Division |
| donald.porter at nist.gov Information Technology Laboratory |
| http://math.nist.gov/~DPorter/ NIST |
|______________________________________________________________________|

2007-12-15

Tcl/Tk 8.5.0rc4


Windows 2000 / MSVC6 の環境で、rc3 をビルドできないという問題が報告されたので、その問題を対策した Tcl/Tk 8.5.0 のリリース候補4 (rc4) が出ました。今度こそ最後のリリース候補になればいいのですが…。現在のところ、8.5.0 の正式版リリースは来週はじめにずれるようです。

Date: Fri, 14 Dec 2007 18:06:36 -0500
From: dgp at nist.gov
To: tcl-core at lists.sourceforge.net
Subject: [TCLCORE] (no subject)

Some important commits came in post-RC3. Thus, here is
Release Candidate 4 for Tcl/Tk 8.5.0:

ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc4-src.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tk8.5.0rc4-src.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc4-html.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl850rc4-src.zip
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tk850rc4-src.zip

Intent is to rename these files to become Tcl/Tk 8.5.0
early next week.

DGP

2007-12-14

Tcl/Tk 8.5.0rc3


Tcl/Tk 8.5.0 のリリース候補3 (rc3) が出ました。今回が最後のリリース候補になる予定で、まもなく正式版のリリースです。

Date: Thu, 13 Dec 2007 10:11:10 -0500
From: Donald G Porter <dgp at nist.gov>
To: Tcl Core List <tcl-core at lists.sourceforge.net>
Subject: [TCLCORE] Tcl/Tk 8.5.0 RC3 available

You may now download the files of the Tcl/Tk 8.5.0 RC3 release:

ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc3-src.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tk8.5.0rc3-src.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc3-html.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl850rc3-src.zip
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tk850rc3-src.zip

There are some reports of DNS unreliability, so you may need to
shift to the tcl.activestate.com server.

The intent is to simply rename these files tomorrow, and they will
become the Tcl/Tk 8.5.0 release.

Thanks to Jeff Hobbs and Daniel Steffen for their efforts clearing
away the last few blockers.

--
| Don Porter Mathematical and Computational Sciences Division |
| donald.porter at nist.gov Information Technology Laboratory |
| http://math.nist.gov/~DPorter/ NIST |
|______________________________________________________________________|

2007-12-11

Tcl/Tk 8.5.0rc2


Tcl/Tk 8.5.0 のリリース候補2 (rc2) が出ました。正式版のリリースまでに、少なくとも、あともう一回、リリース候補が出るようです。

Date: Mon, 10 Dec 2007 14:28:28 -0500
From: Donald G Porter <dgp at nist.gov>
To: Tcl Core List <tcl-core at lists.sourceforge.net>
Subject: [TCLCORE] Tcl/Tk 8.5.0 RC 2 available

Release Candidate 2 for Tcl/Tk 8.5.0 are available from ftp:

ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc2-src.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tk8.5.0rc2-src.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc2-html.tar.gz

This includes some fixes for formerly blocking issues, so please
give it some testing.

I'll be announcing these files shortly on comp.lang.tcl so that a
broader collection of testers will hopefully put this one through
the wringer.

At least one more RC is on the way (changes, release notes, etc.).

If there are other blocking issues, please re-raise them so I'm sure
not to miss them.

--
| Don Porter Mathematical and Computational Sciences Division |
| donald.porter at nist.gov Information Technology Laboratory |
| http://math.nist.gov/~DPorter/ NIST |
|______________________________________________________________________|

2007-12-05

Tcl/Tk 8.5.0rc1


Tcl/Tk 8.5.0 のリリース候補1 (rc1) が出ました。8.5.0 の正式版のリリースは、12 月 14 日のようです。

Date: Tue, 04 Dec 2007 14:26:52 -0500
From: Donald G Porter <dgp at nist.gov>
To: Tcl Core List <tcl-core at lists.sourceforge.net>
Subject: [TCLCORE] Countdown to Tcl/Tk 8.5.0 releases...

Available on the Tcl ftp site are the latest RCs for Tcl/Tk 8.5.0:

ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc1-src.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tk8.5.0rc1-src.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc1-html.tar.gz

The target date for final release is Friday, Dec. 14. I would like to
make an RC on Wednesday, Dec. 12 with the intent that it becomes 8.5.0
on Friday via a simple rename after a round of smoke testing. Please
plan your development with that in mind.

There may or may not be another RC between the current one and the one
on Dec. 12, depending on the amount and significance of HEAD churn.

It would help me a bit for those folks still planning significant
commits to give me an idea about what they might be and when they
might appear on the HEAD.

Finally, a last round of GOOBE that should be prepared is something
not in the release itself, but associated resources, notably pages
like:

http://www.tcl.tk/software/tcltk/
http://www.tcl.tk/software/tcltk/choose.html
http://www.tcl.tk/software/tcltk/8.5.html

which should be significantly updated to change our recommendation
to use 8.5 over 8.4 as the stable release, and which might profit
from an expanded introduction to / cheering for new 8.5 features, either
directly or by reference. Does anyone already have text, etc. in
the works for that?

--
| Don Porter Mathematical and Computational Sciences Division |
| donald.porter at nist.gov Information Technology Laboratory |
| http://math.nist.gov/~DPorter/ NIST |
|______________________________________________________________________|

2007-12-01

binutils-2.18.50

SourceForge.net Logo

11 月 24 日付けで MinGW Project で binutils-2.18.50 がリリースされていましたので、遅ればせながらクロスコンパイラのパッケージの方も更新しました。

mingw-binutils-2.18.50

[Mingw-users] で流れたリリース・アナウンスメントを以下に載せました。

Date: Mon, 26 Nov 2007 21:47:22 -0500
From: "Chris Sutcliffe" <ir0nh34d at gmail.com>
To: MinGW-Users <MinGW-users at lists.sourceforge.net>
Subject: [Mingw-users] Technology Preview: binutils-2.18.50-20071123

I've released a new version of binutils.

This version of binutils was compiled from the vanilla
2.18.50-20071123 snapshot. It was compiled with the following options:

./configure --disable-nls

make CFLAGS="-s -O2 -mms-bitfields -mtune=i686"

Recent 2.18.50 snapshots have changed the handling of section
alignment. Now, alignment is encoded in section header of object
file, the same as done by MS tools. This may cause some backward
compatibility issues with older libs that need 16 byte alignment for
SSE2 objects. Please report any such problems to the list.

Chris

--
Chris Sutcliffe
http://emergedesktop.org

2007-11-27

Tcl/Tk 8.5.0rc0


Tcl/Tk の開発者向けの情報ですが、Tcl/Tk 8.5.0 のリリース候補0 (rc0) が出ています。

Date: Mon, 26 Nov 2007 16:52:22 -0500
From: Donald G Porter <dgp at nist.gov>
To: Tcl Core List <tcl-core at lists.sourceforge.net>
Subject: [TCLCORE] Tcl/Tk 8.5.0 release candidates

The first set of release candidates for Tcl/Tk 8.5.0 are available now:

ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tcl8.5.0rc0-src.tar.gz
ftp://ftp.tcl.tk/pub/tcl/tcl8_5/tk8.5.0rc0-src.tar.gz

These contain significant changes even since 8.5b3 that ought to get
some testing.

In addition, it is helpful to test some thing that actually labels
itself "8.5.0" before the real 8.5.0 releases, so those scripts that
act differently based on what version Tcl/Tk claim to be get tested
too.

--
| Don Porter Mathematical and Computational Sciences Division |
| donald.porter at nist.gov Information Technology Laboratory |
| http://math.nist.gov/~DPorter/ NIST |
|______________________________________________________________________|

2007-11-24

Tcl/Tk for Windows, build010

SourceForge.net Logo
Tcl/Tk 8.5b3 のウィンドウズ用インストールパッケージをアップロードしました。ダウンロードは以下から。

tcltk8.5b3-010

今回、収録したパッケージとビルドした環境は以下の通りです。

Tcl/Tk for Windows, bitWalk build #010
released on 2007-11-24

1. Available version of Tcl/Tk and extensions in this package
- Tcl/Tk 8.5b3
http://sourceforge.net/projects/tcl
- Thread 2.6.5
http://sourceforge.net/projects/tcl
- Incr Tcl/Tk 3.4 (itcl-20071105.tar.gz)
http://sourceforge.net/projects/incrtcl/
- Incr Widgets 4.0.2 (iwidgets-20070610.tar.gz)
http://sourceforge.net/projects/incrtcl/
- BWidget 1.8.0 (bwidget-20071031.tar.gz)
http://sourceforge.net/projects/tcllib
- Tcllib 1.10
http://sourceforge.net/projects/tcllib

2. build environment for compiling binaries
- MinGW Cross Compiler on Fedora Linux 8
mingw-binutils-2.17.50-5.fc8
mingw-runtime-3.13-2.fc8
mingw-w32api-3.10-2.fc8
mingw-gcc-core-4.2.1-4.fc8

3. packaging environment
- Inno Setup Compiler 5.2.2
on wine-0.9.48-1.fc8 / Fedora Linux 8
http://www.jrsoftware.org/isinfo.php

2007-11-21

Tcl/Tk8.5b3


11月19日付けで Tcl/Tk 8.5 の3番目のβ版がリリースされました。

リリース予定は 11月16日だったのですが、Don Porter 氏がが忙しかったためにリリースが遅れただけのようです。今回もバグフィックスが中心で、予定では最後のβ版となります。

なお正式版 8.5.0 のリリースは、12 月 14 日の予定になっています。Tcl/Tk 8.4.0 がリリースされたのが、2002 年 9 月 10 日のことですから、マイナーバージョンの更新は、実に 5 年ぶりとなります。定義では、8.5.0 の太字の部分はマイナーバージョンなのですが、あたかもメジャーバージョンがリリースされるような印象を受けます。

この週末に、Tcl/Tk8.5b3 の Windows 用のバイナリパッケージを MinGW クロスコンパイル環境でビルドして公開する予定です。

Date: Tue, 20 Nov 2007 13:59:59 -0500
From: dgp at nist.gov
To: tcl-core at lists.sourceforge.net
Subject: [TCLCORE] Tcl/Tk 8.5b3 RELEASED

Tcl/Tk 8.5b3 Release Announcement
November 19, 2007

The Tcl Core Team is pleased to announce the 8.5b3 releases of the Tcl
dynamic language and the Tk toolkit. This is the third beta release of
Tcl/Tk 8.5. More details can be found below. We would like to express
our gratitude to all those who submit bug reports and patches. This
information is invaluable in enabling us to identify and eliminate
problems in the core.

Where to get the new releases:
------------------------------

Tcl/Tk 8.5b3 sources are freely available as open source from the Tcl
Developer Xchange web site at:

http://www.tcl.tk/software/tcltk/8.5.html

This web page also contains additional information about the releases,
including new features and notes about installing and compiling the
releases. Sources are always available from the Tcl SourceForge
project's file distribution area:

http://sourceforge.net/project/showfiles.php?group_id=10894

For additional information:
---------------------------

Please visit the Tcl Developer Xchange web site:

http://www.tcl.tk/

This site contains a variety of information about Tcl/Tk in general, the
core Tcl and Tk distributions, Tcl development tools, and much more.

Thank you for your contributions:
---------------------------------

As usual, this release includes contributions from the Tcl community.
We have a page honoring these contributors at:

http://www.tcl.tk/software/tcltk/contributors.html

Summary of Changes since Tcl/Tk 8.5b2:
--------------------------------------

The following were the main changes in Tcl/Tk 8.5b3. A complete list
can be found in the changes file at the root of the source tree. The
more complete ChangeLog is also included with each source release.

This is a beta release of 8.5. The beta designation means that the
feature set for 8.5 is believed to be complete, and the focus is now
on testing and bug fixing moving quickly toward an 8.5.0 release.
All relevant bug fixes (and some more) up to and including 8.4.16 changes
are included in 8.5b3. This release is a development release, and should
only be considered for deployment use after considerable testing.

* New Tk look and default fonts on X11. [tk::classic::restore] to undo.

* New configure option: --disable-rpath.

* Continued Tk demo enhancement and documentation improvement.

* Fixed broken compile on x86_64.

* Fixed crash and infinite loop in regexp engine.

* Fixed [tk_getOpenFile] crash on Mac OS X Leopard.

* Font adjust interface for [console].

* Arabic and Hebrew rendering on Windows.

* Corrected locale for sv.msg message catalog.

* Performance improvements for binary [gets], binary [string match]ing,
[info exists], stack overflow checking, list indexing, interpreter
state reset, and simple regular expressions.

* Embed iso8859-1 encoding directly in libtcl.

--

Tcl Core Team and Maintainers
Don Porter, Tcl Core Release Manager

2007-11-10

Fedora 8 対応

SourceForge.net Logo
Fedora 8 が 11 月 8 日(米国時間)にリリースされました。通常は、雑誌などの付録でインストール用のメディアが流通するまではアップグレードをしないのですが、MinGW クロスコンパイラのプロジェクトで RPM パッケージを公開している関係で、今回は早期にアップグレードをしようと yum で恐る恐るアップグレードしました。

アップグレードの方法は以下のサイトの情報を参考にしました。

Fedora Core 4をFedora Core 5にアップグレードするには

余談になりますが、アップグレードしても自分のアカウント画面はなんら変わりがありません。通常、VNC (RealVNC) を利用して Windows マシンから Linux マシンへ接続して作業をしています。どうせ、RPM パッケージの作成では日本語を使わないので、デスクトップの言語設定を英語にして、Windows 側では UltraVNC をクライアント (Viewer) にしています。
Fedora 8 Desktop
アップグレード後、無線LAN の使い方がわからなくなったりと、少々の不具合が残っていますが、有線のネットワークで作業ができるので、とにかく MinGW クロスコンパイラのパッケージを更新しました。

実は texinfo による不具合が残っているので、古い texinfo-4.8-15 を使ってビルドをしていますが、RPM の spec ファイルでは、texinfo のバージョンの制限を外しました。src.rpm ファイルをダウンロードしてリビルドする場合には気をつけてください。

なお、プロジェクトサイトでは公開するパッケージを以下に整理しました。

[CORE] binutils-cross
[CORE] gcc-cross
[CORE] mingw-cross
[LIB] pthreads-w32
[PRODUCT] Tcl/Tk

今のところ、MinGW クロスコンパイラで生成、公開している Win32 用のパッケージは Tcl/Tk だけなので、Tcl/Tk をビルドするために必要な [LIB] パッケージだけを公開することにしたのです。

MinGW クロスコンパイラのプロジェクトは、自分でコンパイルしたいパッケージ (Tcl/Tk) があって、その成果を、同じ興味を持つ人々と共有したいために維持しています。他に、MinGW クロスコンパイラ関係のパッケージが必要な方、あるいは、クロスコンパイルして Win32 用バイナリを生成したい方がいらっしゃれば、ぜひプロジェクトに参加して、パッケージを作成してみませんか?

2007-10-29

Tcl/Tk for Windows, build009

SourceForge.net Logo
Tcl/Tk 8.5b2 のウィンドウズ用インストールパッケージをアップロードしました。前回と同様、バイナリは Linux 上の MinGW クロスコンパイル環境で生成し、インストーラ用のパッケージ作成も、Linux の WINE 環境で Inno Setup を使って作成しました。ダウンロードは以下から。

tcltk8.5b2-009

今回、収録したパッケージとビルドした環境は以下の通りです。


Tcl/Tk for Windows, bitWalk build #009
released on 2007-10-28

1. Available version of Tcl/Tk and extensions in this package
- Tcl/Tk 8.5b2
http://sourceforge.net/projects/tcl
- Thread 2.6.5
http://sourceforge.net/projects/tcl
- Incr Tcl/Tk 3.4 (itcl-20071022.tar.gz)
http://sourceforge.net/projects/incrtcl/
- Incr Widgets 4.0.2 (iwidgets-20070610.tar.gz)
http://sourceforge.net/projects/incrtcl/
- BWidget 1.8.0 (bwidget-20070511.tar.gz)
http://sourceforge.net/projects/tcllib
- Tcllib 1.10
http://sourceforge.net/projects/tcllib

2. build environment for compiling binaries
- MinGW Cross Compiler on Fedora Linux 7
mingw-binutils-2.17.50-2.fc7
mingw-runtime-3.13-1.fc7
mingw-w32api-3.10-1.fc7
mingw-gcc-core-4.2.1-2.fc7

3. packaging environment
- Inno Setup Compiler 5.2.0
on wine-0.9.46-1.fc7 / Fedora Linux 7
http://www.jrsoftware.org/isinfo.php

例のごとく、最初は WINE の環境でインストーラのチェックをしました。

Tcl/Tk 8.5b2 ではデモプログラムにも手が加わっていました。Tcl/Tk 8.5 のαリリースの時に加えられたデモプログラムにも、今回改めて、"New" の文字が赤字で加えられています。あまりにも長いαリリースの期間だったため、既に新しいデモプログラムとは認識していなかったものもあります。ご興味があれば試してみてください。スタートメニューから、"Tcl and Tk" -> "demo" -> "Tk" で起動できます。

あと、Tcl/Tk のヘルプファイル (HTML) も若干見易いレイアウトになっています。

2007-10-27

Tcl/Tk8.5b2



Tcl/Tk 8.5 の2番目のβ版が予定通り10月26日付けでリリースされました。

今週になって、Tcl Core のメーリングリストに投稿されるメールの量が増え、TIP の投票やバグの議論が活発になったので、果たして予定通り次のβ版がリリースされるか心配でしたが、その次のβ版リリースも予定されていることもあってか、今回はなんとか予定通りリリースされたようです。

細かい話になりますが、リリースされるタイミングは、余裕があるときには、各国での時差を考慮して、米国時間で早朝にリリースアナウンスを出す場合が多いようです。しかし今回の場合、日本時間で27日の朝(今朝)の時点でまだリリースされていなかったので、数日程度リリースが遅れるかもしれないと思ってしまいました。
SourceForge.net からアナウンスが届いたのは 日本時間 27 日の 12:22 pm で、リリースアナウンスの冒頭は、次のようになっていました。

Project: Tcl (tcl)
Package: Tcl
Date : 2007-10-26 23:22

ぎりぎり、10月26日のリリースに間に合ったという感じです。金曜日ということで、きっと忙しかったのでしょう。(と言っても、金曜日がリリース予定日に選ばれることが多いのですが…。)

今回のリリースは、β版ということでバグフィックスが中心になっています。

なお、次の3番目β版がリリースされるのは11月16日の予定です。

早速、クロスコンパイル環境でリリースされたソースをコンパイルしてみようと思います。今回は拡張パッケージのコンパイルもできるようになったので、当初予定していた拡張パッケージを同梱したインストーラを、MinGW Cross Compiler のプロジェクトサイトに公開する予定です。

Date: Fri, 26 Oct 2007 23:28:05 -0400
From: dgp at nist.gov
To: tcl-core at lists.sourceforge.net
Subject: [TCLCORE] Tcl/Tk 8.5b2 RELEASED

Tcl/Tk 8.5b2 Release Announcement
October 26, 2007

The Tcl Core Team is pleased to announce the 8.5b2 releases of the Tcl
dynamic language and the Tk toolkit. This is the second beta release of
Tcl/Tk 8.5. More details can be found below. We would like to express
our gratitude to all those who submit bug reports and patches. This
information is invaluable in enabling us to identify and eliminate
problems in the core.

Where to get the new releases:
------------------------------

Tcl/Tk 8.5b2 sources are freely available as open source from the Tcl
Developer Xchange web site at:

http://www.tcl.tk/software/tcltk/8.5.html

This web page also contains additional information about the releases,
including new features and notes about installing and compiling the
releases. Sources are always available from the Tcl SourceForge
project's file distribution area:

http://sourceforge.net/project/showfiles.php?group_id=10894

For additional information:
---------------------------

Please visit the Tcl Developer Xchange web site:

http://www.tcl.tk/

This site contains a variety of information about Tcl/Tk in general, the
core Tcl and Tk distributions, Tcl development tools, and much more.

Thank you for your contributions:
---------------------------------

As usual, this release includes contributions from the Tcl community.
We have a page honoring these contributors at:

http://www.tcl.tk/software/tcltk/contributors.html

Summary of Changes since Tcl/Tk 8.5b1:
--------------------------------------

The following were the main changes in Tcl/Tk 8.5b2. A complete list
can be found in the changes file at the root of the source tree. The
more complete ChangeLog is also included with each source release.

This is a beta release of 8.5. The beta designation means that the
feature set for 8.5 is believed to be complete, and the focus is now
on testing and bug fixing moving quickly toward an 8.5.0 release.
All relevant bug fixes (and some more) up to and including 8.4.16 changes
are included in 8.5b1. The following list focuses on new features added
so far in 8.5. This release is a development release, and should only be
considered for deployment use after considerable testing.

* [TIP 242] New [tk_getOpenFile] option: -typevariable .

* [TIP 125] Dockable frame support.

* [TIP 145] Font enhancement suppport added for Aqua.

* Enhanced Tk demo suite.

* Improvements to [ttk::combobox] and [ttk::notebook].

* New Hungarian message catalog for Tk.

* Fixed an intermittent crash in thread support.

* Fixed possible crash in [place] geometery manager.

* Fixed auto-loading of [::tcl::tm::path].

* Fixed [string is integer -failindex (0o... or 0b...)].

* Support for 64-bit X11 on Mac OS X systems.

--

Tcl Core Team and Maintainers
Don Porter, Tcl Core Release Manager

2007-10-21

Tcl 拡張パッケージのクロスコンパイル

SourceForge.net Logo
案だった、Tcl の拡張パッケージのクロスコンパイルに成功しました。この週末に試行錯誤を重ねましたが、結局 configure スクリプトで生成した Makefile の内容の一部を perl で置換するという妥協的な方法に落ち着きました。

例として、Thread パッケージをビルドするスクリプトを紹介します。

#!/bin/sh

export INSTDIR=${HOME}/mingw/build

# constants
export ver_tcltk="8.5b1"
export ver_major="85"
export ver_major2="8.5"
export ver_thread="2.6.5"

export prefix_tcltk=""

export target=i386-mingw32
export CC=${target}-gcc
export AR=${target}-ar
export LD=${target}-ld
export RANLIB=${target}-ranlib
export RC=${target}-windres

# remove old sources
echo "### Removing old sources & binaries"
rm -fR thread${ver_thread}

# extract sources
echo "### Expanding sources to build"
tar zxvf thread${ver_thread}.tar.gz

# build Thread extension
echo "### build Thread Extension"
export PATH=/usr/local/${target}/bin:$PATH

cd thread${ver_thread}
./configure --prefix=${prefix_tcltk} --host=${target} \
--enable-threads --with-tcl=../tcl${ver_tcltk}/win
perl -i.bak -p -e 's/Unix/Win/g;' Makefile
perl -i.bak -p -e 's/unix/win/g;' Makefile
perl -i.bak -p -e 's/\-fPIC//ig;' Makefile
perl -i.bak -p -e 's/libthread2\.6\.5\.so/thread265\.dll/g;' Makefile
perl -i.bak -p -e 's/libthreadstub2\.6\.5\.a/libthreadstub265\.a/g;' Makefile
perl -i.bak -p -e 's/^DEFS\t\t=/DEFS\t\t= \-DBUILD_thread=1/g;' Makefile
make
perl -i.bak -p -e 's/libthread2\.6\.5\.so/thread265\.dll/g;' pkgIndex.tcl
make DESTDIR=${INSTDIR}/thread${ver_thread} install
cd ..

# remove man directory
rm -fR ${INSTDIR}/thread${ver_thread}/man

今回わかったことは、WINE をインストールしていると configure スクリプトは、クロスコンパイルだと認識してくれないということです。これは configure スクリプトが、小さなプログラムをコンパイルして、それを実行できなければクロスコンパイルだと判定するのですが、WINE がインストールされていると実行できてしまうため、いくら --host--build オプションで指定してもクロスコンパイルだとは判定されないのです。

しかしながら、configure スクリプトがクロスコンパイルだと判定したところで、大したことはしてくれません。CC などで i386-mingw32-gcc を前もって指定しなくとも、gcc などに --host で指定した名前をプレフィックスとして付加してくれるぐらいです。これも ar などに付けてくれないなど抜けが出ます。変更しなければならないMakefile の内容はそれほど多くはないので、perl で置換することにしました。なお pkgIndex.tcl に記述されているパッケージ名の修正も必要です。

10 月 26 日に、Tcl/Tk 8.5b2 がリリースされる予定なので、今度の週末にでも拡張パッケージを加えたクロスコンパイル版 Tcl/Tk 8.5b2 を公開しようと思います。

2007-10-20

GCC と binutils の更新

SourceForge.net Logo
MinGW クロスコンパイラの GCC と binutils を更新しました。

mingw-binutils-2.17.50-2
mingw-gcc-4.2.1-2

GCC-4.2.1 の RPM の最初のリリースでは、libgcc_sjlj_1.dlllibstdc++_sjlj_6.dll/usr/local/bin にインストールされましたが、流石に Windows 用の DLL をこのディレクトリにインストールするのは良くないと考え、/usr/local/i386-mingw32/bin 以下にインストールされるように変更しました。

なお、RPM をリビルドする際、texinfo については、Fedora Linux 7 のリリース時に収録されていた4.8-15 に限定しました。Fedora Linux 8 のリリース予定が11月8日なので、textinfo の問題が残っていれば、それから調べようという消極的な態度をとる事にしました。

binutils は一週間ぐらい前に texinfo の問題で、4.8-15 限定の修正をしておいたのですが、アップロードをしていなかったので、一緒にアップロードしました。

2007-10-18

初音ミク

IT Media の「初音ミク」画像がネットから“消えた”? という記事を読んだので、自分でも試してみました。確かに記事の通りでした。
記事によると、14日にはTBS系「アッコにおまかせ」の(初音ミク)特集をめぐって批判が相次いだ経緯もあり、画像が“消えた”件について憶測も飛び交っているそうだが、こういうことがニュースになることも珍しいような気がします。

時間が経つと検索ができるようになるかもしれないので、記念にハードコピーをしておきました。



関連記事
“消えた初音ミク”問題 ヤフーとGoogle「原因を調査中」

2007-10-16

Tcl/Tk 8.5 tentative release calendar

0月15日付けで、Tcl/Tk 8.5 のリリーススケジュールが TCLCORE のメーリングリストに流れました。
tentative(暫定)ではありますが、長かったαリリースと比べれば、β版から正式版へのリリーススケジュールは、あまりにも短いような気がします。スケジュールよりリリースが遅れるのは常ですので、実際に正式版がリリースされるのは来年になってしまうのかもしれません。

いずれにしても、Tcl/Tk 8.5 の正式版リリースまでに用意する予定にしている「Tcl/Tk 入門」のページは、もう少し精力的に準備していく必要がありそうです。

Date: Mon, 15 Oct 2007 14:09:18 -0400
From: Donald G Porter
To: Tcl Core List
Subject: [TCLCORE] Tcl/Tk 8.5 tentative release calendar

It's now 19 days since the release of Tcl/Tk 8.5b1, so by the lights of
some ambitions, Tcl/Tk 8.5b2 is already 5 days overdue.

Since deadlines appear to bring out the development energies, I'm going
to draw some lines in the sand. Offered for comment is this calendar
to complete the stabilization of Tcl/Tk 8.5.0:

Release Date
8.5b2 October 26
8.5b3 November 16
8.5.0 December 14

Dates are chosen to have some time between them, so we can get bug
reports and fixes done between releases. A fair number of bug reports
for b1 have come in, but the fixes (and HEAD development in general)
appear slow in coming to me. Here's a deadline folks, get cracking!

Dates are also chosen in part to work around my own schedule
constraints, including a conference and holidays.

I want the octal change done for the 8.5b2 release. Here's where I need
to get cracking myself. I've got the patch (other than docs) done and
uploaded as 1805896, but still need to update TIP 114 to describe what
it does, and send it around for a quick vote confirming the opinions
offered at the conference. It was rumored that some packages or
applications (Expect? TclX? others?) might have trouble with this
change? Someone please find out.

I would very much like to have all documentation caught up in time for
the 8.5b3 release. Please don't save all that for December (or later!).

The gap between 8.5b3 and 8.5.0 release dates is longer than I hope we
will really need. In part that's to make room for the US Thanksgiving
holiday. And in part it's to make room to insert an 8.5b4 if we need
to, with hopes that it would not delay the actual 8.5.0 release (much?).

There are still significant bugs reported that really would be best
fixed in time for 8.5.0. Please do what you can over the next several
weeks to take some on.

And probably even more important at this stage, is the missing Great!
Out-of-the-Box Experience (GOOBE). Now that a target end date for 8.5.0
is named, take that as your deadline to do something to promote and
improve the experience for folks who will be trying out Tcl/Tk at that time.

--
| Don Porter Mathematical and Computational Sciences Division |
| donald.porter at nist.gov Information Technology Laboratory |
| http://math.nist.gov/~DPorter/ NIST |
|______________________________________________________________________|

2007-10-15

texinfo による障害?

SourceForge.net Logo
イナーな修正を加えた spec ファイルで mingw-gcc と mingw-binutils をビルドしようとしたところ、どうにもうまくいきません。予期しないところで、インストールされているはずの makeinfo が無いというエラーで止まってしまったり、今まで生成されていた info ファイルが生成されないといった現象が起きたのです。

因果関係を詳しく調べてみると、つい先日 texinfo が 4.8-15 から 4.11-1 にアップデートされていることが判りました。texinfo パッケージに makeinfo が含まれているため、試しに古いバージョンに戻して、前述のパッケージをビルドしてみると、エラー発生がなくなりました。ということで、とりあえず spec ファイルには texinfo-4.8-15 限定でビルドするよう BuildPrereq に記述しました。

ディストリビューションによるパッケージのアップデートで、こういった不具合に遭遇したのは初めての経験です。Fedora だから仕方が無いのかもしれません。きっとなにか texinfo の新しいパッケージに不具合があるはずなのですが、残念ながら調べる時間がありません。そこで、今のところ自分では調査はせずに修正したパッケージがリリースされないか、しばらく静観するという消極的な態度に出ることにしました。

今度の週末まで待って変化が無ければ調べます。

2007-10-14

Tcl/Tk for Windows, build008

SourceForge.net Logo
Tcl/Tk 8.5b1 のウィンドウズ用インストールパッケージをアップロードしました。今回から、バイナリは Linux 上の MinGW クロスコンパイル環境で生成し、インストーラ用のパッケージ作成も、Linux の WINE 環境で Inno Setup を使って作成しています。ダウンロードは以下から。

tcltk8.5b1-008

現在、クロスコンパイル環境で、Windows 用のバイナリをなんでもコンパイルできる、という状況ではないので、Tcl/Tk のパッケージも、非常に限定的なものになってしまいました。Tcl/Tk をビルドしたスクリプトや Inno Setup 用のスクリプトなどもアップしてありますので、興味のある方はご利用ください。

Tcl/Tk for Windows, bitWalk build #008
released on 2007-10-14

1. Available version of Tcl/Tk and extensions in this package
- Tcl/Tk 8.5b1
http://sourceforge.net/projects/tcl
- Tcllib 1.10
http://sourceforge.net/projects/tcllib
- BWidget 1.8.0
http://sourceforge.net/projects/tcllib

2. build environment for compiling binaries
- MinGW Cross Compiler on Fedora Linux 7
mingw-binutils-2.17.50-1.fc7
mingw-runtime-3.13-1.fc7
mingw-w32api-3.10-1.fc7
mingw-gcc-core-4.2.1-1.fc7
mingw-pthreads-w32-2.8.0-1.fc7

3. packaging environment
- Inno Setup Compiler 5.2.0
on wine-0.9.46-1.fc7 / Fedora Linux 7
http://www.jrsoftware.org/isinfo.php

今後、少しずつ、クロスコンパイラで拡張パッケージのコンパイルに挑戦し、収録パッケージを充実させていく予定です。



これは、Linux/WINE 環境において、Inno Setup でインストーラを作成した直後にインストーラが起動したときの画面です。全部ではありませんが、大部分の動作確認を Linux/WINE の環境で済ませられます。

2007-10-07

GCC-4.2.1

SourceForge.net Logo
GCC-4.2.1 (gcc-4.2.1-2-src.tar.gz) の MinGW 用クロスコンパイラを MinGW Cross Compiler Project のサイトにアップしました。Fedora Linux 7 の RPM パッケージ一式です。
実は、libgcc_sjlj_1.dlllibstdc++_sjlj_6.dll のビルドがうまくいかず、しばらく放置していましたが、ふと解決策を思いついたので、遅ればせながらビルドしました。なお、自分の環境で Ada はビルドできなかったため割愛しました。

2007-10-06

OSC 2007 - Tokyo/Fall -

日、今日と大田区産業プラザPIOで開催されているオープンソースカンファレンス2007 Tokyo/Fall を見に行ってきました。実は、これがオープンソース系の展示会見学の初体験だったのでした。

受付でもらったパンフレットによると、展示会場には60の団体が出展していました。

また、展示会場の二箇所でミニセミナーも開催されていました。

まず、日本NetBSDユーザグループで話を伺いました。組み込み用途で GPL を嫌うユーザに対して需要があるということでした。別に GCC が吐き出すコードが GPL に縛られるわけではないんだけど、コンパイル速度が速い PCC を NetBSD の CVS へ取り組むなんて話題もでました。名古屋のユーザ会ではよく飲み会を開いたりするということでした。

openSUSE コミュニティでは、Novel の SUSEopenSUSE の違いを教えてもらいました。要するに、FedoraRedHat との関係だと考えれば良いのだそうだ。そういえば、RedHat や Fedora 関連の団体は無かったようです。

Obuntsu Japanese Team のところではデモ機を触らせてもらいました。Debian 系の Linux を使ったことがなかったので、/etc 内などを覗いてみました。Debian 系では /etc/rc.d って無いんですね。この辺をごちゃごちゃいじっていると怪しまれそうだったので、適当に退散しました。

Gentoo Linux のところでチラシをもらいましたが、

Gentooって何?
 Gentoo は、Linux や FreeBSD をベースにしたフリーのオペレーティングシステムで、…

と書いてあったので、そういう表現をしているんだとちょっとびっくり。Gentoo が使用している Portage というパッケージ管理システムは、FreeBSD などの ports を参考にして作られたものであることを知りました。

Itanium Solutions Alliance が出展していたのにはちょっとびっくり。オープンソースの世界で生き残りをかけているのでしょうか。

株式会社バッファローの展示では、思わずオープンソースとのかかわりは何ですか?と尋ねてしまった。すると、オタク的な要素があれば出展できたようで、Felica 機能を持ったPCがデモしていました。なぜこれがオタク?とは思いましたが、むしろ無線LAN・環境調査サービスの方に興味があったので、名刺をもらっておきました。会社のIT担当のK氏に紹介して、オフィスのネットワークの無線化を検討してもらおう。というわけで、ここでの話は完全にオープンソースから離れてしまいました。ところでオープンソースの活動とは、世間ではオタク的なものなのでしょうか?

特定のなじみの団体とか、知人がいるわけでないので、小一時間ほど展示場をうろうろして終了。

仕事では、半導体関連業界の展示会(セミコン・ジャパンなど)を見に行くことが多いので、展示会の規模が全然違いましたが、こういうこぢんまりした展示会もいいものだと思いました。次回は興味があるセミナーがあればぜひ受講をしてみようと考えています。
 

2007-09-29

苦戦…、少し弱気。

SourceForge.net Logo
Tcl/Tk 8.5b1 がリリースされたので、早速クロスコンパイル環境でコンパイルをはじめていますが、苦戦しています。コアの Tcl/Tk については簡単にビルドできるのですが、拡張パッケージはそうはいきません。

Tcl/Tk は次のようなスクリプトを用意して実行すればビルドできます。

#!/bin/sh
export INSTDIR=${HOME}/mingw/build

# constants
export ver_tcltk="8.5b1"
export ver_major="85"
export ver_major2="8.5"

export prefix_tcltk=""

export target=i386-mingw32
export CC=${target}-gcc
export AR=${target}-ar
export LD=${target}-ld
export RANLIB=${target}-ranlib
export RC=${target}-windres

# remove old sources
echo "### Removing old sources & binaries"
rm -fR tcl${ver_tcltk}
rm -fR tk${ver_tcltk}


# extract sources
echo "### Expanding sources to build"
tar zxvf tcl${ver_tcltk}-src.tar.gz
tar zxvf tcl${ver_tcltk}-html.tar.gz
tar zxvf tk${ver_tcltk}-src.tar.gz

# build Tcl
echo "### build Tcl"
cd tcl${ver_tcltk}/win
./configure --prefix=${prefix_tcltk} --host=${target} --enable-threads
make INSTALL_ROOT=${INSTDIR}/tcl${ver_tcltk} install
cd ../..

# build Tk
echo "### build Tk"
cd tk${ver_tcltk}/win
./configure --prefix=${prefix_tcltk} --host=%{target} --enable-threads --with-tc
l=../../tcl${ver_tcltk}/win
make INSTALL_ROOT=${INSTDIR}/tk${ver_tcltk} install
cd ../..

# add .tcl to Tk demo script
mv ${INSTDIR}/tk${ver_tcltk}/lib/tk${ver_major2}/demos/widget ${INSTDIR}/tk${ver
_tcltk}/lib/tk${ver_major2}/demos/widget.tcl

Tcl/Tk のソースは、unixwin と OS 固有の部分が分かれているために、クロスコンパイル環境でも、Cygwin など Win32 環境と同じようにコンパイルできてしまいますが、拡張パッケージはそうはうまくいきません。

例えば、configure スクリプトを実行する際、uname -s コマンドなどで実行環境を判断してしまうため、MinGW のクロスコンパイル環境と Linux の環境がごちゃ混ぜになった Makefile が生成されてしまいます。具体的には、拡張パッケージ thread2.6.5 を、Tcl/Tk と同じようにビルドしようとすると、一応コンパイルは通りますが、thread265.dll ではなく libthread2.6.5.so が生成されます。Incr Tcl/Tk や TclX となると、コンパイルも通りません。

Makefile をゴリゴリと修正すればクロスコンパイルができそうですが、なんだかあまりスマートなやり方とは思えません。そういうやり方をすると、今後、同じやり方を維持できるかどうか不安です。そこで、tcl.m4 などをクロスコンパイル用に書き換えてコンパイルできるようにしようとしています。しかし、まだうまくいっていません。時間がかかりそうです。

Tcl/Tk8.5b1 を使いたいので、とりあえず Cygwin 環境を使ったパッケージも用意しようかとコンパイルを始めています。クロスコンパイル環境の構築に少し弱気になっています。

2007-09-26

Tcl/Tk8.5b1



Tcl/Tk 8.5 の最初のβ版が9月26日付けでリリースされました。β版では新機能の追加がないはずですので、あまり長い時間をかけずに正式版 8.5.0 がリリースされることを望むばかりです。デバグを精力的にしなければ…。

今週末に、Linux 上の MinGW Cross Compiler でコンパイル、インストーラを作成して、ビットウォーク版 Tcl/Tk 8.5 for Windows をリリースする予定です。なお、今回から MinGW Cross Compiler で生成した Tcl/Tk のバイナリは、MinGW Cross Compiler のプロジェクトサイトで、

[PRODUCT] Tcl/Tk

というパッケージ名で公開します。もちろん、Inno Setup でパッケージを生成したインストーラとして公開します。

全てがクロスコンパイル環境でコンパイル可能かどうか、まだ確認していませんが、現時点で収録予定の拡張パッケージは次の通りです。

- Tcl/Tk 8.5b1
- Thread
- TkCon
- TclX
- Incr Tcl/Tk
- Incr Widgets
- Tcllib
- BWidget
- Tktable
- Tile
- TbcLoad
- TclCompiler
- ICONS

何か他に同梱をご希望の拡張パッケージがあればコメントを下さい。
ただし、tkImg と BLT はもともと同梱したいパッケージなのですが、ビルドの成功に至っていません。また、snack のビルドは DirectX の開発環境が一部必要になるので、今のところクロスコンパイル環境では対応しません。Linux 上でのクロスコンパイルとは別件になりますが、このパッケージだけ Cygwin 環境でビルドできないかどうか試してみようかとも思っています。

以下は Don Porter 氏が送信したリリースアナウンスのメールです。

Date: Wed, 26 Sep 2007 09:23:59 -0400
From: dgp at nist.gov
To: tcl-core@lists.sourceforge.net
Subject: [TCLCORE] Tcl/Tk 8.5b1 RELEASED

Tcl/Tk 8.5b1 Release Announcement
September 26, 2007

The Tcl Core Team is pleased to announce the 8.5b1 releases of the Tcl
dynamic language and the Tk toolkit. This is the first beta release of
Tcl/Tk 8.5. More details can be found below. We would like to express
our gratitude to all those who submit bug reports and patches. This
information is invaluable in enabling us to identify and eliminate
problems in the core.

Where to get the new releases:
------------------------------

Tcl/Tk 8.5b1 sources are freely available as open source from the Tcl
Developer Xchange web site at:

http://www.tcl.tk/software/tcltk/8.5.html

This web page also contains additional information about the releases,
including new features and notes about installing and compiling the
releases. Sources are always available from the Tcl SourceForge
project's file distribution area:

http://sourceforge.net/project/showfiles.php?group_id=10894

For additional information:
---------------------------

Please visit the Tcl Developer Xchange web site:

http://www.tcl.tk/

This site contains a variety of information about Tcl/Tk in general, the
core Tcl and Tk distributions, Tcl development tools, and much more.

Thank you for your contributions:
---------------------------------

As usual, this release includes contributions from the Tcl community.
We have a page honoring these contributors at:

http://www.tcl.tk/software/tcltk/contributors.html

Summary of Changes since Tcl/Tk 8.5a6:
--------------------------------------

The following were the main changes in Tcl/Tk 8.5b1. A complete list
can be found in the changes file at the root of the source tree. The
more complete ChangeLog is also included with each source release.

This is a beta release of 8.5. The beta designation means that the
feature set for 8.5 is believed to be complete, and the focus is now
on testing and bug fixing moving quickly toward an 8.5.0 release.
All relevant bug fixes (and some more) up to and including 8.4.16 changes
are included in 8.5b1. The following list focuses on new features added
so far in 8.5. This release is a development release, and should only be
considered for deployment use after considerable testing.

* Removed support for {expand} syntax
*** POTENTIAL INCOMPATIBILITY with 8.5 alphas only ***

* [TIP 145] Enhanced font handling.

* Tcl variable memory efficiency improved.
*** POTENTIAL INCOMPATIBILITY for users of internal structs ***

* Leave traces created during traced command execution do not fire.
*** POTENTIAL INCOMPATIBILITY ***

* Restored 8.4 compatibility of [package require -exact]
*** POTENTIAL INCOMPATIBILITY with 8.5 alphas only ***

* Revised parser expands {*} literals instead of returning a
TCL_TOKEN_EXPAND_WORD token
*** POTENTIAL INCOMPATIBILITY with 8.5 alphas only ***

* Tcl_GetObjType("nsName") no longer supported.
*** POTENTIAL INCOMPATIBILITY ***

* Fixed crash in nested [dict update].
*** POTENTIAL INCOMPATIBILITY with bytecode from 8.5 alphas ***

* Fixed panic in [text] DLine layout.

* Fixed crash in ::errorInfo traces.

* Fixed crash in [grid *configure].

* Improved Aqua ttk::combobox appearance.

* Fixed interactive tclsh failure to prompt for continuation line when
entered line ends with backslash-newline.

* Make [interp limit -command] able to stop [while 1 {}].

* Fixed open mode "a+".

* [info] is a [namespace ensemble].

* Set tcl_platform(user) from system, not environment.

* [clock] tzdata updated to Olson's tzdata2007g.

--

Tcl Core Team and Maintainers
Don Porter, Tcl Core Release Manager

2007-09-24

Open Source Conference 2007 Tokyo/Fall

0月5・6日にオープンソースカンファレンス2007が大田区産業プラザ(PiO)で開催されます。

今のところセミナーへ受講予定はありませんが、登録だけはとりあえず済ませてしまいました。協賛団体の展示などがありそうなので、6日に行ってみようかと思案中。

2007-09-22

Tcl/Tk 8.4.16


月21日付けで Tcl/Tk 8.4.16 がリリースされました。今回のリリースは、バグフィックスをしたパッチリリースです。

Tcl/Tk 8.4.0 がリリースされたのは2002年9月10日のことですから、かれこれ5年もバージョン 8.4 系を使い続けていることになります。これは、プロジェクトの活動が昔に比べると活発でなくなってきているせいかもしれません。Usenet の comp.lang.tcl への投稿はそこそこ活発なようですが、コアチームのメーリングリストにはあまり投稿されていません。

企業が Tcl の開発活動をバックアップしていた時代は、専業で取り組むことができましたが、現在のような、ほとんどのメンバーがパートタイムで、しかも直接お金にならないことの開発に時間を割かなければならないという状況では限界があるでしょう。それでも、ActiveState 社が、間接的にではあるものの ActiveTcl をリリースするなどのバックアップをしてくれているので、現在もプロジェクトの活動が維持できているのだと思います。

それなのに、なぜ、わざわざビットウォーク版の Tcl/Tk をリリースするのか?要するに自分が使いたいパッケージだけを集めて自由に、かつ便利に Tcl/Tk を使いたいからです。インターネットで公開をしますが、インストーラ作りは、半ば趣味みたいなものです。

さて、いままでのリリース状況から察するに、まもなく Tcl/Tk 8.5b1 がリリースされると思います。既に以前の投稿でアナウンスしましたが、次の Windows 用のビットウォーク版 Tcl/Tk は、Linux 上のクロスコンパイル環境でパッケージを作成してリリースします。

Date: Fri, 21 Sep 2007 15:03:14 -0400
From: dgp at nist.gov
To: tcl-core at lists.sourceforge.net
Subject: [TCLCORE] Tcl/Tk 8.4.16 RELEASED

Tcl/Tk 8.4.16 Release Announcement
September 21, 2007

The Tcl Core Team is pleased to announce the 8.4.16 releases of the Tcl
dynamic language and the Tk toolkit. This is the sixteenth patch release
of Tcl/Tk 8.4. More details can be found below. We would like to
express our gratitude to all those who submit bug reports and patches.
This information is invaluable in enabling us to identify and eliminate
problems in the core.

Where to get the new releases:
------------------------------

Tcl/Tk 8.4.16 sources are freely available as open source from the
Tcl Developer Xchange web site at:

http://www.tcl.tk/software/tcltk/8.4.html

This web page also contains additional information about the releases,
including new features and notes about installing and compiling the
releases. Sources are always available from the Tcl SourceForge
project's file distribution area:

http://sourceforge.net/project/showfiles.php?group_id=10894

Binaries for most major platforms are available from:

http://www.activestate.com/Tcl

For additional information:
---------------------------

Please visit the Tcl Developer Xchange web site:

http://www.tcl.tk/

This site contains a variety of information about Tcl/Tk in general, the
core Tcl and Tk distributions, Tcl development tools, and much more.

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

The following were the main changes in Tcl/Tk 8.4.16. A complete list
can be found in the changes file at the root of the source tree. The
more complete ChangeLog is also included with each source release. This
is a patch release, so it primarily included bug fixes and corrections
to erratic behavior. Below are only the most notable changes.

* Many Aqua/Tk bug fixes and improvements, see Tk changes file.

* New Tcl feature: DTrace provider (http://wiki.tcl.tk/DTrace)

* Fixed buffer overrun in animated GIF support.

* Fixed buffer overrun in [clock format ... %c].

* Fixed crash with multibyte characters in menu labels.

* Fixed [thread::join] crash on 64-bit Unix.

* Fixed crash in thread sync objects.

* Fixed crash in Tcl_UpdateLinkedVar().

* Fixed hang in Tcl_CreateTrace() traces.

* Fixed blue/red reversal in [wm iconphoto] icons on Windows XP.

* tcltest 2.2.9 permits "_" and ":" in test constraint names.

* Fixed build problems on SunOS and Windows AMD64.

--
Tcl Core Team and Maintainers
Don Porter, Tcl Core Release Manager

2007-09-05

Tcl/Tk 8.5 βリリース

うやく Tcl/Tk 8.5 のβリリースが始まるようです。次のビットウォーク版の Windows 用 Tcl/Tk は、8.5b1 のリリース後に、Linux 上の MinGW クロスコンパイラで生成したバイナリをリリースしようと考えています。

Date: Mon, 03 Sep 2007 16:52:22 -0700
From: Jeff Hobbs
Organization: ActiveState
To: Tcl Core List
Subject: [TCLCORE] 8.5 beta approaching

The 8.5 has had an overlong product cycle, and a beta date has been set
to precede the upcoming conference. Beta indicates feature freeze time
for Tcl.

The stress test time frame will be the week of September 10th, with a
code freeze on the following weekend. Interim ActiveTcl builds will be
available for interesting testers, but source-level testing is also
strongly encouraged.

This message is short and sweet. So hopefully will be the beta cycle.

Jeff

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Tcl-Core mailing list
Tcl-Core@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tcl-core

2007-09-04

MinGW Cross Compiler Project (つづき)

SourceForge.net Logo
りあえず、今まで使っていたクロスコンパイラを整備して以下のパッケージをアップロードしました。

mingw-binutils-2.17.50-1.fc7.i386.rpm
mingw-gcc-core-3.4.5-1.fc7.i386.rpm
mingw-runtime-3.13-1.fc7.i386.rpm
mingw-w32api-3.10-1.fc7.i386.rpm

次の週末には、C だけでなく、Ada を除く他のコンパイラを加えた GCC をアップデートしようと考えています。リリースを予定しているパッケージは以下の通りです。

mingw-gcc-core-3.4.5-2.fc7.i386.rpm
mingw-gcc-g++-3.4.5-2.fc7.i386.rpm
mingw-gcc-g77-3.4.5-2.fc7.i386.rpm
mingw-gcc-objc-3.4.5-2.fc7.i386.rpm
mingw-gcc-java-3.4.5-2.fc7.i386.rpm

RPM をビルドするための spec ファイルは概ね完成していますが、コンパイラの動作確認をある程度行いたいので、リリースは、もしかするともう少し先になるかもしれません。

2007-08-31

MinGW Cross Compiler Project

SourceForge.net Logo
SourceForge.net に MinGW のクロスコンパイラのプロジェクト・サイトを開設しました。

MinGW Cross Compiler

今後、このサイトで MinGW クロスコンパイラのパッケージを公開します。プロジェクトが認可されて間もないので、まだパッケージをアップロードしていませんが、週末にでもアップロードするパッケージを整備してから公開したいと考えています。

2007-08-26

pthread (つづき) とクロスコンパイル

SourceForge.net Logo
近は忙しくて、Tcl/Tk 関係のことに時間を割けません。懸案の pthread については、ようやく Win32 クロスコンパイル用のパッケージを用意できました。現在使用している Win32 クロスコンパイル環境は以下の通りです。

OS : Fedora Linux 7
mingw-runtime-3.13-1.i386.rpm
mingw-w32api-3.10-1.i386.rpm
mingw-binutils-2.17.50-13.i386.rpm
mingw-gcc-core-3.4.5-16.i386.rpm
pthreads-w32-2.8.0-2.i386.rpm

現在、Windows 用 Tcl/Tk のパッケージを、このクロスコンパイル環境で作成中です。

ところで、Win32 クロスコンパイルの環境構築そのものがメインテーマではありませんが、クロスコンパイルに興味をもたれるユーザもいらっしゃるようなので、パッケージを公開する方向で、適当なサイトを探している最中です。

以前、MinGW on Linux なんてサイトを用意したのですが、しばらくメンテナンスをしないうちに、プロバイダのオーナーが変わったりしていて、今ではログインができなくなってしまい、放置状態です。