2013-09-20

Tcl/Tk 8.6.1 RELEASED

Tcl/Tk 8.6.1 RELEASED


下面是主要的變更:

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

This is a patch release, so it primarily includes bug fixes and corrections 
to erratic behavior.  All relevant bug fixes (and some more) up to and 
including 8.5.15 changes are included in 8.6.1.  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.tk/tcl/ 
        http://core.tcl.tk/tk/ 

     * Increased restored support for massive regexps. 

     * Fixed binding on Mac. 

     * Fixed <> <> bindings. 

     * Restored support for $tk_strictMotif. 

     * Corrected results of [binary encode uuencode]. 
          *** POTENTIAL INCOMPATIBILITY *** 

     * Major update to serial port support on unix. 

     * Enabled [interp invokehidden {} yield]. 

     * [auto_mkindex] extended to index TclOO. 

     * Tcl_NR*Eval*() routines now schedule only, as documented. 

     * Bytecode compiled: ensembles [array set] [list {*}...] 

     * Fixed crashes in... 
        - [while 1 {foo [continue]}] 
        - managing refcounts of Tk "option" values. 
        - [load] failing to open a temp file. 
        - [dict] bytecode compilers. 
        - [apply {{} {list [if 1]}}] (debug build) 
        - test platform-3.1 (64-bit Darwin) 

     * Plugged memory leaks in... 
        - Tcl_DString to Tcl_Obj conversion. 
        - optimized execution of [lreplace] bytecode. 
        - [format] bytecode compiler. 

     * Fixed flushing errors in [zlib push gzip] stacked channels. 

     * Fixed directory permission errors using TMPDIR. (unix) 

     * Fixed [binary decode hex] failure when whitespace is present. 

     * Fixed flaw resolving member variables of copied objects. 

     * Fixed [$other varname x] behaving like [my varname x]. 

     * New package releases: 
          http 2.8.7:         Support URLs with query but no path 
          msgcat 1.5.2:         Use language packs (Vista+) locale 
          platform 1.0.12: broaden gblibc version detection 
          tcltest 2.3.6:         Select code updates. 

2013-09-14

PHP on Wub (Wndows Platform, update)

測試環境資料:

Windows 7 64 bit,
ActiveTcl 64 bit,
Tcllib 1.15,
PHP 5.4.19

我在另外一台 Windows XP 重做一次無法成功,目前找不出來失敗的原因,不過我發現我之前沒有全盤讀懂 source code,做了一些沒有用的步驟,更新一次方法。


資料放置目錄:
Wub 放在 c:/Wub
PHP 放在 c:/php


PHP 要修改的地方集中在 php.ini,為下列三個項目:
doc_root = c:/Wub/docroot
cgi.force_redirect = 0
cgi.redirect_status_env = ENV_VAR_NAME


Wub 我修改了二個項目,第一項是 c:/Wub/site.config:

/CGI/ {
    domain CGI
    root $Wub::docroot/cgi
    # windows tcl executor
    executors   {.TCL C:/Tcl/bin/tclsh86.exe .PHP C:/php/php-cgi.exe}
}

另外一個則是增加 PHP mime type 到 Wub 設定 (檔案為 c:/Wub/mime.types):

application/x-php              php

這樣就可以了,不用修改 CGI.tcl。


然後在 c:/Wub/docroot 建立 CGI 目錄,放一個 info.php 測試:

<?php
    phpinfo();
?>    

連線 http://localhost:8080/CGI/info.php 如果有出現資訊就表示成功了。

2013-09-13

Get current OS string

使用下面的變數就可以拿到目前的 OS 字串:

$::tcl_platform(os)


以 Windows XP 來說,結果是下面的字串:

Windows NT