Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Merge 8.6 |
|---|---|
| Timelines: | family | ancestors | descendants | both | core-9-0-branch |
| Files: | files | file ages | folders |
| SHA3-256: |
791adf31dac52c79f077578e762a3cca |
| User & Date: | jan.nijtmans 2025-09-15 20:08:00.098 |
Context
|
2025-09-15
| ||
| 20:59 | Unicode version 17 check-in: c658915b9b user: jan.nijtmans tags: core-9-0-branch | |
| 20:16 | (more) Use correct equality check-in: c9bb1a7642 user: jan.nijtmans tags: trunk, main | |
| 20:08 | Merge 8.6 check-in: 791adf31da user: jan.nijtmans tags: core-9-0-branch | |
| 19:43 | (backport) Use correct equality check-in: d637d83a33 user: jan.nijtmans tags: core-8-6-branch | |
|
2025-09-12
| ||
| 08:04 | deprecate (internal) NS_KILLED. It is not used any more check-in: a3f7a54f52 user: jan.nijtmans tags: core-9-0-branch | |
Changes
Changes to changes.md.
| ︙ | ︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # Bug fixes - [On Unix, IsTimeNative() always defined but not always used](https://core.tcl-lang.org/tcl/tktview/6b8e39) - [Tweak install permissions](https://core.tcl-lang.org/tcl/tktview/31d4fa) - [interp creation resets encoding directory search path](https://core.tcl-lang.org/tcl/tktview/87b697) - [Pointer arithmetic with NULL in buildInfoObjCmd()](https://core.tcl-lang.org/tcl/tktview/85fc8b) # Updated bundled packages, libraries, standards, data - platform 1.1.0 - sqlite3 3.50.4 - tcltest 2.5.10 - Thread 3.0.3 - TDBC\* 1.1.12 Release Tcl 9.0.2 arises from the check-in with tag `core-9-0-2`. | > | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # Bug fixes - [On Unix, IsTimeNative() always defined but not always used](https://core.tcl-lang.org/tcl/tktview/6b8e39) - [Tweak install permissions](https://core.tcl-lang.org/tcl/tktview/31d4fa) - [interp creation resets encoding directory search path](https://core.tcl-lang.org/tcl/tktview/87b697) - [Pointer arithmetic with NULL in buildInfoObjCmd()](https://core.tcl-lang.org/tcl/tktview/85fc8b) # Updated bundled packages, libraries, standards, data - http 2.10.1 - platform 1.1.0 - sqlite3 3.50.4 - tcltest 2.5.10 - Thread 3.0.3 - TDBC\* 1.1.12 Release Tcl 9.0.2 arises from the check-in with tag `core-9-0-2`. |
| ︙ | ︙ |
Changes to library/http/http.tcl.
| ︙ | ︙ | |||
3648 3649 3650 3651 3652 3653 3654 |
Finish $token $nhl
return
} elseif {$nhl == 0} {
##Log header done - token $token
Log ^E$tk end of response headers - token $token
# We have now read all headers
# We ignore HTTP/1.1 100 Continue returns. RFC2616 sec 8.2.3
| | | 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 |
Finish $token $nhl
return
} elseif {$nhl == 0} {
##Log header done - token $token
Log ^E$tk end of response headers - token $token
# We have now read all headers
# We ignore HTTP/1.1 100 Continue returns. RFC2616 sec 8.2.3
if { ($state(http) eq "")
|| ([regexp {^\S+\s(\d+)} $state(http) {} x] && $x == 100)
} {
set state(state) "connecting"
continue
# This was a "return" in the pre-coroutine code.
}
|
| ︙ | ︙ |
Changes to library/platform/platform.tcl.
| ︙ | ︙ | |||
95 96 97 98 99 100 101 |
append cpu _32
}
}
}
switch -glob -- $plat {
windows {
| | | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
append cpu _32
}
}
}
switch -glob -- $plat {
windows {
if {$tcl_platform(platform) eq "unix"} {
set plat cygwin
} else {
set plat win32
}
if {$cpu eq "amd64"} {
# Do not check wordSize, win32-x64 is an IL32P64 platform.
set cpu x86_64
|
| ︙ | ︙ |
Changes to tests/chanio.test.
| ︙ | ︙ | |||
80 81 82 83 84 85 86 |
\#123456789abcdef01
\#"
}
chan close $f
set path(cat) [makeFile {
set f stdin
| | | 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
\#123456789abcdef01
\#"
}
chan close $f
set path(cat) [makeFile {
set f stdin
if {$argv ne ""} {
set f [open [lindex $argv 0]]
}
chan configure $f -translation binary -blocking 0 -eofchar \x1A
chan configure stdout -translation binary -buffering none
chan event $f readable "foo $f"
proc foo {f} {
set x [chan read $f]
|
| ︙ | ︙ |
Changes to tests/interp.test.
| ︙ | ︙ | |||
331 332 333 334 335 336 337 |
lappend res [namespace eval tst a]
rename p {}
rename a {}
namespace delete tst
set res
} {GLOBAL GLOBAL}
| | | 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 |
lappend res [namespace eval tst a]
rename p {}
rename a {}
namespace delete tst
set res
} {GLOBAL GLOBAL}
if {[info command nonexistent-command-in-parent] ne ""} {
rename nonexistent-command-in-parent {}
}
# Part 9: Aliasing between interpreters
test interp-10.1 {testing aliasing between interpreters} {
catch {interp delete a}
catch {interp delete b}
|
| ︙ | ︙ |
Changes to tests/io.test.
| ︙ | ︙ | |||
74 75 76 77 78 79 80 |
\#123456789abcdef01
\#"
}
close $f
set path(cat) [makeFile {
set f stdin
| | | 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
\#123456789abcdef01
\#"
}
close $f
set path(cat) [makeFile {
set f stdin
if {$argv ne ""} {
set f [open [lindex $argv 0]]
}
fconfigure $f -translation binary -blocking 0 -eofchar \x1A
fconfigure stdout -translation binary -buffering none
fileevent $f readable "foo $f"
proc foo {f} {
set x [read $f]
|
| ︙ | ︙ | |||
1883 1884 1885 1886 1887 1888 1889 |
close $fd
} -result {xxxxxxx 1 {POSIX EILSEQ {invalid or incomplete multibyte or wide character}}}
# Test standard handle management. The functions tested are
# Tcl_SetStdChannel and Tcl_GetStdChannel. Incidentally we are
# also testing channel table management.
| | | 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 |
close $fd
} -result {xxxxxxx 1 {POSIX EILSEQ {invalid or incomplete multibyte or wide character}}}
# Test standard handle management. The functions tested are
# Tcl_SetStdChannel and Tcl_GetStdChannel. Incidentally we are
# also testing channel table management.
if {[info commands testchannel] ne ""} {
set consoleFileNames [lsort [testchannel open]]
} else {
# just to avoid an error
set consoleFileNames [list]
}
test io-14.1 {Tcl_SetStdChannel and Tcl_GetStdChannel} {testchannel} {
|
| ︙ | ︙ | |||
8763 8764 8765 8766 8767 8768 8769 |
}
proc doit {s} {
variable counter
variable after
incr counter
set l [gets $s]
| | | 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 |
}
proc doit {s} {
variable counter
variable after
incr counter
set l [gets $s]
if {"$l" eq ""} {
fileevent $s readable [namespace code "doit1 $s"]
set after [after 1000 [namespace code newline]]
}
}
proc doit1 {s} {
variable counter
variable accept
|
| ︙ | ︙ |
Changes to tests/socket.test.
| ︙ | ︙ | |||
2447 2448 2449 2450 2451 2452 2453 |
} -result {transport endpoint is not connected} -returnCodes 1
test socket-14.12 {[socket -async] background progress triggered by [fconfigure -error]} \
-constraints {socket} \
-body {
set s [socket -async localhost [randport]]
for {set i 0} {$i < 50} {incr i} {
set x [fconfigure $s -error]
| | | 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 |
} -result {transport endpoint is not connected} -returnCodes 1
test socket-14.12 {[socket -async] background progress triggered by [fconfigure -error]} \
-constraints {socket} \
-body {
set s [socket -async localhost [randport]]
for {set i 0} {$i < 50} {incr i} {
set x [fconfigure $s -error]
if {$x ne ""} break
after 200
}
set x
} -cleanup {
close $s
unset x s
} -result {connection refused}
|
| ︙ | ︙ |
Changes to tests/unixFCmd.test.
| ︙ | ︙ | |||
26 27 28 29 30 31 32 |
set oldcwd [pwd]
cd [temporaryDirectory]
# Several tests require need to match results against the Unix username
set user {}
if {[testConstraint unix]} {
catch {set user [exec whoami]}
| | | | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
set oldcwd [pwd]
cd [temporaryDirectory]
# Several tests require need to match results against the Unix username
set user {}
if {[testConstraint unix]} {
catch {set user [exec whoami]}
if {$user eq ""} {
catch {regexp {^[^(]*\(([^)]*)\)} [exec id] dummy user}
}
if {$user eq ""} {
set user "root"
}
}
# Find a group that exists on this system, or else skip tests that require
# groups
testConstraint foundGroup 0
|
| ︙ | ︙ |
Changes to tests/winDde.test.
| ︙ | ︙ | |||
57 58 59 60 61 62 63 |
flush stdout
}
set timeout [after 30000 ::DoTimeout]
# Define a restricted handler.
proc Handler1 {cmd} {
if {$cmd eq "stop"} {set ::done 1}
| | | 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
flush stdout
}
set timeout [after 30000 ::DoTimeout]
# Define a restricted handler.
proc Handler1 {cmd} {
if {$cmd eq "stop"} {set ::done 1}
if {$cmd eq ""} {
set cmd "null data"
}
puts $cmd ; flush stdout
return
}
proc Handler2 {cmd} {
if {$cmd eq "stop"} {set ::done 1}
|
| ︙ | ︙ |
Changes to tools/regexpTestLib.tcl.
| ︙ | ︙ | |||
13 14 15 16 17 18 19 |
set fileId [open $inFileName r]
set i 0
while {[gets $fileId line] >= 0} {
set len [string length $line]
| | | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
set fileId [open $inFileName r]
set i 0
while {[gets $fileId line] >= 0} {
set len [string length $line]
if {($len > 0) && ([string index $line [expr {$len - 1}]] eq "\\")} {
if {[info exists lineArray(c$i)] == 0} {
set lineArray(c$i) 1
} else {
incr lineArray(c$i)
}
set line [string range $line 0 [expr {$len - 2}]]
append lineArray($i) $line
|
| ︙ | ︙ | |||
125 126 127 128 129 130 131 |
set srcLineNum 1
while {$lineNum < $numLines} {
set currentLine $lineArray($lineNum)
# copy comment string to output file and continue
| | | 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
set srcLineNum 1
while {$lineNum < $numLines} {
set currentLine $lineArray($lineNum)
# copy comment string to output file and continue
if {[string index $currentLine 0] eq "#"} {
puts $fileId $currentLine
incr srcLineNum $lineArray(c$lineNum)
incr lineNum
continue
}
set len [llength $currentLine]
|
| ︙ | ︙ |