Tcl Source Code

Hex Artifact Content
Login

Artifact 358e196f396e0fa27cce4c226cea8f4bccdf2d2b722fcfa78e8998817b8c50e6:


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 30 2e 30 20  lease Tcl 9.0.0 
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 30 2d 30 60 2e 0a  g `core-9-0-0`..
00f0: 0a 48 69 67 68 6c 69 67 68 74 65 64 20 64 69 66  .Highlighted dif
0100: 66 65 72 65 6e 63 65 73 20 62 65 74 77 65 65 6e  ferences between
0110: 20 54 63 6c 20 39 2e 30 20 61 6e 64 20 54 63 6c   Tcl 9.0 and Tcl
0120: 20 38 2e 36 20 61 72 65 20 73 75 6d 6d 61 72 69   8.6 are summari
0130: 7a 65 64 20 62 65 6c 6f 77 2c 0a 77 69 74 68 20  zed below,.with 
0140: 66 6f 63 75 73 20 6f 6e 20 63 68 61 6e 67 65 73  focus on changes
0150: 20 69 6d 70 6f 72 74 61 6e 74 20 74 6f 20 70 72   important to pr
0160: 6f 67 72 61 6d 6d 65 72 73 20 75 73 69 6e 67 20  ogrammers using 
0170: 74 68 65 20 54 63 6c 20 6c 69 62 72 61 72 79 20  the Tcl library 
0180: 61 6e 64 0a 77 72 69 74 69 6e 67 20 54 63 6c 20  and.writing Tcl 
0190: 73 63 72 69 70 74 73 2e 0a 0a 23 20 4d 61 6a 6f  scripts...# Majo
01a0: 72 20 46 65 61 74 75 72 65 73 0a 0a 23 23 20 36  r Features..## 6
01b0: 34 2d 62 69 74 20 63 61 70 61 63 69 74 79 3a 20  4-bit capacity: 
01c0: 44 61 74 61 20 76 61 6c 75 65 73 20 6c 61 72 67  Data values larg
01d0: 65 72 20 74 68 61 6e 20 32 47 62 0a 20 2d 20 53  er than 2Gb. - S
01e0: 74 72 69 6e 67 73 20 63 61 6e 20 62 65 20 61 6e  trings can be an
01f0: 79 20 6c 65 6e 67 74 68 20 28 74 68 61 74 20 66  y length (that f
0200: 69 74 73 20 69 6e 20 79 6f 75 72 20 61 76 61 69  its in your avai
0210: 6c 61 62 6c 65 20 6d 65 6d 6f 72 79 29 0a 20 2d  lable memory). -
0220: 20 4c 69 73 74 73 20 61 6e 64 20 64 69 63 74 69   Lists and dicti
0230: 6f 6e 61 72 69 65 73 20 63 61 6e 20 68 61 76 65  onaries can have
0240: 20 76 65 72 79 20 6c 61 72 67 65 20 6e 75 6d 62   very large numb
0250: 65 72 73 20 6f 66 20 65 6c 65 6d 65 6e 74 73 0a  ers of elements.
0260: 0a 23 23 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61  .## Internationa
0270: 6c 69 7a 61 74 69 6f 6e 20 6f 66 20 74 65 78 74  lization of text
0280: 0a 20 2d 20 46 75 6c 6c 20 55 6e 69 63 6f 64 65  . - Full Unicode
0290: 20 72 61 6e 67 65 20 6f 66 20 63 6f 64 65 70 6f   range of codepo
02a0: 69 6e 74 73 0a 20 2d 20 4e 65 77 20 65 6e 63 6f  ints. - New enco
02b0: 64 69 6e 67 73 3a 20 60 75 74 66 2d 31 36 60 2f  dings: `utf-16`/
02c0: 60 75 74 66 2d 33 32 60 2f 60 75 63 73 2d 32 60  `utf-32`/`ucs-2`
02d0: 28 60 6c 65 60 7c 60 62 65 60 29 2c 20 60 43 45  (`le`|`be`), `CE
02e0: 53 55 2d 38 60 2c 20 65 74 63 2e 0a 20 2d 20 60  SU-8`, etc.. - `
02f0: 65 6e 63 6f 64 69 6e 67 60 20 6f 70 74 69 6f 6e  encoding` option
0300: 73 20 60 2d 70 72 6f 66 69 6c 65 60 2c 20 60 2d  s `-profile`, `-
0310: 66 61 69 6c 69 6e 64 65 78 60 20 6d 61 6e 61 67  failindex` manag
0320: 65 20 65 6e 63 6f 64 69 6e 67 20 6f 66 20 49 2f  e encoding of I/
0330: 4f 2e 0a 20 2d 20 60 6d 73 67 63 61 74 60 20 73  O.. - `msgcat` s
0340: 75 70 70 6f 72 74 73 20 63 75 73 74 6f 6d 20 6c  upports custom l
0350: 6f 63 61 6c 65 20 73 65 61 72 63 68 20 6c 69 73  ocale search lis
0360: 74 0a 20 2d 20 60 73 6f 75 72 63 65 60 20 64 65  t. - `source` de
0370: 66 61 75 6c 74 73 20 74 6f 20 60 2d 65 6e 63 6f  faults to `-enco
0380: 64 69 6e 67 20 75 74 66 2d 38 60 0a 0a 23 23 20  ding utf-8`..## 
0390: 5a 69 70 20 66 69 6c 65 73 79 73 74 65 6d 73 20  Zip filesystems 
03a0: 61 6e 64 20 61 74 74 61 63 68 65 64 20 61 72 63  and attached arc
03b0: 68 69 76 65 73 2e 0a 20 2d 20 50 61 63 6b 61 67  hives.. - Packag
03c0: 69 6e 67 20 6f 66 20 74 68 65 20 54 63 6c 20 73  ing of the Tcl s
03d0: 63 72 69 70 74 20 6c 69 62 72 61 72 79 20 77 69  cript library wi
03e0: 74 68 20 74 68 65 20 54 63 6c 20 62 69 6e 61 72  th the Tcl binar
03f0: 79 20 6c 69 62 72 61 72 79 2c 0a 20 20 20 6d 65  y library,.   me
0400: 61 6e 69 6e 67 20 74 68 61 74 20 74 68 65 20 60  aning that the `
0410: 54 43 4c 5f 4c 49 42 52 41 52 59 60 20 65 6e 76  TCL_LIBRARY` env
0420: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c  ironment variabl
0430: 65 20 69 73 20 75 73 75 61 6c 6c 79 20 6e 6f 74  e is usually not
0440: 20 72 65 71 75 69 72 65 64 2e 0a 20 2d 20 50 61   required.. - Pa
0450: 63 6b 61 67 69 6e 67 20 6f 66 20 61 6e 20 61 70  ckaging of an ap
0460: 70 6c 69 63 61 74 69 6f 6e 20 69 6e 74 6f 20 61  plication into a
0470: 20 76 69 72 74 75 61 6c 20 66 69 6c 65 73 79 73   virtual filesys
0480: 74 65 6d 20 69 73 20 6e 6f 77 20 61 20 73 75 70  tem is now a sup
0490: 70 6f 72 74 65 64 0a 20 20 20 63 6f 72 65 20 54  ported.   core T
04a0: 63 6c 20 66 65 61 74 75 72 65 2e 0a 0a 23 23 20  cl feature...## 
04b0: 55 6e 69 78 20 6e 6f 74 69 66 69 65 72 73 20 61  Unix notifiers a
04c0: 76 61 69 6c 61 62 6c 65 20 75 73 69 6e 67 20 60  vailable using `
04d0: 65 70 6f 6c 6c 28 29 60 20 6f 72 20 60 6b 71 75  epoll()` or `kqu
04e0: 65 75 65 28 29 60 0a 20 2d 20 54 68 69 73 20 72  eue()`. - This r
04f0: 65 6c 69 65 76 65 73 20 6c 69 6d 69 74 73 20 6f  elieves limits o
0500: 6e 20 66 69 6c 65 20 64 65 73 63 72 69 70 74 6f  n file descripto
0510: 72 73 20 69 6d 70 6f 73 65 64 20 62 79 20 6c 65  rs imposed by le
0520: 67 61 63 79 20 60 73 65 6c 65 63 74 28 29 60 20  gacy `select()` 
0530: 61 6e 64 20 66 69 78 65 73 20 61 20 70 65 72 66  and fixes a perf
0540: 6f 72 6d 61 6e 63 65 20 62 6f 74 74 6c 65 6e 65  ormance bottlene
0550: 63 6b 2e 20 0a 0a 23 20 49 6e 63 6f 6d 70 61 74  ck. ..# Incompat
0560: 69 62 69 6c 69 74 69 65 73 0a 0a 23 23 20 4e 6f  ibilities..## No
0570: 74 61 62 6c 65 20 69 6e 63 6f 6d 70 61 74 69 62  table incompatib
0580: 69 6c 69 74 69 65 73 0a 20 2d 20 55 6e 71 75 61  ilities. - Unqua
0590: 6c 69 66 69 65 64 20 76 61 72 6e 61 6d 65 73 20  lified varnames 
05a0: 72 65 73 6f 6c 76 65 64 20 69 6e 20 63 75 72 72  resolved in curr
05b0: 65 6e 74 20 6e 61 6d 65 73 70 61 63 65 2c 20 6e  ent namespace, n
05c0: 6f 74 20 67 6c 6f 62 61 6c 2e 0a 20 20 20 4e 6f  ot global..   No
05d0: 74 65 20 74 68 61 74 20 69 6e 20 61 6c 6d 6f 73  te that in almos
05e0: 74 20 61 6c 6c 20 63 61 73 65 73 20 77 68 65 72  t all cases wher
05f0: 65 20 74 68 69 73 20 63 61 75 73 65 73 20 61 20  e this causes a 
0600: 63 68 61 6e 67 65 2c 20 74 68 65 20 63 68 61 6e  change, the chan
0610: 67 65 20 69 73 20 61 63 74 75 61 6c 6c 79 20 74  ge is actually t
0620: 68 65 20 72 65 6d 6f 76 61 6c 20 6f 66 20 61 20  he removal of a 
0630: 6c 61 74 65 6e 74 20 62 75 67 2e 0a 20 2d 20 4e  latent bug.. - N
0640: 6f 20 60 2d 2d 64 69 73 61 62 6c 65 2d 74 68 72  o `--disable-thr
0650: 65 61 64 73 60 20 62 75 69 6c 64 20 6f 70 74 69  eads` build opti
0660: 6f 6e 2e 20 20 41 6c 77 61 79 73 20 74 68 72 65  on.  Always thre
0670: 61 64 2d 65 6e 61 62 6c 65 64 2e 0a 20 2d 20 49  ad-enabled.. - I
0680: 2f 4f 20 6d 61 6c 65 6e 63 6f 64 69 6e 67 20 64  /O malencoding d
0690: 65 66 61 75 6c 74 20 72 65 73 70 6f 6e 73 65 3a  efault response:
06a0: 20 72 61 69 73 65 20 65 72 72 6f 72 20 28 60 2d   raise error (`-
06b0: 70 72 6f 66 69 6c 65 20 73 74 72 69 63 74 60 29  profile strict`)
06c0: 0a 20 2d 20 57 69 6e 64 6f 77 73 20 70 6c 61 74  . - Windows plat
06d0: 66 6f 72 6d 20 6e 65 65 64 73 20 57 69 6e 64 6f  form needs Windo
06e0: 77 73 20 37 20 6f 72 20 57 69 6e 64 6f 77 73 20  ws 7 or Windows 
06f0: 53 65 72 76 65 72 20 32 30 30 38 20 52 32 20 6f  Server 2008 R2 o
0700: 72 20 6c 61 74 65 72 0a 20 2d 20 45 6e 64 65 64  r later. - Ended
0710: 20 69 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 20   interpretation 
0720: 6f 66 20 60 7e 60 20 61 73 20 68 6f 6d 65 20 64  of `~` as home d
0730: 69 72 65 63 74 6f 72 79 20 69 6e 20 70 61 74 68  irectory in path
0740: 6e 61 6d 65 73 2e 0a 20 20 20 28 53 65 65 20 60  names..   (See `
0750: 66 69 6c 65 20 68 6f 6d 65 60 20 61 6e 64 20 60  file home` and `
0760: 66 69 6c 65 20 74 69 6c 64 65 65 78 70 61 6e 64  file tildeexpand
0770: 60 20 66 6f 72 20 72 65 70 6c 61 63 65 6d 65 6e  ` for replacemen
0780: 74 73 20 77 68 65 6e 20 79 6f 75 20 6e 65 65 64  ts when you need
0790: 20 74 68 65 6d 2e 29 0a 20 2d 20 52 65 6d 6f 76   them.). - Remov
07a0: 65 64 20 74 68 65 20 60 69 64 65 6e 74 69 74 79  ed the `identity
07b0: 60 20 65 6e 63 6f 64 69 6e 67 2e 0a 20 20 20 28  ` encoding..   (
07c0: 54 68 65 72 65 20 77 65 72 65 20 6f 6e 6c 79 20  There were only 
07d0: 65 76 65 72 20 76 65 72 79 20 66 65 77 20 76 61  ever very few va
07e0: 6c 69 64 20 75 73 65 20 63 61 73 65 73 20 66 6f  lid use cases fo
07f0: 72 20 74 68 69 73 3b 20 61 6c 6d 6f 73 74 20 61  r this; almost a
0800: 6c 6c 20 75 73 65 73 0a 20 20 20 77 65 72 65 20  ll uses.   were 
0810: 73 79 73 74 65 6d 61 74 69 63 61 6c 6c 79 20 77  systematically w
0820: 72 6f 6e 67 2e 29 0a 20 2d 20 52 65 6d 6f 76 65  rong.). - Remove
0830: 64 20 74 68 65 20 65 6e 63 6f 64 69 6e 67 20 61  d the encoding a
0840: 6c 69 61 73 20 60 62 69 6e 61 72 79 60 20 74 6f  lias `binary` to
0850: 20 60 69 73 6f 38 38 35 39 2d 31 60 2e 0a 20 2d   `iso8859-1`.. -
0860: 20 60 24 3a 3a 74 63 6c 5f 70 72 65 63 69 73 69   `$::tcl_precisi
0870: 6f 6e 60 20 6e 6f 20 6c 6f 6e 67 65 72 20 63 6f  on` no longer co
0880: 6e 74 72 6f 6c 73 20 73 74 72 69 6e 67 20 67 65  ntrols string ge
0890: 6e 65 72 61 74 69 6f 6e 20 6f 66 20 64 6f 75 62  neration of doub
08a0: 6c 65 73 2e 0a 20 20 20 28 49 66 20 79 6f 75 20  les..   (If you 
08b0: 6e 65 65 64 20 61 20 70 61 72 74 69 63 75 6c 61  need a particula
08c0: 72 20 70 72 65 63 69 73 69 6f 6e 2c 20 75 73 65  r precision, use
08d0: 20 60 66 6f 72 6d 61 74 60 2e 29 0a 20 2d 20 52   `format`.). - R
08e0: 65 6d 6f 76 65 64 20 70 72 65 2d 54 63 6c 20 38  emoved pre-Tcl 8
08f0: 20 6c 65 67 61 63 69 65 73 3a 20 60 63 61 73 65   legacies: `case
0900: 60 2c 20 60 70 75 74 73 60 20 61 6e 64 20 60 72  `, `puts` and `r
0910: 65 61 64 60 20 76 61 72 69 61 6e 74 20 73 79 6e  ead` variant syn
0920: 74 61 78 65 73 2e 0a 20 2d 20 52 65 6d 6f 76 65  taxes.. - Remove
0930: 64 20 73 75 62 63 6f 6d 6d 61 6e 64 73 20 5b 60  d subcommands [`
0940: 74 72 61 63 65 20 76 61 72 69 61 62 6c 65 60 7c  trace variable`|
0950: 60 76 64 65 6c 65 74 65 60 7c 60 76 69 6e 66 6f  `vdelete`|`vinfo
0960: 60 5d 0a 20 2d 20 4e 6f 20 60 2d 65 6f 66 63 68  `]. - No `-eofch
0970: 61 72 60 20 6f 70 74 69 6f 6e 20 66 6f 72 20 63  ar` option for c
0980: 68 61 6e 6e 65 6c 73 20 61 6e 79 6d 6f 72 65 20  hannels anymore 
0990: 66 6f 72 20 77 72 69 74 69 6e 67 2e 0a 20 2d 20  for writing.. - 
09a0: 4f 6e 20 57 69 6e 64 6f 77 73 20 31 30 2b 20 28  On Windows 10+ (
09b0: 56 65 72 73 69 6f 6e 20 31 39 30 33 20 6f 72 20  Version 1903 or 
09c0: 68 69 67 68 65 72 29 2c 20 73 79 73 74 65 6d 20  higher), system 
09d0: 65 6e 63 6f 64 69 6e 67 20 69 73 20 61 6c 77 61  encoding is alwa
09e0: 79 73 20 75 74 66 2d 38 2e 0a 20 2d 20 60 25 62  ys utf-8.. - `%b
09f0: 60 2f 60 25 64 60 2f 60 25 6f 60 2f 60 25 78 60  `/`%d`/`%o`/`%x`
0a00: 20 66 6f 72 6d 61 74 20 6d 6f 64 69 66 69 65 72   format modifier
0a10: 73 20 28 77 69 74 68 6f 75 74 20 73 69 7a 65 20  s (without size 
0a20: 6d 6f 64 69 66 69 65 72 29 20 66 6f 72 20 60 66  modifier) for `f
0a30: 6f 72 6d 61 74 60 0a 20 20 20 61 6e 64 20 60 73  ormat`.   and `s
0a40: 63 61 6e 60 20 61 6c 77 61 79 73 20 74 72 75 6e  can` always trun
0a50: 63 61 74 65 20 74 6f 20 33 32 2d 62 69 74 73 20  cate to 32-bits 
0a60: 6f 6e 20 61 6c 6c 20 70 6c 61 74 66 6f 72 6d 73  on all platforms
0a70: 2e 0a 20 2d 20 60 25 4c 60 20 73 69 7a 65 20 6d  .. - `%L` size m
0a80: 6f 64 69 66 69 65 72 20 66 6f 72 20 60 73 63 61  odifier for `sca
0a90: 6e 60 20 6e 6f 20 6c 6f 6e 67 65 72 20 74 72 75  n` no longer tru
0aa0: 6e 63 61 74 65 73 20 74 6f 20 36 34 2d 62 69 74  ncates to 64-bit
0ab0: 2e 0a 20 2d 20 52 65 6d 6f 76 65 64 20 63 6f 6d  .. - Removed com
0ac0: 6d 61 6e 64 20 60 3a 3a 74 63 6c 3a 3a 75 6e 73  mand `::tcl::uns
0ad0: 75 70 70 6f 72 74 65 64 3a 3a 69 6e 6a 65 63 74  upported::inject
0ae0: 60 2e 0a 20 20 20 28 53 65 65 20 60 63 6f 72 6f  `..   (See `coro
0af0: 69 6e 6a 65 63 74 60 20 61 6e 64 20 60 63 6f 72  inject` and `cor
0b00: 6f 70 72 6f 62 65 60 20 66 6f 72 20 73 75 70 70  oprobe` for supp
0b10: 6f 72 74 65 64 20 63 6f 6d 6d 61 6e 64 73 20 77  orted commands w
0b20: 69 74 68 20 73 69 67 6e 69 66 69 63 61 6e 74 6c  ith significantl
0b30: 79 0a 20 20 20 6d 6f 72 65 20 63 6f 6d 70 72 65  y.   more compre
0b40: 68 65 6e 73 69 62 6c 65 20 73 65 6d 61 6e 74 69  hensible semanti
0b50: 63 73 2e 29 0a 0a 23 23 20 49 6e 63 6f 6d 70 61  cs.)..## Incompa
0b60: 74 69 62 69 6c 69 74 69 65 73 20 69 6e 20 43 20  tibilities in C 
0b70: 70 75 62 6c 69 63 20 69 6e 74 65 72 66 61 63 65  public interface
0b80: 0a 20 2d 20 4d 61 6e 79 20 61 72 67 75 6d 65 6e  . - Many argumen
0b90: 74 73 20 65 78 70 61 6e 64 65 64 20 74 79 70 65  ts expanded type
0ba0: 20 66 72 6f 6d 20 60 69 6e 74 60 20 74 6f 20 60   from `int` to `
0bb0: 54 63 6c 5f 53 69 7a 65 60 2c 20 61 20 73 69 67  Tcl_Size`, a sig
0bc0: 6e 65 64 20 69 6e 74 65 67 65 72 20 74 79 70 65  ned integer type
0bd0: 0a 20 20 20 6c 61 72 67 65 20 65 6e 6f 75 67 68  .   large enough
0be0: 20 74 6f 20 73 75 70 70 6f 72 74 20 36 34 2d 62   to support 64-b
0bf0: 69 74 20 73 69 7a 65 64 20 6d 65 6d 6f 72 79 20  it sized memory 
0c00: 6f 62 6a 65 63 74 73 2e 0a 20 20 20 54 68 65 20  objects..   The 
0c10: 63 6f 6e 73 74 61 6e 74 20 60 54 43 4c 5f 41 55  constant `TCL_AU
0c20: 54 4f 5f 4c 45 4e 47 54 48 60 20 69 73 20 61 20  TO_LENGTH` is a 
0c30: 76 61 6c 75 65 20 6f 66 20 74 68 61 74 20 74 79  value of that ty
0c40: 70 65 20 74 68 61 74 20 69 6e 64 69 63 61 74 65  pe that indicate
0c50: 73 20 74 68 61 74 0a 20 20 20 74 68 65 20 6c 65  s that.   the le
0c60: 6e 67 74 68 20 73 68 6f 75 6c 64 20 62 65 20 6f  ngth should be o
0c70: 62 74 61 69 6e 65 64 20 75 73 69 6e 67 20 61 6e  btained using an
0c80: 20 61 70 70 72 6f 70 72 69 61 74 65 20 66 75 6e   appropriate fun
0c90: 63 74 69 6f 6e 20 28 74 79 70 69 63 61 6c 6c 79  ction (typically
0ca0: 20 60 73 74 72 6c 65 6e 28 29 60 20 66 6f 72 20   `strlen()` for 
0cb0: 60 63 68 61 72 20 2a 60 20 76 61 6c 75 65 73 29  `char *` values)
0cc0: 2e 0a 20 2d 20 45 6e 64 65 64 20 73 75 70 70 6f  .. - Ended suppo
0cd0: 72 74 20 66 6f 72 20 60 54 63 6c 5f 43 68 61 6e  rt for `Tcl_Chan
0ce0: 6e 65 6c 54 79 70 65 56 65 72 73 69 6f 6e 60 20  nelTypeVersion` 
0cf0: 6c 65 73 73 20 74 68 61 6e 20 35 0a 20 2d 20 49  less than 5. - I
0d00: 6e 74 72 6f 64 75 63 65 64 20 76 65 72 73 69 6f  ntroduced versio
0d10: 6e 69 6e 67 20 6f 66 20 74 68 65 20 60 54 63 6c  ning of the `Tcl
0d20: 5f 4f 62 6a 54 79 70 65 60 20 73 74 72 75 63 74  _ObjType` struct
0d30: 0a 20 2d 20 52 65 6d 6f 76 65 64 20 6d 61 63 72  . - Removed macr
0d40: 6f 73 20 60 43 4f 4e 53 54 2a 60 3a 20 54 63 6c  os `CONST*`: Tcl
0d50: 20 39 20 73 75 70 70 6f 72 74 20 6d 65 61 6e 73   9 support means
0d60: 20 64 72 6f 70 70 69 6e 67 20 54 63 6c 20 38 2e   dropping Tcl 8.
0d70: 33 20 73 75 70 70 6f 72 74 2e 0a 20 20 20 28 52  3 support..   (R
0d80: 65 70 6c 61 63 65 64 20 77 69 74 68 20 73 74 61  eplaced with sta
0d90: 6e 64 61 72 64 20 43 20 60 63 6f 6e 73 74 60 20  ndard C `const` 
0da0: 6b 65 79 77 6f 72 64 20 67 6f 69 6e 67 20 66 6f  keyword going fo
0db0: 72 77 61 72 64 2e 29 0a 20 2d 20 52 65 6d 6f 76  rward.). - Remov
0dc0: 65 64 20 72 6f 75 74 69 6e 65 73 3a 0a 0a 20 20  ed routines:..  
0dd0: 20 20 20 60 54 63 6c 5f 42 61 63 6b 73 6c 61 73     `Tcl_Backslas
0de0: 68 28 29 60 2c 0a 20 20 20 20 20 60 54 63 6c 5f  h()`,.     `Tcl_
0df0: 2a 56 41 28 29 60 2c 0a 20 20 20 20 20 60 54 63  *VA()`,.     `Tc
0e00: 6c 5f 2a 4d 61 74 68 46 75 6e 63 2a 28 29 60 2c  l_*MathFunc*()`,
0e10: 0a 20 20 20 20 20 60 54 63 6c 5f 4d 61 6b 65 53  .     `Tcl_MakeS
0e20: 61 66 65 28 29 60 2c 0a 20 20 20 20 20 60 54 63  afe()`,.     `Tc
0e30: 6c 5f 28 53 61 76 65 7c 52 65 73 74 6f 72 65 7c  l_(Save|Restore|
0e40: 44 69 73 63 61 72 64 7c 46 72 65 65 29 52 65 73  Discard|Free)Res
0e50: 75 6c 74 28 29 60 2c 0a 20 20 20 20 20 60 54 63  ult()`,.     `Tc
0e60: 6c 5f 45 76 61 6c 54 6f 6b 65 6e 73 28 29 60 2c  l_EvalTokens()`,
0e70: 0a 20 20 20 20 20 60 54 63 6c 5f 28 47 65 74 7c  .     `Tcl_(Get|
0e80: 53 65 74 29 44 65 66 61 75 6c 74 45 6e 63 6f 64  Set)DefaultEncod
0e90: 69 6e 67 44 69 72 28 29 60 2c 0a 20 20 20 20 20  ingDir()`,.     
0ea0: 60 54 63 6c 5f 55 6e 69 43 68 61 72 4e 28 63 61  `Tcl_UniCharN(ca
0eb0: 73 65 29 63 6d 70 28 29 60 2c 0a 20 20 20 20 20  se)cmp()`,.     
0ec0: 60 54 63 6c 5f 55 6e 69 43 68 61 72 43 61 73 65  `Tcl_UniCharCase
0ed0: 4d 61 74 63 68 28 29 60 0a 0a 4e 6f 74 65 20 74  Match()`..Note t
0ee0: 68 61 74 20 62 75 69 6c 64 73 20 6f 66 20 65 78  hat builds of ex
0ef0: 74 65 6e 73 69 6f 6e 73 20 61 67 61 69 6e 73 74  tensions against
0f00: 20 54 63 6c 20 38 2e 36 20 61 6e 64 20 62 65 66   Tcl 8.6 and bef
0f10: 6f 72 65 20 61 72 65 20 65 78 70 65 63 74 65 64  ore are expected
0f20: 20 74 6f 20 6e 6f 74 20 77 6f 72 6b 20 77 69 74   to not work wit
0f30: 68 20 54 63 6c 20 39 2e 30 3b 20 41 42 49 20 63  h Tcl 9.0; ABI c
0f40: 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 61 73  ompatibility was
0f50: 20 61 20 6e 6f 6e 2d 67 6f 61 6c 20 66 6f 72 20   a non-goal for 
0f60: 39 2e 30 2e 0a 49 6e 20 5f 6d 6f 73 74 5f 20 63  9.0..In _most_ c
0f70: 61 73 65 73 2c 20 72 65 62 75 69 6c 64 69 6e 67  ases, rebuilding
0f80: 20 74 68 65 20 63 6f 64 65 20 61 67 61 69 6e 73   the code agains
0f90: 74 20 54 63 6c 20 39 2e 30 20 73 68 6f 75 6c 64  t Tcl 9.0 should
0fa0: 20 77 6f 72 6b 20 65 78 63 65 70 74 20 77 68 65   work except whe
0fb0: 6e 20 61 20 72 65 6d 6f 76 65 64 20 41 50 49 20  n a removed API 
0fc0: 66 75 6e 63 74 69 6f 6e 20 69 73 20 75 73 65 64  function is used
0fd0: 2e 0a 0a 23 20 4e 65 77 20 46 65 61 74 75 72 65  ...# New Feature
0fe0: 73 0a 0a 23 23 20 4e 65 77 20 63 6f 6d 6d 61 6e  s..## New comman
0ff0: 64 73 0a 20 2d 20 60 61 72 72 61 79 20 64 65 66  ds. - `array def
1000: 61 75 6c 74 60 20 26 6d 64 61 73 68 3b 20 53 70  ault` — Sp
1010: 65 63 69 66 79 20 64 65 66 61 75 6c 74 20 76 61  ecify default va
1020: 6c 75 65 73 20 66 6f 72 20 61 72 72 61 79 73 20  lues for arrays 
1030: 28 6e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20  (note that this 
1040: 61 6c 74 65 72 73 20 74 68 65 20 62 65 68 61 76  alters the behav
1050: 69 6f 75 72 20 6f 66 20 60 61 70 70 65 6e 64 60  iour of `append`
1060: 2c 20 60 69 6e 63 72 60 2c 20 60 6c 61 70 70 65  , `incr`, `lappe
1070: 6e 64 60 29 2e 0a 20 2d 20 60 61 72 72 61 79 20  nd`).. - `array 
1080: 66 6f 72 60 20 26 6d 64 61 73 68 3b 20 43 68 65  for` — Che
1090: 61 70 20 69 74 65 72 61 74 69 6f 6e 20 6f 76 65  ap iteration ove
10a0: 72 20 61 6e 20 61 72 72 61 79 27 73 20 63 6f 6e  r an array's con
10b0: 74 65 6e 74 73 2e 0a 20 2d 20 60 63 68 61 6e 20  tents.. - `chan 
10c0: 69 73 62 69 6e 61 72 79 60 20 26 6d 64 61 73 68  isbinary` &mdash
10d0: 3b 20 54 65 73 74 20 69 66 20 61 20 63 68 61 6e  ; Test if a chan
10e0: 6e 65 6c 20 69 73 20 63 6f 6e 66 69 67 75 72 65  nel is configure
10f0: 64 20 74 6f 20 77 6f 72 6b 20 77 69 74 68 20 62  d to work with b
1100: 69 6e 61 72 79 20 64 61 74 61 2e 0a 20 2d 20 60  inary data.. - `
1110: 63 6f 72 6f 69 6e 6a 65 63 74 60 2c 20 60 63 6f  coroinject`, `co
1120: 72 6f 70 72 6f 62 65 60 20 26 6d 64 61 73 68 3b  roprobe` —
1130: 20 49 6e 74 65 72 61 63 74 20 77 69 74 68 20 70   Interact with p
1140: 61 75 73 65 64 20 63 6f 72 6f 75 74 69 6e 65 73  aused coroutines
1150: 2e 0a 20 2d 20 60 63 6c 6f 63 6b 20 61 64 64 20  .. - `clock add 
1160: 77 65 65 6b 64 61 79 73 60 20 26 6d 64 61 73 68  weekdays` &mdash
1170: 3b 20 43 6c 6f 63 6b 20 61 72 69 74 68 6d 65 74  ; Clock arithmet
1180: 69 63 20 77 69 74 68 20 77 65 65 6b 20 64 61 79  ic with week day
1190: 73 2e 0a 20 2d 20 60 63 6f 6e 73 74 60 2c 20 60  s.. - `const`, `
11a0: 69 6e 66 6f 20 63 6f 6e 73 74 2a 60 20 26 6d 64  info const*` &md
11b0: 61 73 68 3b 20 43 6f 6d 6d 61 6e 64 73 20 66 6f  ash; Commands fo
11c0: 72 20 64 65 66 69 6e 69 6e 67 20 63 6f 6e 73 74  r defining const
11d0: 61 6e 74 73 20 28 76 61 72 69 61 62 6c 65 73 20  ants (variables 
11e0: 74 68 61 74 20 63 61 6e 27 74 20 62 65 20 6d 6f  that can't be mo
11f0: 64 69 66 69 65 64 29 2e 0a 20 2d 20 60 64 69 63  dified).. - `dic
1200: 74 20 67 65 74 77 69 74 68 64 65 66 61 75 6c 74  t getwithdefault
1210: 60 20 26 6d 64 61 73 68 3b 20 44 65 66 69 6e 65  ` — Define
1220: 20 61 20 66 61 6c 6c 62 61 63 6b 20 76 61 6c 75   a fallback valu
1230: 65 20 74 6f 20 75 73 65 20 77 68 65 6e 20 60 64  e to use when `d
1240: 69 63 74 20 67 65 74 60 20 77 6f 75 6c 64 20 6f  ict get` would o
1250: 74 68 65 72 77 69 73 65 20 66 61 69 6c 2e 0a 20  therwise fail.. 
1260: 2d 20 60 66 69 6c 65 20 68 6f 6d 65 60 20 26 6d  - `file home` &m
1270: 64 61 73 68 3b 20 47 65 74 20 74 68 65 20 75 73  dash; Get the us
1280: 65 72 20 68 6f 6d 65 20 64 69 72 65 63 74 6f 72  er home director
1290: 79 2e 0a 20 2d 20 60 66 69 6c 65 20 74 65 6d 70  y.. - `file temp
12a0: 64 69 72 60 20 26 6d 64 61 73 68 3b 20 43 72 65  dir` — Cre
12b0: 61 74 65 20 61 20 74 65 6d 70 6f 72 61 72 79 20  ate a temporary 
12c0: 64 69 72 65 63 74 6f 72 79 2e 0a 20 2d 20 60 66  directory.. - `f
12d0: 69 6c 65 20 74 69 6c 64 65 65 78 70 61 6e 64 60  ile tildeexpand`
12e0: 20 26 6d 64 61 73 68 3b 20 45 78 70 61 6e 64 20   — Expand 
12f0: 61 20 66 69 6c 65 20 70 61 74 68 20 63 6f 6e 74  a file path cont
1300: 61 69 6e 69 6e 67 20 61 20 60 7e 60 2e 0a 20 2d  aining a `~`.. -
1310: 20 60 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 74 79   `info commandty
1320: 70 65 60 20 26 6d 64 61 73 68 3b 20 49 6e 74 72  pe` — Intr
1330: 6f 73 70 65 63 74 69 6f 6e 20 66 6f 72 20 74 68  ospection for th
1340: 65 20 6b 69 6e 64 73 20 6f 66 20 63 6f 6d 6d 61  e kinds of comma
1350: 6e 64 73 2e 0a 20 2d 20 60 6c 65 64 69 74 60 20  nds.. - `ledit` 
1360: 26 6d 64 61 73 68 3b 20 45 71 75 69 76 61 6c 65  — Equivale
1370: 6e 74 20 74 6f 20 60 6c 72 65 70 6c 61 63 65 60  nt to `lreplace`
1380: 20 62 75 74 20 6f 6e 20 61 20 6c 69 73 74 20 69   but on a list i
1390: 6e 20 61 20 76 61 72 69 61 62 6c 65 2e 0a 20 2d  n a variable.. -
13a0: 20 60 6c 70 6f 70 60 20 26 6d 64 61 73 68 3b 20   `lpop` — 
13b0: 52 65 6d 6f 76 65 20 61 6e 20 69 74 65 6d 20 66  Remove an item f
13c0: 72 6f 6d 20 61 20 6c 69 73 74 20 69 6e 20 61 20  rom a list in a 
13d0: 76 61 72 69 61 62 6c 65 2e 0a 20 2d 20 60 6c 72  variable.. - `lr
13e0: 65 6d 6f 76 65 60 20 26 6d 64 61 73 68 3b 20 52  emove` — R
13f0: 65 6d 6f 76 65 20 61 20 73 75 62 6c 69 73 74 20  emove a sublist 
1400: 66 72 6f 6d 20 61 20 6c 69 73 74 20 69 6e 20 61  from a list in a
1410: 20 76 61 72 69 61 62 6c 65 2e 0a 20 2d 20 60 6c   variable.. - `l
1420: 73 65 71 60 20 26 6d 64 61 73 68 3b 20 47 65 6e  seq` — Gen
1430: 65 72 61 74 65 20 61 20 6c 69 73 74 20 6f 66 20  erate a list of 
1440: 6e 75 6d 62 65 72 73 20 69 6e 20 61 20 73 65 71  numbers in a seq
1450: 75 65 6e 63 65 2e 0a 20 2d 20 60 70 61 63 6b 61  uence.. - `packa
1460: 67 65 20 66 69 6c 65 73 60 20 26 6d 64 61 73 68  ge files` &mdash
1470: 3b 20 44 65 73 63 72 69 62 65 20 74 68 65 20 63  ; Describe the c
1480: 6f 6e 74 65 6e 74 73 20 6f 66 20 61 20 70 61 63  ontents of a pac
1490: 6b 61 67 65 2e 0a 20 2d 20 60 73 74 72 69 6e 67  kage.. - `string
14a0: 20 69 6e 73 65 72 74 60 20 26 6d 64 61 73 68 3b   insert` —
14b0: 20 49 6e 73 65 72 74 20 61 20 73 74 72 69 6e 67   Insert a string
14c0: 20 61 73 20 61 20 73 75 62 73 74 72 69 6e 67 20   as a substring 
14d0: 6f 66 20 61 6e 6f 74 68 65 72 20 73 74 72 69 6e  of another strin
14e0: 67 2e 0a 20 2d 20 60 73 74 72 69 6e 67 20 69 73  g.. - `string is
14f0: 20 64 69 63 74 60 20 26 6d 64 61 73 68 3b 20 54   dict` — T
1500: 65 73 74 20 77 68 65 74 68 65 72 20 61 20 73 74  est whether a st
1510: 72 69 6e 67 20 69 73 20 61 20 64 69 63 74 69 6f  ring is a dictio
1520: 6e 61 72 79 2e 0a 20 2d 20 60 74 63 6c 3a 3a 70  nary.. - `tcl::p
1530: 72 6f 63 65 73 73 60 20 26 6d 64 61 73 68 3b 20  rocess` — 
1540: 43 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 77 6f 72  Commands for wor
1550: 6b 69 6e 67 20 77 69 74 68 20 73 75 62 70 72 6f  king with subpro
1560: 63 65 73 73 65 73 2e 0a 20 2d 20 60 2a 3a 3a 62  cesses.. - `*::b
1570: 75 69 6c 64 2d 69 6e 66 6f 60 20 26 6d 64 61 73  uild-info` &mdas
1580: 68 3b 20 4f 62 74 61 69 6e 20 69 6e 66 6f 72 6d  h; Obtain inform
1590: 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20  ation about the 
15a0: 62 75 69 6c 64 20 6f 66 20 54 63 6c 2e 0a 20 2d  build of Tcl.. -
15b0: 20 60 72 65 61 64 46 69 6c 65 60 2c 20 60 77 72   `readFile`, `wr
15c0: 69 74 65 46 69 6c 65 60 2c 20 60 66 6f 72 65 61  iteFile`, `forea
15d0: 63 68 4c 69 6e 65 60 20 26 6d 64 61 73 68 3b 20  chLine` — 
15e0: 53 69 6d 70 6c 65 20 70 72 6f 63 65 64 75 72 65  Simple procedure
15f0: 73 20 66 6f 72 20 62 61 73 69 63 20 77 6f 72 6b  s for basic work
1600: 69 6e 67 20 77 69 74 68 20 66 69 6c 65 73 2e 0a  ing with files..
1610: 20 2d 20 60 74 63 6c 3a 3a 69 64 6e 61 3a 3a 2a   - `tcl::idna::*
1620: 60 20 26 6d 64 61 73 68 3b 20 43 6f 6d 6d 61 6e  ` — Comman
1630: 64 73 20 66 6f 72 20 77 6f 72 6b 69 6e 67 20 77  ds for working w
1640: 69 74 68 20 65 6e 63 6f 64 65 64 20 44 4e 53 20  ith encoded DNS 
1650: 6e 61 6d 65 73 2e 0a 0a 23 23 20 4e 65 77 20 63  names...## New c
1660: 6f 6d 6d 61 6e 64 20 6f 70 74 69 6f 6e 73 0a 20  ommand options. 
1670: 2d 20 60 63 68 61 6e 20 63 6f 6e 66 69 67 75 72  - `chan configur
1680: 65 20 2e 2e 2e 20 2d 69 6e 70 75 74 6d 6f 64 65  e ... -inputmode
1690: 20 2e 2e 2e 60 20 26 6d 64 61 73 68 3b 20 53 75   ...` — Su
16a0: 70 70 6f 72 74 20 66 6f 72 20 72 61 77 20 74 65  pport for raw te
16b0: 72 6d 69 6e 61 6c 20 69 6e 70 75 74 20 61 6e 64  rminal input and
16c0: 20 72 65 61 64 69 6e 67 20 70 61 73 73 77 6f 72   reading passwor
16d0: 64 73 2e 0a 20 2d 20 60 63 6c 6f 63 6b 20 73 63  ds.. - `clock sc
16e0: 61 6e 20 2e 2e 2e 20 2d 76 61 6c 69 64 61 74 65  an ... -validate
16f0: 20 2e 2e 2e 60 0a 20 2d 20 60 69 6e 66 6f 20 6c   ...`. - `info l
1700: 6f 61 64 65 64 20 2e 2e 2e 20 3f 70 72 65 66 69  oaded ... ?prefi
1710: 78 3f 60 0a 20 2d 20 60 6c 73 65 61 72 63 68 20  x?`. - `lsearch 
1720: 2e 2e 2e 20 2d 73 74 72 69 64 65 20 2e 2e 2e 60  ... -stride ...`
1730: 20 26 6d 64 61 73 68 3b 20 53 65 61 72 63 68 20   — Search 
1740: 61 20 6c 69 73 74 20 62 79 20 67 72 6f 75 70 73  a list by groups
1750: 20 6f 66 20 69 74 65 6d 73 2e 0a 20 2d 20 60 72   of items.. - `r
1760: 65 67 73 75 62 20 2e 2e 2e 20 2d 63 6f 6d 6d 61  egsub ... -comma
1770: 6e 64 20 2e 2e 2e 60 20 26 6d 64 61 73 68 3b 20  nd ...` — 
1780: 47 65 6e 65 72 61 74 65 20 74 68 65 20 72 65 70  Generate the rep
1790: 6c 61 63 65 6d 65 6e 74 20 66 6f 72 20 61 20 72  lacement for a r
17a0: 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f  egular expressio
17b0: 6e 20 62 79 20 63 61 6c 6c 69 6e 67 20 61 20 63  n by calling a c
17c0: 6f 6d 6d 61 6e 64 2e 0a 20 2d 20 60 73 6f 63 6b  ommand.. - `sock
17d0: 65 74 20 2e 2e 2e 20 2d 6e 6f 64 65 6c 61 79 20  et ... -nodelay 
17e0: 2e 2e 2e 20 2d 6b 65 65 70 61 6c 69 76 65 20 2e  ... -keepalive .
17f0: 2e 2e 60 0a 20 2d 20 60 76 77 61 69 74 60 20 63  ..`. - `vwait` c
1800: 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 20 73 65 76  ontrolled by sev
1810: 65 72 61 6c 20 6e 65 77 20 6f 70 74 69 6f 6e 73  eral new options
1820: 0a 20 2d 20 60 65 78 70 72 60 20 73 74 72 69 6e  . - `expr` strin
1830: 67 20 63 6f 6d 70 61 72 61 74 6f 72 73 20 60 6c  g comparators `l
1840: 74 60 2c 20 60 67 74 60 2c 20 60 6c 65 60 2c 20  t`, `gt`, `le`, 
1850: 60 67 65 60 0a 20 2d 20 60 65 78 70 72 60 20 73  `ge`. - `expr` s
1860: 75 70 70 6f 72 74 73 20 63 6f 6d 6d 65 6e 74 73  upports comments
1870: 20 69 6e 73 69 64 65 20 65 78 70 72 65 73 73 69   inside expressi
1880: 6f 6e 73 0a 0a 23 23 20 4e 75 6d 62 65 72 73 0a  ons..## Numbers.
1890: 20 2d 20 3c 63 6f 64 65 3e 30 3c 69 3e 4e 4e 4e   - <code>0<i>NNN
18a0: 3c 2f 69 3e 3c 2f 63 6f 64 65 3e 20 66 6f 72 6d  </i></code> form
18b0: 61 74 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20  at is no longer 
18c0: 6f 63 74 61 6c 20 69 6e 74 65 72 70 72 65 74 61  octal interpreta
18d0: 74 69 6f 6e 2e 20 55 73 65 20 3c 63 6f 64 65 3e  tion. Use <code>
18e0: 30 6f 3c 69 3e 4e 4e 4e 3c 2f 69 3e 3c 2f 63 6f  0o<i>NNN</i></co
18f0: 64 65 3e 2e 0a 20 2d 20 3c 63 6f 64 65 3e 30 64  de>.. - <code>0d
1900: 3c 69 3e 4e 4e 4e 4e 3c 2f 69 3e 3c 2f 63 6f 64  <i>NNNN</i></cod
1910: 65 3e 20 66 6f 72 6d 61 74 20 74 6f 20 63 6f 6d  e> format to com
1920: 70 65 6c 20 64 65 63 69 6d 61 6c 20 69 6e 74 65  pel decimal inte
1930: 72 70 72 65 74 61 74 69 6f 6e 2e 0a 20 2d 20 3c  rpretation.. - <
1940: 63 6f 64 65 3e 4e 4e 5f 4e 4e 4e 5f 4e 4e 4e 3c  code>NN_NNN_NNN<
1950: 2f 63 6f 64 65 3e 2c 20 75 6e 64 65 72 73 63 6f  /code>, undersco
1960: 72 65 73 20 69 6e 20 6e 75 6d 62 65 72 73 20 66  res in numbers f
1970: 6f 72 20 6f 70 74 69 6f 6e 61 6c 20 72 65 61 64  or optional read
1980: 61 62 69 6c 69 74 79 0a 20 2d 20 46 75 6e 63 74  ability. - Funct
1990: 69 6f 6e 73 3a 20 60 69 73 69 6e 66 28 29 60 2c  ions: `isinf()`,
19a0: 20 60 69 73 6e 61 6e 28 29 60 2c 20 60 69 73 6e   `isnan()`, `isn
19b0: 6f 72 6d 61 6c 28 29 60 2c 20 60 69 73 73 75 62  ormal()`, `issub
19c0: 6e 6f 72 6d 61 6c 28 29 60 2c 20 60 69 73 75 6e  normal()`, `isun
19d0: 6f 72 64 65 72 65 64 28 29 60 0a 20 2d 20 43 6f  ordered()`. - Co
19e0: 6d 6d 61 6e 64 3a 20 60 66 70 63 6c 61 73 73 69  mmand: `fpclassi
19f0: 66 79 60 0a 20 2d 20 46 75 6e 63 74 69 6f 6e 20  fy`. - Function 
1a00: 60 69 6e 74 28 29 60 20 6e 6f 20 6c 6f 6e 67 65  `int()` no longe
1a10: 72 20 74 72 75 6e 63 61 74 65 73 20 74 6f 20 77  r truncates to w
1a20: 6f 72 64 20 73 69 7a 65 0a 0a 23 23 20 54 63 6c  ord size..## Tcl
1a30: 4f 4f 20 66 61 63 69 6c 69 74 69 65 73 0a 20 2d  OO facilities. -
1a40: 20 70 72 69 76 61 74 65 20 76 61 72 69 61 62 6c   private variabl
1a50: 65 73 20 61 6e 64 20 6d 65 74 68 6f 64 73 0a 20  es and methods. 
1a60: 2d 20 63 6c 61 73 73 20 76 61 72 69 61 62 6c 65  - class variable
1a70: 73 20 61 6e 64 20 6d 65 74 68 6f 64 73 0a 20 2d  s and methods. -
1a80: 20 61 62 73 74 72 61 63 74 20 61 6e 64 20 73 69   abstract and si
1a90: 6e 67 6c 65 74 6f 6e 20 63 6c 61 73 73 65 73 0a  ngleton classes.
1aa0: 20 2d 20 63 6f 6e 66 69 67 75 72 61 62 6c 65 20   - configurable 
1ab0: 70 72 6f 70 65 72 74 69 65 73 0a 20 2d 20 60 6d  properties. - `m
1ac0: 65 74 68 6f 64 20 2d 65 78 70 6f 72 74 60 2c 20  ethod -export`, 
1ad0: 60 6d 65 74 68 6f 64 20 2d 75 6e 65 78 70 6f 72  `method -unexpor
1ae0: 74 60 0a 0a 23 20 4b 6e 6f 77 6e 20 62 75 67 73  t`..# Known bugs
1af0: 0a 20 2d 20 5b 43 6f 6d 6d 61 6e 64 20 6c 69 6e  . - [Command lin
1b00: 65 20 62 75 69 6c 74 20 77 69 74 68 20 6c 69 73  e built with lis
1b10: 74 20 6e 6f 74 20 70 72 6f 70 65 72 6c 79 20 71  t not properly q
1b20: 75 6f 74 65 64 5d 28 68 74 74 70 73 3a 2f 2f 63  uoted](https://c
1b30: 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67  ore.tcl-lang.org
1b40: 2f 74 63 6c 2f 74 6b 74 76 69 65 77 2f 65 33 38  /tcl/tktview/e38
1b50: 64 63 65 29 0a 20 2d 20 5b 63 68 61 6e 67 65 64  dce). - [changed
1b60: 20 62 65 68 61 76 69 6f 75 72 20 77 72 74 20 63   behaviour wrt c
1b70: 6f 6d 6d 61 6e 64 20 6e 61 6d 65 73 2c 20 6e 61  ommand names, na
1b80: 6d 65 73 70 61 63 65 73 20 61 6e 64 20 72 65 73  mespaces and res
1b90: 6f 6c 75 74 69 6f 6e 5d 28 68 74 74 70 73 3a 2f  olution](https:/
1ba0: 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f  /core.tcl-lang.o
1bb0: 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65 77 2f 66  rg/tcl/tktview/f
1bc0: 31 34 62 33 33 29 0a 20 2d 20 5b 63 6c 61 73 73  14b33). - [class
1bd0: 6d 65 74 68 6f 64 20 66 61 69 6c 73 20 69 66 20  method fails if 
1be0: 6e 6f 20 61 72 67 75 6d 65 6e 74 20 73 75 70 70  no argument supp
1bf0: 6c 69 65 64 20 74 6f 20 63 6c 61 73 73 20 63 72  lied to class cr
1c00: 65 61 74 65 5d 28 68 74 74 70 73 3a 2f 2f 63 6f  eate](https://co
1c10: 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f 72 67 2f  re.tcl-lang.org/
1c20: 74 63 6c 2f 74 6b 74 76 69 65 77 2f 36 38 30 35  tcl/tktview/6805
1c30: 30 33 29 0a 20 2d 20 5b 77 69 6e 64 6f 77 73 20  03). - [windows 
1c40: 64 6f 73 20 64 65 76 69 63 65 20 70 61 74 68 73  dos device paths
1c50: 20 69 6e 63 6f 6e 73 69 73 74 65 6e 63 69 65 73   inconsistencies
1c60: 20 61 6e 64 20 6d 69 73 73 69 6e 67 20 66 75 6e   and missing fun
1c70: 63 74 69 6f 6e 61 6c 69 74 79 5d 28 68 74 74 70  ctionality](http
1c80: 73 3a 2f 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e  s://core.tcl-lan
1c90: 67 2e 6f 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65  g.org/tcl/tktvie
1ca0: 77 2f 64 38 66 31 32 31 29 0a 20 2d 20 5b 7a 6c  w/d8f121). - [zl
1cb0: 69 62 2d 38 2e 38 2c 20 7a 6c 69 62 2d 38 2e 31  ib-8.8, zlib-8.1
1cc0: 36 20 66 61 69 6c 20 6f 6e 20 46 65 64 6f 72 61  6 fail on Fedora
1cd0: 20 34 30 2c 20 67 63 63 20 31 34 2e 31 2e 31 5d   40, gcc 14.1.1]
1ce0: 28 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63  (https://core.tc
1cf0: 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 2f 74  l-lang.org/tcl/t
1d00: 6b 74 76 69 65 77 2f 37 33 64 35 63 62 29 0a 20  ktview/73d5cb). 
1d10: 2d 20 5b 54 65 6d 70 6f 72 61 72 79 20 66 6f 6c  - [Temporary fol
1d20: 64 65 72 20 77 69 74 68 20 66 69 6c 65 20 22 74  der with file "t
1d30: 63 6c 39 72 65 67 69 73 74 72 79 31 33 2e 64 6c  cl9registry13.dl
1d40: 6c 22 20 72 65 6d 61 69 6e 73 20 61 66 74 65 72  l" remains after
1d50: 20 22 65 78 69 74 22 5d 28 68 74 74 70 73 3a 2f   "exit"](https:/
1d60: 2f 63 6f 72 65 2e 74 63 6c 2d 6c 61 6e 67 2e 6f  /core.tcl-lang.o
1d70: 72 67 2f 74 63 6c 2f 74 6b 74 76 69 65 77 2f 36  rg/tcl/tktview/6
1d80: 63 65 33 63 30 29 0a 20                          ce3c0).