Tcl Source Code

Hex Artifact Content
Login

Artifact b544cf1e798c1c900308551a5b24140fdf1dd372e1cc62db351b3fa69c82c397:


0000: 0a 54 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65  .The source code
0010: 20 66 6f 72 20 54 63 6c 20 69 73 20 6d 61 6e 61   for Tcl is mana
0020: 67 65 64 20 62 79 20 66 6f 73 73 69 6c 2e 20 20  ged by fossil.  
0030: 54 63 6c 20 64 65 76 65 6c 6f 70 65 72 73 20 63  Tcl developers c
0040: 6f 6f 72 64 69 6e 61 74 65 20 61 6c 6c 0a 63 68  oordinate all.ch
0050: 61 6e 67 65 73 20 74 6f 20 74 68 65 20 54 63 6c  anges to the Tcl
0060: 20 73 6f 75 72 63 65 20 63 6f 64 65 20 61 74 0a   source code at.
0070: 0a 3e 20 5b 54 63 6c 20 53 6f 75 72 63 65 20 43  .> [Tcl Source C
0080: 6f 64 65 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72  ode](https://cor
0090: 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74  e.tcl-lang.org/t
00a0: 63 6c 2f 74 69 6d 65 6c 69 6e 65 29 0a 0a 52 65  cl/timeline)..Re
00b0: 6c 65 61 73 65 20 54 63 6c 20 39 2e 31 2e 31 20  lease Tcl 9.1.1 
00c0: 61 72 69 73 65 73 20 66 72 6f 6d 20 74 68 65 20  arises from the 
00d0: 63 68 65 63 6b 2d 69 6e 20 77 69 74 68 20 74 61  check-in with ta
00e0: 67 20 60 63 6f 72 65 2d 39 2d 31 2d 31 60 2e 0a  g `core-9-1-1`..
00f0: 0a 54 63 6c 20 70 61 74 63 68 20 72 65 6c 65 61  .Tcl patch relea
0100: 73 65 73 20 68 61 76 65 20 74 68 65 20 70 72 69  ses have the pri
0110: 6d 61 72 79 20 70 75 72 70 6f 73 65 20 6f 66 20  mary purpose of 
0120: 64 65 6c 69 76 65 72 69 6e 67 20 62 75 67 20 66  delivering bug f
0130: 69 78 65 73 0a 74 6f 20 74 68 65 20 75 73 65 72  ixes.to the user
0140: 62 61 73 65 2e 0a 0a 23 20 42 75 67 20 66 69 78  base...# Bug fix
0150: 65 73 0a 20 2d 20 5b 72 65 67 65 78 70 20 73 6f  es. - [regexp so
0160: 6d 65 74 69 6d 65 73 20 61 6c 6c 6f 77 73 20 61  metimes allows a
0170: 6e 20 69 6e 76 61 6c 69 64 20 62 61 63 6b 72 65  n invalid backre
0180: 66 20 74 6f 20 62 65 20 6d 61 74 63 68 65 64 5d  f to be matched]
0190: 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63  (https://core.tc
01a0: 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74  l-lang.org/tcl/t
01b0: 6b 74 76 69 65 77 2f 37 35 63 39 64 39 29 0a 20  ktview/75c9d9). 
01c0: 2d 20 5b 72 65 67 65 78 70 20 2d 61 6c 6c 20 64  - [regexp -all d
01d0: 69 64 20 6e 6f 74 20 74 72 79 20 74 6f 20 6d 61  id not try to ma
01e0: 74 63 68 20 61 74 20 74 68 65 20 65 6e 64 20 6f  tch at the end o
01f0: 66 20 74 68 65 20 73 74 72 69 6e 67 5d 28 68 74  f the string](ht
0200: 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c  tps://core.tcl-l
0210: 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76  ang.org/tcl/tktv
0220: 69 65 77 2f 62 37 33 66 31 32 29 0a 20 2d 20 5b  iew/b73f12). - [
0230: 72 65 67 65 78 70 2f 72 65 67 73 75 62 20 2d 61  regexp/regsub -a
0240: 6c 6c 20 72 65 73 74 61 72 74 65 64 20 6d 61 74  ll restarted mat
0250: 63 68 69 6e 67 20 6f 6e 20 74 68 65 20 73 75 62  ching on the sub
0260: 73 74 72 69 6e 67 20 61 66 74 65 72 20 74 68 65  string after the
0270: 20 70 72 65 76 69 6f 75 73 20 6d 61 74 63 68 5d   previous match]
0280: 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63  (https://core.tc
0290: 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74  l-lang.org/tcl/t
02a0: 6b 74 76 69 65 77 2f 34 37 31 31 30 31 29 0a 20  ktview/471101). 
02b0: 2d 20 5b 77 69 74 68 20 52 45 47 5f 42 4f 53 4f  - [with REG_BOSO
02c0: 4e 4c 59 20 6f 6e 6c 79 20 74 68 65 20 66 69 72  NLY only the fir
02d0: 73 74 20 61 6c 74 65 72 6e 61 74 69 76 65 20 77  st alternative w
02e0: 61 73 20 61 6e 63 68 6f 72 65 64 20 61 74 20 74  as anchored at t
02f0: 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20  he beginning of 
0300: 74 68 65 20 73 74 72 69 6e 67 5d 28 68 74 74 70  the string](http
0310: 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e  s://core.tcl-lan
0320: 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65  g.org/tcl/tktvie
0330: 77 2f 31 31 37 38 35 34 29 0a 20 2d 20 5b 54 63  w/117854). - [Tc
0340: 6c 55 6e 69 78 57 61 69 74 46 6f 72 46 69 6c 65  lUnixWaitForFile
0350: 3a 20 69 6e 66 69 6e 69 74 65 20 77 61 69 74 20  : infinite wait 
0360: 6d 61 79 20 72 65 74 75 72 6e 20 65 61 72 6c 79  may return early
0370: 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74  ](https://core.t
0380: 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f  cl-lang.org/tcl/
0390: 74 6b 74 76 69 65 77 2f 34 39 35 33 38 63 29 0a  tktview/49538c).
03a0: 20 2d 20 5b 6c 73 65 61 72 63 68 20 2d 72 65 67   - [lsearch -reg
03b0: 65 78 70 20 72 65 6c 65 61 73 65 64 20 74 68 65  exp released the
03c0: 20 70 61 74 74 65 72 6e 20 77 68 65 6e 20 6d 61   pattern when ma
03d0: 74 63 68 69 6e 67 20 66 61 69 6c 65 64 5d 28 68  tching failed](h
03e0: 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d  ttps://core.tcl-
03f0: 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74  lang.org/tcl/tkt
0400: 76 69 65 77 2f 33 35 39 35 37 36 29 0a 20 2d 20  view/359576). - 
0410: 5b 72 65 73 74 6f 72 65 20 74 68 65 20 62 6c 6f  [restore the blo
0420: 63 6b 69 6e 67 20 6d 6f 64 65 20 77 68 65 6e 20  cking mode when 
0430: 22 73 6f 63 6b 65 74 20 2d 61 73 79 6e 63 22 20  "socket -async" 
0440: 63 6f 6e 6e 65 63 74 73 20 61 74 20 6f 6e 63 65  connects at once
0450: 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74  ](https://core.t
0460: 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f  cl-lang.org/tcl/
0470: 74 6b 74 76 69 65 77 2f 64 32 32 64 63 37 29 0a  tktview/d22dc7).
0480: 20 2d 20 5b 63 6f 6d 70 69 6c 65 64 20 5b 63 6c   - [compiled [cl
0490: 6f 63 6b 20 63 6c 69 63 6b 73 20 2d 6d 69 5d 20  ock clicks -mi] 
04a0: 73 68 6f 75 6c 64 20 67 69 76 65 20 22 61 6d 62  should give "amb
04b0: 69 67 75 6f 75 73 20 6f 70 74 69 6f 6e 22 20 65  iguous option" e
04c0: 72 72 6f 72 5d 28 68 74 74 70 73 3a 2f 2f 63 6f  rror](https://co
04d0: 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f  re.tcl-lang.org/
04e0: 74 63 6c 2f 74 6b 74 76 69 65 77 2f 31 61 65 39  tcl/tktview/1ae9
04f0: 37 36 29 0a 20 2d 20 5b 77 72 69 74 69 6e 67 20  76). - [writing 
0500: 61 20 66 69 6c 65 20 62 65 79 6f 6e 64 20 74 68  a file beyond th
0510: 65 20 66 69 6c 65 20 73 69 7a 65 20 6c 69 6d 69  e file size limi
0520: 74 20 28 75 6c 69 6d 69 74 20 2d 66 29 20 6b 69  t (ulimit -f) ki
0530: 6c 6c 65 64 20 74 68 65 20 70 72 6f 63 65 73 73  lled the process
0540: 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74  ](https://core.t
0550: 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f  cl-lang.org/tcl/
0560: 74 6b 74 76 69 65 77 2f 33 38 36 35 36 33 29 0a  tktview/386563).
0570: 20 2d 20 5b 49 6e 63 6f 72 72 65 63 74 20 61 72   - [Incorrect ar
0580: 67 75 6d 65 6e 74 20 68 61 6e 64 6c 69 6e 67 20  gument handling 
0590: 62 79 20 5b 72 65 67 65 78 70 5d 5d 28 68 74 74  by [regexp]](htt
05a0: 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61  ps://core.tcl-la
05b0: 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69  ng.org/tcl/tktvi
05c0: 65 77 2f 36 39 37 62 31 62 29 0a 20 2d 20 5b 63  ew/697b1b). - [c
05d0: 6f 6d 70 69 6c 65 64 20 72 65 67 65 78 70 20 62  ompiled regexp b
05e0: 65 68 61 76 65 73 20 64 69 66 66 65 72 65 6e 74  ehaves different
05f0: 6c 79 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65  ly](https://core
0600: 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63  .tcl-lang.org/tc
0610: 6c 2f 74 6b 74 76 69 65 77 2f 31 39 30 32 38 39  l/tktview/190289
0620: 29 0a 20 2d 20 5b 61 20 7b 31 2c 31 7d 20 71 75  ). - [a {1,1} qu
0630: 61 6e 74 69 66 69 65 72 20 77 61 73 20 61 6c 77  antifier was alw
0640: 61 79 73 20 64 72 6f 70 70 65 64 20 61 73 20 76  ays dropped as v
0650: 61 63 75 6f 75 73 5d 28 68 74 74 70 73 3a 2f 2f  acuous](https://
0660: 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72  core.tcl-lang.or
0670: 67 2f 74 63 6c 2f 74 6b 74 76 69 65 77 2f 35 32  g/tcl/tktview/52
0680: 34 62 33 35 29 0a 20 2d 20 5b 72 65 67 65 78 70  4b35). - [regexp
0690: 20 77 69 74 68 20 62 61 63 6b 72 65 66 65 72 65   with backrefere
06a0: 6e 63 65 73 20 63 6f 75 6c 64 20 6c 6f 6f 70 20  nces could loop 
06b0: 66 6f 72 65 76 65 72 5d 28 68 74 74 70 73 3a 2f  forever](https:/
06c0: 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f  /core.tcl-lang.o
06d0: 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65 77 2f 61  rg/tcl/tktview/a
06e0: 36 30 32 39 65 29 0a 20 2d 20 5b 72 65 6d 6f 76  6029e). - [remov
06f0: 65 20 65 6d 70 74 79 20 64 69 72 65 63 74 6f 72  e empty director
0700: 69 65 73 20 66 72 6f 6d 20 74 68 65 20 7a 69 70  ies from the zip
0710: 66 73 20 56 46 53 20 77 69 74 68 20 50 4f 53 49  fs VFS with POSI
0720: 58 20 66 69 6e 64 20 6f 70 74 69 6f 6e 73 5d 28  X find options](
0730: 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c  https://core.tcl
0740: 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b  -lang.org/tcl/tk
0750: 74 76 69 65 77 2f 39 33 33 36 66 31 29 0a 20 2d  tview/9336f1). -
0760: 20 5b 74 61 69 6c 63 61 6c 6c 20 70 61 6e 69 63   [tailcall panic
0770: 6b 65 64 20 69 6e 20 61 20 63 6f 6d 6d 61 6e 64  ked in a command
0780: 20 63 61 6c 6c 65 64 20 64 69 72 65 63 74 6c 79   called directly
0790: 20 62 79 20 69 74 73 20 6f 62 6a 50 72 6f 63 5d   by its objProc]
07a0: 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63  (https://core.tc
07b0: 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74  l-lang.org/tcl/t
07c0: 6b 74 76 69 65 77 2f 34 39 35 35 66 35 29 0a 20  ktview/4955f5). 
07d0: 2d 20 5b 63 6f 6d 70 69 6c 65 64 20 5b 73 65 6c  - [compiled [sel
07e0: 66 20 6e 5d 20 73 68 6f 75 6c 64 20 62 65 20 61  f n] should be a
07f0: 6d 62 69 67 75 6f 75 73 5d 28 68 74 74 70 73 3a  mbiguous](https:
0800: 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e  //core.tcl-lang.
0810: 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65 77 2f  org/tcl/tktview/
0820: 38 61 62 30 36 65 29 0a 20 2d 20 5b 64 69 66 66  8ab06e). - [diff
0830: 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 62  erence between b
0840: 63 63 27 65 64 20 61 6e 64 20 65 76 61 6c 27 65  cc'ed and eval'e
0850: 64 20 72 65 67 65 78 70 5d 28 68 74 74 70 73 3a  d regexp](https:
0860: 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e  //core.tcl-lang.
0870: 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65 77 2f  org/tcl/tktview/
0880: 33 30 36 39 34 35 29 0a 20 2d 20 5b 72 65 67 73  306945). - [regs
0890: 75 62 20 61 6c 77 61 79 73 20 61 73 6b 65 64 20  ub always asked 
08a0: 74 68 65 20 72 65 67 65 78 70 20 65 6e 67 69 6e  the regexp engin
08b0: 65 20 66 6f 72 20 31 30 20 73 75 62 6d 61 74 63  e for 10 submatc
08c0: 68 65 73 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72  hes](https://cor
08d0: 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74  e.tcl-lang.org/t
08e0: 63 6c 2f 74 6b 74 76 69 65 77 2f 34 34 36 35 36  cl/tktview/44656
08f0: 35 29 0a 20 2d 20 5b 72 65 67 73 75 62 20 2d 63  5). - [regsub -c
0900: 6f 6d 6d 61 6e 64 20 70 61 6e 69 63 73 20 77 69  ommand panics wi
0910: 74 68 20 6d 6f 72 65 20 74 68 61 6e 20 39 20 63  th more than 9 c
0920: 61 70 74 75 72 69 6e 67 20 67 72 6f 75 70 73 5d  apturing groups]
0930: 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63  (https://core.tc
0940: 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74  l-lang.org/tcl/t
0950: 6b 74 76 69 65 77 2f 34 31 62 63 39 61 29 0a 20  ktview/41bc9a). 
0960: 2d 20 5b 50 72 6f 62 6c 65 6d 20 77 69 74 68 20  - [Problem with 
0970: 3a 3a 68 74 74 70 3a 3a 4f 70 65 6e 53 6f 63 6b  ::http::OpenSock
0980: 65 74 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65  et](https://core
0990: 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63  .tcl-lang.org/tc
09a0: 6c 2f 74 6b 74 76 69 65 77 2f 30 63 31 65 39 31  l/tktview/0c1e91
09b0: 29 0a 20 2d 20 5b 6f 6e 20 57 69 6e 64 6f 77 73  ). - [on Windows
09c0: 20 61 20 6a 6f 69 6e 61 62 6c 65 20 74 68 72 65   a joinable thre
09d0: 61 64 20 77 68 69 63 68 20 65 78 69 74 73 20 62  ad which exits b
09e0: 65 66 6f 72 65 20 69 74 20 69 73 20 6a 6f 69 6e  efore it is join
09f0: 65 64 20 6c 65 61 6b 65 64 5d 28 68 74 74 70 73  ed leaked](https
0a00: 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67  ://core.tcl-lang
0a10: 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65 77  .org/tcl/tktview
0a20: 2f 33 33 38 31 33 37 29 0a 20 2d 20 5b 6f 6e 20  /338137). - [on 
0a30: 55 6e 69 78 2c 20 54 63 6c 5f 4a 6f 69 6e 54 68  Unix, Tcl_JoinTh
0a40: 72 65 61 64 28 29 20 73 68 6f 75 6c 64 20 6e 6f  read() should no
0a50: 74 20 63 61 6c 6c 20 70 74 68 72 65 61 64 5f 6a  t call pthread_j
0a60: 6f 69 6e 28 29 20 66 6f 72 20 64 65 74 61 63 68  oin() for detach
0a70: 65 64 20 74 68 72 65 61 64 73 5d 28 68 74 74 70  ed threads](http
0a80: 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e  s://core.tcl-lan
0a90: 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65  g.org/tcl/tktvie
0aa0: 77 2f 35 39 37 34 66 66 29 0a 20 2d 20 5b 7a 6c  w/5974ff). - [zl
0ab0: 69 62 2d 38 2e 33 20 61 6e 64 20 7a 6c 69 62 2d  ib-8.3 and zlib-
0ac0: 39 2e 33 20 63 6f 6e 6e 65 63 74 65 64 20 74 6f  9.3 connected to
0ad0: 20 6c 6f 63 61 6c 68 6f 73 74 5d 28 68 74 74 70   localhost](http
0ae0: 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e  s://core.tcl-lan
0af0: 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65  g.org/tcl/tktvie
0b00: 77 2f 38 31 63 62 32 62 29 0a 20 2d 20 5b 7a 69  w/81cb2b). - [zi
0b10: 70 66 73 20 63 68 61 6e 6e 65 6c 73 20 6e 65 76  pfs channels nev
0b20: 65 72 20 67 65 6e 65 72 61 74 65 64 20 66 69 6c  er generated fil
0b30: 65 20 65 76 65 6e 74 73 5d 28 68 74 74 70 73 3a  e events](https:
0b40: 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e  //core.tcl-lang.
0b50: 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65 77 2f  org/tcl/tktview/
0b60: 30 36 35 34 63 65 29 0a 20 2d 20 5b 69 6e 74 65  0654ce). - [inte
0b70: 72 70 20 63 72 65 61 74 65 20 72 65 73 65 74 73  rp create resets
0b80: 20 74 68 65 20 73 79 73 74 65 6d 20 65 6e 63 6f   the system enco
0b90: 64 69 6e 67 20 73 65 74 20 62 79 20 65 6e 63 6f  ding set by enco
0ba0: 64 69 6e 67 20 73 79 73 74 65 6d 5d 28 68 74 74  ding system](htt
0bb0: 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61  ps://core.tcl-la
0bc0: 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69  ng.org/tcl/tktvi
0bd0: 65 77 2f 36 33 39 34 31 66 29 0a 20 2d 20 5b 74  ew/63941f). - [t
0be0: 72 61 63 65 62 61 63 6b 20 75 73 69 6e 67 20 63  raceback using c
0bf0: 6c 6f 63 6b 20 66 6f 72 6d 61 74 20 77 69 74 68  lock format with
0c00: 20 6c 6f 63 61 6c 65 20 6f 66 20 68 65 5f 49 4c   locale of he_IL
0c10: 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74  ](https://core.t
0c20: 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f  cl-lang.org/tcl/
0c30: 74 6b 74 76 69 65 77 2f 33 30 31 36 31 33 29 0a  tktview/301613).
0c40: 20 2d 20 5b 68 65 20 6c 6f 63 61 6c 65 3a 20 42   - [he locale: B
0c50: 43 45 20 61 6e 64 20 43 45 20 65 72 61 20 6e 61  CE and CE era na
0c60: 6d 65 73 20 61 72 65 20 73 77 61 70 70 65 64 5d  mes are swapped]
0c70: 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63  (https://core.tc
0c80: 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74  l-lang.org/tcl/t
0c90: 6b 74 76 69 65 77 2f 35 38 62 61 65 38 29 0a 20  ktview/58bae8). 
0ca0: 2d 20 5b 66 6f 72 6d 61 74 20 25 41 20 67 61 72  - [format %A gar
0cb0: 62 6c 65 73 20 6e 65 67 61 74 69 76 65 2c 20 70  bles negative, p
0cc0: 61 64 64 65 64 20 61 6e 64 20 69 6e 66 69 6e 69  added and infini
0cd0: 74 65 20 76 61 6c 75 65 73 5d 28 68 74 74 70 73  te values](https
0ce0: 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67  ://core.tcl-lang
0cf0: 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65 77  .org/tcl/tktview
0d00: 2f 32 64 66 66 39 38 29 0a 20 2d 20 5b 73 6f 63  /2dff98). - [soc
0d10: 6b 65 74 2d 32 2e 31 32 20 66 61 69 6c 65 64 20  ket-2.12 failed 
0d20: 6f 6e 20 4f 70 65 6e 42 53 44 5d 28 68 74 74 70  on OpenBSD](http
0d30: 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e  s://core.tcl-lan
0d40: 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65  g.org/tcl/tktvie
0d50: 77 2f 65 39 39 31 38 37 29 0a 20 2d 20 5b 64 6f  w/e99187). - [do
0d60: 20 6e 6f 74 20 74 68 72 6f 77 20 66 72 6f 6d 20   not throw from 
0d70: 5b 73 6f 63 6b 65 74 20 2d 61 73 79 6e 63 5d 20  [socket -async] 
0d80: 77 68 65 6e 20 74 68 65 20 63 6f 6e 6e 65 63 74  when the connect
0d90: 20 66 61 69 6c 73 20 61 74 20 6f 6e 63 65 5d 28   fails at once](
0da0: 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c  https://core.tcl
0db0: 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b  -lang.org/tcl/tk
0dc0: 74 76 69 65 77 2f 35 39 65 37 65 37 29 0a 20 2d  tview/59e7e7). -
0dd0: 20 5b 74 65 73 74 20 70 6f 72 74 61 62 69 6c 69   [test portabili
0de0: 74 79 20 66 6f 72 20 69 6c 6c 75 6d 6f 73 3a 20  ty for illumos: 
0df0: 73 6b 69 70 20 73 6f 63 6b 65 74 2d 31 34 2e 31  skip socket-14.1
0e00: 39 20 77 68 65 72 65 20 53 4f 5f 52 45 55 53 45  9 where SO_REUSE
0e10: 50 4f 52 54 20 69 73 20 6e 6f 74 20 73 75 70 70  PORT is not supp
0e20: 6f 72 74 65 64 5d 28 68 74 74 70 73 3a 2f 2f 63  orted](https://c
0e30: 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67  ore.tcl-lang.org
0e40: 2f 74 63 6c 2f 74 6b 74 76 69 65 77 2f 64 62 66  /tcl/tktview/dbf
0e50: 39 38 38 29 0a 20 2d 20 5b 6c 73 65 74 20 77 69  988). - [lset wi
0e60: 74 68 20 73 65 76 65 72 61 6c 20 69 6e 64 69 63  th several indic
0e70: 65 73 20 6f 6e 20 61 6e 20 61 62 73 74 72 61 63  es on an abstrac
0e80: 74 20 6c 69 73 74 20 28 6c 73 65 71 29 20 75 73  t list (lseq) us
0e90: 65 64 20 61 20 66 72 65 65 64 20 73 75 62 6c 69  ed a freed subli
0ea0: 73 74 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65  st](https://core
0eb0: 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63  .tcl-lang.org/tc
0ec0: 6c 2f 74 6b 74 76 69 65 77 2f 35 32 36 62 30 31  l/tktview/526b01
0ed0: 29 0a 0a 23 20 55 70 64 61 74 65 64 20 62 75 6e  )..# Updated bun
0ee0: 64 6c 65 64 20 70 61 63 6b 61 67 65 73 2c 20 6c  dled packages, l
0ef0: 69 62 72 61 72 69 65 73 2c 20 73 74 61 6e 64 61  ibraries, standa
0f00: 72 64 73 2c 20 64 61 74 61 0a 20 2d 20 68 74 74  rds, data. - htt
0f10: 70 20 32 2e 31 30 2e 33 0a 20 2d 20 6d 73 67 63  p 2.10.3. - msgc
0f20: 61 74 20 31 2e 37 2e 32 0a 20 2d 20 74 7a 63 6f  at 1.7.2. - tzco
0f30: 64 65 20 32 30 32 36 65 0a 0a 23 20 55 70 64 61  de 2026e..# Upda
0f40: 74 65 64 20 62 75 6e 64 6c 65 64 20 70 61 63 6b  ted bundled pack
0f50: 61 67 65 73 2c 20 6c 69 62 72 61 72 69 65 73 2c  ages, libraries,
0f60: 20 73 74 61 6e 64 61 72 64 73 2c 20 64 61 74 61   standards, data
0f70: 0a 0a 52 65 6c 65 61 73 65 20 54 63 6c 20 39 2e  ..Release Tcl 9.
0f80: 31 2e 30 20 61 72 69 73 65 73 20 66 72 6f 6d 20  1.0 arises from 
0f90: 74 68 65 20 63 68 65 63 6b 2d 69 6e 20 77 69 74  the check-in wit
0fa0: 68 20 74 61 67 20 60 63 6f 72 65 2d 39 2d 31 2d  h tag `core-9-1-
0fb0: 30 60 2e 0a 0a 48 69 67 68 6c 69 67 68 74 65 64  0`...Highlighted
0fc0: 20 64 69 66 66 65 72 65 6e 63 65 73 20 62 65 74   differences bet
0fd0: 77 65 65 6e 20 54 63 6c 20 39 2e 31 20 61 6e 64  ween Tcl 9.1 and
0fe0: 20 54 63 6c 20 39 2e 30 20 61 72 65 20 73 75 6d   Tcl 9.0 are sum
0ff0: 6d 61 72 69 7a 65 64 20 62 65 6c 6f 77 2c 0a 77  marized below,.w
1000: 69 74 68 20 66 6f 63 75 73 20 6f 6e 20 63 68 61  ith focus on cha
1010: 6e 67 65 73 20 69 6d 70 6f 72 74 61 6e 74 20 74  nges important t
1020: 6f 20 70 72 6f 67 72 61 6d 6d 65 72 73 20 75 73  o programmers us
1030: 69 6e 67 20 74 68 65 20 54 63 6c 20 6c 69 62 72  ing the Tcl libr
1040: 61 72 79 20 61 6e 64 0a 77 72 69 74 69 6e 67 20  ary and.writing 
1050: 54 63 6c 20 73 63 72 69 70 74 73 2e 0a 0a 23 20  Tcl scripts...# 
1060: 49 6e 63 6f 6d 70 61 74 69 62 69 6c 69 74 69 65  Incompatibilitie
1070: 73 0a 0a 2d 20 5b 52 65 6d 6f 76 65 20 60 65 78  s..- [Remove `ex
1080: 70 72 60 20 62 65 68 61 76 69 6f 72 20 66 72 6f  pr` behavior fro
1090: 6d 20 60 6c 73 65 71 60 5d 28 68 74 74 70 73 3a  m `lseq`](https:
10a0: 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e  //core.tcl-lang.
10b0: 6f 72 67 2f 74 69 70 73 2f 64 6f 63 2f 74 72 75  org/tips/doc/tru
10c0: 6e 6b 2f 74 69 70 2f 37 34 36 2e 6d 64 29 20 2a  nk/tip/746.md) *
10d0: 49 6e 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2a  Incompatibility*
10e0: 0a 2d 20 5b 46 69 6c 65 20 70 61 74 68 73 20 61  .- [File paths a
10f0: 72 65 20 6e 6f 77 20 74 72 65 61 74 65 64 20 61  re now treated a
1100: 73 20 63 61 73 65 2d 69 6e 73 65 6e 73 69 74 69  s case-insensiti
1110: 76 65 20 6f 6e 20 4d 61 63 4f 53 5d 28 68 74 74  ve on MacOS](htt
1120: 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61  ps://core.tcl-la
1130: 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69  ng.org/tcl/tktvi
1140: 65 77 2f 65 36 63 61 30 62 31 62 29 20 2a 49 6e  ew/e6ca0b1b) *In
1150: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2a 0a 2d  compatibility*.-
1160: 20 4e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 74 63   New command `tc
1170: 6c 3a 3a 72 65 67 69 73 74 72 79 60 20 61 73 20  l::registry` as 
1180: 72 65 70 6c 61 63 65 6d 65 6e 74 20 66 6f 72 20  replacement for 
1190: 74 68 65 20 60 72 65 67 69 73 74 72 79 60 20 63  the `registry` c
11a0: 6f 6d 6d 61 6e 64 20 77 69 74 68 6f 75 74 20 6e  ommand without n
11b0: 65 65 64 69 6e 67 0a 74 68 65 20 72 65 67 69 73  eeding.the regis
11c0: 74 72 79 20 70 61 63 6b 61 67 65 20 74 6f 20 62  try package to b
11d0: 65 20 6c 6f 61 64 65 64 2e 20 54 68 65 20 72 65  e loaded. The re
11e0: 67 69 73 74 72 79 20 6d 6f 64 75 6c 65 20 69 73  gistry module is
11f0: 20 6e 6f 77 20 70 61 72 74 20 6f 66 20 74 68 65   now part of the
1200: 20 63 6f 72 65 0a 54 63 6c 20 44 4c 4c 20 69 6e   core.Tcl DLL in
1210: 20 61 6c 6c 20 62 75 69 6c 64 20 63 6f 6e 66 69   all build confi
1220: 67 75 72 61 74 69 6f 6e 73 2e 0a 2d 20 5b 43 75  gurations..- [Cu
1230: 73 74 6f 6d 20 61 70 70 6c 69 63 61 74 69 6f 6e  stom application
1240: 73 20 6d 75 73 74 20 63 61 6c 6c 20 54 63 6c 5c  s must call Tcl\
1250: 5f 46 69 6e 64 45 78 65 63 75 74 61 62 6c 65 20  _FindExecutable 
1260: 6f 72 20 54 63 6c 5a 69 70 66 73 5f 41 70 70 48  or TclZipfs_AppH
1270: 6f 6f 6b 20 74 6f 20 69 6e 69 74 69 61 6c 69 7a  ook to initializ
1280: 65 20 54 63 6c 5d 28 68 74 74 70 73 3a 2f 2f 63  e Tcl](https://c
1290: 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67  ore.tcl-lang.org
12a0: 2f 74 69 70 73 2f 64 6f 63 2f 74 72 75 6e 6b 2f  /tips/doc/trunk/
12b0: 74 69 70 2f 37 33 32 2e 6d 64 29 20 2a 50 6f 74  tip/732.md) *Pot
12c0: 65 6e 74 69 61 6c 20 69 6e 63 6f 6d 70 61 74 69  ential incompati
12d0: 62 69 6c 69 74 79 2a 0a 2d 20 5b 53 65 61 72 63  bility*.- [Searc
12e0: 68 20 70 61 74 68 20 66 6f 72 20 6c 6f 63 61 74  h path for locat
12f0: 69 6e 67 20 54 63 6c 20 63 6f 72 65 20 73 63 72  ing Tcl core scr
1300: 69 70 74 20 61 6e 64 20 65 6e 63 6f 64 69 6e 67  ipt and encoding
1310: 73 20 69 73 20 63 68 61 6e 67 65 64 5d 28 68 74  s is changed](ht
1320: 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c  tps://core.tcl-l
1330: 61 6e 67 2e 6f 72 67 2f 74 69 70 73 2f 64 6f 63  ang.org/tips/doc
1340: 2f 74 72 75 6e 6b 2f 74 69 70 2f 37 33 32 2e 6d  /trunk/tip/732.m
1350: 64 29 20 2a 50 6f 74 65 6e 74 69 61 6c 20 69 6e  d) *Potential in
1360: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2a 0a 0a  compatibility*..
1370: 23 20 4e 65 77 20 63 6f 6d 6d 61 6e 64 73 20 61  # New commands a
1380: 6e 64 20 6f 70 74 69 6f 6e 73 0a 0a 2d 20 5b 4e  nd options..- [N
1390: 65 77 20 6f 70 74 69 6f 6e 73 20 60 2d 62 61 63  ew options `-bac
13a0: 6b 73 6c 61 73 68 65 73 60 2c 20 60 2d 63 6f 6d  kslashes`, `-com
13b0: 6d 61 6e 64 73 60 20 61 6e 64 20 60 2d 76 61 72  mands` and `-var
13c0: 69 61 62 6c 65 73 60 20 66 6f 72 20 60 73 75 62  iables` for `sub
13d0: 73 74 60 20 63 6f 6d 6d 61 6e 64 5d 28 68 74 74  st` command](htt
13e0: 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61  ps://core.tcl-la
13f0: 6e 67 2e 6f 72 67 2f 74 69 70 73 2f 64 6f 63 2f  ng.org/tips/doc/
1400: 74 72 75 6e 6b 2f 74 69 70 2f 37 31 32 2e 6d 64  trunk/tip/712.md
1410: 29 0a 2d 20 5b 4e 65 77 20 63 6f 6d 6d 61 6e 64  ).- [New command
1420: 20 60 75 6e 69 63 6f 64 65 60 20 66 6f 72 20 55   `unicode` for U
1430: 6e 69 63 6f 64 65 20 6e 6f 72 6d 61 6c 69 7a 61  nicode normaliza
1440: 74 69 6f 6e 5d 28 68 74 74 70 73 3a 2f 2f 63 6f  tion](https://co
1450: 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f  re.tcl-lang.org/
1460: 74 69 70 73 2f 64 6f 63 2f 74 72 75 6e 6b 2f 74  tips/doc/trunk/t
1470: 69 70 2f 37 32 36 2e 6d 64 29 0a 2d 20 5b 4e 65  ip/726.md).- [Ne
1480: 77 20 60 74 69 6d 65 72 60 20 63 6f 6d 6d 61 6e  w `timer` comman
1490: 64 2c 20 73 77 69 74 63 68 20 74 6f 20 6d 6f 6e  d, switch to mon
14a0: 6f 74 6f 6e 69 63 20 63 6c 6f 63 6b 20 61 6e 64  otonic clock and
14b0: 20 6d 69 63 72 6f 73 65 63 6f 6e 64 20 72 65 73   microsecond res
14c0: 6f 6c 75 74 69 6f 6e 5d 28 68 74 74 70 73 3a 2f  olution](https:/
14d0: 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f  /core.tcl-lang.o
14e0: 72 67 2f 74 69 70 73 2f 64 6f 63 2f 74 72 75 6e  rg/tips/doc/trun
14f0: 6b 2f 74 69 70 2f 37 32 33 2e 6d 64 29 0a 2d 20  k/tip/723.md).- 
1500: 5b 4e 65 77 20 60 6c 66 69 6c 74 65 72 60 20 63  [New `lfilter` c
1510: 6f 6d 6d 61 6e 64 20 66 6f 72 20 73 65 6c 65 63  ommand for selec
1520: 74 69 6e 67 20 69 74 65 6d 73 20 66 72 6f 6d 20  ting items from 
1530: 61 20 6c 69 73 74 5d 28 68 74 74 70 73 3a 2f 2f  a list](https://
1540: 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72  core.tcl-lang.or
1550: 67 2f 74 69 70 73 2f 64 6f 63 2f 74 72 75 6e 6b  g/tips/doc/trunk
1560: 2f 74 69 70 2f 37 33 35 2e 6d 64 29 0a 2d 20 5b  /tip/735.md).- [
1570: 4d 61 6e 79 20 6e 65 77 20 66 75 6e 63 74 69 6f  Many new functio
1580: 6e 73 20 66 72 6f 6d 20 43 39 39 5d 28 68 74 74  ns from C99](htt
1590: 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61  ps://core.tcl-la
15a0: 6e 67 2e 6f 72 67 2f 74 69 70 73 2f 64 6f 63 2f  ng.org/tips/doc/
15b0: 74 72 75 6e 6b 2f 74 69 70 2f 37 34 35 2e 6d 64  trunk/tip/745.md
15c0: 29 2c 20 73 70 65 63 69 66 69 63 61 6c 6c 79 3a  ), specifically:
15d0: 20 60 61 63 6f 73 68 28 29 60 2c 20 60 61 73 69   `acosh()`, `asi
15e0: 6e 68 28 29 60 2c 20 60 61 74 61 6e 68 28 29 60  nh()`, `atanh()`
15f0: 2c 20 60 63 62 72 74 28 29 60 2c 20 60 63 6f 70  , `cbrt()`, `cop
1600: 79 73 69 67 6e 28 29 60 2c 20 60 64 69 6d 28 29  ysign()`, `dim()
1610: 60 2c 20 20 60 65 72 66 28 29 60 2c 20 60 65 72  `,  `erf()`, `er
1620: 66 63 28 29 60 2c 20 60 65 78 70 32 28 29 60 2c  fc()`, `exp2()`,
1630: 20 60 65 78 70 6d 31 28 29 60 2c 20 60 66 6d 61   `expm1()`, `fma
1640: 28 29 60 2c 20 60 67 61 6d 6d 61 28 29 60 2c 20  ()`, `gamma()`, 
1650: 60 6c 64 65 78 70 28 29 60 2c 20 60 6c 67 61 6d  `ldexp()`, `lgam
1660: 6d 61 28 29 60 2c 20 60 6c 6f 67 31 70 28 29 60  ma()`, `log1p()`
1670: 2c 20 60 6c 6f 67 32 28 29 60 2c 20 60 6c 6f 67  , `log2()`, `log
1680: 62 28 29 60 2c 20 60 6e 65 78 74 61 66 74 65 72  b()`, `nextafter
1690: 28 29 60 2c 20 60 72 65 6d 61 69 6e 64 65 72 28  ()`, `remainder(
16a0: 29 60 2c 20 60 73 69 67 6e 62 69 74 28 29 60 2c  )`, `signbit()`,
16b0: 20 61 6e 64 20 60 74 72 75 6e 63 28 29 60 2c 20   and `trunc()`, 
16c0: 61 6e 64 20 28 66 6f 72 20 66 75 6e 63 74 69 6f  and (for functio
16d0: 6e 73 20 74 68 61 74 20 72 65 74 75 72 6e 20 6d  ns that return m
16e0: 75 6c 74 69 70 6c 65 20 76 61 6c 75 65 73 20 69  ultiple values i
16f0: 6e 20 74 68 65 69 72 20 43 39 39 20 41 50 49 29  n their C99 API)
1700: 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73 3a 20 60   the commands: `
1710: 64 69 76 6d 6f 64 60 2c 20 60 66 72 65 78 70 60  divmod`, `frexp`
1720: 2c 20 60 6d 6f 64 66 60 2c 20 61 6e 64 20 60 72  , `modf`, and `r
1730: 65 6d 71 75 6f 60 2e 20 28 53 65 65 20 5b 74 68  emquo`. (See [th
1740: 69 73 20 70 61 67 65 5d 28 68 74 74 70 73 3a 2f  is page](https:/
1750: 2f 65 6e 2e 63 70 70 72 65 66 65 72 65 6e 63 65  /en.cppreference
1760: 2e 63 6f 6d 2f 77 2f 63 2f 6e 75 6d 65 72 69 63  .com/w/c/numeric
1770: 2f 6d 61 74 68 2e 68 74 6d 6c 29 20 66 6f 72 20  /math.html) for 
1780: 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  more information
1790: 20 61 62 6f 75 74 20 74 68 65 73 65 20 66 75 6e   about these fun
17a0: 63 74 69 6f 6e 73 3b 20 74 68 65 20 54 63 6c 20  ctions; the Tcl 
17b0: 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 5f 69  functions are _i
17c0: 6e 74 65 6e 74 69 6f 6e 61 6c 6c 79 5f 20 6f 6e  ntentionally_ on
17d0: 6c 79 20 74 68 69 6e 20 77 72 61 70 70 65 72 73  ly thin wrappers
17e0: 20 61 72 6f 75 6e 64 20 74 68 65 20 66 75 6e 63   around the func
17f0: 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 43 39 39  tions in the C99
1800: 20 73 74 61 6e 64 61 72 64 2e 29 0a 2d 20 5b 4e   standard.).- [N
1810: 65 77 20 60 73 77 69 74 63 68 60 20 6f 70 74 69  ew `switch` opti
1820: 6f 6e 20 60 2d 69 6e 74 65 67 65 72 60 20 74 6f  on `-integer` to
1830: 20 63 6f 6d 70 61 72 65 20 76 61 6c 75 65 73 20   compare values 
1840: 61 73 20 69 6e 74 65 67 65 72 73 5d 28 68 74 74  as integers](htt
1850: 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61  ps://core.tcl-la
1860: 6e 67 2e 6f 72 67 2f 74 69 70 73 2f 64 6f 63 2f  ng.org/tips/doc/
1870: 74 72 75 6e 6b 2f 74 69 70 2f 37 33 30 2e 6d 64  trunk/tip/730.md
1880: 29 0a 2d 20 5b 52 65 61 64 69 6e 67 20 61 6e 64  ).- [Reading and
1890: 20 77 72 69 74 69 6e 67 20 6f 66 20 63 68 69 6c   writing of chil
18a0: 64 20 69 6e 74 65 72 70 72 65 74 65 72 20 76 61  d interpreter va
18b0: 72 69 61 62 6c 65 73 5d 28 68 74 74 70 73 3a 2f  riables](https:/
18c0: 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f  /core.tcl-lang.o
18d0: 72 67 2f 74 69 70 73 2f 64 6f 63 2f 74 72 75 6e  rg/tips/doc/trun
18e0: 6b 2f 74 69 70 2f 37 32 38 2e 6d 64 29 0a 2d 20  k/tip/728.md).- 
18f0: 5b 55 70 64 61 74 65 64 20 54 63 6c 20 42 79 74  [Updated Tcl Byt
1900: 65 63 6f 64 65 20 6f 70 63 6f 64 65 73 5d 28 68  ecode opcodes](h
1910: 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d  ttps://core.tcl-
1920: 6c 61 6e 67 2e 6f 72 67 2f 74 69 70 73 2f 64 6f  lang.org/tips/do
1930: 63 2f 74 72 75 6e 6b 2f 74 69 70 2f 37 32 30 2e  c/trunk/tip/720.
1940: 6d 64 29 0a 2d 20 5b 41 64 64 20 73 75 70 70 6f  md).- [Add suppo
1950: 72 74 20 66 6f 72 20 60 5c 7a 60 20 69 6e 20 72  rt for `\z` in r
1960: 65 67 65 78 20 61 73 20 65 6e 64 2d 6f 66 2d 73  egex as end-of-s
1970: 74 72 69 6e 67 20 61 6e 63 68 6f 72 5d 28 68 74  tring anchor](ht
1980: 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c  tps://core.tcl-l
1990: 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 69 6e 66 6f  ang.org/tcl/info
19a0: 2f 66 62 63 35 36 62 32 35 39 65 29 0a 0a 2d 20  /fbc56b259e)..- 
19b0: 4e 65 77 20 60 74 63 6c 74 65 73 74 3a 3a 63 6f  New `tcltest::co
19c0: 6e 66 69 67 75 72 65 60 20 6f 70 74 69 6f 6e 20  nfigure` option 
19d0: 60 2d 69 74 65 72 61 74 69 6f 6e 73 60 20 74 6f  `-iterations` to
19e0: 20 63 6f 6e 74 72 6f 6c 20 6e 75 6d 62 65 72 20   control number 
19f0: 6f 66 20 69 74 65 72 61 74 69 6f 6e 73 20 6f 66  of iterations of
1a00: 20 65 61 63 68 20 74 65 73 74 2e 0a 0a 23 20 4e   each test...# N
1a10: 65 77 20 70 75 62 6c 69 63 20 43 20 41 50 49 0a  ew public C API.
1a20: 0a 2d 20 5b 60 54 63 6c 5f 49 73 45 6d 70 74 79  .- [`Tcl_IsEmpty
1a30: 28 29 60 20 26 6d 64 61 73 68 3b 20 63 68 65 63  ()` — chec
1a40: 6b 73 20 69 66 20 74 68 65 20 73 74 72 69 6e 67  ks if the string
1a50: 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20   representation 
1a60: 6f 66 20 61 20 76 61 6c 75 65 20 77 6f 75 6c 64  of a value would
1a70: 20 62 65 20 74 68 65 20 65 6d 70 74 79 20 73 74   be the empty st
1a80: 72 69 6e 67 5d 28 68 74 74 70 73 3a 2f 2f 63 6f  ring](https://co
1a90: 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f  re.tcl-lang.org/
1aa0: 74 69 70 73 2f 64 6f 63 2f 74 72 75 6e 6b 2f 74  tips/doc/trunk/t
1ab0: 69 70 2f 37 31 31 2e 6d 64 29 0a 2d 20 5b 60 54  ip/711.md).- [`T
1ac0: 63 6c 5f 47 65 74 45 6e 63 6f 64 69 6e 67 4e 61  cl_GetEncodingNa
1ad0: 6d 65 46 6f 72 55 73 65 72 28 29 60 20 26 6d 64  meForUser()` &md
1ae0: 61 73 68 3b 20 72 65 74 75 72 6e 73 20 6e 61 6d  ash; returns nam
1af0: 65 20 6f 66 20 65 6e 63 6f 64 69 6e 67 20 66 72  e of encoding fr
1b00: 6f 6d 20 75 73 65 72 20 73 65 74 74 69 6e 67 73  om user settings
1b10: 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74  ](https://core.t
1b20: 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 69 70 73  cl-lang.org/tips
1b30: 2f 64 6f 63 2f 74 72 75 6e 6b 2f 74 69 70 2f 37  /doc/trunk/tip/7
1b40: 31 36 2e 6d 64 29 0a 2d 20 5b 60 54 63 6c 5f 41  16.md).- [`Tcl_A
1b50: 74 74 65 6d 70 74 43 72 65 61 74 65 48 61 73 68  ttemptCreateHash
1b60: 45 6e 74 72 79 28 29 60 20 26 6d 64 61 73 68 3b  Entry()` —
1b70: 20 76 65 72 73 69 6f 6e 20 6f 66 20 60 54 63 6c   version of `Tcl
1b80: 5f 43 72 65 61 74 65 48 61 73 68 45 6e 74 72 79  _CreateHashEntry
1b90: 28 29 60 20 74 68 61 74 20 72 65 74 75 72 6e 73  ()` that returns
1ba0: 20 4e 55 4c 4c 20 69 6e 73 74 65 61 64 20 6f 66   NULL instead of
1bb0: 20 70 61 6e 69 63 27 69 6e 67 20 6f 6e 20 6d 65   panic'ing on me
1bc0: 6d 6f 72 79 20 61 6c 6c 6f 63 61 74 69 6f 6e 20  mory allocation 
1bd0: 65 72 72 6f 72 73 5d 28 68 74 74 70 73 3a 2f 2f  errors](https://
1be0: 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72  core.tcl-lang.or
1bf0: 67 2f 74 69 70 73 2f 64 6f 63 2f 74 72 75 6e 6b  g/tips/doc/trunk
1c00: 2f 74 69 70 2f 37 31 37 2e 6d 64 29 0a 2d 20 5b  /tip/717.md).- [
1c10: 60 54 63 6c 5f 4c 69 73 74 4f 62 6a 52 61 6e 67  `Tcl_ListObjRang
1c20: 65 28 29 60 2c 20 60 54 63 6c 5f 4c 69 73 74 4f  e()`, `Tcl_ListO
1c30: 62 6a 52 65 70 65 61 74 28 29 60 2c 20 60 54 63  bjRepeat()`, `Tc
1c40: 6c 5f 4c 69 73 74 4f 62 6a 52 65 76 65 72 73 65  l_ListObjReverse
1c50: 28 29 60 20 26 6d 64 61 73 68 3b 20 43 20 41 50  ()` — C AP
1c60: 49 20 66 6f 72 20 6e 65 77 20 6c 69 73 74 20 6f  I for new list o
1c70: 70 65 72 61 74 69 6f 6e 73 5d 28 68 74 74 70 73  perations](https
1c80: 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67  ://core.tcl-lang
1c90: 2e 6f 72 67 2f 74 69 70 73 2f 64 6f 63 2f 74 72  .org/tips/doc/tr
1ca0: 75 6e 6b 2f 74 69 70 2f 36 34 39 2e 6d 64 29 0a  unk/tip/649.md).
1cb0: 2d 20 5b 60 54 63 6c 5f 55 74 66 54 6f 4e 6f 72  - [`Tcl_UtfToNor
1cc0: 6d 61 6c 69 7a 65 64 28 29 60 2c 20 60 54 63 6c  malized()`, `Tcl
1cd0: 5f 55 74 66 54 6f 4e 6f 72 6d 61 6c 69 7a 65 64  _UtfToNormalized
1ce0: 44 53 74 72 69 6e 67 28 29 60 20 26 6d 64 61 73  DString()` &mdas
1cf0: 68 3b 20 43 20 41 50 49 20 66 6f 72 20 55 6e 69  h; C API for Uni
1d00: 63 6f 64 65 20 6e 6f 72 6d 61 6c 69 7a 61 74 69  code normalizati
1d10: 6f 6e 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65  on](https://core
1d20: 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 69  .tcl-lang.org/ti
1d30: 70 73 2f 64 6f 63 2f 74 72 75 6e 6b 2f 74 69 70  ps/doc/trunk/tip
1d40: 2f 37 32 36 2e 6d 64 29 0a 2d 20 5b 60 54 63 6c  /726.md).- [`Tcl
1d50: 5f 55 74 66 54 6f 45 78 74 65 72 6e 61 6c 45 78  _UtfToExternalEx
1d60: 28 29 60 20 61 6e 64 20 60 54 63 6c 5f 45 78 74  ()` and `Tcl_Ext
1d70: 65 72 6e 61 6c 54 6f 55 74 66 45 78 28 29 60 20  ernalToUtfEx()` 
1d80: 26 6d 64 61 73 68 3b 20 43 20 65 6e 63 6f 64 69  — C encodi
1d90: 6e 67 20 41 50 49 20 73 75 70 70 6f 72 74 69 6e  ng API supportin
1da0: 67 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 73  g output buffers
1db0: 20 6c 61 72 67 65 72 20 74 68 61 6e 20 49 4e 54   larger than INT
1dc0: 5f 4d 41 58 5d 28 68 74 74 70 73 3a 2f 2f 63 6f  _MAX](https://co
1dd0: 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f  re.tcl-lang.org/
1de0: 74 69 70 73 2f 64 6f 63 2f 74 72 75 6e 6b 2f 74  tips/doc/trunk/t
1df0: 69 70 2f 37 33 37 2e 6d 64 29 0a 2d 20 5b 4e 65  ip/737.md).- [Ne
1e00: 77 20 41 50 49 20 66 6f 72 20 6d 6f 6e 6f 74 6f  w API for monoto
1e10: 6e 69 63 20 63 6c 6f 63 6b 20 61 6e 64 20 6d 69  nic clock and mi
1e20: 63 72 6f 73 65 63 6f 6e 64 73 20 72 65 73 6f 6c  croseconds resol
1e30: 75 74 69 6f 6e 5d 28 68 74 74 70 73 3a 2f 2f 63  ution](https://c
1e40: 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67  ore.tcl-lang.org
1e50: 2f 74 69 70 73 2f 64 6f 63 2f 74 72 75 6e 6b 2f  /tips/doc/trunk/
1e60: 74 69 70 2f 37 32 33 2e 6d 64 29 0a 2d 20 5b 57  tip/723.md).- [W
1e70: 69 6e 64 6f 77 73 20 60 61 75 74 6f 5f 65 78 65  indows `auto_exe
1e80: 63 6f 6b 60 20 65 6e 68 61 6e 63 65 6d 65 6e 74  cok` enhancement
1e90: 73 20 61 6e 64 20 60 65 78 65 63 60 20 73 65 61  s and `exec` sea
1ea0: 72 63 68 20 72 65 66 6f 72 6d 5d 28 68 74 74 70  rch reform](http
1eb0: 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e  s://core.tcl-lan
1ec0: 67 2e 6f 72 67 2f 74 69 70 73 2f 64 6f 63 2f 74  g.org/tips/doc/t
1ed0: 72 75 6e 6b 2f 74 69 70 2f 37 35 33 2e 6d 64 29  runk/tip/753.md)
1ee0: 0a 2d 20 5b 4e 65 77 20 74 69 6d 65 72 20 41 50  .- [New timer AP
1ef0: 49 20 75 73 69 6e 67 20 6c 6f 6e 67 20 6c 6f 6e  I using long lon
1f00: 67 20 69 6e 20 73 74 65 61 64 20 6f 66 20 54 63  g in stead of Tc
1f10: 6c 5f 54 69 6d 65 5d 28 68 74 74 70 73 3a 2f 2f  l_Time](https://
1f20: 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72  core.tcl-lang.or
1f30: 67 2f 74 69 70 73 2f 64 6f 63 2f 74 72 75 6e 6b  g/tips/doc/trunk
1f40: 2f 74 69 70 2f 37 35 32 2e 6d 64 29 0a 2d 20 5b  /tip/752.md).- [
1f50: 60 54 63 6c 5f 52 65 67 69 73 74 65 72 50 6f 73  `Tcl_RegisterPos
1f60: 74 49 6e 69 74 50 72 6f 63 60 20 63 61 6c 6c 62  tInitProc` callb
1f70: 61 63 6b 20 66 6f 72 20 70 6f 73 74 2d 69 6e 69  ack for post-ini
1f80: 74 69 61 6c 69 7a 61 74 69 6f 6e 20 6f 66 20 69  tialization of i
1f90: 6e 74 65 72 70 72 65 74 65 72 73 5d 28 68 74 74  nterpreters](htt
1fa0: 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61  ps://core.tcl-la
1fb0: 6e 67 2e 6f 72 67 2f 74 69 70 73 2f 64 6f 63 2f  ng.org/tips/doc/
1fc0: 74 72 75 6e 6b 2f 74 69 70 2f 37 35 35 2e 6d 64  trunk/tip/755.md
1fd0: 29 0a 0a 23 20 50 65 72 66 6f 72 6d 61 6e 63 65  )..# Performance
1fe0: 0a 0a 2d 20 5b 4d 65 6d 6f 72 79 20 65 66 66 69  ..- [Memory effi
1ff0: 63 69 65 6e 74 20 69 6e 74 65 72 6e 61 6c 20 72  cient internal r
2000: 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 73 5d 28  epresentations](
2010: 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c  https://core.tcl
2020: 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 77 69  -lang.org/tcl/wi
2030: 6b 69 3f 6e 61 6d 65 3d 4e 65 77 2b 61 62 73 74  ki?name=New+abst
2040: 72 61 63 74 2b 6c 69 73 74 2b 72 65 70 72 65 73  ract+list+repres
2050: 65 6e 74 61 74 69 6f 6e 73 29 0a 66 6f 72 20 6c  entations).for l
2060: 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 20 6f  ist operations o
2070: 6e 20 6c 61 72 67 65 20 6c 69 73 74 73 2e 0a 2d  n large lists..-
2080: 20 5b 43 6f 6e 74 69 6e 75 65 64 20 36 34 2d 62   [Continued 64-b
2090: 69 74 20 63 61 70 61 63 69 74 79 3a 20 43 6f 6d  it capacity: Com
20a0: 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 75 6d 65  mand line argume
20b0: 6e 74 73 20 6c 61 72 67 65 72 20 74 68 61 6e 20  nts larger than 
20c0: 32 47 62 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72  2Gb](https://cor
20d0: 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74  e.tcl-lang.org/t
20e0: 69 70 73 2f 64 6f 63 2f 74 72 75 6e 6b 2f 74 69  ips/doc/trunk/ti
20f0: 70 2f 36 32 36 2e 6d 64 29 0a 2d 20 5b 53 75 70  p/626.md).- [Sup
2100: 70 6f 72 74 20 66 6f 72 20 6c 6f 6e 67 20 70 61  port for long pa
2110: 74 68 73 20 6f 6e 20 57 69 6e 64 6f 77 73 5d 28  ths on Windows](
2120: 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c  https://core.tcl
2130: 2d 6c 61 6e 67 2e 6f 72 67 2f 74 69 70 73 2f 64  -lang.org/tips/d
2140: 6f 63 2f 74 72 75 6e 6b 2f 74 69 70 2f 37 34 34  oc/trunk/tip/744
2150: 2e 6d 64 29 0a 2d 20 5b 46 61 73 74 65 72 20 55  .md).- [Faster U
2160: 54 46 2d 38 20 65 6e 63 6f 64 69 6e 67 20 61 6e  TF-8 encoding an
2170: 64 20 49 2f 4f 5d 28 68 74 74 70 73 3a 2f 2f 63  d I/O](https://c
2180: 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67  ore.tcl-lang.org
2190: 2f 74 63 6c 2f 77 69 6b 69 3f 6e 61 6d 65 3d 46  /tcl/wiki?name=F
21a0: 61 73 74 65 72 2b 55 54 46 2b 65 6e 63 6f 64 69  aster+UTF+encodi
21b0: 6e 67 29 0a 2d 20 46 61 73 74 65 72 20 69 6e 74  ng).- Faster int
21c0: 65 72 70 72 65 74 65 72 20 63 72 65 61 74 69 6f  erpreter creatio
21d0: 6e 0a 0a 23 20 42 75 67 20 66 69 78 65 73 0a 2d  n..# Bug fixes.-
21e0: 20 5b 49 6e 63 6f 6e 73 69 73 74 65 6e 74 20 60   [Inconsistent `
21f0: 67 6c 6f 62 60 20 6d 61 74 63 68 69 6e 67 20 6f  glob` matching o
2200: 6e 20 4d 61 63 4f 53 5d 28 68 74 74 70 73 3a 2f  n MacOS](https:/
2210: 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f  /core.tcl-lang.o
2220: 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65 77 2f 65  rg/tcl/tktview/e
2230: 36 63 61 30 62 31 62 29 0a 2d 20 5b 60 66 69 6c  6ca0b1b).- [`fil
2240: 65 20 6e 6f 72 6d 61 6c 69 7a 65 60 20 64 6f 65  e normalize` doe
2250: 73 20 6e 6f 74 20 75 6e 69 71 75 65 6c 79 20 69  s not uniquely i
2260: 64 65 6e 74 69 66 79 20 61 20 66 69 6c 65 20 6f  dentify a file o
2270: 6e 20 4d 61 63 4f 53 5d 28 68 74 74 70 73 3a 2f  n MacOS](https:/
2280: 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f  /core.tcl-lang.o
2290: 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65 77 2f 31  rg/tcl/tktview/1
22a0: 30 38 39 30 34 31 37 29 0a 2d 20 5b 49 6e 63 6f  0890417).- [Inco
22b0: 6e 73 69 73 74 65 6e 63 69 65 73 20 62 65 74 77  nsistencies betw
22c0: 65 65 6e 20 60 63 64 60 20 61 6e 64 20 60 66 69  een `cd` and `fi
22d0: 6c 65 20 6e 6f 72 6d 61 6c 69 7a 65 60 20 66 6f  le normalize` fo
22e0: 72 20 76 6f 6c 75 6d 65 2d 72 65 6c 61 74 69 76  r volume-relativ
22f0: 65 20 70 61 74 68 73 20 6f 6e 20 57 69 6e 64 6f  e paths on Windo
2300: 77 73 5d 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65  ws](https://core
2310: 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63  .tcl-lang.org/tc
2320: 6c 2f 74 6b 74 76 69 65 77 2f 62 63 61 33 39 31  l/tktview/bca391
2330: 61 62 29 0a 2d 20 5b 54 63 6c 20 63 61 6e 6e 6f  ab).- [Tcl canno
2340: 74 20 72 75 6e 20 66 72 6f 6d 20 61 6e 20 61 72  t run from an ar
2350: 62 69 74 72 61 72 79 20 62 75 69 6c 64 20 64 69  bitrary build di
2360: 72 65 63 74 6f 72 79 20 77 69 74 68 20 2d 2d 64  rectory with --d
2370: 69 73 61 62 6c 65 2d 7a 69 70 66 73 5d 28 68 74  isable-zipfs](ht
2380: 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c  tps://core.tcl-l
2390: 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76  ang.org/tcl/tktv
23a0: 69 65 77 2f 30 30 36 62 65 66 35 64 29 0a 2d 20  iew/006bef5d).- 
23b0: 5b 43 72 61 73 68 20 6f 6e 20 66 69 6e 61 6c 69  [Crash on finali
23c0: 7a 61 74 69 6f 6e 20 77 69 74 68 20 61 6e 20 61  zation with an a
23d0: 63 74 69 76 65 20 74 68 72 65 61 64 20 72 75 6e  ctive thread run
23e0: 6e 69 6e 67 2e 5d 28 68 74 74 70 73 3a 2f 2f 63  ning.](https://c
23f0: 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67  ore.tcl-lang.org
2400: 2f 74 63 6c 2f 74 6b 74 76 69 65 77 2f 65 35 35  /tcl/tktview/e55
2410: 61 35 38 39 64 29 0a 2d 20 5b 43 72 61 73 68 20  a589d).- [Crash 
2420: 6f 6e 20 75 73 65 2d 61 66 74 65 72 2d 66 72 65  on use-after-fre
2430: 65 20 69 6e 20 57 69 6e 64 6f 77 73 20 73 6f 63  e in Windows soc
2440: 6b 65 74 20 74 68 72 65 61 64 2e 5d 28 68 74 74  ket thread.](htt
2450: 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61  ps://core.tcl-la
2460: 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69  ng.org/tcl/tktvi
2470: 65 77 2f 30 36 66 31 39 63 63 34 29 0a 0a 23 20  ew/06f19cc4)..# 
2480: 55 70 64 61 74 65 64 20 62 75 6e 64 6c 65 64 20  Updated bundled 
2490: 70 61 63 6b 61 67 65 73 2c 20 6c 69 62 72 61 72  packages, librar
24a0: 69 65 73 2c 20 73 74 61 6e 64 61 72 64 73 2c 20  ies, standards, 
24b0: 64 61 74 61 0a 20 2d 20 55 6e 69 63 6f 64 65 20  data. - Unicode 
24c0: 31 38 2e 30 2e 30 0a 20 2d 20 70 6c 61 74 6f 72  18.0.0. - plator
24d0: 6d 20 31 2e 32 2e 30 3a 20 41 64 64 20 73 75 70  m 1.2.0: Add sup
24e0: 70 6f 72 74 20 66 6f 72 20 6d 75 73 6c 20 43 20  port for musl C 
24f0: 72 75 6e 74 69 6d 65 0a                          runtime.