summaryrefslogtreecommitdiffstats
path: root/Python/import.c
blob: 584b1b41cd3c9f6b5b99742321106dbf28d4b786 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966

/* Module definition and import implementation */

#include "Python.h"

#include "Python-ast.h"
#undef Yield /* undefine macro conflicting with winbase.h */
#include "errcode.h"
#include "marshal.h"
#include "code.h"
#include "frameobject.h"
#include "osdefs.h"
#include "importdl.h"

#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif

#define CACHEDIR "__pycache__"

/* See _PyImport_FixupExtensionObject() below */
static PyObject *extensions = NULL;

/* This table is defined in config.c: */
extern struct _inittab _PyImport_Inittab[];

struct _inittab *PyImport_Inittab = _PyImport_Inittab;

static PyObject *initstr = NULL;

/* Initialize things */

void
_PyImport_Init(void)
{
    initstr = PyUnicode_InternFromString("__init__");
    if (initstr == NULL)
        Py_FatalError("Can't initialize import variables");
}

void
_PyImportHooks_Init(void)
{
    PyObject *v, *path_hooks = NULL;
    int err = 0;

    /* adding sys.path_hooks and sys.path_importer_cache */
    v = PyList_New(0);
    if (v == NULL)
        goto error;
    err = PySys_SetObject("meta_path", v);
    Py_DECREF(v);
    if (err)
        goto error;
    v = PyDict_New();
    if (v == NULL)
        goto error;
    err = PySys_SetObject("path_importer_cache", v);
    Py_DECREF(v);
    if (err)
        goto error;
    path_hooks = PyList_New(0);
    if (path_hooks == NULL)
        goto error;
    err = PySys_SetObject("path_hooks", path_hooks);
    if (err) {
  error:
    PyErr_Print();
    Py_FatalError("initializing sys.meta_path, sys.path_hooks, "
                  "or path_importer_cache failed");
    }
    Py_DECREF(path_hooks);
}

void
_PyImportZip_Init(void)
{
    PyObject *path_hooks, *zimpimport;
    int err = 0;

    path_hooks = PySys_GetObject("path_hooks");
    if (path_hooks == NULL) {
        PyErr_SetString(PyExc_RuntimeError, "unable to get sys.path_hooks");
        goto error;
    }

    if (Py_VerboseFlag)
        PySys_WriteStderr("# installing zipimport hook\n");

    zimpimport = PyImport_ImportModule("zipimport");
    if (zimpimport == NULL) {
        PyErr_Clear(); /* No zip import module -- okay */
        if (Py_VerboseFlag)
            PySys_WriteStderr("# can't import zipimport\n");
    }
    else {
        _Py_IDENTIFIER(zipimporter);
        PyObject *zipimporter = _PyObject_GetAttrId(zimpimport,
                                                    &PyId_zipimporter);
        Py_DECREF(zimpimport);
        if (zipimporter == NULL) {
            PyErr_Clear(); /* No zipimporter object -- okay */
            if (Py_VerboseFlag)
                PySys_WriteStderr(
                    "# can't import zipimport.zipimporter\n");
        }
        else {
            /* sys.path_hooks.insert(0, zipimporter) */
            err = PyList_Insert(path_hooks, 0, zipimporter);
            Py_DECREF(zipimporter);
            if (err < 0) {
                goto error;
            }
            if (Py_VerboseFlag)
                PySys_WriteStderr(
                    "# installed zipimport hook\n");
        }
    }

    return;

  error:
    PyErr_Print();
    Py_FatalError("initializing zipimport failed");
}

/* Locking primitives to prevent parallel imports of the same module
   in different threads to return with a partially loaded module.
   These calls are serialized by the global interpreter lock. */

#ifdef WITH_THREAD

#include "pythread.h"

static PyThread_type_lock import_lock = 0;
static long import_lock_thread = -1;
static int import_lock_level = 0;

void
_PyImport_AcquireLock(void)
{
    long me = PyThread_get_thread_ident();
    if (me == -1)
        return; /* Too bad */
    if (import_lock == NULL) {
        import_lock = PyThread_allocate_lock();
        if (import_lock == NULL)
            return;  /* Nothing much we can do. */
    }
    if (import_lock_thread == me) {
        import_lock_level++;
        return;
    }
    if (import_lock_thread != -1 || !PyThread_acquire_lock(import_lock, 0))
    {
        PyThreadState *tstate = PyEval_SaveThread();
        PyThread_acquire_lock(import_lock, 1);
        PyEval_RestoreThread(tstate);
    }
    assert(import_lock_level == 0);
    import_lock_thread = me;
    import_lock_level = 1;
}

int
_PyImport_ReleaseLock(void)
{
    long me = PyThread_get_thread_ident();
    if (me == -1 || import_lock == NULL)
        return 0; /* Too bad */
    if (import_lock_thread != me)
        return -1;
    import_lock_level--;
    assert(import_lock_level >= 0);
    if (import_lock_level == 0) {
        import_lock_thread = -1;
        PyThread_release_lock(import_lock);
    }
    return 1;
}

/* This function is called from PyOS_AfterFork to ensure that newly
   created child processes do not share locks with the parent.
   We now acquire the import lock around fork() calls but on some platforms
   (Solaris 9 and earlier? see isue7242) that still left us with problems. */

void
_PyImport_ReInitLock(void)
{
    if (import_lock != NULL)
        import_lock = PyThread_allocate_lock();
    if (import_lock_level > 1) {
        /* Forked as a side effect of import */
        long me = PyThread_get_thread_ident();
        /* The following could fail if the lock is already held, but forking as
           a side-effect of an import is a) rare, b) nuts, and c) difficult to
           do thanks to the lock only being held when doing individual module
           locks per import. */
        PyThread_acquire_lock(import_lock, NOWAIT_LOCK);
        import_lock_thread = me;
        import_lock_level--;
    } else {
        import_lock_thread = -1;
        import_lock_level = 0;
    }
}

#endif

static PyObject *
imp_lock_held(PyObject *self, PyObject *noargs)
{
#ifdef WITH_THREAD
    return PyBool_FromLong(import_lock_thread != -1);
#else
    return PyBool_FromLong(0);
#endif
}

static PyObject *
imp_acquire_lock(PyObject *self, PyObject *noargs)
{
#ifdef WITH_THREAD
    _PyImport_AcquireLock();
#endif
    Py_INCREF(Py_None);
    return Py_None;
}

static PyObject *
imp_release_lock(PyObject *self, PyObject *noargs)
{
#ifdef WITH_THREAD
    if (_PyImport_ReleaseLock() < 0) {
        PyErr_SetString(PyExc_RuntimeError,
                        "not holding the import lock");
        return NULL;
    }
#endif
    Py_INCREF(Py_None);
    return Py_None;
}

void
_PyImport_Fini(void)
{
    Py_XDECREF(extensions);
    extensions = NULL;
#ifdef WITH_THREAD
    if (import_lock != NULL) {
        PyThread_free_lock(import_lock);
        import_lock = NULL;
    }
#endif
}

/* Helper for sys */

PyObject *
PyImport_GetModuleDict(void)
{
    PyInterpreterState *interp = PyThreadState_GET()->interp;
    if (interp->modules == NULL)
        Py_FatalError("PyImport_GetModuleDict: no module dictionary!");
    return interp->modules;
}


/* List of names to clear in sys */
static char* sys_deletes[] = {
    "path", "argv", "ps1", "ps2",
    "last_type", "last_value", "last_traceback",
    "path_hooks", "path_importer_cache", "meta_path",
    "__interactivehook__",
    /* misc stuff */
    "flags", "float_info",
    NULL
};

static char* sys_files[] = {
    "stdin", "__stdin__",
    "stdout", "__stdout__",
    "stderr", "__stderr__",
    NULL
};

/* Un-initialize things, as good as we can */

void
PyImport_Cleanup(void)
{
    Py_ssize_t pos;
    PyObject *key, *value, *dict;
    PyInterpreterState *interp = PyThreadState_GET()->interp;
    PyObject *modules = interp->modules;
    PyObject *builtins = interp->builtins;
    PyObject *weaklist = NULL;

    if (modules == NULL)
        return; /* Already done */

    /* Delete some special variables first.  These are common
       places where user values hide and people complain when their
       destructors fail.  Since the modules containing them are
       deleted *last* of all, they would come too late in the normal
       destruction order.  Sigh. */

    /* XXX Perhaps these precautions are obsolete. Who knows? */

    value = PyDict_GetItemString(modules, "builtins");
    if (value != NULL && PyModule_Check(value)) {
        dict = PyModule_GetDict(value);
        if (Py_VerboseFlag)
            PySys_WriteStderr("# clear builtins._\n");
        PyDict_SetItemString(dict, "_", Py_None);
    }
    value = PyDict_GetItemString(modules, "sys");
    if (value != NULL && PyModule_Check(value)) {
        char **p;
        PyObject *v;
        dict = PyModule_GetDict(value);
        for (p = sys_deletes; *p != NULL; p++) {
            if (Py_VerboseFlag)
                PySys_WriteStderr("# clear sys.%s\n", *p);
            PyDict_SetItemString(dict, *p, Py_None);
        }
        for (p = sys_files; *p != NULL; p+=2) {
            if (Py_VerboseFlag)
                PySys_WriteStderr("# restore sys.%s\n", *p);
            v = PyDict_GetItemString(dict, *(p+1));
            if (v == NULL)
                v = Py_None;
            PyDict_SetItemString(dict, *p, v);
        }
    }

    /* We prepare a list which will receive (name, weakref) tuples of
       modules when they are removed from sys.modules.  The name is used
       for diagnosis messages (in verbose mode), while the weakref helps
       detect those modules which have been held alive. */
    weaklist = PyList_New(0);
    if (weaklist == NULL)
        PyErr_Clear();

#define STORE_MODULE_WEAKREF(name, mod) \
    if (weaklist != NULL) { \
        PyObject *wr = PyWeakref_NewRef(mod, NULL); \
        if (name && wr) { \
            PyObject *tup = PyTuple_Pack(2, name, wr); \
            PyList_Append(weaklist, tup); \
            Py_XDECREF(tup); \
        } \
        Py_XDECREF(wr); \
        if (PyErr_Occurred()) \
            PyErr_Clear(); \
    }

    /* Remove all modules from sys.modules, hoping that garbage collection
       can reclaim most of them. */
    pos = 0;
    while (PyDict_Next(modules, &pos, &key, &value)) {
        if (PyModule_Check(value)) {
            if (Py_VerboseFlag && PyUnicode_Check(key))
                PySys_FormatStderr("# cleanup[2] removing %U\n", key, value);
            STORE_MODULE_WEAKREF(key, value);
            PyDict_SetItem(modules, key, Py_None);
        }
    }

    /* Clear the modules dict. */
    PyDict_Clear(modules);
    /* Replace the interpreter's reference to builtins with an empty dict
       (module globals still have a reference to the original builtins). */
    builtins = interp->builtins;
    interp->builtins = PyDict_New();
    Py_DECREF(builtins);
    /* Clear module dict copies stored in the interpreter state */
    _PyState_ClearModules();
    /* Collect references */
    _PyGC_CollectNoFail();
    /* Dump GC stats before it's too late, since it uses the warnings
       machinery. */
    _PyGC_DumpShutdownStats();

    /* Now, if there are any modules left alive, clear their globals to
       minimize potential leaks.  All C extension modules actually end
       up here, since they are kept alive in the interpreter state. */
    if (weaklist != NULL) {
        Py_ssize_t i, n;
        n = PyList_GET_SIZE(weaklist);
        for (i = 0; i < n; i++) {
            PyObject *tup = PyList_GET_ITEM(weaklist, i);
            PyObject *name = PyTuple_GET_ITEM(tup, 0);
            PyObject *mod = PyWeakref_GET_OBJECT(PyTuple_GET_ITEM(tup, 1));
            if (mod == Py_None)
                continue;
            Py_INCREF(mod);
            assert(PyModule_Check(mod));
            if (Py_VerboseFlag && PyUnicode_Check(name))
                PySys_FormatStderr("# cleanup[3] wiping %U\n",
                                   name, mod);
            _PyModule_Clear(mod);
            Py_DECREF(mod);
        }
        Py_DECREF(weaklist);
    }

    /* Clear and delete the modules directory.  Actual modules will
       still be there only if imported during the execution of some
       destructor. */
    interp->modules = NULL;
    Py_DECREF(modules);

    /* Once more */
    _PyGC_CollectNoFail();

#undef STORE_MODULE_WEAKREF
}


/* Helper for pythonrun.c -- return magic number and tag. */

long
PyImport_GetMagicNumber(void)
{
    long res;
    PyInterpreterState *interp = PyThreadState_Get()->interp;
    PyObject *pyc_magic = PyObject_GetAttrString(interp->importlib,
                                                 "_RAW_MAGIC_NUMBER");
    if (pyc_magic == NULL)
        return -1;
    res = PyLong_AsLong(pyc_magic);
    Py_DECREF(pyc_magic);
    return res;
}


extern const char * _PySys_ImplCacheTag;

const char *
PyImport_GetMagicTag(void)
{
    return _PySys_ImplCacheTag;
}


/* Magic for extension modules (built-in as well as dynamically
   loaded).  To prevent initializing an extension module more than
   once, we keep a static dictionary 'extensions' keyed by the tuple
   (module name, module name)  (for built-in modules) or by
   (filename, module name) (for dynamically loaded modules), containing these
   modules.  A copy of the module's dictionary is stored by calling
   _PyImport_FixupExtensionObject() immediately after the module initialization
   function succeeds.  A copy can be retrieved from there by calling
   _PyImport_FindExtensionObject().

   Modules which do support multiple initialization set their m_size
   field to a non-negative number (indicating the size of the
   module-specific state). They are still recorded in the extensions
   dictionary, to avoid loading shared libraries twice.
*/

int
_PyImport_FixupExtensionObject(PyObject *mod, PyObject *name,
                               PyObject *filename)
{
    PyObject *modules, *dict, *key;
    struct PyModuleDef *def;
    int res;
    if (extensions == NULL) {
        extensions = PyDict_New();
        if (extensions == NULL)
            return -1;
    }
    if (mod == NULL || !PyModule_Check(mod)) {
        PyErr_BadInternalCall();
        return -1;
    }
    def = PyModule_GetDef(mod);
    if (!def) {
        PyErr_BadInternalCall();
        return -1;
    }
    modules = PyImport_GetModuleDict();
    if (PyDict_SetItem(modules, name, mod) < 0)
        return -1;
    if (_PyState_AddModule(mod, def) < 0) {
        PyDict_DelItem(modules, name);
        return -1;
    }
    if (def->m_size == -1) {
        if (def->m_base.m_copy) {
            /* Somebody already imported the module,
               likely under a different name.
               XXX this should really not happen. */
            Py_DECREF(def->m_base.m_copy);
            def->m_base.m_copy = NULL;
        }
        dict = PyModule_GetDict(mod);
        if (dict == NULL)
            return -1;
        def->m_base.m_copy = PyDict_Copy(dict);
        if (def->m_base.m_copy == NULL)
            return -1;
    }
    key = PyTuple_Pack(2, filename, name);
    if (key == NULL)
        return -1;
    res = PyDict_SetItem(extensions, key, (PyObject *)def);
    Py_DECREF(key);
    if (res < 0)
        return -1;
    return 0;
}

int
_PyImport_FixupBuiltin(PyObject *mod, const char *name)
{
    int res;
    PyObject *nameobj;
    nameobj = PyUnicode_InternFromString(name);
    if (nameobj == NULL)
        return -1;
    res = _PyImport_FixupExtensionObject(mod, nameobj, nameobj);
    Py_DECREF(nameobj);
    return res;
}

PyObject *
_PyImport_FindExtensionObject(PyObject *name, PyObject *filename)
{
    PyObject *mod, *mdict, *key;
    PyModuleDef* def;
    if (extensions == NULL)
        return NULL;
    key = PyTuple_Pack(2, filename, name);
    if (key == NULL)
        return NULL;
    def = (PyModuleDef *)PyDict_GetItem(extensions, key);
    Py_DECREF(key);
    if (def == NULL)
        return NULL;
    if (def->m_size == -1) {
        /* Module does not support repeated initialization */
        if (def->m_base.m_copy == NULL)
            return NULL;
        mod = PyImport_AddModuleObject(name);
        if (mod == NULL)
            return NULL;
        mdict = PyModule_GetDict(mod);
        if (mdict == NULL)
            return NULL;
        if (PyDict_Update(mdict, def->m_base.m_copy))
            return NULL;
    }
    else {
        if (def->m_base.m_init == NULL)
            return NULL;
        mod = def->m_base.m_init();
        if (mod == NULL)
            return NULL;
        if (PyDict_SetItem(PyImport_GetModuleDict(), name, mod) == -1) {
            Py_DECREF(mod);
            return NULL;
        }
        Py_DECREF(mod);
    }
    if (_PyState_AddModule(mod, def) < 0) {
        PyDict_DelItem(PyImport_GetModuleDict(), name);
        Py_DECREF(mod);
        return NULL;
    }
    if (Py_VerboseFlag)
        PySys_FormatStderr("import %U # previously loaded (%R)\n",
                          name, filename);
    return mod;

}

PyObject *
_PyImport_FindBuiltin(const char *name)
{
    PyObject *res, *nameobj;
    nameobj = PyUnicode_InternFromString(name);
    if (nameobj == NULL)
        return NULL;
    res = _PyImport_FindExtensionObject(nameobj, nameobj);
    Py_DECREF(nameobj);
    return res;
}

/* Get the module object corresponding to a module name.
   First check the modules dictionary if there's one there,
   if not, create a new one and insert it in the modules dictionary.
   Because the former action is most common, THIS DOES NOT RETURN A
   'NEW' REFERENCE! */

PyObject *
PyImport_AddModuleObject(PyObject *name)
{
    PyObject *modules = PyImport_GetModuleDict();
    PyObject *m;

    if ((m = PyDict_GetItem(modules, name)) != NULL &&
        PyModule_Check(m))
        return m;
    m = PyModule_NewObject(name);
    if (m == NULL)
        return NULL;
    if (PyDict_SetItem(modules, name, m) != 0) {
        Py_DECREF(m);
        return NULL;
    }
    Py_DECREF(m); /* Yes, it still exists, in modules! */

    return m;
}

PyObject *
PyImport_AddModule(const char *name)
{
    PyObject *nameobj, *module;
    nameobj = PyUnicode_FromString(name);
    if (nameobj == NULL)
        return NULL;
    module = PyImport_AddModuleObject(nameobj);
    Py_DECREF(nameobj);
    return module;
}


/* Remove name from sys.modules, if it's there. */
static void
remove_module(PyObject *name)
{
    PyObject *modules = PyImport_GetModuleDict();
    if (PyDict_GetItem(modules, name) == NULL)
        return;
    if (PyDict_DelItem(modules, name) < 0)
        Py_FatalError("import:  deleting existing key in"
                      "sys.modules failed");
}


/* Execute a code object in a module and return the module object
 * WITH INCREMENTED REFERENCE COUNT.  If an error occurs, name is
 * removed from sys.modules, to avoid leaving damaged module objects
 * in sys.modules.  The caller may wish to restore the original
 * module object (if any) in this case; PyImport_ReloadModule is an
 * example.
 *
 * Note that PyImport_ExecCodeModuleWithPathnames() is the preferred, richer
 * interface.  The other two exist primarily for backward compatibility.
 */
PyObject *
PyImport_ExecCodeModule(const char *name, PyObject *co)
{
    return PyImport_ExecCodeModuleWithPathnames(
        name, co, (char *)NULL, (char *)NULL);
}

PyObject *
PyImport_ExecCodeModuleEx(const char *name, PyObject *co, const char *pathname)
{
    return PyImport_ExecCodeModuleWithPathnames(
        name, co, pathname, (char *)NULL);
}

PyObject *
PyImport_ExecCodeModuleWithPathnames(const char *name, PyObject *co,
                                     const char *pathname,
                                     const char *cpathname)
{
    PyObject *m = NULL;
    PyObject *nameobj, *pathobj = NULL, *cpathobj = NULL;

    nameobj = PyUnicode_FromString(name);
    if (nameobj == NULL)
        return NULL;

    if (cpathname != NULL) {
        cpathobj = PyUnicode_DecodeFSDefault(cpathname);
        if (cpathobj == NULL)
            goto error;
    }
    else
        cpathobj = NULL;

    if (pathname != NULL) {
        pathobj = PyUnicode_DecodeFSDefault(pathname);
        if (pathobj == NULL)
            goto error;
    }
    else if (cpathobj != NULL) {
        PyInterpreterState *interp = PyThreadState_GET()->interp;
        _Py_IDENTIFIER(_get_sourcefile);

        if (interp == NULL) {
            Py_FatalError("PyImport_ExecCodeModuleWithPathnames: "
                          "no interpreter!");
        }

        pathobj = _PyObject_CallMethodIdObjArgs(interp->importlib,
                                                &PyId__get_sourcefile, cpathobj,
                                                NULL);
        if (pathobj == NULL)
            PyErr_Clear();
    }
    else
        pathobj = NULL;

    m = PyImport_ExecCodeModuleObject(nameobj, co, pathobj, cpathobj);
error:
    Py_DECREF(nameobj);
    Py_XDECREF(pathobj);
    Py_XDECREF(cpathobj);
    return m;
}

PyObject*
PyImport_ExecCodeModuleObject(PyObject *name, PyObject *co, PyObject *pathname,
                              PyObject *cpathname)
{
    PyObject *modules = PyImport_GetModuleDict();
    PyObject *m, *d, *v;

    m = PyImport_AddModuleObject(name);
    if (m == NULL)
        return NULL;
    /* If the module is being reloaded, we get the old module back
       and re-use its dict to exec the new code. */
    d = PyModule_GetDict(m);
    if (PyDict_GetItemString(d, "__builtins__") == NULL) {
        if (PyDict_SetItemString(d, "__builtins__",
                                 PyEval_GetBuiltins()) != 0)
            goto error;
    }
    if (pathname != NULL) {
        v = pathname;
    }
    else {
        v = ((PyCodeObject *)co)->co_filename;
    }
    Py_INCREF(v);
    if (PyDict_SetItemString(d, "__file__", v) != 0)
        PyErr_Clear(); /* Not important enough to report */
    Py_DECREF(v);

    /* Remember the pyc path name as the __cached__ attribute. */
    if (cpathname != NULL)
        v = cpathname;
    else
        v = Py_None;
    if (PyDict_SetItemString(d, "__cached__", v) != 0)
        PyErr_Clear(); /* Not important enough to report */

    v = PyEval_EvalCode(co, d, d);
    if (v == NULL)
        goto error;
    Py_DECREF(v);

    if ((m = PyDict_GetItem(modules, name)) == NULL) {
        PyErr_Format(PyExc_ImportError,
                     "Loaded module %R not found in sys.modules",
                     name);
        return NULL;
    }

    Py_INCREF(m);

    return m;

  error:
    remove_module(name);
    return NULL;
}


static void
update_code_filenames(PyCodeObject *co, PyObject *oldname, PyObject *newname)
{
    PyObject *constants, *tmp;
    Py_ssize_t i, n;

    if (PyUnicode_Compare(co->co_filename, oldname))
        return;

    tmp = co->co_filename;
    co->co_filename = newname;
    Py_INCREF(co->co_filename);
    Py_DECREF(tmp);

    constants = co->co_consts;
    n = PyTuple_GET_SIZE(constants);
    for (i = 0; i < n; i++) {
        tmp = PyTuple_GET_ITEM(constants, i);
        if (PyCode_Check(tmp))
            update_code_filenames((PyCodeObject *)tmp,
                                  oldname, newname);
    }
}

static void
update_compiled_module(PyCodeObject *co, PyObject *newname)
{
    PyObject *oldname;

    if (PyUnicode_Compare(co->co_filename, newname) == 0)
        return;

    oldname = co->co_filename;
    Py_INCREF(oldname);
    update_code_filenames(co, oldname, newname);
    Py_DECREF(oldname);
}

static PyObject *
imp_fix_co_filename(PyObject *self, PyObject *args)
{
    PyObject *co;
    PyObject *file_path;

    if (!PyArg_ParseTuple(args, "OO:_fix_co_filename", &co, &file_path))
        return NULL;

    if (!PyCode_Check(co)) {
        PyErr_SetString(PyExc_TypeError,
                        "first argument must be a code object");
        return NULL;
    }

    if (!PyUnicode_Check(file_path)) {
        PyErr_SetString(PyExc_TypeError,
                        "second argument must be a string");
        return NULL;
    }

    update_compiled_module((PyCodeObject*)co, file_path);

    Py_RETURN_NONE;
}


/* Forward */
static const struct _frozen * find_frozen(PyObject *);


/* Helper to test for built-in module */

static int
is_builtin(PyObject *name)
{
    int i, cmp;
    for (i = 0; PyImport_Inittab[i].name != NULL; i++) {
        cmp = PyUnicode_CompareWithASCIIString(name, PyImport_Inittab[i].name);
        if (cmp == 0) {
            if (PyImport_Inittab[i].initfunc == NULL)
                return -1;
            else
                return 1;
        }
    }
    return 0;
}


/* Return an importer object for a sys.path/pkg.__path__ item 'p',
   possibly by fetching it from the path_importer_cache dict. If it
   wasn't yet cached, traverse path_hooks until a hook is found
   that can handle the path item. Return None if no hook could;
   this tells our caller it should fall back to the builtin
   import mechanism. Cache the result in path_importer_cache.
   Returns a borrowed reference. */

static PyObject *
get_path_importer(PyObject *path_importer_cache, PyObject *path_hooks,
                  PyObject *p)
{
    PyObject *importer;
    Py_ssize_t j, nhooks;

    /* These conditions are the caller's responsibility: */
    assert(PyList_Check(path_hooks));
    assert(PyDict_Check(path_importer_cache));

    nhooks = PyList_Size(path_hooks);
    if (nhooks < 0)
        return NULL; /* Shouldn't happen */

    importer = PyDict_GetItem(path_importer_cache, p);
    if (importer != NULL)
        return importer;

    /* set path_importer_cache[p] to None to avoid recursion */
    if (PyDict_SetItem(path_importer_cache, p, Py_None) != 0)
        return NULL;

    for (j = 0; j < nhooks; j++) {
        PyObject *hook = PyList_GetItem(path_hooks, j);
        if (hook == NULL)
            return NULL;
        importer = PyObject_CallFunctionObjArgs(hook, p, NULL);
        if (importer != NULL)
            break;

        if (!PyErr_ExceptionMatches(PyExc_ImportError)) {
            return NULL;
        }
        PyErr_Clear();
    }
    if (importer == NULL) {
        return Py_None;
    }
    if (importer != NULL) {
        int err = PyDict_SetItem(path_importer_cache, p, importer);
        Py_DECREF(importer);
        if (err != 0)
            return NULL;
    }
    return importer;
}

PyAPI_FUNC(PyObject *)
PyImport_GetImporter(PyObject *path) {
    PyObject *importer=NULL, *path_importer_cache=NULL, *path_hooks=NULL;

    path_importer_cache = PySys_GetObject("path_importer_cache");
    path_hooks = PySys_GetObject("path_hooks");
    if (path_importer_cache != NULL && path_hooks != NULL) {
        importer = get_path_importer(path_importer_cache,
                                     path_hooks, path);
    }
    Py_XINCREF(importer); /* get_path_importer returns a borrowed reference */
    return importer;
}


static int init_builtin(PyObject *); /* Forward */

/* Initialize a built-in module.
   Return 1 for success, 0 if the module is not found, and -1 with
   an exception set if the initialization failed. */

static int
init_builtin(PyObject *name)
{
    struct _inittab *p;
    PyObject *mod;

    mod = _PyImport_FindExtensionObject(name, name);
    if (PyErr_Occurred())
        return -1;
    if (mod != NULL)
        return 1;

    for (p = PyImport_Inittab; p->name != NULL; p++) {
        PyObject *mod;
        PyModuleDef *def;
        if (PyUnicode_CompareWithASCIIString(name, p->name) == 0) {
            if (p->initfunc == NULL) {
                PyErr_Format(PyExc_ImportError,
                    "Cannot re-init internal module %R",
                    name);
                return -1;
            }
            mod = (*p->initfunc)();
            if (mod == 0)
                return -1;
            /* Remember pointer to module init function. */
            def = PyModule_GetDef(mod);
            def->m_base.m_init = p->initfunc;
            if (_PyImport_FixupExtensionObject(mod, name, name) < 0)
                return -1;
            /* FixupExtension has put the module into sys.modules,
               so we can release our own reference. */
            Py_DECREF(mod);
            return 1;
        }
    }
    return 0;
}


/* Frozen modules */

static const struct _frozen *
find_frozen(PyObject *name)
{
    const struct _frozen *p;

    if (name == NULL)
        return NULL;

    for (p = PyImport_FrozenModules; ; p++) {
        if (p->name == NULL)
            return NULL;
        if (PyUnicode_CompareWithASCIIString(name, p->name) == 0)
            break;
    }
    return p;
}

static PyObject *
get_frozen_object(PyObject *name)
{
    const struct _frozen *p = find_frozen(name);
    int size;

    if (p == NULL) {
        PyErr_Format(PyExc_ImportError,
                     "No such frozen object named %R",
                     name);
        return NULL;
    }
    if (p->code == NULL) {
        PyErr_Format(PyExc_ImportError,
                     "Excluded frozen object named %R",
                     name);
        return NULL;
    }
    size = p->size;
    if (size < 0)
        size = -size;
    return PyMarshal_ReadObjectFromString((const char *)p->code, size);
}

static PyObject *
is_frozen_package(PyObject *name)
{
    const struct _frozen *p = find_frozen(name);
    int size;

    if (p == NULL) {
        PyErr_Format(PyExc_ImportError,
                     "No such frozen object named %R",
                     name);
        return NULL;
    }

    size = p->size;

    if (size < 0)
        Py_RETURN_TRUE;
    else
        Py_RETURN_FALSE;
}


/* Initialize a frozen module.
   Return 1 for success, 0 if the module is not found, and -1 with
   an exception set if the initialization failed.
   This function is also used from frozenmain.c */

int
PyImport_ImportFrozenModuleObject(PyObject *name)
{
    const struct _frozen *p;
    PyObject *co, *m, *path;
    int ispackage;
    int size;

    p = find_frozen(name);

    if (p == NULL)
        return 0;
    if (p->code == NULL) {
        PyErr_Format(PyExc_ImportError,
                     "Excluded frozen object named %R",
                     name);
        return -1;
    }
    size = p->size;
    ispackage = (size < 0);
    if (ispackage)
        size = -size;
    co = PyMarshal_ReadObjectFromString((const char *)p->code, size);
    if (co == NULL)
        return -1;
    if (!PyCode_Check(co)) {
        PyErr_Format(PyExc_TypeError,
                     "frozen object %R is not a code object",
                     name);
        goto err_return;
    }
    if (ispackage) {
        /* Set __path__ to the empty list */
        PyObject *d, *l;
        int err;
        m = PyImport_AddModuleObject(name);
        if (m == NULL)
            goto err_return;
        d = PyModule_GetDict(m);
        l = PyList_New(0);
        if (l == NULL) {
            goto err_return;
        }
        err = PyDict_SetItemString(d, "__path__", l);
        Py_DECREF(l);
        if (err != 0)
            goto err_return;
    }
    path = PyUnicode_FromString("<frozen>");
    if (path == NULL)
        goto err_return;
    m = PyImport_ExecCodeModuleObject(name, co, path, NULL);
    Py_DECREF(path);
    if (m == NULL)
        goto err_return;
    Py_DECREF(co);
    Py_DECREF(m);
    return 1;
err_return:
    Py_DECREF(co);
    return -1;
}

int
PyImport_ImportFrozenModule(const char *name)
{
    PyObject *nameobj;
    int ret;
    nameobj = PyUnicode_InternFromString(name);
    if (nameobj == NULL)
        return -1;
    ret = PyImport_ImportFrozenModuleObject(nameobj);
    Py_DECREF(nameobj);
    return ret;
}


/* Import a module, either built-in, frozen, or external, and return
   its module object WITH INCREMENTED REFERENCE COUNT */

PyObject *
PyImport_ImportModule(const char *name)
{
    PyObject *pname;
    PyObject *result;

    pname = PyUnicode_FromString(name);
    if (pname == NULL)
        return NULL;
    result = PyImport_Import(pname);
    Py_DECREF(pname);
    return result;
}

/* Import a module without blocking
 *
 * At first it tries to fetch the module from sys.modules. If the module was
 * never loaded before it loads it with PyImport_ImportModule() unless another
 * thread holds the import lock. In the latter case the function raises an
 * ImportError instead of blocking.
 *
 * Returns the module object with incremented ref count.
 */
PyObject *
PyImport_ImportModuleNoBlock(const char *name)
{
    return PyImport_ImportModule(name);
}


/* Remove importlib frames from the traceback,
 * except in Verbose mode. */
static void
remove_importlib_frames(void)
{
    const char *importlib_filename = "<frozen importlib._bootstrap>";
    const char *remove_frames = "_call_with_frames_removed";
    int always_trim = 0;
    int in_importlib = 0;
    PyObject *exception, *value, *base_tb, *tb;
    PyObject **prev_link, **outer_link = NULL;

    /* Synopsis: if it's an ImportError, we trim all importlib chunks
       from the traceback. We always trim chunks
       which end with a call to "_call_with_frames_removed". */

    PyErr_Fetch(&exception, &value, &base_tb);
    if (!exception || Py_VerboseFlag)
        goto done;
    if (PyType_IsSubtype((PyTypeObject *) exception,
                         (PyTypeObject *) PyExc_ImportError))
        always_trim = 1;

    prev_link = &base_tb;
    tb = base_tb;
    while (tb != NULL) {
        PyTracebackObject *traceback = (PyTracebackObject *)tb;
        PyObject *next = (PyObject *) traceback->tb_next;
        PyFrameObject *frame = traceback->tb_frame;
        PyCodeObject *code = frame->f_code;
        int now_in_importlib;

        assert(PyTraceBack_Check(tb));
        now_in_importlib = (PyUnicode_CompareWithASCIIString(
                                code->co_filename,
                                importlib_filename) == 0);
        if (now_in_importlib && !in_importlib) {
            /* This is the link to this chunk of importlib tracebacks */
            outer_link = prev_link;
        }
        in_importlib = now_in_importlib;

        if (in_importlib &&
            (always_trim ||
             PyUnicode_CompareWithASCIIString(code->co_name,
                                              remove_frames) == 0)) {
            PyObject *tmp = *outer_link;
            *outer_link = next;
            Py_XINCREF(next);
            Py_DECREF(tmp);
            prev_link = outer_link;
        }
        else {
            prev_link = (PyObject **) &traceback->tb_next;
        }
        tb = next;
    }
done:
    PyErr_Restore(exception, value, base_tb);
}


PyObject *
PyImport_ImportModuleLevelObject(PyObject *name, PyObject *given_globals,
                                 PyObject *locals, PyObject *given_fromlist,
                                 int level)
{
    _Py_IDENTIFIER(__import__);
    _Py_IDENTIFIER(__spec__);
    _Py_IDENTIFIER(_initializing);
    _Py_IDENTIFIER(__package__);
    _Py_IDENTIFIER(__path__);
    _Py_IDENTIFIER(__name__);
    _Py_IDENTIFIER(_find_and_load);
    _Py_IDENTIFIER(_handle_fromlist);
    _Py_IDENTIFIER(_lock_unlock_module);
    _Py_static_string(single_dot, ".");
    PyObject *abs_name = NULL;
    PyObject *builtins_import = NULL;
    PyObject *final_mod = NULL;
    PyObject *mod = NULL;
    PyObject *package = NULL;
    PyObject *globals = NULL;
    PyObject *fromlist = NULL;
    PyInterpreterState *interp = PyThreadState_GET()->interp;

    /* Make sure to use default values so as to not have
       PyObject_CallMethodObjArgs() truncate the parameter list because of a
       NULL argument. */
    if (given_globals == NULL) {
        globals = PyDict_New();
        if (globals == NULL) {
            goto error;
        }
    }
    else {
        /* Only have to care what given_globals is if it will be used
           for something. */
        if (level > 0 && !PyDict_Check(given_globals)) {
            PyErr_SetString(PyExc_TypeError, "globals must be a dict");
            goto error;
        }
        globals = given_globals;
        Py_INCREF(globals);
    }

    if (given_fromlist == NULL) {
        fromlist = PyList_New(0);
        if (fromlist == NULL) {
            goto error;
        }
    }
    else {
        fromlist = given_fromlist;
        Py_INCREF(fromlist);
    }
    if (name == NULL) {
        PyErr_SetString(PyExc_ValueError, "Empty module name");
        goto error;
    }

    /* The below code is importlib.__import__() & _gcd_import(), ported to C
       for added performance. */

    if (!PyUnicode_Check(name)) {
        PyErr_SetString(PyExc_TypeError, "module name must be a string");
        goto error;
    }
    else if (PyUnicode_READY(name) < 0) {
        goto error;
    }
    if (level < 0) {
        PyErr_SetString(PyExc_ValueError, "level must be >= 0");
        goto error;
    }
    else if (level > 0) {
        package = _PyDict_GetItemId(globals, &PyId___package__);
        if (package != NULL && package != Py_None) {
            Py_INCREF(package);
            if (!PyUnicode_Check(package)) {
                PyErr_SetString(PyExc_TypeError, "package must be a string");
                goto error;
            }
        }
        else {
            package = _PyDict_GetItemId(globals, &PyId___name__);
            if (package == NULL) {
                PyErr_SetString(PyExc_KeyError, "'__name__' not in globals");
                goto error;
            }
            else if (!PyUnicode_Check(package)) {
                PyErr_SetString(PyExc_TypeError, "__name__ must be a string");
            }
            Py_INCREF(package);

            if (_PyDict_GetItemId(globals, &PyId___path__) == NULL) {
                PyObject *partition = NULL;
                PyObject *borrowed_dot = _PyUnicode_FromId(&single_dot);
                if (borrowed_dot == NULL) {
                    goto error;
                }
                partition = PyUnicode_RPartition(package, borrowed_dot);
                Py_DECREF(package);
                if (partition == NULL) {
                    goto error;
                }
                package = PyTuple_GET_ITEM(partition, 0);
                Py_INCREF(package);
                Py_DECREF(partition);
            }
        }

        if (PyDict_GetItem(interp->modules, package) == NULL) {
            PyErr_Format(PyExc_SystemError,
                    "Parent module %R not loaded, cannot perform relative "
                    "import", package);
            goto error;
        }
    }
    else {  /* level == 0 */
        if (PyUnicode_GET_LENGTH(name) == 0) {
            PyErr_SetString(PyExc_ValueError, "Empty module name");
            goto error;
        }
        package = Py_None;
        Py_INCREF(package);
    }

    if (level > 0) {
        Py_ssize_t last_dot = PyUnicode_GET_LENGTH(package);
        PyObject *base = NULL;
        int level_up = 1;

        for (level_up = 1; level_up < level; level_up += 1) {
            last_dot = PyUnicode_FindChar(package, '.', 0, last_dot, -1);
            if (last_dot == -2) {
                goto error;
            }
            else if (last_dot == -1) {
                PyErr_SetString(PyExc_ValueError,
                                "attempted relative import beyond top-level "
                                "package");
                goto error;
            }
        }

        base = PyUnicode_Substring(package, 0, last_dot);
        if (base == NULL)
            goto error;

        if (PyUnicode_GET_LENGTH(name) > 0) {
            PyObject *borrowed_dot, *seq = NULL;

            borrowed_dot = _PyUnicode_FromId(&single_dot);
            seq = PyTuple_Pack(2, base, name);
            Py_DECREF(base);
            if (borrowed_dot == NULL || seq == NULL) {
                goto error;
            }

            abs_name = PyUnicode_Join(borrowed_dot, seq);
            Py_DECREF(seq);
            if (abs_name == NULL) {
                goto error;
            }
        }
        else {
            abs_name = base;
        }
    }
    else {
        abs_name = name;
        Py_INCREF(abs_name);
    }

#ifdef WITH_THREAD
    _PyImport_AcquireLock();
#endif
   /* From this point forward, goto error_with_unlock! */
    if (PyDict_Check(globals)) {
        builtins_import = _PyDict_GetItemId(globals, &PyId___import__);
    }
    if (builtins_import == NULL) {
        builtins_import = _PyDict_GetItemId(interp->builtins, &PyId___import__);
        if (builtins_import == NULL) {
            PyErr_SetString(PyExc_ImportError, "__import__ not found");
            goto error_with_unlock;
        }
    }
    Py_INCREF(builtins_import);

    mod = PyDict_GetItem(interp->modules, abs_name);
    if (mod == Py_None) {
        PyObject *msg = PyUnicode_FromFormat("import of %R halted; "
                                             "None in sys.modules", abs_name);
        if (msg != NULL) {
            PyErr_SetImportError(msg, abs_name, NULL);
            Py_DECREF(msg);
        }
        mod = NULL;
        goto error_with_unlock;
    }
    else if (mod != NULL) {
        PyObject *value = NULL;
        PyObject *spec;
        int initializing = 0;

        Py_INCREF(mod);
        /* Optimization: only call _bootstrap._lock_unlock_module() if
           __spec__._initializing is true.
           NOTE: because of this, initializing must be set *before*
           stuffing the new module in sys.modules.
         */
        spec = _PyObject_GetAttrId(mod, &PyId___spec__);
        if (spec != NULL) {
            value = _PyObject_GetAttrId(spec, &PyId__initializing);
            Py_DECREF(spec);
        }
        if (value == NULL)
            PyErr_Clear();
        else {
            initializing = PyObject_IsTrue(value);
            Py_DECREF(value);
            if (initializing == -1)
                PyErr_Clear();
        }
        if (initializing > 0) {
            /* _bootstrap._lock_unlock_module() releases the import lock */
            value = _PyObject_CallMethodIdObjArgs(interp->importlib,
                                            &PyId__lock_unlock_module, abs_name,
                                            NULL);
            if (value == NULL)
                goto error;
            Py_DECREF(value);
        }
        else {
#ifdef WITH_THREAD
            if (_PyImport_ReleaseLock() < 0) {
                PyErr_SetString(PyExc_RuntimeError, "not holding the import lock");
                goto error;
            }
#endif
        }
    }
    else {
        /* _bootstrap._find_and_load() releases the import lock */
        mod = _PyObject_CallMethodIdObjArgs(interp->importlib,
                                            &PyId__find_and_load, abs_name,
                                            builtins_import, NULL);
        if (mod == NULL) {
            goto error;
        }
    }
    /* From now on we don't hold the import lock anymore. */

    if (PyObject_Not(fromlist)) {
        if (level == 0 || PyUnicode_GET_LENGTH(name) > 0) {
            PyObject *front = NULL;
            PyObject *partition = NULL;
            PyObject *borrowed_dot = _PyUnicode_FromId(&single_dot);

            if (borrowed_dot == NULL) {
                goto error;
            }

            partition = PyUnicode_Partition(name, borrowed_dot);
            if (partition == NULL) {
                goto error;
            }

            if (PyUnicode_GET_LENGTH(PyTuple_GET_ITEM(partition, 1)) == 0) {
                /* No dot in module name, simple exit */
                Py_DECREF(partition);
                final_mod = mod;
                Py_INCREF(mod);
                goto error;
            }

            front = PyTuple_GET_ITEM(partition, 0);
            Py_INCREF(front);
            Py_DECREF(partition);

            if (level == 0) {
                final_mod = PyObject_CallFunctionObjArgs(builtins_import, front, NULL);
                Py_DECREF(front);
            }
            else {
                Py_ssize_t cut_off = PyUnicode_GET_LENGTH(name) -
                                        PyUnicode_GET_LENGTH(front);
                Py_ssize_t abs_name_len = PyUnicode_GET_LENGTH(abs_name);
                PyObject *to_return = PyUnicode_Substring(abs_name, 0,
                                                        abs_name_len - cut_off);
                Py_DECREF(front);
                if (to_return == NULL) {
                    goto error;
                }

                final_mod = PyDict_GetItem(interp->modules, to_return);
                if (final_mod == NULL) {
                    PyErr_Format(PyExc_KeyError,
                                 "%R not in sys.modules as expected",
                                 to_return);
                }
                else {
                    Py_INCREF(final_mod);
                }
                Py_DECREF(to_return);
            }
        }
        else {
            final_mod = mod;
            Py_INCREF(mod);
        }
    }
    else {
        final_mod = _PyObject_CallMethodIdObjArgs(interp->importlib,
                                                  &PyId__handle_fromlist, mod,
                                                  fromlist, builtins_import,
                                                  NULL);
    }
    goto error;

  error_with_unlock:
#ifdef WITH_THREAD
    if (_PyImport_ReleaseLock() < 0) {
        PyErr_SetString(PyExc_RuntimeError, "not holding the import lock");
    }
#endif
  error:
    Py_XDECREF(abs_name);
    Py_XDECREF(builtins_import);
    Py_XDECREF(mod);
    Py_XDECREF(package);
    Py_XDECREF(globals);
    Py_XDECREF(fromlist);
    if (final_mod == NULL)
        remove_importlib_frames();
    return final_mod;
}

PyObject *
PyImport_ImportModuleLevel(const char *name, PyObject *globals, PyObject *locals,
                           PyObject *fromlist, int level)
{
    PyObject *nameobj, *mod;
    nameobj = PyUnicode_FromString(name);
    if (nameobj == NULL)
        return NULL;
    mod = PyImport_ImportModuleLevelObject(nameobj, globals, locals,
                                           fromlist, level);
    Py_DECREF(nameobj);
    return mod;
}


/* Re-import a module of any kind and return its module object, WITH
   INCREMENTED REFERENCE COUNT */

PyObject *
PyImport_ReloadModule(PyObject *m)
{
    _Py_IDENTIFIER(reload);
    PyObject *reloaded_module = NULL;
    PyObject *modules = PyImport_GetModuleDict();
    PyObject *imp = PyDict_GetItemString(modules, "imp");
    if (imp == NULL) {
        imp = PyImport_ImportModule("imp");
        if (imp == NULL) {
            return NULL;
        }
    }
    else {
        Py_INCREF(imp);
    }

    reloaded_module = _PyObject_CallMethodId(imp, &PyId_reload, "O", m);
    Py_DECREF(imp);
    return reloaded_module;
}


/* Higher-level import emulator which emulates the "import" statement
   more accurately -- it invokes the __import__() function from the
   builtins of the current globals.  This means that the import is
   done using whatever import hooks are installed in the current
   environment.
   A dummy list ["__doc__"] is passed as the 4th argument so that
   e.g. PyImport_Import(PyUnicode_FromString("win32com.client.gencache"))
   will return <module "gencache"> instead of <module "win32com">. */

PyObject *
PyImport_Import(PyObject *module_name)
{
    static PyObject *silly_list = NULL;
    static PyObject *builtins_str = NULL;
    static PyObject *import_str = NULL;
    PyObject *globals = NULL;
    PyObject *import = NULL;
    PyObject *builtins = NULL;
    PyObject *modules = NULL;
    PyObject *r = NULL;

    /* Initialize constant string objects */
    if (silly_list == NULL) {
        import_str = PyUnicode_InternFromString("__import__");
        if (import_str == NULL)
            return NULL;
        builtins_str = PyUnicode_InternFromString("__builtins__");
        if (builtins_str == NULL)
            return NULL;
        silly_list = PyList_New(0);
        if (silly_list == NULL)
            return NULL;
    }

    /* Get the builtins from current globals */
    globals = PyEval_GetGlobals();
    if (globals != NULL) {
        Py_INCREF(globals);
        builtins = PyObject_GetItem(globals, builtins_str);
        if (builtins == NULL)
            goto err;
    }
    else {
        /* No globals -- use standard builtins, and fake globals */
        builtins = PyImport_ImportModuleLevel("builtins",
                                              NULL, NULL, NULL, 0);
        if (builtins == NULL)
            return NULL;
        globals = Py_BuildValue("{OO}", builtins_str, builtins);
        if (globals == NULL)
            goto err;
    }

    /* Get the __import__ function from the builtins */
    if (PyDict_Check(builtins)) {
        import = PyObject_GetItem(builtins, import_str);
        if (import == NULL)
            PyErr_SetObject(PyExc_KeyError, import_str);
    }
    else
        import = PyObject_GetAttr(builtins, import_str);
    if (import == NULL)
        goto err;

    /* Call the __import__ function with the proper argument list
       Always use absolute import here.
       Calling for side-effect of import. */
    r = PyObject_CallFunction(import, "OOOOi", module_name, globals,
                              globals, silly_list, 0, NULL);
    if (r == NULL)
        goto err;
    Py_DECREF(r);

    modules = PyImport_GetModuleDict();
    r = PyDict_GetItem(modules, module_name);
    if (r != NULL)
        Py_INCREF(r);

  err:
    Py_XDECREF(globals);
    Py_XDECREF(builtins);
    Py_XDECREF(import);

    return r;
}

static PyObject *
imp_extension_suffixes(PyObject *self, PyObject *noargs)
{
    PyObject *list;
    const char *suffix;
    unsigned int index = 0;

    list = PyList_New(0);
    if (list == NULL)
        return NULL;
#ifdef HAVE_DYNAMIC_LOADING
    while ((suffix = _PyImport_DynLoadFiletab[index])) {
        PyObject *item = PyUnicode_FromString(suffix);
        if (item == NULL) {
            Py_DECREF(list);
            return NULL;
        }
        if (PyList_Append(list, item) < 0) {
            Py_DECREF(list);
            Py_DECREF(item);
            return NULL;
        }
        Py_DECREF(item);
        index += 1;
    }
#endif
    return list;
}

static PyObject *
imp_init_builtin(PyObject *self, PyObject *args)
{
    PyObject *name;
    int ret;
    PyObject *m;
    if (!PyArg_ParseTuple(args, "U:init_builtin", &name))
        return NULL;
    ret = init_builtin(name);
    if (ret < 0)
        return NULL;
    if (ret == 0) {
        Py_INCREF(Py_None);
        return Py_None;
    }
    m = PyImport_AddModuleObject(name);
    Py_XINCREF(m);
    return m;
}

static PyObject *
imp_init_frozen(PyObject *self, PyObject *args)
{
    PyObject *name;
    int ret;
    PyObject *m;
    if (!PyArg_ParseTuple(args, "U:init_frozen", &name))
        return NULL;
    ret = PyImport_ImportFrozenModuleObject(name);
    if (ret < 0)
        return NULL;
    if (ret == 0) {
        Py_INCREF(Py_None);
        return Py_None;
    }
    m = PyImport_AddModuleObject(name);
    Py_XINCREF(m);
    return m;
}

static PyObject *
imp_get_frozen_object(PyObject *self, PyObject *args)
{
    PyObject *name;

    if (!PyArg_ParseTuple(args, "U:get_frozen_object", &name))
        return NULL;
    return get_frozen_object(name);
}

static PyObject *
imp_is_frozen_package(PyObject *self, PyObject *args)
{
    PyObject *name;

    if (!PyArg_ParseTuple(args, "U:is_frozen_package", &name))
        return NULL;
    return is_frozen_package(name);
}

static PyObject *
imp_is_builtin(PyObject *self, PyObject *args)
{
    PyObject *name;
    if (!PyArg_ParseTuple(args, "U:is_builtin", &name))
        return NULL;
    return PyLong_FromLong(is_builtin(name));
}

static PyObject *
imp_is_frozen(PyObject *self, PyObject *args)
{
    PyObject *name;
    const struct _frozen *p;
    if (!PyArg_ParseTuple(args, "U:is_frozen", &name))
        return NULL;
    p = find_frozen(name);
    return PyBool_FromLong((long) (p == NULL ? 0 : p->size));
}

#ifdef HAVE_DYNAMIC_LOADING

static PyObject *
imp_load_dynamic(PyObject *self, PyObject *args)
{
    PyObject *name, *pathname, *fob = NULL, *mod;
    FILE *fp;

    if (!PyArg_ParseTuple(args, "UO&|O:load_dynamic",
                          &name, PyUnicode_FSDecoder, &pathname, &fob))
        return NULL;
    if (fob != NULL) {
        fp = _Py_fopen_obj(pathname, "r");
        if (fp == NULL) {
            Py_DECREF(pathname);
            if (!PyErr_Occurred())
                PyErr_SetFromErrno(PyExc_IOError);
            return NULL;
        }
    }
    else
        fp = NULL;
    mod = _PyImport_LoadDynamicModule(name, pathname, fp);
    Py_DECREF(pathname);
    if (fp)
        fclose(fp);
    return mod;
}

#endif /* HAVE_DYNAMIC_LOADING */


/* Doc strings */

PyDoc_STRVAR(doc_imp,
"(Extremely) low-level import machinery bits as used by importlib and imp.");

PyDoc_STRVAR(doc_extension_suffixes,
"extension_suffixes() -> list of strings\n\
Returns the list of file suffixes used to identify extension modules.");

PyDoc_STRVAR(doc_lock_held,
"lock_held() -> boolean\n\
Return True if the import lock is currently held, else False.\n\
On platforms without threads, return False.");

PyDoc_STRVAR(doc_acquire_lock,
"acquire_lock() -> None\n\
Acquires the interpreter's import lock for the current thread.\n\
This lock should be used by import hooks to ensure thread-safety\n\
when importing modules.\n\
On platforms without threads, this function does nothing.");

PyDoc_STRVAR(doc_release_lock,
"release_lock() -> None\n\
Release the interpreter's import lock.\n\
On platforms without threads, this function does nothing.");

static PyMethodDef imp_methods[] = {
    {"extension_suffixes", imp_extension_suffixes, METH_NOARGS,
        doc_extension_suffixes},
    {"lock_held",        imp_lock_held,    METH_NOARGS,  doc_lock_held},
    {"acquire_lock", imp_acquire_lock, METH_NOARGS,  doc_acquire_lock},
    {"release_lock", imp_release_lock, METH_NOARGS,  doc_release_lock},
    {"get_frozen_object",       imp_get_frozen_object,  METH_VARARGS},
    {"is_frozen_package",   imp_is_frozen_package,  METH_VARARGS},
    {"init_builtin",            imp_init_builtin,       METH_VARARGS},
    {"init_frozen",             imp_init_frozen,        METH_VARARGS},
    {"is_builtin",              imp_is_builtin,         METH_VARARGS},
    {"is_frozen",               imp_is_frozen,          METH_VARARGS},
#ifdef HAVE_DYNAMIC_LOADING
    {"load_dynamic",            imp_load_dynamic,       METH_VARARGS},
#endif
    {"_fix_co_filename",        imp_fix_co_filename,    METH_VARARGS},
    {NULL,                      NULL}           /* sentinel */
};


static struct PyModuleDef impmodule = {
    PyModuleDef_HEAD_INIT,
    "_imp",
    doc_imp,
    0,
    imp_methods,
    NULL,
    NULL,
    NULL,
    NULL
};

PyMODINIT_FUNC
PyInit_imp(void)
{
    PyObject *m, *d;

    m = PyModule_Create(&impmodule);
    if (m == NULL)
        goto failure;
    d = PyModule_GetDict(m);
    if (d == NULL)
        goto failure;

    return m;
  failure:
    Py_XDECREF(m);
    return NULL;
}


/* API for embedding applications that want to add their own entries
   to the table of built-in modules.  This should normally be called
   *before* Py_Initialize().  When the table resize fails, -1 is
   returned and the existing table is unchanged.

   After a similar function by Just van Rossum. */

int
PyImport_ExtendInittab(struct _inittab *newtab)
{
    static struct _inittab *our_copy = NULL;
    struct _inittab *p;
    int i, n;

    /* Count the number of entries in both tables */
    for (n = 0; newtab[n].name != NULL; n++)
        ;
    if (n == 0)
        return 0; /* Nothing to do */
    for (i = 0; PyImport_Inittab[i].name != NULL; i++)
        ;

    /* Allocate new memory for the combined table */
    p = our_copy;
    PyMem_RESIZE(p, struct _inittab, i+n+1);
    if (p == NULL)
        return -1;

    /* Copy the tables into the new memory */
    if (our_copy != PyImport_Inittab)
        memcpy(p, PyImport_Inittab, (i+1) * sizeof(struct _inittab));
    PyImport_Inittab = our_copy = p;
    memcpy(p+i, newtab, (n+1) * sizeof(struct _inittab));

    return 0;
}

/* Shorthand to add a single entry given a name and a function */

int
PyImport_AppendInittab(const char *name, PyObject* (*initfunc)(void))
{
    struct _inittab newtab[2];

    memset(newtab, '\0', sizeof newtab);

    newtab[0].name = (char *)name;
    newtab[0].initfunc = initfunc;

    return PyImport_ExtendInittab(newtab);
}

#ifdef __cplusplus
}
#endif
lass='graph'>
-rw-r--r--generic/tclAssembly.c4325
-rw-r--r--generic/tclAsync.c253
-rw-r--r--generic/tclBasic.c9143
-rw-r--r--generic/tclBinary.c3213
-rw-r--r--generic/tclCkalloc.c983
-rw-r--r--generic/tclClock.c2219
-rw-r--r--generic/tclCmdAH.c3860
-rw-r--r--generic/tclCmdIL.c4593
-rw-r--r--generic/tclCmdMZ.c5685
-rw-r--r--generic/tclCompCmds.c5285
-rw-r--r--generic/tclCompCmdsGR.c3171
-rw-r--r--generic/tclCompCmdsSZ.c4383
-rw-r--r--generic/tclCompExpr.c3311
-rw-r--r--generic/tclCompile.c5298
-rw-r--r--generic/tclCompile.h1857
-rw-r--r--generic/tclConfig.c372
-rw-r--r--generic/tclDTrace.d225
-rw-r--r--generic/tclDate.c4430
-rw-r--r--generic/tclDecls.h6676
-rw-r--r--generic/tclDictObj.c3410
-rw-r--r--generic/tclEncoding.c2811
-rw-r--r--generic/tclEnsemble.c3486
-rw-r--r--generic/tclEnv.c663
-rw-r--r--generic/tclEvent.c1593
-rw-r--r--generic/tclExecute.c13880
-rw-r--r--generic/tclFCmd.c1254
-rw-r--r--generic/tclFileName.c2615
-rw-r--r--generic/tclFileSystem.h141
-rw-r--r--generic/tclGet.c340
-rw-r--r--generic/tclGetDate.y1814
-rw-r--r--generic/tclHash.c777
-rw-r--r--generic/tclHistory.c164
-rw-r--r--generic/tclIO.c10216
-rw-r--r--generic/tclIO.h422
-rw-r--r--generic/tclIOCmd.c1921
-rw-r--r--generic/tclIOGT.c1606
-rw-r--r--generic/tclIORChan.c3238
-rw-r--r--generic/tclIORTrans.c3420
-rw-r--r--generic/tclIOSock.c225
-rw-r--r--generic/tclIOUtil.c5923
-rw-r--r--generic/tclIndexObj.c1443
-rw-r--r--generic/tclInt.decls1039
-rw-r--r--generic/tclInt.h5517
-rw-r--r--generic/tclIntDecls.h2203
-rw-r--r--generic/tclIntPlatDecls.h775
-rw-r--r--generic/tclInterp.c3755
-rw-r--r--generic/tclLink.c528
-rw-r--r--generic/tclListObj.c2308
-rw-r--r--generic/tclLiteral.c1023
-rw-r--r--generic/tclLoad.c863
-rw-r--r--generic/tclLoadNone.c144
-rw-r--r--generic/tclMain.c1092
-rw-r--r--generic/tclNamesp.c6692
-rw-r--r--generic/tclNotify.c676
-rw-r--r--generic/tclOO.c2977
-rw-r--r--generic/tclOO.decls218
-rw-r--r--generic/tclOO.h147
-rw-r--r--generic/tclOOBasic.c1249
-rw-r--r--generic/tclOOCall.c1495
-rw-r--r--generic/tclOODecls.h234
-rw-r--r--generic/tclOODefineCmds.c2697
-rw-r--r--generic/tclOOInfo.c1526
-rw-r--r--generic/tclOOInt.h604
-rw-r--r--generic/tclOOIntDecls.h166
-rw-r--r--generic/tclOOMethod.c1783
-rw-r--r--generic/tclOOStubInit.c78
-rw-r--r--generic/tclOOStubLib.c71
-rw-r--r--generic/tclObj.c4336
-rw-r--r--generic/tclOptimize.c444
-rw-r--r--generic/tclPanic.c112
-rw-r--r--generic/tclParse.c2487
-rw-r--r--generic/tclParse.h17
-rw-r--r--generic/tclParseExpr.c2159
-rw-r--r--generic/tclPathObj.c3061
-rw-r--r--generic/tclPipe.c802
-rw-r--r--generic/tclPkg.c2075
-rw-r--r--generic/tclPkgConfig.c153
-rw-r--r--generic/tclPlatDecls.h138
-rw-r--r--generic/tclPort.h10
-rw-r--r--generic/tclPosixStr.c826
-rw-r--r--generic/tclPreserve.c364
-rw-r--r--generic/tclProc.c3345
-rw-r--r--generic/tclRegexp.c620
-rw-r--r--generic/tclRegexp.h39
-rw-r--r--generic/tclResolve.c468
-rw-r--r--generic/tclResult.c1460
-rw-r--r--generic/tclScan.c1080
-rw-r--r--generic/tclStrToD.c5015
-rw-r--r--generic/tclStringObj.c3186
-rw-r--r--generic/tclStringTrim.h43
-rw-r--r--generic/tclStubInit.c814
-rw-r--r--generic/tclStubLib.c140
-rw-r--r--generic/tclStubLibTbl.c58
-rw-r--r--generic/tclTest.c6440
-rw-r--r--generic/tclTestObj.c1063
-rw-r--r--generic/tclTestProcBodyObj.c200
-rw-r--r--generic/tclThread.c384
-rw-r--r--[-rwxr-xr-x]generic/tclThreadAlloc.c882
-rw-r--r--generic/tclThreadJoin.c317
-rw-r--r--generic/tclThreadStorage.c373
-rw-r--r--generic/tclThreadTest.c858
-rw-r--r--generic/tclTimer.c970
-rw-r--r--generic/tclTomMath.decls223
-rw-r--r--generic/tclTomMath.h832
-rw-r--r--generic/tclTomMathDecls.h501
-rw-r--r--generic/tclTomMathInt.h3
-rw-r--r--generic/tclTomMathInterface.c310
-rw-r--r--generic/tclTomMathStubLib.c79
-rw-r--r--generic/tclTrace.c3645
-rw-r--r--generic/tclUniData.c2138
-rw-r--r--generic/tclUtf.c1083
-rw-r--r--generic/tclUtil.c4261
-rw-r--r--generic/tclVar.c7222
-rw-r--r--generic/tclZlib.c4017
-rw-r--r--generic/tommath.h1
-rw-r--r--library/auto.tcl466
-rw-r--r--library/clock.tcl4573
-rw-r--r--library/dde/pkgIndex.tcl10
-rw-r--r--[-rwxr-xr-x]library/encoding/tis-620.enc0
-rw-r--r--library/history.tcl304
-rw-r--r--library/http/http.tcl1229
-rw-r--r--library/http/pkgIndex.tcl14
-rw-r--r--library/http1.0/http.tcl8
-rw-r--r--library/init.tcl416
-rw-r--r--library/ldAout.tcl233
-rw-r--r--library/msgcat/msgcat.tcl462
-rw-r--r--library/msgcat/pkgIndex.tcl2
-rw-r--r--library/msgs/af.msg49
-rw-r--r--library/msgs/af_za.msg6
-rw-r--r--library/msgs/ar.msg54
-rw-r--r--library/msgs/ar_in.msg6
-rw-r--r--library/msgs/ar_jo.msg39
-rw-r--r--library/msgs/ar_lb.msg39
-rw-r--r--library/msgs/ar_sy.msg39
-rw-r--r--library/msgs/be.msg52
-rw-r--r--library/msgs/bg.msg52
-rw-r--r--library/msgs/bn.msg49
-rw-r--r--library/msgs/bn_in.msg6
-rw-r--r--library/msgs/ca.msg50
-rw-r--r--library/msgs/cs.msg54
-rw-r--r--library/msgs/da.msg52
-rw-r--r--library/msgs/de.msg54
-rw-r--r--library/msgs/de_at.msg35
-rw-r--r--library/msgs/de_be.msg53
-rw-r--r--library/msgs/el.msg52
-rw-r--r--library/msgs/en_au.msg7
-rw-r--r--library/msgs/en_be.msg7
-rw-r--r--library/msgs/en_bw.msg6
-rw-r--r--library/msgs/en_ca.msg7
-rw-r--r--library/msgs/en_gb.msg7
-rw-r--r--library/msgs/en_hk.msg8
-rw-r--r--library/msgs/en_ie.msg7
-rw-r--r--library/msgs/en_in.msg8
-rw-r--r--library/msgs/en_nz.msg7
-rw-r--r--library/msgs/en_ph.msg8
-rw-r--r--library/msgs/en_sg.msg6
-rw-r--r--library/msgs/en_za.msg6
-rw-r--r--library/msgs/en_zw.msg6
-rw-r--r--library/msgs/eo.msg54
-rw-r--r--library/msgs/es.msg52
-rw-r--r--library/msgs/es_ar.msg6
-rw-r--r--library/msgs/es_bo.msg6
-rw-r--r--library/msgs/es_cl.msg6
-rw-r--r--library/msgs/es_co.msg6
-rw-r--r--library/msgs/es_cr.msg6
-rw-r--r--library/msgs/es_do.msg6
-rw-r--r--library/msgs/es_ec.msg6
-rw-r--r--library/msgs/es_gt.msg6
-rw-r--r--library/msgs/es_hn.msg6
-rw-r--r--library/msgs/es_mx.msg6
-rw-r--r--library/msgs/es_ni.msg6
-rw-r--r--library/msgs/es_pa.msg6
-rw-r--r--library/msgs/es_pe.msg6
-rw-r--r--library/msgs/es_pr.msg6
-rw-r--r--library/msgs/es_py.msg6
-rw-r--r--library/msgs/es_sv.msg6
-rw-r--r--library/msgs/es_uy.msg6
-rw-r--r--library/msgs/es_ve.msg6
-rw-r--r--library/msgs/et.msg52
-rw-r--r--library/msgs/eu.msg47
-rw-r--r--library/msgs/eu_es.msg7
-rw-r--r--library/msgs/fa.msg47
-rw-r--r--library/msgs/fa_in.msg52
-rw-r--r--library/msgs/fa_ir.msg9
-rw-r--r--library/msgs/fi.msg50
-rw-r--r--library/msgs/fo.msg47
-rw-r--r--library/msgs/fo_fo.msg7
-rw-r--r--library/msgs/fr.msg52
-rw-r--r--library/msgs/fr_be.msg7
-rw-r--r--library/msgs/fr_ca.msg7
-rw-r--r--library/msgs/fr_ch.msg7
-rw-r--r--library/msgs/ga.msg47
-rw-r--r--library/msgs/ga_ie.msg7
-rw-r--r--library/msgs/gl.msg47
-rw-r--r--library/msgs/gl_es.msg6
-rw-r--r--library/msgs/gv.msg47
-rw-r--r--library/msgs/gv_gb.msg6
-rw-r--r--library/msgs/he.msg52
-rw-r--r--library/msgs/hi.msg39
-rw-r--r--library/msgs/hi_in.msg6
-rw-r--r--library/msgs/hr.msg50
-rw-r--r--library/msgs/hu.msg54
-rw-r--r--library/msgs/id.msg47
-rw-r--r--library/msgs/id_id.msg6
-rw-r--r--library/msgs/is.msg50
-rw-r--r--library/msgs/it.msg54
-rw-r--r--library/msgs/it_ch.msg6
-rw-r--r--library/msgs/ja.msg44
-rw-r--r--library/msgs/kl.msg47
-rw-r--r--library/msgs/kl_gl.msg7
-rw-r--r--library/msgs/ko.msg55
-rw-r--r--library/msgs/ko_kr.msg8
-rw-r--r--library/msgs/kok.msg39
-rw-r--r--library/msgs/kok_in.msg6
-rw-r--r--library/msgs/kw.msg47
-rw-r--r--library/msgs/kw_gb.msg6
-rw-r--r--library/msgs/lt.msg52
-rw-r--r--library/msgs/lv.msg52
-rw-r--r--library/msgs/mk.msg52
-rw-r--r--library/msgs/mr.msg39
-rw-r--r--library/msgs/mr_in.msg6
-rw-r--r--library/msgs/ms.msg47
-rw-r--r--library/msgs/ms_my.msg6
-rw-r--r--library/msgs/mt.msg27
-rw-r--r--library/msgs/nb.msg52
-rw-r--r--library/msgs/nl.msg50
-rw-r--r--library/msgs/nl_be.msg7
-rw-r--r--library/msgs/nn.msg52
-rw-r--r--library/msgs/pl.msg52
-rw-r--r--library/msgs/pt.msg50
-rw-r--r--library/msgs/pt_br.msg7
-rw-r--r--library/msgs/ro.msg52
-rw-r--r--library/msgs/ru.msg52
-rw-r--r--library/msgs/ru_ua.msg6
-rw-r--r--library/msgs/sh.msg52
-rw-r--r--library/msgs/sk.msg52
-rw-r--r--library/msgs/sl.msg52
-rw-r--r--library/msgs/sq.msg54
-rw-r--r--library/msgs/sr.msg52
-rw-r--r--library/msgs/sv.msg52
-rw-r--r--library/msgs/sw.msg49
-rw-r--r--library/msgs/ta.msg39
-rw-r--r--library/msgs/ta_in.msg6
-rw-r--r--library/msgs/te.msg47
-rw-r--r--library/msgs/te_in.msg8
-rw-r--r--library/msgs/th.msg54
-rw-r--r--library/msgs/tr.msg50
-rw-r--r--library/msgs/uk.msg52
-rw-r--r--library/msgs/vi.msg50
-rw-r--r--library/msgs/zh.msg55
-rw-r--r--library/msgs/zh_cn.msg7
-rw-r--r--library/msgs/zh_hk.msg28
-rw-r--r--library/msgs/zh_sg.msg8
-rw-r--r--library/msgs/zh_tw.msg8
-rw-r--r--library/opt/optparse.tcl476
-rw-r--r--library/opt/pkgIndex.tcl2
-rw-r--r--library/package.tcl407
-rw-r--r--library/parray.tcl9
-rw-r--r--library/platform/pkgIndex.tcl3
-rw-r--r--library/platform/platform.tcl387
-rw-r--r--library/platform/shell.tcl241
-rwxr-xr-xlibrary/reg/pkgIndex.tcl14
-rw-r--r--library/safe.tcl1687
-rw-r--r--library/tclIndex29
-rw-r--r--library/tcltest/pkgIndex.tcl4
-rw-r--r--library/tcltest/tcltest.tcl365
-rw-r--r--library/tm.tcl375
-rw-r--r--library/tzdata/Africa/Abidjan6
-rw-r--r--library/tzdata/Africa/Accra20
-rw-r--r--library/tzdata/Africa/Addis_Ababa7
-rw-r--r--library/tzdata/Africa/Algiers39
-rw-r--r--library/tzdata/Africa/Asmara8
-rw-r--r--library/tzdata/Africa/Asmera5
-rw-r--r--library/tzdata/Africa/Bamako8
-rw-r--r--library/tzdata/Africa/Bangui6
-rw-r--r--library/tzdata/Africa/Banjul8
-rw-r--r--library/tzdata/Africa/Bissau7
-rw-r--r--library/tzdata/Africa/Blantyre6
-rw-r--r--library/tzdata/Africa/Brazzaville6
-rw-r--r--library/tzdata/Africa/Bujumbura6
-rw-r--r--library/tzdata/Africa/Cairo128
-rw-r--r--library/tzdata/Africa/Casablanca168
-rw-r--r--library/tzdata/Africa/Ceuta258
-rw-r--r--library/tzdata/Africa/Conakry8
-rw-r--r--library/tzdata/Africa/Dakar7
-rw-r--r--library/tzdata/Africa/Dar_es_Salaam8
-rw-r--r--library/tzdata/Africa/Djibouti6
-rw-r--r--library/tzdata/Africa/Douala6
-rw-r--r--library/tzdata/Africa/El_Aaiun7
-rw-r--r--library/tzdata/Africa/Freetown36
-rw-r--r--library/tzdata/Africa/Gaborone9
-rw-r--r--library/tzdata/Africa/Harare6
-rw-r--r--library/tzdata/Africa/Johannesburg11
-rw-r--r--library/tzdata/Africa/Juba5
-rw-r--r--library/tzdata/Africa/Kampala9
-rw-r--r--library/tzdata/Africa/Khartoum39
-rw-r--r--library/tzdata/Africa/Kigali6
-rw-r--r--library/tzdata/Africa/Kinshasa6
-rw-r--r--library/tzdata/Africa/Lagos6
-rw-r--r--library/tzdata/Africa/Libreville6
-rw-r--r--library/tzdata/Africa/Lome6
-rw-r--r--library/tzdata/Africa/Luanda7
-rw-r--r--library/tzdata/Africa/Lubumbashi6
-rw-r--r--library/tzdata/Africa/Lusaka6
-rw-r--r--library/tzdata/Africa/Malabo7
-rw-r--r--library/tzdata/Africa/Maputo6
-rw-r--r--library/tzdata/Africa/Maseru8
-rw-r--r--library/tzdata/Africa/Mbabane6
-rw-r--r--library/tzdata/Africa/Mogadishu8
-rw-r--r--library/tzdata/Africa/Monrovia8
-rw-r--r--library/tzdata/Africa/Nairobi9
-rw-r--r--library/tzdata/Africa/Ndjamena8
-rw-r--r--library/tzdata/Africa/Niamey8
-rw-r--r--library/tzdata/Africa/Nouakchott8
-rw-r--r--library/tzdata/Africa/Ouagadougou6
-rw-r--r--library/tzdata/Africa/Porto-Novo7
-rw-r--r--library/tzdata/Africa/Sao_Tome7
-rw-r--r--library/tzdata/Africa/Timbuktu5
-rw-r--r--library/tzdata/Africa/Tripoli206
-rw-r--r--library/tzdata/Africa/Tunis39
-rw-r--r--library/tzdata/Africa/Windhoek222
-rw-r--r--library/tzdata/America/Adak276
-rw-r--r--library/tzdata/America/Anchorage276
-rw-r--r--library/tzdata/America/Anguilla5
-rw-r--r--library/tzdata/America/Antigua7
-rw-r--r--library/tzdata/America/Araguaina60
-rw-r--r--library/tzdata/America/Argentina/Buenos_Aires67
-rw-r--r--library/tzdata/America/Argentina/Catamarca68
-rw-r--r--library/tzdata/America/Argentina/ComodRivadavia5
-rw-r--r--library/tzdata/America/Argentina/Cordoba67
-rw-r--r--library/tzdata/America/Argentina/Jujuy67
-rw-r--r--library/tzdata/America/Argentina/La_Rioja69
-rw-r--r--library/tzdata/America/Argentina/Mendoza68
-rw-r--r--library/tzdata/America/Argentina/Rio_Gallegos68
-rw-r--r--library/tzdata/America/Argentina/Salta66
-rw-r--r--library/tzdata/America/Argentina/San_Juan69
-rw-r--r--library/tzdata/America/Argentina/San_Luis68
-rw-r--r--library/tzdata/America/Argentina/Tucuman69
-rw-r--r--library/tzdata/America/Argentina/Ushuaia68
-rw-r--r--library/tzdata/America/Aruba5
-rw-r--r--library/tzdata/America/Asuncion259
-rw-r--r--library/tzdata/America/Atikokan12
-rw-r--r--library/tzdata/America/Atka5
-rw-r--r--library/tzdata/America/Bahia68
-rw-r--r--library/tzdata/America/Bahia_Banderas222
-rw-r--r--library/tzdata/America/Barbados15
-rw-r--r--library/tzdata/America/Belem35
-rw-r--r--library/tzdata/America/Belize60
-rw-r--r--library/tzdata/America/Blanc-Sablon12
-rw-r--r--library/tzdata/America/Boa_Vista40
-rw-r--r--library/tzdata/America/Bogota9
-rw-r--r--library/tzdata/America/Boise281
-rw-r--r--library/tzdata/America/Buenos_Aires5
-rw-r--r--library/tzdata/America/Cambridge_Bay252
-rw-r--r--library/tzdata/America/Campo_Grande257
-rw-r--r--library/tzdata/America/Cancun216
-rw-r--r--library/tzdata/America/Caracas9
-rw-r--r--library/tzdata/America/Catamarca5
-rw-r--r--library/tzdata/America/Cayenne7
-rw-r--r--library/tzdata/America/Cayman7
-rw-r--r--library/tzdata/America/Chicago369
-rw-r--r--library/tzdata/America/Chihuahua221
-rw-r--r--library/tzdata/America/Coral_Harbour5
-rw-r--r--library/tzdata/America/Cordoba5
-rw-r--r--library/tzdata/America/Costa_Rica15
-rw-r--r--library/tzdata/America/Creston8
-rw-r--r--library/tzdata/America/Cuiaba257
-rw-r--r--library/tzdata/America/Curacao7
-rw-r--r--library/tzdata/America/Danmarkshavn39
-rw-r--r--library/tzdata/America/Dawson256
-rw-r--r--library/tzdata/America/Dawson_Creek64
-rw-r--r--library/tzdata/America/Denver291
-rw-r--r--library/tzdata/America/Detroit272
-rw-r--r--library/tzdata/America/Dominica5
-rw-r--r--library/tzdata/America/Edmonton284
-rw-r--r--library/tzdata/America/Eirunepe40
-rw-r--r--library/tzdata/America/El_Salvador10
-rw-r--r--library/tzdata/America/Ensenada5
-rw-r--r--library/tzdata/America/Fort_Wayne5
-rw-r--r--library/tzdata/America/Fortaleza48
-rw-r--r--library/tzdata/America/Glace_Bay273
-rw-r--r--library/tzdata/America/Godthab246
-rw-r--r--library/tzdata/America/Goose_Bay338
-rw-r--r--library/tzdata/America/Grand_Turk249
-rw-r--r--library/tzdata/America/Grenada5
-rw-r--r--library/tzdata/America/Guadeloupe5
-rw-r--r--library/tzdata/America/Guatemala14
-rw-r--r--library/tzdata/America/Guayaquil7
-rw-r--r--library/tzdata/America/Guyana9
-rw-r--r--library/tzdata/America/Halifax361
-rw-r--r--library/tzdata/America/Havana285
-rw-r--r--library/tzdata/America/Hermosillo21
-rw-r--r--library/tzdata/America/Indiana/Indianapolis234
-rw-r--r--library/tzdata/America/Indiana/Knox285
-rw-r--r--library/tzdata/America/Indiana/Marengo236
-rw-r--r--library/tzdata/America/Indiana/Petersburg247
-rw-r--r--library/tzdata/America/Indiana/Tell_City234
-rw-r--r--library/tzdata/America/Indiana/Vevay213
-rw-r--r--library/tzdata/America/Indiana/Vincennes234
-rw-r--r--library/tzdata/America/Indiana/Winamac240
-rw-r--r--library/tzdata/America/Indianapolis5
-rw-r--r--library/tzdata/America/Inuvik249
-rw-r--r--library/tzdata/America/Iqaluit250
-rw-r--r--library/tzdata/America/Jamaica28
-rw-r--r--library/tzdata/America/Jujuy5
-rw-r--r--library/tzdata/America/Juneau276
-rw-r--r--library/tzdata/America/Kentucky/Louisville314
-rw-r--r--library/tzdata/America/Kentucky/Monticello279
-rw-r--r--library/tzdata/America/Knox_IN5
-rw-r--r--library/tzdata/America/Kralendijk5
-rw-r--r--library/tzdata/America/La_Paz8
-rw-r--r--library/tzdata/America/Lima16
-rw-r--r--library/tzdata/America/Los_Angeles317
-rw-r--r--library/tzdata/America/Louisville5
-rw-r--r--library/tzdata/America/Lower_Princes5
-rw-r--r--library/tzdata/America/Maceio52
-rw-r--r--library/tzdata/America/Managua21
-rw-r--r--library/tzdata/America/Manaus39
-rw-r--r--library/tzdata/America/Marigot5
-rw-r--r--library/tzdata/America/Martinique9
-rw-r--r--library/tzdata/America/Matamoros219
-rw-r--r--library/tzdata/America/Mazatlan222
-rw-r--r--library/tzdata/America/Mendoza5
-rw-r--r--library/tzdata/America/Menominee274
-rw-r--r--library/tzdata/America/Merida216
-rw-r--r--library/tzdata/America/Metlakatla43
-rw-r--r--library/tzdata/America/Mexico_City228
-rw-r--r--library/tzdata/America/Miquelon234
-rw-r--r--library/tzdata/America/Moncton342
-rw-r--r--library/tzdata/America/Monterrey218
-rw-r--r--library/tzdata/America/Montevideo261
-rw-r--r--library/tzdata/America/Montreal366
-rw-r--r--library/tzdata/America/Montserrat5
-rw-r--r--library/tzdata/America/Nassau279
-rw-r--r--library/tzdata/America/New_York369
-rw-r--r--library/tzdata/America/Nipigon264
-rw-r--r--library/tzdata/America/Nome276
-rw-r--r--library/tzdata/America/Noronha48
-rw-r--r--library/tzdata/America/North_Dakota/Beulah279
-rw-r--r--library/tzdata/America/North_Dakota/Center279
-rw-r--r--library/tzdata/America/North_Dakota/New_Salem279
-rw-r--r--library/tzdata/America/Ojinaga222
-rw-r--r--library/tzdata/America/Panama7
-rw-r--r--library/tzdata/America/Pangnirtung252
-rw-r--r--library/tzdata/America/Paramaribo10
-rw-r--r--library/tzdata/America/Phoenix17
-rw-r--r--library/tzdata/America/Port-au-Prince217
-rw-r--r--library/tzdata/America/Port_of_Spain6
-rw-r--r--library/tzdata/America/Porto_Acre5
-rw-r--r--library/tzdata/America/Porto_Velho35
-rw-r--r--library/tzdata/America/Puerto_Rico10
-rw-r--r--library/tzdata/America/Rainy_River264
-rw-r--r--library/tzdata/America/Rankin_Inlet248
-rw-r--r--library/tzdata/America/Recife48
-rw-r--r--library/tzdata/America/Regina58
-rw-r--r--library/tzdata/America/Resolute248
-rw-r--r--library/tzdata/America/Rio_Branco36
-rw-r--r--library/tzdata/America/Rosario5
-rw-r--r--library/tzdata/America/Santa_Isabel284
-rw-r--r--library/tzdata/America/Santarem36
-rw-r--r--library/tzdata/America/Santiago291
-rw-r--r--library/tzdata/America/Santo_Domingo21
-rw-r--r--library/tzdata/America/Sao_Paulo258
-rw-r--r--library/tzdata/America/Scoresbysund246
-rw-r--r--library/tzdata/America/Shiprock5
-rw-r--r--library/tzdata/America/Sitka275
-rw-r--r--library/tzdata/America/St_Barthelemy5
-rw-r--r--library/tzdata/America/St_Johns372
-rw-r--r--library/tzdata/America/St_Kitts5
-rw-r--r--library/tzdata/America/St_Lucia5
-rw-r--r--library/tzdata/America/St_Thomas5
-rw-r--r--library/tzdata/America/St_Vincent5
-rw-r--r--library/tzdata/America/Swift_Current29
-rw-r--r--library/tzdata/America/Tegucigalpa12
-rw-r--r--library/tzdata/America/Thule224
-rw-r--r--library/tzdata/America/Thunder_Bay272
-rw-r--r--library/tzdata/America/Tijuana285
-rw-r--r--library/tzdata/America/Toronto365
-rw-r--r--library/tzdata/America/Tortola5
-rw-r--r--library/tzdata/America/Vancouver320
-rw-r--r--library/tzdata/America/Virgin5
-rw-r--r--library/tzdata/America/Whitehorse256
-rw-r--r--library/tzdata/America/Winnipeg316
-rw-r--r--library/tzdata/America/Yakutat276
-rw-r--r--library/tzdata/America/Yellowknife252
-rw-r--r--library/tzdata/Antarctica/Casey10
-rw-r--r--library/tzdata/Antarctica/Davis12
-rw-r--r--library/tzdata/Antarctica/DumontDUrville8
-rw-r--r--library/tzdata/Antarctica/Macquarie97
-rw-r--r--library/tzdata/Antarctica/Mawson7
-rw-r--r--library/tzdata/Antarctica/McMurdo5
-rw-r--r--library/tzdata/Antarctica/Palmer254
-rw-r--r--library/tzdata/Antarctica/Rothera6
-rw-r--r--library/tzdata/Antarctica/South_Pole5
-rw-r--r--library/tzdata/Antarctica/Syowa6
-rw-r--r--library/tzdata/Antarctica/Vostok6
-rw-r--r--library/tzdata/Arctic/Longyearbyen5
-rw-r--r--library/tzdata/Asia/Aden6
-rw-r--r--library/tzdata/Asia/Almaty56
-rw-r--r--library/tzdata/Asia/Amman74
-rw-r--r--library/tzdata/Asia/Anadyr72
-rw-r--r--library/tzdata/Asia/Aqtau58
-rw-r--r--library/tzdata/Asia/Aqtobe57
-rw-r--r--library/tzdata/Asia/Ashgabat31
-rw-r--r--library/tzdata/Asia/Ashkhabad5
-rw-r--r--library/tzdata/Asia/Baghdad59
-rw-r--r--library/tzdata/Asia/Bahrain7
-rw-r--r--library/tzdata/Asia/Baku242
-rw-r--r--library/tzdata/Asia/Bangkok7
-rw-r--r--library/tzdata/Asia/Beirut270
-rw-r--r--library/tzdata/Asia/Bishkek57
-rw-r--r--library/tzdata/Asia/Brunei7
-rw-r--r--library/tzdata/Asia/Calcutta5
-rw-r--r--library/tzdata/Asia/Choibalsan51
-rw-r--r--library/tzdata/Asia/Chongqing19
-rw-r--r--library/tzdata/Asia/Chungking5
-rw-r--r--library/tzdata/Asia/Colombo13
-rw-r--r--library/tzdata/Asia/Dacca5
-rw-r--r--library/tzdata/Asia/Damascus280
-rw-r--r--library/tzdata/Asia/Dhaka14
-rw-r--r--library/tzdata/Asia/Dili10
-rw-r--r--library/tzdata/Asia/Dubai6
-rw-r--r--library/tzdata/Asia/Dushanbe29
-rw-r--r--library/tzdata/Asia/Gaza278
-rw-r--r--library/tzdata/Asia/Harbin22
-rw-r--r--library/tzdata/Asia/Hebron277
-rw-r--r--library/tzdata/Asia/Ho_Chi_Minh9
-rw-r--r--library/tzdata/Asia/Hong_Kong75
-rw-r--r--library/tzdata/Asia/Hovd51
-rw-r--r--library/tzdata/Asia/Irkutsk71
-rw-r--r--library/tzdata/Asia/Istanbul5
-rw-r--r--library/tzdata/Asia/Jakarta13
-rw-r--r--library/tzdata/Asia/Jayapura8
-rw-r--r--library/tzdata/Asia/Jerusalem272
-rw-r--r--library/tzdata/Asia/Kabul7
-rw-r--r--library/tzdata/Asia/Kamchatka71
-rw-r--r--library/tzdata/Asia/Karachi16
-rw-r--r--library/tzdata/Asia/Kashgar20
-rw-r--r--library/tzdata/Asia/Kathmandu7
-rw-r--r--library/tzdata/Asia/Katmandu5
-rw-r--r--library/tzdata/Asia/Khandyga72
-rw-r--r--library/tzdata/Asia/Kolkata10
-rw-r--r--library/tzdata/Asia/Krasnoyarsk70
-rw-r--r--library/tzdata/Asia/Kuala_Lumpur13
-rw-r--r--library/tzdata/Asia/Kuching24
-rw-r--r--library/tzdata/Asia/Kuwait6
-rw-r--r--library/tzdata/Asia/Macao5
-rw-r--r--library/tzdata/Asia/Macau46
-rw-r--r--library/tzdata/Asia/Magadan70
-rw-r--r--library/tzdata/Asia/Makassar9
-rw-r--r--library/tzdata/Asia/Manila15
-rw-r--r--library/tzdata/Asia/Muscat6
-rw-r--r--library/tzdata/Asia/Nicosia257
-rw-r--r--library/tzdata/Asia/Novokuznetsk71
-rw-r--r--library/tzdata/Asia/Novosibirsk71
-rw-r--r--library/tzdata/Asia/Omsk70
-rw-r--r--library/tzdata/Asia/Oral58
-rw-r--r--library/tzdata/Asia/Phnom_Penh9
-rw-r--r--library/tzdata/Asia/Pontianak13
-rw-r--r--library/tzdata/Asia/Pyongyang11
-rw-r--r--library/tzdata/Asia/Qatar7
-rw-r--r--library/tzdata/Asia/Qyzylorda58
-rw-r--r--library/tzdata/Asia/Rangoon9
-rw-r--r--library/tzdata/Asia/Riyadh6
-rw-r--r--library/tzdata/Asia/Saigon5
-rw-r--r--library/tzdata/Asia/Sakhalin72
-rw-r--r--library/tzdata/Asia/Samarkand32
-rw-r--r--library/tzdata/Asia/Seoul18
-rw-r--r--library/tzdata/Asia/Shanghai23
-rw-r--r--library/tzdata/Asia/Singapore14
-rw-r--r--library/tzdata/Asia/Taipei46
-rw-r--r--library/tzdata/Asia/Tashkent32
-rw-r--r--library/tzdata/Asia/Tbilisi60
-rw-r--r--library/tzdata/Asia/Tehran105
-rw-r--r--library/tzdata/Asia/Tel_Aviv5
-rw-r--r--library/tzdata/Asia/Thimbu5
-rw-r--r--library/tzdata/Asia/Thimphu7
-rw-r--r--library/tzdata/Asia/Tokyo16
-rw-r--r--library/tzdata/Asia/Ujung_Pandang5
-rw-r--r--library/tzdata/Asia/Ulaanbaatar51
-rw-r--r--library/tzdata/Asia/Ulan_Bator5
-rw-r--r--library/tzdata/Asia/Urumqi19
-rw-r--r--library/tzdata/Asia/Ust-Nera70
-rw-r--r--library/tzdata/Asia/Vientiane9
-rw-r--r--library/tzdata/Asia/Vladivostok70
-rw-r--r--library/tzdata/Asia/Yakutsk70
-rw-r--r--library/tzdata/Asia/Yekaterinburg70
-rw-r--r--library/tzdata/Asia/Yerevan70
-rw-r--r--library/tzdata/Atlantic/Azores349
-rw-r--r--library/tzdata/Atlantic/Bermuda259
-rw-r--r--library/tzdata/Atlantic/Canary248
-rw-r--r--library/tzdata/Atlantic/Cape_Verde9
-rw-r--r--library/tzdata/Atlantic/Faeroe5
-rw-r--r--library/tzdata/Atlantic/Faroe245
-rw-r--r--library/tzdata/Atlantic/Jan_Mayen5
-rw-r--r--library/tzdata/Atlantic/Madeira350
-rw-r--r--library/tzdata/Atlantic/Reykjavik70
-rw-r--r--library/tzdata/Atlantic/South_Georgia6
-rw-r--r--library/tzdata/Atlantic/St_Helena7
-rw-r--r--library/tzdata/Atlantic/Stanley75
-rw-r--r--library/tzdata/Australia/ACT5
-rw-r--r--library/tzdata/Australia/Adelaide273
-rw-r--r--library/tzdata/Australia/Brisbane23
-rw-r--r--library/tzdata/Australia/Broken_Hill275
-rw-r--r--library/tzdata/Australia/Canberra5
-rw-r--r--library/tzdata/Australia/Currie273
-rw-r--r--library/tzdata/Australia/Darwin15
-rw-r--r--library/tzdata/Australia/Eucla25
-rw-r--r--library/tzdata/Australia/Hobart281
-rw-r--r--library/tzdata/Australia/LHI5
-rw-r--r--library/tzdata/Australia/Lindeman28
-rw-r--r--library/tzdata/Australia/Lord_Howe244
-rw-r--r--library/tzdata/Australia/Melbourne272
-rw-r--r--library/tzdata/Australia/NSW5
-rw-r--r--library/tzdata/Australia/North5
-rw-r--r--library/tzdata/Australia/Perth25
-rw-r--r--library/tzdata/Australia/Queensland5
-rw-r--r--library/tzdata/Australia/South5
-rw-r--r--library/tzdata/Australia/Sydney272
-rw-r--r--library/tzdata/Australia/Tasmania5
-rw-r--r--library/tzdata/Australia/Victoria5
-rw-r--r--library/tzdata/Australia/West5
-rw-r--r--library/tzdata/Australia/Yancowinna5
-rw-r--r--library/tzdata/Brazil/Acre5
-rw-r--r--library/tzdata/Brazil/DeNoronha5
-rw-r--r--library/tzdata/Brazil/East5
-rw-r--r--library/tzdata/Brazil/West5
-rw-r--r--library/tzdata/CET265
-rw-r--r--library/tzdata/CST6CDT278
-rw-r--r--library/tzdata/Canada/Atlantic5
-rw-r--r--library/tzdata/Canada/Central5
-rw-r--r--library/tzdata/Canada/East-Saskatchewan5
-rw-r--r--library/tzdata/Canada/Eastern5
-rw-r--r--library/tzdata/Canada/Mountain5
-rw-r--r--library/tzdata/Canada/Newfoundland5
-rw-r--r--library/tzdata/Canada/Pacific5
-rw-r--r--library/tzdata/Canada/Saskatchewan5
-rw-r--r--library/tzdata/Canada/Yukon5
-rw-r--r--library/tzdata/Chile/Continental5
-rw-r--r--library/tzdata/Chile/EasterIsland5
-rw-r--r--library/tzdata/Cuba5
-rw-r--r--library/tzdata/EET251
-rw-r--r--library/tzdata/EST5
-rw-r--r--library/tzdata/EST5EDT278
-rw-r--r--library/tzdata/Egypt5
-rw-r--r--library/tzdata/Eire5
-rw-r--r--library/tzdata/Etc/GMT5
-rw-r--r--library/tzdata/Etc/GMT+05
-rw-r--r--library/tzdata/Etc/GMT+15
-rw-r--r--library/tzdata/Etc/GMT+105
-rw-r--r--library/tzdata/Etc/GMT+115
-rw-r--r--library/tzdata/Etc/GMT+125
-rw-r--r--library/tzdata/Etc/GMT+25
-rw-r--r--library/tzdata/Etc/GMT+35
-rw-r--r--library/tzdata/Etc/GMT+45
-rw-r--r--library/tzdata/Etc/GMT+55
-rw-r--r--library/tzdata/Etc/GMT+65
-rw-r--r--library/tzdata/Etc/GMT+75
-rw-r--r--library/tzdata/Etc/GMT+85
-rw-r--r--library/tzdata/Etc/GMT+95
-rw-r--r--library/tzdata/Etc/GMT-05
-rw-r--r--library/tzdata/Etc/GMT-15
-rw-r--r--library/tzdata/Etc/GMT-105
-rw-r--r--library/tzdata/Etc/GMT-115
-rw-r--r--library/tzdata/Etc/GMT-125
-rw-r--r--library/tzdata/Etc/GMT-135
-rw-r--r--library/tzdata/Etc/GMT-145
-rw-r--r--library/tzdata/Etc/GMT-25
-rw-r--r--library/tzdata/Etc/GMT-35
-rw-r--r--library/tzdata/Etc/GMT-45
-rw-r--r--library/tzdata/Etc/GMT-55
-rw-r--r--library/tzdata/Etc/GMT-65
-rw-r--r--library/tzdata/Etc/GMT-75
-rw-r--r--library/tzdata/Etc/GMT-85
-rw-r--r--library/tzdata/Etc/GMT-95
-rw-r--r--library/tzdata/Etc/GMT05
-rw-r--r--library/tzdata/Etc/Greenwich5
-rw-r--r--library/tzdata/Etc/UCT5
-rw-r--r--library/tzdata/Etc/UTC5
-rw-r--r--library/tzdata/Etc/Universal5
-rw-r--r--library/tzdata/Etc/Zulu5
-rw-r--r--library/tzdata/Europe/Amsterdam310
-rw-r--r--library/tzdata/Europe/Andorra237
-rw-r--r--library/tzdata/Europe/Athens268
-rw-r--r--library/tzdata/Europe/Belfast5
-rw-r--r--library/tzdata/Europe/Belgrade250
-rw-r--r--library/tzdata/Europe/Berlin274
-rw-r--r--library/tzdata/Europe/Bratislava5
-rw-r--r--library/tzdata/Europe/Brussels316
-rw-r--r--library/tzdata/Europe/Bucharest268
-rw-r--r--library/tzdata/Europe/Budapest284
-rw-r--r--library/tzdata/Europe/Busingen5
-rw-r--r--library/tzdata/Europe/Chisinau272
-rw-r--r--library/tzdata/Europe/Copenhagen264
-rw-r--r--library/tzdata/Europe/Dublin359
-rw-r--r--library/tzdata/Europe/Gibraltar328
-rw-r--r--library/tzdata/Europe/Guernsey5
-rw-r--r--library/tzdata/Europe/Helsinki248
-rw-r--r--library/tzdata/Europe/Isle_of_Man5
-rw-r--r--library/tzdata/Europe/Istanbul304
-rw-r--r--library/tzdata/Europe/Jersey5
-rw-r--r--library/tzdata/Europe/Kaliningrad84
-rw-r--r--library/tzdata/Europe/Kiev251
-rw-r--r--library/tzdata/Europe/Lisbon351
-rw-r--r--library/tzdata/Europe/Ljubljana5
-rw-r--r--library/tzdata/Europe/London372
-rw-r--r--library/tzdata/Europe/Luxembourg313
-rw-r--r--library/tzdata/Europe/Madrid294
-rw-r--r--library/tzdata/Europe/Malta299
-rw-r--r--library/tzdata/Europe/Mariehamn5
-rw-r--r--library/tzdata/Europe/Minsk74
-rw-r--r--library/tzdata/Europe/Monaco315
-rw-r--r--library/tzdata/Europe/Moscow83
-rw-r--r--library/tzdata/Europe/Nicosia5
-rw-r--r--library/tzdata/Europe/Oslo271
-rw-r--r--library/tzdata/Europe/Paris314
-rw-r--r--library/tzdata/Europe/Podgorica5
-rw-r--r--library/tzdata/Europe/Prague272
-rw-r--r--library/tzdata/Europe/Riga258
-rw-r--r--library/tzdata/Europe/Rome301
-rw-r--r--library/tzdata/Europe/Samara73
-rw-r--r--library/tzdata/Europe/San_Marino5
-rw-r--r--library/tzdata/Europe/Sarajevo5
-rw-r--r--library/tzdata/Europe/Simferopol253
-rw-r--r--library/tzdata/Europe/Skopje5
-rw-r--r--library/tzdata/Europe/Sofia259
-rw-r--r--library/tzdata/Europe/Stockholm250
-rw-r--r--library/tzdata/Europe/Tallinn255
-rw-r--r--library/tzdata/Europe/Tirane263
-rw-r--r--library/tzdata/Europe/Tiraspol5
-rw-r--r--library/tzdata/Europe/Uzhgorod254
-rw-r--r--library/tzdata/Europe/Vaduz5
-rw-r--r--library/tzdata/Europe/Vatican5
-rw-r--r--library/tzdata/Europe/Vienna271
-rw-r--r--library/tzdata/Europe/Vilnius251
-rw-r--r--library/tzdata/Europe/Volgograd70
-rw-r--r--library/tzdata/Europe/Warsaw296
-rw-r--r--library/tzdata/Europe/Zagreb5
-rw-r--r--library/tzdata/Europe/Zaporozhye252
-rw-r--r--library/tzdata/Europe/Zurich250
-rw-r--r--library/tzdata/GB5
-rw-r--r--library/tzdata/GB-Eire5
-rw-r--r--library/tzdata/GMT5
-rw-r--r--library/tzdata/GMT+05
-rw-r--r--library/tzdata/GMT-05
-rw-r--r--library/tzdata/GMT05
-rw-r--r--library/tzdata/Greenwich5
-rw-r--r--library/tzdata/HST5
-rw-r--r--library/tzdata/Hongkong5
-rw-r--r--library/tzdata/Iceland5
-rw-r--r--library/tzdata/Indian/Antananarivo8
-rw-r--r--library/tzdata/Indian/Chagos7
-rw-r--r--library/tzdata/Indian/Christmas6
-rw-r--r--library/tzdata/Indian/Cocos6
-rw-r--r--library/tzdata/Indian/Comoro6
-rw-r--r--library/tzdata/Indian/Kerguelen6
-rw-r--r--library/tzdata/Indian/Mahe6
-rw-r--r--library/tzdata/Indian/Maldives7
-rw-r--r--library/tzdata/Indian/Mauritius10
-rw-r--r--library/tzdata/Indian/Mayotte6
-rw-r--r--library/tzdata/Indian/Reunion6
-rw-r--r--library/tzdata/Iran5
-rw-r--r--library/tzdata/Israel5
-rw-r--r--library/tzdata/Jamaica5
-rw-r--r--library/tzdata/Japan5
-rw-r--r--library/tzdata/Kwajalein5
-rw-r--r--library/tzdata/Libya5
-rw-r--r--library/tzdata/MET265
-rw-r--r--library/tzdata/MST5
-rw-r--r--library/tzdata/MST7MDT278
-rw-r--r--library/tzdata/Mexico/BajaNorte5
-rw-r--r--library/tzdata/Mexico/BajaSur5
-rw-r--r--library/tzdata/Mexico/General5
-rw-r--r--library/tzdata/NZ5
-rw-r--r--library/tzdata/NZ-CHAT5
-rw-r--r--library/tzdata/Navajo5
-rw-r--r--library/tzdata/PRC5
-rw-r--r--library/tzdata/PST8PDT278
-rw-r--r--library/tzdata/Pacific/Apia188
-rw-r--r--library/tzdata/Pacific/Auckland285
-rw-r--r--library/tzdata/Pacific/Chatham257
-rw-r--r--library/tzdata/Pacific/Chuuk6
-rw-r--r--library/tzdata/Pacific/Easter275
-rw-r--r--library/tzdata/Pacific/Efate26
-rw-r--r--library/tzdata/Pacific/Enderbury8
-rw-r--r--library/tzdata/Pacific/Fakaofo7
-rw-r--r--library/tzdata/Pacific/Fiji191
-rw-r--r--library/tzdata/Pacific/Funafuti6
-rw-r--r--library/tzdata/Pacific/Galapagos7
-rw-r--r--library/tzdata/Pacific/Gambier6
-rw-r--r--library/tzdata/Pacific/Guadalcanal6
-rw-r--r--library/tzdata/Pacific/Guam8
-rw-r--r--library/tzdata/Pacific/Honolulu11
-rw-r--r--library/tzdata/Pacific/Johnston5
-rw-r--r--library/tzdata/Pacific/Kiritimati8
-rw-r--r--library/tzdata/Pacific/Kosrae8
-rw-r--r--library/tzdata/Pacific/Kwajalein8
-rw-r--r--library/tzdata/Pacific/Majuro7
-rw-r--r--library/tzdata/Pacific/Marquesas6
-rw-r--r--library/tzdata/Pacific/Midway10
-rw-r--r--library/tzdata/Pacific/Nauru9
-rw-r--r--library/tzdata/Pacific/Niue8
-rw-r--r--library/tzdata/Pacific/Norfolk7
-rw-r--r--library/tzdata/Pacific/Noumea12
-rw-r--r--library/tzdata/Pacific/Pago_Pago10
-rw-r--r--library/tzdata/Pacific/Palau6
-rw-r--r--library/tzdata/Pacific/Pitcairn7
-rw-r--r--library/tzdata/Pacific/Pohnpei6
-rw-r--r--library/tzdata/Pacific/Ponape5
-rw-r--r--library/tzdata/Pacific/Port_Moresby7
-rw-r--r--library/tzdata/Pacific/Rarotonga32
-rw-r--r--library/tzdata/Pacific/Saipan9
-rw-r--r--library/tzdata/Pacific/Samoa5
-rw-r--r--library/tzdata/Pacific/Tahiti6
-rw-r--r--library/tzdata/Pacific/Tarawa6
-rw-r--r--library/tzdata/Pacific/Tongatapu14
-rw-r--r--library/tzdata/Pacific/Truk5
-rw-r--r--library/tzdata/Pacific/Wake6
-rw-r--r--library/tzdata/Pacific/Wallis6
-rw-r--r--library/tzdata/Pacific/Yap5
-rw-r--r--library/tzdata/Poland5
-rw-r--r--library/tzdata/Portugal5
-rw-r--r--library/tzdata/ROC5
-rw-r--r--library/tzdata/ROK5
-rw-r--r--library/tzdata/Singapore5
-rw-r--r--library/tzdata/SystemV/AST45
-rw-r--r--library/tzdata/SystemV/AST4ADT5
-rw-r--r--library/tzdata/SystemV/CST65
-rw-r--r--library/tzdata/SystemV/CST6CDT5
-rw-r--r--library/tzdata/SystemV/EST55
-rw-r--r--library/tzdata/SystemV/EST5EDT5
-rw-r--r--library/tzdata/SystemV/HST105
-rw-r--r--library/tzdata/SystemV/MST75
-rw-r--r--library/tzdata/SystemV/MST7MDT5
-rw-r--r--library/tzdata/SystemV/PST85
-rw-r--r--library/tzdata/SystemV/PST8PDT5
-rw-r--r--library/tzdata/SystemV/YST95
-rw-r--r--library/tzdata/SystemV/YST9YDT5
-rw-r--r--library/tzdata/Turkey5
-rw-r--r--library/tzdata/UCT5
-rw-r--r--library/tzdata/US/Alaska5
-rw-r--r--library/tzdata/US/Aleutian5
-rw-r--r--library/tzdata/US/Arizona5
-rw-r--r--library/tzdata/US/Central5
-rw-r--r--library/tzdata/US/East-Indiana5
-rw-r--r--library/tzdata/US/Eastern5
-rw-r--r--library/tzdata/US/Hawaii5
-rw-r--r--library/tzdata/US/Indiana-Starke5
-rw-r--r--library/tzdata/US/Michigan5
-rw-r--r--library/tzdata/US/Mountain5
-rw-r--r--library/tzdata/US/Pacific5
-rw-r--r--library/tzdata/US/Pacific-New5
-rw-r--r--library/tzdata/US/Samoa5
-rw-r--r--library/tzdata/UTC5
-rw-r--r--library/tzdata/Universal5
-rw-r--r--library/tzdata/W-SU5
-rw-r--r--library/tzdata/WET251
-rw-r--r--library/tzdata/Zulu5
-rw-r--r--library/word.tcl146
-rw-r--r--libtommath/LICENSE4
-rw-r--r--libtommath/bn.ilg6
-rw-r--r--libtommath/bn.ind82
-rw-r--r--libtommath/bn.pdfbin0 -> 340921 bytes-rw-r--r--libtommath/bn.tex1835
-rw-r--r--libtommath/bn_error.c43
-rw-r--r--libtommath/bn_fast_mp_invmod.c144
-rw-r--r--libtommath/bn_fast_mp_montgomery_reduce.c168
-rw-r--r--libtommath/bn_fast_s_mp_mul_digs.c103
-rw-r--r--libtommath/bn_fast_s_mp_mul_high_digs.c94
-rw-r--r--libtommath/bn_fast_s_mp_sqr.c110
-rw-r--r--libtommath/bn_mp_2expt.c44
-rw-r--r--libtommath/bn_mp_abs.c39
-rw-r--r--libtommath/bn_mp_add.c49
-rw-r--r--libtommath/bn_mp_add_d.c109
-rw-r--r--libtommath/bn_mp_addmod.c37
-rw-r--r--libtommath/bn_mp_and.c53
-rw-r--r--libtommath/bn_mp_clamp.c40
-rw-r--r--libtommath/bn_mp_clear.c40
-rw-r--r--libtommath/bn_mp_clear_multi.c30
-rw-r--r--libtommath/bn_mp_cmp.c39
-rw-r--r--libtommath/bn_mp_cmp_d.c40
-rw-r--r--libtommath/bn_mp_cmp_mag.c51
-rw-r--r--libtommath/bn_mp_cnt_lsb.c49
-rw-r--r--libtommath/bn_mp_copy.c64
-rw-r--r--libtommath/bn_mp_count_bits.c41
-rw-r--r--libtommath/bn_mp_div.c288
-rw-r--r--libtommath/bn_mp_div_2.c64
-rw-r--r--libtommath/bn_mp_div_2d.c93
-rw-r--r--libtommath/bn_mp_div_3.c75
-rw-r--r--libtommath/bn_mp_div_d.c110
-rw-r--r--libtommath/bn_mp_dr_is_modulus.c39
-rw-r--r--libtommath/bn_mp_dr_reduce.c90
-rw-r--r--libtommath/bn_mp_dr_setup.c28
-rw-r--r--libtommath/bn_mp_exch.c30
-rw-r--r--libtommath/bn_mp_expt_d.c53
-rw-r--r--libtommath/bn_mp_exptmod.c108
-rw-r--r--libtommath/bn_mp_exptmod_fast.c316
-rw-r--r--libtommath/bn_mp_exteuclid.c78
-rw-r--r--libtommath/bn_mp_fread.c63
-rw-r--r--libtommath/bn_mp_fwrite.c48
-rw-r--r--libtommath/bn_mp_gcd.c101
-rw-r--r--libtommath/bn_mp_get_int.c41
-rw-r--r--libtommath/bn_mp_grow.c53
-rw-r--r--libtommath/bn_mp_init.c42
-rw-r--r--libtommath/bn_mp_init_copy.c28
-rw-r--r--libtommath/bn_mp_init_multi.c55
-rw-r--r--libtommath/bn_mp_init_set.c28
-rw-r--r--libtommath/bn_mp_init_set_int.c27
-rw-r--r--libtommath/bn_mp_init_size.c44
-rw-r--r--libtommath/bn_mp_invmod.c39
-rw-r--r--libtommath/bn_mp_invmod_slow.c171
-rw-r--r--libtommath/bn_mp_is_square.c105
-rw-r--r--libtommath/bn_mp_jacobi.c101
-rw-r--r--libtommath/bn_mp_karatsuba_mul.c163
-rw-r--r--libtommath/bn_mp_karatsuba_sqr.c117
-rw-r--r--libtommath/bn_mp_lcm.c56
-rw-r--r--libtommath/bn_mp_lshd.c63
-rw-r--r--libtommath/bn_mp_mod.c44
-rw-r--r--libtommath/bn_mp_mod_2d.c51
-rw-r--r--libtommath/bn_mp_mod_d.c23
-rw-r--r--libtommath/bn_mp_montgomery_calc_normalization.c55
-rw-r--r--libtommath/bn_mp_montgomery_reduce.c114
-rw-r--r--libtommath/bn_mp_montgomery_setup.c55
-rw-r--r--libtommath/bn_mp_mul.c62
-rw-r--r--libtommath/bn_mp_mul_2.c78
-rw-r--r--libtommath/bn_mp_mul_2d.c81
-rw-r--r--libtommath/bn_mp_mul_d.c75
-rw-r--r--libtommath/bn_mp_mulmod.c36
-rw-r--r--libtommath/bn_mp_n_root.c128
-rw-r--r--libtommath/bn_mp_neg.c36
-rw-r--r--libtommath/bn_mp_or.c46
-rw-r--r--libtommath/bn_mp_prime_fermat.c58
-rw-r--r--libtommath/bn_mp_prime_is_divisible.c46
-rw-r--r--libtommath/bn_mp_prime_is_prime.c79
-rw-r--r--libtommath/bn_mp_prime_miller_rabin.c99
-rw-r--r--libtommath/bn_mp_prime_next_prime.c166
-rw-r--r--libtommath/bn_mp_prime_rabin_miller_trials.c48
-rw-r--r--libtommath/bn_mp_prime_random_ex.c121
-rw-r--r--libtommath/bn_mp_radix_size.c83
-rw-r--r--libtommath/bn_mp_radix_smap.c20
-rw-r--r--libtommath/bn_mp_rand.c51
-rw-r--r--libtommath/bn_mp_read_radix.c88
-rw-r--r--libtommath/bn_mp_read_signed_bin.c37
-rw-r--r--libtommath/bn_mp_read_unsigned_bin.c51
-rw-r--r--libtommath/bn_mp_reduce.c96
-rw-r--r--libtommath/bn_mp_reduce_2k.c57
-rw-r--r--libtommath/bn_mp_reduce_2k_l.c58
-rw-r--r--libtommath/bn_mp_reduce_2k_setup.c43
-rw-r--r--libtommath/bn_mp_reduce_2k_setup_l.c40
-rw-r--r--libtommath/bn_mp_reduce_is_2k.c48
-rw-r--r--libtommath/bn_mp_reduce_is_2k_l.c40
-rw-r--r--libtommath/bn_mp_reduce_setup.c30
-rw-r--r--libtommath/bn_mp_rshd.c68
-rw-r--r--libtommath/bn_mp_set.c25
-rw-r--r--libtommath/bn_mp_set_int.c44
-rw-r--r--libtommath/bn_mp_shrink.c36
-rw-r--r--libtommath/bn_mp_signed_bin_size.c23
-rw-r--r--libtommath/bn_mp_sqr.c54
-rw-r--r--libtommath/bn_mp_sqrmod.c37
-rw-r--r--libtommath/bn_mp_sqrt.c142
-rw-r--r--libtommath/bn_mp_sub.c55
-rw-r--r--libtommath/bn_mp_sub_d.c89
-rw-r--r--libtommath/bn_mp_submod.c38
-rw-r--r--libtommath/bn_mp_to_signed_bin.c29
-rw-r--r--libtommath/bn_mp_to_signed_bin_n.c27
-rw-r--r--libtommath/bn_mp_to_unsigned_bin.c44
-rw-r--r--libtommath/bn_mp_to_unsigned_bin_n.c27
-rw-r--r--libtommath/bn_mp_toom_mul.c280
-rw-r--r--libtommath/bn_mp_toom_sqr.c222
-rw-r--r--libtommath/bn_mp_toradix.c71
-rw-r--r--libtommath/bn_mp_toradix_n.c84
-rw-r--r--libtommath/bn_mp_unsigned_bin_size.c24
-rw-r--r--libtommath/bn_mp_xor.c47
-rw-r--r--libtommath/bn_mp_zero.c32
-rw-r--r--libtommath/bn_prime_tab.c57
-rw-r--r--libtommath/bn_reverse.c35
-rw-r--r--libtommath/bn_s_mp_add.c105
-rw-r--r--libtommath/bn_s_mp_exptmod.c248
-rw-r--r--libtommath/bn_s_mp_mul_digs.c86
-rw-r--r--libtommath/bn_s_mp_mul_high_digs.c77
-rw-r--r--libtommath/bn_s_mp_sqr.c80
-rw-r--r--libtommath/bn_s_mp_sub.c85
-rw-r--r--libtommath/bncore.c32
-rw-r--r--libtommath/booker.pl265
-rw-r--r--libtommath/callgraph.txt11913
-rw-r--r--libtommath/changes.txt403
-rw-r--r--libtommath/demo/demo.c736
-rw-r--r--libtommath/demo/timing.c315
-rw-r--r--libtommath/dep.pl123
-rw-r--r--libtommath/etc/2kprime.12
-rw-r--r--libtommath/etc/2kprime.c75
-rw-r--r--libtommath/etc/drprime.c59
-rw-r--r--libtommath/etc/drprimes.2825
-rw-r--r--libtommath/etc/drprimes.txt9
-rw-r--r--libtommath/etc/makefile50
-rw-r--r--libtommath/etc/makefile.icc67
-rw-r--r--libtommath/etc/makefile.msvc23
-rw-r--r--libtommath/etc/mersenne.c140
-rw-r--r--libtommath/etc/mont.c41
-rw-r--r--libtommath/etc/pprime.c396
-rw-r--r--libtommath/etc/prime.1024414
-rw-r--r--libtommath/etc/prime.512205
-rw-r--r--libtommath/etc/timer.asm37
-rw-r--r--libtommath/etc/tune.c138
-rw-r--r--libtommath/gen.pl17
-rw-r--r--libtommath/logs/README13
-rw-r--r--libtommath/logs/add.log16
-rw-r--r--libtommath/logs/addsub.pngbin0 -> 6253 bytes-rw-r--r--libtommath/logs/expt.log7
-rw-r--r--libtommath/logs/expt.pngbin0 -> 6604 bytes-rw-r--r--libtommath/logs/expt_2k.log5
-rw-r--r--libtommath/logs/expt_2kl.log4
-rw-r--r--libtommath/logs/expt_dr.log7
-rw-r--r--libtommath/logs/graphs.dem17
-rw-r--r--libtommath/logs/index.html24
-rw-r--r--libtommath/logs/invmod.log0
-rw-r--r--libtommath/logs/invmod.pngbin0 -> 4917 bytes-rw-r--r--libtommath/logs/mult.log84
-rw-r--r--libtommath/logs/mult.pngbin0 -> 6769 bytes-rw-r--r--libtommath/logs/mult_kara.log84
-rw-r--r--libtommath/logs/sqr.log84
-rw-r--r--libtommath/logs/sqr_kara.log84
-rw-r--r--libtommath/logs/sub.log16
-rw-r--r--libtommath/makefile186
-rw-r--r--libtommath/makefile.bcc44
-rw-r--r--libtommath/makefile.cygwin_dll51
-rw-r--r--libtommath/makefile.icc116
-rw-r--r--libtommath/makefile.msvc40
-rw-r--r--libtommath/makefile.shared102
-rw-r--r--libtommath/mess.sh4
-rw-r--r--libtommath/mtest/logtab.h19
-rw-r--r--libtommath/mtest/mpi-config.h85
-rw-r--r--libtommath/mtest/mpi-types.h15
-rw-r--r--libtommath/mtest/mpi.c3979
-rw-r--r--libtommath/mtest/mpi.h225
-rw-r--r--libtommath/mtest/mtest.c304
-rw-r--r--libtommath/pics/design_process.sxdbin0 -> 6950 bytes-rw-r--r--libtommath/pics/design_process.tifbin0 -> 79042 bytes-rw-r--r--libtommath/pics/expt_state.sxdbin0 -> 6869 bytes-rw-r--r--libtommath/pics/expt_state.tifbin0 -> 87540 bytes-rw-r--r--libtommath/pics/makefile35
-rw-r--r--libtommath/pics/primality.tifbin0 -> 85512 bytes-rw-r--r--libtommath/pics/radix.sxdbin0 -> 6181 bytes-rw-r--r--libtommath/pics/sliding_window.sxdbin0 -> 6787 bytes-rw-r--r--libtommath/pics/sliding_window.tifbin0 -> 53880 bytes-rw-r--r--libtommath/poster.out0
-rw-r--r--libtommath/poster.pdfbin0 -> 37822 bytes-rw-r--r--libtommath/poster.tex35
-rw-r--r--libtommath/pre_gen/mpi.c9048
-rw-r--r--libtommath/pretty.build66
-rw-r--r--libtommath/tombc/grammar.txt35
-rw-r--r--libtommath/tommath.h579
-rw-r--r--libtommath/tommath.out139
-rw-r--r--libtommath/tommath.pdfbin0 -> 1194158 bytes-rw-r--r--libtommath/tommath.src6350
-rw-r--r--libtommath/tommath.tex6691
-rw-r--r--libtommath/tommath_class.h995
-rw-r--r--libtommath/tommath_superclass.h72
-rw-r--r--license.terms2
-rw-r--r--macosx/GNUmakefile208
-rw-r--r--macosx/Makefile239
-rw-r--r--macosx/README232
-rw-r--r--macosx/Tcl-Common.xcconfig37
-rw-r--r--macosx/Tcl-Debug.xcconfig20
-rw-r--r--macosx/Tcl-Info.plist.in36
-rw-r--r--macosx/Tcl-Release.xcconfig20
-rw-r--r--macosx/Tcl.pbproj/jingham.pbxuser79
-rw-r--r--macosx/Tcl.pbproj/project.pbxproj1285
-rw-r--r--macosx/Tcl.xcode/default.pbxuser200
-rw-r--r--macosx/Tcl.xcode/project.pbxproj2936
-rw-r--r--macosx/Tcl.xcodeproj/default.pbxuser211
-rw-r--r--macosx/Tcl.xcodeproj/project.pbxproj3041
-rw-r--r--macosx/Tclsh-Info.plist.in36
-rw-r--r--macosx/configure.ac11
-rw-r--r--macosx/tclMacOSXBundle.c340
-rw-r--r--macosx/tclMacOSXFCmd.c762
-rw-r--r--macosx/tclMacOSXNotify.c2036
-rw-r--r--pkgs/README57
-rw-r--r--pkgs/package.list.txt35
-rw-r--r--tests/README2
-rw-r--r--tests/all.tcl16
-rw-r--r--tests/append.test252
-rw-r--r--tests/appendComp.test297
-rw-r--r--tests/apply.test321
-rw-r--r--tests/assemble.test3292
-rw-r--r--tests/assemble1.bench85
-rw-r--r--tests/assocd.test35
-rw-r--r--tests/async.test76
-rw-r--r--tests/autoMkindex.test301
-rw-r--r--tests/basic.test292
-rw-r--r--tests/binary.test2191
-rw-r--r--tests/case.test8
-rw-r--r--tests/chan.test275
-rw-r--r--tests/chanio.test7723
-rw-r--r--tests/clock.test37094
-rw-r--r--tests/cmdAH.test1308
-rw-r--r--tests/cmdIL.test488
-rw-r--r--tests/cmdInfo.test29
-rw-r--r--tests/cmdMZ.test262
-rw-r--r--tests/compExpr-old.test474
-rw-r--r--tests/compExpr.test353
-rw-r--r--tests/compile.test657
-rw-r--r--tests/concat.test23
-rw-r--r--tests/config.test10
-rw-r--r--tests/coroutine.test739
-rw-r--r--tests/dcall.test13
-rw-r--r--tests/dict.test2218
-rw-r--r--tests/dstring.test275
-rw-r--r--tests/encoding.test277
-rw-r--r--tests/env.test317
-rw-r--r--tests/eofchar.data846
-rw-r--r--tests/error.test1108
-rw-r--r--tests/eval.test46
-rw-r--r--tests/event.test663
-rw-r--r--tests/exec.test546
-rw-r--r--tests/execute.test520
-rw-r--r--tests/expr-old.test539
-rw-r--r--tests/expr.test6920
-rw-r--r--tests/fCmd.test2716
-rw-r--r--tests/fileName.test1457
-rw-r--r--tests/fileSystem.test1196
-rw-r--r--tests/for-old.test2
-rw-r--r--tests/for.test521
-rw-r--r--tests/foreach.test68
-rw-r--r--tests/format.test139
-rw-r--r--tests/get.test30
-rw-r--r--tests/history.test18
-rw-r--r--tests/http.test557
-rw-r--r--tests/http11.test656
-rw-r--r--tests/httpd44
-rw-r--r--tests/httpd11.tcl254
-rw-r--r--tests/httpold.test2
-rw-r--r--tests/if-old.test2
-rw-r--r--tests/if.test729
-rw-r--r--tests/incr-old.test22
-rw-r--r--tests/incr.test325
-rw-r--r--tests/indexObj.test78
-rw-r--r--tests/info.test2191
-rw-r--r--tests/init.test176
-rw-r--r--tests/interp.test1506
-rw-r--r--tests/io.test1158
-rw-r--r--tests/ioCmd.test3529
-rw-r--r--tests/ioTrans.test1918
-rw-r--r--tests/ioUtil.test310
-rw-r--r--tests/iogt.test537
-rw-r--r--tests/join.test17
-rw-r--r--tests/lindex.test162
-rw-r--r--tests/link.test290
-rw-r--r--tests/linsert.test14
-rw-r--r--tests/list.test26
-rw-r--r--tests/listObj.test40
-rw-r--r--tests/llength.test2
-rw-r--r--tests/lmap.test471
-rw-r--r--tests/load.test88
-rw-r--r--tests/lrange.test23
-rw-r--r--tests/lrepeat.test25
-rw-r--r--tests/lreplace.test12
-rw-r--r--tests/lsearch.test198
-rw-r--r--tests/lset.test184
-rw-r--r--[-rwxr-xr-x]tests/lsetComp.test4
-rw-r--r--tests/macOSXFCmd.test66
-rw-r--r--tests/macOSXLoad.test33
-rw-r--r--tests/main.test123
-rw-r--r--tests/mathop.test1340
-rw-r--r--tests/misc.test23
-rw-r--r--tests/msgcat.test95
-rw-r--r--tests/namespace-old.test170
-rw-r--r--tests/namespace.test1592
-rw-r--r--[-rwxr-xr-x]tests/notify.test5
-rw-r--r--tests/nre.test426
-rw-r--r--tests/obj.test90
-rw-r--r--tests/oo.test3512
-rw-r--r--tests/ooNext2.test788
-rw-r--r--tests/opt.test30
-rw-r--r--tests/package.test1258
-rw-r--r--tests/parse.test341
-rw-r--r--tests/parseExpr.test873
-rw-r--r--tests/parseOld.test32
-rw-r--r--tests/pid.test2
-rw-r--r--tests/pkg.test654
-rw-r--r--tests/pkgMkIndex.test177
-rw-r--r--tests/platform.test38
-rw-r--r--tests/proc-old.test43
-rw-r--r--tests/proc.test424
-rw-r--r--tests/pwd.test2
-rw-r--r--tests/reg.test1559
-rw-r--r--tests/regexp.test595
-rw-r--r--tests/regexpComp.test215
-rw-r--r--tests/registry.test919
-rw-r--r--tests/remote.tcl45
-rw-r--r--tests/rename.test89
-rw-r--r--tests/resolver.test203
-rw-r--r--tests/result.test92
-rw-r--r--tests/safe.test1036
-rw-r--r--tests/scan.test741
-rw-r--r--tests/security.test16
-rw-r--r--tests/set-old.test40
-rw-r--r--tests/set.test49
-rw-r--r--tests/socket.test1536
-rw-r--r--tests/source.test65
-rw-r--r--tests/split.test24
-rw-r--r--tests/stack.test86
-rw-r--r--tests/string.test762
-rw-r--r--tests/stringComp.test396
-rw-r--r--tests/stringObj.test169
-rw-r--r--tests/subst.test164
-rw-r--r--tests/switch.test616
-rw-r--r--tests/tailcall.test666
-rw-r--r--[-rwxr-xr-x]tests/tcltest.test265
-rw-r--r--tests/thread.test1478
-rw-r--r--tests/timer.test332
-rw-r--r--tests/tm.test245
-rw-r--r--tests/trace.test819
-rw-r--r--tests/unixFCmd.test407
-rw-r--r--tests/unixFile.test19
-rw-r--r--tests/unixForkEvent.test45
-rw-r--r--tests/unixInit.test348
-rw-r--r--tests/unixNotfy.test96
-rw-r--r--tests/unknown.test22
-rw-r--r--tests/unload.test83
-rw-r--r--tests/uplevel.test118
-rw-r--r--tests/upvar.test271
-rw-r--r--tests/utf.test200
-rw-r--r--tests/util.test3704
-rw-r--r--tests/var.test552
-rw-r--r--tests/while-old.test4
-rw-r--r--tests/while.test403
-rw-r--r--tests/winConsole.test8
-rw-r--r--tests/winDde.test461
-rw-r--r--tests/winFCmd.test1554
-rw-r--r--tests/winFile.test170
-rw-r--r--tests/winNotify.test33
-rw-r--r--tests/winPipe.test239
-rw-r--r--tests/winTime.test9
-rw-r--r--tests/zlib.test878
-rw-r--r--tools/Makefile.in2
-rw-r--r--tools/README3
-rwxr-xr-xtools/checkLibraryDoc.tcl30
-rwxr-xr-xtools/configure268
-rw-r--r--tools/configure.in5
-rw-r--r--tools/encoding/big5.txt2
-rw-r--r--[-rwxr-xr-x]tools/encoding/ebcdic.txt0
-rw-r--r--tools/encoding/gb2312.txt2
-rw-r--r--[-rwxr-xr-x]tools/encoding/tis-620.txt0
-rw-r--r--tools/eolFix.tcl18
-rwxr-xr-xtools/findBadExternals.tcl53
-rwxr-xr-xtools/fix_tommath_h.tcl102
-rw-r--r--tools/genStubs.tcl717
-rw-r--r--tools/genWinImage.tcl157
-rw-r--r--tools/index.tcl13
-rw-r--r--tools/installData.tcl50
-rwxr-xr-xtools/loadICU.tcl619
-rwxr-xr-xtools/makeTestCases.tcl1180
-rw-r--r--tools/man2help.tcl6
-rw-r--r--tools/man2help2.tcl175
-rw-r--r--tools/man2html.tcl174
-rw-r--r--tools/man2html1.tcl33
-rw-r--r--tools/man2html2.tcl458
-rw-r--r--tools/man2tcl.c252
-rw-r--r--tools/mkdepend.tcl420
-rw-r--r--tools/regexpTestLib.tcl33
-rw-r--r--tools/str2c8
-rw-r--r--tools/tcl.hpj.in4
-rw-r--r--tools/tcl.wse.in2376
-rw-r--r--tools/tclSplash.bmpbin162030 -> 0 bytes-rwxr-xr-xtools/tclZIC.tcl1375
-rw-r--r--tools/tclmin.wse247
-rw-r--r--tools/tclsh.svg67
-rw-r--r--tools/tcltk-man2html-utils.tcl1629
-rwxr-xr-xtools/tcltk-man2html.tcl2137
-rw-r--r--tools/tsdPerf.c59
-rw-r--r--tools/tsdPerf.tcl24
-rw-r--r--tools/uniClass.tcl53
-rw-r--r--tools/uniParse.tcl159
-rw-r--r--unix/Makefile.in1949
-rw-r--r--unix/README230
-rw-r--r--unix/aclocal.m42
-rwxr-xr-xunix/configure13665
-rw-r--r--unix/configure.in835
-rw-r--r--unix/dltest/Makefile.in92
-rw-r--r--unix/dltest/README2
-rw-r--r--unix/dltest/pkga.c81
-rw-r--r--unix/dltest/pkgb.c126
-rw-r--r--unix/dltest/pkgc.c96
-rw-r--r--unix/dltest/pkgd.c93
-rw-r--r--unix/dltest/pkge.c38
-rw-r--r--unix/dltest/pkgf.c53
-rw-r--r--unix/dltest/pkgooa.c141
-rw-r--r--unix/dltest/pkgua.c167
-rwxr-xr-xunix/install-sh580
-rwxr-xr-xunix/installManPage117
-rwxr-xr-xunix/ldAix40
-rw-r--r--unix/mkLinks1941
-rw-r--r--unix/mkLinks.tcl119
-rw-r--r--unix/tcl.m42709
-rw-r--r--unix/tcl.pc.in15
-rw-r--r--unix/tcl.spec49
-rw-r--r--unix/tclAppInit.c160
-rw-r--r--unix/tclConfig.h.in531
-rw-r--r--unix/tclConfig.sh.in21
-rw-r--r--unix/tclLoadAix.c955
-rw-r--r--unix/tclLoadAout.c536
-rw-r--r--unix/tclLoadDl.c237
-rw-r--r--unix/tclLoadDld.c201
-rw-r--r--unix/tclLoadDyld.c764
-rw-r--r--unix/tclLoadNext.c177
-rw-r--r--unix/tclLoadOSF.c177
-rw-r--r--unix/tclLoadShl.c199
-rw-r--r--unix/tclUnixChan.c2853
-rw-r--r--unix/tclUnixCompat.c1022
-rw-r--r--unix/tclUnixEvent.c60
-rw-r--r--unix/tclUnixFCmd.c2246
-rw-r--r--unix/tclUnixFile.c1031
-rw-r--r--unix/tclUnixInit.c1367
-rw-r--r--unix/tclUnixNotfy.c1438
-rw-r--r--unix/tclUnixPipe.c937
-rw-r--r--unix/tclUnixPort.h592
-rw-r--r--unix/tclUnixSock.c1475
-rw-r--r--unix/tclUnixTest.c495
-rw-r--r--unix/tclUnixThrd.c643
-rw-r--r--unix/tclUnixThrd.h2
-rw-r--r--unix/tclUnixTime.c561
-rw-r--r--unix/tclXtNotify.c383
-rw-r--r--unix/tclXtTest.c79
-rw-r--r--unix/tclooConfig.sh19
-rw-r--r--win/.cvsignore15
-rw-r--r--win/Makefile.in649
-rw-r--r--win/README99
-rw-r--r--win/README.binary143
-rw-r--r--[-rwxr-xr-x]win/buildall.vc.bat81
-rw-r--r--win/cat.c16
-rw-r--r--win/coffbase.txt19
-rwxr-xr-xwin/configure3596
-rw-r--r--win/configure.in433
-rw-r--r--win/makefile.bc138
-rw-r--r--win/makefile.vc865
-rw-r--r--win/nmakehlp.c578
-rw-r--r--win/rules.vc479
-rw-r--r--win/stub16.c198
-rw-r--r--win/tcl.dsp52
-rw-r--r--win/tcl.hpj.in4
-rw-r--r--win/tcl.m4915
-rw-r--r--win/tcl.rc2
-rw-r--r--win/tclAppInit.c380
-rw-r--r--win/tclConfig.sh.in4
-rw-r--r--win/tclWin32Dll.c1157
-rw-r--r--win/tclWinChan.c1293
-rw-r--r--win/tclWinConsole.c1007
-rw-r--r--win/tclWinDde.c2145
-rw-r--r--win/tclWinError.c94
-rw-r--r--win/tclWinFCmd.c1599
-rw-r--r--win/tclWinFile.c3649
-rw-r--r--win/tclWinInit.c823
-rw-r--r--win/tclWinInt.h168
-rw-r--r--win/tclWinLoad.c414
-rw-r--r--win/tclWinNotify.c622
-rw-r--r--win/tclWinPipe.c1837
-rw-r--r--win/tclWinPort.h411
-rw-r--r--win/tclWinReg.c1023
-rw-r--r--win/tclWinSerial.c1153
-rw-r--r--win/tclWinSock.c2764
-rw-r--r--win/tclWinTest.c673
-rw-r--r--win/tclWinThrd.c854
-rw-r--r--win/tclWinThrd.h21
-rw-r--r--win/tclWinTime.c1067
-rw-r--r--win/tclooConfig.sh19
-rw-r--r--win/tclsh.exe.manifest.in33
-rw-r--r--win/tclsh.icobin3630 -> 57022 bytes-rw-r--r--win/tclsh.rc13
1908 files changed, 584871 insertions, 168403 deletions
diff --git a/.fossil-settings/binary-glob b/.fossil-settings/binary-glob
new file mode 100644
index 0000000..ca85874
--- /dev/null
+++ b/.fossil-settings/binary-glob
@@ -0,0 +1,3 @@
+*.bmp
+*.gif
+*.png
diff --git a/.fossil-settings/crnl-glob b/.fossil-settings/crnl-glob
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.fossil-settings/crnl-glob
diff --git a/.fossil-settings/ignore-glob b/.fossil-settings/ignore-glob
new file mode 100644
index 0000000..9ed86b1
--- /dev/null
+++ b/.fossil-settings/ignore-glob
@@ -0,0 +1,24 @@
+*.a
+*.dll
+*.dylib
+*.exe
+*.exp
+*.lib
+*.o
+*.obj
+*.res
+*.sl
+*.so
+*/Makefile
+*/config.cache
+*/config.log
+*/config.status
+*/tclConfig.sh
+*/tclsh*
+*/tcltest*
+*/versions.vc
+unix/dltest.marker
+unix/tcl.pc
+unix/pkgs/*
+win/pkgs/*
+win/tcl.hpj
diff --git a/.project b/.project
new file mode 100644
index 0000000..358cc74
--- /dev/null
+++ b/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>tcl8.6</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/.settings/org.eclipse.core.runtime.prefs b/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/ChangeLog b/ChangeLog
index 0d8eb00..bb441a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5426 +1,8846 @@
-2004-06-18 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+A NOTE ON THE CHANGELOG:
+Starting in early 2011, Tcl source code has been under the management of
+fossil, hosted at http://core.tcl.tk/tcl/ . Fossil presents a "Timeline"
+view of changes made that is superior in every way to a hand edited log file.
+Because of this, many Tcl developers are now out of the habit of maintaining
+this log file. You may still find useful things in it, but the Timeline is
+a better first place to look now.
+============================================================================
- * generic/tclInt.h (PendingObjData,TclFreeObjMacro,etc):
- * generic/tclObj.c (TclFreeObj): Added scheme for making TclFreeObj()
- avoid blowing up the C stack when freeing up very large object
- trees. [Bug 886231]
+2013-09-19 Don Porter <dgp@users.sourceforge.net>
- * win/tclWinInit.c (SetDefaultLibraryDir): Fix logic, simplify and
- add comments.
+ *** 8.6.1 TAGGED FOR RELEASE ***
-2004-06-17 Don Porter <dgp@users.sourceforge.net>
+ * generic/tcl.h: Bump version number to 8.6.1.
+ * library/init.tcl:
+ * unix/configure.in:
+ * win/configure.in:
+ * unix/tcl.spec:
+ * README:
- * generic/tclObj.c: Added missing space in panic message.
+ * unix/configure: autoconf-2.59
+ * win/configure:
- * win/tclWinInit.c: Inform [tclInit] about the default library
- directory via the ::tclDefaultLibrary variable. This should correct
- a problem with my 2004-06-11 commit. Better solutions still in the
- works. Thanks to Joe Mistachkin for pointing out the breakage.
+2013-09-19 Donal Fellows <dkf@users.sf.net>
-2004-06-16 Don Porter <dgp@users.sourceforge.net>
+ * doc/next.n (METHOD SEARCH ORDER): Bug [3606943]: Corrected
+ description of method search order.
- * doc/library.n: Moved variables ::auto_oldpath and
- * library/auto.tcl: ::unknown_pending into ::tcl namespace.
- * library/init.tcl: [Bugs 808319, 948794]
+2013-09-18 Donal Fellows <dkf@users.sf.net>
-2004-06-15 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ Bump TclOO version to 1.0.1 for release.
- * doc/binary.n: Added some notes to the documentation of the 'a'
- format to address the point raised in [RFE 768852].
+2013-09-17 Donal Fellows <dkf@users.sf.net>
-2004-06-15 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tclBinary.c (BinaryEncodeUu, BinaryDecodeUu): [Bug 2152292]:
+ Corrected implementation of the core of uuencode handling so that the
+ line length processing is correctly applied.
+ ***POTENTIAL INCOMPATIBILITY***
+ Existing code that was using the old versions and working around the
+ limitations will now need to do far less. The -maxlen option now has
+ strict limits on the range of supported lengths; this is a limitation
+ of the format itself.
- * unix/tclConfig.sh.in (TCL_EXTRA_CFLAGS): set to @CFLAGS@, which
- is the configure-time CFLAGS. Addendum to m4 change on 2004-05-26.
+2013-09-09 Donal Fellows <dkf@users.sf.net>
-2004-06-14 Kevin Kenny <kennykb@acm.org>
+ * generic/tclOOMethod.c (CloneProcedureMethod): [Bug 3609693]: Strip
+ the internal representation of method bodies during cloning in order
+ to ensure that any bound references to instance variables are removed.
- * win/Makefile.in: Corrected compilation flags for tclPkgConfig.c
- so that it doesn't require Stubs.
- * generic/tclBasic.c (Tcl_CreateInterp): Removed comment stating
- that TclInitEmbeddedConfigurationInformation needs Stubs; with the
- change above, the comment is now erroneous.
-
-2004-06-11 Don Porter <dgp@users.sourceforge.net>
+2013-09-01 Donal Fellows <dkf@users.sf.net>
- * doc/Encoding.3: Removed bogus claims about tcl_libPath.
+ * generic/tclBinary.c (BinaryDecodeHex): [Bug b98fa55285]: Ensure that
+ whitespace at the end of a string don't cause the decoder to drop the
+ last decoded byte.
- * generic/tclInterp.c (Tcl_Init): Stopped setting the
- tcl_libPath variable. [tclInit] can get all its directories
- without it.
+2013-08-03 Donal Fellows <dkf@users.sf.net>
- * tests/unixInit.test: Modified test code that made use of
- tcl_libPath variable.
+ * library/auto.tcl: [Patch 3611643]: Allow TclOO classes to be found
+ by the autoloading mechanism.
- * unix/tclUnixInit.c: Stopped setting the tclDefaultLibrary variable,
- execept on the Mac OS X platform with HAVE_CFBUNDLE. In that
- configuration we should seek some way to make use of the TIP 59
- facilities and get rid of that usage of tclDefaultLibrary as well.
+2013-08-02 Donal Fellows <dkf@users.sf.net>
- * generic/tclInterp.c: Updated [tclInit] to make $env(TCL_LIBRARY) an
- absolute path, and to include the scriptdir,runtime configuration value
- on the search path for init.tcl.
+ * generic/tclOODefineCmds.c (ClassSuperSet): Bug [9d61624b3d]: Stop
+ crashes when emptying the superclass slot, even when doing elaborate
+ things with metaclasses.
- * unix/tclUnixInit.c: The routines Tcl_Init() and TclSourceRCFile()
- * win/tclWinInit.c: had identical implementations for both win and
- * generic/tclInterp.c: unix. Moved to a single generic implementation.
- * generic/tclMain.c:
- * library/init.tcl:
- * generic/tclInitScript.h (removed):
- * unix/Makefile.in:
- * win/tcl.dsp:
+2013-08-01 Harald Oehlmann <oehhar@users.sf.net>
+
+ * tclUnixNotify.c (Tcl_InitNotifier): Bug [a0bc856dcd]: Start notifier
+ thread again if we were forked, to solve Rivet bug 55153.
+
+2013-07-05 Kevin B. Kenny <kennykb@acm.org>
+
+ * library/tzdata/Africa/Casablanca:
+ * library/tzdata/America/Asuncion:
+ * library/tzdata/Antarctica/Macquarie:
+ * library/tzdata/Asia/Gaza:
+ * library/tzdata/Asia/Hebron:
+ * library/tzdata/Asia/Jerusalem:
+ http://www.iana.org/time-zones/repository/releases/tzdata2013d.tar.gz
+
+2013-07-03 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tclXtNotify.c: Bug [817249]: bring tclXtNotify.c up to date with
+ Tcl_SetNotifier() change.
+
+2013-07-02 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tcl.m4: Bug [32afa6e256]: dirent64 check is incorrect in tcl.m4
+ * unix/configure: (thanks to Brian Griffin)
+
+2013-06-27 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclConfig.c: Bug [9b2e636361]: Tcl_CreateInterp() needs
+ * generic/tclMain.c: initialized encodings.
+
+2013-06-18 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclEvent.c: Bug [3611974]: InitSubsystems multiple thread
+ issue.
+
+2013-06-17 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/regc_locale.c: Bug [a876646efe]: re_expr character class
+ [:cntrl:] should contain \u0000 - \u001f
+
+2013-06-09 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmdsSZ.c (TclCompileTryCmd): [Bug 779d38b996]:
+ Rewrote the [try] compiler to generate better code in some cases and
+ to behave correctly in others; when an error happens during the
+ processing of an exception-trap clause or a finally clause, the
+ *original* return options are now captured in a -during option, even
+ when fully compiled.
+
+2013-06-05 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclExecute.c (INST_EXPAND_DROP): [Bugs 2835313, 3614226]:
+ New opcode to allow resetting the stack to get rid of an expansion,
+ restoring the stack to a known state in the process.
+ * generic/tclCompile.c, generic/tclCompCmds.c: Adjusted the compilers
+ for [break] and [continue] to get stack cleanup right in the majority
+ of cases.
+ * tests/for.test (for-7.*): Set of tests for these evil cases.
+
+2013-06-04 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tcl.m4: Eliminate NO_VIZ macro as current zlib uses HAVE_HIDDEN
+ instead. One more last-moment fix for FreeBSD by Pietro Cerutti
+
+2013-06-03 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclExecute.c: fix for perf bug detected by Kieran
+ (https://groups.google.com/forum/?fromgroups#!topic/comp.lang.tcl/vfpI3bc-DkQ),
+ diagnosed by dgp to be a close relative of [Bug 781585], which was
+ fixed by commit [f46fb50cb3]. This bug was introduced by myself in
+ commit [cbfe055d8c].
+
+2013-06-03 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmds.c (TclCompileBreakCmd, TclCompileContinueCmd):
+ Added code to allow [break] and [continue] to be issued as a jump (in
+ the most common cases) rather than using the more expensive exception
+ processing path in the bytecode engine. [Bug 3614226]: Partial fix for
+ the issues relating to cleaning up the stack when dealing with [break]
+ and [continue].
+
+2013-05-27 Harald Oehlmann <oehhar@users.sf.net>
+
+ * library/msgcat/msgcat.tcl: [Bug 3036566]: Also get locale from
+ registry key HCU\Control Panel\Desktop : PreferredUILanguages to honor
+ installed language packs on Vista+.
+ Bumped msgcat version to 1.5.2
+
+2013-05-22 Andreas Kupries <andreask@activestate.com>
+
+ * tclCompile.c: Removed duplicate const qualifier causing the HP
+ native cc to error out.
+
+2013-05-22 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclUtf.c (TclUtfCasecmp): [Bug 3613609]: Replace problematic
+ uses of strcasecmp with a proper UTF-8-aware version. Affects both
+ [lsearch -nocase] and [lsort -nocase].
+
+2013-05-22 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/file.n: [Bug 3613671]: Added note to portability section on the
+ fact that [file owned] does not produce useful results on Windows.
+
+2013-05-20 Donal K. Fellows <dkf@users.sf.net>
+
+ * unix/tclUnixFCmd.c (DefaultTempDir): [Bug 3613567]: Corrected logic
+ for checking return code of access() system call, which was inverted.
+
+2013-05-19 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tcl.m4: Fix for FreeBSD, and remove support for older
+ * unix/configure: FreeBSD versions. Patch by Pietro Cerutti.
+
+2013-05-18 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmdsGR.c: Split tclCompCmds.c again to keep size of
+ code down.
+
+2013-05-16 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclBasic.c: Add panic in order to detect incompatible
+ mingw32 sys/stat.h and sys/time.h headers.
+
+2013-05-13 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * compat/zlib/*: Upgrade to zlib 1.2.8
+
+2013-05-10 Donal K. Fellows <dkf@users.sf.net>
+
+ Optimizations and general bytecode generation improvements.
+ * generic/tclCompCmds.c (TclCompileAppendCmd, TclCompileLappendCmd):
+ (TclCompileReturnCmd): Make these generate bytecode in more cases.
+ (TclCompileListCmd): Make this able to push a literal when it can.
+ * generic/tclCompile.c (TclSetByteCodeFromAny, PeepholeOptimize):
+ Added checks to see if we can apply some simple cross-command-boundary
+ optimizations, and defined a small number of such optimizations.
+ (TclCompileScript): Added the special ability to compile the list
+ command with expansion ([list {*}blah]) into bytecode that does not
+ call an external command.
+
+2013-05-06 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclStubInit.c: Add support for Cygwin64, which has a 64-bit
+ * generic/tclDecls.h: "long" type. Binary compatibility with win64
+ requires that all stub entries use 32-bit long's, therefore the need
+ for various wrapper functions/macros. For Tcl 9 a better solution is
+ needed, but that cannot be done without introducing binary
+ incompatibility.
+
+2013-04-30 Andreas Kupries <andreask@activestate.com>
+
+ * library/platform/platform.tcl (::platform::LibcVersion):
+ * library/platform/pkgIndex.tcl: Followup to the 2013-01-30 change.
+ The RE become too restrictive again. SuSe added a timestamp after the
+ version. Loosened up a bit. Bumped package to version 1.0.12.
+
+2013-04-29 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmds.c (TclCompileArraySetCmd): Generate better code
+ when the list of things to set is a literal.
+
+2013-04-25 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclDecls.h: Implement Tcl_NewBooleanObj, Tcl_DbNewBooleanObj
+ and Tcl_SetBooleanObj as macros using Tcl_NewIntObj, Tcl_DbNewLongObj
+ and Tcl_SetIntObj. Starting with Tcl 8.5, this is exactly the same, it
+ only eliminates code duplication.
+ * generic/tclInt.h: Eliminate use of NO_WIDE_TYPE everywhere: It's
+ exactly the same as TCL_WIDE_INT_IS_LONG
+
+2013-04-19 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclDecls.h: Implement many Tcl_*Var* functions and
+ Tcl_GetIndexFromObj as (faster/stack-saving) macros around resp their
+ Tcl_*Var*2 equivalent and Tcl_GetIndexFromObjStruct.
+
+2013-04-12 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclDecls.h: Implement Tcl_Pkg* functions as
+ (faster/stack-saving) macros around Tcl_Pkg*Ex functions.
+
+2013-04-08 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/regc_color.c: [Bug 3610026]: Stop crash when the number of
+ * generic/regerrs.h: "colors" in a regular expression overflows a
+ * generic/regex.h: short int. Thanks to Heikki Linnakangas for
+ * generic/regguts.h: the report and the patch.
+ * tests/regexp.test:
+
+2013-04-04 Reinhard Max <max@suse.de>
+
+ * library/http/http.tcl (http::geturl): Allow URLs that don't have a
+ path, but a query query, e.g. http://example.com?foo=bar
+ * Bump the http package to 2.8.7.
+
+2013-03-22 Venkat Iyer <venkat@comit.com>
+ * library/tzdata/Africa/Cairo: Update to tzdata2013b.
+ * library/tzdata/Africa/Casablanca:
+ * library/tzdata/Africa/Gaborone:
+ * library/tzdata/Africa/Tripoli:
+ * library/tzdata/America/Asuncion:
+ * library/tzdata/America/Barbados:
+ * library/tzdata/America/Bogota:
+ * library/tzdata/America/Costa_Rica:
+ * library/tzdata/America/Curacao:
+ * library/tzdata/America/Nassau:
+ * library/tzdata/America/Port-au-Prince:
+ * library/tzdata/America/Santiago:
+ * library/tzdata/Antarctica/Palmer:
+ * library/tzdata/Asia/Aden:
+ * library/tzdata/Asia/Hong_Kong:
+ * library/tzdata/Asia/Muscat:
+ * library/tzdata/Asia/Rangoon:
+ * library/tzdata/Asia/Shanghai:
+ * library/tzdata/Atlantic/Bermuda:
+ * library/tzdata/Europe/Vienna:
+ * library/tzdata/Pacific/Easter:
+ * library/tzdata/Pacific/Fiji:
+ * library/tzdata/Asia/Khandyga: (new)
+ * library/tzdata/Asia/Ust-Nera: (new)
+ * library/tzdata/Europe/Busingen: (new)
+
+2013-03-21 Don Porter <dgp@users.sourceforge.net>
+
+ * library/auto.tcl: [Bug 2102614]: Add ensemble indexing support to
+ * tests/autoMkindex.test: [auto_mkindex]. Thanks Brian Griffin.
+
+2013-03-19 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclFCmd.c: [Bug 3597000]: Consistent [file copy] result.
+ * tests/fileSystem.test:
+
+2013-03-19 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinFile.c: [Bug 3608360]: Incompatible behaviour of "file
+ exists".
+
+2013-03-18 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/cmdAH.test (cmdAH-19.12): [Bug 3608360]: Added test to ensure
+ that we never ever allow [file exists] to do globbing.
+
+2013-03-12 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tcl.m4: Patch by Andrew Shadura, providing better support for
+ three architectures they have in Debian.
+
+2013-03-11 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCompile.c: [Bugs 3607246,3607372]: Unbalanced refcounts
+ * generic/tclLiteral.c: of literals in the global literal table.
+
+2013-03-06 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/regc_nfa.c: [Bugs 3604074,3606683]: Rewrite of the
+ * generic/regcomp.c: fixempties() routine (and supporting routines)
+ to completely eliminate the infinite loop hazard. Thanks to Tom Lane
+ for the much improved solution.
+
+2013-02-28 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclLiteral.c: Revise TclReleaseLiteral() to tolerate a NULL
+ interp argument.
+
+ * generic/tclCompile.c: Update callers and revise mistaken comments.
+ * generic/tclProc.c:
+
+2013-02-27 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/regcomp.c: [Bug 3606139]: missing error check allows
+ * tests/regexp.test: regexp to crash Tcl. Thanks to Tom Lane for
+ providing the test-case and the patch.
+
+2013-02-26 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/chanio.test (chan-io-28.7): [Bug 3605120]: Stop test from
+ hanging when run standalone.
+
+2013-02-26 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclObj.c: Don't panic if Tcl_ConvertToType is called for a
+ type that doesn't have a setFromAnyProc, create a proper error message.
+
+2013-02-25 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/binary.test (binary-41.*): [Bug 3605721]: Test independence
+ fixes. Thanks to Rolf Ade for pointing out the problem.
+
+2013-02-25 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/assocd.test: [Bugs 3605719,3605720]: Test independence.
+ * tests/basic.test: Thanks Rolf Ade for patches.
+
+2013-02-23 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * compat/fake-rfc2553.c: [Bug 3599194]: compat/fake-rfc2553.c is
+ broken.
+
+2013-02-22 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclAssembly.c: Shift more burden of smart cleanup
+ * generic/tclCompile.c: onto the TclFreeCompileEnv() routine.
+ Stop crashes when the hookProc raises an error.
+
+2013-02-20 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclNamesp.c: [Bug 3605447]: Make sure the -clear option
+ * tests/namespace.test: to [namespace export] always clears, whether
+ or not new export patterns are specified.
+
+2013-02-20 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinDde.c: [Bug 3605401]: Compiler error with latest mingw-w64
+ headers.
+
+2013-02-19 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclTrace.c: [Bug 2438181]: Incorrect error reporting in
+ * tests/trace.test: traces. Test-case and fix provided by Poor
+ Yorick.
+
+2013-02-15 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/regc_nfa.c: [Bug 3604074]: Fix regexp optimization to
+ * tests/regexp.test: stop hanging on the expression
+ ((((((((a)*)*)*)*)*)*)*)* . Thanks to Bjørn Grathwohl for discovery.
+
+2013-02-14 Harald Oehlmann <oehhar@users.sf.net>
+
+ * library/msgcat/msgcat.tcl: [Bug 3604576]: Catch missing registry
+ entry "HCU\Control Panel\International".
+ Bumped msgcat version to 1.5.1
+
+2013-02-11 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclZlib.c (ZlibTransformOutput): [Bug 3603553]: Ensure that
+ data gets written to the underlying stream by compressing transforms
+ when the amount of data to be written is one buffer's-worth; problem
+ was particularly likely to occur when compressing large quantities of
+ not-very-compressible data. Many thanks to Piera Poggio (vampiera) for
+ reporting.
+
+2013-02-09 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOOBasic.c (TclOO_Object_VarName): [Bug 3603695]: Change
+ the way that the 'varname' method is implemented so that there are no
+ longer problems with interactions due to the resolver. Thanks to
+ Taylor Venable <tcvena@gmail.com> for identifying the problem.
+
+2013-02-08 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/regc_nfa.c (duptraverse): [Bug 3603557]: Increase the
+ maximum depth of recursion used when duplicating an automaton in
+ response to encountering a "wild" RE that hit the previous limit.
+ Allow the limit (DUPTRAVERSE_MAX_DEPTH) to be set by defining its
+ value in the Makefile. Problem reported by Jonathan Mills.
+
+2013-02-05 Don Porter <dgp@users.sourceforge.net>
+
+ * win/tclWinFile.c: [Bug 3603434]: Make sure TclpObjNormalizePath()
+ properly declares "a:/" to be normalized, even when no "A:" drive is
+ present on the system.
+
+2013-02-05 Donal K. Fellows <dkf@users.sf.net>
- * unix/configure.in: Updated TCL_PACKAGE_PATH value to
- * win/configure.in: handle --libdir configuration.
+ * generic/tclLoadNone.c (TclpLoadMemory): [Bug 3433012]: Added dummy
+ version of this function to use in the event that a platform thinks it
+ can load from memory but cannot actually do so due to it being
+ disabled at configuration time.
- * unix/configure.in: autoconf-2.57
+2013-02-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmds.c (TclCompileArraySetCmd): [Bug 3603163]: Stop
+ crash in weird case where [eval] is used to make [array set] get
+ confused about whether there is a local variable table or not. Thanks
+ to Poor Yorick for identifying a reproducible crashing case.
+
+2013-01-30 Andreas Kupries <andreask@activestate.com>
+
+ * library/platform/platform.tcl (::platform::LibcVersion): See
+ * library/platform/pkgIndex.tcl: [Bug 3599098]: Fixed the RE
+ * unix/Makefile.in: extracting the version to avoid issues with
+ * win/Makefile.in: recent changes to the glibc banner. Now targeting a
+ less variable part of the string. Bumped package to version 1.0.11.
+
+2013-01-28 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmds.c (TclCompileArraySetCmd)
+ (TclCompileArrayUnsetCmd, TclCompileDictAppendCmd)
+ (TclCompileDictCreateCmd, CompileDictEachCmd, TclCompileDictIncrCmd)
+ (TclCompileDictLappendCmd, TclCompileDictMergeCmd)
+ (TclCompileDictUnsetCmd, TclCompileDictUpdateCmd)
+ (TclCompileDictWithCmd, TclCompileInfoCommandsCmd):
+ * generic/tclCompCmdsSZ.c (TclCompileStringMatchCmd)
+ (TclCompileStringMapCmd): Improve the code generation in cases where
+ full compilation is impossible but a full ensemble invoke is provably
+ not necessary.
+
+2013-01-26 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tclUnixCompat.c: [Bug 3601804]: platformCPUID segmentation
+ fault on Darwin.
+
+2013-01-23 Donal K. Fellows <dkf@users.sf.net>
+
+ * library/http/http.tcl (http::geturl): [Bug 2911139]: Do not do vwait
+ for connect to avoid reentrancy problems (except when operating
+ without a -command option). Internally, this means that all sockets
+ created by the http package will always be operated in asynchronous
+ mode.
+
+2013-01-21 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.decls: Put back Tcl[GS]etStartupScript(Path|FileName)
+ in private stub table, so extensions using this (like Tk 8.4) will
+ continue to work in all Tcl 8.x versions. Extensions using this
+ still cannot be compiled against Tcl 8.6 headers.
+
+2013-01-18 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclPort.h: [Bug 3598300]: unix: tcl.h does not include
+ sys/stat.h
+
+2013-01-17 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmds.c (PushVarName): [Bug 3600328]: Added mechanism
+ for suppressing compilation of variables when we couldn't cope with
+ the results. Useful for some [array] subcommands.
+ * generic/tclEnsemble.c (CompileToCompiledCommand): Must restore the
+ compilation environment when a command compiler fails.
+
+2013-01-16 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclZlib.c (TclZlibInit): [Bug 3601086]: Register the config
+ info in the iso8859-1 encoding as that is guaranteed to be present.
+
+2013-01-16 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * Makefile.in: Allow win32 build with -DTCL_NO_DEPRECATED, just as
+ * generic/tcl.h: in the UNIX build. Define Tcl_EvalObj and
+ * generic/tclDecls.h: Tcl_GlobalEvalObj as macros, even when
+ * generic/tclBasic.c: TCL_NO_DEPRECATED is defined, so Tk can benefit
+ from it too.
+
+2013-01-14 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tcl.m4: More flexible search for win32 tclConfig.sh, backported
+ from TEA (not actually used in Tcl, only for Tk)
+
+2013-01-14 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.decls: Put back Tcl_[GS]etStartupScript in internal
+ stub table, so extensions using this, compiled against 8.5 headers
+ still run in Tcl 8.6.
+
+2013-01-13 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * doc/fileevent.n: [Bug 3436609]: Clarify readable fileevent "false
+ positives" in the case of multibyte encodings/transforms.
+
+2013-01-13 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclIntDecls.h: If TCL_NO_DEPRECATED is defined, make sure
+ that TIP #139 functions all are taken from the public stub table, even
+ if the inclusion is through tclInt.h.
+
+2013-01-12 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.decls: Put back TclBackgroundException in internal
+ stub table, so extensions using this, compiled against 8.5 headers
+ still run in Tcl 8.6.
+
+2013-01-09 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * library/http/http.tcl: [Bug 3599395]: http assumes status line is a
+ proper Tcl list.
+
+2013-01-08 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinFile.c: [Bug 3092089]: [file normalize] can remove path
+ components. [Bug 3587096]: win vista/7: "can't find init.tcl" when
+ called via junction without folder list access.
+
+2013-01-07 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclOOStubLib.c: Restrict the stub library to only use
+ * generic/tclTomMathStubLib.c: Tcl_PkgRequireEx, Tcl_ResetResult and
+ Tcl_AppendResult, not any other function. This puts least restrictions
+ on eventual Tcl 9 stubs re-organization, and it works on the widest
+ range of Tcl versions.
+
+2013-01-06 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * library/http/http.tcl: Don't depend on Spencer-specific regexp
+ * tests/env.test: syntax (/u and /U) any more in unrelated places.
+ * tests/exec.test:
+ Bump http package to 2.8.6.
+
+2013-01-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclEnsemble.c (CompileBasicNArgCommand): Added very simple
+ compiler (which just compiles to a normal invoke of the implementation
+ command) for many ensemble subcommands where we can prove that there
+ is no way for scripts to detect the difference even through error
+ handling or [info level]/[info frame]. This improves the code produced
+ from some ensembles (e.g., [info], [string]) to the point where the
+ ensemble is now not normally seen at the bytecode level at all.
+
+2013-01-04 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclInt.h: Insure that PURIFY builds cannot exploit the
+ * generic/tclExecute.c: Tcl stack to hide mem defects.
+
+2013-01-03 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/fconfigure.n, doc/CrtChannel.3: Updated to reflect the fact that
+ the minimum buffer size is one byte, not ten. Identified by Schelte
+ Bron on the Tcler's Chat.
+
+ * generic/tclExecute.c (TEBCresume:INST_INVOKE_REPLACE):
+ * generic/tclEnsemble.c (TclCompileEnsemble): Added new mechanism to
+ allow for more efficient dispatch of non-bytecode-compiled subcommands
+ of bytecode-compiled ensembles. This can provide substantial speed
+ benefits in some cases.
+
+2013-01-02 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclEnsemble.c: Remove stray calls to Tcl_Alloc and friends:
+ * generic/tclExecute.c: the core should only use ckalloc to allow
+ * generic/tclIORTrans.c: MEM_DEBUG to work properly.
+ * generic/tclTomMathInterface.c:
+
+2012-12-31 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/string.n: Noted the obsolescence of the 'bytelength',
+ 'wordstart' and 'wordend' subcommands, and moved them to later in the
+ file.
+
+2012-12-27 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclListObj.c: [Bug 3598580]: Tcl_ListObjReplace may release
+ deleted elements too early.
+
+2012-12-22 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclUtil.c: [Bug 3598150]: Stop leaking allocated space when
+ objifying a zero-length DString. Spotted by afredd.
+
+2012-12-21 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/dltest/pkgb.c: Inline compat Tcl_GetDefaultEncodingDir.
+ * generic/tclStubLib.c: Eliminate unnecessary static HasStubSupport()
+ and isDigit() functions, just do the same inline.
+
+2012-12-18 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmdsSZ.c (TclSubstCompile): Improved the sequence of
+ instructions issued for [subst] when dealing with simple variable
+ references.
+
+2012-12-14 Don Porter <dgp@users.sourceforge.net>
+
+ *** 8.6.0 TAGGED FOR RELEASE ***
+
+ * changes: updates for 8.6.0
+
+2012-12-13 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclZlib.c: Repair same issue with misusing the
+ * tests/zlib.test: 'fire and forget' nature of Tcl_ObjSetVar2
+ in the new TIP 400 implementation.
+
+2012-12-13 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclCmdAH.c: (CatchObjCmdCallback): do not decrRefCount
+ * tests/cmdAH.test: the newValuePtr sent to Tcl_ObjSetVar2:
+ TOSV2 is 'fire and forget', it decrs on its own.
+ Fix for [Bug 3595576], found by andrewsh.
+
+2012-12-13 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.h: Fix Tcl_DecrRefCount macro such that it doesn't
+ access its objPtr parameter twice any more.
+
+2012-12-11 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tcl.h: Bump version number to 8.6.0.
+ * library/init.tcl:
+ * unix/configure.in:
* win/configure.in:
+ * unix/tcl.spec:
+ * README:
+
+ * unix/configure: autoconf-2.59
+ * win/configure:
+
+2012-12-10 Donal K. Fellows <dkf@users.sf.net>
+
+ * tools/tcltk-man2html.tcl (plus-pkgs): Increased robustness of
+ version number detection code to deal with packages whose names are
+ prefixes of other packages.
+ * unix/Makefile.in (dist): Added pkgs/package.list.txt to distribution
+ builds to ensure that 'make html' will work better.
+
+2012-12-09 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * tests/chan.test: Clean up unwanted eofchar side-effect of chan-4.6
+ leading to a spurious "'" at end of chan.test under certain conditions
+ (see [Bug 3389289] and [Bug 3389251]).
+
+ * doc/expr.n: [Bug 3594188]: Clarifications about commas.
+
+2012-12-08 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclIO.c: Fix busyloop at exit under TCL_FINALIZE_ON_EXIT
+ when there are unflushed nonblocking channels. Thanks Miguel for
+ spotting.
+
+2012-12-07 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/dltest/pkgb.c: Turn pkgb.so into a Tcl9 interoperability test
+ library: Whatever Tcl9 looks like, loading pkgb.so in Tcl 9 should
+ either result in an error-message, either succeed, but never crash.
+
+2012-11-28 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclZlib.c (ZlibStreamSubcmd): [Bug 3590483]: Use a mechanism
+ for complex option resolution that has fewer problems with more
+ finicky compilers.
+
+2012-11-26 Reinhard Max <max@suse.de>
+
+ * unix/tclUnixSock.c: Factor out creation of the -sockname and
+ -peername lists from TcpGetOptionProc() to TcpHostPortList(). Make it
+ robust against implementations of getnameinfo() that error out if
+ reverse mapping fails instead of falling back to the numeric
+ representation.
+
+2012-11-20 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclBinary.c (BinaryDecode64): [Bug 3033307]: Corrected
+ handling of trailing whitespace when decoding base64. Thanks to Anton
+ Kovalenko for reporting, and Andy Goth for the fix and tests.
+
+2012-11-19 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclBasic.c (Tcl_CreateInterp): Moved call to
- TclInitEmbeddedConfigurationInformation() earlier in
- Tcl_CreateInterp() so that other parts of interp creation
- and initialization may access and use the config values.
-
-2004-06-11 Kevin Kenny <kennykb@acm.org>
-
- * win/tclAppInit.c: Restored the 'setargv' procedure when
- compiling with mingw. Apparently, the command line parsing in
- mingw doesn't work as well as that in vc++, and the result was
- (1) that winPipe-8.19 failed, and (2) that 'make test' would
- work at all only with TESTFLAGS='-singleproc 1'. [Bug 967195]
-
-2004-06-10 Zoran Vasiljevic <vasiljevic@users.sf.net>
-
- * generic/tclIOUtil.c: removed forceful setting of the
- private cached current working directory rep from
- within the Tcl_FSChdir(). We delegate this task to
- the Tcl_FSGetCwd() which does this task anyway.
- The relevant code is still present but disabled
- temporarily until the change proves correct. The Tcl
- test suite passes all test with the given change so
- I suppose it is good enough.
-
-2004-06-10 Don Porter <dgp@users.sourceforge.net>
-
- * unix/tclUnixInit.c (TclpInitLibraryPath): Disabled addition of
- * win/tclWinInit.c (TclpInitLibraryPath): relative-to-executable
- directories to the library search path. A first step in reform of
- Tcl's startup process.
+ * generic/tclExecute.c (INST_STR_RANGE_IMM): [Bug 3588366]: Corrected
+ implementation of bounds restriction for end-indexed compiled [string
+ range]. Thanks to Emiliano Gavilan for diagnosis and fix.
+2012-11-15 Jan Nijtmans <nijtmans@users.sf.net>
+
+ IMPLEMENTATION OF TIP#416
+
+ New Options for 'load': -global and -lazy
+
+ * generic/tcl.h:
+ * generic/tclLoad.c
+ * unix/tclLoadDl.c
+ * unix/tclLoadDyld.c
+ * tests/load.test
+ * doc/Load.3
+ * doc/load.n
+
+2012-11-14 Donal K. Fellows <dkf@users.sf.net>
+
+ * unix/tclUnixFCmd.c (TclUnixOpenTemporaryFile): [Bug 2933003]: Factor
+ out all the code to do temporary file creation so that it is possible
+ to make it correct in one place. Allow overriding of the back-stop
+ default temporary file location at compile time by setting the
+ TCL_TEMPORARY_FILE_DIRECTORY #def to a string containing the directory
+ name (defaults to "/tmp" as that is the most common default).
+
+2012-11-13 Joe Mistachkin <joe@mistachkin.com>
+
+ * win/tclWinInit.c: also search for the library directory (init.tcl,
+ encodings, etc) relative to the build directory associated with the
+ source checkout.
+
+2012-11-10 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclBasic.c: re-enable bcc-tailcall, after fixing an
+ * generic/tclExecute.c: infinite loop in the TCL_COMPILE_DEBUG mode
+
+
+2012-11-07 Kevin B. Kenny <kennykb@acm.org>
+
+ * library/tzdata/Africa/Casablanca:
+ * library/tzdata/America/Araguaina:
+ * library/tzdata/America/Bahia:
+ * library/tzdata/America/Havana:
+ * library/tzdata/Asia/Amman:
+ * library/tzdata/Asia/Gaza:
+ * library/tzdata/Asia/Hebron:
+ * library/tzdata/Asia/Jerusalem:
+ * library/tzdata/Pacific/Apia:
+ * library/tzdata/Pacific/Fakaofo:
+ * library/tzdata/Pacific/Fiji: Import tzdata2012i.
+
+2012-11-06 Donal K. Fellows <dkf@users.sf.net>
+
+ * library/http/http.tcl (http::Finish): [Bug 3581754]: Ensure that
+ callbacks are done at most once to prevent problems with timeouts on a
+ keep-alive connection (combined with reentrant http package use)
+ causing excessive stack growth. Not a fix for the underlying problem,
+ but ensures that pain will be mostly kept away from users.
+ Bump http package to 2.8.5.
+
+2012-11-05 Donal K. Fellows <dkf@users.sf.net>
+
+ Added bytecode compilation of many Tcl commands. Some of these are
+ total compilations and some are only partial (i.e., only compile in
+ some cases). The (sub-)commands affected are:
+ * array: exists, set, unset
+ * dict: create, exists, merge
+ * format: (simple cases only)
+ * info: commands, coroutine, level, object
+ * info object: class, isa object, namespace
+ * namespace: current, code, qualifiers, tail, which
+ * regsub: (only cases convertable to simple [string map])
+ * self: (only no-argument and [self object] cases)
+ * string: first, last, map, range
+ * tailcall:
+ * yield:
+
+ [This was work originally done on the 'dkf-compile-misc-info' branch.]
+
+2012-11-05 Jan Nijtmans <nijtmans@users.sf.net>
+
+ IMPLEMENTATION OF TIP#413
+
+ Align the [string trim] and [string is space] commands, such that
+ [string trim] by default trims all characters for which [string is
+ space] returns 1, augmented with the NUL character.
+
+ * generic/tclUtf.c: Add NEL, BOM and two more characters to [string is
+ space]
+ * generic/tclCmdMZ.c: Modify [string trim] for Unicode modifications.
+ * generic/regc_locale.c: Regexp engine must match [string is space]
+ * doc/string.n
+ * tests/string.test
***POTENTIAL INCOMPATIBILITY***
- Attempts to directly run ./tclsh or ./tcltest out of a build
- directory will either fail, or will make use of an installed
- script library in preference to the one in the source tree.
- Use `make shell` or `make runtest` instead.
+ Code that relied on characters not previously trimmed being not
+ removed will notice a difference; it is believed that this is rare,
+ but a workaround to get the behavior in Tcl 8.5 is to use " \t\n\r" as
+ an explicit trim set.
+
+2012-10-31 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/Makefile.in: Dde version number to 1.4.0, ready for Tcl 8.6.0rc1
+ * win/makefile.vc
+ * win/tclWinDde.c
+ * library/dde/pkgIndex.tcl
+ * tests/winDde.test
+
+2012-10-24 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmds.c (TclCompileDictUnsetCmd): Added compilation of
+ the [dict unset] command (for scalar var in LVT only).
- * tests/unixInit.test: Modified tests to suit above changes.
+2012-10-23 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclPathObj.c: Corrected [file tail] results when operating
- on a path produced by TclNewFSPathObj(). [Bug 970529]
+ * generic/tclInt.h: Add "flags" parameter from Tcl_LoadFile to
+ * generic/tclIOUtil.c: to various internal functions, so these
+ * generic/tclLoadNone.c: flags are available through the whole
+ * unix/tclLoad*.c: filesystem for (future) internal use.
+ * win/tclWinLoad.c:
-2004-06-09 Zoran Vasiljevic <vasiljevic@users.sf.net>
+2012-10-17 Miguel Sofer <msofer@users.sf.net>
- * generic/tclIOUtil.c: partially corrected [Bug 932314].
- Also, corrected return values of Tcl_FSChdir() to
- reflect those of the underlying platform-specific call.
- Originally, return codes were mixed with those of Tcl.
+ * generic/tclBasic.c (TclNRCoroutineObjCmd): insure that numlevels
+ are properly set, fix bug discovered by dkf and reported at
+ http://code.activestate.com/lists/tcl-core/12213/
-2004-06-08 Miguel Sofer <msofer@users.sf.net>
+2012-10-16 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclCompile.c:
- * generic/tclExecute.c: handle warning [Bug 969066]
-
-2004-06-08 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ IMPLEMENTATION OF TIP#405
- * generic/tclHash.c (RebuildTable): Move declaration of variable
- so it is only declared when it is used. [Bug 969068]
+ New commands for applying a transformation to the elements of a list
+ to produce another list (the [lmap] command) and to the mappings of a
+ dictionary to produce another dictionary (the [dict map] command). In
+ both cases, a [continue] will cause the skipping of an element/pair,
+ and a [break] will terminate the construction early and successfully.
-2004-06-07 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclCmdAH.c (Tcl_LmapObjCmd, TclNRLmapCmd): Implementation of
+ the new [lmap] command, based on (and sharing much of) [foreach].
+ * generic/tclDictObj.c (DictMapNRCmd): Implementation of the new [dict
+ map] subcommand, based on (and sharing much of) [dict for].
+ * generic/tclCompCmds.c (TclCompileLmapCmd, TclCompileDictMapCmd):
+ Compilation engines for [lmap] and [dict map].
- * doc/lsearch.n: Added correct option to example. [Bug 968219]
+ IMPLEMENTATION OF TIP#400
-2004-06-05 Kevin B. Kenny <kennykb@acm.org>
-
- * generic/tcl.h: Corrected Tcl_WideInt declarations so that the mingw
- build works again.
- * generic/tclDecls.h: Changes to the tests for
- * generic/tclInt.decls: clock frequency in
- * generic/tclIntDecls.h: Tcl_WinTime
- * generic/tclIntPlatDecls.h: so that any clock frequency
- * generic/tclPlatDecls.h: is accepted provided that
- * generic/tclStubInit.c: all CPU's in the system share
- * tests/platform.test (platform-1.3): a common chip, and hence,
- * win/tclWin32Dll.c (TclWinCPUID): presumably, a common clock.
- * win/tclWinTest.c (TestwincpuidCmd) This change necessitated a
- * win/tclWinTime.c (Tcl_GetTime): small burst of assembly code
- to read CPU ID information, which was added as TclWinCPUID in the
- internal Stubs. To test this code in the common case of a
- single-processor machine, a 'testwincpuid' command was added to
- tclWinTest.c, and a test case in platform.test. Thanks to Jeff
- Godfrey and Richard Suchenwirth for reporting this bug. [Bug
- #976722]
+ * generic/tclZlib.c: Allow the specification of a compression
+ dictionary (a binary blob used to seed the compression engine) in both
+ streams and channel transformations. Also some reorganization to allow
+ for getting gzip header dictionaries and controlling buffering levels
+ in channel transformations (allowing a trade-off between formal
+ correctness and speed).
+ (Tcl_ZlibStreamSetCompressionDictionary): New C API to allow setting
+ the compression dictionary without using a Tcl script.
-2004-06-04 Don Porter <dgp@users.sourceforge.net>
+2012-10-14 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tcl.h: Restored #include <stdio.h> to tcl.h,
- rejecting the "fix" for "Bug" 945570. Tcl_FSSeek() needs the
- values of SEEK_SET, etc. and too many extensions rely on tcl.h
- providing stdio.h for them.
+ * generic/tclDictObj.c: [Bug 3576509]: ::tcl::Bgerror crashes with
+ * generic/tclEvent.c: invalid arguments. Better fix, which helps
+ for all Tcl_DictObjGet() calls in Tcl's source code.
-2004-06-02 Jeff Hobbs <jeffh@ActiveState.com>
+2012-10-13 Jan Nijtmans <nijtmans@users.sf.net>
- * win/tclWinFile.c (TclpFindExecutable): when using
- GetModuleFileNameA (Win9x), convert from CP_ACP to WCHAR then
- convert back to utf8. Adjunct to 2004-04-07 fix.
+ * generic/tclEvent.c: [Bug 3576509]: tcl::Bgerror crashes with invalid
+ arguments
-2004-06-02 David Gravereaux <davygrvy@pobox.com>
+2012-10-06 Jan Nijtmans <nijtmans@users.sf.net>
- * tests/winPipe.c (winpipe-6.1): blocking set to 1 before
- closing to ensure we get an exitcode. The windows pipe channel
- driver doesn't differentiate between a blocking and non-blocking
- close just yet, but will soon. Part of [Bug 947693]
+ * win/Makefile.in: [Bug 2459774]: tcl/win/Makefile.in not compatible
+ with msys 0.8.
-2004-06-02 Vince Darley <vincentdarley@users.sourceforge.net>
+2012-10-03 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclIO.c: When checking for std channels being closed,
+ compare the channel state, not the channel itself so that stacked
+ channels do not cause trouble.
+
+2012-09-26 Reinhard Max <max@suse.de>
+
+ * generic/tclIOSock.c (TclCreateSocketAddress): Work around a bug in
+ getaddrinfo() on OSX that caused name resolution to fail for [socket
+ -server foo -myaddr localhost 0].
+
+2012-09-20 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/configure.in: New import libraries for zlib 1.2.7, usable for
+ * win/configure: all win32/win64 compilers
+ * compat/zlib/win32/zdll.lib:
+ * compat/zlib/win64/zdll.lib:
+
+ * win/tclWinDde.c: [FRQ 3527238]: Full unicode support for dde. Dde
+ version is now 1.4.0b2.
+ ***POTENTIAL INCOMPATIBILITY***
- * doc/file.n: fix to documentation of 'file volumes' (Bug 962435)
+2012-09-19 Jan Nijtmans <nijtmans@users.sf.net>
-2004-06-01 David Gravereaux <davygrvy@pobox.com>
+ * generic/tcl.h: Make Tcl_Interp a fully opaque structure if
+ TCL_NO_DEPRECATED is set (TIP 330 and 336).
+ * win/nmakehlp.c: Let "nmakehlp -V" start searching digits after the
+ found match (suggested by Harald Oehlmann).
+
+2012-09-07 Harald Oehlmann <oehhar@users.sf.net>
+
+ *** 8.6b3 TAGGED FOR RELEASE ***
+
+ IMPLEMENTATION OF TIP#404.
+
+ * library/msgcat/msgcat.tcl: [FRQ 3544988]: New commands [mcflset]
+ * library/msgcat/pkgIndex.tcl: and [mcflmset] to set mc entries with
+ * unix/Makefile.in: implicit message file locale.
+ * win/Makefile.in: Bump to 1.5.0.
+
+2012-08-25 Donal K. Fellows <dkf@users.sf.net>
+
+ * library/msgs/uk.msg: [Bug 3561330]: Use the correct full name of
+ March in Ukrainian. Thanks to Mikhail Teterin for reporting.
+
+2012-08-23 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclBinary.c: [Bug 3496014]: Unecessary memset() in
+ Tcl_SetByteArrayObj().
+
+2012-08-20 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclPathObj.c: [Bug 3559678]: Fix bad filename normalization
+ when the last component is the empty string.
+
+2012-08-20 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinPort.h: Remove wrapper macro for ntohs(): unnecessary,
+ because it doesn't require an initialized winsock_2 library. See:
+ <http://msdn.microsoft.com/en-us/library/windows/desktop/ms740075%28v=vs.85%29.aspx>
+ * win/tclWinSock.c:
+ * generic/tclStubInit.c:
- * win/makefile.vc: check for either MSDEVDIR or MSVCDIR being in
- the environment, for VC7. [Bug 942214]
+2012-08-17 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclIO.c (Tcl_SetChannelOption): -buffersize wasn't
- understanding hexidecimal notation nor was reporting number
- conversion errors. The behavior to silently ignore settings
- outside the acceptable range of Tcl_SetChannelBufferSize
- (<10 or >1M) is unchanged. This silent ignoring behavior
- might be up for review soon..
+ * win/nmakehlp.c: Add "-V<num>" option, in order to be able to detect
+ partial version numbers.
-2004-05-30 David Gravereaux <davygrvy@pobox.com>
+2012-08-15 Jan Nijtmans <nijtmans@users.sf.net>
+ * win/buildall.vc.bat: Only build the threaded builds by default
+ * win/rules.vc: Some code cleanup
+
+2010-08-13 Stuart Cassoff <stwo@users.sourceforge.net>
+
+ * unix/tclUnixCompat.c: [Bug 3555454]: Rearrange a bit to quash
+ 'declared but never defined' compiler warnings.
+
+2012-08-13 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * compat/zlib/win64/zlib1.dll: Add 64-bit build of zlib1.dll, and use
+ * compat/zlib/win64/zdll.lib: it for the dynamic mingw-w64 build.
+ * win/Makefile.in:
+ * win/configure.in:
+ * win/configure:
+
+2012-08-09 Reinhard Max <max@suse.de>
+
+ * tests/http.test: Fix http-3.29 for machines without IPv6 support.
+
+2010-08-08 Stuart Cassoff <stwo@users.sourceforge.net>
+
+ * unix/tclUnixCompat.c: Change one '#ifdef' to '#if defined()' for
+ improved consistency within the file.
+
+2012-08-08 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclfileName.c: [Bug #1536227]: Cygwin network pathname
+ * tests/fileName.test: support
+
+2012-08-07 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclIOUtil.c: [Bug 3554250]: Overlooked one field of cleanup
+ in the thread exit handler for the filesystem subsystem.
+
+2012-07-31 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclInterp.c (Tcl_GetInterpPath):
+ * unix/tclUnixPipe.c (TclGetAndDetachPids, Tcl_PidObjCmd):
+ * win/tclWinPipe.c (TclGetAndDetachPids, Tcl_PidObjCmd):
+ Purge use of Tcl_AppendElement, and corrected conversion of PIDs to
+ integer objects.
+
+2012-07-31 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/nmakehlp.c: Add -Q option from sampleextension.
+ * win/Makefile.in: [FRQ 3544967]: Missing objectfiles in static lib
+ * win/makefile.vc: (Thanks to Jos Decoster).
+
+2012-07-29 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/Makefile.in: No longer build tcltest.exe to run the tests,
+ but use tclsh86.exe in combination with tcltest86.dll to do that.
+ * tests/*.test: load tcltest86.dll if necessary.
+
+2012-07-28 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tests/clock.test: [Bug 3549770]: Multiple test failures running
+ * tests/registry.test: tcltest outside build tree
+ * tests/winDde.test:
+
+2012-07-27 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclUniData.c: Support Unicode 6.2 (Add Turkish lira sign)
+ * generic/regc_locale.c:
+
+2012-07-25 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * win/tclWinPipe.c: [Bug 3547994]: Abandon the synchronous Windows
+ pipe driver to its fate when needed to honour TIP#398.
+
+2012-07-24 Trevor Davel <twylite@crypt.co.za>
+
+ * win/tclWinSock.c: [Bug: 3545363]: Loop over multiple underlying file
+ descriptors for a socket where required (TcpCloseProc, SocketProc).
+ Refactor socket/descriptor setup to manage linked list operations in
+ one place. Fix memory leak in socket close (TcpCloseProc) and related
+ dangling pointers in SocketEventProc.
+
+2012-07-19 Reinhard Max <max@suse.de>
+
+ * win/tclWinSock.c (TcpAccept): [Bug: 3545363]: Use a large enough
+ buffer for accept()ing IPv6 connections. Fix conversion of host and
+ port for passing to the accept proc to be independent of the IP
+ version.
+
+2012-07-23 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclIO.c: [Bug 3545365]: Never try a bg-flush on a dead
+ channel, just like before 2011-08-17.
+
+2012-07-19 Joe Mistachkin <joe@mistachkin.com>
+
+ * generic/tclTest.c: Fix several more missing mutex-locks in
+ TestasyncCmd.
+
+2012-07-19 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclTest.c: [Bug 3544685]: Missing mutex-lock in
+ TestasyncCmd since 2011-08-19. Unbounded gratitude to Stuart
+ Cassoff for spotting it.
+
+2012-07-17 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/makefile.vc: [Bug 3544932]: Visual studio compiler check fails
+
+2012-07-16 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclUtil.c (UpdateStringOfEndOffset): [Bug 3544658]: Stop
+ 1-byte overrun in memcpy, that object placement rules made harmless
+ but which still caused compiler complaints.
+
+2012-07-16 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * library/reg/pkgIndex.tcl: Make registry 1.3 package dynamically
+ loadable when ::tcl::pkgconfig is available.
+
+2012-07-11 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinReg.c: [Bug 3362446]: registry keys command fails
+ with 8.5/8.6. Follow Microsofts example better in order to prevent
+ problems when using HKEY_PERFORMANCE_DATA.
+
+2012-07-10 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tclUnixNotfy.c: [Bug 3541646]: Don't panic on triggerPipe
+ overrun.
+
+2012-07-10 Donal K. Fellows <dkf@users.sf.net>
+
+ * win/tclWinSock.c (InitializeHostName): Corrected logic that
+ extracted the name of the computer from the gethostname call so that
+ it would use the name on success, not failure. Also ensured that the
+ buffer size is exactly that recommended by Microsoft.
+
+2012-07-08 Reinhard Max <max@suse.de>
+
+ * library/http/http.tcl: [Bug 3531209]: Add fix and test for URLs that
+ * tests/http.test: contain literal IPv6 addresses.
+
+2012-07-05 Don Porter <dgp@users.sourceforge.net>
+
+ * unix/tclUnixPipe.c: [Bug 1189293]: Make "<<" binary safe.
* win/tclWinPipe.c:
- * win/tclWinPort.h: Reworked the win implementation of
- Tcl_WaitPid to support exitcodes in the 'signed short' range.
- Even though this range is non-portable, it is valid on windows.
- Detection of exception codes are now more accurate. Previously,
- an application that exited with ExitProcess((DWORD)-1); was
- improperly reported as exiting with SIGABRT.
-2004-05-30 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2012-07-03 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclInterp.c: Added comments describing the purposes of
- each function in the limit implementation and rewrote the names of
- some non-public functions for greater clarity of purpose.
- * doc/interp.n: Added note about what happens when a limited
- interpreter creates a slave interpreter.
- * doc/Limit.3: Added manual page for the resource limit
- subsystem's C API. [Bug 953903]
+ * generic/tclUtil.c (TclDStringAppendObj, TclDStringAppendDString):
+ * generic/tclInt.h (TclDStringAppendLiteral, TclDStringClear):
+ * generic/tclCompile.h (TclDStringAppendToken): Added wrappers to make
+ common cases of appending to Tcl_DStrings simpler to write. Prompted
+ by looking at [FRQ 1357401] (these are an _internal_ implementation of
+ that FRQ).
-2004-05-29 Joe English <jenglish@users.sourceforge.net>
+2012-06-29 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/global.n, doc/interp.n, doc/lrange.n:
- Fix minor markup errors.
+ * library/msgcat/msgcat.tcl: Add tn, ro_MO and ru_MO to msgcat.
-2004-05-28 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2012-06-29 Harald Oehlmann <oehhar@users.sf.net>
- * doc/*.n: Added examples to many (too many to list) more man pages.
+ * library/msgcat/msgcat.tcl: [Bug 3536888]: Locale guessing of
+ * library/msgcat/pkgIndex.tcl: msgcat fails on (some) Windows 7. Bump
+ * unix/Makefile.in: to 1.4.5
+ * win/Makefile.in:
-2004-05-25 Miguel Sofer <msofer@users.sf.net>
+2012-06-29 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclExecute.c:
- * generic/tclVar.c: using (ptrdiff_t) instead of (int) casting to
- correct compiler warnings [Bug 961657], reported by Bob Techentin.
-
-2004-05-27 Kevin B. Kenny <kennykb@acm.org>
-
- * tests/clock.test: Added a single test for the presence of %G
- in [clock format], and conditioned out the clock-10.x series if
- they're all going to fail because of a broken strftime() call.
- [Bug 961714]
-
-2004-05-27 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclHash.c (CompareStringKeys): Added #ifdef to allow
- people to instruct this function to use strcmp(). [FRQ 951168]
-
- * generic/tclVar.c: Moved declarations into #if guards so they
- only happen when required.
- * unix/tclUnixPort.h: Guard declaration of strtod() so it is only
- enabled when we don't have a declaration in stdlib.h
- * unix/tclUnixThrd.c (Tcl_CreateThread): Added declarations
- * unix/tclUnixTest.c (AlarmHandler): and casts so that
- * unix/tclUnixChan.c (TtyModemStatusStr): all functions are
- * generic/tclScan.c (Tcl_ScanObjCmd): defined before use
- * generic/tclDictObj.c (InvalidateDictChain): and no cross-type
- * generic/tclCmdMZ.c (Tcl_StringObjCmd): uses are performed.
-
- The overall effect is to make building with gcc with the
- additional flags -Wstrict-prototypes -Wmissing-prototypes produce
- no increase in the total number of warnings (except for main(),
- which is undeclared for traditional reasons.)
-
-2004-05-26 Jeff Hobbs <jeffh@ActiveState.com>
-
- * unix/Makefile.in: Rework configure ordering to TCL_LINK_LIBS,
- * unix/tcl.m4: ENABLE_SHARED, CONFIG_CFLAGS, & ENABLE_SYMBOLS
- * unix/configure: before TCL_EARLY_FLAGS and TCL_64BIT_FLAGS
- * unix/configure.in: (about 400 lines earlier) in configure.in.
- This forces CFLAGS configuration to be done before many tests,
- which is needed for 64-bit builds and may affect other builds.
- Also make CONFIG_CFLAGS append to CFLAGS directly instead of using
- EXTRA_CFLAGS, and have LDFLAGS append to any existing value.
- [Bug #874058]
- * unix/dltest/Makefile.in: change EXTRA_CFLAGS to DEFS
-
-2004-05-26 Don Porter <dgp@users.sourceforge.net>
-
- * library/tcltest/tcltest.tcl: Correction to debug prints and testing
- * library/tcltest/pkgIndex.tcl: if TCLTEST_OPTIONS value. Corrected
- * tests/tcltest.test: double increment of numTestFiles in
- -singleproc 1 configurations. Updated tcltest-19.1 to tcltest 2.1
- behavior. Corrected tcltest-25.3 to not falsely report a failure
- in tcltest.test. Bumped to tcltest 2.2.6. [Bugs 960560, 960926]
-
-2004-05-25 Jeff Hobbs <jeffh@ActiveState.com>
-
- * doc/http.n (http::config): add -urlencoding option (default utf-8)
- * library/http/http.tcl: that specifies encoding conversion of
- * library/http/pkgIndex.tcl: args for http::formatQuery. Previously
- * tests/http.test: undefined, RFC 2718 says it should be
- utf-8. 'http::config -urlencoding {}' returns previous behavior,
- which will throw errors processing non-latin-1 chars.
- Bumped http package to 2.5.0.
-
-2004-05-25 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclInterp.c (DeleteScriptLimitCallback): Move all
- deletion of script callback hash table entries to happen here so
- the entries are correctly removed at the right time. [Bug 960410]
-
-2004-05-25 Miguel Sofer <msofer@users.sf.net>
-
- * docs/global.n: added details for qualified variable names
- [Bug 959831]
-
-2004-05-25 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclNamesp.c (Tcl_FindNamespaceVar):
- * tests/namespace.test (namespace-17.10-12): reverted commit of
- 2004-05-23 and removed the tests, as it interferes with the
- varname resolver and there are apps that break (AlphaTk). A fix
- will have to wait for Tcl9.
-
- * generic/tclVar.c: Caching of namespace variables disabled: no
- simple way was found to avoid interfering with the resolver's idea
- of variable existence. A cached varName may keep a variable's name
- in the namespace's hash table, which is the resolver's criterion
- for existence.
-
- * tests/namespace.c (namespace-17.10): testing for interference
- between varname caching and name resolver.
-
-2004-05-25 Kevin Kenny <kennykb@acm.org>
-
- * tests/winFCmd.test: Correct test for the presence of a CD-ROM so
- that it doesn't misdetect some other sort
- of filesystem with a write-protected root as
- being a CD-ROM drive. [Bug 918267]
-
-2004-05-25 Don Porter <dgp@users.sourceforge.net>
-
- * tests/winPipe.test: Protect against path being set
- * tests/unixInit.test: Unset path when done.
- * tests/unload.test (unload-3.1): Verify [pkgb_sub] does not exist.
- Delete interps when done.
- * tests/stringComp.test: stop re-use of string.test test names
- * tests/regexpComp.test: stop re-use of regexp.test test names
- * tests/namespace.test (namespace-46.3): Verify [p] does not exist.
- * tests/http.test: Clear away the custom [bgerror] when done.
- * tests/io.test: Take care to use namespace variables.
- * tests/autoMkindex.test (autoMkindex-5.2): Use variable "result"
- that gets cleaned up.
- * tests/exec.test: Clean up the "path" array.
- * tests/interp.test (interp-9.3): Initialize res, so prior values
- cannot make the test fail.
- * tests/execute.test (execute-8.1): Updated to remove the trace
- set on ::errorInfo . When left in place, that trace can cause
- later tests to fail.
-
-2004-05-25 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclBasic.c: Removed references to Tcl_RenameCommand from
- * generic/tcl.h: comments. [Bug 848440, second part]
-
- * tests/fCmd.test: Rewrote tests that failed consistently on NFS
- so they either succeed (through slightly more liberal matching of
- the results) or are constrained to not run. [Bug 931312]
-
- * doc/bgerror.n: Use idiomatic open flags for working with log
- files. [Bug 959602]
-
-2004-05-24 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tclExecute.c (VerifyExprObjType): use GET_WIDE_OR_INT to
- properly have tclIntType used for smaller values. This corrects
- TclX bug 896727 and any other 3rd party extension that created
- math functions but was not yet WIDE_INT aware in them.
-
-2004-05-24 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclInterp.c (TclInitLimitSupport): Made limits work on
- platforms where sizeof(void*)!=sizeof(int). [Bug 959193]
-
-2004-05-24 Miguel Sofer <msofer@users.sf.net>
-
- * doc/set.n: accurate description of name resolution process,
- referring to namespace.n for details [Bug 959180]
-
-2004-05-23 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclNamesp.c (Tcl_FindNamespaceVar): [Bug 959052] fixed,
- insuring that no "zombie" variables are found.
- * generic/tclVar.c (TclLookupSimpleVar): comments re [Bug 736729]
- (predecessor of [Bug 959052]) removed.
- * tests/namespace.test: added tests 17.10-12
-
- The patch modifies non-documented behaviour, and passes every test
- in the testsuite. However, scripts relying on the old behaviour
- may break.
- Note that the only behaviour change concerns the creative writing
- of unset variables. More precisely, which variable will be created
- when neither a namespace variable nor a global variable by that
- name exists, as defined by [info vars]. The new behaviour is that
- the namespace resolution process deems a variable to exist exactly
- when [info vars] finds it - ie, either it has value, or else it
- was "fixed" by a call to [variable].
- Note: this patch was removed on 2002-05-25.
-
-2004-05-22 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclVar.c (TclObjLookupVar, TclObjUnsetVar2): fix for new
- (in tcl8.4) exteriorisations of [Bug 736729] due to the use of
- tclNsVarNameType obj types. Reenabling the use of this objType
- ("VAR ref absolute" benchmark down to 66 ms, from 230).
- Added comments in TclLookupSimpleVar explaining my current
- understanding of [Bug 736729].
-
-2004-05-22 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclVar.c: fix for [Bug 735335]. The use of
- tclNsVarNameType objs is still disabled, pending resolution of
- [Bug 736729].
-
-2004-05-21 Miguel Sofer <msofer@users.sf.net>
-
- * tests/namespace.test (namespace-41.3): removed the {knownBug}
- constraint: [Bug 231259] is closed since nov 2001, and the fix of
- [Bug 729692] (INST_START_CMD) makes the test succeed.
-
-2004-05-21 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclExecute.c (TclExecuteByteCode): Move a few
- declarations a short distance so pre-C99 compilers can cope. Also
- fix so TCL_COMPILE_DEBUG path compiles...
-
-2004-05-21 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclExecute.c (TclExecuteByteCode): reorganised TEBC
- automatic variables, defining them in tight blocks instead of at
- the function level. This has three purposes:
- - it simplifies the analysis of individual instructions
- - it is preliminary work to the non-recursive engine
- - it allows a better register allocation by the optimiser; under
- gcc3.3, this results in up to 10% runtime in some tests
-
-2004-05-20 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * doc/GetIndex.3: Reinforced the description of the requirement for
+ the tables of names to index over to be static, following posting to
+ tcl-core by Brian Griffin about a bug caused by Tktreectrl not obeying
+ this rule correctly. This does not represent a functionality change,
+ merely a clearer documentation of a long-standing constraint.
- * generic/tclInterp.c (TclLimitRemoveAllHandlers):
- * generic/tclBasic.c (DeleteInterpProc):
- * tests/interp.test (interp-34.7):
- Ensure that all limit callbacks are deleted when their interpreters
- are deleted. [Bug 956083]
+2012-06-26 Jan Nijtmans <nijtmans@users.sf.net>
-2004-05-19 Kevin B. Kenny <kennykb@acm.org>
+ * unix/tcl.m4: Let Cygwin shared build link with
+ * unix/configure.in: zlib1.dll, not cygz.dll (two less
+ * unix/configure: dependencies on cygwin-specific dll's)
+ * unix/Makefile.in:
- * win/tclWinFile.c (TclpMatchInDirectory): fix for an issue
- where there was a sneak path from Tcl_DStringFree to
- SetErrorCode(0). The result was that the error code could
- be reset between a call to FindFirstFileEx and the check
- of its status return, leading to a bizarre error return of
- {POSIX unknown {No error}}. (Found in unplanned test -
- no incident logged at SourceForge.)
-
-2004-05-19 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2012-06-26 Reinhard Max <max@suse.de>
- * tests/interp.test (interp-34.3): Rewrite this test to see if a
- time limit can catch a tight bytecode loop, a maximally aggressive
- denial-of-service attack.
- * generic/tclInterp.c (Tcl_LimitCheck): Fix the sense of checks to
- see whether a time limit has been extended.
+ * generic/tclIOSock.c: Use EAI_SYSTEM only if it exists.
+ * unix/tclUnixSock.c:
- * tests/*.test: Many minor fixes, including ensuring that every
- test is run (so constraints control whether the test is doing
- anything) and making sure that constraints are always set using
- the API instead of poking around inside tcltest's internal
- datastructures. Also got rid of all trailing whitespace lines
- from the test suite!
+2012-06-25 Don Porter <dgp@users.sourceforge.net>
-2004-05-19 Andreas Kupries <andreask@activestate.com>
+ * generic/tclFileSystem.h: [Bug 3024359]: Make sure that the
+ * generic/tclIOUtil.c: per-thread cache of the list of file systems
+ * generic/tclPathObj.c: currently registered is only updated at times
+ when no active loops are traversing it. Also reduce the amount of
+ epoch storing and checking to where it can make a difference.
- * tclIO.c: Fixed [SF Tcl Bug 943274]. This is the same problem as
- * tclIO.h: [SF Tcl Bug 462317], see ChangeLog entry
- 2001-09-26. The fix done at that time is incomplete. It
- is possible to get around it if the actual read
- operation is defered and not executed in the event
- handler itself. Instead of tracking if we are in an
- read caused by a synthesized fileevent we now track if
- the OS has delivered a true event = actual data and
- bypass the driver if a read finds that there is no
- actual data waiting. The flag is cleared by a short or
- full read.
+2012-06-25 Donal K. Fellows <dkf@users.sf.net>
-2004-05-17 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclCmdAH.c (EncodingDirsObjCmd): [Bug 3537605]: Do the right
+ thing when reporting errors with the number of arguments.
- * generic/tclPathObj.c: fix to (Bug 956063) in 'file dirname'.
- * tests/cmdAH.test: added test for this bug.
+2012-06-25 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/FileSystem.3: better documentation of refCount requirements
- of some FS functions (Bug 956126)
+ * generic/tclfileName.c: [Patch 1536227]: Cygwin network pathname
+ * tests/fileName.test: support.
-2004-05-19 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2012-06-23 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclTest.c (TestgetintCmd): Made the tests in get.test check
- * tests/get.test: Tcl_GetInt() since the core now
- avoids that function.
+ * unix/tclUnixNotfy.c: [Bug 3508771]: Cygwin notifier for handling
+ win32 events.
-2004-05-18 Kevin B. Kenny <kennykb@acm.org>
+2012-06-22 Reinhard Max <max@suse.de>
- * compat/strftime.c (_fmt, ISO8601Week):
- * doc/clock.n:
- * tests/clock.test: Major rework to the handling of ISO8601
- week numbers. Now passes all the %G and %V test cases on
- Windows, Linux and Solaris [Bugs #500285, #500389, and #852944]
-
-2004-05-18 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclIOSock.c: Rework the error message generation of [socket],
+ * unix/tclUnixSock.c: so that the error code of getaddrinfo is used
+ * win/tclWinSock.c: instead of errno unless it is EAI_SYSTEM.
- * doc/append.n, doc/upvar.n: Added example.
+2012-06-21 Jan Nijtmans <nijtmans@users.sf.net>
-2004-05-18 David Gravereaux <davygrvy@pobox.com>
+ * win/tclWinReg.c: [Bug 3362446]: registry keys command fails
+ * tests/registry.test: with 8.5/8.6
- * win/makefile.vc: now generates a tclConfig.sh from Pat Thoyts
- [Patch 909911]
+2012-06-11 Don Porter <dgp@users.sourceforge.net>
-2004-05-18 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclBasic.c: [Bug 3532959]: Make sure the lifetime
+ * generic/tclProc.c: management of entries in the linePBodyPtr
+ * tests/proc.test: hash table can tolerate either order of
+ teardown, interp first, or Proc first.
- * doc/lsearch.n: Improve clarity (based on [Patch 955361] by Peter
- Spjuth)
+2012-06-08 Don Porter <dgp@users.sourceforge.net>
- * tools/man2help2.tcl (macro,SHmacro): Added support for
- subsection (.SS) header macros.
+ * unix/configure.in: Update autogoo for gettimeofday().
+ * unix/tclUnixPort.h: Thanks Joe English.
+ * unix/configure: autoconf 2.13
- * doc/interp.n: Added user documentation for the TIP#143 resource
- limits and some examples.
+ * unix/tclUnixPort.h: [Bug 3530533]: Centralize #include <pthread.h>
+ * unix/tclUnixThrd.c: in the tclUnixPort.h header so that old unix
+ systems that need inclusion in all compilation units are supported.
- * generic/tclInterp.c (Tcl_LimitCheck, Tcl_LimitTypeReset): Reset
- the limit-exceeded flag when removing a limit.
+2012-06-08 Jan Nijtmans <nijtmans@users.sf.net>
-2004-05-18 Miguel Sofer <msofer@users.sf.net>
+ * win/tclWinDde.c: Revise the "null data" check: null strings are
+ possible, but empty binary arrays are not.
+ * tests/winDde.test: Add test-case (winDde-9.4) for transferring
+ null-strings with dde. Convert tests to tcltest-2 syntax.
- * generic/tclExecute.c (TclExecuteByteCode): added comments to
- classify the variables according to their use in TEBC.
+2012-06-06 Donal K. Fellows <dkf@users.sf.net>
-2004-05-17 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclZlib.c (TclZlibInit): Declare that Tcl is publishing the
+ zlib package (version 2.0) as part of its bootstrap process. This will
+ have an impact on tclkit (which includes zlib 1.1) but otherwise be
+ very low impact.
- * doc/global.n, doc/uplevel.n: Added an example.
+2012-06-06 Jan Nijtmans <nijtmans@users.sf.net>
- * tests/info.test (info-3.1): Corrected test result back to what
- it used to be in Tcl 7.* now that command counts are being
- correctly kept.
+ * unix/tclUnixInit.c: On Cygwin, use win32 API in stead of uname()
+ to determine the tcl_platform variables.
- * generic/tclExecute.c (TEBC:INST_START_CMD): Make sure that the
- command-count is always advanced. Allows TIP#143 limits to tell
- that work is being done.
+2012-05-31 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/list.n: Updated example to fit with the unified format.
- * doc/seek.n: Added some examples.
+ * generic/tclZlib.c: [Bug 3530536]: zlib-7.4 fails on IRIX64
+ * tests/zlib.test:
+ * doc/zlib.n: Document that [stream checksum] doesn't do
+ what's expected for "inflate" and "deflate" formats
-2004-05-17 Vince Darley <vincentdarley@users.sourceforge.net>
+2012-05-31 Donal K. Fellows <dkf@users.sf.net>
- * win/tclWinFile.c:
- * tests/cmdAH.test: fix to (Bug 954263) where 'file executable'
- was case-sensitive.
+ * library/safe.tcl (safe::AliasFileSubcommand): Don't assume that
+ slaves have corresponding commands, as that is not true for
+ sub-subinterpreters (used in Tk's test suite).
-2004-05-17 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * doc/safe.n: [Bug 1997845]: Corrected formatting so that generated
+ HTML can link properly.
- * doc/OpenFileChnl.3: Documented type of 'offset' argument to
- Tcl_Seek was wrong. [Bug 953374]
+ * tests/socket.test (socket*-13.1): Prevented intermittent test
+ failure due to race condition.
-2004-05-16 Miguel Sofer <msofer@users.sf.net>
+2012-05-29 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclExecute.c (TclExecuteByteCode): remove one level of
- indirection for compiledLocals addressing.
+ * doc/expr.n, doc/mathop.n: [Bug 2931407]: Clarified semantics of
+ division and remainder operators.
-2004-05-16 Miguel Sofer <msofer@users.sf.net>
+2012-05-29 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclExecute.c (INST_CALL_FUNC1): bugfix; restored
- (DE)CACHE_STACK_INFO pair around the call - the user defined math
- function could cause a recursive call to TEBC.
+ * win/tclWinDde.c: [Bug 3525762]: Encoding handling in dde.
+ * win/Makefile.in: Fix "make genstubs" when cross-compiling on UNIX
-2004-05-16 Miguel Sofer <msofer@users.sf.net>
+2012-05-28 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclBasic.c (Tcl_DeleteInterp):
- * generic/tclExecute.c (INST_START_CMD): interp deletion now
- modifies the compileEpoch, eliminating the need for the check for
- interp deletion in INST_START_CMD.
+ * library/safe.tcl (safe::AliasFileSubcommand): [Bug 3529949]: Made a
+ more sophisticated method for preventing information leakage; it
+ changes references to "~user" into "./~user", which is safe.
-2004-05-16 Miguel Sofer <msofer@users.sf.net>
+2012-05-25 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclCompile.h:
- * generic/tclCompile.c:
- * generic/tclExecute.c: changed implementation of {expand}, last
- chance while in alpha as ...
+ * doc/namespace.n, doc/Ensemble.3: [Bug 3528418]: Document what is
+ going on with respect to qualification of command prefixes in ensemble
+ subcommand maps.
+ * generic/tclIO.h (SYNTHETIC_EVENT_TIME): Factored out the definition
+ of the amount of time that should be waited before firing a synthetic
+ event on a channel.
+
+2012-05-25 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinDde.c: [Bug 473946]: Special characters were not correctly
+ sent, now for XTYP_EXECUTE as well as XTYP_REQUEST.
+ * win/Makefile.in: Fix "make genstubs" when cross-compiling on UNIX
+
+2012-05-24 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/genStubs.tcl: Take cygwin handling of X11 into account.
+ * generic/tcl*Decls.h: re-generated
+ * generic/tclStubInit.c: Implement TclpIsAtty, Cygwin only.
+ * doc/dde.n: Doc fix: "dde execute iexplore" doesn't work
+ without -async, because iexplore doesn't return a value
+
+2012-05-24 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/genStubs.tcl: Let cygwin share stub table with win32
+ * win/tclWinSock.c: implement TclpInetNtoa for win32
+ * generic/tclInt.decls: Revert most of [3caedf05df], since when
+ we let cygwin share the win32 stub table this is no longer necessary
+ * generic/tcl*Decls.h: re-generated
+ * doc/dde.n: 1.3 -> 1.4
+
+2012-05-23 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclZlib.c (ZlibTransformInput): [Bug 3525907]: Ensure that
+ decompressed input is flushed through the transform correctly when the
+ input stream gets to the end. Thanks to Alexandre Ferrieux and Andreas
+ Kupries for their work on this.
+
+2012-05-21 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclFileName.c: When using Tcl_SetObjLength() calls to
+ * generic/tclPathObj.c: grow and shrink the objPtr->bytes
+ buffer, care must be taken that the value cannot possibly become pure
+ Unicode. Calling Tcl_AppendToObj() has the possibility of making such
+ a conversion. Bug found while valgrinding the trunk.
+
+2012-05-21 Jan Nijtmans <nijtmans@users.sf.net>
+
+ IMPLEMENTATION OF TIP#106
+
+ * win/tclWinDde.c: Added encoding-related abilities to
+ * library/dde/pkgIndex.tcl: the [dde] command. The dde package's
+ * tests/winDde.test: version is now 1.4.0.
+ * doc/dde.n:
+
+2012-05-20 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOOBasic.c (TclOO_Class_Constructor): [Bug 2023112]: Cut
+ the amount of hackiness in class constructors, and refactor some of
+ the error message handling from [oo::define] to be saner in the face
+ of odd happenings.
+
+2012-05-17 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): [Bug 3106532]: Corrected
+ resulting indexes from -indexvar option to be usable with [string
+ range]; this was always the intention (and is consistent with [regexp
+ -indices] too).
***POTENTIAL INCOMPATIBILITY***
- Scripts precompiled with ProComp under previous tcl8.5a versions
- may malfunction due to changed instruction numbers for
- INST_LIST_INDEX_IMM, INST_LIST_RANGE_IMM and INST_START_CMD.
-
-2004-05-14 Kevin B. Kenny <kennykb@acm.org>
-
- * generic/tclInt.decls: Promoted TclpLocaltime and TclpGmtime
- * generic/tclIntDecls.h: from Unix-specific stubs to the generic
- * generic/tclIntPlatDecls.h: internal Stubs table. Reran 'genstubs'
+ Uses of [switch -regexp -indexvar] that previously compensated for the
+ wrong offsets (by subtracting 1 from the end indices) now do not need
+ to do so as the value is correct.
+
+ * library/safe.tcl (safe::InterpInit): Ensure that the module path is
+ constructed in the correct order.
+ (safe::AliasGlob): [Bug 2964715]: More extensive handling of what
+ globbing is required to support package loading.
+
+ * doc/expr.n: [Bug 3525462]: Corrected statement about what happens
+ when comparing "0y" and "0x12"; the previously documented behavior was
+ actually a subtle bug (now long-corrected).
+
+2012-05-16 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCmdAH.c (TclMakeFileCommandSafe): [Bug 3445787]: Improve
+ the compatibility of safe interpreters' version of 'file' with that of
+ unsafe interpreters.
+ * library/safe.tcl (::safe::InterpInit): Teach the safe-interp scripts
+ about how to expose 'file' properly.
+
+2012-05-13 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinDde.c: Protect against receiving strings without ending
+ \0, as external applications (or Tcl with TIP #106) could generate
+ that.
+
+2012-05-10 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinDde.c: [Bug 473946]: Special characters not correctly sent
+ * library/dde/pkgIndex.tcl: Increase version to 1.3.3
+
+2012-05-10 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * {win,unix}/configure{,.in}: [Bug 2812981]: Clean up bundled
+ packages' build directory from within Tcl's ./configure, to avoid
+ stale configuration.
+
+2012-05-09 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclIORChan.c: [Bug 3522560]: Fixed the crash, enabled the
+ test case. Modified [chan postevent] to properly inject the event(s)
+ into the owner thread's event queue for execution in the correct
+ context. Renamed the ForwardOpTo...Thread() function to match with our
+ terminology.
+
+ * tests/ioCmd.test: [Bug 3522560]: Added a test which crashes the core
+ if it were not disabled as knownBug. For a reflected channel
+ transfered to a different thread the [chan postevent] run in the
+ handler thread tries to execute the owner threads's fileevent scripts
+ by itself, wrongly reaching across thread boundaries.
+
+2012-04-28 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclIO.c: Properly close nonblocking channels even when
+ not flushing them.
+
+2012-05-03 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * compat/zlib/*: Upgrade to zlib 1.2.7 (pre-built dll is still 1.2.5,
+ will be upgraded as soon as the official build is available)
+
+2012-05-03 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/socket.test: [Bug 3428754]: Test socket-14.2 tolerate
+ [socket -async] connection that connects synchronously.
+
+ * unix/tclUnixSock.c: [Bug 3428753]: Fix [socket -async] connections
+ that manage to connect synchronously.
+
+2012-05-02 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/configure.in: Better detection and implementation for
+ * generic/configure: cpuid instruction on Intel-derived
+ * generic/tclUnixCompat.c: processors, both 32-bit and 64-bit.
+ * generic/tclTest.c: Move cpuid testcase from win-specific to
+ * win/tclWinTest.c: generic tests, as it should work on all
+ * tests/platform.test: Intel-related platforms now.
+
+2012-04-30 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * tests/ioCmd.test: [Bug 3522560]: Tame deadlocks in broken refchan
+ tests.
+
+2012-04-28 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ IMPLEMENTATION OF TIP#398
+
+ * generic/tclIO.c: Quickly Exit with Non-Blocking Blocked Channels
+ * tests/io.test : *** POTENTIAL INCOMPATIBILITY ***
+ * doc/close.n : (compat flag available)
+
+2012-04-27 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclPort.h: Move CYGWIN-specific stuff from tclPort.h to
+ * generic/tclEnv.c: tclUnixPort.h, where it belongs.
+ * unix/tclUnixPort.h:
+ * unix/tclUnixFile.c:
+
+2012-04-27 Donal K. Fellows <dkf@users.sf.net>
+
+ * library/init.tcl (auto_execok): Allow shell builtins to be detected
+ even if they are upper-cased.
+
+2012-04-26 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclStubInit.c: Get rid of _ANSI_ARGS_ and CONST
+ * generic/tclIO.c:
+ * generic/tclIOCmd.c:
+ * generic/tclTest.c:
+ * unix/tclUnixChan.c:
+
+2012-04-25 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclUtil.c (TclDStringToObj): Added internal function to make
+ the fairly-common operation of converting a DString into an Obj a more
+ efficient one; for long strings, it can just transfer the ownership of
+ the buffer directly. Replaces this:
+ obj=Tcl_NewStringObj(Tcl_DStringValue(&ds),Tcl_DStringLength(&ds));
+ Tcl_DStringFree(&ds);
+ with this:
+ obj=TclDStringToObj(&ds);
+
+2012-04-24 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.decls: [Bug 3508771]: load tclreg.dll in cygwin
+ tclsh
+ * generic/tclIntPlatDecls.h: Implement TclWinGetSockOpt,
+ * generic/tclStubInit.c: TclWinGetServByName and TclWinCPUID for
+ * generic/tclUnixCompat.c: Cygwin.
+ * unix/configure.in:
+ * unix/configure:
+ * unix/tclUnixCompat.c:
+
+2012-04-18 Kevin B. Kenny <kennykb@acm.org>
+
+ * library/tzdata/Africa/Casablanca:
+ * library/tzdata/America/Port-au-Prince:
+ * library/tzdata/Asia/Damascus:
+ * library/tzdata/Asia/Gaza:
+ * library/tzdata/Asia/Hebron: tzdata2012c
+
+2012-04-16 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/FileSystem.3 (Tcl_FSOpenFileChannelProc): [Bug 3518244]: Fixed
+ documentation of this filesystem callback function; it must not
+ register its created channel - that's the responsibility of the caller
+ of Tcl_FSOpenFileChannel - as that leads to reference leaks.
+
+2012-04-15 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclEnsemble.c (NsEnsembleImplementationCmdNR):
+ * generic/tclIOUtil.c (Tcl_FSEvalFileEx): Cut out levels of the C
+ stack by going direct to the relevant internal evaluation function.
+
+ * generic/tclZlib.c (ZlibTransformSetOption): [Bug 3517696]: Make
+ flushing work correctly in a pushed compressing channel transform.
+
+2012-04-12 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.decls: [Bug 3514475]: Remove TclpGetTimeZone and
+ * generic/tclIntDecls.h: TclpGetTZName
+ * generic/tclIntPlatDecls.h:
+ * generic/tclStubInit.c:
+ * unix/tclUnixTime.c:
+ * unix/tclWinTilemc:
+
+2012-04-11 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinInit.c: [Bug 3448512]: clock scan "1958-01-01" fails
+ * win/tcl.m4: only in debug compilation.
+ * win/configure:
+ * unix/tcl.m4: Use NDEBUG consistantly meaning: no debugging.
+ * unix/configure:
+ * generic/tclBasic.c:
+ * library/dde/pkgIndex.tcl: Use [::tcl::pkgconfig get debug] instead
+ * library/reg/pkgIndex.tcl: of [info exists ::tcl_platform(debug)]
+
+2012-04-10 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tcl.h (TCL_DEPRECATED_API): [Bug 2458976]: Added macro that
+ can be used to mark parts of Tcl's API as deprecated. Currently only
+ used for fields of Tcl_Interp, which TIPs 330 and 336 have deprecated
+ with a migration strategy; we want to encourage people to move away
+ from those fields.
+
+2012-04-09 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOODefineCmds.c (ClassVarsSet, ObjVarsSet): [Bug 3396896]:
+ Ensure that the lists of variable names used to drive variable
+ resolution will never have the same name twice.
+
+ * generic/tclVar.c (AppendLocals): [Bug 2712377]: Fix problem with
+ reporting of declared variables in methods. It's really a problem with
+ how [info vars] interacts with variable resolvers; this is just a bit
+ of a hack so it is no longer a big problem.
+
+2012-04-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOO.c (Tcl_NewObjectInstance, TclNRNewObjectInstance):
+ [Bug 3514761]: Fixed bogosity with automated argument description
+ handling when constructing an instance of a class that is itself a
+ member of an ensemble. Thanks to Andreas Kupries for identifying that
+ this was a problem case at all!
+ (Tcl_CopyObjectInstance): Fix potential bleed-over of ensemble
+ information into [oo::copy].
+
+2012-04-04 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinSock.c: [Bug 510001]: TclSockMinimumBuffers needs
+ * generic/tclIOSock.c: platform implementation.
+ * generic/tclInt.decls:
+ * generic/tclIntDecls.h:
* generic/tclStubInit.c:
+
+2012-04-03 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclStubInit.c: Remove the TclpGetTZName implementation for
+ * generic/tclIntDecls.h: Cygwin (from 2012-04-02 commit), re-generated
+ * generic/tclIntPlatDecls.h:
+
+2012-04-02 Donal K. Fellows <dkf@users.sf.net>
+
+ IMPLEMENTATION OF TIP#396.
+
+ * generic/tclBasic.c (builtInCmds, TclNRYieldToObjCmd): Convert the
+ formerly-unsupported yieldm and yieldTo commands into [yieldto].
+
+2012-04-02 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.decls: [Bug 3508771]: load tclreg.dll in cygwin tclsh
+ * generic/tclIntPlatDecls.h: Implement TclWinGetTclInstance,
+ * generic/tclStubInit.c: TclpGetTZName, and various more
+ win32-specific internal functions for Cygwin, so win32 extensions
+ using those can be loaded in the cygwin version of tclsh.
+
+2012-03-30 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tcl.m4: [Bug 3511806]: Compiler checks too early
+ * unix/configure.in: This change allows to build the cygwin and
+ * unix/tclUnixPort.h: mingw32 ports of Tcl/Tk to build out-of-the-box
+ * win/tcl.m4: using a native or cross-compiler.
+ * win/configure.in:
+ * win/tclWinPort.h:
+ * win/README Document how to build win32 or win64 executables
+ with Linux, Cygwin or Darwin.
+
+2012-03-29 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclCmdMZ.c (StringIsCmd): Faster mem-leak free
+ implementation of [string is entier].
+
+2012-03-27 Donal K. Fellows <dkf@users.sf.net>
+
+ IMPLEMENTATION OF TIP#395.
+
+ * generic/tclCmdMZ.c (StringIsCmd): Implementation of the [string is
+ entier] check. Code by Jos Decoster.
+
+2012-03-27 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.h: [Bug 3508771]: Wrong Tcl_StatBuf used on MinGW.
+ * generic/tclFCmd.c: [Bug 2015723]: Duplicate inodes from file stat
+ * generic/tclCmdAH.c: on windows (but now for cygwin as well).
+ * generic/tclOODefineCmds.c: minor gcc warning
+ * win/tclWinPort.h: Use lower numbers, preventing integer overflow.
+ Remove the workaround for mingw-w64 [Bug 3407992]. It's long fixed.
+
+2012-03-27 Donal K. Fellows <dkf@users.sf.net>
+
+ IMPLEMENTATION OF TIP#397.
+
+ * generic/tclOO.c (Tcl_CopyObjectInstance): [Bug 3474460]: Make the
+ target object name optional when copying classes. [RFE 3485060]: Add
+ callback method ("<cloned>") so that scripted control over copying is
+ easier.
+ ***POTENTIAL INCOMPATIBILITY***
+ If you'd previously been using the "<cloned>" method name, this now
+ has a standard semantics and call interface. Only a problem if you are
+ also using [oo::copy].
+
+2012-03-26 Donal K. Fellows <dkf@users.sf.net>
+
+ IMPLEMENTATION OF TIP#380.
+
+ * doc/define.n, doc/object.n, generic/tclOO.c, generic/tclOOBasic.c:
+ * generic/tclOOCall.c, generic/tclOODefineCmds.c, generic/tclOOInt.h:
+ * tests/oo.test: Switch definitions of lists of things in objects and
+ classes to a slot-based approach, which gives a lot more flexibility
+ and programmability at the script-level. Introduce new [::oo::Slot]
+ class which is the implementation of these things.
+
+ ***POTENTIAL INCOMPATIBILITY***
+ The unknown method handler now may be asked to deal with the case
+ where no method name is provided at all. The default implementation
+ generates a compatible error message, and any override that forces the
+ presence of a first argument (i.e., a method name) will continue to
+ function as at present as well, so this is a pretty small change.
+
+ * generic/tclOOBasic.c (TclOO_Object_Destroy): Made it easier to do a
+ tailcall inside a normally-invoked destructor; prevented leakage out
+ to calling command.
+
+2012-03-25 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.decls: [Bug 3508771]: load tclreg.dll in cygwin
+ * generic/tclIntPlatDecls.h: tclsh. Implement TclWinConvertError,
+ * generic/tclStubInit.c: TclWinConvertWSAError, and various more
+ * unix/Makefile.in: win32-specific internal functions for
+ * unix/tcl.m4: Cygwin, so win32 extensions using those
+ * unix/configure: can be loaded in the cygwin version of
+ * win/tclWinError.c: tclsh.
+
+2012-03-23 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.decls: Revert some cygwin-related signature
+ * generic/tclIntPlatDecls.h: changes from [835f8e1e9d] (2010-01-22).
+ * win/tclWinError.c: They were an attempt to make the cygwin
+ port compile again, but since cygwin is
+ based on unix this serves no purpose any
+ more.
+ * win/tclWinSerial.c: Use EAGAIN in stead of EWOULDBLOCK,
+ * win/tclWinSock.c: because in VS10+ the value of
+ EWOULDBLOCK is no longer the same as
+ EAGAIN.
+ * unix/Makefile.in: Add tclWinError.c to the CYGWIN build.
+ * unix/tcl.m4:
+ * unix/configure:
+
+2012-03-20 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.decls: [Bug 3508771]: load tclreg.dll in cygwin
+ * generic/tclInt.decls: tclsh. Implement TclWinGetPlatformId,
+ * generic/tclIntPlatDecls.h: Tcl_WinUtfToTChar, Tcl_WinTCharToUtf (and
+ * generic/tclPlatDecls.h: a dummy TclWinCPUID) for Cygwin, so win32
+ * generic/tclStubInit.c: extensions using those can be loaded in
+ * unix/tclUnixCompat.c: the cygwin version of tclsh.
+
+2012-03-19 Venkat Iyer <venkat@comit.com>
+
+ * library/tzdata/America/Atikokan: Update to tzdata2012b.
+ * library/tzdata/America/Blanc-Sablon:
+ * library/tzdata/America/Dawson_Creek:
+ * library/tzdata/America/Edmonton:
+ * library/tzdata/America/Glace_Bay:
+ * library/tzdata/America/Goose_Bay:
+ * library/tzdata/America/Halifax:
+ * library/tzdata/America/Havana:
+ * library/tzdata/America/Moncton:
+ * library/tzdata/America/Montreal:
+ * library/tzdata/America/Nipigon:
+ * library/tzdata/America/Rainy_River:
+ * library/tzdata/America/Regina:
+ * library/tzdata/America/Santiago:
+ * library/tzdata/America/St_Johns:
+ * library/tzdata/America/Swift_Current:
+ * library/tzdata/America/Toronto:
+ * library/tzdata/America/Vancouver:
+ * library/tzdata/America/Winnipeg:
+ * library/tzdata/Antarctica/Casey:
+ * library/tzdata/Antarctica/Davis:
+ * library/tzdata/Antarctica/Palmer:
+ * library/tzdata/Asia/Yerevan:
+ * library/tzdata/Atlantic/Stanley:
+ * library/tzdata/Pacific/Easter:
+ * library/tzdata/Pacific/Fakaofo:
+ * library/tzdata/America/Creston: (new)
+
+2012-03-19 Reinhard Max <max@suse.de>
+
+ * unix/tclUnixSock.c (Tcl_OpenTcpServer): Use the values returned
+ by getaddrinfo() for all three arguments to socket() instead of
+ only using ai_family. Try to keep the most meaningful error while
+ iterating over the result list, because using the last error can
+ be misleading.
+
+2012-03-15 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.h: [Bug 3288345]: Wrong Tcl_StatBuf used on Cygwin
+ * unix/tclUnixFile.c:
* unix/tclUnixPort.h:
+ * win/cat.c: Remove cygwin stuff no longer needed
+ * win/tclWinFile.c:
+ * win/tclWinPort.h:
- * generic/tclClock.c: Changed a buggy 'GMT' timezone specification
- to the correct 'GMT0'. [Bug #922848]
-
- * unix/tclUnixThrd.c: Moved TclpGmtime and TclpLocaltime to
- unix/tclUnixTime.c where they belong.
-
- * unix/tclUnixTime.c (TclpGmtime, TclpLocaltime, TclpGetTimeZone,
- ThreadSafeGMTime [removed],
- ThreadSafeLocalTime [removed],
- SetTZIfNecessary, CleanupMemory):
- Restructured to make sure that the same mutex protects
- all calls to localtime, gmtime, and tzset. Added a check
- in front of those calls to make sure that the TZ env var
- hasn't changed since the last call to tzset, and repeat
- tzset if necessary. [Bug #942078] Removed a buggy test
- of the Daylight Saving Time information in 'gettimeofday'
- in favor of applying 'localtime' to a known value.
- [Bug #922848]
-
- * tests/clock.test (clock-3.14): Added test to make sure that
- changes to $env(TZ) take effect immediately.
-
- * win/tclWinTime.c (TclpLocaltime, TclpGmtime):
- Added porting layer for 'localtime' and 'gmtime' calls.
-
-2004-05-14 Miguel Sofer <msofer@users.sf.net>
+2012-03-12 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclExecute.c:
- * generic/tclCompile.h: the math functions receive a pointer to
- top of the stack (tosPtr) instead of the execution environment
- (eePtr). First step towards a change in the execution stack
- management - it is now only used within TEBC.
+ * win/tclWinFile.c: [Bug 3388350]: mingw64 compiler warnings
-2004-05-13 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2012-03-11 Donal K. Fellows <dkf@users.sf.net>
- TIP#143 IMPLEMENTATION
+ * doc/*.n, doc/*.3: A number of small spelling and wording fixes.
- * generic/tclExecute.c (TclCompEvalObj, TclExecuteByteCode):
- * generic/tclBasic.c (TclEvalObjvInternal): Enable limit checking.
- * generic/tclInterp.c (Tcl_Limit*): Public limit API.
- * generic/tcl.decls:
- * tests/interp.test: Basic tests of command limits.
+2012-03-08 Donal K. Fellows <dkf@users.sf.net>
- * doc/binary.n: TIP#129 IMPLEMENTATION [Patch 858211]
- * generic/tclBinary.c: Note that the test suite probably has many more
- * tests/binary.test: failures now due to alterations in constraints.
+ * doc/info.n: Various minor fixes (prompted by Andreas Kupries
+ * doc/socket.n: detecting a spelling mistake).
-2004-05-12 Miguel Sofer <msofer@users.sf.net>
+2012-03-07 Andreas Kupries <andreask@activestate.com>
- Optimisations for INST_START_CMD [Bug 926164].
- * generic/tclCompile.c (TclCompileScript): avoid emitting
- INST_START_CMD as the first instruction in a bytecoded Tcl_Obj. It
- is not needed, as the checks are done before calling TEBC.
- * generic/tclExecute.c (TclExecuteByteCode): runtime peephole
- optimisation: check at INST_POP if the next instruction is
- INST_START_CMD, in which case we fall through.
-
-2004-05-11 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * library/http/http.tcl: [Bug 3498327]: Generate upper-case
+ * library/http/pkgIndex.tcl: hexadecimal output for compliance
+ * tests/http.test: with RFC 3986. Bumped version to 2.8.4.
+ * unix/Makefile.in:
+ * win/Makefile.in:
- * doc/split.n, doc/join.n: Updated examples and added more.
+2012-03-06 Jan Nijtmans <nijtmans@users.sf.net>
-2004-05-11 Vince Darley <vincentdarley@users.sourceforge.net>
+ * win/tclWinPort.h: Compatibility with older Visual Studio versions.
- * doc/glob.n: documented behaviour of symbolic links with
- 'glob -types d' (Bug 951489)
+2012-03-04 Jan Nijtmans <nijtmans@users.sf.net>
-2004-05-11 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclLoad.c: Patch from the cygwin folks
+ * unix/tcl.m4:
+ * unix/configure: (re-generated)
- * doc/scan.n: Updated the examples to be clearer about their
- relevance to the scan command.
+2012-03-02 Donal K. Fellows <dkf@users.sf.net>
-2004-05-10 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclBinary.c (Tcl_SetByteArrayObj): [Bug 3496014]: Only zero
+ out the memory block if it is not being immediately overwritten. (Our
+ caller might still overwrite, but we should at least avoid
+ known-useless work.)
- * doc/scan.n: Added examples.
+2012-02-29 Jan Nijtmans <nijtmans@users.sf.net>
-2004-05-10 David Gravereaux <davygrvy@pobox.com>
+ * generic/tclIOUtil.c: [Bug 3466099]: BOM in Unicode
+ * generic/tclEncoding.c:
+ * tests/source.test:
- * win/tclWinPipe.c (BuildCommandLine): Moved non-obvious appending
- logic to outside the loop and added commentary for its purpose. Also
- use the existence of contents in the linePtr rather than the scratch
- DString post the append, as this more clear.
+2012-02-23 Donal K. Fellows <dkf@users.sf.net>
- (TclpCreateProcess): When under NT, with no console, and executing a
- DOS application, the path priming does not need an ending space as
- BuildCommandLine() will do this for us.
+ * tests/reg.test (14.21-23): Add tests relating to Bug 1115587. Actual
+ bug is characterised by test marked with 'knownBug'.
-2004-05-08 Vince Darley <vincentdarley@users.sourceforge.net>
+2012-02-17 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclFileName.c:
- * generic/tclIOUtil.c: remove some compiler warnings on MacOS X.
+ * generic/tclIOUtil.c: [Bug 2233954]: AIX: compile error
+ * unix/tclUnixPort.h:
-2004-05-07 Chengye Mao <chengye.geo@yahoo.com>
- * win/tclWinPipe.c: refixed bug 789040 re-entered in rev 1.41.
- Let's be careful and don't re-enter previously fixed bugs.
+2012-02-16 Donal K. Fellows <dkf@users.sf.net>
-2004-05-08 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclExecute.c (INST_LIST_RANGE_IMM): Enhance implementation
+ so that shortening a (not multiply-referenced) list by lopping the end
+ off with [lrange] or [lreplace] is efficient.
- * doc/format.n: Added examples.
+2012-02-15 Donal K. Fellows <dkf@users.sf.net>
-2004-05-07 Miguel Sofer <msofer@users.sf.net>
+ * generic/tclCompCmds.c (TclCompileLreplaceCmd): Added a compilation
+ strategy for [lreplace] that tackles the cases which are equivalent to
+ a static [lrange].
+ (TclCompileLrangeCmd): Add compiler for [lrange] with constant indices
+ so we can take advantage of existing TCL_LIST_RANGE_IMM opcode.
+ (TclCompileLindexCmd): Improve coverage of constant-index-style
+ compliation using technique developed for [lrange] above.
- * doc/unset.n: added upvar.n to the "see also" list
+ (TclCompileDictForCmd): [Bug 3487626]: Fix crash in compilation of
+ [dict for] when its implementation command is used directly rather
+ than through the ensemble.
-2004-05-07 Reinhard Max <max@suse.de>
+2012-02-09 Don Porter <dgp@users.sourceforge.net>
- * generic/tclEncoding.c:
- * tests/encoding.test: added support and tests for translating
- embedded null characters between real nullbytes and the internal
- representation on input/output (Bug #949905).
-
-2004-05-07 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclStringObj.c: Converted the memcpy() calls in append
+ operations to memmove() calls. This adds safety in the case of
+ overlapping copies, and improves performance on some benchmarks.
- * generic/tclFileName.c:
- * generic/tclIOUtil.c:
- * generic/tclFileSystem.h:
- * tests/fileSystem.test: fix for [Bug 943995], in which vfs-
- registered root volumes were not handled correctly as glob
- patterns in all circumstances.
+2012-02-06 Don Porter <dgp@users.sourceforge.net>
-2004-05-06 Miguel Sofer <msofer@users.sf.net>
+ * generic/tclEnsemble.c: [Bug 3485022]: TclCompileEnsemble() avoid
+ * tests/trace.test: compile when exec traces set.
- * generic/tclInt.h:
- * generic/tclObj.c (TclFreeObj): made TclFreeObj use the new macro
- TclFreeObjMacro(), so that the allocation and freeing of Tcl_Obj
- is defined in a single spot (the macros in tclInt.h), with the
- exception of the TCL_MEM_DEBUG case.
- The #ifdef logic for the corresponding macros has been reformulated
- to make it clearer.
+2012-02-06 Miguel Sofer <msofer@users.sf.net>
-2004-05-05 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclTrace.c: [Bug 3484621]: Ensure that execution traces on
+ * tests/trace.test: bytecoded commands bump the interp's compile
+ epoch.
- * doc/break.n, doc/continue.n, doc/for.n, doc/while.n: More examples.
+2012-02-02 Jan Nijtmans <nijtmans@users.sf.net>
-2004-05-05 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclUniData.c: [FRQ 3464401]: Support Unicode 6.1
+ * generic/regc_locale.c:
- * tests/unixInit.test (unixInit-2.10): Test correction for Mac OSX.
- Be sure to consistently compare normalized path names. Thanks to
- Steven Abner (tauvan). [Bug 948177]
+2012-02-02 Don Porter <dgp@users.sourceforge.net>
-2004-05-05 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * win/tclWinFile.c: [Bugs 2974459,2879351,1951574,1852572,
+ 1661378,1613456]: Revisions to the NativeAccess() routine that queries
+ file permissions on Windows native filesystems. Meant to fix numerous
+ bugs where [file writable|readable|executable] "lies" about what
+ operations are possible, especially when the file resides on a Samba
+ share.
- * doc/CrtObjCmd.3: Remove reference to Tcl_RenameCommand; there is
- no such API. [Bug 848440]
+2012-02-01 Donal K. Fellows <dkf@users.sf.net>
-2004-05-05 David Gravereaux <davygrvy@pobox.com>
+ * doc/AddErrInfo.3: [Bug 3482614]: Documentation nit.
- * win/tclWinSock.c (SocketEventProc) : connect errors should
- fire both the readable and writable handlers because this is
- how it works on UNIX [Bug 794839]
+2012-01-30 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclEncoding.c (TclFinalizeEncodingSubsystem):
- FreeEncoding(systemEncoding); moved to before the hash table
- itereation as it was causing a double free attempt under some
- conditions.
+ * generic/tclCompCmds.c (TclCompileCatchCmd): Added a more efficient
+ bytecode generator for the case where 'catch' is used without any
+ variable arguments; don't capture the result just to discard it.
- * win/coffbase.txt: Added the tls extension to the list of
- preferred load addresses.
+2012-01-26 Don Porter <dgp@users.sourceforge.net>
-2004-05-04 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tclCmdAH.c: [Bug 3479689]: New internal routine
+ * generic/tclFCmd.c: TclJoinPath(). Refactor all the
+ * generic/tclFileName.c: *Join*Path* routines to give them more
+ * generic/tclInt.h: useful interfaces that are easier to
+ * generic/tclPathObj.c: manage getting the refcounts right.
- * tests/fileSystem.test (filesystem-1.39): replace 'file volumes'
- * tests/fileName.test (filename-12.9,10): lindex with direct C:/
- hard-coded because A:/ was being used and that is empty for most.
+2012-01-26 Don Porter <dgp@users.sourceforge.net>
- * tests/winFCmd.test (winFCmd-16.12): test volumerelative $HOME
+ * generic/tclPathObj.c: [Bug 3475569]: Add checks for unshared values
+ before calls demanding them. [Bug 3479689]: Stop memory corruption
+ when shimmering 0-refCount value to "path" type.
-2004-05-04 Don Porter <dgp@users.sourceforge.net>
+2012-01-25 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclAlloc.c: Make sure Tclp*Alloc* routines get
- * generic/tclInt.h: declared in the TCL_MEM_DEBUG and
- * generic/tclThreadAlloc.c: TCL_THREADS configuration. [Bug 947564]
+ * generic/tclOO.c (Tcl_CopyObjectInstance): [Bug 3474460]: When
+ copying an object, make sure that the configuration of the variable
+ resolver is also duplicated.
- * tests/tcltest.test: Test corrections for Mac OSX. Thanks
- to Steven Abner (tauvan). [Bug 947440]
+2012-01-22 Jan Nijtmans <nijtmans@users.sf.net>
-2004-05-04 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * tools/uniClass.tcl: [FRQ 3473670]: Various Unicode-related
+ * tools/uniParse.tcl: speedups/robustness. Enhanced tools to be
+ * generic/tclUniData.c: able to handle characters > 0xffff. Done in
+ * generic/tclUtf.c: all branches in order to simplify merges for
+ * generic/regc_locale.c: new Unicode versions (such as 6.1)
- * generic/tclEvent.c (TclSetLibraryPath): Suppress a warning.
+2012-01-22 Donal K. Fellows <dkf@users.sf.net>
-2004-05-03 Andreas Kupries <andreask@activestate.com>
+ * generic/tclDictObj.c (DictExistsCmd): [Bug 3475264]: Ensure that
+ errors only ever happen when insufficient arguments are supplied, and
+ not when a path doesn't exist or a dictionary is poorly formatted (the
+ two cases can't be easily distinguished).
- * Applied [SF Tcl Patch 868853], fixing a mem leak in
- TtySetOptionProc. Report and Patch provided by Stuart
- Cassoff <stwo@users.sf.net>.
+2012-01-21 Jan Nijtmans <nijtmans@users.sf.net>
-2004-05-03 Miguel Sofer <msofer@users.sf.net>
+ * generic/tcl.h: [Bug 3474726]: Eliminate detection of struct
+ * generic/tclWinPort.h: _stat32i64, just use _stati64 in combination
+ * generic/tclFCmd.c: with _USE_32BIT_TIME_T, which is the same
+ * generic/tclTest.c: then. Only keep _stat32i64 usage for cygwin,
+ * win/configure.in: so it will not conflict with cygwin's own
+ * win/configure: struct stat.
- * generic/tclProc.c (TclCreateProc): comments corrected.
-
-2004-05-03 Miguel Sofer <msofer@users.sf.net>
+2012-01-21 Don Porter <dgp@users.sourceforge.net>
- * generic/tclCompile.c (TclCompileScript): setting the compilation
- namespace outside of the loop.
+ * generic/tclCmdMZ.c: [Bug 3475667]: Prevent buffer read overflow.
+ Thanks to "sebres" for the report and fix.
-2004-05-03 Miguel Sofer <msofer@users.sf.net>
+2012-01-17 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclCompile.c:
- * generic/tclInt.h: reverted fix for [Bug 926445] of 2004-04-02,
- restoring TCL_ALIGN to the header file. Todd Helfter reported that
- the macro is required by tbcload.
+ * doc/dict.n (dict with): [Bug 3474512]: Explain better what is going
+ on when a dictionary key and the dictionary variable collide.
-2004-05-03 Kevin Kenny <kennykb@acm.org>
+2012-01-13 Donal K. Fellows <dkf@users.sf.net>
- * win/tclWin32Dll.c (TclpCheckStackSpace):
- * tests/stack.test (stack-3.1): Fix for undetected stack
- overflow in TclReExec on Windows. [Bug 947070]
-
-2004-05-03 Don Porter <dgp@users.sourceforge.net>
+ * library/http/http.tcl (http::Connect): [Bug 3472316]: Ensure that we
+ only try to read the socket error exactly once.
- * library/init.tcl: Corrected unique prefix matching of
- interactive command completion in [unknown]. [Bug 946952]
+2012-01-12 Donal K. Fellows <dkf@users.sf.net>
-2004-05-02 Miguel Sofer <msofer@users.sf.net>
+ * doc/tclvars.n: [Bug 3466506]: Document more environment variables.
- * generic/tclProc.c (TclObjInvokeProc):
- * tests/proc.test (proc-3.6): fix for bad quoting of multi-word
- proc names in error messages [Bug 942757]
+2012-01-09 Jan Nijtmans <nijtmans@users.sf.net>
-2004-04-30 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclUtf.c: [Bug 3464428]: [string is graph \u0120] was
+ * generic/regc_locale.c: wrong. Add table for Unicode [:cntrl:] class.
+ * tools/uniClass.tcl: Generate Unicode [:cntrl:] class table.
+ * tests/utf.test:
- * doc/glob.n, doc/incr.n, doc/set.n: More examples.
- * doc/if.n, doc/rename.n, doc/time.n:
+2012-01-08 Kevin B. Kenny <kennykb@acm.org>
-2004-04-30 Don Porter <dgp@users.sourceforge.net>
+ * library/clock.tcl (ReadZoneinfoFile): [Bug 3470928]: Corrected a bug
+ * tests/clock.test (clock-56.4): where loading zoneinfo would
+ fail if one timezone abbreviation was a proper tail of another, and
+ zic used the same bytes of the file to represent both of them. Added a
+ test case for the bug, using the same data that caused the observed
+ failure "in the wild."
- * generic/tclInt.h: Replaced Kevin Kenny's temporary
- * generic/tclThreadAlloc.c: fix for Bug 945447 with a cleaner,
- more permanent replacement.
+2011-12-30 Venkat Iyer <venkat@comit.com>
-2004-04-30 Kevin B. Kenny <kennykb@acm.org>
+ * library/tzdata/America/Bahia: Update to Olson's tzdata2011n
+ * library/tzdata/America/Havana:
+ * library/tzdata/Europe/Kiev:
+ * library/tzdata/Europe/Simferopol:
+ * library/tzdata/Europe/Uzhgorod:
+ * library/tzdata/Europe/Zaporozhye:
+ * library/tzdata/Pacific/Fiji:
- * generic/tclThreadAlloc.c: Added a temporary (or so I hope!)
- inclusion of "tclWinInt.h" to avoid problems when compiling
- on Win32-VC++ with --enable-threads. [Bug 945447]
-
-2004-04-30 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2011-12-23 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/puts.n: Added a few examples.
+ * generic/tclUtf.c: [Bug 3464428]: [string is graph \u0120] is wrong.
+ * generic/tclUniData.c:
+ * generic/regc_locale.c:
+ * tests/utf.test:
+ * tools/uniParse.tcl: Clean up some unused stuff, and be more robust
+ against changes in UnicodeData.txt syntax
-2004-04-29 Don Porter <dgp@users.sourceforge.net>
+2011-12-13 Andreas Kupries <andreask@activestate.com>
- * tests/execute.test (execute-8.2): Avoid crashes when there
- is limited system stack space (threads-enabled).
+ * generic/tclCompile.c (TclInitAuxDataTypeTable): Extended to register
+ the DictUpdateInfo structure as an AuxData type. For use by tbcload,
+ tclcompiler.
-2004-04-28 Miguel Sofer <msofer@users.sf.net>
+2011-12-11 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/global.n:
- * doc/upvar.n:
- * generic/tclVar.c (ObjMakeUpvar):
- * tests/upvar.test (upvar-8.11):
- * tests/var.test (var-3.11): Avoid creation of unusable variables:
- [Bug 600812] [TIP 184].
+ * generic/regc_locale.c: [Bug 3457031]: Some Unicode 6.0 chars not
+ * tests/utf.test: in [:print:] class
-2004-04-28 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2011-12-07 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/lsearch.n: Fixed fault in documentation of -index option [943448]
+ * tools/uniParse.tcl: [Bug 3444754]: string tolower \u01c5 is wrong
+ * generic/tclUniData.c:
+ * tests/utf.test:
-2004-04-26 Don Porter <dgp@users.sourceforge.net>
+2011-11-30 Jan Nijtmans <nijtmans@users.sf.net>
- * unix/tclUnixFCmd.c (TclpObjNormalizePath): Corrected improper
- positioning of returned checkpoint. [Bug 941108]
+ * library/tcltest/tcltest.tcl: [Bug 967195]: Make tcltest work
+ when tclsh is compiled without using the setargv() function on mingw.
-2004-04-26 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2011-11-29 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/open.n, doc/close.n: Updated (thanks to David Welton) to be
- clearer about pipeline errors and added example to open(n) that shows
- simple pipeline use. [Patches 941377,941380]
+ * win/Makefile.in: don't install tommath_(super)?class.h
+ * unix/Makefile.in: don't install directories like 8.2 and 8.3
+ * generic/tclTomMath.h: [Bug 2991415]: move include tclInt.h from
+ * generic/tclTomMathInt.h: tclTomMath.h to tclTomMathInt.h
- * doc/DictObj.3: Added warning about the use of Tcl_DictObjDone and an
- example of use of iteration. [Bug 940843]
+2011-11-25 Donal K. Fellows <dkf@users.sf.net>
- * doc/Thread.3: Reworked to remove references to testing interfaces
- and instead promote the use of the Thread package. [Patch 932527]
- Also reworked and reordered the page for better readability.
+ * library/history.tcl (history): Simplify the dance of variable
+ management used when chaining to the implementation command.
-2004-04-25 Don Porter <dgp@users.sourceforge.net>
+2011-11-22 Donal K. Fellows <dkf@users.sf.net>
- * generic/tcl.h: Removed obsolete declarations and #include's.
- * generic/tclInt.h: [Bugs 926459, 926486]
+ * generic/tclExecute.c (TclCompileObj): Simplify and de-indent the
+ logic so that it is easier to comprehend.
-2004-04-24 David Gravereaux <davygrvy@pobox.com>
+2011-11-22 Jan Nijtmans <nijtmans@users.sf.net>
- * win/tclWin32Dll.c (DllMain): Added DisableThreadLibraryCalls()
- for the DLL_PROCESS_ATTACH case. We're not interested in knowing
- about DLL_THREAD_ATTACH, so disable the notices.
+ * win/tclWinPort.h: [Bug 3354324]: Windows: [file mtime] sets wrong
+ * win/tclWinFile.c: time (VS2005+ only).
+ * generic/tclTest.c:
-2004-04-24 Daniel Steffen <das@users.sourceforge.net>
+2011-11-20 Joe Mistachkin <joe@mistachkin.com>
- * generic/tclPort.h:
- * macosx/Makefile:
- * unix/Makefile.in: followup on tcl header reform [FR 922727]:
- removed use of relative #include paths in tclPort.h to allow
- installation of private headers outside of tcl source tree; added
- 'unix' dir to compiler header search path; add newly required
- tcl private headers to Tcl.framework on Mac OSX.
+ * tests/thread.test: Remove unnecessary [after] calls from the thread
+ tests. Make error message matching more robust for tests that may
+ have built-in race conditions. Test thread-7.26 must first unset all
+ thread testing related variables. Revise results of the thread-7.28
+ through thread-7.31 tests to account for the fact they are canceled
+ via a script sent to the thread asynchronously, which then impacts the
+ error message handling. Attempt to manually drain the event queue for
+ the main thread after joining the test thread to make sure no stray
+ events are processed at the wrong time on the main thread. Revise all
+ the synchronization and comparison semantics related to the thread id
+ and error message.
-2004-04-23 Andreas Kupries <andreask@activestate.com>
+2011-11-18 Joe Mistachkin <joe@mistachkin.com>
- * generic/tclIO.c (Tcl_SetChannelOption): Fixed [SF Tcl Bug
- 930851]. When changing the eofchar we have to zap the related
- flags to prevent them from prematurely aborting the next read.
+ * tests/thread.test: Remove all use of thread::release from the thread
+ 7.x tests, replacing it with a script that can easily cause "stuck"
+ threads to self-destruct for those test cases that require it. Also,
+ make the error message handling far more robust by keeping track of
+ every asynchronous error.
-2004-04-25 Vince Darley <vincentdarley@users.sourceforge.net>
+2011-11-17 Joe Mistachkin <joe@mistachkin.com>
- * generic/tclPathObj.c: fix to [Bug 940281]. Tcl_FSJoinPath
- will now always return a valid Tcl_Obj when the input is valid.
- * generic/tclIOUtil.c: fix to [Bug 931823] for a more consistent
- Tcl_FSPathSeparator() implementation which allows filesystems
- not to implement their Tcl_FSFilesystemSeparatorProc if they
- wish to use the default '/'. Also fixed associated memory leak
- seen with, e.g., tclvfs package.
- * doc/FileSystem.3: documented Tcl_FSJoinPath return values
- more clearly, and Tcl_FSFilesystemSeparatorProc requirements.
+ * tests/thread.test: Refactor all the remaining thread-7.x tests that
+ were using [testthread]. Note that this test file now requires the
+ very latest version of the Thread package to pass all tests. In
+ addition, the thread-7.18 and thread-7.19 tests have been flagged as
+ knownBug because they cannot pass without modifications to the [expr]
+ command, persuant to TIP #392.
-2004-04-23 David Gravereaux <davygrvy@pobox.com>
+2011-11-17 Joe Mistachkin <joe@mistachkin.com>
- * win/tclWin32Dll.c: Removed my mistake from 4/19 of adding an
- exit handler to TclWinInit. TclWinEncodingsCleanup called from
- TclFinalizeFilesystem does the Tcl_FreeEncoding for us.
+ * generic/tclThreadTest.c: For [testthread cancel], avoid creating a
+ new Tcl_Obj when the default script cancellation result is desired.
- * win/tclWinChan.c (Tcl_MakeFileChannel) : Case for CloseHandle
- returning zero and not throwing a
- RaiseException(EXCEPTION_INVALID_HANDLE) now being done.
+2011-11-11 Donal K. Fellows <dkf@users.sf.net>
-2004-04-22 David Gravereaux <davygrvy@pobox.com>
+ * win/tclWinConsole.c: Refactor common thread handling patterns.
- * generic/tclEvent.c: TclSetLibraryPath's use of caching the
- stringrep of the pathPtr object to TclGetLibraryPath called from
- another thread was ineffective if the original's stringrep had
- been invalidated as what happens when it gets muted to a list.
+2011-11-11 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
- * win/tclWinTime.c: If the Tcl_ExitProc (StopCalibration) is
- called from the stack frame of DllMain's PROCESS_DETACH, the
- wait operation should timeout and continue.
+ * tests/zlib.test: [Bug 3428756]: Use nonblocking writes in
+ single-threaded IO tests to avoid deadlocks when going beyond OS
+ buffers. Tidy up [chan configure] flags across zlib.test.
- * generic/tclInt.h:
- * generic/tclThread.c:
- * generic/tclEvent.c:
- * unix/tclUnixThrd.c:
- * win/tclWinThrd.c: Provisions made so masterLock, initLock,
- allocLock and joinLock mutexes can be recovered during
- Tcl_Finalize.
+2011-11-03 Donal K. Fellows <dkf@users.sf.net>
-2004-04-22 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * unix/tclUnixCompat.c (TclpGetPwNam, TclpGetPwUid, TclpGetGrNam)
+ (TclpGetGrGid): Use the elaborate memory management scheme outlined on
+ http://www.opengroup.org/austin/docs/austin_328.txt to handle Tcl's
+ use of standard reentrant versions of the passwd/group access
+ functions so that everything can work on all BSDs. Problem identified
+ by Stuart Cassoff.
- * doc/switch.n: Reworked the examples to be more systematically
- named and to cover some TIP#75 capabilities.
+2011-10-20 Don Porter <dgp@users.sourceforge.net>
- * doc/cd.n: Documentation clarification from David Welton.
+ * library/http/http.tcl: Bump to version 2.8.3
+ * library/http/pkgIndex.tcl:
+ * unix/Makefile.in:
+ * win/Makefile.in:
- * doc/exec.n: Added some examples, Windows ones from Arjen Markus
- and Unix ones by myself.
+ * changes: Updates toward 8.6b3 release.
-2004-04-21 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2011-10-20 Donal K. Fellows <dkf@users.sf.net>
- * doc/Hash.3: Added note to Tcl_{First,Next}HashEntry docs that
- deleting the element they return is supported (and is in fact the
- only safe update you can do to the structure of a hashtable while
- an iteration is going over it.)
+ * generic/tclLiteral.c (TclInvalidateCmdLiteral): [Bug 3418547]:
+ Additional code for handling the invalidation of literals.
+ * generic/tclBasic.c (Tcl_CreateObjCommand, Tcl_CreateCommand)
+ (TclRenameCommand, Tcl_ExposeCommand): The four additional places that
+ need extra care when dealing with literals.
+ * generic/tclTest.c (TestInterpResolverCmd): Additional test machinery
+ for interpreter resolvers.
- * doc/bgerror.n: Added example from David Welton. [Patch 939473]
+2011-10-18 Reinhard Max <max@suse.de>
- * doc/after.n: Added examples from David Welton. [Patch 938820]
+ * library/clock.tcl (::tcl::clock::GetSystemTimeZone): Cache the time
+ zone only if it was detected by one of the expensive methods.
+ Otherwise after unsetting TCL_TZ or TZ the previous value will still
+ be used.
-2004-04-19 David Gravereaux <davygrvy@pobox.com>
+2011-10-15 Venkat Iyer <venkat@comit.com>
- * win/tclWin32Dll.c: Added an exit handler in TclWinInit() so
- tclWinTCharEncoding could be freed during Tcl_Finalize().
+ * library/tzdata/America/Sitka: Update to Olson's tzdata2011l
+ * library/tzdata/Pacific/Fiji:
+ * library/tzdata/Asia/Hebron: (New)
- * generic/tclEncoding.c: Added FreeEncoding(systemEncoding) in
- TclFinalizeEncodingSubsystem because its ref count was incremented
- in TclInitEncodingSubsystem.
+2011-10-11 Jan Nijtmans <nijtmans@users.sf.net>
-2004-04-19 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * win/tclWinFile.c: [Bug 2935503]: Incorrect mode field returned by
+ [file stat] command.
- * doc/read.n: Added example from David Welton. [Patch 938056]
+2011-10-09 Donal K. Fellows <dkf@users.sf.net>
-2004-04-19 Kevin B. Kenny <kennykb@acm.org>
+ * generic/tclCompCmds.c (TclCompileDictWithCmd): Corrected handling of
+ qualified names, and added spacial cases for empty bodies (used when
+ [dict with] is just used for extracting variables).
- * generic/tclObj.c (Tcl_GetDoubleFromObj) Corrected
- "short circuit" conversion of int to double. Reported by
- Jeff Hobbs on the Tcl'ers Chat.
-
-2004-04-16 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2011-10-07 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/lreplace.n, doc/lrange.n, doc/llength.n: More examples for
- * doc/linsert.n, doc/lappend.n: the documentation.
+ * generic/tcl.h: Fix gcc warnings (discovered with latest
+ * generic/tclIORChan.c: mingw, based on gcc 4.6.1)
+ * tests/env.test: Fix env.test, when running under wine 1.3.
-2004-04-16 Vince Darley <vincentdarley@users.sourceforge.net>
+2011-10-06 Donal K. Fellows <dkf@users.sf.net>
- * doc/FileSystem.3: Corrected documentation of Tcl_FSUtime, and
- the corresponding filesystem driver Tcl_FSUtimeProc. [Bug 935838]
+ * generic/tclDictObj.c (TclDictWithInit, TclDictWithFinish):
+ * generic/tclCompCmds.c (TclCompileDictWithCmd): Experimental
+ compilation for the [dict with] subcommand, using parts factored out
+ from the interpreted version of the command.
-2004-04-16 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2011-10-05 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/socket.n: Added example from [Patch 936245].
- * doc/gets.n: Added example based on [Patch 935911].
+ * win/tclWinInt.h: Remove tclWinProcs, as it is no longer
+ * win/tclWin32Dll.c: being used.
-2004-04-15 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2011-10-03 Venkat Iyer <venkat@comit.com>
- * generic/tclClock.c (Tcl_ClockObjCmd): Minor fault in a [clock
- clicks] error message.
+ * library/tzdata/Africa/Dar_es_Salaam: Update to Olson's tzdata2011k
+ * library/tzdata/Africa/Kampala:
+ * library/tzdata/Africa/Nairobi:
+ * library/tzdata/Asia/Gaza:
+ * library/tzdata/Europe/Kaliningrad:
+ * library/tzdata/Europe/Kiev:
+ * library/tzdata/Europe/Minsk:
+ * library/tzdata/Europe/Simferopol:
+ * library/tzdata/Europe/Uzhgorod:
+ * library/tzdata/Europe/Zaporozhye:
+ * library/tzdata/Pacific/Apia:
-2004-04-07 Jeff Hobbs <jeffh@ActiveState.com>
+2011-09-29 Donal K. Fellows <dkf@users.sf.net>
- * win/tclWinInit.c (TclpSetInitialEncodings): note that WIN32_CE
- is also a unicode platform.
- * generic/tclEncoding.c (TclFindEncodings, Tcl_FindExecutable):
- * generic/tclInt.h: Correct handling of UTF
- * unix/tclUnixInit.c (TclpInitLibraryPath): data that is actually
- * win/tclWinFile.c (TclpFindExecutable): "clean", allowing the
- * win/tclWinInit.c (TclpInitLibraryPath): loading of Tcl from
- paths that contain multi-byte chars on Windows [Bug 920667]
+ * tools/tcltk-man2html.tcl, tools/tcltk-man2html-utils.tcl: More
+ refactoring so that more of the utility code is decently out of the
+ way. Adjusted the header-material generator so that version numbers
+ are only included in locations where there is room.
- * win/configure: define TCL_LIB_FLAG, TCL_BUILD_LIB_SPEC,
- * win/configure.in: TCL_LIB_SPEC, TCL_PACKAGE_PATH in tclConfig.sh.
+2011-09-28 Jan Nijtmans <nijtmans@users.sf.net>
-2004-04-06 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclOO.h: [RFE 3010352]: make all TclOO API functions
+ * generic/tclOODecls.h: MODULE_SCOPE
+ * generic/tclOOIntDecls.h:
- Patch 922727 committed. Implements three changes:
+2011-09-27 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclInt.h: Reworked the Tcl header files into a clean
- * unix/tclUnixPort.h: hierarchy where tcl.h < tclPort.h < tclInt.h
- * win/tclWinInt.h: and every C source file should #include
- * win/tclWinPort.h: at most one of those files to satisfy its
- declaration needs. tclWinInt.h and tclWinPort.h also better organized
- so that tclWinPort.h includes the Windows implementation of
- cross-platform declarations, while tclWinInt.h makes declarations that
- are available on Windows only.
+ * generic/tclIndexObj.c (Tcl_ParseArgsObjv): [Bug 3413857]: Corrected
+ the memory management for the code parsing arguments when returning
+ "large" numbers of arguments. Also unbroke the TCL_ARGV_AUTO_REST
+ macro in passing.
- * generic/tclBinary.c (TCL_NO_MATH): Deleted the generic/tclMath.h
- * generic/tclMath.h (removed): header file. The internal Tcl
- * macosx/Makefile (PRIVATE_HEADERS): header, tclInt.h, has a
- * win/tcl.dsp: #include <math.h> directly,
- and file external to Tcl needing libm should do the same.
+2011-09-26 Donal K. Fellows <dkf@users.sf.net>
- * win/Makefile.in (WIN_OBJS): Deleted the win/tclWinMtherr.c file.
- * win/makefile.bc (TCLOBJS): It's a vestige from matherr() days
- * win/makefile.vc (TCLOBJS): gone by.
- * win/tcl.dsp:
- * win/tclWinMtherr.c (removed):
+ * generic/tclCmdAH.c (TclMakeFileCommandSafe): [Bug 3211758]: Also
+ make the main [file] command hidden by default in safe interpreters,
+ because that's what existing code expects. This will reduce the amount
+ which the code breaks, but not necessarily eliminate it...
- End Patch 922727.
+2011-09-23 Don Porter <dgp@users.sourceforge.net>
- * tests/unixInit.test (unixInit-3.1): Default encoding on Darwin
- systems is utf-8. Thanks to Steven Abner (tauvan). [Bug 928808]
+ * generic/tclIORTrans.c: More revisions to get finalization of
+ ReflectedTransforms correct, including adopting a "dead" field as was
+ done in tclIORChan.c.
-2004-04-06 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * tests/thread.test: Stop using the deprecated thread management
+ commands of the tcltest package. The test suite ought to provide
+ these tools for itself. They do not belong in a testing harness.
- * tests/cmdAH.test (cmdAH-18.2): Added constraint because
- access(...,X_OK) is defined to be permitted to be meaningless when
- running as root, and OSX exhibits this. [Bug 929892]
+2011-09-22 Don Porter <dgp@users.sourceforge.net>
-2004-04-02 Miguel Sofer <msofer@users.sf.net>
+ * generic/tclCmdIL.c: Revise [info frame] so that it stops creating
+ cycles in the iPtr->cmdFramePtr stack.
- * generic/tclCompile.c:
- * generic/tclInt.h: removed the macro TCL_ALIGN() from tclInt.h,
- replaced by the static macro ALIGN() in tclCompile.c [Bug 926445]
+2011-09-22 Donal K. Fellows <dkf@users.sf.net>
-2004-04-02 Miguel Sofer <msofer@users.sf.net>
+ * doc/re_syntax.n: [Bug 2903743]: Add more magic so that we can do at
+ least something sane on Solaris.
+ * tools/tcltk-man2html-utils.tcl (process-text): Teach the HTML
+ generator how to handle this magic.
- * generic/tclCompile.h: removed redundant #ifdef _TCLINT
- [Bug 928415], reported by tauvan.
+2011-09-21 Don Porter <dgp@users.sourceforge.net>
-2004-04-02 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclThreadTest.c: Revise the thread exit handling of the
+ [testthread] command so that it properly maintains the per-process
+ data structures even when the thread exits for reasons other than the
+ [testthread exit] command.
- * tests/tcltest.test: Corrected constraint typos: "nonRoot" ->
- "notRoot". Thanks to Steven Abner (tauvan). [Bug 928353]
+2011-09-21 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
-2004-04-01 Don Porter <dgp@users.sourceforge.net>
+ * unix/tclIO.c: [Bug 3412487]: Now short reads are allowed in
+ synchronous fcopy, avoid mistaking them as nonblocking ones.
- * generic/tclInt.h: Removed obsolete tclBlockTime* declarations.
- [Bug 926454]
+2011-09-21 Andreas Kupries <andreask@activestate.com>
-2004-04-01 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclIORTrans.c (ForwardOpToOwnerThread): Fixed the missing
+ initialization of the 'dsti' field. Reported by Don Porter, on chat.
- * generic/tclIOUtil.c: Fix to privately reported vfs bug with
- 'glob -type d -dir . *' across a vfs boundary. No tests for
- this are currently possible without effectively moving tclvfs
- into Tcl's test suite.
+2011-09-20 Don Porter <dgp@users.sourceforge.net>
-2004-03-31 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclIORChan.c: Re-using the "interp" field to signal a dead
+ channel (via NULL value) interfered with conditional cleanup tasks
+ testing for "the right interp". Added a new field "dead" to perform
+ the dead channel signalling task so the corrupted logic is avoided.
- * doc/msgcat.n: Clarified message catalog file encodings. [Bug 811457]
- * library/msgcat/msgcat.tcl:
- Updated internals to make use of [dict]s to store message catalog
- data and to use [source -encoding utf-8] to access catalog files.
- Thanks to Michael Sclenker. [Patch 875055, RFE 811459]
- Corrected [mcset] to be able to successfully set a translation to
- the empty string. [mcset $loc $src {}] was incorrectly set the
- $loc translation of $src back to $src. Also changed [ConvertLocale]
- to minimally require a non-empty "language" part in the locale value.
- If not, an error raised prompts [Init] to keep looking for a valid
- locale value, or ultimately fall back on the "C" locale. [Bug 811461].
- * library/msgcat/pkgIndex.tcl: Bump to msgcat 1.4.1.
+ * generic/tclIORTrans.c: Revised ReflectClose() and
+ FreeReflectedTransform() so that we stop leaking ReflectedTransforms,
+ yet free all Tcl_Obj values in the same thread that alloced them.
-2004-03-30 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2011-09-19 Don Porter <dgp@users.sourceforge.net>
- * generic/tclHash.c (HashStringKey): Cleaned up. This function is
- not faster, but it is a little bit clearer.
- * generic/tclLiteral.c (HashString): Applied logic from HashObjKey.
- * generic/tclObj.c (HashObjKey): Rewrote to fix fault which hashed
- every single-character object to the same hash bucket. The new
- code is shorter, simpler, clearer, and (happily) faster.
+ * tests/ioTrans.test: Conversion from [testthread] to Thread package
+ stops most memory leaks.
-2004-03-30 Miguel Sofer <msofer@users.sf.net>
+ * tests/thread.test: Plug most memory leaks in thread.test.
+ Constrain the rest to be skipped during `make valgrind'. Tests using
+ the [testthread cancel] testing command are leaky. Corrections wait
+ for either addition of [thread::cancel] to the Thread package, or
+ improvements to the [testthread] testing command to make leak-free
+ versions of these tests possible.
- * generic/tclExecute.c (TEBC): reverting to the previous method
- for async tests in TEBC, as the new method turned out to be too
- costly. Async tests now run every 64 instructions.
+ * generic/tclIORChan.c: Plug all memory leaks in ioCmd.test exposed
+ * tests/ioCmd.test: by `make valgrind'.
+ * unix/Makefile.in:
-2004-03-30 Miguel Sofer <msofer@users.sf.net>
+2011-09-16 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclCompile.c: New instruction code INST_START_CMD
- * generic/tclCompile.h: that allows checking the bytecode's
- * generic/tclExecute.c: validity [Bug 729692] and the interp's
- * tests/interp.test (18.9): readyness [Bug 495830] before running
- * tests/proc.test (7.1): the command. It also changes the
- * tests/rename.test (6.1): mechanics of the async tests in TEBC,
- doing it now at command start instead of every 16 instructions.
+ IMPLEMENTATION OF TIP #388
-2004-03-30 Vince Darley <vincentdarley@users.sourceforge.net>
+ * doc/Tcl.n:
+ * doc/re_syntax.n:
+ * generic/regc_lex.c:
+ * generic/regcomp.c:
+ * generic/regcustom.h:
+ * generic/tcl.h:
+ * generic/tclParse.c:
+ * tests/reg.test:
+ * tests/utf.test:
- * generic/tclFileName.c: Fix to Windows glob where the pattern is
- * generic/tclIOUtil.c: a volume relative path or a network
- * tests/fileName.test: share [Bug 898238]. On windows 'glob'
- * tests/fileSystem.test: will now return the results of
- 'glob /foo/bar' and 'glob \\foo\\bar' as 'C:/foo/bar', i.e. a
- correct absolute path (rather than a volume relative path).
+2011-09-16 Donal K. Fellows <dkf@users.sf.net>
- Note that the test suite does not test commands like
- 'glob //Machine/Shared/*' (on a network share).
+ * generic/tclProc.c (ProcWrongNumArgs): [Bugs 3400658,3408830]:
+ Corrected the handling of procedure error messages (found by TclOO).
-2004-03-30 Vince Darley <vincentdarley@users.sourceforge.net>
+2011-09-16 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclPathObj.c: Fix to filename bugs recently
- * tests/fileName.test: introduced [Bug 918320].
+ * generic/tcl.h: Don't change Tcl_UniChar type when
+ * generic/regcustom.h: TCL_UTF_MAX == 4 (not supported anyway)
-2004-03-29 Don Porter <dgp@users.sourceforge.net>
+2011-09-16 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclMain.c (Tcl_Main, StdinProc): Append newline only
- * tests/basic.test (basic-46.1): to incomplete scripts
- as part of multi-line script construction. Do not add an extra
- trailing newline to the complete script. [Bug 833150]
+ * generic/tclProc.c (ProcWrongNumArgs): [Bugs 3400658,3408830]:
+ Ensemble-like rewriting of error messages is complex, and TclOO (in
+ combination with iTcl) hits the most tricky cases.
-2004-03-28 Miguel Sofer <msofer@users.sf.net>
+ * library/http/http.tcl (http::geturl): [Bug 3391977]: Ensure that the
+ -headers option overrides the -type option (important because -type
+ has a default that is not always appropriate, and the header must not
+ be duplicated).
- * generic/tclCompile.c (TclCompileScript): corrected possible
- segfault when a compilation returns TCL_OUTLINE_COMPILE after
- having grown the compile environment [Bug 925121].
+2011-09-15 Don Porter <dgp@users.sourceforge.net>
-2004-03-27 Miguel Sofer <msofer@users.sf.net>
+ * generic/tclCompExpr.c: [Bug 3408408]: Partial improvement by sharing
+ as literals the computed values of constant subexpressions when we can
+ do so without incurring the cost of string rep generation.
- * doc/array.n: added documentation for trace-realted behaviour of
- 'array get' [Bug 449893]
+2011-09-13 Don Porter <dgp@users.sourceforge.net>
-2004-03-26 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclUtil.c: [Bug 3390638]: Workaround broken Solaris
+ Studio cc optimizer. Thanks to Wolfgang S. Kechel.
- * README: Bumped version number to 8.5a2 to
- * tools/tcl.wse.in: distinguish HEAD of CVS development
- * unix/configure.in: from the recent 8.5a1 release.
- * unix/tcl.spec:
- * win/README.binary:
- * win/configure.in:
+ * generic/tclDTrace.d: [Bug 3405652]: Portability workaround for
+ broken system DTrace support. Thanks to Dagobert Michelson.
- * unix/configure: autoconf-2.57
- * win/configure:
+2011-09-12 Jan Nijtmans <nijtmans@users.sf.net>
-2004-03-26 Vince Darley <vincentdarley@users.sourceforge.net>
+ * win/tclWinPort.h: [Bug 3407070]: tclPosixStr.c won't build with
+ EOVERFLOW==E2BIG
- * generic/tclPathObj.c: Fix to Windows-only volume relative
- * tests/fileSystem.test: path normalization. [Bug 923586].
- Also fixed another volume relative bug found while testing.
+2011-09-11 Don Porter <dgp@users.sourceforge.net>
-2004-03-24 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * tests/thread.test: Convert [testthread] use to Thread package use
+ in thread-6.1. Eliminates a memory leak in `make valgrind`.
- * generic/tclNamesp.c (NsEnsembleImplementationCmd): Fix messed up
- handling of strncmp result which just happened to work in some
- libc implementations. [Bug 922752]
+ * tests/socket.test: [Bug 3390699]: Convert [testthread] use to
+ Thread package use in socket_*-13.1. Eliminates a memory leak in
+ `make valgrind`.
-2004-03-23 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2011-09-09 Don Porter <dgp@users.sourceforge.net>
- * doc/StringObj.3: Inverted the sense of the documentation of how
- the bytes parameter is documented to match behaviour. [Bug 921464]
+ * tests/chanio.test: [Bug 3389733]: Convert [testthread] use to
+ * tests/io.test: Thread package use in *io-70.1. Eliminates a
+ memory leak in `make valgrind`.
-2004-03-19 Kevin B. Kenny <kennykb@acm.org>
+2011-09-07 Don Porter <dgp@users.sourceforge.net>
- * compat/strtoll.c:
- * compat/strtoull.c:
- * generic/tclIntDecls.h:
+ * generic/tclCompExpr.c: [Bug 3401704]: Allow function names like
+ * tests/parseExpr.test: influence(), nanobot(), and 99bottles() that
+ have been parsed as missing operator syntax errors before with the
+ form NUMBER + FUNCTION.
+ ***POTENTIAL INCOMPATIBILITY***
+
+2011-09-06 Venkat Iyer <venkat@comit.com>
+
+ * library/tzdata/America/Goose_Bay: Update to Olson's tzdata2011i
+ * library/tzdata/America/Metlakatla:
+ * library/tzdata/America/Resolute:
+ * library/tzdata/America/St_Johns:
+ * library/tzdata/Europe/Kaliningrad:
+ * library/tzdata/Pacific/Apia:
+ * library/tzdata/Pacific/Honolulu:
+ * library/tzdata/Africa/Juba: (new)
+
+2011-09-06 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.h: [RFE 1711975]: Tcl_MainEx() (like Tk_MainEx())
+ * generic/tclDecls.h:
* generic/tclMain.c:
- * generic/tclObj.c:
+
+2011-09-02 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/http.test: Convert [testthread] use to Thread package use.
+ Eliminates memory leak seen in `make valgrind`.
+
+2011-09-01 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * unix/tclUnixSock.c: [Bug 3401422]: Cache script-level changes to the
+ nonblocking flag of an async client socket in progress, and commit
+ them on completion.
+
+2011-09-01 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStrToD.c: [Bug 3402540]: Corrections to TclParseNumber()
+ * tests/binary.test: to make it reject invalid Nan(Hex) strings.
+
+ * tests/scan.test: [scan Inf %g] is portable; remove constraint.
+
+2011-08-30 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclInterp.c (SlaveCommandLimitCmd, SlaveTimeLimitCmd):
+ [Bug 3398794]: Ensure that low-level conditions in the limit API are
+ enforced at the script level through errors, not a Tcl_Panic. This
+ means that interpreters cannot read their own limits (writing already
+ did not work).
+
+2011-08-30 Reinhard Max <max@suse.de>
+
+ * unix/tclUnixSock.c (TcpWatchProc): [Bug 3394732]: Put back the check
+ for server sockets.
+
+2011-08-29 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclIORTrans.c: Leak of ReflectedTransformMap.
+
+2011-08-27 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c: [RFE 3396731]: Revise the [string reverse]
+ * tests/string.test: implementation to operate on the representation
+ that comes in, avoid conversion to other reps.
+
+2011-08-23 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclIORChan.c: [Bug 3396948]: Leak of ReflectedChannelMap.
+
+2011-08-19 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclIORTrans.c: [Bugs 3393279, 3393280]: ReflectClose(.) is
+ missing Tcl_EventuallyFree() calls at some of its exits.
+
+ * generic/tclIO.c: [Bugs 3394654, 3393276]: Revise FlushChannel() to
+ account for the possibility that the ChanWrite() call might recycle
+ the buffer out from under us.
+
+ * generic/tclIO.c: Preserve the chanPtr during FlushChannel so that
+ channel drivers don't yank it away before we're done with it.
+
+2011-08-19 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclTest.c: [Bug 2981154]: async-4.3 segfault.
+ * tests/async.test: [Bug 1774689]: async-4.3 sometimes fails.
+
+2011-08-18 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclIO.c: [Bug 3096275]: Sync fcopy buffers input.
+
+2011-08-18 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclUniData.c: [Bug 3393714]: Overflow in toupper delta
+ * tools/uniParse.tcl:
+ * tests/utf.test:
+
+2011-08-17 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclIO.c: [Bug 2946474]: Consistently resume backgrounded
+ * tests/ioCmd.test: flushes+closes when exiting.
+
+2011-08-17 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * doc/interp.n: Document TIP 378's one-way-ness.
+
+2011-08-17 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclGet.c: [Bug 3393150]: Overlooked free of intreps.
+ (It matters for bignums!)
+
+2011-08-16 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCompile.c: [Bug 3392070]: More complete prevention of
+ Tcl_Obj reference cycles when producing an intrep of ByteCode.
+
+2011-08-16 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclListObj.c (TclLindexList, TclLsetFlat): Silence warnings
+ about (unreachable) cases of uninitialized variables.
+ * generic/tclCmdIL.c (SelectObjFromSublist): Improve the generation of
+ * generic/tclIndexObj.c (Tcl_ParseArgsObjv): messages through the use
+ * generic/tclVar.c (ArrayStartSearchCmd): of Tcl_ObjPrintf.
+
+2011-08-15 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclBasic.c: [Bug 3390272]: Leak of [info script] value.
+
+2011-08-15 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclPosixStr.c: [Bug 3388350]: mingw64 compiler warnings
+ * win/tclWinPort.h:
+ * win/configure.in:
+ * win/configure:
+
+2011-08-14 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * doc/FindExec.3: [Patch 3124554]: Move WishPanic from Tk to Tcl
+ * doc/Panic.3 Added Documentation
+
+2011-08-12 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclPathObj.c: [Bug 3389764]: Eliminate possibility that dup
+ of a "path" value can create reference cycle.
+
+2011-08-12 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclZlib.c (ZlibTransformOutput): [Bug 3390073]: Return the
+ correct length of written data for a compressing transform.
+
+2011-08-10 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclTestObj.c: [Bug 3386721]: Allow multiple [load]ing of the
+ Tcltest package.
+
+2011-08-09 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclBasic.c: [Bug 2919042]: Restore "valgrindability" of Tcl
+ * generic/tclEvent.c: that was lost by the streamlining of [exit], by
+ * generic/tclExecute.c: conditionally forcing a full Finalize:
+ * generic/tclInt.h: use -DPURIFY or ::env(TCL_FINALIZE_ON_EXIT)
+
+2011-08-09 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclCompCmds.c: [Bug 3386417]: Avoid a reference loop between
+ * generic/tclInt.h: the bytecode and its companion errostack
+ * generic/tclResult.c: when compiling a syntax error.
+
+2011-08-09 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinConsole.c: [Bug 3388350]: mingw64 compiler warnings
* win/tclWinDde.c:
- * win/tclWinReg.c:
- * win/tclWinTime.c: Made HEAD build on Windows VC++ again.
-
-2004-03-19 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * win/tclWinPipe.c:
+ * win/tclWinSerial.c:
- * generic/tclIntDecls.h: Made HEAD build on Solaris again by
- applying fix recommended by Don Porter.
+2011-08-09 Jan Nijtmans <nijtmans@users.sf.net>
-2004-03-18 Reinhard Max <max@suse.de>
+ * generic/tclInt.h: Change the signature of TclParseHex(), such that
+ * generic/tclParse.c: it can now parse up to 8 hex characters.
- * generic/tclIntDecls.h: Removed TclpTime_t. It wasn't really needed,
- * generic/tclInt.h: but caused warnings related to
- * generic/tclInt.decls: strict aliasing with GCC 3.3.
- * generic/tclClock.c:
- * generic/tclDate.c:
- * generic/tclGetDate.y:
- * win/tclWinTime.c:
- * unix/tclUnixTime.c:
+2011-08-08 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclZlib.c (ZlibStreamCmd): Make the -buffersize option to
+ '$zstream add' function correctly instead of having its value just be
+ discarded unceremoniously. Also generate error codes from more of the
+ code, not just the low-level code but also the Tcl infrastructure.
+
+2011-08-07 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOOInfo.c (InfoClassCallCmd): [Bug 3387082]: Plug memory
+ leak in call chain introspection.
+
+2011-08-06 Kevin B, Kenny <kennykb@acm.org>
+
+ * generic/tclAssemnbly.c: [Bug 3384840]: Plug another memory leak.
+ * generic/tclStrToD.c: [Bug 3386975]: Plug another memory leak.
+
+2011-08-05 Kevin B. Kenny <kennykb@acm.org>
+
+ * generic/tclStrToD.c: [Bug 3386975]: Plugged a memory leak in
+ double->string conversion.
+
+2011-08-05 Don Porter <dgp@users.sourceforge.net>
+
+ *** 8.6b2 TAGGED FOR RELEASE ***
+
+ * changes: Updates for 8.6b2 release.
+
+2011-08-05 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclAssembly.c (AssembleOneLine): Ensure that memory isn't
+ leaked when an unknown instruction is encountered. Also simplify code
+ through use of Tcl_ObjPrintf in error message generation.
+
+ * generic/tclZlib.c (ZlibTransformClose): [Bug 3386197]: Plug a memory
+ leak found by Miguel with valgrind, and ensure that the correct
+ direction's buffers are released.
+
+2011-08-04 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclVar.c (TclPtrSetVar): Fix valgrind-detected error when
+ newValuePtr is the interp's result obj.
+
+2011-08-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclAssembly.c (FreeAssemblyEnv): [Bug 3384840]: Plug another
+ possible memory leak due to over-complex code for freeing the table of
+ labels.
+
+2011-08-04 Reinhard Max <max@suse.de>
+
+ * generic/tclIOSock.c (TclCreateSocketAddress): Don't bother using
+ AI_ADDRCONFIG for now, as it was causing problems in various
+ situations.
+
+2011-08-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclAssembly.c (AssembleOneLine, GetBooleanOperand)
+ (GetIntegerOperand, GetListIndexOperand, FindLocalVar): [Bug 3384840]:
+ A Tcl_Obj is allocated by GetNextOperand, so callers of it must not
+ hold a reference to one in the 'out' parameter when calling it. This
+ was causing a great many memory leaks.
+ * tests/assemble.test (assemble-51.*): Added group of memory leak
+ tests.
+
+2011-08-02 Don Porter <dgp@users.sourceforge.net>
+
+ * changes: Updates for 8.6b2 release.
+ * tools/tcltk-man2html.tcl: Variable substitution botch.
- * generic/tclNamesp.c: Added temporary pointer variables to work
- * generic/tclStubLib.c: around warnings related to
- * unix/tclUnixChan.c: strict aliasing with GCC 3.3.
+2011-08-02 Donal K. Fellows <dkf@users.sf.net>
- * unix/tcl.m4: Removed -Wno-strict-aliasing.
+ * generic/tclObj.c (Tcl_DbIncrRefCount, Tcl_DbDecrRefCount)
+ (Tcl_DbIsShared): [Bug 3384007]: Fix the panic messages so they share
+ what should be shared and have the right number of spaces.
-2004-03-18 Daniel Steffen <das@users.sourceforge.net>
+2011-08-01 Miguel Sofer <msofer@users.sf.net>
- Removed support for Mac OS Classic platform [Patch 918142]
+ * generic/tclProc.c (TclProcCompileProc): [Bug 3383616]: Fix for leak
+ of resolveInfo when recompiling procs. Thanks go to Gustaf Neumann for
+ detecting the bug and providing the fix.
+2011-08-01 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/tclvars.n (EXAMPLES): Added some examples of how some of the
+ standard global variables can be used, following prompting by a
+ request by Robert Hicks.
+
+ * tools/tcltk-man2html.tcl (plus-pkgs): [Bug 3382474]: Added code to
+ determine the version number of contributed packages from their
+ directory names so that HTML documentation builds are less confusing.
+
+2011-07-29 Donal K. Fellows <dkf@users.sf.net>
+
+ * tools/tcltk-man2html.tcl (ensemble_commands, remap_link_target):
+ Small enhancements to improve cross-linking with contributed packages.
+ * tools/tcltk-man2html-utils.tcl (insert-cross-references): Enhance to
+ cope with contributed packages' C API.
+
+2011-07-28 Reinhard Max <max@suse.de>
+
+ * unix/tcl.m4 (SC_TCL_IPV6): Fix AC_DEFINE invocation for
+ NEED_FAKE_RFC2553.
+ * unix/configure: autoconf-2.59
+
+2011-07-28 Don Porter <dgp@users.sourceforge.net>
+
+ * changes: Updates for 8.6b2 release.
+
+ * library/tzdata/Asia/Anadyr: Update to Olson's tzdata2011h
+ * library/tzdata/Asia/Irkutsk:
+ * library/tzdata/Asia/Kamchatka:
+ * library/tzdata/Asia/Krasnoyarsk:
+ * library/tzdata/Asia/Magadan:
+ * library/tzdata/Asia/Novokuznetsk:
+ * library/tzdata/Asia/Novosibirsk:
+ * library/tzdata/Asia/Omsk:
+ * library/tzdata/Asia/Sakhalin:
+ * library/tzdata/Asia/Vladivostok:
+ * library/tzdata/Asia/Yakutsk:
+ * library/tzdata/Asia/Yekaterinburg:
+ * library/tzdata/Europe/Kaliningrad:
+ * library/tzdata/Europe/Moscow:
+ * library/tzdata/Europe/Samara:
+ * library/tzdata/Europe/Volgograd:
+ * library/tzdata/America/Kralendijk: (new)
+ * library/tzdata/America/Lower_Princes: (new)
+
+2011-07-26 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOO.c (initScript): Ensure that TclOO is properly found by
+ all the various package mechanisms (by adding a dummy ifneeded script)
+ and not just some of them.
+
+2011-07-21 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinPort.h: [Bug 3372130]: Fix hypot math function with MSVC10
+
+2011-07-19 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclUtil.c: [Bug 3371644]: Repair failure to properly handle
+ * tests/util.test: (length == -1) scanning in TclConvertElement().
+ Thanks to Thomas Sader and Alexandre Ferrieux.
+
+2011-07-19 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/*.3, doc/*.n: Many small fixes to documentation as part of
+ project to improve quality of generated HTML docs.
+
+ * tools/tcltk-man2html.tcl (remap_link_target): More complete set of
+ definitions of link targets, especially for major C API types.
+ * tools/tcltk-man2html-utils.tcl (output-IP-list, cross-reference):
+ Update to generation to produce proper HTML bulleted and enumerated
+ lists.
+
+2011-07-19 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * doc/upvar.n: Undocument long gone limitation of [upvar].
+
+2011-07-18 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tcl.h: Bump version number to 8.6b2.
+ * library/init.tcl:
+ * unix/configure.in:
+ * win/configure.in:
+ * unix/tcl.spec:
+ * tools/tcl.wse.in:
* README:
- * compat/string.h:
- * doc/Encoding.3:
- * doc/FileSystem.3:
- * doc/Init.3:
- * doc/Macintosh.3 (removed):
- * doc/OpenFileChnl.3:
- * doc/OpenTcp.3:
- * doc/SourceRCFile.3:
- * doc/Thread.3:
- * doc/clock.n:
- * doc/exec.n:
- * doc/fconfigure.n:
- * doc/file.n:
- * doc/filename.n:
- * doc/glob.n:
- * doc/open.n:
- * doc/puts.n:
- * doc/resource.n (removed):
- * doc/safe.n:
- * doc/source.n:
- * doc/tclvars.n:
- * doc/unload.n:
- * generic/README:
- * generic/tcl.decls:
- * generic/tcl.h:
- * generic/tclAlloc.c:
+
+ * unix/configure: autoconf-2.59
+ * win/configure:
+
+2011-07-15 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCompile.c: Avoid segfaults when RecordByteCodeStats() is
+ called in a deleted interp.
+
+ * generic/tclCompile.c: [Bug 467523, 3357771]: Prevent circular
+ references in values with ByteCode intreps. They can lead to memory
+ leaks.
+
+2011-07-14 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOOCall.c (TclOORenderCallChain): [Bug 3365156]: Remove
+ stray refcount bump that caused a memory leak.
+
+2011-07-12 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclUnixSock.c: [Bug 3364777]: Stop segfault caused by
+ reading from struct after it had been freed.
+
+2011-07-11 Joe Mistachkin <joe@mistachkin.com>
+
+ * generic/tclExecute.c: [Bug 3339502]: Correct cast for CURR_DEPTH to
+ silence compiler warning.
+
+2011-07-08 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/http.n: [FRQ 3358415]: State what RFC defines HTTP/1.1.
+
+2011-07-07 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclBasic.c: Add missing INT2PTR
+
+2011-07-03 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/FileSystem.3: Corrected statements about ctime field of 'struct
+ stat'; that was always the time of the last metadata change, not the
+ time of creation.
+
+2011-07-02 Kevin B. Kenny <kennykb@acm.org>
+
+ * generic/tclStrToD.c:
+ * generic/tclTomMath.decls:
+ * generic/tclTomMathDecls.h:
+ * macosx/Tcl.xcode/project.pbxproj:
+ * macosx/Tcl.xcodeproj/project.pbxproj:
+ * tests/util.test:
+ * unix/Makefile.in:
+ * win/Makefile.in:
+ * win/Makefile.vc:
+ [Bug 3349507]: Fix a bug where bignum->double conversion is "round up"
+ and not "round to nearest" (causing expr double(1[string repeat 0 23])
+ not to be 1e+23).
+
+2011-06-28 Reinhard Max <max@suse.de>
+
+ * unix/tclUnixSock.c (CreateClientSocket): [Bug 3325339]: Fix and
+ simplify posting of the writable fileevent at the end of an
+ asynchronous connection attempt. Improve comments for some of the
+ trickery around [socket -async].
+
+ * tests/socket.test: Adjust tests to the async code changes. Add more
+ tests for corner cases of async sockets.
+
+2011-06-22 Andreas Kupries <andreask@activestate.com>
+
+ * library/platform/pkgIndex.tcl: Updated to platform 1.0.10. Added
+ * library/platform/platform.tcl: handling of the DEB_HOST_MULTIARCH
+ * unix/Makefile.in: location change for libc.
+ * win/Makefile.in:
+
+ * generic/tclInt.h: Fixed the inadvertently committed disabling of
+ stack checks, see my 2010-11-15 commit.
+
+2011-06-22 Reinhard Max <max@suse.de>
+
+ Merge from rmax-ipv6-branch:
+ * unix/tclUnixSock.c: Fix [socket -async], so that all addresses
+ returned by getaddrinfo() are tried, not just the first one. This
+ requires the event loop to be running while the async connection is in
+ progress. ***POTENTIAL INCOMPATIBILITY***
+ * tests/socket.test: Add a test for the above.
+ * doc/socket: Document the fact that -async needs the event loop
+ * generic/tclIOSock.c: AI_ADDRCONFIG is broken on HP-UX
+
+2011-06-21 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclLink.c: [Bug 3317466]: Prevent multiple links to a
+ single Tcl variable when calling Tcl_LinkVar().
+
+2011-06-13 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStrToD.c: [Bug 3315098]: Mem leak fix from Gustaf
+ Neumann.
+
+2011-06-08 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclExecute.c: Reverted the fix for [Bug 3274728] committed
+ on 2011-04-06 and replaced with one which is 64bit-safe. The existing
+ fix crashed tclsh on Windows 64bit.
+
+2011-06-08 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/fileSystem.test: Reduce the amount of use of duplication of
+ complex code to perform common tests, and convert others to do the
+ test result check directly using Tcltest's own primitives.
+
+2011-06-06 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tests/socket.test: Add test constraint, so 6.2 and 6.3 don't fail
+ when the machine does not have support for ip6. Follow-up to checkin
+ from 2011-05-11 by rmax.
+
+2011-06-02 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclBasic.c: Removed TclCleanupLiteralTable(), and old
+ * generic/tclInt.h: band-aid routine put in place while a fix for
+ * generic/tclLiteral.c: [Bug 994838] took shape. No longer needed.
+
+2011-06-02 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclInt.h (TclInvalidateNsCmdLookup): [Bug 3185407]: Extend
+ the set of epochs that are potentially bumped when a command is
+ created, for a slight performance drop (in some circumstances) and
+ improved semantics.
+
+2011-06-01 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclBasic.c: Using the two free data elements in NRCommand to
+ store objc and objv - useful for debugging.
+
+2011-06-01 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclUtil.c: Fix for [Bug 3309871]: Valgrind finds: invalid
+ read in TclMaxListLength().
+
+2011-05-31 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclInt.h: Use a complete growth algorithm for lists so
+ * generic/tclListObj.c: that length limits do not overconstrain by a
+ * generic/tclStringObj.c: factor of 2. [Bug 3293874]: Fix includes
+ * generic/tclUtil.c: rooting all growth routines by default on a
+ common tunable parameter TCL_MIN_GROWTH.
+
+2011-05-25 Don Porter <dgp@users.sourceforge.net>
+
+ * library/msgcat/msgcat.tcl: Bump to msgcat 1.4.4.
+ * library/msgcat/pkgIndex.tcl:
+ * unix/Makefile.in:
+ * win/Makefile.in:
+
+2011-05-25 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOO.h (TCLOO_VERSION): Bump version.
+
+ IMPLEMENTATION OF TIP#381.
+
+ * doc/next.n, doc/ooInfo.n, doc/self.n, generic/tclOO.c,
+ * generic/tclOOBasic.c, generic/tclOOCall.c, generic/tclOOInfo.c,
+ * generic/tclOOInt.h, tests/oo.test, tests/ooNext2.test: Added
+ introspection of call chains ([self call], [info object call], [info
+ class call]) and ability to skip ahead in chain ([nextto]).
+
+2011-05-24 Venkat Iyer <venkat@comit.com>
+
+ * library/tzdata/Africa/Cairo: Update to Olson tzdata2011g
+
+2011-05-24 Donal K. Fellows <dkf@users.sf.net>
+
+ * library/msgcat/msgcat.tcl (msgcat::mcset, msgcat::mcmset): Remove
+ some useless code; [dict set] builds dictionary levels for us.
+
+2011-05-17 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclCompile.c (TclFixupForwardJump): Tracked down and fixed
+ * generic/tclBasic.c (TclArgumentBCEnter): the cause of a violation of
+ my assertion that 'ePtr->nline == objc' in TclArgumentBCEnter. When a
+ bytecode was grown during jump fixup the pc -> command line mapping
+ was not updated. When things aligned just wrong the mapping would
+ direct command A to the data for command B, with a different number of
+ arguments.
+
+2011-05-11 Reinhard Max <max@suse.de>
+
+ * unix/tclUnixSock.c (TcpWatchProc): No need to check for server
+ sockets here, as the generic server code already takes care of that.
+ * tests/socket.test (accept): Add tests to make sure that this remains
+ so.
+
+2011-05-10 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclInt.h: New internal routines TclScanElement() and
+ * generic/tclUtil.c: TclConvertElement() are rewritten guts of
+ machinery to produce string rep of lists. The new routines avoid and
+ correct [Bug 3173086]. See comments for much more detail.
+
+ * generic/tclDictObj.c: Update all callers.
+ * generic/tclIndexObj.c:
+ * generic/tclListObj.c:
+ * generic/tclUtil.c:
+ * tests/list.test:
+
+2011-05-09 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclNamesp.c (NamespacePathCmd): Convert to use Tcl_Obj API
+ * generic/tclPkg.c (Tcl_PackageObjCmd): for result generation in
+ * generic/tclTimer.c (Tcl_AfterObjCmd): [after info], [namespace
+ path] and [package versions].
+
+2011-05-09 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclListObj.c: Revise empty string tests so that we avoid
+ potentially expensive string rep generations, especially for dicts.
+
+2011-05-07 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclLoad.c (TclGetLoadedPackages): Convert to use Tcl_Obj API
+ for result generation.
+
+2011-05-07 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclInt.h: Fix USE_TCLALLOC so that it can be enabled without
+ * unix/Makefile.in: editing the Makefile.
+
+2011-05-05 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclListObj.c: Stop generating string rep of dict when
+ converting to list. Tolerate NULL interps more completely.
+
+2011-05-03 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclUtil.c: Tighten Tcl_SplitList().
+ * generic/tclListObj.c: Tighten SetListFromAny().
+ * generic/tclDictObj.c: Tighten SetDictFromAny().
+ * tests/join.test:
+ * tests/mathop.test:
+
+2011-05-02 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCmdMZ.c: Revised TclFindElement() interface. The final
+ * generic/tclDictObj.c: argument had been bracePtr, the address of a
+ * generic/tclListObj.c: boolean var, where the caller can be told
+ * generic/tclParse.c: whether or not the parsed list element was
+ * generic/tclUtil.c: enclosed in braces. In practice, no callers
+ really care about that. What the callers really want to know is
+ whether the list element value exists as a literal substring of the
+ string being parsed, or whether a call to TclCopyAndCollpase() is
+ needed to produce the list element value. Now the final argument is
+ changed to do what callers actually need. This is a better fit for the
+ calls in tclParse.c, where now a good deal of post-processing checking
+ for "naked backslashes" is no longer necessary.
+ ***POTENTIAL INCOMPATIBILITY***
+ For any callers calling in via the internal stubs table who really do
+ use the final argument explicitly to check for the enclosing brace
+ scenario. Simply looking for the braces where they must be is the
+ revision available to those callers, and it will backport cleanly.
+
+ * tests/parse.test: Tests for expanded literals quoting detection.
+
+ * generic/tclCompCmdsSZ.c: New TclFindElement() is also a better
+ fit for the [switch] compiler.
+
+ * generic/tclInt.h: Replace TclCountSpaceRuns() with
+ * generic/tclListObj.c: TclMaxListLength() which is the function we
+ * generic/tclUtil.c: actually want.
+ * generic/tclCompCmdsSZ.c:
+
+ * generic/tclCompCmdsSZ.c: Rewrite of parts of the switch compiler to
+ better use the powers of TclFindElement() and do less parsing on its
+ own.
+
+2011-04-28 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclInt.h: New utility routines:
+ * generic/tclParse.c: TclIsSpaceProc() and TclCountSpaceRuns()
+ * generic/tclUtil.c:
+
+ * generic/tclCmdMZ.c: Use new routines to replace calls to isspace()
+ * generic/tclListObj.c: and their /* INTL */ risk.
+ * generic/tclStrToD.c:
+ * generic/tclUtf.c:
+ * unix/tclUnixFile.c:
+
+ * generic/tclStringObj.c: Improved reaction to out of memory.
+
+2011-04-27 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCmdMZ.c: TclFreeIntRep() correction & cleanup.
+ * generic/tclExecute.c:
+ * generic/tclIndexObj.c:
+ * generic/tclInt.h:
+ * generic/tclListObj.c:
+ * generic/tclNamesp.c:
+ * generic/tclResult.c:
+ * generic/tclStringObj.c:
+ * generic/tclVar.c:
+
+ * generic/tclListObj.c: FreeListInternalRep() cleanup.
+
+2011-04-21 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclInt.h: Use macro to set List intreps.
+ * generic/tclListObj.c:
+
+ * generic/tclCmdIL.c: Limits on list length were too strict.
+ * generic/tclInt.h: Revised panics to errors where possible.
+ * generic/tclListObj.c:
+ * tests/lrepeat.test:
+
+ * generic/tclCompile.c: Make sure SetFooFromAny routines react
+ * generic/tclIO.c: reasonably when passed a NULL interp.
+ * generic/tclIndexObj.c:
+ * generic/tclListObj.c:
+ * generic/tclNamesp.c:
+ * generic/tclObj.c:
+ * generic/tclProc.c:
+ * macosx/tclMacOSXFCmd.c:
+
+2011-04-21 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.h: fix for [Bug 3288345]: Wrong Tcl_StatBuf
+ * generic/tclInt.h: used on MinGW. Make sure that all _WIN32
+ * win/tclWinFile.c: compilers use exactly the same layout
+ * win/configure.in: for Tcl_StatBuf - the one used by MSVC6 -
+ * win/configure: in all situations.
+
+2011-04-19 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclConfig.c: Reduce internals access in the implementation
+ of [<foo>::pkgconfig list].
+
+2011-04-18 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCmdIL.c: Use ListRepPtr(.) and other cleanup.
+ * generic/tclConfig.c:
+ * generic/tclListObj.c:
+
+ * generic/tclInt.h: Define and use macros that test whether a Tcl
+ * generic/tclBasic.c: list value is canonical.
+ * generic/tclUtil.c:
+
+2011-04-18 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/dict.n: [Bug 3288696]: Command summary was confusingly wrong
+ when it came to [dict filter] with a 'value' filter.
+
+2011-04-16 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclFCmd.c (TclFileAttrsCmd): Add comments to make this code
+ easier to understand. Added a panic to handle the case where the VFS
+ layer does something odd.
+
+2011-04-13 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclUtil.c: [Bug 3285375]: Rewrite of Tcl_Concat*()
+ routines to prevent segfaults on buffer overflow. Build them out of
+ existing primitives already coded to handle overflow properly. Uses
+ the new TclTrim*() routines.
+
+ * generic/tclCmdMZ.c: New internal utility routines TclTrimLeft()
+ * generic/tclInt.h: and TclTrimRight(). Refactor the
+ * generic/tclUtil.c: [string trim*] implementations to use them.
+
+2011-04-13 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclVar.c: [Bug 2662380]: Fix crash caused by appending to a
+ variable with a write trace that unsets it.
+
+2011-04-13 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclUtil.c (Tcl_ConcatObj): [Bug 3285375]: Make the crash
+ less mysterious through the judicious use of a panic. Not yet properly
+ fixed, but at least now clearer what the failure mode is.
+
+2011-04-12 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/string.test: Test for [Bug 3285472]. Not buggy in trunk.
+
+2011-04-12 Venkat Iyer <venkat@comit.com>
+
+ * library/tzdata/Atlantic/Stanley: Update to Olson tzdata2011f
+
+2011-04-12 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclBasic.c: Fix for [Bug 2440625], kbk's patch
+
+2011-04-11 Miguel Sofer <msofer@users.sf.net>
+
* generic/tclBasic.c:
- * generic/tclCmdAH.c:
- * generic/tclDate.c:
- * generic/tclDecls.h:
- * generic/tclFCmd.c:
- * generic/tclFileName.c:
- * generic/tclGetDate.y:
- * generic/tclIOCmd.c:
- * generic/tclIOUtil.c:
- * generic/tclInitScript.h:
+ * tests/coroutine.test: [Bug 3282869]: Ensure that 'coroutine eval'
+ runs the initial command in the proper context.
+
+2011-04-11 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.h: Fix for [Bug 3281728]: Tcl sources from 2011-04-06
+ * unix/tcl.m4: do not build on GCC9 (RH9)
+ * unix/configure:
+
+2011-04-08 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinPort.h: Fix for [Bug 3280043]: win2k: unresolved DLL
+ * win/configure.in: imports.
+ * win/configure
+
+2011-04-06 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclExecute.c (TclCompileObj): Earlier return if Tip280
+ gymnastics not needed.
+
+ * generic/tclExecute.c: Fix for [Bug 3274728]: making *catchTop an
+ unsigned long.
+
+2011-04-06 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tclAppInit.c: Make symbols "main" and "Tcl_AppInit"
+ MODULE_SCOPE: there is absolutely no reason for exporting them.
+ * unix/tcl.m4: Don't use -fvisibility=hidden with static
+ * unix/configure libraries (--disable-shared)
+
+2011-04-06 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclFCmd.c, macosx/tclMacOSXFCmd.c, unix/tclUnixChan.c,
+ * unix/tclUnixFCmd.c, win/tclWinChan.c, win/tclWinDde.c,
+ * win/tclWinFCmd.c, win/tclWinLoad.c, win/tclWinPipe.c,
+ * win/tclWinReg.c, win/tclWinSerial.c, win/tclWinSock.c: More
+ generation of error codes (most platform-specific parts not already
+ using Tcl_PosixError).
+
+2011-04-05 Venkat Iyer <venkat@comit.com>
+
+ * library/tzdata/Africa/Casablanca: Update to Olson's tzdata2011e
+ * library/tzdata/America/Santiago:
+ * library/tzdata/Pacific/Easter:
+ * library/tzdata/America/Metlakatla: (new)
+ * library/tzdata/America/North_Dakota/Beulah: (new)
+ * library/tzdata/America/Sitka: (new)
+
+2011-04-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOO.c, generic/tclOOBasic.c, generic/tclOODefineCmds.c
+ * generic/tclOOInfo.c, generic/tclOOMethod.c: More generation of
+ error codes (TclOO miscellany).
+
+ * generic/tclCmdAH.c, generic/tclCmdIL.c: More generation of error
+ codes (miscellaneous commands mostly already handled).
+
+2011-04-04 Don Porter <dgp@users.sourceforge.net>
+
+ * README: [Bug 3202030]: Updated README files, repairing broken
+ * macosx/README:URLs and removing other bits that were clearly wrong.
+ * unix/README: Still could use more eyeballs on the detailed build
+ * win/README: advice on various plaforms.
+
+2011-04-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * library/init.tcl (tcl::mathfunc::rmmadwiw): Disable by default to
+ make test suite work.
+
+ * generic/tclBasic.c, generic/tclStringObj.c, generic/tclTimer.c,
+ * generic/tclTrace.c, generic/tclUtil.c: More generation of error
+ codes ([format], [after], [trace], RE optimizer).
+
+2011-04-04 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclCmdAH.c: Better error-message in case of errors
+ * generic/tclCmdIL.c: related to setting a variable. This fixes
+ * generic/tclDictObj.c: a warning: "Why make your own error
+ * generic/tclScan.c: message? Why?"
+ * generic/tclTest.c:
+ * test/error.test:
+ * test/info.test:
+ * test/scan.test:
+ * unix/tclUnixThrd.h: Remove this unused header file.
+
+2011-04-03 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclNamesp.c, generic/tclObj.c, generic/tclPathObj.c:
+ * generic/tclPipe.c, generic/tclPkg.c, generic/tclProc.c:
+ * generic/tclScan.c: More generation of error codes (namespace
+ creation, path normalization, pipeline creation, package handling,
+ procedures, [scan] formats)
+
+2011-04-02 Kevin B. Kenny <kennykb@acm.org>
+
+ * generic/tclStrToD.c (QuickConversion): Replaced another couple
+ of 'double' declarations with 'volatile double' to work around
+ misrounding issues in mingw-gcc 3.4.5.
+
+2011-04-02 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclInterp.c, generic/tclListObj.c, generic/tclLoad.c:
+ More generation of errorCodes ([interp], [lset], [load], [unload]).
+
+ * generic/tclEvent.c, generic/tclFileName.c: More generation of
+ errorCode information (default [bgerror] and [glob]).
+
+2011-04-01 Reinhard Max <max@suse.de>
+
+ * library/init.tcl: TIP#131 implementation.
+
+2011-03-31 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclGetDate.y, generic/tclDate.c (TclClockOldscanObjCmd):
+ More generation of errorCode information.
+
+2011-03-28 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCmdMZ.c, generic/tclConfig.c, generic/tclUtil.c: More
+ generation of errorCode information, notably when lists are mis-parsed
+
+ * generic/tclCmdMZ.c (Tcl_RegexpObjCmd, Tcl_RegsubObjCmd): Use the
+ error messages generated by the variable management code rather than
+ creating our own.
+
+2011-03-27 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclBasic.c (TclNREvalObjEx): fix performance issue, notably
+ apparent in tclbench's "LIST lset foreach". Many thanks to Twylite for
+ patiently researching the issue and explaining it to me: a missing
+ Tcl_ResetObjResult that causes unwanted sharing of the current result
+ Tcl_Obj.
+
+2011-03-26 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclNamesp.c (Tcl_Export, Tcl_Import, DoImport): More
+ generation of errorCode information.
+
+ * generic/tclCompExpr.c, generic/tclCompile.c, generic/tclExecute.c:
+ * generic/tclListObj.c, generic/tclNamesp.c, generic/tclObj.c:
+ * generic/tclStringObj.c, generic/tclUtil.c: Reduce the number of
+ casts used to manage Tcl_Obj internal representations.
+
+2011-03-24 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tcl.h (ckfree,etc.): Restored C++ usability to the memory
+ allocation and free macros.
+
+2011-03-24 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclFCmd.c (TclFileAttrsCmd): Ensure that any reference to
+ temporary index tables is squelched immediately rather than hanging
+ around to trip us up in the future.
+
+2011-03-23 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclObj.c: Exploit HAVE_FAST_TSD for the deletion context in
+ TclFreeObj()
+
+2011-03-22 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclThreadAlloc.c: Simpler initialization of Cache under
+ HAVE_FAST_TSD, from mig-alloc-reform.
+
+2011-03-21 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tclLoadDl.c: [Bug 3216070]: Loading extension libraries
+ * unix/tclLoadDyld.c: from embedded Tcl applications.
+ ***POTENTIAL INCOMPATIBILITY***
+ For extensions which rely on symbols from other extensions being
+ present in the global symbol table. For an example and some discussion
+ of workarounds, see http://stackoverflow.com/q/8330614/301832
+
+2011-03-21 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclCkAlloc.c:
+ * generic/tclInt.h: Remove one level of allocator indirection in
+ non-memdebug builds, imported from mig-alloc-reform.
+
+2011-03-20 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclThreadAlloc.c: Imported HAVE_FAST_TSD support from
+ mig-alloc-reform. The feature has to be enabled by hand: no autoconf
+ support has been added. It is not clear how universal a build using
+ this will be: it also requires some loader support.
+
+2011-03-17 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompExpr.c (ParseExpr): Generate errorCode information on
+ failure to parse expressions.
+
+2011-03-17 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclMain.c: [Patch 3124683]: Reorganize the platform-specific
+ stuff in (tcl|tk)Main.c.
+
+2011-03-16 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclCkalloc.c: [Bug 3197864]: Pointer truncation on Win64
+ TCL_MEM_DEBUG builds.
+
+2011-03-16 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclBasic.c: Some rewrites to eliminate calls to isspace()
+ * generic/tclParse.c: and their /* INTL */ risk.
+ * generic/tclProc.c:
+
+2011-03-16 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tcl.m4: Make SHLIB_LD_LIBS='${LIBS}' the default and
+ * unix/configure: set to "" on per-platform necessary basis.
+ Backported from TEA, but kept all original platform code which was
+ removed from TEA.
+
+2011-03-14 Kevin B. Kenny <kennykb@acm.org>
+
+ * tools/tclZIC.tcl (onDayOfMonth): Allow for leading zeroes in month
+ and day so that tzdata2011d parses correctly.
+ * library/tzdata/America/Havana:
+ * library/tzdata/America/Juneau:
+ * library/tzdata/America/Santiago:
+ * library/tzdata/Europe/Istanbul:
+ * library/tzdata/Pacific/Apia:
+ * library/tzdata/Pacific/Easter:
+ * library/tzdata/Pacific/Honolulu: tzdata2011d
+
+ * generic/tclAssembly.c (BBEmitInstInt1): Changed parameter data types
+ in an effort to silence a MSVC warning reported by Ashok P. Nadkarni.
+ Unable to test, since both forms work on my machine in VC2005, 2008,
+ 2010, in both release and debug builds.
+ * tests/tclTest.c (TestdstringCmd): Restored MSVC buildability broken
+ by [5574bdd262], which changed the effective return type of 'ckalloc'
+ from 'char*' to 'void*'.
+
+2011-03-13 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclExecute.c: remove TEBCreturn()
+
+2011-03-12 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tcl.h (ckalloc,ckfree,ckrealloc): Moved casts into these
+ macro so that they work with VOID* (which is a void* on all platforms
+ which Tcl actually builds on) and unsigned int for the length
+ parameters, removing the need for MANY casts across the rest of Tcl.
+ Note that this is a strict source-level-only change, so size_t cannot
+ be used (would break binary compatibility on 64-bit platforms).
+
+2011-03-12 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinFile.c: [Bug 3185609]: File normalization corner case
+ of ... broken with -DUNICODE
+
+2011-03-11 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/unixInit.test: Make better use of tcltest2.
+
+2011-03-10 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclBasic.c, generic/tclCompCmds.c, generic/tclEnsemble.c:
+ * generic/tclInt.h, generic/tclNamesp.c, library/auto.tcl:
+ * tests/interp.test, tests/namespace.test, tests/nre.test:
+ Converted the [namespace] command into an ensemble. This has the
+ consequence of making it vital for Tcl code that wishes to work with
+ namespaces to _not_ delete the ::tcl namespace.
+ ***POTENTIAL INCOMPATIBILITY***
+
+ * library/tcltest/tcltest.tcl (loadIntoSlaveInterpreter): Added this
+ command to handle connecting tcltest to a slave interpreter. This adds
+ in the hook (inside the tcltest namespace) that allows the tests run
+ in the child interpreter to be reported as part of the main sequence
+ of test results. Bumped version of tcltest to 2.3.3.
+ * tests/init.test, tests/package.test: Adapted these test files to use
+ the new feature.
+
+ * generic/tclAlloc.c, generic/tclCmdMZ.c, generic/tclCompExpr.c:
+ * generic/tclCompile.c, generic/tclEnv.c, generic/tclEvent.c:
+ * generic/tclIO.c, generic/tclIOCmd.c, generic/tclIORChan.c:
+ * generic/tclIORTrans.c, generic/tclLiteral.c, generic/tclNotify.c:
+ * generic/tclParse.c, generic/tclStringObj.c, generic/tclUtil.c:
+ * generic/tclZlib.c, unix/tclUnixFCmd.c, unix/tclUnixNotfy.c:
+ * unix/tclUnixPort.h, unix/tclXtNotify.c: Formatting fixes, mainly to
+ comments, so code better fits the style in the Engineering Manual.
+
+2011-03-09 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/incr.test: Update more of the test suite to use Tcltest 2.
+
+2011-03-09 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclNamesp.c: [Bug 3202171]: Tighten the detector of nested
+ * tests/namespace.test: [namespace code] quoting that the quoted
+ scripts function properly even in a namespace that contains a custom
+ "namespace" command.
+
+ * doc/tclvars.n: Formatting fix. Thanks to Pat Thotys.
+
+2011-03-09 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/dstring.test, tests/init.test, tests/link.test: Update more of
+ the test suite to use Tcltest 2.
+
+2011-03-08 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclBasic.c: Fix gcc warnings: variable set but not used
+ * generic/tclProc.c:
+ * generic/tclIORChan.c:
+ * generic/tclIORTrans.c:
+ * generic/tclAssembly.c: Fix gcc warning: comparison between signed
+ and unsigned integer expressions
+
+2011-03-08 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclInt.h: Remove TclMarkList() routine, an experimental
+ * generic/tclUtil.c: dead-end from the 8.5 alpha days.
+
+ * generic/tclResult.c (ResetObjResult): [Bug 3202905]: Correct failure
+ to clear invalid intrep. Thanks to Colin McDonald.
+
+2011-03-08 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclAssembly.c, tests/assemble.test: Migrate to use a style
+ more consistent with the rest of Tcl.
+
+2011-03-06 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() calls
+ * generic/tclCompile.c: with TclParseBackslash() where possible.
+ * generic/tclCompCmdsSZ.c:
+ * generic/tclParse.c:
+ * generic/tclUtil.c:
+
+ * generic/tclUtil.c (TclFindElement): [Bug 3192636]: Guard escape
+ sequence scans to not overrun the string end.
+
+2011-03-05 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclParse.c (TclParseBackslash): [Bug 3200987]: Correct
+ * tests/parse.test: trunction checks in \x and \u substitutions.
+
+2011-03-05 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclExecute.c (TclStackFree): insure that the execStack
+ satisfies "at most one free stack after the current one" when
+ consecutive reallocs caused the creation of intervening stacks.
+
+2011-03-05 Kevin B. Kenny <kennykb@acm.org>
+
+ * generic/tclAssembly.c (new file):
+ * generic/tclBasic.c (Tcl_CreateInterp):
+ * generic/tclInt.h:
+ * tests/assemble.test (new file):
+ * unix/Makefile.in:
+ * win/Makefile.in:
+ * win/makefile.vc: Merged dogeen-assembler-branch into HEAD. Since
+ all functional changes are in the tcl::unsupported namespace, there's
+ no reason to sequester this code on a separate branch.
+
+2011-03-05 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclExecute.c: Cleaner mem management for TEBCdata
+
+ * generic/tclExecute.c:
+ * tests/nre.test: Renamed BottomData to TEBCdata, so that the name
+ refers to what it is rather than to its storage location.
+
+ * generic/tclBasic.c: Renamed struct TEOV_callback to the more
+ * generic/tclCompExpr.c: descriptive NRE_callback.
+ * generic/tclCompile.c:
+ * generic/tclExecute.c:
* generic/tclInt.decls:
* generic/tclInt.h:
* generic/tclIntDecls.h:
- * generic/tclIntPlatDecls.h:
- * generic/tclMain.c:
- * generic/tclMath.h:
- * generic/tclNotify.c:
- * generic/tclPathObj.c:
- * generic/tclPlatDecls.h:
- * generic/tclPort.h:
+ * generic/tclTest.c:
+
+2011-03-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOOMethod.c (ProcedureMethodCompiledVarConnect)
+ (ProcedureMethodCompiledVarDelete): [Bug 3185009]: Keep references to
+ resolved object variables so that an unset doesn't leave any dangling
+ pointers for code to trip over.
+
+2011-03-01 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclBasic.c (TclNREvalObjv): Missing a variable declaration
+ in commented out non-optimised code, left for ref in checkin
+ [b97b771b6d]
+
+2011-03-03 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclResult.c (Tcl_AppendResultVA): Use the directive
+ USE_INTERP_RESULT [TIP 330] to force compat with interp->result
+ access, instead of the improvised hack USE_DIRECT_INTERP_RESULT_ACCESS
+ from releases past.
+
+2011-03-01 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclCompCmdsSZ.c (TclCompileThrowCmd, TclCompileUnsetCmd):
+ fix leaks
+
+ * generic/tclBasic.c: This is [Patch 3168398],
+ * generic/tclCompCmdsSZ.c: Joe Mistachkin's optimisation
+ * generic/tclExecute.c: of Tip #285
+ * generic/tclInt.decls:
+ * generic/tclInt.h:
+ * generic/tclIntDecls.h:
+ * generic/tclInterp.c:
+ * generic/tclOODecls.h:
* generic/tclStubInit.c:
+ * win/makefile.vc:
+
+ * generic/tclExecute.c (ExprObjCallback): Fix object leak
+
+ * generic/tclExecute.c (TEBCresume): Store local var array and
+ constants in automatic vars to reduce indirection, slight perf
+ increase
+
+ * generic/tclOOCall.c (TclOODeleteContext): Added missing '*' so that
+ trunk compiles.
+
+ * generic/tclBasic.c (TclNRRunCallbacks): [Patch 3168229]: Don't do
+ the trampoline dance for commands that do not have an nreProc.
+
+2011-03-01 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOO.c (Tcl_NewObjectInstance, TclNRNewObjectInstance)
+ (TclOOObjectCmdCore, FinalizeObjectCall):
+ * generic/tclOOBasic.c (TclOO_Object_Destroy, AfterNRDestructor):
+ * generic/tclOOCall.c (TclOODeleteContext, TclOOGetCallContext):
+ Reorganization of call context reference count management so that code
+ is (mostly) simpler.
+
+2011-01-26 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/RegExp.3: [Bug 3165108]: Corrected documentation of description
+ of subexpression info in Tcl_RegExpInfo structure.
+
+2011-01-25 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclPreserve.c: Don't miss 64-bit address bits in panic
+ message.
+ * win/tclWinChan.c: Fix various gcc-4.5.2 64-bit warning
+ * win/tclWinConsole.c: messages, e.g. by using full 64-bits for
+ * win/tclWinDde.c: socket fd's
+ * win/tclWinPipe.c:
+ * win/tclWinReg.c:
+ * win/tclWinSerial.c:
+ * win/tclWinSock.c:
+ * win/tclWinThrd.c:
+
+2011-01-19 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/genStubs.tcl: [FRQ 3159920]: Tcl_ObjPrintf() crashes with
+ * generic/tcl.decls bad format specifier.
+ * generic/tcl.h:
+ * generic/tclDecls.h:
+
+2011-01-18 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOOMethod.c (PushMethodCallFrame): [Bug 3001438]: Make
+ sure that the cmdPtr field of the procPtr is correct and relevant at
+ all times so that [info frame] can report sensible information about a
+ frame after a return to it from a recursive call, instead of probably
+ crashing (depending on what else has overwritten the Tcl stack!)
+
+2011-01-18 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclBasic.c: Various mismatches between Tcl_Panic
+ * generic/tclCompCmds.c: format string and its arguments,
+ * generic/tclCompCmdsSZ.c: discovered thanks to [Bug 3159920]
+ * generic/tclCompExpr.c:
+ * generic/tclEnsemble.c:
+ * generic/tclPreserve.c:
* generic/tclTest.c:
- * generic/tclThreadJoin.c:
- * library/auto.tcl:
- * library/init.tcl:
- * library/package.tcl:
- * library/safe.tcl:
- * library/tclIndex:
- * mac/AppleScript.html (removed):
- * mac/Background.doc (removed):
- * mac/MW_TclAppleScriptHeader.h (removed):
- * mac/MW_TclAppleScriptHeader.pch (removed):
- * mac/MW_TclBuildLibHeader.h (removed):
- * mac/MW_TclBuildLibHeader.pch (removed):
- * mac/MW_TclHeader.h (removed):
- * mac/MW_TclHeader.pch (removed):
- * mac/MW_TclHeaderCommon.h (removed):
- * mac/MW_TclStaticHeader.h (removed):
- * mac/MW_TclStaticHeader.pch (removed):
- * mac/MW_TclTestHeader.h (removed):
- * mac/MW_TclTestHeader.pch (removed):
- * mac/README (removed):
- * mac/bugs.doc (removed):
- * mac/libmoto.doc (removed):
- * mac/morefiles.doc (removed):
- * mac/porting.notes (removed):
- * mac/tclMac.h (removed):
- * mac/tclMacAETE.r (removed):
- * mac/tclMacAlloc.c (removed):
- * mac/tclMacAppInit.c (removed):
- * mac/tclMacApplication.r (removed):
- * mac/tclMacBOAAppInit.c (removed):
- * mac/tclMacBOAMain.c (removed):
- * mac/tclMacChan.c (removed):
- * mac/tclMacCommonPch.h (removed):
- * mac/tclMacDNR.c (removed):
- * mac/tclMacEnv.c (removed):
- * mac/tclMacExit.c (removed):
- * mac/tclMacFCmd.c (removed):
- * mac/tclMacFile.c (removed):
- * mac/tclMacInit.c (removed):
- * mac/tclMacInt.h (removed):
- * mac/tclMacInterupt.c (removed):
- * mac/tclMacLibrary.c (removed):
- * mac/tclMacLibrary.r (removed):
- * mac/tclMacLoad.c (removed):
- * mac/tclMacMath.h (removed):
- * mac/tclMacNotify.c (removed):
- * mac/tclMacOSA.c (removed):
- * mac/tclMacOSA.r (removed):
- * mac/tclMacPanic.c (removed):
- * mac/tclMacPkgConfig.c (removed):
- * mac/tclMacPort.h (removed):
- * mac/tclMacProjects.sea.hqx (removed):
- * mac/tclMacResource.c (removed):
- * mac/tclMacResource.r (removed):
- * mac/tclMacSock.c (removed):
- * mac/tclMacTclCode.r (removed):
- * mac/tclMacTest.c (removed):
- * mac/tclMacThrd.c (removed):
- * mac/tclMacThrd.h (removed):
- * mac/tclMacTime.c (removed):
- * mac/tclMacUnix.c (removed):
- * mac/tclMacUtil.c (removed):
- * mac/tcltkMacBuildSupport.sea.hqx (removed):
- * tests/all.tcl:
- * tests/binary.test:
- * tests/cmdAH.test:
- * tests/cmdMZ.test:
- * tests/fCmd.test:
- * tests/fileName.test:
- * tests/fileSystem.test:
- * tests/interp.test:
- * tests/io.test:
- * tests/ioCmd.test:
- * tests/load.test:
- * tests/macFCmd.test (removed):
- * tests/osa.test (removed):
- * tests/resource.test (removed):
- * tests/socket.test:
- * tests/source.test:
- * tests/unload.test:
- * tools/cvtEOL.tcl (removed):
- * tools/genStubs.tcl:
- * unix/Makefile.in:
- * unix/README:
- * unix/mkLinks:
- * unix/tcl.spec:
- * win/README.binary:
- * win/tcl.dsp:
-2004-03-17 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2011-01-17 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/lsearch.n: Improved examples on the advanced capabilities of
- lsearch (with the right options, set element removal can be done)
- following discussion on tkchat.
+ * generic/tclIOCmd.c: [Bug 3148192]: Commands "read/puts" incorrectly
+ * tests/chanio.test: interpret parameters. Improved error-message
+ * tests/io.test regarding legacy form.
+ * tests/ioCmd.test
-2004-03-16 Don Porter <dgp@users.sourceforge.net>
+2011-01-15 Kevin B. Kenny <kennykb@acm.org>
- * doc/catch.n: Compiled [catch] no longer fails to catch syntax
- errors. Removed the claims in the documentation that it does.
- * doc/return.n: Updated example to use [dict merge].
+ * doc/tclvars.n:
+ * generic/tclStrToD.c:
+ * generic/tclUtil.c (Tcl_PrintDouble):
+ * tests/util.test (util-16.*): [Bug 3157475]: Restored full Tcl 8.4
+ compatibility for the formatting of floating point numbers when
+ $::tcl_precision is not zero. Added compatibility tests to make sure
+ that excess trailing zeroes are suppressed for all eight major code
+ paths.
-2004-03-16 Jeff Hobbs <jeffh@ActiveState.com>
+2011-01-12 Jan Nijtmans <nijtmans@users.sf.net>
- * unix/configure, unix/tcl.m4: add -Wno-strict-aliasing for GCC to
- suppress useless type puning warnings.
+ * win/tclWinFile.c: Use _vsnprintf in stead of vsnprintf, because
+ MSVC 6 doesn't have it. Reported by andreask.
+ * win/tcl.m4: handle --enable-64bit=ia64 for gcc
+ * win/configure.in: more accurate test for correct <intrin.h>
+ * win/configure: (autoconf-2.59)
+ * win/tclWin32Dll.c: VS 2005 64-bit does not have intrin.h, and
+ * generic/tclPanic.c: does not need it.
-2004-03-16 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2011-01-07 Kevin B. Kenny <kennykb@acm.org>
- * doc/file.n: *roff formatting fix. [Bug 917171]
+ * tests/util.test (util-15.*): Added test cases for floating point
+ conversion of the largest denormal and the smallest normal number, to
+ avoid any possibility of the failure suffered by PHP in the last
+ couple of days. (They didn't fail, so no actual functional change.)
-2004-03-15 David Gravereaux <davygrvy@pobox.com>
+2011-01-05 Donal K. Fellows <dkf@users.sf.net>
- * win/tclWinNotify.c: Fixed a mistake where the return value of
- MsgWaitForMultipleObjectsEx for "a message is in the queue" wasn't
- accurate. I removed the check on the case result==(WAIT_OBJECT_0 + 1)
- This was having the error of falling into GetMessage and waiting
- there by accident, which wasn't alertable through Tcl_AlertNotifier.
- I'll do some more study on this and try to find-out why.
+ * tests/package.test, tests/pkg.test: Coalesce these tests into one
+ file that is concerned with the package system. Convert to use
+ tcltest2 properly.
+ * tests/autoMkindex.test, tests/pkgMkIndex.test: Convert to use
+ tcltest2 properly.
-2004-03-12 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2011-01-01 Donal K. Fellows <dkf@users.sf.net>
- IMPLEMENTATION OF TIP#163
- * generic/tclDictObj.c (DictMergeCmd): This is based on work by Joe
- * tests/dict.test (dict-20.*): English in Tcl [FRQ 745851]
- * doc/dict.n: but not exactly.
+ * tests/cmdAH.test, tests/cmdMZ.test, tests/compExpr.test,
+ * tests/compile.test, tests/concat.test, tests/eval.test,
+ * tests/fileName.test, tests/fileSystem.test, tests/interp.test,
+ * tests/lsearch.test, tests/namespace-old.test, tests/namespace.test,
+ * tests/oo.test, tests/proc.test, tests/security.test,
+ * tests/switch.test, tests/unixInit.test, tests/var.test,
+ * tests/winDde.test, tests/winPipe.test: Clean up of tests and
+ conversion to tcltest 2. Target has been to get init and cleanup code
+ out of the test body and into the -setup/-cleanup stanzas.
-2004-03-10 Kevin B. Kenny <kennykb@acm.org>
+ * tests/execute.test (execute-11.1): [Bug 3142026]: Added test that
+ fails (with a crash) in an unfixed memdebug build on 64-bit systems.
- * generic/tclGetDate.y (TclGetDate): Fix so that
- [clock scan <timeOfDay> -gmt true] uses the GMT base date
- instead of the local one. [Bug 913513]
- * tests/clock.test: Added test cases for wrong ISO8601 week number
- [Bug 500285] and wrong GMT base date [Bug 913513]. Several tests
- still fail on Windows, and these are actual faults in [clock scan].
- Fix is still pending.
- * generic/tclDate.c: Regenerated.
-
-2004-03-08 Vince Darley <vincentdarley@users.sourceforge.net>
+2010-12-31 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclFileName.c: Fix to 'glob -path' near the root
- * tests/fileName.test: of the filesystem. [Bug 910525]
+ * generic/tclCmdIL.c (SortElement): Use unions properly in the
+ definition of this structure so that there is no need to use nasty
+ int/pointer type punning. Made it clearer what the purposes of the
+ various parts of the structure are.
-2004-03-08 Don Porter <dgp@users.sourceforge.net>
+2010-12-31 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclParse.c (TclParseInit): Modified TclParseInit so
- * generic/tclTest.c ([testexprparser]): that Tcl_Parse initialization
- conforms to documented promised about what fields will not be
- modified by what Tcl_Parse* routines. [Bug 910595]
+ * unix/dltest/*.c: [Bug 3148192]: Fix broken [load] tests by ensuring
+ that the affected files are never compiled with -DSTATIC_BUILD.
-2004-03-05 Mo DeJong <mdejong@users.sourceforge.net>
+2010-12-30 Miguel Sofer <msofer@users.sf.net>
- * win/configure: Regen.
- * win/configure.in: Check for define of
- MWMO_ALERTABLE in winuser.h.
- * win/tclWinPort.h: If MWMO_ALERTABLE
- is not defined in winuser.h then define it.
- This is needed for Mingw.
+ * generic/tclExecute.c (GrowEvaluationStack): Off-by-one error in
+ sizing the new allocation - was ok in comment but wrong in the code.
+ Triggered by [Bug 3142026] which happened to require exactly one more
+ than what was in existence.
-2004-03-05 Kevin B. Kenny <kennykb@acm.org>
+2010-12-26 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclTest.c: Modified TesteventObjCmd to use
- a Tcl_QueuePosition in place of an 'int' for the enumerated
- queue position, to avoid a compiler warning on SGI.
- (Bug #771960).
-
-2004-03-05 Kevin B. Kenny <kennykb@acm.org>
+ * generic/tclCmdIL.c (Tcl_LsortObjCmd): Fix crash when multiple -index
+ options are used. Simplified memory handling logic.
- * tests/registry.test: Applied fix from Patch #910174 to
- make the test for an English-language system include any
- country code, rather than just English-United States.1252.
- Thanks to Pat Thoyts for the changes.
-
-2004-03-04 Pat Thoyts <patthoyts@users.sourceforge.net>
+2010-12-20 Jan Nijtmans <nijtmans@users.sf.net>
- * tests/registry.test: Applied fixed from #766159 to skip two
- tests on Win98 that depend on a Unicode registry (NT specific).
+ * win/tclWin32Dll.c: [Patch 3059922]: fixes for mingw64 - gcc4.5.1
+ tdm64-1: completed for all environments.
-2004-03-04 Don Porter <dgp@users.sourceforge.net>
+2010-12-20 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclInt.h (TclParseInit): Factored the common code
- * generic/tclParse.c (TclParseInit): for initializing a Tcl_Parse
- * generic/tclParseExpr.c: struct into one routine.
+ * win/configure.in: Explicitely test for intrinsics support in
+ compiler, before assuming only MSVC has it.
+ * win/configure: (autoconf-2.59)
+ * generic/tclPanic.c:
-2004-03-04 Pat Thoyts <patthoyts@users.sourceforge.net>
+2010-12-19 Jan Nijtmans <nijtmans@users.sf.net>
- * library/reg/pkgIndex.tcl: Added TIP #100 support to the
- * win/tclWinReg.c: registry package (patch #903831)
- This provides a Windows test of the TIP #100 mechanism and
- a sample to show how unloading an extension can be done.
+ * win/tclWin32Dll.c: [Patch 3059922]: fixes for mingw64 - gcc4.5.1
+ tdm64-1: Fixed for gcc, not yet for MSVC 64-bit.
-2004-03-04 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net>
- * unix/dltest/pkgua.c: Fix minor syntax problems. [Bug 909288]
+ * unix/Makefile.in: Remove unwanted/obsolete 'ddd' target.
-2004-03-03 Jeff Hobbs <jeffh@ActiveState.com>
+2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net>
- *** 8.5a1 TAGGED FOR RELEASE ***
+ * unix/Makefile.in: Clean up '.PHONY:' targets: Arrange those
+ common to Tcl and Tk as in Tk's Makefile.in,
+ add any missing ones and remove duplicates.
- * changes: updated for 8.5a1
+2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net>
-2004-03-03 David Gravereaux <davygrvy@pobox.com>
+ * unix/Makefile.in: [Bug 2446711]: Remove 'allpatch' target.
- * win/makefile.vc: default environment variable for VC++ is
- %MSDevDir% not %MSVCDir%, although vcvars32.bat sets both.
+2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net>
- * win/tclWinNotify.c (Tcl_WaitForEvent) : Allows an idling
- notifier to service "Asynchronous Procedure Calls" from its wait
- state. Only useful for extension authors who decide they might
- want to try "completion routines" with WriteFileEx(), as an
- example. From experience, I recommend that "completion ports"
- should be used instead as the execution of the callbacks are more
- managable.
+ * unix/Makefile.in: [Bug 2537626]: Use 'rpmbuild', not 'rpm'.
-2004-03-01 Jeff Hobbs <jeffh@ActiveState.com>
+2010-12-16 Jan Nijtmans <nijtmans@users.sf.net>
- * README: update patchlevel to 8.5a1
- * generic/tcl.h:
- * tools/tcl.wse.in, tools/tclSplash.bmp:
- * unix/configure, unix/configure.in, unix/tcl.spec:
- * win/README.binary, win/configure, win/configure.in:
+ * generic/tclPanic.c: [Patch 3124554]: Move WishPanic from Tk to Tcl
+ * win/tclWinFile.c: Better communication with debugger, if present.
- * unix/tcl.m4: update HP-11 build libs setup
+2010-12-15 Kevin B. Kenny <kennykb@acm.org>
-2004-03-01 Don Porter <dgp@users.sourceforge.net>
+ [dogeen-assembler-branch]
- * unix/tcl.m4 (SC_CONFIG_CFLAGS): Allow 64-bit enabling on
- IRIX64-6.5* systems. [Bug 218561]
- * unix/configure: autoconf-2.57
+ * tclAssembly.c:
+ * assemble.test: Reworked beginCatch/endCatch handling to
+ enforce the more severe (but more correct) restrictions on catch
+ handling that appeared in the discussion of [Bug 3098302] and in
+ tcl-core traffic beginning about 2010-10-29.
- * generic/tclTrace.c (TclCheckInterpTraces): The TIP 62
- * generic/tclTest.c (TestcmdtraceCmd): implementation introduced a
- * tests/trace.test (trace-29.10): bug by testing the CallFrame
- level instead of the iPtr->numLevels level when deciding what traces
- created by Tcl_Create(Obj)Trace to call. Added test to expose the
- error, and made fix. [Request 462580]
+2010-12-15 Jan Nijtmans <nijtmans@users.sf.net>
-2004-02-28 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclPanic.c: Restore abort() as it was before.
+ * win/tclWinFile.c: [Patch 3124554]: Use ExitProcess() here, like
+ in wish.
- * tests/fileSystem.test: fix to Tcl Bug 905163.
- * tests/fileName.test: fix to Tcl Bug 904705.
+2010-12-14 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/{various}.n: removed 'the the' typos.
+ * generic/tcl.h: [Bug 3137454]: Tcl CVS HEAD does not build on GCC 3.
-2004-02-26 Daniel Steffen <das@users.sourceforge.net>
+2010-12-14 Reinhard Max <max@suse.de>
- * macosx/Makefile: fixed copyright year in Tcl.framework Info.plist
+ * win/tclWinSock.c (CreateSocket): Swap the loops over
+ * unix/tclUnixSock.c (CreateClientSocket): local and remote addresses,
+ so that the system's address preference for the remote side decides
+ which family gets tried first. Cleanup and clarify some of the
+ comments.
-2004-02-25 Don Porter <dgp@users.sourceforge.net>
+2010-12-13 Jan Nijtmans <nijtmans@users.sf.net>
- * tests/basic.test: Made several tests more robust to the
- * tests/cmdMZ.test: list-quoting of path names that might
- * tests/exec.test: contain Tcl-special chars like { or [.
- * tests/io.test: Should help us sort out Tcl Bug 554068.
- * tests/pid.test:
- * tests/socket.test:
- * tests/source.test:
- * tests/unixInit.test:
+ * generic/tcl.h: [Bug 3135271]: Link error due to hidden
+ * unix/tcl.m4: symbols (CentOS 4.2)
+ * unix/configure: (autoconf-2.59)
+ * win/tclWinFile.c: Undocumented feature, only meant to be used by
+ Tk_Main. See [Patch 3124554]: Move WishPanic from Tk to Tcl
-2004-02-25 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2010-12-12 Stuart Cassoff <stwo@users.sourceforge.net>
- * generic/tclLoad.c (Tcl_LoadObjCmd): Missing dereference caused
- segfault with non-loadable extension. [Bug 904307]
+ * unix/tcl.m4: Better building on OpenBSD.
+ * unix/configure: (autoconf-2.59)
- * unix/tclUnixChan.c (TcpGetOptionProc): Stop memory leak with
- very long hostnames. [Bug 888777]
+2010-12-10 Jan Nijtmans <nijtmans@users.sf.net>
-2004-02-25 Pat Thoyts <patthoyts@users.sourceforge.net>
+ * generic/tcl.h: [Bug 3129448]: Possible over-allocation on
+ * generic/tclCkalloc.c: 64-bit platforms, part 2
+ * generic/tclCompile.c:
+ * generic/tclHash.c:
+ * generic/tclInt.h:
+ * generic/tclIO.h:
+ * generic/tclProc.c:
- * win/tclWinDde.c: Removed some gcc warnings - except for the
- -Wconversion warning for GetGlobalAtomName. gcc is just wrong
- about this.
+2010-12-10 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
-2004-02-24 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclIO.c: Make sure [fcopy -size ... -command ...] always
+ * tests/io.test: calls the callback asynchronously, even for size
+ zero.
- IMPLEMENTATION OF TIP#100 FROM GEORGIOS PETASIS
- * generic/tclLoad.c (Tcl_UnloadObjCmd): Implementation.
- * tests/unload.test: Test suite.
- * unix/dltest/pkgua.c: Helper for test suite.
- * doc/unload.n: Documentation.
- Also assorted changes (mostly small) to several other files.
+2010-12-10 Jan Nijtmans <nijtmans@users.sf.net>
-2004-02-23 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclBinary.c: Fix gcc -Wextra warning: missing initializer
+ * generic/tclCmdAH.c:
+ * generic/tclCmdIL.c:
+ * generic/tclCmdMZ.c:
+ * generic/tclDictObj.c:
+ * generic/tclIndexObj.c:
+ * generic/tclIOCmd.c:
+ * generic/tclVar.c:
+ * win/tcl.m4: Fix manifest-generation for 64-bit gcc
+ (mingw-w64)
+ * win/configure.in: Check for availability of intptr_t and
+ uintptr_t
+ * win/configure: (autoconf-2.59)
+ * generic/tclInt.decls: Change 1st param of TclSockMinimumBuffers
+ * generic/tclIntDecls.h: to ClientData, and TclWin(Get|Set)SockOpt
+ * generic/tclIntPlatDecls.h:to SOCKET, because on Win64 those are
+ * generic/tclIOSock.c: 64-bit, which does not fit.
+ * win/tclWinSock.c:
+ * unix/tclUnixSock.c:
+
+2010-12-09 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/fCmd.test: Improve sanity of constraints now that we don't
+ support anything before Windows 2000.
+
+ * generic/tclCmdAH.c (TclInitFileCmd, TclMakeFileCommandSafe, ...):
+ Break up [file] into an ensemble. Note that the ensemble is safe in
+ itself, but the majority of its subcommands are not.
+ * generic/tclFCmd.c (FileCopyRename,TclFileDeleteCmd,TclFileAttrsCmd)
+ (TclFileMakeDirsCmd): Adjust these subcommand implementations to work
+ inside an ensemble.
+ (TclFileLinkCmd, TclFileReadLinkCmd, TclFileTemporaryCmd): Move these
+ subcommand implementations from tclCmdAH.c, where they didn't really
+ belong.
+ * generic/tclIOCmd.c (TclChannelNamesCmd): Move to more appropriate
+ source file.
+ * generic/tclEnsemble.c (TclMakeEnsemble): Start of code to make
+ partially-safe ensembles. Currently does not function as expected due
+ to various shortcomings in how safe interpreters are constructed.
+ * tests/cmdAH.test, tests/fCmd.test, tests/interp.test: Test updates
+ to take into account systematization of error messages.
+
+ * tests/append.test, tests/appendComp.test: Clean up tests so that
+ they don't leave things in the global environment (detected when doing
+ -singleproc testing).
+
+2010-12-07 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/fCmd.test, tests/safe.test, tests/uplevel.test,
+ * tests/upvar.test, tests/var.test: Convert more tests to tcltest2 and
+ factor them to be easier to understand.
+
+ * generic/tclStrToD.c: Tidy up code so that more #ifdef-fery is
+ quarantined at the front of the file and function headers follow the
+ modern Tcl style.
+
+2010-12-06 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclBinary.c: [Bug 3129448]: Possible over-allocation on
+ * generic/tclCkalloc.c: 64-bit platforms.
+ * generic/tclTrace.c:
- * generic/regc_locale.c (cclass): Buffer was having its size reset
- instead of being released => memleak. [Bug 902562]
+2010-12-05 Jan Nijtmans <nijtmans@users.sf.net>
-2004-02-21 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * unix/tcl.m4: [Patch 3116490]: Cross-compile support for unix
+ * unix/configure: (autoconf-2.59)
- * generic/tclLoad.c (Tcl_LoadObjCmd): Fixed memory leak due to
- an improper error exit route.
+2010-12-03 Jeff Hobbs <jeffh@ActiveState.com>
-2004-02-20 David Gravereaux <davygrvy@pobox.com>
+ * generic/tclUtil.c (TclReToGlob): Add extra check for multiple inner
+ *s that leads to poor recursive glob matching, defer to original RE
+ instead. tclbench RE var backtrack.
- * win/tclWinSock.c (SocketThreadExitHandler): Don't call
- TerminateThread when WaitForSingleObject returns a timeout.
- Tcl_Finalize called from DllMain will pause all threads. Trust
- that the thread will get the close notice at a later time if it
- does ever wake up before being cleaned up by the system anyway.
+2010-12-03 Jan Nijtmans <nijtmans@users.sf.net>
-2004-02-17 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclUtil.c: Silence gcc warning when using -Wwrite-strings
+ * generic/tclStrToD.c: Silence gcc warning for non-IEEE platforms
+ * win/Makefile.in: [Patch 3116490]: Cross-compile Tcl mingw32 on unix
+ * win/tcl.m4: This makes it possible to cross-compile Tcl/Tk for
+ * win/configure.in: Windows (either 32-bit or 64-bit) out-of-the-box
+ * win/configure: on UNIX, using mingw-w64 build tools (If Itcl,
+ tdbc and Thread take over the latest tcl.m4, they can do that too).
- * doc/tcltest.n:
- * library/tcltest/tcltest.tcl: Changed -verbose default value to
- {body error} so that detailed information on unexpected errors in
- tests is provided by default, even after the fix for [Bug 725253]
+2010-12-01 Kevin B. Kenny <kennykb@acm.org>
-2004-02-17 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tclStrToD.c (SetPrecisionLimits, TclDoubleDigits):
+ [Bug 3124675]: Added meaningless initialization of 'i', 'ilim' and
+ 'ilim1' to silence warnings from the C compiler about possible use of
+ uninitialized variables, Added a panic to the 'switch' that assigns
+ them, to assert that the 'default' case is impossible.
- * tests/unixInit.test (unixInit-7.1):
- * unix/tclUnixInit.c (TclpInitPlatform): ensure the std fds exist
- to prevent crash condition [Bug #772288]
+2010-12-01 Jan Nijtmans <nijtmans@users.sf.net>
-2004-02-17 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclBasic.c: Fix gcc 64-bit warnings: cast from pointer to
+ * generic/tclHash.c: integer of different size.
+ * generic/tclTest.c:
+ * generic/tclThreadTest.c:
+ * generic/tclStrToD.c: Fix gcc(-4.5.2) warning: 'static' is not at
+ beginning of declaration.
+ * generic/tclPanic.c: Allow Tcl_Panic() to enter the debugger on win32
+ * generic/tclCkalloc.c: Use Tcl_Panic() in stead of duplicating the
+ code.
- * generic/tclCompCmds.c (TclCompileSwitchCmd): Bozo mistake in
- memory releasing order when in an error case. [Bug 898910]
+2010-11-30 Jeff Hobbs <jeffh@ActiveState.com>
-2004-02-16 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tclInt.decls, generic/tclInt.h, generic/tclIntDecls.h:
+ * generic/tclStubInit.c: TclFormatInt restored at slot 24
+ * generic/tclUtil.c (TclFormatInt): restore TclFormatInt func from
+ 2005-07-05 macro-ization. Benchmarks indicate it is faster, as a key
+ int->string routine (e.g. int-indexed arrays).
- * generic/tclTrace.c (TclTraceExecutionObjCmd)
- (TclTraceCommandObjCmd): fix possible mem leak in trace info.
+2010-11-29 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
-2004-02-12 Mo DeJong <mdejong@users.sourceforge.net>
+ * generic/tclBasic.c: Patch by Miguel, providing a
+ [::tcl::unsupported::inject coroname command args], which prepends
+ ("injects") arbitrary code to a suspended coro's future resumption.
+ Neat for debugging complex coros without heavy instrumentation.
- * win/tclWinInit.c (AppendEnvironment):
- Use the tail component of the passed in
- lib path instead of just blindly using
- lib+4. That worked when lib was "lib/..."
- but fails for other values. Thanks go to
- Patrick Samson for pointing this out.
+2010-11-29 Kevin B. Kenny <kennykb@acm.org>
-2004-02-10 David Gravereaux <davygrvy@pobox.com>
+ * generic/tclInt.decls:
+ * generic/tclInt.h:
+ * generic/tclStrToD.c:
+ * generic/tclTest.c:
+ * generic/tclTomMath.decls:
+ * generic/tclUtil.c:
+ * tests/util.test:
+ * unix/Makefile.in:
+ * win/Makefile.in:
+ * win/makefile.vc: Rewrite of Tcl_PrintDouble and TclDoubleDigits that
+ (a) fixes a severe performance problem with floating point shimmering
+ reported by Karl Lehenbauer, (b) allows TclDoubleDigits to generate
+ the digit strings for 'e' and 'f' format, so that it can be used for
+ tcl_precision != 0 (and possibly later for [format]), (c) fixes [Bug
+ 3120139] by making TclPrintDouble inherently locale-independent, (d)
+ adds test cases to util.test for correct rounding in difficult cases
+ of TclDoubleDigits where fixed- precision results are requested. (e)
+ adds test cases to util.test for the controversial aspects of [Bug
+ 3105247]. As a side effect, two more modules from libtommath
+ (bn_mp_set_int.c and bn_mp_init_set_int.c) are brought into the build,
+ since the new code uses them.
- * win/nmakehlp.c: better macro grepping logic.
+ * generic/tclIntDecls.h:
+ * generic/tclStubInit.c:
+ * generic/tclTomMathDecls.h: Regenerated.
-2004-02-07 David Gravereaux <davygrvy@pobox.com>
+2010-11-24 Donal K. Fellows <dkf@users.sf.net>
- * win/makefile.vc:
- * win/rules.vc:
- * win/tcl.rc:
- * win/tclsh.rc: Added an 'unchecked' option to the OPTS macro so a
- core built with symbols can be linked to the non-debug enabled C
- run-time. As per discussion with Kevin Kenny. Called like this:
+ * tests/chanio.test, tests/iogt.test, tests/ioTrans.test: Convert more
+ tests to tcltest2 and factor them to be easier to understand.
- nmake -af makefile.vc OPTS=unchecked,symbols
+2010-11-20 Donal K. Fellows <dkf@users.sf.net>
- This clarifies the meaning of the 'g' naming suffix to mean only that
- the binary requires the debug enabled C run-time. Whether the binary
- contains symbols or not is a different condition.
+ * tests/chanio.test: Converted many tests to tcltest2 by marking the
+ setup and cleanup parts as such.
-2004-02-06 Don Porter <dgp@users.sourceforge.net>
+2010-11-19 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/clock.n: Removed reference to non-existent [file ctime].
+ * win/tclWin32Dll.c: Fix gcc warnings: unused variable 'registration'
+ * win/tclWinChan.c:
+ * win/tclWinFCmd.c:
-2004-02-05 David Gravereaux <davygrvy@pobox.com>
+2010-11-18 Jan Nijtmans <nijtmans@users.sf.net>
- * docs/tclvars.n: Added clarification of the tcl_platform(debug)
- var that it only refers to the flavor of the C run-time, and not
- whether the core contains symbols.
+ * win/tclAppInit.c: [FRQ 491789]: "setargv() doesn't support a unicode
+ cmdline" now implemented for cygwin and mingw32 too.
+ * tests/main.test: No longer disable tests Tcl_Main-1.4 and 1.6 on
+ Windows, because those now work on all supported platforms.
+ * win/configure.in: Set NO_VIZ=1 when zlib is compiled in libtcl,
+ this resolves compiler warnings in 64-bit and static builds.
+ * win/configure (regenerated)
-2004-02-05 Don Porter <dgp@users.sourceforge.net>
+2010-11-18 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclFileName.c (SkipToChar): Corrected CONST and
- type-casting issues that caused compiler warnings.
+ * doc/file.n: [Bug 3111298]: Typofix.
-2004-02-04 Don Porter <dgp@users.sourceforge.net>
+ * tests/oo.test: [Bug 3111059]: Added testing that neatly trapped this
+ issue.
- * generic/tclCmdAH.c (StoreStatData): Removed improper refcount
- decrement of the varName parameter. This error was causing
- segfaults following test cmdAH-28.7.
+2010-11-18 Miguel Sofer <msofer@users.sf.net>
- * library/tcltest/tcltest.tcl: Corrected references to
- non-existent $name variable in [cleanupTests]. [Bug 833637]
+ * generic/tclNamesp.c: [Bug 3111059]: Fix leak due to bad looping
+ construct.
-2004-02-03 Don Porter <dgp@users.sourceforge.net>
+2010-11-17 Jan Nijtmans <nijtmans@users.sf.net>
- * library/tcltest/tcltest.tcl: Corrected parsing of single
- command line argument (option with missing value) [Bug 833910]
- * library/tcltest/pkgIndex.tcl: Bump to version 2.2.5.
+ * win/tcl.m4: [FRQ 491789]: "setargv() doesn't support a unicode
+ cmdline" now implemented for mingw-w64
+ * win/configure (re-generated)
-2004-02-02 David Gravereaux <davygrvy@pobox.com>
+2010-11-16 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclIO.c (Tcl_Ungets): Fixes improper filling of the
- channel buffer. This is the buffer before the splice. [Bug 405995]
+ * win/tclAppInit.c:Bring compilation under mingw-w64 a bit closer
+ * win/cat.c: to reality. See for what's missing:
+ * win/tcl.m4: <https://sourceforge.net/apps/trac/mingw-w64/wiki/Unicode%20apps>
+ * win/configure: (re-generated)
+ * win/tclWinPort.h: [Bug 3110161]: Extensions using TCHAR don't
+ compile on VS2005 SP1
-2004-02-01 David Gravereaux <davygrvy@pobox.com>
+2010-11-15 Andreas Kupries <andreask@activestate.com>
- * tests/winPipe.test: more pass-thru commandline verifications.
- * win/tclWinPipe.c (BuildCommandLine): Special case quoting for
- '{' not required by the c-runtimes's parse_cmdline().
- * win/tclAppInit.c: Removed our custom setargv() in favor of
- the work provided by the c-runtime. [Bug 672938]
+ * doc/interp.n: [Bug 3081184]: TIP #378.
+ * doc/tclvars.n: Performance fix for TIP #280.
+ * generic/tclBasic.c:
+ * generic/tclExecute.c:
+ * generic/tclInt.h:
+ * generic/tclInterp.c:
+ * tests/info.test:
+ * tests/interp.test:
- * win/nmakehlp.c: defensive techniques to avoid static buffer
- overflows and a couple envars upsetting invokations of cl.exe
- and link.exe. [Bug 885537]
+2010-11-10 Andreas Kupries <andreask@activestate.com>
- --------
- * tests/winPipe.test: Added proof that BuildCommandLine() is not
- doing the "N backslashes followed a quote -> insert N * 2 + 1
- backslashes then a quote" rule needed for the crt's
- parse_cmdline().
- * win/tclWinPipe.c: Fixed BuildCommandLine() to pass the new
- cases.
+ * changes: Updates for 8.6b2 release.
-2004-01-30 David Gravereaux <davygrvy@pobox.com>
+2010-11-09 Donal K. Fellows <dkf@users.sf.net>
- * win/makefile.vc: Use the -GZ compiler switch when building for
- symbols. This is supposed to emulate the release build better to
- avoid hiding problems that only show themselves in a release
- build.
+ * generic/tclOOMethod.c (ProcedureMethodVarResolver): [Bug 3105999]:
+ * tests/oo.test: Make sure that resolver structures that are
+ only temporarily needed get squelched.
-2004-01-29 Vince Darley <vincentdarley@users.sourceforge.net>
+2010-11-05 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclPathObj.c: fix to [Bug 883143] in file normalization
+ * generic/tclMain.c: Thanks, Kevin, for the fix, but this how it was
+ supposed to be (TCL_ASCII_MAIN is only supposed to be defined on
+ WIN32).
-2004-01-29 Vince Darley <vincentdarley@users.sourceforge.net>
+2010-11-05 Kevin B. Kenny <kennykb@acm.org>
- * doc/file.n:
- * generic/tclFCmd.c
- * generic/tclTest.c
- * library/init.tcl
- * mac/tclMacFile.c
- * tests/fileSystem.test: fix to [Bug 886352] where 'file copy
- -force' had inconsistent behaviour wrt target files with
- insufficient permissions, particular from vfs->native fs.
- Behaviour of '-force' is now always consistent (and now
- consistent with behaviour of 'file delete -force'). Added new
- tests and documentation and cleaned up the 'simplefs' test
- filesystem.
-
- * generic/tclIOUtil.c
- * unix/tclUnixFCmd.c
- * unix/tclUnixFile.c
- * win/tclWinFile.c: made native filesystems more robust to C code
- which asks for mount lists.
-
- * generic/tclPathObj.c: fix to [Bug 886607] removing warning/error
- with some compilers.
-
-2004-01-28 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclObj.c (SetBooleanFromAny): Rewrite to do more
- efficient string->bool conversion.
- Many other minor whitespace/style fixes to this file too.
-
-2004-01-27 David Gravereaux <davygrvy@pobox.com>
-
- * win/nmakehlp.c: Use '.\nul' as the sourcefile name instead of
- 'nul' so VC 5.2 doesn't try searching the path for it and failing
- with a possible dialogbox popping up about having to add a CD to
- an empty drive. Also added a SetErrorMode() call to disable any
- dialogs that cl.exe or link.exe might create. [Bug 885537]
-
-2004-01-22 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * doc/file.n: clarified documentation of 'file system' [Bug 883825]
- * tests/fCmd.test: improved test result in failure case.
-
-2004-01-22 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * tests/fileSystem.test: 3 new tests
- * generic/tclPathObj.c: fix to [Bug 879555] in file normalization.
- * doc/filename.n: small clarification to Windows behaviour with
- filenames like '.....', 'a.....', '.....a'.
-
- * generic/tclIOUtil.c: slight improvement to native cwd caching
- on Windows.
-
-2004-01-21 David Gravereaux <davygrvy@pobox.com>
-
- * doc/Panic.3: Mentions of 'panic' and 'panicVA' removed from
- the documentation.
-
-2004-01-21 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * doc/FileSystem.3:
- * generic/tcl.decls:
- * generic/tclCmdAH.c
- * generic/tclDecls.h
- * generic/tclFCmd.c
- * generic/tclFileName.c
- * generic/tclFileSystem.h
- * generic/tclIOUtil.c
- * generic/tclInt.decls
- * generic/tclInt.h
- * generic/tclIntDecls.h
- * generic/tclPathObj.c
- * generic/tclStubInit.c
- * generic/tclTest.c
- * mac/tclMacFile.c
- * tests/fileName.test
- * tests/fileSystem.test
- * tests/winFCmd.test
- * unix/tclUnixFile.c
- * win/tclWin32Dll.c
- * win/tclWinFCmd.c
- * win/tclWinFile.c
- * win/tclWinInt.h
-
- Three main issues accomplished: (1) cleaned up variable names in
- the filesystem code so that 'pathPtr' is used throughout. (2)
- applied a round of filesystem optimisation with better handling
- and caching of relative and absolute paths, requiring fewer
- conversions. (3) clarifications to the documentation,
- particularly regarding the acceptable refCounts of objects.
- Some new tests added. Tcl benchmarks show a significant
- improvement over 8.4.5, and on Windows typically a small
- improvement over 8.3.5 (Unix still appears to require
- optimisation). TCL_FILESYSTEM_VERSION_2 introduced, but for
- internal use only. There should be no public incompatibilities
- from these changes. Thanks to dgp for extensive testing.
-
-2004-01-19 David Gravereaux <davygrvy@pobox.com>
-
- * win/tclWinPipe.c (Tcl_WaitPid): Fixed a thread-safety problem
- with the process list. The delayed cut operation after the wait
- was going stale by being outside the list lock. It now cuts
- within the lock and does a locked splice for when it needs to
- instead. [Bug 859820]
-
-2004-01-18 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclCompile.c, generic/tclCompile.h: Two new opcodes,
- INST_LIST_INDEX_IMM and INST_LIST_RANGE_IMM, that have operand(s)
- of new type OPERAND_IDX4 which represents indexes into things like
- lists (and perhaps other things eventually.)
- * generic/tclExecute.c (TclExecuteByteCode): Implementation of the
- new opcodes. INST_LIST_INDEX_IMM does a simple [lindex] with
- either front- or end-based simple indexing. INST_LIST_RANGE_IMM
- does an [lrange] with front- or end-based simple indexing for both
- the reference to the first and last items in the range.
- * generic/tclCompCmds.c (TclCompileLassignCmd): Generate bytecode
- for the [lassign] command.
-
-2004-01-17 David Gravereaux <davygrvy@pobox.com>
-
- * win/tclWinInit.c: added #pragma comment(lib, "advapi32.lib")
- when compiling under VC++ so we don't need to specify it
- when linking.
-
-2004-01-17 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclCmdIL.c (Tcl_LassignObjCmd): Add more shimmering
- protection for when the list is also one of the variables.
-
- BASIC IMPLEMENTATION OF TIP#57
- * generic/tclCmdIL.c (Tcl_LassignObjCmd): Implementation of the
- [lassign] command that takes full advantage of Tcl's object API.
- * doc/lassign.n: New file documenting the command.
- * tests/cmdIL.test (cmdIL-6.*): Test suite for the command.
-
-2004-01-15 David Gravereaux <davygrvy@pobox.com>
-
- * win/tclWinReg.c: Placed the requirement for advapi.lib into
- the object file itself with #paragma comment (lib, ...) when
- built with VC++. This will simplify linking for users of the
- static library.
-
- * win/rules.vc: Added new 'fullwarn' to the CHECKS commandline
- macro; sets $(FULLWARNINGS).
-
- * win/makefile.vc: Removed 'advapi.lib' from $(baselibs).
- Added new logic to crank-up the warning levels for both compile
- and link when $(FULLWARNINGS) is set. Some clean-up with how
- the resource files are built and how -DTCL_USE_STATIC_PACKAGES
- is sent when compiling the shells.
-
- * win/tclAppInit.c: Small change in how TCL_USE_STATIC_PACKAGES
- is used.
-
- * win/tcl.rc:
- * win/tclsh.rc: Some clean-up with how the resource files are
- built. Fixed 'OriginalFilename' problem that still thought
- a debug suffix was still 'd', now is 'g'.
-
-2004-01-14 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclDictObj.c (TraceDictPath, DictExistsCmd): Adjusted
- behaviour of [dict exists] so a failure to look up a dictionary
- along the path of dicts doesn't trigger an error. This is how it
- was documented to behave previously... [Bug 871387]
-
- * generic/tclDictObj.c: Assorted dict fixes from Peter Spjuth
- relating to [Bug 876170].
- (SetDictFromAny): Make sure that lists retain their ordering even
- when converted to dictionaries and back.
- (TraceDictPath): Correct object reference count handling!
- (DictReplaceCmd, DictRemoveCmd): Stop object leak.
- (DictIncrCmd,DictLappendCmd,DictAppendCmd,DictSetCmd,DictUnsetCmd):
- Simpler handling of reference counts when assigning to variables.
- * tests/dict.test (dict-19.2): Memory leak stress test
-
-2004-01-13 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): Silence compiler warnings.
-
- Patch 876451: restores performance of [return]. Also allows forms
- such as [return -code error $msg] to be bytecompiled.
-
- * generic/tclInt.h: Factored Tcl_ReturnObjCmd() into two pieces:
- * generic/tclCmdMZ.c: TclMergeReturnOptions(), which can parse the
- options to [return], check their validity, and create the
- corresponding return options dictionary, and TclProcessReturn(),
- which takes that return options dictionary and performs the
- [return] operation.
-
- * generic/tclCompCmds.c: Rewrote TclCompileReturnCmd() to
- call TclMergeReturnOptions() at compile time so the return options
- dictionary is computed at compile time (when it is fully known).
- The dictionary is pushed on the stack along with the result, and
- the code and level values are included in the bytecode as operands.
- Also supports optimized compilation of un-[catch]ed [return]s from
- procs with default options into the INST_DONE instruction.
-
- * generic/tclExecute.c: Rewrote INST_RETURN instruction to retrieve
- the code and level operands, pop the return options from the stack,
- and call TclProcessReturn() to perform the [return] operation.
-
- * generic/tclCompile.h: New utilities include TclEmitInt4 macro
- * generic/tclCompile.c: and TclWordKnownAtCompileTime().
-
- End Patch 876451.
-
- * generic/tclFileName.c (Tcl_GlobObjCmd): Latest changes to
- management of the interp result by Tcl_GetIndexFromObj() exposed
- improper interp result management in the [glob] command procedure.
- Corrected by adopting the Tcl_SetObjResult(Tcl_NewStringObj) pattern.
- This stopped a segfault in test filename-11.36. [Bug 877677]
-
-2004-01-13 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct, Tcl_WrongNumArgs):
- Create fresh objects instead of using the one currently in the
- interpreter, which isn't guaranteed to be fresh and unshared. The
- cost for the core will be minimal because of the object cache, and
- this fixes [Bug 875395].
-
-2004-01-12 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclCompExpr.c (CompileLandOrLorExpr): cosmetic changes.
-
-2004-01-12 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclCompExpr.c (CompileLandOrLorExpr): new logic, fewer
- instructions. As a side effect, the instructions INST_LOR and
- INST_LAND are now never used.
- * generic/tclExecute.c (INST_JUMP*): small optimisation; fix a
- bug in debug code.
-
-2004-01-11 David Gravereaux <davygrvy@pobox.com>
-
- * win/tclWinThrd.c (Tcl_ConditionNotify): condPtr must be
- dereferenced to see if there are waiters else uninitialized
- datum is manipulated. [Bug 849007 789338 745068]
-
-2004-01-09 David Gravereaux <davygrvy@pobox.com>
-
- * generic/tcl.h: Renamed and deprecated #defines moved to within
- the #ifndef TCL_NO_DEPRECATED block. This allows us to build Tcl
- to check for deprecated functions in use, such as panic() and
- Tcl_Ckalloc(). By request from DKF. Extensions that build
- with -DTCL_NO_DEPRECATED now have these macros as restricted.
- ***POTENTIAL INCOMPATIBILITY***
+ * generic/tclMain.c: Added missing conditional on _WIN32 around code
+ that messes around with the definition of _UNICODE, to correct a badly
+ broken Unix build from Jan's last commit.
+2010-11-04 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclDecls.h: [FRQ 491789]: "setargv() doesn't support a
+ * generic/tclMain.c: unicode cmdline" implemented for Tcl on MSVC++
+ * doc/Tcl_Main.3:
+ * win/tclAppInit.c:
* win/makefile.vc:
- * win/rules.vc: Added -DTCL_NO_DEPRECATED usage to makefile.vc.
- Called like this: nmake -af makefile.vc CHECKS=nodep
+ * win/Makefile.in:
+ * win/tclWin32Dll.c: Eliminate minor MSVC warning TCHAR -> char
+ conversion
-2004-01-09 Vince Darley <vincentdarley@users.sourceforge.net>
+2010-11-04 Reinhard Max <max@suse.de>
- * generic/tclIOUtil.c: fix to infinite loop in
- TclFinalizeFilesystem [Bug 873311]
+ * tests/socket.test: Run the socket tests three times with the address
+ family set to any, inet, and inet6 respectively. Use constraints to
+ skip the tests if a family is found to be unsupported or not
+ configured on the local machine. Adjust the tests to dynamically adapt
+ to the address family that is being tested.
-2003-12-25 Mo DeJong <mdejong@users.sourceforge.net>
+ Rework some of the tests to speed them up by avoiding (supposedly)
+ unneeded [after]s.
- * win/tclWin32Dll.c (DllMain): Add HAVE_NO_SEH
- blocks in place of __try and __except statements
- to support gcc builds. This is needed after
- David's changes on 2003-12-21. [Tcl patch 858493]
+2010-11-04 Stuart Cassoff <stwo@users.sourceforge.net>
-2003-12-23 David Gravereaux <davygrvy@pobox.com>
+ * unix/Makefile.in: [Patch 3101127]: Installer Improvements.
+ * unix/install-sh:
- * generic/tclAlloc.c: All uses of 'panic' (the macro) changed
- * generic/tclBasic.c: to 'Tcl_Panic' (the function). The
- * generic/tclBinary.c: #define of panic in tcl.h clearly states
- * generic/tclCkalloc.c: it is deprecated in the comments.
- * generic/tclCmdAH.c: [Patch 865264]
- * generic/tclCmdIL.c:
- * generic/tclCmdMZ.c:
+2010-11-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/error.test (error-19.13): Another variation on testing for
+ issues in [try] compilation.
+
+ * doc/Tcl.n (Variable substitution): [Bug 3099086]: Increase clarity
+ of explanation of what characters are actually permitted in variable
+ substitutions. Note that this does not constitute a change of
+ behavior; it is just an improvement of explanation.
+
+2010-11-04 Don Porter <dgp@users.sourceforge.net>
+
+ * changes: Updates for 8.6b2 release. (Thanks Andreas Kupries)
+
+2010-11-03 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinFcmd.c: [FRQ 2965056]: Windows build with -DUNICODE
+ * win/tclWinFile.c: (more clean-ups for pre-win2000 stuff)
+ * win/tclWinReg.c:
+
+2010-11-03 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCmdMZ.c (TryPostBody): Ensure that errors when setting
+ * tests/error.test (error-19.1[12]): message/opt capture variables get
+ reflected properly to the caller.
+
+2010-11-03 Kevin B. Kenny <kennykb@acm.org>
+
+ * generic/tclCompCmds.c (TclCompileCatchCmd): [Bug 3098302]:
+ * tests/compile.test (compile-3.6): Reworked the compilation of the
+ [catch] command so as to avoid placing any code that might throw an
+ exception (specifically, any initial substitutions or any stores to
+ result or options variables) between the BEGIN_CATCH and END_CATCH but
+ outside the exception range. Added a test case that panics on a stack
+ smash if the change is not made.
+
+2010-11-01 Stuart Cassoff <stwo@users.sourceforge.net>
+
+ * library/safe.tcl: Improved handling of non-standard module path
+ * tests/safe.test: lists, empty path lists in particular.
+
+2010-11-01 Kevin B. Kenny <kennykb@acm.org>
+
+ * library/tzdata/Asia/Hong_Kong:
+ * library/tzdata/Pacific/Apia:
+ * library/tzdata/Pacific/Fiji: Olson's tzdata2010o.
+
+2010-10-29 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclTimer.c: [Bug 2905784]: Stop small [after]s from
+ wasting CPU while keeping accuracy.
+
+2010-10-28 Kevin B. Kenny <kennykb@acm.org>
+
+ [dogeen-assembler-branch]
+ * generic/tclAssembly.c:
+ * tests/assembly.test (assemble-31.*): Added jump tables.
+
+2010-10-28 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/http.test: [Bug 3097490]: Make http-4.15 pass in
+ isolation.
+
+ * unix/tclUnixSock.c: [Bug 3093120]: Prevent calls of
+ freeaddrinfo(NULL) which can crash some
+ systems. Thanks Larry Virden.
+
+2010-10-26 Reinhard Max <max@suse.de>
+
+ * Changelog.2008: Split off from Changelog.
+ * generic/tclIOSock.c (TclCreateSocketAddress): The interp != NULL
+ check is needed for ::tcl::unsupported::socketAF as well.
+
+2010-10-26 Donal K. Fellows <dkf@users.sf.net>
+
+ * unix/tclUnixSock.c (TcpGetOptionProc): Prevent crash if interp is
+ * win/tclWinSock.c (TcpGetOptionProc): NULL (a legal situation).
+
+2010-10-26 Reinhard Max <max@suse.de>
+
+ * unix/tclUnixSock.c (TcpGetOptionProc): Added support for
+ ::tcl::unsupported::noReverseDNS, which if set to any value, prevents
+ [fconfigure -sockname] and [fconfigure -peername] from doing
+ reverse DNS queries.
+
+2010-10-24 Kevin B. Kenny <kennykb@acm.org>
+
+ [dogeen-assembler-branch]
+ * generic/tclAssembly.c:
+ * tests/assembly.test (assemble-17.15): Reworked branch handling so
+ that forward branches can use jump1 (jumpTrue1, jumpFalse1). Added
+ test cases that the forward branches will expand to jump4, jumpTrue4,
+ jumpFalse4 when needed.
+
+2010-10-23 Kevin B. Kenny <kennykb@acm.org>
+
+ [dogeen-assembler-branch]
+ * generic/tclAssembly.h (removed):
+ Removed file that was included in only one
+ source file.
+ * generictclAssembly.c: Inlined tclAssembly.h.
+
+2010-10-17 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * doc/info.n: [Patch 2995655]:
+ * generic/tclBasic.c: Report inner contexts in [info errorstack]
* generic/tclCompCmds.c:
- * generic/tclCompExpr.c:
* generic/tclCompile.c:
- * generic/tclConfig.c:
+ * generic/tclCompile.h:
+ * generic/tclExecute.c:
+ * generic/tclInt.h:
+ * generic/tclNamesp.c:
+ * tests/error.test:
+ * tests/result.test:
+
+2010-10-20 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmds.c (TclCompileDictForCmd): Update the compilation
+ * generic/tclCompile.c (tclInstructionTable): of [dict for] so that
+ * generic/tclExecute.c (TEBCresume): it no longer makes any
+ use of INST_DICT_DONE now that's not needed, and make it clearer in
+ the implementation of the instruction that it's just a deprecated form
+ of unset operation. Followup to my commit of 2010-10-16.
+
+2010-10-19 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclZlib.c (Tcl_ZlibStreamGet): [Bug 3081008]: Ensure that
+ when a bytearray gets its internals entangled with zlib for more than
+ a passing moment, that bytearray will never be shimmered away. This
+ increases the amount of copying but is simple to get right, which is a
+ reasonable trade-off.
+
+ * generic/tclStringObj.c (Tcl_AppendObjToObj): Added some special
+ cases so that most of the time when you build up a bytearray by
+ appending, it actually ends up being a bytearray rather than
+ shimmering back and forth to string.
+
+ * tests/http11.test (check_crc): Use a simpler way to express the
+ functionality of this procedure.
+
+ * generic/tclZlib.c: Purge code that wrote to the object returned by
+ Tcl_GetObjResult, as we don't want to do that anti-pattern no more.
+
+2010-10-18 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/uniParse.tcl: [Bug 3085863]: tclUniData was 9 years old;
+ Ignore non-BMP characters and fix comment about UnicodeData.txt file.
+ * generic/regcomp.c: Fix comment
+ * tests/utf.test: Add some Unicode 6 testcases
+
+2010-10-17 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * doc/info.n: Document [info errorstack] faithfully.
+
+2010-10-16 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclExecute.c (ReleaseDictIterator): Factored out the release
+ of the bytecode-level dictionary iterator information so that the
+ side-conditions on instruction issuing are simpler.
+
+2010-10-15 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/reg_locale.c: [Bug 3085863]: tclUniData 9 years old: Updated
+ * generic/tclUniData.c: Unicode tables to latest UnicodeData.txt,
+ * tools/uniParse.tcl: corresponding with Unicode 6.0 (except for
+ out-of-range chars > 0xFFFF)
+
+2010-10-13 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCompile.c: Alternative fix for [Bugs 467523,983660] where
+ * generic/tclExecute.c: sharing of empty scripts is allowed again.
+
+2010-10-13 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinThrd.h: (removed) because it is just empty en used nowhere
+ * win/tcl.dsp
+
+2010-10-12 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/uniClass.tcl: Spacing and comments: let uniClass.tcl
+ * generic/regc_locale.c: generation match better the current
+ (hand-modified) regc_locale.c
+ * tools/uniParse.tcl: Generate proper const qualifiers for
+ * generic/tclUniData.c: tclUniData.c
+
+2010-10-12 Reinhard Max <max@suse.de>
+
+ * unix/tclUnixSock.c (CreateClientSocket): [Bug 3084338]: Fix a
+ memleak and refactor the calls to freeaddrinfo().
+
+2010-10-11 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinDde.c: [FRQ 2965056]: Windows build with -DUNICODE
+ * win/tclWinReg.c:
+ * win/tclWinTest.c: More cleanups
+ * win/tclWinFile.c: Add netapi32 to the link line, so we no longer
+ * win/tcl.m4: have to use LoadLibrary to access those
+ functions.
+ * win/makefile.vc:
+ * win/configure: (Re-generate with autoconf-2.59)
+ * win/rules.vc Update for VS10
+
+2010-10-09 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclExecute.c: Fix overallocation of exec stack in TEBC (due
+ to mixing numwords and numbytes)
+
+2010-10-08 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclIOSock.c: On Windows, use gai_strerrorA
+
+2010-10-06 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/winPipe.test: Test hygiene with makeFile and removeFile.
+
+ * generic/tclCompile.c: [Bug 3081065]: Prevent writing to the intrep
+ * tests/subst.test: fields of a freed Tcl_Obj.
+
+2010-10-06 Kevin B. Kenny <kennykb@acm.org>
+
+ [dogeen-assembler-branch]
+
+ * generic/tclAssembly.c:
+ * generic/tclAssembly.h:
+ * tests/assemble.test: Added catches. Still needs a lot of testing.
+
+2010-10-02 Kevin B. Kenny <kennykb@acm.org>
+
+ [dogeen-assembler-branch]
+
+ * generic/tclAssembly.c:
+ * generic/tclAssembly.h:
+ * tests/assemble.test: Added dictAppend, dictIncrImm, dictLappend,
+ dictSet, dictUnset, nop, regexp, nsupvar, upvar, and variable.
+
+2010-10-02 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclExecute.c (TEBCresume): [Bug 3079830]: Added invalidation
+ of string representations of dictionaries in some cases.
+
+2010-10-01 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * generic/tclExecute.c (EvalStatsCmd): change 'evalstats' to return
+ data to interp by default, or if given an arg, use that as filename to
+ output to (accepts 'stdout' and 'stderr'). Fix output to print used
+ inst count data.
+ * generic/tclCkalloc.c: Change TclDumpMemoryInfo sig to allow objPtr
+ * generic/tclInt.decls: as well as FILE* as output.
+ * generic/tclIntDecls.h:
+
+2010-10-01 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclBasic.c, generic/tclClock.c, generic/tclEncoding.c,
+ * generic/tclEnv.c, generic/tclLoad.c, generic/tclNamesp.c,
+ * generic/tclObj.c, generic/tclRegexp.c, generic/tclResolve.c,
+ * generic/tclResult.c, generic/tclUtil.c, macosx/tclMacOSXFCmd.c:
+ More purging of strcpy() from locations where we already know the
+ length of the data being copied.
+
+2010-10-01 Kevin B. Kenny <kennykb@acm.org>
+
+ [dogeen-assembler-branch]
+
+ * tests/assemble.test:
+ * generic/tclAssemble.h:
+ * generic/tclAssemble.c: Added listIn, listNotIn, and dictGet.
+
+2010-09-30 Kevin B. Kenny <kennykb@acm.org>
+
+ [dogeen-assembler-branch]
+
+ * tests/assemble.test: Added tryCvtToNumeric and several more list
+ * generic/tclAssemble.c: operations.
+ * generic/tclAssemble.h:
+
+2010-09-29 Kevin B. Kenny <kennykb@acm.org>
+
+ [dogeen-assembler-branch]
+
+ * tests/assemble.test: Completed conversion of tests to a
+ * generic/tclAssemble.c: "white box" structure that follows the
+ C code. Added missing safety checks on the operands of 'over' and
+ 'reverse' so that negative operand counts don't smash the stack.
+
+2010-09-29 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/configure: Re-generate with autoconf-2.59
+ * win/configure:
+ * generic/tclMain.c: Make compilable with -DUNICODE as well
+
+2010-09-28 Reinhard Max <max@suse.de>
+
+ TIP #162 IMPLEMENTATION
+
+ * doc/socket.n: Document the changes to the [socket] and
+ [fconfigure] commands.
+
+ * generic/tclInt.h: Introduce TclCreateSocketAddress() as a
+ * generic/tclIOSock.c: replacement for the platform-dependent
+ * unix/tclUnixSock.c: TclpCreateSocketAddress() functions. Extend
+ * unix/tclUnixChan.c: the [socket] and [fconfigure] commands to
+ * unix/tclUnixPort.h: behave as proposed in TIP #162. This is the
+ * win/tclWinSock.c: core of what is required to support the use of
+ * win/tclWinPort.h: IPv6 sockets in Tcl.
+
+ * compat/fake-rfc2553.c: A compat implementation of the APIs defined
+ * compat/fake-rfc2553.h: in RFC-2553 (getaddrinfo() and friends) on
+ top of the existing gethostbyname() etc.
+ * unix/configure.in: Test whether the fake-implementation is
+ * unix/tcl.m4: needed.
+ * unix/Makefile.in: Add a compile target for fake-rfc2553.
+
+ * win/configure.in: Allow cross-compilation by default.
+
+ * tests/socket.test: Improve the test suite to make more use of
+ * tests/remote.tcl: randomized ports to reduce interference with
+ tests running in parallel or other services on
+ the machine.
+
+2010-09-28 Kevin B. Kenny <kennykb@acm.org>
+
+ [dogeen-assembler-branch]
+
+ * tests/assemble.test: Added more "white box" tests.
+ * generic/tclAssembly.c: Added the error checking and reporting
+ for undefined labels. Revised code so that no pointers into the
+ bytecode sequence are held (because the sequence can move!),
+ that no Tcl_HashEntry pointers are held (because the hash table
+ doesn't guarantee their stability!) and to eliminate the BBHash
+ table, which is merely additional information indexed by jump
+ labels and can just as easily be held in the 'label' structure.
+ Renamed shared structures to CamelCase, and renamed 'label' to
+ JumpLabel because other types of labels may eventually be possible.
+
+2010-09-27 Kevin B. Kenny <kennykb@acm.org>
+
+ [dogeen-assembler-branch]
+
+ * tests/assemble.test: Added more "white box" tests.
+ * generic/tclAssembly.c: Fixed bugs exposed by the new tests.
+ (a) [eval] and [expr] had incorrect stack balance computed if
+ the arg was not a simple word. (b) [concat] accepted a negative
+ operand count. (c) [invoke] accepted a zero or negative operand
+ count. (d) more misspelt error messages.
+ Also replaced a funky NRCallTEBC with the new call
+ TclNRExecuteByteCode, necessitated by a merge with changes on the
+ HEAD.
+
+2010-09-26 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclBasic.c: [Patch 3072080] (minus the itcl
+ * generic/tclCmdIL.c: update): a saner NRE.
+ * generic/tclCompExpr.c:
+ * generic/tclCompile.c: This makes TclNRExecuteByteCode (ex TEBC)
+ * generic/tclCompile.h: to be a normal NRE citizen: it loses its
+ * generic/tclExecute.c: special status.
+ * generic/tclInt.decls: The logic flow within the BC engine is
+ * generic/tclInt.h: simplified considerably.
+ * generic/tclIntDecls.h:
+ * generic/tclObj.c:
+ * generic/tclProc.c:
+ * generic/tclTest.c:
+
+ * generic/tclVar.c: Use the macro HasLocalVars everywhere
+
+2010-09-26 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclOOMethod.c (ProcedureMethodVarResolver): avoid code
+ duplication, let the runtime var resolver call the compiled var
+ resolver.
+
+2010-09-26 Kevin B. Kenny <kennykb@acm.org>
+
+ [dogeen-assembler-branch]
+
+ * tests/assemble.test: Added many new tests moving toward a more
+ comprehensive test suite for the assembler.
+ * generic/tclAssembly.c: Fixed bugs exposed by the new tests:
+ (a) [bitnot] and [not] had incorrect operand counts. (b)
+ INST_CONCAT cannot concatenate zero objects. (c) misspelt error
+ messages. (d) the "assembly code" internal representation lacked
+ a duplicator, which caused double-frees of the Bytecode object
+ if assembly code ever was duplicated.
+
+2010-09-25 Kevin B. Kenny <kennykb@acm.org>
+
+ [dogeen-assembler-branch]
+
+ * generic/tclAssembly.c: Massive refactoring of the assembler
+ * generic/tclAssembly.h: to use a Tcl-like syntax (and use
+ * tests/assemble.test: Tcl_ParseCommand to parse it). The
+ * tests/assemble1.bench: refactoring also ensures that
+ Tcl_Tokens in the assembler have string ranges inside the source
+ code, which allows for [eval] and [expr] assembler directives
+ that simply call TclCompileScript and TclCompileExpr recursively.
+
+2010-09-24 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * tests/stringComp.test: improved string eq/cmp test coverage
+ * generic/tclExecute.c (TclExecuteByteCode): merge INST_STR_CMP and
+ INST_STR_EQ/INST_STR_NEQ paths. Speeds up eq/ne/[string eq] with
+ obj-aware comparisons and eq/==/ne/!= with length equality check.
+
+2010-09-24 Andreas Kupries <andreask@activestate.com>
+
+ * tclWinsock.c: [Bug 3056775]: Fixed race condition between thread and
+ internal co-thread access of a socket's structure because of the
+ thread not using the socketListLock in TcpAccept(). Added
+ documentation on how the module works to the top.
+
+2010-09-23 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclDecls.h: Make Tcl_SetPanicProc and Tcl_GetStringResult
+ * unix/tclAppInit.c: callable without stubs, just as Tcl_SetVar.
+ * win/tclAppInit.c:
+
+2010-09-23 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCmdAH.c: Fix cases where value returned by
+ * generic/tclEvent.c: Tcl_GetReturnOptions() was leaked.
+ * generic/tclMain.c: Thanks to Jeff Hobbs for discovery of the
+ anti-pattern to seek and destroy.
+
+2010-09-23 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tclAppInit.c: Make compilable with -DUNICODE (not activated
+ * win/tclAppInit.c: yet), many clean-ups in comments.
+
+2010-09-22 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclExecute: [Bug 3072640]: One more DECACHE_STACK_INFO() was
+ missing.
+
+ * tests/execute.test: Added execute-10.3 for [Bug 3072640]. The test
+ causes a mem failure.
+
+ * generic/tclExecute: Protect all possible writes to ::errorInfo or
+ ::errorCode with DECACHE_STACK_INFO(), as they could run traces. The
+ new calls to be protected are Tcl_ResetResult(), Tcl_SetErrorCode(),
+ IllegalExprOperandType(), TclExprFloatError(). The error was triggered
+ by [Patch 3072080].
+
+2010-09-22 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tcl.m4: Add kernel32 to LIBS, so the link line for
+ * win/configure: mingw is exactly the same as for MSVC++.
+
+2010-09-21 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * generic/tclExecute.c (TclExecuteByteCode):
+ * generic/tclOOMethod.c (ProcedureMethodCompiledVarConnect):
+ * generic/tclVar.c (TclLookupSimpleVar, CompareVarKeys):
+ * generic/tclPathObj.c (Tcl_FSGetNormalizedPath, Tcl_FSEqualPaths):
+ * generic/tclIOUtil.c (TclFSCwdPointerEquals): peephole opt
+ * generic/tclResult.c (TclMergeReturnOptions): Use memcmp where
+ applicable as possible speedup on some libc variants.
+
+2010-09-21 Kevin B. Kenny <kennykb@acm.org>
+
+ [BRANCH: dogeen-assembler-branch]
+
+ * generic/tclAssembly.c (new file):
+ * generic/tclAssembly.h:
+ * generic/tclBasic.c (builtInCmds, Tcl_CreateInterp):
+ * generic/tclInt.h:
+ * tests/assemble.test (new file):
+ * tests/assemble1.bench (new file):
+ * unix/Makefile.in:
+ * win/Makefile.in:
+ * win/Makefile.vc:
+ Initial commit of Ozgur Dogan Ugurlu's (SF user: dogeen)
+ assembler for the Tcl bytecode language.
+
+2010-09-21 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinFile.c: Fix declaration after statement.
+ * win/tcl.m4: Add -Wdeclaration-after-statement, so this
+ * win/configure: mistake cannot happen again.
+ * win/tclWinFCmd.c: [Bug 3069278]: Breakage on head Windows
+ * win/tclWinPipe.c: triggered by install-tzdata, final fix
+
+2010-09-20 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinFCmd.c: Eliminate tclWinProcs->useWide everywhere, since
+ * win/tclWinFile.c: the value is always "1" on platforms >win95
+ * win/tclWinPipe.c:
+
+2010-09-19 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/file.n (file readlink): [Bug 3070580]: Typofix.
+
+2010-09-18 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinFCmd.c [Bug 3069278]: Breakage on head Windows triggered
+ by install-tzdata. Temporary don't compile this with -DUNICODE, while
+ investigating this bug.
+
+2010-09-16 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * win/tclWinFile.c: Remove define of FINDEX_INFO_LEVELS as all
+ supported versions of compilers should now have it.
+
+ * unix/Makefile.in: Do not pass current build env vars when using
+ NATIVE_TCLSH in targets.
+
+2010-09-16 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclDecls.h: Make Tcl_FindExecutable() work in UNICODE
+ * generic/tclEncoding.c: compiles (windows-only) as well as ASCII.
+ * generic/tclStubInit.c: Needed for [FRQ 491789]: setargv() doesn't
+ support a unicode cmdline.
+
+2010-09-15 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclBinary.c (TclAppendBytesToByteArray): [Bug 3067036]: Make
+ sure we never try to double zero repeatedly to get a buffer size. Also
+ added a check for sanity on the size of buffer being appended.
+
+2010-09-15 Don Porter <dgp@users.sourceforge.net>
+
+ * unix/Makefile.in: Revise `make dist` target to tolerate the
+ case of zero bundled packages.
+
+2010-09-15 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/genStubs.tcl: [Patch 3034251]: Backport ttkGenStubs.tcl
+ * generic/tcl.decls: features to genStubs.tcl. Make the "generic"
+ * generic/tclInt.decls: argument in the *.decls files optional
+ * generic/tclOO.decls: (no change to any tcl*Decls.h files)
+ * generic/tclTomMath.decls:
+ This allows genStubs.tcl to generate the ttk stub files as well, while
+ keeping full compatibility with existing *.decls files.
+
+2010-09-14 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinPort.h: Allow all Win2000+ API entries in Tcl
+ * win/tclWin32Dll.c: Eliminate dynamical loading of advapi23 and
+ kernel32 symbols.
+
+2010-09-13 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinChan.c: Various clean-ups, converting from
+ * win/tclWinConsole.c: tclWinProc->xxxProc directly to Xxx
+ * win/tclWinInit.c: (no change in functionality)
+ * win/tclWinLoad.c:
+ * win/tclWinSerial.c:
+ * win/tclWinSock.c:
+ * tools/genStubs.tcl: Add scspec feature from ttkGenStubs.tcl
+ (no change in output for *Decls.h files)
+
+2010-09-10 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWin32Dll.c: Partly revert yesterday's change, to make it work
+ on VC++ 6.0 again.
+
+2010-09-10 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/regsub.n: [Bug 3063568]: Fix for gotcha in example due to Tcl's
+ special handling of backslash-newline. Makes example slightly less
+ pure, but more useful.
+
+2010-09-09 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/makefile.vc: Mingw should always link with -ladvapi32.
+ * win/tcl.m4:
+ * win/configure: (regenerated)
+ * win/tclWinInt.h: Remove ascii variant of tkWinPocs table, it is
+ * win/tclWin32Dll.c: no longer necessary. Fix CreateProcess signature
+ * win/tclWinPipe.c: and remove unused GetModuleFileName and lstrcpy.
+ * win/tclWinPort.h: Mingw/cygwin fixes: <tchar.h> should always be
+ included, and fix conflict in various macro values: Always force the
+ same values as in VC++.
+
+2010-09-08 Don Porter <dgp@users.sourceforge.net>
+
+ * win/tclWinChan.c: [Bug 3059922]: #ifdef protections to permit
+ * win/tclWinFCmd.c: builds with mingw on amd64 systems. Thanks to
+ "mescalinum" for reporting and testing.
+
+2010-09-08 Andreas Kupries <andreask@activestate.com>
+
+ * doc/tm.n: Added underscore to the set of characters accepted in
+ module names. This is true for quite some time in the code, this
+ change catches up the documentation.
+
+2010-09-03 Donal K. Fellows <dkf@users.sf.net>
+
+ * tools/tcltk-man2html.tcl (plus-pkgs): Improve the package
+ documentation search pattern to support the doctoos-generated
+ directory structure.
+ * tools/tcltk-man2html-utils.tcl (output-name): Made this more
+ resilient against misformatted NAME sections, induced by import of
+ Thread package documentation into Tcl doc tree.
+
+2010-09-02 Andreas Kupries <andreask@activestate.com>
+
+ * doc/glob.n: Fixed documentation ambiguity regarding the handling
+ of -join.
+
+ * library/safe.tcl (safe::AliasGlob): Fixed another problem, the
+ option -join does not stop option processing in the core builtin, so
+ the emulation must not do that either.
+
+2010-09-01 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+
+ * library/safe.tcl (safe::AliasGlob): Moved the command extending the
+ actual glob command with a -directory flag to when we actually have a
+ proper untranslated path,
+
+2010-09-01 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclExecute.c: [Bug 3057639]: Applied patch by Jeff to make
+ * generic/tclVar.c: the behaviour of lappend in bytecompiled mode
+ * tests/append.test: consistent with direct-eval and 'append'
+ * tests/appendComp.test: generally. Added tests (append*-9.*)
+ showing the difference.
+
+2010-08-31 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/rules.vc: Typo (thanks to Twylite discovering
+ this)
+ * generic/tclStubLib.c: Revert to previous version: MSVC++ 6.0
+ * generic/tclTomMathStubLib.c:cannot handle the new construct.
+ * generic/tcl.decls [Patch 2997642]: Many type casts needed
+ * generic/tclDecls.h: when using Tcl_Pkg* API. Remaining part.
+ * generic/tclPkg.c:
+ * generic/tclBasic.c:
+ * generic/tclTomMathInterface.c:
+ * doc/PkgRequire.3
+
+2010-08-31 Andreas Kupries <andreask@activestate.com>
+
+ * win/tcl.m4: Applied patch by Jeff fixing issues with the manifest
+ handling on Win64.
+ * win/configure: Regenerated.
+
+2010-08-30 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclBasic.c: [Bugs 3046594,3047235,3048771]: New
+ * generic/tclCmdAH.c: implementation for [tailcall] command: it now
+ * generic/tclCmdMZ.c: schedules the command and returns TCL_RETURN.
+ * generic/tclExecute.c: This fixes all issues with [catch] and [try].
+ * generic/tclInt.h: Thanks dgp for exploring the dark corners.
+ * generic/tclNamesp.c: More thorough testing is required.
+ * tests/tailcall.test:
+
+2010-08-30 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/Makefile.in: [FRQ 2965056]: Windows build with -DUNICODE
+ * win/rules.vc:
+ * win/tclWinFCmd.c: Make sure that allocated TCHAR arrays are
+ * win/tclWinFile.c: always properly aligned as wchar_t, and
+ * win/tclWinPipe.c: not bigger than necessary.
+ * win/tclWinSock.c:
+ * win/tclWinDde.c: Those 3 files are not converted yet to be
+ * win/tclWinReg.c: built with -DUNICODE, so add a TODO.
+ * win/tclWinTest.c:
+ * generic/tcl.decls: [Patch 2997642]: Many type casts needed when
+ * generic/tclDecls.h: using Tcl_Pkg* API. Partly.
+ * generic/tclPkg.c:
+ * generic/tclStubLib.c: Demonstration how this change can benefit
+ code.
+ * generic/tclTomMathStubLib.c:
+ * doc/PkgRequire.3:
+
+2010-08-29 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/dict.n: [Bug 3046999]: Corrected cross reference to array
+ manpage to refer to (correct) existing subcommand.
+
+2010-08-26 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * unix/configure, unix/tcl.m4: SHLIB_LD_LIBS='${LIBS}' for OSF1-V*.
+ Add /usr/lib64 to set of auto-search dirs. [Bug 1230554]
+ (SC_PATH_X): Correct syntax error when xincludes not found.
+
+ * win/Makefile.in (VC_MANIFEST_EMBED_DLL VC_MANIFEST_EMBED_EXE):
+ * win/configure, win/configure.in, win/tcl.m4: SC_EMBED_MANIFEST
+ macro and --enable-embedded-manifest configure arg added to support
+ manifest embedding where we know the magic. Help prevents DLL hell
+ with MSVC8+.
+
+2010-08-24 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.decls: [Bug 3007895]: Tcl_(Find|Create)HashEntry
+ * generic/tclHash.c: stub entries can never be called.
+ * generic/tclDecls.h:
+ * generic/tclStubInit.c: [Patch 2994165]: Change signature of
+ Tcl_FSGetNativePath and TclpDeleteFile follow-up: move stub entry back
+ to original location.
+
+2010-08-23 Kevin B. Kenny <kennykb@acm.org>
+
+ * library/tzdata/Africa/Cairo:
+ * library/tzdata/Asia/Gaza: Olson's tzdata2010l.
+
+2010-08-22 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclBasic.c: [Patch 3009403]: Signature of Tcl_GetHashKey,
+ * generic/tclBinary.c: Tcl_(Create|Find)HashEntry follow-up:
+ * generic/tclCmdIL.c: Remove many type casts which are no longer
+ * generic/tclCompile.c:necessary as a result of this signature change.
* generic/tclDictObj.c:
* generic/tclEncoding.c:
- * generic/tclEvent.c:
* generic/tclExecute.c:
- * generic/tclHash.c:
* generic/tclInterp.c:
- * generic/tclIO.c:
* generic/tclIOCmd.c:
- * generic/tclIOUtil.c:
- * generic/tclListObj.c:
- * generic/tclLiteral.c:
- * generic/tclNamesp.c:
* generic/tclObj.c:
- * generic/tclParse.c:
- * generic/tclPathObj.c:
- * generic/tclPkg.c:
- * generic/tclPreserve.c:
* generic/tclProc.c:
- * generic/tclStringObj.c:
* generic/tclTest.c:
- * generic/tclThreadAlloc.c:
- * generic/tclTimer.c:
* generic/tclTrace.c:
+ * generic/tclUtil.c:
* generic/tclVar.c:
- * mac/tclMacChan.c:
- * mac/tclMacOSA.c:
- * mac/tclMacResource.c:
- * mac/tclMacSock.c
- * mac/tclMacThrd.c:
+
+2010-08-21 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/linsert.n: [Bug 3045123]: Make description of what is actually
+ happening more accurate.
+
+2010-08-21 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/genStubs.tcl: [Patch 3034251]: Backport ttkGenStubs.tcl
+ features to genStubs.tcl, partly: Use void (*reserved$i)(void) = 0
+ instead of void *reserved$i = NULL for unused stub entries, in case
+ pointer-to-function and pointer-to-object are different sizes.
+ * generic/tcl*Decls.h: (regenerated)
+ * generic/tcl*StubInit.c:(regenerated)
+
+2010-08-20 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * doc/Method.3: Fix definition of Tcl_MethodType.
+
+2010-08-19 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclTrace.c (TraceExecutionObjCmd, TraceCommandObjCmd)
+ (TraceVariableObjCmd): [Patch 3048354]: Use memcpy() instead of
+ strcpy() to avoid buffer overflow; we have the correct length of data
+ to copy anyway since we've just allocated the target buffer.
+
+2010-08-18 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/genStubs.tcl: [Patch 3034251]: Backport ttkGenStubs.tcl
+ features to genStubs.tcl, partly: remove unneeded ifdeffery and put
+ C++ guard around stubs pointer definition.
+ * generic/*Decls.h: (regenerated)
+
+2010-08-18 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclBasic.c: New redesign of [tailcall]: find
+ * generic/tclExecute.c: errors early on, so that errorInfo
+ * generic/tclInt.h: contains the proper info [Bug 3047235]
+ * generic/tclNamesp.c:
+
+ * generic/tclCmdAH.c (TclNRTryObjCmd): [Bug 3046594]: Block
+ tailcalling out of the body of a non-bc'ed [try].
+
+ * generic/tclBasic.c: Redesign of [tailcall] to
+ * generic/tclCmdAH.c: (a) fix [Bug 3047235]
+ * generic/tclCompile.h: (b) enable fix for [Bug 3046594]
+ * generic/tclExecute.c: (c) enable recursive tailcalls
+ * generic/tclInt.h:
+ * generic/tclNamesp.c:
+ * tests/tailcall.test:
+
+2010-08-18 Donal K. Fellows <dkf@users.sf.net>
+
+ * library/safe.tcl (AliasGlob): [Bug 3004191]: Restore safe [glob] to
+ working condition.
+
+2010-08-15 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclProc.c (ProcWrongNumArgs): [Bug 3045010]: Make the
+ handling of passing the wrong number of arguments to [apply] somewhat
+ less verbose when a lambda term is present.
+
+2010-08-14 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * compat/unicows: Remove completely, see [FRQ 2819611].
+ * doc/FileSystem.3: [Patch 2994165]: Change signature of
+ * generic/tcl.decls Tcl_FSGetNativePath and TclpDeleteFile
+ * generic/tclDecls.h:
+ * generic/tclIOUtil.c:
+ * generic/tclStubInit.c:
+ * generic/tclInt.h:
+ * unix/tclUnixFCmd.c:
+ * win/tclWinFCmd.c:
+ * doc/Hash.3: [Patch 3009403]: Signature of Tcl_GetHashKey,
+ * generic/tcl.h: Tcl_(Create|Find)HashEntry
+
+2010-08-11 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * unix/ldAix: Remove ancient (pre-4.2) AIX support
+ * unix/configure: Regen with ac-2.59
+ * unix/configure.in, unix/tclConfig.sh.in, unix/Makefile.in:
+ * unix/tcl.m4 (AIX): Remove the need for ldAIX, replace with
+ -bexpall/-brtl. Remove TCL_EXP_FILE (export file) and other baggage
+ that went with it. Remove pre-4 AIX build support.
+
+2010-08-11 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclBasic.c (TclNRYieldToObjCmd):
+ * tests/coroutine.test: Fixed bad copypasta snafu. Thanks to Andy Goth
+ for finding the bug.
+
+2010-08-10 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * generic/tclUtil.c (TclByteArrayMatch): Patterns may not be
+ null-terminated, so account for that.
+
+2010-08-09 Don Porter <dgp@users.sourceforge.net>
+
+ * changes: Updates for 8.6b2 release.
+
+2010-08-04 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * win/Makefile.in, win/makefile.bc, win/makefile.vc, win/tcl.dsp:
+ * win/tclWinPipe.c (TclpCreateProcess):
+ * win/stub16.c (removed): Removed Win9x tclpip8x.dll build and 16-bit
+ application loader stub support. Win9x is no longer supported.
+
+ * win/tclWin32Dll.c (TclWinInit): Hard-enforce Windows 9x as an
+ unsupported platform with a panic. Code to support it still exists in
+ other files (to go away in time), but new APIs are being used that
+ don't exist on Win9x.
+
+ * unix/tclUnixFCmd.c: Adjust license header as per
+ ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
+
+ * license.terms: Fix DFARs note for number-adjusted rights clause
+
+ * win/tclWin32Dll.c (asciiProcs, unicodeProcs):
+ * win/tclWinLoad.c (TclpDlopen): 'load' use LoadLibraryEx with
+ * win/tclWinInt.h (TclWinProcs): LOAD_WITH_ALTERED_SEARCH_PATH to
+ prefer dependent DLLs in same dir as loaded DLL.
+
+ * win/Makefile.in (%.${OBJEXT}): better implicit rules support
+
+2010-08-04 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclIORChan.c: [Bug 3034840]: Fixed reference counting in
+ * generic/tclIORTrans.c: InvokeTclMethod and callers.
+ * tests/ioTrans.test:
+
+2010-08-03 Andreas Kupries <andreask@activestate.com>
+
+ * tests/var.test (var-19.1): [Bug 3037525]: Added test demonstrating
+ the local hashtable deletion crash and fix.
+
+ * tests/info.test (info-39.1): Added forward copy of test in 8.5
+ branch about [Bug 2933089]. Should not fail, and doesn't, after
+ updating the line numbers to the changed position.
+
+2010-08-02 Kevin B. Kenny <kennykb@users.sf.net>
+
+ * library/tzdata/America/Bahia_Banderas:
+ * library/tzdata/Pacific/Chuuk:
+ * library/tzdata/Pacific/Pohnpei:
+ * library/tzdata/Africa/Cairo:
+ * library/tzdata/Europe/Helsinki:
+ * library/tzdata/Pacific/Ponape:
+ * library/tzdata/Pacific/Truk:
+ * library/tzdata/Pacific/Yap: Olson's tzdata2010k.
+
+2010-08-02 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclVar.c: Correcting bad port of [Bug 3037525] fix
+
+2010-07-28 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclVar.c: [Bug 3037525]: Lose fickle optimisation in
+ TclDeleteVars (used for runtime-created locals) that caused crash.
+
+2010-07-29 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * compat/zlib/win32/README.txt: Official build of zlib1.dll 1.2.5 is
+ * compat/zlib/win32/USAGE.txt: finally available, so put it in.
+ * compat/zlib/win32/zlib1.dll:
+
+2010-07-25 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/http.n: Corrected description of location of one of the entries
+ in the state array.
+
+2010-07-24 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclDecls.h: [Bug 3029891]: Functions that don't belong in
+ * generic/tclTest.c: the stub table.
+ * generic/tclBasic.c: From [Bug 3030870] make itcl 3.x built with
+ pre-8.6 work in 8.6: Relax the relation between Tcl_CallFrame and
+ CallFrame.
+
+2010-07-16 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclBasic.c: Added more errorCode setting.
+
+2010-07-15 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclExecute.c (TclExecuteByteCode): Ensure that [dict get]
+ * generic/tclDictObj.c (DictGetCmd): always generates an errorCode on
+ a failure to look up an entry.
+
+2010-07-11 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+ * unix/configure: (regenerated)
+ * unix/configure.in: For the NATIVE_TCLSH variable use the autoconf
+ * unix/Makefile.in: SC_PROG_TCLSH to try and find a locally installed
+ native binary. This avoids manually fixing up when cross compiling. If
+ there is not one, revert to using the build product.
+
+2010-07-02 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclInt.decs: Reverted to the original TIP 337
+ implementation on what to do with the obsolete internal stub for
+ TclBackgroundException() (eliminate it!)
+ * generic/tclIntDecls.h: make genstubs
+ * generic/tclStubInit.c:
+
+2010-07-02 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.decls: [Bug 803489]: Tcl_FindNamespace problem in
+ * generic/tclIntDecls.h: the Stubs table
+ * generic/tclStubInit.c:
+
+2010-07-02 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclExecute.c (IllegalExprOperandType): [Bug 3024379]: Made
+ sure that errors caused by an argument to an operator being outside
+ the domain of the operator all result in ::errorCode being ARITH
+ DOMAIN and not NONE.
+
+2010-07-01 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/rules.vc: [Bug 3020677]: wish can't link reg1.2
+ * tools/checkLibraryDoc.tcl: formatting, spacing, cleanup unused
+ * tools/eolFix.tcl: variables; no change in generated output
+ * tools/fix_tommath_h.tcl:
+ * tools/genStubs.tcl:
+ * tools/index.tcl:
+ * tools/man2help2.tcl:
+ * tools/regexpTestLib.tcl:
+ * tools/tsdPerf.tcl:
+ * tools/uniClass.tcl:
+ * tools/uniParse.tcl:
+
+2010-07-01 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/mathop.n: [Bug 3023165]: Fix typo that was preventing proper
+ rendering of the exclusive-or operator.
+
+2010-06-28 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclPosixStr.c: [Bug 3019634]: errno.h and tclWinPort.h have
+ conflicting definitions. Added messages for ENOTRECOVERABLE, EOTHER,
+ ECANCELED and EOWNERDEAD, and fixed various typing mistakes in other
+ messages.
+
+2010-06-25 Reinhard Max <max@suse.de>
+
+ * tests/socket.test: Prevent a race condition during shutdown of the
+ remote test server that can cause a hang when the server is being run
+ in verbose mode.
+
+2010-06-24 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinPort.h: [Bug 3019634]: errno.h and tclWinPort.h have
+ conflicting definitions.
+
+ ***POTENTIAL INCOMPATIBILITY***
+ On win32, the correspondence between errno and the related error
+ message, as handled by Tcl_ErrnoMsg() changes. The error message is
+ kept the same, but the corresponding errno value might change.
+
+2010-06-22 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCmdIL.c (Tcl_LsetObjCmd): [Bug 3019351]: Corrected wrong
+ args message.
+
+2010-06-21 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tclLoadDl.c: Eliminate various unnecessary type casts, use
+ * unix/tclLoadNext.c: function typedefs whenever possible
* unix/tclUnixChan.c:
+ * unix/tclUnixFile.c:
* unix/tclUnixNotfy.c:
+ * unix/tclUnixSock.c:
+ * unix/tclUnixTest.c:
+ * unix/tclXtTest.c:
+ * generic/tclZlib.c: Remove hack needed for zlib 1.2.3 on win32
+
+2010-06-18 Donal K. Fellows <dkf@users.sf.net>
+
+ * library/init.tcl (auto_execok): [Bug 3017997]: Add .cmd to the
+ default list of extensions that we can execute interactively.
+
+2010-06-16 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/loadICU.tcl: [Bug 3016135]: Traceback using clock format
+ * library/msgs/he.msg: with locale of he_IL.
+
+ * generic/tcl.h: Simplify Tcl_AppInit and *_Init definitions,
+ * generic/tclInt.h: spacing. Change TclpThreadCreate and
+ * generic/tcl.decls: Tcl_CreateThread signature, making clear that
+ * generic/tclDecls.h: "proc" is a function pointer, as in all other
+ * generic/tclEvent.c: "proc" function parameters.
+ * generic/tclTestProcBodyObj.c:
+ * win/tclWinThrd.c:
* unix/tclUnixThrd.c:
+ * doc/Thread.3:
+ * doc/Class.3: Fix Tcl_ObjectMetadataType definition.
+
+2010-06-14 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/Makefile.in: Fix compilation of xttest with 8.6 changes
* unix/tclXtNotify.c:
- * win/tclWin32Dll.c:
- * win/tclWinChan.c:
- * win/tclWinFCmd.c:
+ * unix/tclXtTest.c:
+ * generic/tclPipe.c: Fix gcc warning (with -fstrict-aliasing=2)
+ * library/auto.tcl: Spacing and style fixes.
+ * library/history.tcl:
+ * library/init.tcl:
+ * library/package.tcl:
+ * library/safe.tcl:
+ * library/tm.tcl:
+
+2010-06-13 Donal K. Fellows <dkf@users.sf.net>
+
+ * tools/tcltk-man2html.tcl (make-man-pages): [Bug 3015327]: Make the
+ title of a manual page be stored relative to its resulting directory
+ name as well as its source filename. This was caused by both Tcl and a
+ contributed package ([incr Tcl]) defining an Object.3. Also corrected
+ the joining of strings in titles to avoid extra braces.
+
+2010-06-09 Andreas Kupries <andreask@activestate.com>
+
+ * library/platform/platform.tcl: Added OSX Intel 64bit
+ * library/platform/pkgIndex.tcl: Package updated to version 1.0.9.
+ * unix/Makefile.in:
+ * win/Makefile.in:
+
+2010-06-09 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/tsdPerf.c: Fix export of symbol Tsdperf_Init, when using
+ -fvisibility=hidden. Make two functions static, eliminate some
+ unnecessary type casts.
+ * tools/configure.in: Update to Tcl 8.6
+ * tools/configure: (regenerated)
+ * tools/.cvsignore new file
+
+2010-06-07 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclExecute.c: Ensure proper reset of [info errorstack] even
+ * generic/tclNamesp.c: when compiling constant expr's with errors.
+
+2010-06-05 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclBasic.c: [Bug 3008307]: make callerPtr chains be
+ * generic/tclExecute.c: traversable accross coro boundaries. Add the
+ special coroutine CallFrame (partially reverting commit of
+ 2009-12-10), as it is needed for coroutines that do not push a CF, eg,
+ those with [eval] as command. Thanks to Colin McCormack (coldstore)
+ and Alexandre Ferrieux for the hard work on this.
+
+2010-06-03 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclNamesp.c: Safer (and faster) computation of [uplevel]
+ * tests/error.test: offsets in TIP 348. Toplevel offsets no longer
+ * tests/result.test: overestimated.
+
+2010-06-02 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclOO.h: BUILD_tcloo is never defined (leftover)
+ * win/makefile.bc: Don't set BUILD_tcloo (leftover)
+ See also entry below: 2008-06-01 Joe Mistachkin
+
+2010-06-01 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclNamesp.c: Fix computation of [uplevel] offsets in TIP 348
+ * tests/error.test: Only depend on callerPtr chaining now.
+ * tests/result.test: Needed for upcoming coro patch.
+
+2010-05-31 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclVar.c: Eliminate some casts to (Tcl_HashTable *)
+ * generic/tclExecute.c:
+ * tests/fileSystem.test: Fix filesystem-5.1 test failure on CYGWIN
+
+2010-05-28 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.h: [Patch 3008541]: Order of TIP #348 fields in
+ Interp structure
+
+2010-05-28 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmdsSZ.c (IssueTryFinallyInstructions): [3007374]:
+ Corrected error in handling of catch contexts to prevent crash with
+ chained handlers.
+
+ * generic/tclExecute.c (TclExecuteByteCode): Restore correct operation
+ of instruction-level execution tracing (had been broken by NRE).
+
+2010-05-27 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * library/opt/optParse.tcl: Don't generate spaces at the end of a
+ * library/opt/pkgIndex.tcl: line, eliminate ';' at line end, bump to
+ * tools/uniParse.tcl: v0.4.6
+ * generic/tclUniData.c:
+ * tests/opt.test:
+ * tests/safe.test:
+
+2010-05-21 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/installData.tcl: Make sure that copyDir only receives
+ normalized paths, otherwise it might result in a crash on CYGWIN.
+ Restyle according to the Tcl style guide.
+ * generic/tclStrToD.c: [Bug 3005233]: Fix for build on OpenBSD vax
+
+2010-05-19 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * tests/dict.test: Add missing tests for [Bug 3004007], fixed under
+ the radar on 2010-02-24 (dkf): EIAS violation in list-dict conversions
+
+2010-05-19 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/regcomp.c: Don't use arrays of length 1, just use a
+ * generic/tclFileName.c: single element then, it makes code more
+ * generic/tclLoad.c: readable. (Here it even prevents a type cast)
+
+2010-05-17 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclStrToD.c: [Bug 2996549]: Failure in expr.test on Win32
+
+2010-05-17 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCmdIL.c (TclInfoFrame): Change this code to use
+ Tcl_GetCommandFullName rather than rolling its own. Discovered during
+ the hunting of [Bug 3001438] but unlikely to be a fix.
+
+2010-05-11 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinConsole.c: [Patch 2997087]: Unnecessary type casts.
+ * win/tclWinDde.c:
+ * win/tclWinLoad.c:
* win/tclWinNotify.c:
- * win/tclWinPipe.c:
+ * win/tclWinSerial.c:
* win/tclWinSock.c:
- * win/tclWinThrd.c:
+ * win/tclWinTime.c:
+ * win/tclWinPort.h: Don't duplicate CYGWIN timezone #define from
+ tclPort.h
- * generic/tclInt.h: Deprecated use of Tcl_Ckalloc changed to
- Tcl_Alloc in the TclAllocObjStorage macro.
+2010-05-07 Andreas Kupries <andreask@activestate.com>
-2003-12-22 David Gravereaux <davygrvy@pobox.com>
+ * library/platform/platform.tcl: Fix cpu name for Solaris/Intel 64bit.
+ * library/platform/pkgIndex.tcl: Package updated to version 1.0.8.
+ * unix/Makefile.in:
+ * win/Makefile.in:
- * win/nmakehlp.c:
- * win/rules.vc: New feature for extensions that use rules.vc.
- Now reads header files for version strings. No more hard coding
- TCL_VERSION = 8.5 and having to edit it when you swap cores.
+2010-05-06 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclPkg.c: Unnecessary type casts, see [Patch 2997087]
+
+2010-05-04 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinNotify.c: TCHAR-related fixes, making those two files
+ * win/tclWinSock.c: compile fine when TCHAR != char. Please see
+ comments in [FRQ 2965056] (2965056-1.patch).
+
+2010-05-03 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclIORChan.c: Use "tclIO.h" and "tclTomMathDecls.h"
+ * generic/tclIORTrans.c: everywhere
+ * generic/tclTomMath.h:
+ * tools/fix_tommath_h.tcl:
+ * libtommath/tommath.h: Formatting (# should always be first char on
+ line)
+ * win/tclAppInit.c: For MINGW/CYGWIN, use GetCommandLineA
+ explicitly.
+ * unix/.cvsignore: Add pkg, *.dll
+
+ * libtommath/tommath.h: CONSTify various useful internal
+ * libtommath/bn_mp_cmp_d.c: functions (TclBignumToDouble, TclCeil,
+ * libtommath/bn_mp_cmp_mag.c: TclFloor), and related tommath functions
+ * libtommath/bn_mp_cmp.c:
+ * libtommath/bn_mp_copy.c:
+ * libtommath/bn_mp_count_bits.c:
+ * libtommath/bn_mp_div_2d.c:
+ * libtommath/bn_mp_mod_2d.c:
+ * libtommath/bn_mp_mul_2d.c:
+ * libtommath/bn_mp_neg.c:
+ * generic/tclBasic.c: Handle TODO: const correctness ?
+ * generic/tclInt.h:
+ * generic/tclStrToD.c:
+ * generic/tclTomMath.decls:
+ * generic/tclTomMath.h:
+ * generic/tclTomMathDecls.h:
- * win/makefile.vc: VERSION macro now set by reading tcl.h for it.
+2010-04-30 Don Porter <dgp@users.sourceforge.net>
- * generic/tcl.h: Removed note that makefile.vc needs to have a
- version number changed.
+ * generic/tcl.h: Bump patchlevel to 8.6b1.2 to distinguish
+ * library/init.tcl: CVS snapshots from earlier snapshots as well
+ * unix/configure.in: as the 8.6b1 and 8.6b2 releases.
+ * win/configure.in:
-2003-12-21 David Gravereaux <davygrvy@pobox.com>
+ * unix/configure: autoconf-2.59
+ * win/configure:
- * win/tclWin32Dll.c: Structured Exception Handling added around
- Tcl_Finalize called from DllMain's DLL_PROCESS_DETACH. We can't
- be 100% assured that Tcl is being unloaded by the OS in a stable
- condition and we need to protect the exit handlers should the
- stack be in a hosed state. AT&T style assembly for SEH under
- MinGW has not been added yet. This is a first part change for
- [Patch 858493]
+ * generic/tclBinary.c (TclAppendBytesToByteArray): Add comments
+ * generic/tclInt.h (TclAppendBytesToByteArray): placing overflow
+ protection responsibility on caller. Convert "len" argument to signed
+ int which any value already vetted for overflow issues will fit into.
+ * generic/tclStringObj.c: Update caller; standardize panic msg.
-2003-12-17 Daniel Steffen <das@users.sourceforge.net>
+ * generic/tclBinary.c (UpdateStringOfByteArray): [Bug 2994924]: Add
+ panic when the generated string representation would grow beyond Tcl's
+ size limits.
- * generic/tclBinary.c (DeleteScanNumberCache): fixed crashing bug
- when numeric scan-value cache contains NULL value.
+2010-04-30 Donal K. Fellows <dkf@users.sf.net>
-2003-12-17 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclBinary.c (TclAppendBytesToByteArray): Add extra armour
+ against buffer overflows.
- * generic/tclCmdAH.c:
- * unix/tclUnixFile.c:
- * win/tclWinFCmd.c:
- * tests/fCmd.test:
- * tests/fileSystem.test:
- * doc/file.n: final fix to support for relative links and
- its implications on normalization and other parts of the
- filesystem code. Fixes [Bug 859251] and some Windows
- problems with recursive file delete/copy and symbolic links.
-
-2003-12-17 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclBasic.c (NRInterpCoroutine): Corrected handling of
+ * tests/coroutine.test (coroutine-6.4): arguments to deal with
+ trickier cases.
- * generic/tclPathObj.c:
- * tests/fileSystem.test: fix and tests for [Bug 860402] in new
- file normalization code.
-
-2003-12-17 Zoran Vasiljevic <zv@archiware.com>
+2010-04-30 Miguel Sofer <msofer@users.sf.net>
- * generic/tclIOUtil.c: fixed 2 memory (object) leaks.
- This fixes Tcl Bug #839519.
+ * tests/coroutine.test: testing coroutine arguments after [yield]:
+ check that only 0/1 allowed
- * generic/tclPathObj.c: fixed Tcl_FSGetTranslatedPath
- to always return properly refcounted path object.
- This fixes Tcl Bug #861515.
+2010-04-30 Donal K. Fellows <dkf@users.sf.net>
-2003-12-16 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclBasic.c (NRInterpCoroutine): Corrected handling of
+ arguments to deal with trickier cases.
- * tests/fCmd.test: marking fCmd-9.14.2, as nonPortable, since
- on Solaris one can change the name of the current directory
- with 'file rename'.
- * doc/FileSystem.3: clarified documentation on ownership
- of return objects/strings of some Tcl_FS* calls.
+ * generic/tclCompCmds.c (TclCompileVariableCmd): Slightly tighter
+ issuing of instructions.
-2003-12-16 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclExecute.c (TclExecuteByteCode): Add peephole optimization
+ of the fact that INST_DICT_FIRST and INST_DICT_NEXT always have a
+ conditional jump afterwards.
- * generic/tclThreadAlloc.c (binfo): Made variable file-local.
+ * generic/tclBasic.c (TclNRYieldObjCmd, TclNRYieldmObjCmd)
+ (NRInterpCoroutine): Replace magic values for formal argument counts
+ for coroutine command implementations with #defines, for an increase
+ in readability.
-2003-12-15 David Gravereaux <davygrvy@pobox.com>
+2010-04-30 Jan Nijtmans <nijtmans@users.sf.net>
- * win/tcl.rc:
- * win/tclsh.rc: Slight modification to the STRINGIFY macro to
- support Borland's rc tool.
+ * generic/tclMain.c: Unnecessary TCL_STORAGE_CLASS re-definition. It
+ was used for an ancient dummy reference to Tcl_LinkVar(), but that's
+ already gone since 2002-05-29.
- * win/tclWinFile.c (TclpUtime) : utimbuf struct not a problem
- with Borland.
+2010-04-29 Miguel Sofer <msofer@users.sf.net>
- * win/tclWinTime.c (TclpGetDate) : Borland's localtime() has
- a slight behavioral difference.
+ * generic/tclCompExpr.c: Slight change in the literal sharing
+ * generic/tclCompile.c: mechanism to avoid shimmering of
+ * generic/tclCompile.h: command names.
+ * generic/tclLiteral.c:
- From Helmut Giese <hgiese@ratiosoft.com> [Patch 758097].
+2010-04-29 Andreas Kupries <andreask@activestate.com>
-2003-12-14 David Gravereaux <davygrvy@pobox.com>
+ * library/platform/platform.tcl: Another stab at getting the /lib,
+ * library/platform/pkgIndex.tcl: /lib64 difference right for linux.
+ * unix/Makefile.in: Package updated to version 1.0.7.
+ * win/Makefile.in:
- * generic/tclInt.decls: commented-out entry for
- TclpCheckStackSpace, removing it from the Stubs table. It's
- already declared in tclInt.h and labeled as a function that is
- not to be exported. Regened tables.
+2010-04-29 Kevin B. Kenny <kennykb@acm.org>
+
+ * library/tzdata/Antarctica/Macquarie:
+ * library/tzdata/Africa/Casablanca:
+ * library/tzdata/Africa/Tunis:
+ * library/tzdata/America/Santiago:
+ * library/tzdata/America/Argentina/San_Luis:
+ * library/tzdata/Antarctica/Casey:
+ * library/tzdata/Antarctica/Davis:
+ * library/tzdata/Asia/Anadyr:
+ * library/tzdata/Asia/Damascus:
+ * library/tzdata/Asia/Dhaka:
+ * library/tzdata/Asia/Gaza:
+ * library/tzdata/Asia/Kamchatka:
+ * library/tzdata/Asia/Karachi:
+ * library/tzdata/Asia/Taipei:
+ * library/tzdata/Europe/Samara:
+ * library/tzdata/Pacific/Apia:
+ * library/tzdata/Pacific/Easter:
+ * library/tzdata/Pacific/Fiji: Olson's tzdata2010i.
+
+2010-04-29 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclBinary.c (TclAppendBytesToByteArray): [Bug 2992970]: Make
+ * generic/tclStringObj.c (Tcl_AppendObjToObj): an append of a byte
+ array to another into an efficent operation. The problem was the (lack
+ of) a proper growth management strategy for the byte array.
+
+2010-04-29 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * compat/dirent2.h: Include "tcl.h", not <tcl.h>, like everywhere
+ * compat/dlfcn.h: else, to ensure that the version in the Tcl
+ * compat/stdlib.h: distribution is used, not some version from
+ * compat/string.h: somewhere else.
+ * compat/unistd.h:
+
+2010-04-28 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/Makefile.in: Remove unused @MAN2TCLFLAGS@
+ * win/tclWinPort.h: Move <limits.h> include from tclInt.h to
+ * generic/tclInt.h: tclWinPort.h, and eliminate unneeded
+ * generic/tclEnv.c: <stdlib.h>, <stdio.h> and <string.h>, which
+ are already in tclInt.h
+ * generic/regcustom.h: Move "tclInt.h" from regcustom.h up to
+ * generic/regex.h: regex.h.
+ * generic/tclAlloc.c: Unneeded <stdio.h> include.
+ * generic/tclExecute.c: Fix gcc warning: comparison between signed and
+ unsigned.
+
+2010-04-28 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclInt.h (TclIsVarDirectUnsettable): Corrected flags so that
+ deletion of traces is not optimized out...
+
+ * generic/tclExecute.c (ExecuteExtendedBinaryMathOp)
+ (TclCompareTwoNumbers,ExecuteExtendedUnaryMathOp,TclExecuteByteCode):
+ [Patch 2981677]: Move the less common arithmetic operations (i.e.,
+ exponentiation and operations on non-longs) out of TEBC for a big drop
+ in the overall size of the stack frame for most code. Net effect on
+ speed is minimal (slightly faster overall in tclbench). Also extended
+ the number of places where TRESULT handling is replaced with a jump to
+ dedicated code.
+
+2010-04-27 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclExecute.c (TclExecuteByteCode): Rearrange location of an
+ assignment to shorten the object code.
+
+2010-04-27 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclIOUtil.c (Tcl_FSGetNativePath): [Bug 2992292]:
+ tclIOUtil.c assignment type mismatch compiler warning
+ * generic/regguts.h: If tclInt.h or tclPort.h is already
+ * generic/tclBasic.c: included, don't include <limits.h>
+ * generic/tclExecute.c: again. Follow-up to [Bug 2991415]:
+ * generic/tclIORChan.c: tclport.h #included before limits.h
+ * generic/tclIORTrans.c: See comments in [Bug 2991415]
+ * generic/tclObj.c:
+ * generic/tclOOInt.h:
+ * generic/tclStrToD.c:
+ * generic/tclTomMath.h:
+ * generic/tclTomMathInterface.c:
+ * generic/tclUtil.c:
+ * compat/strtod.c:
+ * compat/strtol.c:
-2003-12-14 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2010-04-27 Kevin B. Kenny <kennykb@acm.org>
- * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): TIP#75 Implementation
- * tests/switch.test: Can now get submatch information when
- * doc/switch.n: using -regexp matching in [switch].
+ * unix/tclLoadDl.c (FindSymbol): [Bug 2992295]: Simplified the logic
+ so that the casts added in Donal Fellows's change for the same bug are
+ no longer necessary.
-2003-12-14 Vince Darley <vincentdarley@users.sourceforge.net>
+2010-04-26 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclPathObj.c: complete rewrite of generic file
- normalization code to cope with links followed by '..'.
- [Bug 849514], and parts of [859251]
+ * unix/tclLoadDl.c (FindSymbol): [Bug 2992295]: Added an explicit cast
+ because auto-casting between function and non-function types is never
+ naturally warning-free.
-2003-12-12 David Gravereaux <davygrvy@pobox.com>
+ * generic/tclStubInit.c: Add a small amount of gcc-isms (with #ifdef
+ * generic/tclOOStubInit.c: guards) to ensure that warnings are issued
+ when these files are older than the various *.decls files.
- * win/tclWinChan.c: Win32's SetFilePointer() takes LONGs not
- DWORDs (a signed/unsigned mismatch). Redid local vars to
- avoid all casting except where truly required.
+2010-04-25 Miguel Sofer <msofer@users.sf.net>
-2003-12-12 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclBasic.c: Add unsupported [yieldm] command. Credit
+ * generic/tclInt.h: Lars Hellstrom for the basic idea.
- * generic/tclCmdAH.c: fix to normalization of non-existent user
- name ('file normalize ~nobody') [Bug 858937]
- * doc/file.n: clarify behaviour of 'file link' when the target
- is not an absolute path.
- * doc/filename.n: correct documentation to say that Windows Tcl
- does handle '~user', for recent Windows releases, and clarified
- distinction between MacOS 'classic' and MacOS X.
- * doc/glob.n: clarification of glob's behaviour when returning
- filenames starting with a '~'.
-
- * tests/fileSystem.test:
- * tests/fileName.test: new tests added for the normalization
- problem above and other recentlt reported issues.
+2010-04-24 Miguel Sofer <msofer@users.sf.net>
- * win/tclWinFile.c: corrected unclear comments
-
- * unix/tclUnixFile.c: allow creation of relative links
- [Bug 833713]
+ * generic/tclBasic.c: Modify api of TclSpliceTailcall() to fix
+ * generic/tclExecute.c: [yieldTo], which had not survived the latest
+ * generic/tclInt.h: mods to tailcall. Thanks kbk for detecting
+ the problem.
-2003-12-11 David Gravereaux <davygrvy@pobox.com>
+2010-04-23 Jan Nijtmans <nijtmans@users.sf.net>
- * win/tclWinSock.c (SocketThreadExitHandler) : added a
- TerminateThread fallback just in case the socket handler thread
- is really in a paused state. This can happen when Tcl is being
- unloaded by the OS from an exception handler. See MSDN docs on
- DllMain, it states this behavior.
+ * unix/tclUnixPort.h: [Bug 2991415]: tclport.h #included before
+ limits.h
-2003-12-09 Jeff Hobbs <jeffh@ActiveState.com>
+2010-04-22 Jan Nijtmans <nijtmans@users.sf.net>
- * unix/configure:
- * unix/tcl.m4: updated OpenBSD build configuration based on
- [Patch #775246] (cassoff)
+ * generic/tclPlatDecls.h: Move TCHAR fallback typedef from tcl.h to
+ * generic/tcl.h: tclPlatDecls.h (as suggested by dgp)
+ * generic/tclInt.h: fix typo
+ * generic/tclIOUtil.c: Eliminate various unnecessary
+ * unix/tclUnixFile.c: type casts.
+ * unix/tclUnixPipe.c:
+ * win/tclWinChan.c:
+ * win/tclWinFCmd.c:
+ * win/tclWinFile.c:
+ * win/tclWinLoad.c:
+ * win/tclWinPipe.c:
-2003-12-09 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+2010-04-20 Jan Nijtmans <nijtmans@users.sf.net>
- * unix/tclUnixPort.h: #ifdef'd out declarations of errno which
- * tools/man2tcl.c: are known to cause problems with recent
- glibc. [Bug 852369]
+ * generic/tclTest.c: Use function prototypes from the FS API.
+ * compat/zlib/*: Upgrade to zlib 1.2.5
-2003-12-09 Vince Darley <vincentdarley@users.sourceforge.net>
+2010-04-19 Donal K. Fellows <dkf@users.sf.net>
- * win/tclWinFile.c: fix to NT file permissions code [Bug 855923]
- * tests/winFile.test: added tests for NT file permissions - patch
- and test scripts supplied by Benny.
-
- * tests/winFCmd.test: fixed one test for when not running in C:/
-
-2003-12-02 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * generic/tclExecute.c (TclExecuteByteCode): Improve commenting and
+ reduce indentation for the Invocation Block.
- * generic/tclBinary.c (DeleteScanNumberCache, ScanNumber): Made
- the numeric scan-value cache have proper references to the objects
- within it so strange patterns of writes won't cause references to
- freed objects. Thanks to Paul Obermeir for the report. [Bug 851747]
-
-2003-12-01 Miguel Sofer <msofer@users.sf.net>
-
- * doc/lset.n: fix typo [Bug 852224]
-
-2003-11-24 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclParse.c: Corrected faulty check for trailing white
- space in {expand} parsing. Thanks Andreas Leitgeb. [Bug 848262].
- * tests/parse.test: New tests for the bug.
-
-2003-11-24 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * generic/tclPathObj.c: fix to [Bug 845778] - Infinite recursion
- on [cd] (Windows only bug), for which new tests have just been
- added.
-
-2003-11-21 Don Porter <dgp@users.sourceforge.net>
-
- * tests/winFCmd.test (winFCmd-16.10,11): Merged new tests from
- core-8-4-branch.
-
-2003-11-20 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclVar.c: fix flag bit collision between
- LOOKUP_FOR_UPVAR and TCL_PARSE_PART1 (deprecated) [Bug 835020]
-
-2003-11-19 Don Porter <dgp@users.sourceforge.net>
-
- * tests/compile.test (compile-16.22.0): Improved test for the
- recent fix for Bug 845412.
-
-2003-11-19 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclCompile.c (TclCompileScript): Added a guard for the
- expansion code so that long non-expanding commands don't get
- expansion infrastructure inserted in them, especially when that
- infrastructure isn't initialised. [Bug 845412]
-
-2003-11-18 David Gravereaux <davygrvy@pobox.com>
-
- * contrib/djgpp/Makefile: Changes from Victor Wagner
- * contrib/djgpp/langinfo.c (new): <vitus@45.free.net> for better
- * contrib/djgpp/langinfo.h (new): DJGPP support.
- * unix/tclUnixInit.c: .
- * unix/tclUnixChan.c: .
- * unix/tclUnixFCmd.c: .
-
-2003-11-17 Don Porter <dgp@users.sourceforge.net>
-
- * tests/reg.test: Added tests for [Bugs 230589, 504785, 505048, 840258]
- recently fixed by 2003-11-15 commit to regcomp.c by Pavel Goran.
- His notes on the fix: This bug results from an error in code that
- splits states into "progress" and "no-progress" ones. This error
- causes an interesting situation with the pre-collected single-linked
- list of states to be splitted: many items were added to the list, but
- only several of them are accessible from the list beginning,
- since the "tmp" member of struct state (which is used here to
- hold a pointer to the next list item) gets overwritten, which
- results in a "looped" chain. As a result, not all of states are
- splitted, and one state is splitted two times, causing incorrect
- "no-progress" flag values.
-
-2003-11-16 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclExecute.c (TclExecuteByteCode): Make sure that
- Tcl_AsyncInvoke is called regularly when processing bytecodes.
- * generic/tclTest.c (AsyncThreadProc, TestasyncCmd): Extended
- testing harness to send an asynchronous marking without relying on
- UNIX signals.
- * tests/async.test (async-4.*): Tests to check that async events
- are handled by the bytecode core. [Bug 746722]
-
-2003-11-15 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclTest.c (TestHashSystemHashCmd): Removed 'const'
- modifier from hash type structure; it should be const and the hash
- code assumes it behaves like const, but that's not how the API is
- defined. Like this, we are following in the same footsteps as
- Tcl_RegisterObjType() which has the same conditions on its
- argument. Stops VC++5.2 warning. [Bug 842511]
-
-2003-11-14 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclHash.c (Tcl_DeleteHashTable,Tcl_HashStats,RebuildTable):
- * generic/tclTest.c (TestHashSystemHashCmd): TIP#138 implementation,
- * tests/misc.test: plus a new chunk of stuff to test the hash
- functions more thoroughly in the test
- suite. [Patch 731356, modified]
-
- * doc/Tcl.n: Updated Tcl version number and changebars.
-
-2003-11-14 Don Porter <dgp@users.sourceforge.net>
-
- * doc/ParseCmd.3: Implementation of TIP 157. Adds recognition
- * doc/Tcl.n: of the new leading {expand} syntax on words.
- * generic/tcl.h: Parses such words as the new Tcl_Token type
- * generic/tclBasic.c: TCL_TOKEN_EXPAND_WORD. Updated Tcl_EvalEx
- * generic/tclCompile.c: and the bytecode compiler/execution engine
- * generic/tclCompile.h: to recognize the new token type. New opcodes
- * generic/tclExecute.c: INST_LIST_VERIFY and INST_INVOKE_EXP and a new
- * generic/tclParse.c: operand type OPERAND_ULIST1 are defined. Docs
- * generic/tclTest.c: and tests are included.
- * tests/basic.test:
- * tests/compile.test:
- * tests/parse.test:
+2010-04-18 Donal K. Fellows <dkf@users.sf.net>
- * library/auto.tcl: Replaced several [eval]s used to perform
- * library/package.tcl: argument expansion with the new syntax.
- * library/safe.tcl: In the test files lindex.test and lset.test,
- * tests/cmdInfo.test: replaced use of [eval] to force direct
- * tests/encoding.test: string evaluation with use of [testevalex]
- * tests/execute.test: which more directly and robustly serves the
- * tests/fCmd.test: same purpose.
- * tests/http.test:
- * tests/init.test:
- * tests/interp.test:
- * tests/io.test:
- * tests/ioUtil.test:
- * tests/iogt.test:
- * tests/lindex.test:
- * tests/lset.test:
- * tests/namespace-old.test:
- * tests/namespace.test:
- * tests/pkg.test:
- * tests/pkgMkIndex.test:
- * tests/proc.test:
- * tests/reg.test:
- * tests/trace.test:
- * tests/upvar.test:
- * tests/winConsole.test:
- * tests/winFCmd.test:
+ * doc/unset.n: [Bug 2988940]: Fix typo.
+
+2010-04-15 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinPort.h: Move inclusion of <tchar.h> from
+ * generic/tcl.h: tclPlatDecls.h to tclWinPort.h, where it
+ * generic/tclPlatDecls.h: belongs. Add fallback in tcl.h, so TCHAR is
+ available in win32 always.
+
+2010-04-15 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/try.n: [Bug 2987551]: Fix typo.
+
+2010-04-14 Andreas Kupries <andreask@activestate.com>
+
+ * library/platform/platform.tcl: Linux platform identification:
+ * library/platform/pkgIndex.tcl: Check /lib64 for existence of files
+ * unix/Makefile.in: matching libc* before accepting it as base
+ * win/Makefile.in: directory. This can happen on weirdly installed
+ 32bit systems which have an empty or partially filled /lib64 without
+ an actual libc. Bumped to version 1.0.6.
+
+2010-04-13 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tclWinPort.h: Fix [Patch 2986105]: conditionally defining
+ * win/tclWinFile.c: strcasecmp/strncasecmp
+ * win/tclWinLoad.c: Fix gcc warning: comparison of unsigned expression
+ >= 0 is always true
+
+2010-04-08 Donal K. Fellows <dkf@users.sf.net>
-2003-11-12 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tclCompCmdsSZ.c (TclSubstCompile): If the first token does
+ not result in a *guaranteed* push of a Tcl_Obj on the stack, we must
+ push an empty object. Otherwise it is possible to get to a 'concat1'
+ or 'done' without enough values on the stack, resulting in a crash.
+ Thanks to Joe Mistachkin for identifying a script that could trigger
+ this case.
- * tests/cmdMZ.test (cmdMZ-1.4): change to nonPortable as more
- systems are using permissions caching, and this isn't really a Tcl
- controlled issue.
+2010-04-07 Donal K. Fellows <dkf@users.sf.net>
-2003-11-11 Jeff Hobbs <jeffh@ActiveState.com>
+ * doc/catch.n, doc/info.n, doc/return.n: Formatting.
+2010-04-06 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/Load.3: Minor corrections of formatting and cross links.
+
+2010-04-06 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/configure: (regenerate with autoconf-2.59)
* unix/configure:
- * unix/tcl.m4: improve AIX --enable-64bit handling
- remove -D__NO_STRING_INLINES -D__NO_MATH_INLINES from
- CFLAGS_OPTIMIZE on Linux. Make default opt -O2 (was -O).
+ * unix/installManPage: [Bug 2982540]: configure and install* script
+ * unix/install-sh: files should always have LF line ending.
+ * doc/Load.3: Fix signature of Tcl_LoadFile in documentation.
+
+2010-04-05 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ TIP #348 IMPLEMENTATION
+
+ * generic/tclBasic.c: [Patch 2868499]: Substituted error stack
+ * generic/tclCmdIL.c:
+ * generic/tclInt.h:
+ * generic/tclNamesp.c:
+ * generic/tclResult.c:
+ * doc/catch.n:
+ * doc/info.n:
+ * doc/return.n:
+ * tests/cmdMZ.test:
+ * tests/error.test:
+ * tests/execute.test:
+ * tests/info.test:
+ * tests/init.test:
+ * tests/result.test:
-2003-11-11 David Gravereaux <davygrvy@pobox.com>
+2010-04-05 Donal K. Fellows <dkf@users.sf.net>
- * contrib/djgpp/Makefile: Suggested changes from vitus@45.free.net
- (Victor Wagner)
+ * unix/tcl.m4 (SC_ENABLE_THREADS): Flip the default for whether to
+ * win/tcl.m4 (SC_ENABLE_THREADS): build in threaded mode. Part of
+ * win/rules.vc: TIP #364.
- * unix/tclUnixPort.h: added socklen_t typedef for DJGPP
+ * unix/tclLoadDyld.c (FindSymbol): Better human-readable error message
+ generation to match code in tclLoadDl.c.
-2003-11-10 Don Porter <dgp@users.sourceforge.net>
+2010-04-04 Donal K. Fellows <dkf@users.sf.net>
- * unix/tclUnixInit.c (TclpInitLibraryPath):
- * win/tclWinInit.c (TclpInitLibraryPath): Fix for [Bug 832657]
- that should not run afoul of startup constraints.
+ * generic/tclIOUtil.c, unix/tclLoadDl.c: Minor changes to enforce
+ Engineering Manual style rules.
- * library/dde/pkgIndex.tcl: Added safeguards so that registry
- * library/reg/pkgIndex.tcl: and dde packages are not offered
- * win/tclWinDde.c: on non-Windows platforms. Bumped to
- * win/tclWinReg.c: registry 1.1.3 and dde 1.3.
+ * doc/FileSystem.3, doc/Load.3: Documentation for TIP#357.
+
+ * macosx/tclMacOSXBundle.c (OpenResourceMap): [Bug 2981528]: Only
+ define this function when HAVE_COREFOUNDATION is defined.
+
+2010-04-02 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.decls (Tcl_LoadFile): Add missing "const" in signature,
+ * generic/tclIOUtil.c (Tcl_LoadFile): and some formatting fixes
+ * generic/tclDecls.h: (regenerated)
+
+2010-04-02 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclIOUtil.c (Tcl_LoadFile): Corrections to previous commit
+ * unix/tclLoadDyld.c (TclpDlopen): to make it build on OSX.
+
+2010-04-02 Kevin B. Kenny <kennykb@acm.org>
+
+ TIP #357 IMPLEMENTATION
+ TIP #362 IMPLEMENTATION
+
+ * generic/tclStrToD.c: [Bug 2952904]: Defer creation of the smallest
+ floating point number until it is actually used. (This change avoids a
+ bogus syslog message regarding a 'floating point software assist
+ fault' on SGI systems.)
+
+ * library/reg/pkgIndex.tcl: [TIP #362]: Fixed first round of bugs
+ * tests/registry.test: resulting from the recent commits of
+ * win/tclWinReg.c: changes in support of the referenced
+ TIP.
+
+ * generic/tcl.decls: [TIP #357]: First round of changes
+ * generic/tclDecls.h: to export Tcl_LoadFile,
+ * generic/tclIOUtil.c: Tcl_FindSymbol, and Tcl_FSUnloadFile
+ * generic/tclInt.h: to the public API.
+ * generic/tclLoad.c:
+ * generic/tclLoadNone.c:
+ * generic/tclStubInit.c:
+ * tests/fileSystem.test:
+ * tests/load.test:
+ * tests/unload.test:
+ * unix/tclLoadDl.c:
+ * unix/tclLoadDyld.c:
+ * unix/tclLoadNext.c:
+ * unix/tclLoadOSF.c:
+ * unix/tclLoadShl.c:
+ * unix/tclUnixPipe.c:
* win/Makefile.in:
- * win/configure.in:
+ * win/tclWinLoad.c:
+
+2010-03-31 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/registry.n: Added missing documentation of TIP#362 flags.
+
+ * doc/package.n: [Bug 2980210]: Document the arguments taken by
+ the [package present] command correctly.
+
+ * doc/Thread.3: Added some better documentation of how to create and
+ use a thread using the C-level thread API, based on realization that
+ no such tutorial appeared to exist.
+
+2010-03-31 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * test/cmdMZ.test: [FRQ 2974744]: share exception codes (ObjType?):
+ * test/error.test: Revised test cases, making sure that abbreviated
+ * test/proc-old.test: codes are checked resulting in an error, and
+ checking for the exact error message.
+
+2010-03-30 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclIORChan.c (ReflectClose, ReflectInput, ReflectOutput,
+ (ReflectSeekWide, ReflectWatch, ReflectBlock, ReflectSetOption,
+ (ReflectGetOption, ForwardProc): [Bug 2978773]: Preserve
+ ReflectedChannel* structures across handler invokations, to avoid
+ crashes when the handler implementation induces nested callbacks and
+ destruction of the channel deep inside such a nesting.
+
+2010-03-30 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclObj.c (Tcl_GetCommandFromObj): [Bug 2979402]: Reorder
+ the validity tests on internal rep of a "cmdName" value to avoid
+ invalid reads reported by valgrind.
+
+2010-03-30 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclIndexObj: [FRQ 2974744]: share exception codes
+ * generic/tclResult.c: further optimization, making use of indexType.
+ * generic/tclZlib.c: [Bug 2979399]: uninitialized value troubles
+
+2010-03-30 Donal K. Fellows <dkf@users.sf.net>
+
+ TIP #362 IMPLEMENTATION
+
+ * win/tclWinReg.c: [Patch 2960976]: Apply patch from Damon Courtney to
+ * tests/registry.test: allow the registry command to be told to work
+ * win/Makefile.in: with both 32-bit and 64-bit registries. Bump
+ * win/configure.in: version of registry package to 1.3.
* win/makefile.bc:
* win/makefile.vc:
+ * win/configure: autoconf-2.59
- * win/configure: autoconf (2.57)
+2010-03-29 Jan Nijtmans <nijtmans@users.sf.net>
-2003-11-10 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+ * unix/tcl.m4: Only test for -visibility=hidden with gcc
+ (Second remark in [Bug 2976508])
+ * unix/configure: regen
- * tests/cmdIL.test: Stopped cmdIL-5.5 from stomping over the test
- command, and updated the tests to use some tcltest2 features in
- relation to cleanup. [Bug 838384]
+2010-03-29 Don Porter <dgp@users.sourceforge.net>
-2003-11-10 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclStringObj.c: Fix array overrun in test format-1.12
+ caught by valgrind testing.
- * generic/tclCmdAH.c:
- * tests/fCmd.test: fix to misleading error message in 'file link'
- [Bug 836208]
-
-2003-11-07 Vince Darley <vincentdarley@users.sourceforge.net>
+2010-03-27 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclIOUtil.c: fix to compiler warning/error with
- some compilers [Bug 835918]
-
-2003-11-07 Daniel Steffen <das@users.sourceforge.net>
+ * generic/tclInt.h: [FRQ 2974744]: share exception codes
+ * generic/tclResult.c: (ObjType?)
+ * generic/tclCmdMZ.c:
+ * generic/tclCompCmdsSZ.c:
- * macosx/Makefile: optimized builds define NDEBUG to turn off
- ThreadAlloc range checking.
+2010-03-26 Jan Nijtmans <nijtmans@users.sf.net>
-2003-11-05 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclExecute.c: [Bug 2976508]: Tcl HEAD fails on HP-UX
- * tests/unixInit.test (unixInit-2.10): New test to expose [Bug 832657]
- failure of TclpInitLibraryPath() to properly handle .. in the path
- of the executable.
+2010-03-25 Donal K. Fellows <dkf@users.sf.net>
-2003-11-04 Daniel Steffen <das@users.sourceforge.net>
+ * unix/tclUnixFCmd.c (TclUnixCopyFile): [Bug 2976504]: Corrected
+ number of arguments to fstatfs() call.
- * macosx/Makefile: added 'test' target.
+ * macosx/tclMacOSXBundle.c, macosx/tclMacOSXFCmd.c:
+ * macosx/tclMacOSXNotify.c: Reduce the level of ifdeffery in the
+ functions of these files to improve readability. They need to be
+ audited for whether complexity can be removed based on the minimum
+ supported version of OSX, but that requires a real expert.
-2003-11-03 Vince Darley <vincentdarley@users.sourceforge.net>
+2010-03-24 Don Porter <dgp@users.sourceforge.net>
- * generic/tclIOUtil.c
- * generic/tclInt.h: added comments and re-arranged code to
- clarify distinction between Tcl_LoadHandle, ClientData for
- 'load'ed code, and point out limitations of the design
- introduced with Tcl 8.4.
-
- * unix/tclUnixFile.c: fix to memory leak
-
- * generic/tclCmdIL.c: removed warning on Windows.
-
-2003-11-01 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tclCmdIL.c (Tcl_LrepeatObjCmd): Check for sensible list
- lengths and allow for soft failure of the memory subsystem in the
- [lconcat] command [Bug 829027]. Uses direct list creation to
- avoid extra copies when working near the limit of available
- memory. Also reorganized to encourage optimizing compilers to
- optimize heavily.
- * generic/tclListObj.c (TclNewListObjDirect): New list constructor
- that does not copy the array of objects. Useful for creating
- potentially very large lists or where you are about to throw away
- the array argument which is being used in its entirety.
-
-2003-10-28 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclExecute.c (NEXT_INST macros): replaced macro variable
- "result" by "resultHandling" to avoid confusion.
-
-2003-10-23 Andreas Kupries <andreask@activestate.com>
-
- * unix/tclUnixChan.c (Tcl_MakeFileChannel): Applied [Patch 813606]
- fixing [Bug 813087]. Detection of sockets was off for Mac OS X
- which implements pipes as local sockets. The new code ensures
- that only IP sockets are detected as such.
-
- * win/tclWinSock.c (TcpWatchProc): Watch for FD_CLOSE too when
- asked for writable events by the generic layer.
- (SocketEventProc): Generate a writable event too when a close is
- detected.
-
- Together the changes fix [Bug 599468].
-
-2003-10-23 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * tests/resource.test:
- * mac/tclMacResource.c: fix to resource freeing problem in 'resource'
- command reported by Bernard Desgraupes.
-
- * doc/FileSystem.3: updated documentation for 'glob' fix on 2003-10-13
- below
-
-2003-10-22 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tclCmdAH.c (Tcl_FileObjCmd): Changed FILE_ prefix to FCMD_
- to stop symbol/#def clashes on Cygwin/Mingw32 on NT. [Bug 822528]
-
-2003-10-21 Daniel Steffen <das@users.sourceforge.net>
-
- * tools/tcltk-man2html.tcl: fixed incorrect html generated for
- .IP/.TP lists, now use <DL><DT>...<DD>...<P><DT>...<DD>...</DL>
- instead of illegal <DL><P><DT>...<DD>...<P><DT>...<DD>...</DL>.
- Added skipping of directives directly after .TP to avoid them
- being used as item descriptions, e.g. .TP\n.VS in clock.n.
-
-2003-10-21 Andreas Kupries <andreask@pliers.activestate.com>
-
- * win/tclWinPipe.c (BuildCommandLine): Applied the patch coming
- with [Bug 805605] to the code, fixing the incorrect use of
- ispace noted by Ronald Dauster <ronaldd@users.sourceforge.net>.
-
-2003-10-20 Kevin B. Kenny <kennykb@users.sourceforge.net>
-
- * doc/msgcat.n:
- * library/msgcat/msgcat.tcl (mclocale,mcload):
- * tools/tcl.wse.in:
- * unix/Makefile.in: Implementation of TIP#156
- * win/makefile.bc: adding a "root locale" to
- * win/Makefile.in: the 'msgcat' package. Advanced
- * win/Makefile.vc: msgcat version number to 1.4.
-
-2003-10-15 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclResult.c: [Bug 2383005]: Revise [return -errorcode] so
+ * tests/result.test: that it rejects illegal non-list values.
- * generic/tclCmdIL.c (SortInfo,etc): Reorganized so that SortInfo
- carries an array of integer indices instead of a Tcl list. This
- nips shimmering problems in the bud and simplifies SelectObjFromSublist
- at the cost of making setup slightly more complex. [Bug 823768]
+2010-03-24 Donal K. Fellows <dkf@users.sf.net>
-2003-10-14 David Gravereaux <davygrvy@pobox.com>
+ * generic/tclOOInfo.c (InfoObjectMethodTypeCmd)
+ (InfoClassMethodTypeCmd): Added introspection of method types so that
+ it is possible to find this info out without using errors.
+ * generic/tclOOMethod.c (procMethodType): Now that introspection can
+ reveal the name of method types, regularize the name of normal methods
+ to be the name of the definition type used to create them.
- * win/tclAppInit.c (sigHandler): Punt gracefully if exitToken
- has already been destroyed.
+ * tests/async.test (async-4.*): Reduce obscurity of these tests by
+ putting the bulk of the code for them inside the test body with the
+ help of [apply].
-2003-10-14 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclCmdMZ.c (TryPostBody, TryPostHandler): Make sure that the
+ [try] command does not trap unwinding due to limits.
- * generic/tclCmdMZ.c:
- * tests/regexp.test: fix to [Bug 823524] in regsub; added three
- new tests.
+2010-03-23 Don Porter <dgp@users.sourceforge.net>
-2003-10-14 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclCmdMZ.c: [Bug 2973361]: Revised fix for computing
+ indices of script arguments to [try].
- * generic/tclBasic.c (TclAppendObjToErrorInfo): New internal routine
- that appends a Tcl_Obj to the errorInfo, saving the caller the trouble
- of extracting the string rep.
+2010-03-23 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclStringObj.c (TclAppendLimitedToObj): New internal
- routine that supports truncated appends with optional ellipsis marking.
- This single routine supports UTF-8-safe truncated appends needed in
- several places throughout the Tcl source code, mostly for error and
- stack messages. Clean fix for [Bug 760872].
+ * generic/tclCmdMZ.c: Make error message in "try" implementation
+ * generic/tclCompCmdsSZ.c: exactly the same as the one in "return"
+ * tests/error.test:
+ * libtommath/mtests/mpi.c: Single "const" addition
- * generic/tclInt.h: Declarations for new internal routines.
-
- * generic/tclCmdMZ.c: Updated callers to use the new routines.
- * generic/tclCompExpr.c:
- * generic/tclCompile.c:
- * generic/tclExecute.c:
- * generic/tclIOUtil.c:
- * generic/tclNamesp.c:
- * generic/tclObj.c:
- * generic/tclParseExpr.c:
- * generic/tclProc.c:
- * generic/tclStringObj.c:
- * mac/tclMacResource.c:
+2010-03-22 Don Porter <dgp@users.sourceforge.net>
- * library/init.tcl: Updated ::errorInfo cleanup in [unknown] to
- reflect slight modifications to Tcl_LogCommandInfo(). Corrects
- failing init-4.* tests.
+ * generic/tclCmdMZ.c: [Bug 2973361]: Compute the correct integer
+ values to identify the argument indices of the various script
+ arguments to [try]. Passing in -1 led to invalid memory reads.
-2003-10-14 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+2010-03-20 Donal K. Fellows <dkf@users.sf.net>
- TIP#127 IMPLEMENTATION FROM JOE MICHAEL SCHLENKER
+ * doc/exec.n: Make it a bit clearer that there is an option to run a
+ pipeline in the background.
- * generic/tclCmdIL.c (SelectObjFromSublist): Element selection engine.
- * generic/tclCmdIL.c (Tcl_LsearchObjCmd, Tcl_LsortObjCmd):
- * tests/lsearch.test: Set up and use of element selection engine,
- * tests/cmdIL.test: plus tests and documentation.
- * doc/lsearch.n: Based on [Patch 693836]
- * doc/lsort.n:
+ * generic/tclIOCmd.c (Tcl_FcopyObjCmd): Lift the restriction
+ * generic/tclIO.c (TclCopyChannel, CopyData): on the [fcopy] command
+ * generic/tclIO.h (CopyState): that forced it to only
+ copy up to 2GB per script-level callback. Now it is anything that can
+ fit in a (signed) 64-bit integer. Problem identified by Frederic
+ Bonnet on comp.lang.tcl. Note that individual low-level reads and
+ writes are still smaller as the optimal buffer size is smaller.
-2003-10-13 Vince Darley <vincentdarley@users.sourceforge.net>
+2010-03-20 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tcl.h:
- * generic/tclFileName.c:
- * generic/tclIOUtil.c:
- * generic/tclPathObj.c:
+ * win/stub16.c: Don't hide that we use the ASCII API here.
+ (does someone still use that?)
+ * win/tclWinPipe.c: 2 unnecessary type casts.
+
+2010-03-19 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmdsSZ.c (TclCompileThrowCmd): Added compilation for
+ the [throw] command.
+
+2010-03-18 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclListObj.c: [Bug 2971669]: Prevent in overflow trouble in
+ * generic/tclTestObj.c: ListObjReplace operations. Thanks to kbk for
+ * tests/listObj.test: fix and test.
+
+2010-03-18 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmdsSZ.c (IssueTryFinallyInstructions):
+ [Bug 2971921]: Corrected jump so that it doesn't skip into the middle
+ of an instruction! Tightened the instruction issuing. Moved endCatch
+ calls closer to their point that they guard, ensuring correct ordering
+ of result values.
+
+2010-03-17 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclIORTrans.c (ReflectInput, ReflectOutput)
+ (ReflectSeekWide): [Bug 2921116]: Added missing TclEventuallyFree
+ calls for preserved ReflectedTransform* structures. Reworked
+ ReflectInput to preserve the structure for its whole life, not only in
+ InvokeTclMethod.
+
+ * generic/tclIO.c (Tcl_GetsObj): [Bug 2921116]: Regenerate topChan,
+ may have been changed by a self-modifying transformation.
+
+ * tests/ioTrans/test (iortrans-4.8, iortrans-4.9, iortrans-5.11)
+ (iortrans-7.4, iortrans-8.3): New test cases.
+
+2010-03-16 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * compat/zlib/*: Upgrade zlib to version 1.2.4.
+ * win/makefile.vc:
+ * unix/Makefile.in:
+ * win/tclWinChan.c: Don't cast away "const" without reason.
+
+2010-03-12 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/makefile.vc: [Bug 2967340]: Static build was failing.
+ * win/.cvsignore:
+
+2010-03-10 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclTest.c: Remove unnecessary '&' decoration for
+ * generic/tclIOUtil.c: function pointers
+ * win/tclWin32Dll.c: Double declaration of TclNativeDupInternalRep
+ * unix/tclIOUtil.c:
+ * unix/dltest/.cvsignore: Ignore *.so here
+
+2010-03-09 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclIORChan.c: [Bug 2936225]: Thanks to Alexandre Ferrieux
+ * doc/refchan.n: <ferrieux@users.sourceforge.net> for debugging and
+ * tests/ioCmd.test: fixing the problem. It is the write-side
+ equivalent to the bug fixed 2009-08-06.
+
+2010-03-09 Don Porter <dgp@users.sourceforge.net>
+
+ * library/tzdata/America/Matamoros: New locale
+ * library/tzdata/America/Ojinaga: New locale
+ * library/tzdata/America/Santa_Isabel: New locale
+ * library/tzdata/America/Asuncion:
+ * library/tzdata/America/Tijuana:
+ * library/tzdata/Antarctica/Casey:
+ * library/tzdata/Antarctica/Davis:
+ * library/tzdata/Antarctica/Mawson:
+ * library/tzdata/Asia/Dhaka:
+ * library/tzdata/Pacific/Fiji:
+ Olson tzdata2010c.
+
+2010-03-07 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclTest.c: Test that tclOO stubs are present in stub
+ library
+ * generic/tclOOMethod.c: Applied missing part of [Patch 2961556]
+ * win/tclWinInt.h: Change all tclWinProcs signatures to use
+ * win/tclWin32Dll.c: TCHAR* in stead of WCHAR*. This is meant
+ * win/tclWinDde.c: as preparation to make [Enh 2965056]
+ * win/tclWinFCmd.c: possible at all.
+ * win/tclWinFile.c:
+ * win/tclWinPipe.c:
+ * win/tclWinSock.c:
+
+2010-03-06 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclStubLib.c: Remove presence of tclTomMathStubsPtr here.
+ * generic/tclTest.c: Test that tommath stubs are present in stub
+ library.
+
+2010-03-05 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclIORTrans.c (ForwardProc): [Bug 2964425]: When cleaning
+ the stables, it is sometimes necessary to do more than the minimum. In
+ this case, rationalizing the variables for a forwarded limit? method
+ required removing an extra Tcl_DecrRefCount too.
+
+ * generic/tclOO.h, generic/tclOOInt.h: [Patch 2961556]: Change TclOO
+ to use the same style of function typedefs as Tcl, as this is about
+ the last chance to get this right.
+
+ ***POTENTIAL INCOMPATIBILITY***
+ Source code that uses function typedefs from TclOO will need to update
+ variables and argument definitions so that pointers to the function
+ values are used instead. Binary compatibility is not affected.
+
+ * generic/*.c, generic/tclInt.h, unix/*.c, macosx/*.c: Applied results
+ of doing a Code Audit. Principal changes:
+ * Use do { ... } while (0) in macros
+ * Avoid shadowing one local variable with another
+ * Use clearer 'foo.bar++;' instead of '++foo.bar;' where result not
+ required (i.e., semantically equivalent); clarity is increased
+ because it is bar that is incremented, not foo.
+ * Follow Engineering Manual rules on spacing and declarations
+
+2010-03-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOO.c (ObjectRenamedTrace): [Bug 2962664]: Add special
+ handling so that when the class of classes is deleted, so is the class
+ of objects. Immediately.
+
+ * generic/tclOOInt.h (ROOT_CLASS): Add new flag for specially marking
+ the root class. Simpler and more robust than the previous technique.
+
+2010-03-04 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclGetDate.y: 3 unnecessary MODULE_SCOPE
+ * generic/tclDate.c: symbols
+ * generic/tclStubLib.c: Split tommath stub lib
+ * generic/tclTomMathStubLib.c: in separate file.
+ * win/makefile.bc:
+ * win/Makefile.in:
+ * win/makefile.vc:
+ * win/tcl.dsp:
+ * unix/Makefile.in:
+ * unix/tcl.m4: Cygwin only gives warning
+ * unix/configure: using -fvisibility=hidden
+ * compat/strncasecmp.c: A few more const's
+ * compat/strtod.c:
+ * compat/strtoul.c:
+
+2010-03-03 Andreas Kupries <andreask@activestate.com>
+
+ * doc/refchan.n: Followup to ChangeLog entry 2009-10-07
+ (generic/tclIORChan.c). Fixed the documentation to explain that errno
+ numbers are operating system dependent, and reworked the associated
+ example.
+
+2010-03-02 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tcl.m4: [FRQ 2959069]: Support for -fvisibility=hidden
+ * unix/configure (regenerated with autoconf-2.59)
+
+2010-03-01 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * unix/tclUnixSock.c: Refrain from a possibly lengthy reverse-DNS
+ lookup on 0.0.0.0 when calling [fconfigure -sockname] on an
+ universally-bound (default) server socket.
+
+ * generic/tclIndexObj.c: fix [AT 86258]: special-casing of empty
+ tables when generating error messages for [::tcl::prefix match].
+
+2010-02-28 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCmdIL.c: More additions of {TCL LOOKUP} error-code
+ generation to various subcommands of [info] as part of long-term
+ project to classify all Tcl's generated errors.
+
+2010-02-28 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclStubInit.c: [Bug 2959713]: Link error with gcc 4.1
+
+2010-02-27 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCmdMZ.c (StringFirstCmd, StringLastCmd): [Bug 2960021]:
+ Only search for the needle in the haystack when the needle isn't
+ larger than the haystack. Prevents an odd crash from sometimes
+ happening when things get mixed up (a common programming error).
+
+ * generic/tclMain.c (Tcl_Main): [Bug 801429]: Factor out the holding
+ of the client-installed main loop function into thread-specific data.
+
+ ***POTENTIAL INCOMPATIBILITY***
+ Code that previously tried to set the main loop from another thread
+ will now fail. On the other hand, there is a fairly high probability
+ that such programs would have been failing before due to the lack of
+ any kind of inter-thread memory barriers guarding accesses to this
+ part of Tcl's state.
+
+2010-02-26 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmds.c: Split this file into two pieces to make it
+ * generic/tclCompCmdsSZ.c: easier to work with. It's still two very
+ long files even after the split.
+
+2010-02-26 Reinhard Max <max@suse.de>
+
+ * doc/safe.n: Name the installed file after the command it documents.
+ Use "Safe Tcl" instead of the "Safe Base", "Safe Tcl" mixture.
+
+2010-02-26 Donal K. Fellows <dkf@users.sf.net>
+
+ * unix/Makefile.in (NATIVE_TCLSH): Added this variable to allow for
+ better control of what tclsh to use for various scripts when doing
+ cross compiling. An imperfect solution, but works.
+
+ * unix/installManPage: Remap non-alphanumeric sequences in filenames
+ to single underscores (especially colons).
+
+2010-02-26 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+ * tests/zlib.test: Add tests for [Bug 2818131] which was crashing with
+ mismatched zlib algorithms used in combination with gets. This issue
+ has been fixed by Andreas's last commit.
+
+2010-02-25 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclHash.c: [FRQ 2958832]: Further speed-up of the
+ * generic/tclLiteral.c: ouster-hash function.
+ * generic/tclObj.c:
+ * generic/tclCkalloc.c: Eliminate various unnecessary (ClientData)
+ * generic/tclTest.c: type casts.
+ * generic/tclTestObj.c:
+ * generic/tclTestProcBodyObj.c:
+ * unix/tclUnixTest.c:
+ * unix/tclUnixTime.c:
+ * unix/tclXtTest.c:
+
+2010-02-24 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclDictObj.c (SetDictFromAny): Prevent the list<->dict
+ * generic/tclListObj.c (SetListFromAny): conversion code from taking
+ too many liberties. Stops loss of duplicate keys in some scenarios.
+ Many thanks to Jean-Claude Wippler for finding this.
+
+ * generic/tclExecute.c (TclExecuteByteCode): Reduce ifdef-fery and
+ size of activation record. More variables shared across instructions
+ than before.
+
+ * doc/socket.n: [Bug 2957688]: Clarified that [socket -server] works
+ with a command prefix. Extended example to show this in action.
+
+2010-02-22 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclZlib.c (ZlibTransformInput): [Bug 2762041]: Added a hack
+ to work around the general problem, early EOF recognition based on the
+ base-channel, instead of the data we have ready for reading in the
+ transform. Long-term we need a proper general fix (likely tracking EOF
+ on each level of the channel stack), with attendant complexity.
+ Furthermore, Z_BUF_ERROR can be ignored, and must be when feeding the
+ zlib code with single characters.
+
+2010-02-22 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tclUnixPort.h: Remove unnecessary EXTERN's, which already are
+ in the global stub table.
+ * unix/configure.in: Use @EXEEXT@ in stead of @EXT_SUFFIX@
+ * unix/tcl.m4:
+ * unix/Makefile.in: Use -DBUILD_tcl for CYGWIN
+ * unix/configure: (regenerated)
+ * unix/dltest/pkg*.c: Use EXTERN to control CYGWIN exported symbols
+ * generic/tclCmdMZ.c: Remove some unnecessary type casts.
+ * generic/tclCompCmds.c:
* generic/tclTest.c:
- * mac/tclMacFile.c:
- * tests/fileName.test: better tests for [Bug 813273]
- * unix/tclUnixFCmd.c:
- * unix/tclUnixFile.c:
+ * generic/tclUtil.c:
+
+2010-02-21 Mo DeJong <mdejong@users.sourceforge.net>
+
+ * tests/regexp.test: Add test cases back ported from Jacl regexp work.
+
+2010-02-21 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclDate.c: Some more const tables.
+ * generic/tclGetDate.y:
+ * generic/regc_lex.c:
+ * generic/regerror.c:
+ * generic/tclStubLib.c:
+ * generic/tclBasic.c: Fix [Bug 2954959] expr abs(0.0) is -0.0
+ * tests/expr.test:
+
+2010-02-20 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmds.c (TclCompileStringLenCmd): Make [string length]
+ of a constant string be handled better (i.e., handle backslashes too).
+
+2010-02-19 Stuart Cassoff <stwo@users.sourceforge.net>
+
+ * tcl.m4: Correct compiler/linker flags for threaded builds on
+ OpenBSD.
+ * configure: (regenerated).
+
+2010-02-19 Donal K. Fellows <dkf@users.sf.net>
+
+ * unix/installManPage: [Bug 2954638]: Correct behaviour of manual page
+ installer. Also added armouring to check that assumptions about the
+ initial state are actually valid (e.g., look for existing input file).
+
+2010-02-17 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclHash.c (HashStringKey): Restore these hash functions
+ * generic/tclLiteral.c (HashString): to use the classic algorithm.
+ * generic/tclObj.c (TclHashObjKey): Community felt normal case
+ speed to be more important than resistance to malicious cases. For
+ now, hashes that need to deal with the malicious case can use a custom
+ hash table and install their own hash function, though that is not
+ functionality exposed to the script level.
+
+ * generic/tclCompCmds.c (TclCompileDictUpdateCmd): Stack depth must be
+ correctly described when compiling a body to prevent crashes in some
+ debugging modes.
+
+2010-02-16 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.h: Change order of various struct members,
+ fixing potential binary incompatibility with Tcl 8.5
+
+2010-02-16 Donal K. Fellows <dkf@users.sf.net>
+
+ * unix/configure.in, generic/tclIOUtil.c (Tcl_Stat): Updated so that
+ we do not assume that all unix systems have the POSIX blkcnt_t type,
+ since OpenBSD apparently does not.
+
+ * generic/tclLiteral.c (HashString): Missed updating to FNV in one
+ place; the literal table (a copy of the hash table code...)
+
+2010-02-15 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/genStubs.tcl: Reverted earlier rename from tcl*Stubs to
+ * generic/tclBasic.c: tcl*ConstStubs, it's not necessary at all.
+ * generic/tclOO.c:
+ * generic/tclTomMathInterface.c:
+ * generic/tclStubInit.c: (regenerated)
+ * generic/tclOOStubInit.c: (regenerated)
+ * generic/tclEnsemble.c:Fix signed-unsigned mismatch
+ * win/tclWinInt.h: make tclWinProcs "const"
* win/tclWin32Dll.c:
+ * win/tclWinFCmd.c: Eliminate all internal Tcl_WinUtfToTChar
+ * win/tclWinFile.c: and Tcl_WinTCharToUtf calls, needed
+ * win/tclWinInit.c: for mslu support.
+ * win/tclWinLoad.c:
+ * win/tclWinPipe.c:
+ * win/tclWinSerial.c:
+ * win/.cvsignore:
+ * compat/unicows/readme.txt: [FRQ 2819611]: Add first part of MSLU
+ * compat/unicows/license.txt: support.
+ * compat/unicows/unicows.lib:
+
+2010-02-15 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOO.c (AllocObject, SquelchedNsFirst, ObjectRenamedTrace):
+ * generic/tclNamesp.c (Tcl_DeleteNamespace): [Bug 2950259]: Revised
+ the namespace deletion code to provide an additional internal callback
+ that gets triggered early enough in namespace deletion to allow TclOO
+ destructors to run sanely. Adjusted TclOO to take advantage of this,
+ so making tearing down an object by killing its namespace appear to
+ work seamlessly, which is needed for Itcl. (Note that this is not a
+ feature that will ever be backported to 8.5, and it remains not a
+ recommended way of deleting an object.)
+
+2010-02-13 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmds.c (TclCompileSwitchCmd): Divided the [switch]
+ compiler into three pieces (after the model of [try]): a parser, an
+ instruction-issuer for chained tests, and an instruction-issuer for
+ jump tables.
+
+ * generic/tclEnsemble.c: Split the ensemble engine out into its own
+ file rather than keeping it mashed together with the namespace code.
+
+2010-02-12 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/tcl.m4: Use -pipe for gcc on win32
+ * win/configure: (mingw/cygwin) (regenerated)
+ * win/.cvsignore: Add .lib, .exp and .res here
+
+2010-02-11 Mo DeJong <mdejong@users.sourceforge.net>
+
+ * tests/list.test: Add tests for explicit \0 in a string argument to
+ the list command.
+
+2010-02-11 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclIOCmd.c (Tcl_OpenObjCmd): [Bug 2949740]: Make sure that
+ we do not try to put a NULL pipeline channel into binary mode.
+
+2010-02-11 Mo DeJong <mdejong@users.sourceforge.net>
+
+ [Bug 2826551, Patch 2948425]: Assorted regexp bugs related to -all,
+ -line and -start options and newlines.
+ * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): If -offset is given, treat it
+ as the start of the line if the previous character was a newline. Fix
+ nasty edge case where a zero length match would not advance the index.
+ * tests/regexp.test: Add regression tests back ported from Jacl.
+ Checks for a number of issues related to -line and newline handling. A
+ few of tests were broken before the patch and continue to be broken,
+ marked as knownBug.
+
+2010-02-11 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOO.c (ObjectRenamedTrace): [Bug 2949397]: Prevent
+ destructors from running on the two core class objects when the whole
+ interpreter is being destroyed.
+
+2010-02-09 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmds.c (TclCompileTryCmd, IssueTryInstructions)
+ (IssueTryFinallyInstructions): Added compiler for the [try] command.
+ It is split into three pieces that handle the parsing of the tokens,
+ the issuing of instructions for finally-free [try], and the issuing of
+ instructions for [try] with finally; there are enough differences
+ between the all cases that it was easier to split the code rather than
+ have a single function do the whole thing.
+
+2010-02-09 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * tools/genStubs.tcl: Remove dependency on 8.5+ idiom "in" in
+ expressions.
+
+2010-02-08 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclZlib.c (Tcl_ZlibDeflate, Tcl_ZlibInflate): [Bug 2947783]:
+ Make sure that the result is an unshared object before appending to it
+ so that nothing crashes if it is shared (use in Tcl code was not
+ affected by this, but use from C was an issue).
+
+2010-02-06 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclHash.c (HashStringKey): Replace Tcl's crusty old hash
+ * generic/tclObj.c (TclHashObjKey): function with the algorithm
+ due to Fowler, Noll and Vo. This is slightly faster (assuming the
+ presence of hardware multiply) and has somewhat better distribution
+ properties of the resulting hash values. Note that we only ever used
+ the 32-bit version of the FNV algorithm; Tcl's core hash engine
+ assumes that hash values are simple unsigned ints.
+
+ ***POTENTIAL INCOMPATIBILITY***
+ Code that depends on hash iteration order (especially tests) may well
+ be disrupted by this. Where a definite order is required, the fix is
+ usually to just sort the results after extracting them from the hash.
+ Where this is insufficient, the code that has ceased working was
+ always wrong and was only working by chance.
+
+2010-02-05 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompCmds.c (TclCompileErrorCmd): Added compilation of the
+ [error] command. No new bytecodes.
+
+2010-02-05 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/genStubs.tcl: Follow-up to earlier commit today:
+ Eliminate the need for an extra Stubs Pointer for adressing
+ a static stub table: Just change the exported table from
+ static to MODULE_SCOPE.
+ * generic/tclBasic.c
+ * generic/tclOO.c
+ * generic/tclTomMathInterface.c
+ * generic/tcl*Decls.h (regenerated)
+ * generic/tclStubInit.c (regenerated)
+ * generic/tclOOStubInit.c (regenerated)
+ * generic/tclTest.c (minor formatting)
+
+2010-02-05 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclVar.c: More consistency in errorcode generation.
+
+ * generic/tclOOBasic.c (TclOO_Object_Destroy): Rewrote to be NRE-aware
+ when calling destructors. Note that there is no guarantee that
+ destructors will always be called in an NRE context; that's a feature
+ of the 'destroy' method only.
+
+ * generic/tclEncoding.c: Add 'const' to many function-internal vars
+ that are never pointing to things that are written to.
+
+2010-02-05 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * tools/genStubs.tcl: Follow-up to [2010-01-29] commit:
+ prevent space within stub table function parameters if the
+ parameter type is a pointer.
+ * win/tclWinInt.h: Minor Formatting
+ * generic/tcl.h: VOID -> void and other formatting
+ * generic/tclInt.h: Minor formatting
+ * generic/tclInt.decls: Change signature of TclNRInterpProcCore,
+ * generic/tclOO.decls: and TclOONewProc(Instance|)MethodEx,
+ * generic/tclProc.c: indicating that errorProc is a function,
+ * generic/tclOOMethod.c:pointer, and other formatting
+ * generic/tcl*Decls.h: (regenerated)
+ * generic/tclVar.c: gcc warning(line 3703): 'pattern' may be used
+ uninitialized in this function
+ gcc warning(line 3788): 'matched' may be used
+ uninitialized in this function
+
+2010-02-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclVar.c: Added more use of error-codes and reduced the
+ stack overhead of older interfaces.
+ (ArrayGetCmd): Stop silly crash when using a trivial pattern due to
+ error in conversion to ensemble.
+ (ArrayNamesCmd): Use the object RE interface for faster matching.
+
+2010-02-03 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclVar.c (ArrayUnsetCmd): More corrections.
+
+2010-02-02 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclVar.c: Turned the [array] command into a true ensemble.
+
+ * generic/tclOO.c (AllocObject, MyDeleted): A slightly faster way to
+ handle the deletion of [my] is with a standard delete callback. This
+ is because it doesn't require an additional memory allocation during
+ object creation. Also reduced the amount of string manipulation
+ performed during object creation to further streamline memory
+ handling; this is not backported to the 8.5 package as it breaks a
+ number of abstractions.
+
+ * generic/tclOOBasic.c (TclOO_Object_Destroy): [Bug 2944404]: Do not
+ crash when a destructor deletes the object that is executing that
+ destructor.
+
+2010-02-01 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclVar.c (Tcl_ArrayObjCmd): [Bug 2939073]: Stop the [array
+ unset] command from having dangling pointer problems when an unset
+ trace deletes the element that is going to be processed next. Many
+ thanks to Alexandre Ferrieux for the bulk of this fix.
+
+ * generic/regexec.c (ccondissect, crevdissect): [Bug 2942697]: Rework
+ these functions so that certain pathological patterns are matched much
+ more rapidly. Many thanks to Tom Lane for dianosing this issue and
+ providing an initial patch.
+
+2010-01-30 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCompile.c (tclInstructionTable): Bytecode instructions
+ * generic/tclCompCmds.c (TclCompileUnsetCmd): to allow the [unset]
+ * generic/tclExecute.c (TclExecuteByteCode): command to be compiled
+ with the compiler being a complete compilation for all compile-time
+ decidable uses.
+
+ * generic/tclVar.c (TclPtrUnsetVar): Var reference version of the code
+ to unset a variable. Required for INST_UNSET bytecodes.
+
+2010-01-29 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.h: [Bug 2942081]: Reverted Tcl_ThreadDataKey type change
+ Changed some Tcl_CallFrame fields from "char *"
+ to "void *". This saves unnecessary space on
+ Cray's (and it's simply more correct).
+
+ * tools/genStubs.tcl: No longer generate a space after "*" and
+ immediately after a function name, so the
+ format of function definitions in tcl*Decls.h
+ match all other tcl*.h header files.
+ * doc/ParseArgs.3: Change Tcl_ArgvFuncProc, Tcl_ArgvGenFuncProc
+ * generic/tcl.h: and GetFrameInfoValueProc to be function
+ * generic/tclInt.h: definitions, not pointers, for consistency
+ * generic/tclOOInt.h: with all other Tcl function definitions.
+ * generic/tclIndexObj.c:
+ * generic/regguts.h: CONST -> const
+ * generic/tcl.decls: Formatting
+ * generic/tclTomMath.decls: Formatting
+ * generic/tclDecls.h: (regenerated)
+ * generic/tclIntDecls.h:
+ * generic/tclIntPlatDecls.h:
+ * generic/tclOODecls.h:
+ * generic/tclOOIntDecls.h:
+ * generic/tclPlatDecls.h:
+ * generic/tclTomMathDecls.h:
+
+2010-01-28 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOOBasic.c (TclOO_Object_Destroy): Move the execution of
+ destructors to a point where they can produce an error. This will not
+ work for all destructors, but it does mean that more failing calls of
+ them will be caught.
+ * generic/tclOO.c (AllocObject, MyDeletedTrace, ObjectRenamedTrace):
+ (ObjectNamespaceDeleted): Stop various ways of getting at commands
+ with dangling pointers to the object. Also increases the reliability
+ of calling of destructors (though most destructors won't benefit; when
+ an object is deleted namespace-first, its destructors are not run in a
+ nice state as the namespace is partially gone).
+
+2010-01-25 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclOOStubInit.c: Remove double includes (which causes a
+ * generic/tclOOStubLib.c: warning in CYGWIN compiles)
+ * unix/.cvsignore: add confdefs.h
+
+2010-01-22 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/proc.n: [Bug 1970629]: Define a bit better what the current
+ namespace of a procedure is.
+
+2010-01-22 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.decls: Don't use DWORD and HANDLE here.
+ * generic/tclIntPlatDecls.h:
+ * generic/tcl.h: Revert [2009-12-21] change, instead
+ * generic/tclPort.h: resolve the CYGWIN inclusion problems by
+ * win/tclWinPort.h: re-arranging the inclusions at other
+ places.
+ * win/tclWinError.c
+ * win/tclWinPipe.c
+ * win/tcl.m4: Make cygwin configuration error into
+ * win/configure.in: a warning: CYGWIN compilation works
+ * win/configure: although there still are test failures.
+
+2010-01-22 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclExecute.c (TclExecuteByteCode): Improve error code
+ generation from some of the tailcall-related bits of TEBC.
+
+2010-01-21 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclCompile.h: [Bug 2910748]: NRE-enable direct eval on BC
+ * generic/tclExecute.c: spoilage.
+ * tests/nre.test:
+
+2010-01-19 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/dict.n: [Bug 2929546]: Clarify just what [dict with] and [dict
+ update] are doing with variables.
+
+2010-01-18 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclIO.c (CreateScriptRecord): [Bug 2918110]: Initialize
+ the EventScriptRecord (esPtr) fully before handing it to
+ Tcl_CreateChannelHandler for registration. Otherwise a reflected
+ channel calling 'chan postevent' (== Tcl_NotifyChannel) in its
+ 'watchProc' will cause the function 'TclChannelEventScriptInvoker'
+ to be run on an uninitialized structure.
+
+2010-01-18 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclStringObj.c (Tcl_AppendFormatToObj): [Bug 2932421]: Stop
+ the [format] command from causing argument objects to change their
+ internal representation when not needed. Thanks to Alexandre Ferrieux
+ for this fix.
+
+2010-01-13 Donal K. Fellows <dkf@users.sf.net>
+
+ * tools/tcltk-man2html.tcl: More factoring out of special cases
+ * tools/tcltk-man2html-utils.tcl: so that they are described outside
+ the engine file. Now there is only one real set of special cases in
+ there, to handle the .SO/.OP/.SE directives.
+
+2010-01-13 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.h: Fix TCL_LL_MODIFIER for Cygwin
+ * generic/tclEnv.c: Fix CYGWIN compilation problems,
+ * generic/tclInt.h: and remove some unnecessary
+ * generic/tclPort.h: double includes.
+ * generic/tclPlatDecls.h:
+ * win/cat.c:
+ * win/tclWinConsole.c:
* win/tclWinFCmd.c:
* win/tclWinFile.c:
- * win/tclFileInt.h:
-
- Fixed [Bug 800106] in which 'glob' was incapable of merging the
- results of a directory listing (real or virtual) and any virtual
- filesystem mountpoints in that directory (the latter were
- ignored). This meant boundaries between different filesystems
- were not seamless (e.g. 'glob */*' across a filesystem boundary
- was wrong). Added new entry to Tcl_GlobTypeData in a totally
- backwards compatible way. To allow listing of mounts, registered
- filesystems must support the 'TCL_GLOB_TYPE_MOUNT' flag. If this
- is not supported (e.g. in tclvfs 1.2) then mounts will simply not
- be listed for that filesystem.
-
- Fixed [Bug 749876] 'file writable/readable/etc' (NativeAccess)
- using correct permission checking code for Windows NT/2000/XP
- where more complex user-based security/access priveleges are
- available, particularly on shared volumes. The performance
- impact of this extra checking will need further investigation.
- Note: Win 95,98,ME have no support for this.
-
- Also made better use of normalized rather than translated paths
- in the platform specific code.
-
-2003-10-12 Jeff Hobbs <jeffh@ActiveState.com>
-
- * unix/tclUnixTest.c (TestalarmCmd): don't bother checking return
- value of alarm. [Bug #664755] (english)
-
-2003-10-09 Pat Thoyts <patthoyts@users.sourceforge.net>
-
- * win/makefile.vc: Applied patches for bug #801467 by Joe Mistachkin
- * win/tclAppInit.c: to fix incompatible TCL_MEM_DEBUG handling in
- * generic/tclObj.c: Win32 VC builds.
-
-2003-10-08 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclBasic.c: Save and restore the iPtr->flag bits that
- control the state of errorCode and errorInfo management when calling
- "leave" execution traces, so that all error information of the traced
- command is still available whether traced or not. [Bug 760947]
- Thanks to Yahalom Emet.
-
-2003-10-08 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tclTest.c (TestNumUtfCharsCmd): Command to allow finer
- access to Tcl_NumUtfChars for testing.
- * generic/tclUtf.c (Tcl_NumUtfChars): Corrected string length
- determining when the length parameter is negative; the terminator
- is a zero byte, not (necessarily) a \u0000 character. [Bug 769812]
-
-2003-10-07 Don Porter <dgp@users.sourceforge.net>
-
- * tests/cmdAH.test:
- * tests/exec.test: Corrected temporary file management
- * tests/fileSystem.test: issues uncovered by -debug 1 test
- * tests/io.test: operations. Also backported some
- * tests/ioCmd.test: other fixes from the HEAD.
- * tests/main.test:
- * tests/pid.test: [Bugs 675605, 675655, 675659]
- * tests/socket.test:
- * tests/source.test:
+ * win/tclWinPipe.c:
+ * win/tclWinSerial.c:
+ * win/tclWinThrd.c:
+ * win/tclWinPort.h: Put win32 includes first
+ * unix/tclUnixChan.c: Forgot one CONST change
- * tests/fCmd.test: Run tests with the [temporaryDirectory] as
- the current directory, so that tests can depend on ability to write
- files. [Bug 575837]
+2010-01-12 Donal K. Fellows <dkf@users.sf.net>
- * doc/OpenFileChnl.3: Updated Tcl_Tell and Tcl_Seek documentation
- to reflect that they now return Tcl_WideInt (TIP 72) [Bug 787537]
+ * tools/tcltk-man2html.tcl: Make the generation of the list of things
+ to process the docs from simpler and more flexible. Also factored out
+ the lists of special cases.
- * tests/io.test: Corrected several tests that failed when paths
- * tests/ioCmd.test: included regexp-special chars. [Bug 775394]
+2010-01-10 Jan Nijtmans <nijtmans@users.sf.net>
-2003-10-06 Jeff Hobbs <jeffh@ActiveState.com>
+ * win/tclWinDde.c: VC++ 6.0 doesn't have
+ * win/tclWinReg.c: PDWORD_PTR
+ * win/tclWinThrd.c: Fix various minor gcc warnings.
+ * win/tclWinTime.c:
+ * win/tclWinConsole.c: Put channel type definitions
+ * win/tclWinChan.c: in static const memory
+ * win/tclWinPipe.c:
+ * win/tclWinSerial.c:
+ * win/tclWinSock.c:
+ * generic/tclIOGT.c:
+ * generic/tclIORChan.c:
+ * generic/tclIORTrans.c:
+ * unix/tclUnixChan.c:
+ * unix/tclUnixPipe.c:
+ * unix/tclUnixSock.c:
+ * unix/configure: (regenerated with autoconf 2.59)
+ * tests/info.test: Make test independant from
+ tcltest implementation.
- * win/configure:
- * win/tcl.m4: removed incorrect checks for existence of
- optimization. TCL_CFG_OPTIMIZED is now defined whenever the user
- does not build with --enable-symbols.
+2010-01-10 Donal K. Fellows <dkf@users.sf.net>
-2003-10-06 Don Porter <dgp@users.sourceforge.net>
+ * tests/namespace.test (namespace-51.17): [Bug 2898722]: Demonstrate
+ that there are still bugs in the handling of resolution epochs. This
+ bug is not yet fixed.
- * tests/regexp.test: Matched [makeFile] with [removeFile].
- * tests/regexpComp.test: [Bug 675652]
+ * tools/tcltk-man2html.tcl: Split the man->html converter into
+ * tools/tcltk-man2html-utils.tcl: two pieces for easier maintenance.
+ Also made it much less verbose in its printed messages by default.
- * tests/fCmd.test (fCmd-8.2): Test only that tilde-substitution
- happens, not for any particular result. [Bug 685991]
+2010-01-09 Donal K. Fellows <dkf@users.sf.net>
- * unix/tcl.m4 (SC_PATH_TCLCONFIG): Corrected search path so
- that alpha and beta releases of Tcl are not favored. [Bug 608698]
+ * tools/tcltk-man2html.tcl: Added basic support for building the docs
+ for contributed packages into the HTML versions. Prompted by question
+ on Tcler's Chat by Tom Krehbiel. Note that there remain problems in
+ the documentation generated due to errors in the contributed docs.
- * tests/reg.test: Corrected duplicate test names.
- * tests/resource.test: [Bugs 710370, 710358]
- * tests/dict.test:
+2010-01-05 Don Porter <dgp@users.sourceforge.net>
- * tests/dict.test: Updated [package require tcltest] lines to
- * tests/fileSystem.test: indiciate that these test files
- * tests/lrepeat.test: use features of tcltest 2. [Bug 706114]
- * tests/notify.test:
- * tests/parseExpr.test:
- * tests/unixNotfy.test:
- * tests/winDde.test:
+ * generic/tclPathObj.c (TclPathPart): [Bug 2918610]: Correct
+ * tests/fileName.test (filename-14.31): inconsistency between the
+ string rep and the intrep of a path value created by [file rootname].
+ Thanks to Vitaly Magerya for reporting.
-2003-10-04 Miguel Sofer <msofer@users.sf.net>
+2010-01-03 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclExecute.c (TEBC):
- * tests/execute.test (execute-8.2): fix for [Bug 816641] - faulty
- execution and catch stack management.
+ * unix/tcl.m4 (SC_CONFIG_CFLAGS): [Bug 1636685]: Use the configuration
+ for modern FreeBSD suggested by the FreeBSD porter.
-2003-10-03 Don Porter <dgp@users.sourceforge.net>
+2010-01-03 Miguel Sofer <msofer@users.sf.net>
- * generic/tclBasic.c: Fixed error in ref count management of command
- * generic/tclCmdMZ.c: and execution traces that caused access to
- freed memory in trace-32.1. [Bug 811483].
+ * generic/tclBasic.c: [Bug 2724403]: Fix leak of coroutines on
+ * generic/tclCompile.h: namespace deletion. Added a test for this
+ * generic/tclNamesp.c: leak, and also a test for leaks on namespace
+ * tests/coroutine.test: deletion.
+ * tests/namespace.test:
-2003-10-02 Don Porter <dgp@users.sourceforge.net>
+2009-12-30 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclTrace.c: Corrected comingling of introspection results of
- [trace info command] and [trace info execution]. [Bug 807243]
- Thanks to Mark Saye.
+ * library/safe.tcl (AliasSource): [Bug 2923613]: Make the safer
+ * tests/safe.test (safe-8.9): [source] handle a [return] at the
+ end of the file correctly.
-2003-10-01 Daniel Steffen <das@users.sourceforge.net>
+2009-12-30 Miguel Sofer <msofer@users.sf.net>
- * macosx/Makefile: fixed redo prebinding bug when DESTDIR="".
- * mac/tclMacResource.c: fixed possible NULL dereference (bdesgraupes).
+ * library/init.tcl (unknown): [Bug 2824981]: Fix infinite recursion of
+ ::unknown when [set] is undefined.
-2003-09-29 Vince Darley <vincentdarley@users.sourceforge.net>
+2009-12-29 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclPathObj.c:
- * tests/fileName.test: fix to inconsistent handling of backslash
- path separators on Windows in 'file join' [Bug 813273]
+ * generic/tclHistory.c (Tcl_RecordAndEvalObj): Reduce the amount of
+ allocation and deallocation of memory by caching objects in the
+ interpreter assocData table.
-2003-09-29 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclObj.c (Tcl_GetCommandFromObj): Rewrite the logic so that
+ it does not require making assignments part way through an 'if'
+ condition, which was deeply unclear.
- * generic/tclPathObj.c (TclNativePathInFilesystem,TclFSGetPathType):
- * generic/tclIOUtil.c (TclNativeDupInternalRep,TclGetPathType): Rename
- to make sure function names won't interfere with other non-Tcl
- code (reported by George Staplin)
+ * generic/tclInterp.c (Tcl_MakeSafe): [Bug 2895741]: Make sure that
+ the min() and max() functions are supported in safe interpreters.
- TIP#121 IMPLEMENTATION FROM JOE MISTACHKIN
+2009-12-29 Pat Thoyts <patthoyts@users.sourceforge.net>
- * generic/tclEvent.c (Tcl_SetExitProc,Tcl_Exit): Implementation of
- application exit handler scheme.
- * generic/tcl.decls (Tcl_SetExitProc): Public declaration.
- * doc/Exit.3: Documentation of new API function.
+ * generic/tclBinary.c: [Bug 2922555]: Handle completely invalid input
+ * tests/binary.test: to the decode methods.
- TIP#112 IMPLEMENTATION
+2009-12-28 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclNamesp.c: Core of implementation.
- * generic/tclInt.h (Namespace,TclInvalidateNsCmdLookup): Add
- command list epoch counter and list of ensembles to namespace
- structure, and define a macro to ease update of the epoch
- counter.
- * generic/tclBasic.c (Tcl_CreateObjCommand,etc.): Update epoch
- counter when list of commands in a namespace changes.
- * generic/tclObj.c (TclInitObjSubsystem): Register ensemble
- subcommand type.
- * tests/namespace.test (42.1-47.6): Tests.
- * doc/namespace.n: Documentation.
+ * unix/Makefile.in (trace-shell, trace-test): [FRQ 1083288]: Added
+ targets to allow easier tracing of shell and test invokations.
- * library/http/http.tcl (geturl): Correctly check the type of
- boolean-valued options. [Bug 811170]
+ * unix/configure.in: [Bug 942170]: Detect the st_blocks field of
+ * generic/tclCmdAH.c (StoreStatData): 'struct stat' correctly.
+ * generic/tclFileName.c (Tcl_GetBlocksFromStat):
+ * generic/tclIOUtil.c (Tcl_Stat):
- * unix/tcl.m4 (SC_ENABLE_FRAMEWORK): Added note to make it clearer
- that this is an OSX feature, not a general Unix feature. [Bug 619440]
+ * generic/tclInterp.c (TimeLimitCallback): [Bug 2891362]: Ensure that
+ * tests/interp.test (interp-34.13): the granularity ticker is
+ reset when we check limits because of the time limit event firing.
-2003-09-28 David Gravereaux <davygrvy@pobox.com>
+2009-12-27 Donal K. Fellows <dkf@users.sf.net>
- * win/tclWinPipe.c: The windows port of expect can call
- TclWinAddProcess before any of the other pipe functions.
- Added a missing PipeInit() call to make sure the
- initialization happens.
+ * doc/namespace.n (SCOPED SCRIPTS): [Bug 2921538]: Updated example to
+ not be quite so ancient.
-2003-09-25 Daniel Steffen <das@users.sourceforge.net>
+2009-12-25 Jan Nijtmans <nijtmans@users.sf.net>
- * macosx/Makefile: ensure SYMROOT exists if OBJROOT is overridden
- on command line. Replaced explict use of /usr/bin by ${BINDIR}.
+ * generic/tclCmdMZ.c: CONST -> const
+ * generic/tclParse.c
-2003-09-24 Vince Darley <vincentdarley@users.sourceforge.net>
+2009-12-23 Donal K. Fellows <dkf@users.sf.net>
- * library/package.tcl (tcl::MacPkgUnknown, tcl::MacOSXPkgUnknown):
- Minor performance tweaks to reduce the number of [file] invocations.
- Meant to improve startup times, at least a little bit.
- (The generic equivalent patch was applied on 2003-02-21).
+ * library/safe.tcl (AliasSource, AliasExeName): [Bug 2913625]: Stop
+ information about paths from leaking through [info script] and [info
+ nameofexecutable].
-2003-09-24 Vince Darley <vincentdarley@users.sourceforge.net>
+2009-12-23 Jan Nijtmans <nijtmans@users.sf.net>
- * trace.test: removed 'knownBug' from a test which doesn't
- illustrate a bug, just a bad test.
+ * unix/tcl.m4: Install libtcl8.6.dll in bin directory
+ * unix/Makefile.in:
+ * unix/configure: (regenerated)
-2003-09-23 Miguel Sofer <msofer@users.sf.net>
+2009-12-22 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclExecute.c:
- * generic/tclInt.h: changed the evaluation-stack addressing mode,
- from array-style to pointer-style; the catch stack and evaluation
- stack are now contiguous in memory. [Patch 457449]
+ * generic/tclCmdIL.c (Tcl_LsortObjCmd): [Bug 2918962]: Stop crash when
+ -index and -stride are used together.
-2003-09-23 Don Porter <dgp@users.sourceforge.net>
+2009-12-21 Jan Nijtmans <nijtmans@users.sf.net>
- * tests/trace.test (trace-31,32-*): Added tests for [Bug 807243]
- and [Bug 811483].
+ * generic/tclThreadStorage.c: Fix gcc warning, using gcc-4.3.4 on
+ cygwin: missing initializer
+ * generic/tclOOInt.h: Prevent conflict with DUPLICATE
+ definition in WINAPI's nb30.h
+ * generic/rege_dfa.c: Fix macro conflict on CYGWIN: don't use
+ "small".
+ * generic/tcl.h: Include <winsock2.h> before <stdio.h> on
+ CYGWIN
+ * generic/tclPathObj.c
+ * generic/tclPort.h
+ * tests/env.test: Don't unset WINDIR and TERM, it has a
+ special meaning on CYGWIN (both in UNIX
+ and WIN32 mode!)
+ * generic/tclPlatDecls.h: Include <tchar.h> through tclPlatDecls.h
+ * win/tclWinPort.h: stricmp -> strcasecmp
+ * win/tclWinDde.c: _wcsicmp -> wcscasecmp
+ * win/tclWinFile.c
+ * win/tclWinPipe.c
+ * win/tclWinSock.c
+ * unix/tcl.m4: Add dynamic loading support to CYGWIN
+ * unix/configure (regenerated)
+ * unix/Makefile.in
- * library/init.tcl (auto_load, auto_import): Expanded Eric Melski's
- 2000-01-28 fix for [Bug 218871] to all potentially troubled uses of
- [info commands] on input data, where glob-special characters could
- cause problems.
+2009-12-19 Miguel Sofer <msofer@users.sf.net>
-2003-09-20 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclBasic.c: [Bug 2917627]: Fix for bad cmd resolution by
+ * tests/coroutine.test: coroutines. Thanks to schelte for finding it.
- * tests/expr.test (expr-23.4): Prevented accidental wrapping round
- of exponential operation; it isn't portable, and not what I
- intended to test either. [Bug 808244]
+2009-12-16 Donal K. Fellows <dkf@users.sf.net>
-2003-09-19 Miguel Sofer <msofer@users.sf.net>
+ * library/safe.tcl (::safe::AliasGlob): Upgrade to correctly support a
+ larger fraction of [glob] functionality, while being stricter about
+ directory management.
- * generic/tclExecute.c: adding (DE)CACHE_STACK_INFO() pairs to
- protect all calls that may cause traces on ::errorInfo or
- ::errorCode to corrupt the stack [Bug 804681]
+2009-12-11 Jan Nijtmans <nijtmans@users.sf.net>
-2003-09-17 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclTest.c: Fix gcc warning: ignoring return value of
+ * unix/tclUnixNotify.c: "write", declared with attribute
+ * unix/tclUnixPipe.c: warn_unused_result.
+ * generic/tclInt.decls: CONSTify functions TclpGetUserHome and
+ * generic/tclIntDecls.h:TclSetPreInitScript (TIP #27)
+ * generic/tclInterp.c:
+ * win/tclWinFile.c:
+ * unix/tclUnixFile.c:
- * tclPathObj.c: fix to test-suite problem introduced by the bug
- fix below. No problem in ordinary code, just test suite code
- which manually adjusts tclPlatform. [Bug 808247]
+2009-12-16 Donal K. Fellows <dkf@users.sf.net>
-2003-09-16 Vince Darley <vincentdarley@users.sourceforge.net>
+ * doc/tm.n: [Bug 1911342]: Formatting rewrite to avoid bogus crosslink
+ to the list manpage when generating HTML.
- * doc/filename.n: documentation of Windows-specific feature as
- discussed in [Bug 541989]
- * generic/tclPathObj.c: fix for normalization of volume-relative
- paths [Bug 767834]
- * tests/winFCmd.test: new tests for both of the above.
- * tests/cmdAH.test: fix for AFS problem in test suite [Bug 748960]
+ * library/msgcat/msgcat.tcl (Init): [Bug 2913616]: Do not use platform
+ tests that are not needed and which don't work in safe interpreters.
-2003-09-13 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+2009-12-14 Donal K. Fellows <dkf@users.sf.net>
- TIP#123 IMPLEMENTATION BASED ON WORK BY ARJEN MARKUS
+ * doc/file.n (file tempfile): [Bug 2388866]: Note that this only ever
+ creates files on the native filesystem. This is a design feature.
- * generic/tclCompile.h (INST_EXPON): Implementation of
- * generic/tclCompile.c (tclInstructionTable): exponential operator.
- * generic/tclCompExpr.c (operatorTable):
- * generic/tclParseExpr.c (ParseExponentialExpr, GetLexeme):
- * generic/tclExecute.c (TclExecuteByteCode, ExponWide, ExponLong):
- (IllegalExprOperandType):
- * tests/expr.test:
- * tests/compExpr-old.test:
- * doc/expr.n:
+2009-12-13 Miguel Sofer <msofer@users.sf.net>
-2003-09-10 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclBasic.c: Release TclPopCallFrame() from its
+ * generic/tclExecute.c: tailcall-management duties
+ * generic/tclNamesp.c:
- * library/opt/optparse.tcl: Latest revisions caused [OptGuessType]
- to guess "int" instead of "string" for empty strings. Missed the
- required "-strict" option to [string is]. Thanks to Revar Desmera.
- [Bug 803968]
+ * generic/tclBasic.c: Moving TclBCArgumentRelease call from
+ * generic/tclExecute.c: TclNRTailcallObjCmd to TEBC, so that the
+ pairing of the Enter and Release calls is clearer.
-2003-09-08 David Gravereaux <davygrvy@pobox.com>
+2009-12-12 Donal K. Fellows <dkf@users.sf.net>
- * win/tclWinLoad.c (TclpDlopen): Changed the error message for
- ERROR_PROC_NOT_FOUND to be a bit more helpful in giving us clues.
- "can't find specified procedure" means a function in the import
- table, for implicit loading, couldn't be resolved and that's why
- the load failed.
+ * generic/tclTest.c (TestconcatobjCmd): [Bug 2895367]: Stop memory
+ leak when testing. We don't need extra noise of this sort when
+ tracking down real problems!
-2003-09-04 Don Porter <dgp@users.sourceforge.net>
-
- * doc/Tcl_Main.3:
- * doc/FileSystem.3: Implementation of
- * doc/source.n: TIPs 137/151. Adds
- * doc/tclsh.1: a -encoding option to
- * generic/tcl.decls: the [source] command
- * generic/tclCmdMZ.c (Tcl_SourceObjCmd): and a new C routine,
- * generic/tclIOUtil.c (Tcl_FSEvalFileEx): Tcl_FSEvalFileEx(),
- * generic/tclMain.c (Tcl_Main): that provides C access
- * mac/tclMacResource.c (Tcl_MacSourceObjCmd): to the same function.
- * tests/cmdMZ.test: Also adds command line
- * tests/main.test: option handling in Tcl_Main() so that tclsh
- * tests/source.test: and other apps built on Tcl_Main() respect
- a -encoding command line option before a script filename. Docs and
- tests updated as well. [Patch 742683]
- This is a ***POTENTIAL INCOMPATIBILITY*** only for those C programs
- that embed Tcl, build on Tcl_Main(), and make use of Tcl_Main's former
- ability to pass a leading "-encoding" option to interactive shell
- operations.
-
- * generic/tclInt.decls: Added internal stub
- * generic/tclMain.c (Tcl*StartupScript*): table entries for
- two new functions Tcl_SetStartupScript() and Tcl_GetStartupScript()
- that set/get the path and encoding for the startup script to be
- evaluated by either Tcl_Main() or Tk_Main(). Given public names in
- anticipation of their exposure by a followup TIP.
+2009-12-11 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclDecls.h: make genstubs
- * generic/tclIntDecls.h:
- * generic/tclStubInit.c:
+ * generic/tclBinary.c: Fix gcc warning, using gcc-4.3.4 on cygwin
+ * generic/tclCompExpr.c:warning: array subscript has type 'char'
+ * generic/tclPkg.c:
+ * libtommath/bn_mp_read_radix.c:
+ * win/makefile.vc: [Bug 2912773]: Revert to version 1.203
+ * unix/tclUnixCompat.c: Fix gcc warning: signed and unsigned type
+ in conditional expression.
-2003-09-04 Don Porter <dgp@users.sourceforge.net>
+2009-12-11 Donal K. Fellows <dkf@users.sf.net>
- * doc/SplitList.3: Implementation of TIP 148. Fixes [Bug 489537].
- * generic/tcl.h: Updated Tcl_ConvertCountedElement() to quote
- * generic/tclUtil.c: the leading "#" character of all list elements
- unless the TCL_DONT_QUOTE_HASH flag is passed in.
+ * tools/tcltk-man2html.tcl (long-toc, cross-reference): [FRQ 2897296]:
+ Added cross links to sections within manual pages.
- * generic/tclDictObj.c: Updated Tcl_ConvertCountedElement() callers
- * generic/tclListObj.c: to pass in the TCL_DONT_QUOTE_HASH flags
- * generic/tclResult.c: when appropriate.
+2009-12-11 Miguel Sofer <msofer@users.sf.net>
-2003-08-31 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclBasic.c: [Bug 2806407]: Full nre-enabling of coroutines
+ * generic/tclExecute.c:
- * doc/return.n: Updated [return] docs to cover new TIP 90 features.
+ * generic/tclBasic.c: Small cleanup
- * doc/break.n: Added SEE ALSO references to return.n
- * doc/continue.n:
+ * generic/tclExecute.c: Fix panic in http11.test caused by buggy
+ earlier commits in coroutine management.
-2003-09-01 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+2009-12-10 Andreas Kupries <andreask@activestate.com>
- * doc/Namespace.3: Basic documentation for the TIP#139 functions.
- This will need improving, but the basic bits are there at least.
+ * generic/tclObj.c (TclContinuationsEnter): [Bug 2895323]: Updated
+ comments to describe when the function can be entered for the same
+ Tcl_Obj* multiple times. This is a continuation of the 2009-11-10
+ entry where a memory leak was plugged, but where not sure if that was
+ just a band-aid to paper over some other error. It isn't, this is a
+ legal situation.
-2003-08-31 Don Porter <dgp@users.sourceforge.net>
+2009-12-10 Miguel Sofer <msofer@users.sf.net>
- * doc/catch.n: Updated [catch] docs to cover new TIP 90 features.
-
-2003-08-29 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclBasic.c: Reducing the # of moving parts for coroutines
+ * generic/tclExecute.c: by delegating more to tebc; eliminate the
+ special coroutine CallFrame.
- * generic/tclCmdAH.c: Corrected bug in TIP 90 implementation
- * tests/cmdMZ.test: where the default -errorcode NONE value
- was not copied into the return options dictionary. This correction
- modified one test result.
+2009-12-09 Andreas Kupries <andreask@activestate.com>
-2003-08-27 David Gravereaux <davygrvy@pobox.com>
+ * generic/tclIO.c: [Bug 2901998]: Applied Alexandre Ferrieux's patch
+ fixing the inconsistent buffered I/O. Tcl's I/O now flushes buffered
+ output before reading, discards buffered input before writing, etc.
- * compat/strftime.c (_fmt): Removed syst array intializer that
- couldn't take variables within it under the watcom compiler:
- 'Initializers must be constant'. I believe Borland has this
- strictness as well. VC++ must be non-standard about this.
+2009-12-09 Miguel Sofer <msofer@users.sf.net>
- Changed Win32 platform #ifdef from 'WIN32' to '__WIN32__' as
- this is the correct one to use across the Tcl sources. Even
- though we do force it in tcl.h, the true parent one is __WIN32__.
+ * generic/tclBasic.c: Ensure right lifetime of varFrame's (objc,objv)
+ for coroutines.
- Added missing CONST'ification usage to match prototype listed
- in tclInt.decls.
+ * generic/tclExecute.c: Code regrouping
- * win/tclWinPort.h: Added a block for OpenWatcom adjustments
- that fixes 1) the same issue Mo did for MinGW lack of missing LPFN_*
- typedefs in their WINE derived <winsock2.h> and 2) The need to be
- strict about how the char type needs to be signed by default.
+2009-12-09 Donal K. Fellows <dkf@users.sf.net>
- * win/tclWinSock.c: Added OpenWatcom to the commentary about the
- #ifdef HAVE_NO_LPFN_DECLS block.
+ * generic/tclBasic.c: Added some of the missing setting of errorcode
+ values.
- * win/tclWinTime.c: Changed use of '_timezone' to 'timezone' as
- this difference is already adjusted for in tclWinPort.h. Removed
- unreferenced posixEpoch file-scope global.
+2009-12-08 Miguel Sofer <msofer@users.sf.net>
- * win/tclWinFile.c (WinReadLinkDirectory): Fix for 'Initializers
- must be constant' with the driveSpec array using OpenWatcom.
+ * generic/tclExecute.c (TclStackFree): Improved panic msg.
-2003-08-27 Don Porter <dgp@users.sourceforge.net>
+2009-12-08 Miguel Sofer <msofer@users.sf.net>
- * generic/tclUtil.c: Corrected [Bug 411825] and other bugs in
- TclNeedSpace() where non-breaking space (\u00A0) and backslash-escaped
- spaces were handled incorrectly.
- * tests/util.test: Added new tests util-8.[2-6].
+ * generic/tclBasic.c: Partial nre-enabling of coroutines. The
+ * generic/tclExecute.c: initial call still requires its own
+ * generic/tclInt.h: instance of tebc, but on resume coros can
+ execute in the caller's tebc.
-2003-08-26 David Gravereaux <davygrvy@pobox.com>
+ * generic/tclExecute.c (TEBC): Silence warning about pcAdjustment.
- * generic/tcl.h: Added some support for the LCC-Win32 compiler.
- Unfortunetly, this compiler has a bug in its preprocessor and
- can't build Tcl even with this minor patch. Also added some
- support for the OpenWatcom compiler. A new win/makefile.wc to
- follow soon.
+2009-12-08 Donal K. Fellows <dkf@users.sf.net>
-2003-08-25 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclExecute.c (TclExecuteByteCode): Make the dict opcodes
+ more sparing in their use of C variables, to reduce size of TEBC
+ activiation record a little bit.
- * tools/genStubs.tcl (genStubs::makeDecl): A more subtle way of
- generating stubbed declarations allows us to have declarations of
- a function in multiple interfaces simultaneously.
+2009-12-07 Miguel Sofer <msofer@users.sf.net>
- * generic/tcl.decls: Duplicated some namespace declarations from
- tclInt.decls here, as mandated by TIP #139. This is OK since the
- declarations match and will end up using the declarations in the
- public code from now on because of #include ordering. Keeping the
- old declarations in tclInt.decls; there's no need to gratuitously
- break compatability for those extensions which are already clients
- of the namespace code.
+ * generic/tclExecute.c (TEBC): Grouping "slow" variables into structs,
+ to reduce register pressure and help the compiler with variable
+ allocation.
-2003-08-23 Zoran Vasiljevic <zoran@archiwrae.com>
+2009-12-07 Miguel Sofer <msofer@users.sf.net>
- * generic/tclIOUtil.c: merged fixes for thread-unsafe
- handling of filesystem records [Bug #753315].
- This also fixed the Bug #788780
- * generic/tclPathObj.c: merged fixes for thread-unsafe
- handling of filesystem records [Bug #753315].
+ * generic/tclExecute.c: Start cleaning the TEBC stables
+ * generic/tclInt.h:
- * generic/tclFileSystem.h: merged fixes for thread-unsafe
- handling of filesystem records [Bug #753315].
+ * generic/tclCmdIL.c: [Bug 2910094]: Fix by aku
+ * tests/coroutine.test:
-2003-08-19 Pat Thoyts <patthoyts@users.sourceforge.net>
+ * generic/tclBasic.c: Arrange for [tailcall] to be created with the
+ other builtins: was being created in a separate call, leftover from
+ pre-tip days.
- * win/tclWinSerial.c (SerialErrorStr): Fixed a syntax error
- created in the previous code cleanup.
+2009-12-07 Don Porter <dgp@users.sourceforge.net>
-2003-08-19 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclStrToD.c: [Bug 2902010]: Correct conditional compile
+ directives to better detect the toolchain that needs extra work for
+ proper underflow treatment instead of merely detecting the MIPS
+ platform.
- * win/tclWinSerial.c: Adjusted commenting and spacing usage to
- follow the principles of the Style Guide better.
+2009-12-07 Miguel Sofer <msofer@users.sf.net>
-2003-08-18 Mo DeJong <mdejong@users.sourceforge.net>
+ * generic/tclBasic.c: [Patch 2910056]: Add ::tcl::unsupported::yieldTo
+ * generic/tclInt.h:
- * win/configure: Regen.
- * win/tcl.m4 (SC_ENABLE_SYMBOLS): Use test instead
- of -eq, which does not work. [Bug 781109]
+2009-12-07 Donal K. Fellows <dkf@users.sf.net>
-2003-08-13 Chengye Mao <chengye.geo@yahoo.com>
+ * generic/tclCmdMZ.c (TryPostBody): [Bug 2910044]: Close off memory
+ leak in [try] when a variable-free handler clause is present.
- * win/tclWinPipe.c: fixed a bug in BuildCommandLine.
- This bug built a command line with a missing space between
- tclpipe.dll and the following arguments. It caused error
- in Windows 98 when exec command.com (e.g. dir) [Bug 789040]
+2009-12-05 Miguel Sofer <msofer@users.sf.net>
-2003-08-11 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclBasic.c: Small changes for clarity in tailcall
+ * generic/tclExecute.c: and coroutine code.
+ * tests/coroutine.test:
- TIP #136 IMPLEMENTATION from Simon Geard <simon.geard@ntlworld.com>
- * generic/tclCmdIL.c (Tcl_LrepeatObjCmd): Adapted version of Simon's
- * doc/lrepeat.n: patch, updated to the HEAD
- * tests/lrepeat.test: and matching the core style.
- * generic/tclBasic.c (buildIntCmds): Splice into core.
- * generic/tclInt.h:
- * doc/list.n: Cross-reference.
+ * tests/tailcall.test: Remove some old unused crud; improved the
+ stack depth tests.
-2003-08-06 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tclWinInit.c: recognize amd64 and ia32_on_win64 cpus.
-
-2003-08-06 Don Porter <dgp@users.sourceforge.net>
-
- * library/msgcat/msgcat.tcl: Added escape so that non-Windows
- * library/msgcat/pkgIndex.tcl: platforms do not try to use the
- registry package. This can save a costly and pointless package
- search. Bumped to 1.3.1. Thanks to Dave Bodenstab. [Bug 781609].
+ * generic/tclBasic.c: Fixed things so that you can tailcall
+ * generic/tclNamesp.c: properly out of a coroutine.
+ * tests/tailcall.test:
-2003-08-05 Miguel Sofer <msofer@users.sf.net>
+ * generic/tclInterp.c: Fixed tailcalls for same-interp aliases (no
+ test)
- * generic/tclExecute.c (INST_INVOKE, INST_EVAL, INST_PUSH_RESULT):
- added a Tcl_ResetResult(interp) at each point where the interp's
- result is pushed onto the stack, to avoid keeping an extra
- reference that may cause costly Tcl_Obj duplication [Bug 781585]
- Detected by Franco Violi, analyzed by Peter Spjuth and Donal
- Fellows.
+2009-12-03 Donal K. Fellows <dkf@users.sf.net>
-2003-07-28 Vince Darley <vincentdarley@users.sourceforge.net>
+ * library/safe.tcl (::safe::AliasEncoding): Make the safe encoding
+ command behave more closely like the unsafe one (for safe ops).
+ (::safe::AliasGlob): [Bug 2906841]: Clamp down on evil use of [glob]
+ in safe interpreters.
+ * tests/safe.test: Rewrite to use tcltest2 better.
- * doc/FileSystem.3:
- * doc/Translate.3: better documentation of Tcl_TranslateFileName
- and related functions [Bug 775220]
+2009-12-02 Jan Nijtmans <nijtmans@users.sf.net>
-2003-07-24 Mo DeJong <mdejong@users.sourceforge.net>
+ * tools/genStubs.tcl: Add support for win32 CALLBACK functions and
+ remove obsolete "emitStubs" and "genStubs" functions.
+ * win/Makefile.in: Use tcltest86.dll for all tests, and add
+ .PHONY rules to preemptively stop trouble that plagued Tk from hitting
+ Tcl too.
- * generic/tcl.h: Revert change made on 2003-07-21
- since it made the sizeof(Tcl_Obj) different for
- regular vs mem debug builds.
- * generic/tclInt.h: Define TclDecrRefCount in terms
- of Tcl_DbDecrRefCount which removes one layer of
- inderection.
- * generic/tclObj.c (TclDbInitNewObj, Tcl_DbIncrRefCount,
- Tcl_DbDecrRefCount, Tcl_DbIsShared):
- Define ThreadSpecificData that contains a hashtable.
- The table is used to ensure that a Tcl_Obj is only
- acted upon in the thread that allocated it. This
- checking code is enabled only when mem debug and
- threads are enabled.
+2009-11-30 Jan Nijtmans <nijtmans@users.sf.net>
-2003-07-24 Don Porter <dgp@users.sourceforge.net>
-
- * tests/async.test: Added several tests that demonstrate Tcl
- * tests/basic.test: Bug 489537, Tcl's longstanding failure to
- * tests/dict.test: properly quote any leading '#' character
- * tests/dstring.test: when generating the string rep of a list
- * tests/list.test: so that the comment-power of that character
- * tests/parse.test: is hidden from any [eval], in order to
- * tests/util.test: satisfy the documentation that [list] does
- [eval]-safe quoting.
-
-2003-07-24 Reinhard Max <max@suse.de>
+ * generic/tcl.h: Don't use EXPORT for Tcl_InitStubs
+ * win/Makefile.in: Better dependancies in case of static build.
- * library/package.tcl: Fixed a typo that broke pkg_mkIndex -verbose.
- * tests/pkgMkIndex.test: Added a test for [pkg_mkIndex -verbose].
+2009-11-30 Donal K. Fellows <dkf@users.sf.net>
- * ChangeLog.2002 (new file):
- * ChangeLog: broke changes from 2002 into ChangeLog.2002 to reduce
- size of the main ChangeLog.
-
-2003-07-23 Daniel Steffen <das@users.sourceforge.net>
-
- * unix/Makefile.in: changes to html-tcl & html-tk
- targets for compatibility with non-gnu makes.
-
- * unix/Makefile.in: added macosx/README to dist target.
-
-2003-07-23 Pat Thoyts <patthoyts@users.sourceforge.net>
-
- * win/tclWinReg.c (OpenSubKey): Fixed bug 775976 which causes the
- registry set command to fail when built with VC7.
- * library/reg/pkgIndex.tcl: Incremented the version to 1.1.2.
-
-2003-07-21 Mo DeJong <mdejong@users.sourceforge.net>
-
- Check that the thread incrementing or decrementing
- the ref count of a Tcl_Obj is the thread that
- originally allocated the thread. This fail fast
- behavior will catch programming errors that
- allow a single Tcl_Obj to be accessed from multiple
- threads.
-
- * generic/tcl.h (Tcl_Obj): Add allocThread member
- to Tcl_Obj. This member records the thread id the
- Tcl_Obj was allocated. It is used to check that
- any future ref count incr or decr is done from
- the same thread that allocated the Tcl_Obj.
- This member is defined only when threads and
- mem debug are enabled.
- * generic/tclInt.h (TclNewObj, TclDbNewObj,
- TclDecrRefCount):
- Define TclNewObj and TclDbNewObj using TclDbInitNewObj
- when mem debug is enabled. This fixes a problem where
- TclNewObj calls did not work the same as TclDbNewObj
- when mem debug was enabled.
- * generic/tclObj.c (TclDbInitNewObj, Tcl_DbIncrRefCount,
- Tcl_DbDecrRefCount): Add new helper to init Tcl_Obj
- members when mem debug is enabled. Init the allocThread
- member in TclDbInitNewObj and check it in
- Tcl_DbIncrRefCount and Tcl_DbDecrRefCount to make sure
- a Tcl_Obj allocated in one thread is not being acted
- upon in another thread.
-
-2003-07-21 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * test/cmdAH.test: ensure certain tests run in local filesystem
- [Bug 748960]
-
-2003-07-18 Daniel Steffen <das@users.sourceforge.net>
-
- * macosx/Makefile: added option to allow installing manpages
- in addition to default html help.
-
-2003-07-18 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * doc/Utf.3: Tightened up documentation of Tcl_UtfNext and
- Tcl_UtfPrev to better match the behaviour. [Bug 769895]
-
-2003-07-18 Jeff Hobbs <jeffh@ActiveState.com>
-
- * library/http/pkgIndex.tcl: upped to http v2.4.4
- * library/http/http.tcl: add support for user:pass info in URL.
- * tests/http.test: [Bug 759888] (shiobara)
-
-2003-07-18 Don Porter <dgp@users.sourceforge.net>
-
- * doc/tcltest.n: Restored the [Eval] proc to replace
- * library/tcltest/tcltest.tcl: the [::puts] command when either the
- -output or -error option for [test] is in use, in order to capture
- data written to the output or error channels for comparison against
- what is expected. This is easier to document and agrees better with
- most user expectations than the previous attempt to replace [puts]
- only in the caller's namespace. Documentation made more precise on
- the subject. [Bug 706359]
+ * doc/Tcl.n: [Bug 2901433]: Improved description of expansion to
+ mention that it is using list syntax.
- * doc/AddErrInfo.3: Improved consistency of documentation
- * doc/CrtTrace.3: by using "null" everywhere to refer to
- * doc/Encoding.3: the character '\0', and using "NULL"
- * doc/Eval.3: everywhere to refer to the value of a
- * doc/GetIndex.3: pointer that points to nowhere.
- * doc/Hash.3: Also dropped references to ASCII that
- * doc/LinkVar.3: are no longer true, and standardized on
- * doc/Macintosh.3: the hyphenated spelling of "null-terminated".
- * doc/OpenFileChnl.3:
- * doc/SetVar.3:
- * doc/StringObj.3:
- * doc/Utf.3:
+2009-11-27 Kevin B. Kenny <kennykb@acm.org>
- * doc/CrtSlave.3 (Tcl_MakeSafe): Removed warning about possible
- deprecation (no TIP on that).
+ * win/tclAppInit.c (Tcl_AppInit): [Bug 2902965]: Reverted Jan's change
+ that added a call to Tcl_InitStubs. The 'tclsh' and 'tcltest' programs
+ are providers, not consumers of the Stubs table, and should not link
+ with the Stubs library, but only with the main Tcl library. (In any
+ case, the presence of Tcl_InitStubs broke the build.)
-2003-07-17 Daniel Steffen <das@users.sourceforge.net>
+2009-11-27 Donal K. Fellows <dkf@users.sf.net>
- * unix/tclUnixFCmd.c: fix for compilation errors on platforms where
- configure detects non-functional chflags(). [Bug 748946]
+ * doc/BoolObj.3, doc/Class.3, doc/CrtChannel.3, doc/DictObj.3:
+ * doc/DoubleObj.3, doc/Ensemble.3, doc/Environment.3:
+ * doc/FileSystem.3, doc/Hash.3, doc/IntObj.3, doc/Limit.3:
+ * doc/Method.3, doc/NRE.3, doc/ObjectType.3, doc/PkgRequire.3:
+ * doc/SetChanErr.3, doc/SetResult.3: [Patch 2903921]: Many small
+ spelling fixes from Larry Virden.
- * macosx/Makefile: Rewrote buildsystem for Mac OS X framework build
- to be purely make driven; in order to become independent of Apple's
- closed-source IDE and build tool. The changes are intended to be
- transparent to the Makefile user, all existing make targets and
- cmd line variable overrides should continue to work.
- Changed build to only include tcl specific html help in Tcl.framework,
- the tk specific html help is now included in Tk.framework.
- Added var to allow overriding of tclsh used during html help
- building (Landon Fuller).
+ BUMP VERSION OF TCLOO TO 0.6.2. Too many people need accumulated small
+ versions and bugfixes, so the version-bump removes confusion.
- * macosx/Tcl.pbproj/project.pbxproj:
- * macosx/Tcl.pbproj/jingham.pbxuser: Changed to purely call through
- to the make driven buildsystem; Tcl.framework is no longer assembled
- by ProjectBuilder.
- Set default SYMROOT in target options to simplify setting up PB
- (manually setting common build folder for tcl & tk no longer needed).
+ * generic/tclOOBasic.c (TclOO_Object_LinkVar): [Bug 2903811]: Remove
+ unneeded restrictions on who can usefully call this method.
- * tools/tcltk-man2html.tcl: Added options to allow building only the
- tcl or tk html help files; the default behaviour with none of the new
- options is to build both, as before.
+2009-11-26 Donal K. Fellows <dkf@users.sf.net>
- * unix/Makefile.in: Added targets for building only the tcl or tk help.
+ * unix/Makefile.in: Add .PHONY rules and documentation to preemptively
+ stop trouble that plagued Tk from hitting Tcl too, and to make the
+ overall makefile easier to understand. Some reorganization too to move
+ related rules closer together.
- * macosx/README (new): Tcl specific excerpts of tk/macosx/README.
+2009-11-26 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tcl.h: Updated reminder comment about editing
- macosx/Tcl.pbproj/project.pbxproj when version number changes.
+ * win/Makefile.in: [Bug 2902965]: Fix stub related changes that
+ * win/makefile.vc: caused tclkit build to break.
+ * win/tclAppInit.c
+ * unix/tcl.m4
+ * unix/Makefile.in
+ * unix/tclAppInit.c
+ * unix/configure: (regenerated)
-2003-07-16 Mumit Khan <khan@nanotech.wisc.edu>
+2009-11-25 Kevin B. Kenny <kennykb@acm.org>
- * generic/tclPathObj.c (SetFsPathFromAny): Add Cygwin specific
- code to convert POSIX filename to native format.
- * generic/tclFileName.c (Tcl_TranslateFileName): And remove from here.
- (TclDoGlob): Adjust for cygwin and append / for dirs instead of \
- * win/tclWinFile.c (TclpObjChdir): Use chdir on Cygwin.
- [Patch 679315]
+ * win/Makefile.in: Added a 'test-tcl' rule that is identical to
+ 'test' except that it does not go spelunking in 'pkgs/'. (This rule
+ has existed in unix/Makefile.in for some time.)
-2003-07-16 Jeff Hobbs <jeffh@ActiveState.com>
+2009-11-25 Stuart Cassoff <stwo@users.sf.net>
- * library/safe.tcl (FileInAccessPath): normalize paths before
- comparison. [Bug 759607] (myers)
+ * unix/configure.in: [Patch 2892871]: Remove unneeded
+ * unix/tcl.m4: AC_STRUCT_TIMEZONE and use
+ * unix/tclConfig.h.in: AC_CHECK_MEMBERS([struct stat.st_blksize])
+ * unix/tclUnixFCmd.c: instead of AC_STRUCT_ST_BLKSIZE.
+ * unix/configure: Regenerated with autoconf-2.59.
- * unix/tclUnixNotfy.c (NotifierThreadProc): correct size of found
- and word vars from int to long. [Bug 767578] (hgo)
+2009-11-24 Andreas Kupries <andreask@activestate.com>
- * generic/tcl.h: add recognition of -DTCL_UTF_MAX=6 on the
- * generic/regcustom.h: make line to support UCS-4 mode. No config
- arg at this time, as it is not the recommended build mode.
+ * library/tclIndex: Manually redone the part of tclIndex dealing with
+ safe.tcl and tm.tcl. This part passes the testsuite. Note that
+ automatic regeneration of this part is not possible because it wrongly
+ puts 'safe::Setup' on the list, and wrongly leaves out 'safe::Log'
+ which is more dynamically created than the generator expects.
- * generic/tclPreserve.c: In Result and Preserve'd routines, do not
- * generic/tclUtil.c: assume that ckfree == free, as that is not
- * generic/tclResult.c: always true. [Bug 756791] (fuller)
+ Further note that the file "clock.tcl" is explicitly loaded by
+ "init.tcl", the first time the clock command is invoked. The relevant
+ code can be found at line 172ff, roughly, the definition of the
+ procedure 'clock'. This means none of the procedures of this file
+ belong in the tclIndex. Another indicator that automatic regeneration
+ of tclIndex is ill-advised.
-2003-07-16 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+2009-11-24 Donal K. Fellows <dkf@users.sf.net>
- * doc/CrtSlave.3 (Tcl_MakeSafe): Updated documentation to strongly
- discourage use. IMHO code outside the core that uses this
- function is a bug... [Bug 655300]
+ * generic/tclOO.c (FinalizeAlloc, Tcl_NewObjectInstance):
+ [Bug 2903011]: Make it an error to destroy an object in a constructor,
+ and also make sure that an object is not deleted twice in the error
+ case.
-2003-07-16 Don Porter <dgp@users.sourceforge.net>
+2009-11-24 Pat Thoyts <patthoyts@users.sourceforge.net>
- * generic/tclFileName.c (Tcl_GlobObjCmd): [Bug 771840]
- * generic/tclPathObj.c (Tcl_FSConvertToPathType):[Bug 771947]
- * unix/tclUnixFCmd.c (GetModeFromPermString): [Bug 771949]
- Silence compiler warnings about unreached lines.
+ * tests/fCmd.test: [Bug 2893771]: Teach [file stat] to handle locked
+ * win/tclWinFile.c: files so that [file exists] no longer lies.
- * library/tcltest/tcltest.tcl (ProcessFlags): Corrected broken call
- * library/tcltest/pkgIndex.tcl: to [lrange]. Bumped
- to version 2.2.4. [Bug 772333]
+2009-11-23 Kevin Kenny <kennykb@acm.org>
-2003-07-15 Mo DeJong <mdejong@users.sourceforge.net>
+ * tests/fCmd.test (fCmd-30.1): Changed registry location of the 'My
+ Documents' folder to the one that's correct for Windows 2000, XP,
+ Server 2003, Vista, Server 2008, and Windows 7. (See
+ http://support.microsoft.com/kb/310746)
- * unix/dltest/pkga.c (Pkga_EqObjCmd): Fix typo
- that was causing a crash in load.test.
+2009-11-23 Jan Nijtmans <nijtmans@users.sf.net>
-2003-07-15 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * win/tclWinDde.c: #undef STATIC_BUILD, in order to make sure
+ * win/tclWinReg.c: that Xxxxx_Init is always exported even when
+ * generic/tclTest.c: Tcl is built static (otherwise we cannot
+ create a DLL).
+ * generic/tclThreadTest.c: Make all functions static, except
+ TclThread_Init.
+ * tests/fCmd.test: Enable fCmd-30.1 when registry is available.
+ * win/tcl.m4: Fix ${SHLIB_LD_LIBS} definition, fix conflicts
+ * win/Makefile.in: Simplifications related to tcl.m4 changes.
+ * win/configure.in: Between static libraries and import library on
+ windows.
+ * win/configure: (regenerated)
+ * win/makefile.vc: Add stub library to necessary link lines.
- * doc/array.n: Make sure docs are synched with the 8.4 release.
+2009-11-23 Kevin B. Kenny <kennykb@acm.org>
-2003-07-15 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclThreadTest.c (NewTestThread): [Bug 2901803]: Further
+ machinations to get NewTestThread actually to launch the thread, not
+ just compile.
- * doc/http.n: Updated SYNOPSIS to match actual syntax of
- commands. [Bug 756112]
+2009-11-22 Donal K. Fellows <dkf@users.sf.net>
- * unix/dltest/pkga.c: Updated to not use Tcl_UtfNcmp and counted
- strings instead of strcmp (not defined in any #include'd header)
- and presumed NULL-terminated strings.
+ * generic/tclThreadTest.c (NewTestThread): [Bug 2901803]: Fix small
+ error in function naming which blocked a threaded test build.
- * generic/tclCompCmds.c (TclCompileIfCmd): Prior fix of Bug 711371
- on 2003-04-07 introduced a buffer overflow. Corrected. [Bug 771613]
+2009-11-19 Jan Nijtmans <nijtmans@users.sf.net>
-2003-07-15 Kevin B. Kenny <kennykb@acm.org>
+ * win/Makefile.in: Create tcltest86.dll as dynamic Tcltest
+ package.
+ * generic/tclTest.c: Remove extraneous prototypes, follow-up to
+ * generic/tclTestObj.c: [Bug 2883850]
+ * tests/chanio.test: Test-cases for fixed [Bug 2849797]
+ * tests/io.test:
+ * tests/safe.test: Fix safe-10.1 and safe-10.4 test cases, making
+ the wrong assumption that Tcltest is a static
+ package.
+ * generic/tclEncoding.c:[Bug 2857044]: Updated freeIntRepProc routines
+ * generic/tclVar.c: so that they set the typePtr field to NULL so
+ that the Tcl_Obj is not left in an
+ inconsistent state.
+ * unix/tcl.m4: [Patch 2883533]: tcl.m4 support for Haiku OS
+ * unix/configure: autoconf-2.59
+
+2009-11-19 Don Porter <dgp@users.sourceforge.net>
+
+ * unix/tclAppInit.c: [Bug 2883850, 2900542]: Repair broken build of
+ * win/tclAppInit.c: the tcltest executable.
+
+2009-11-19 Donal K. Fellows <dkf@users.sf.net>
+
+ * library/auto.tcl (tcl_findLibrary):
+ * library/clock.tcl (MakeUniquePrefixRegexp, MakeParseCodeFromFields)
+ (SetupTimeZone, ProcessPosixTimeZone): Restored the use of a literal
+ * library/history.tcl (HistAdd): 'then' when following a multi-
+ * library/safe.tcl (interpConfigure): line test expresssion. It's an
+ * library/tm.tcl (UnknownHandler): aid to readability then.
+
+2009-11-19 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclInt.h: Make all internal initialization
+ * generic/tclTest.c: routines MODULE_SCOPE
+ * generic/tclTestObj.c:
+ * generic/tclTestProcBodyObj.c:
+ * generic/tclThreadTest.c:
+ * unix/Makefile.in: Fix [Bug 2883850]: pkgIndex.tcl doesn't
+ * unix/tclAppInit.c: get created with static Tcl build
+ * unix/tclXtTest.c:
+ * unix/tclXtNotify.c:
+ * unix/tclUnixTest.c:
+ * win/Makefile.in:
+ * win/tcl.m4:
+ * win/configure: (regenerated)
+ * win/tclAppInit.c:
+ * win/tclWinDde.c: Always compile with Stubs.
+ * win/tclWinReg.c:
+ * win/tclWinTest.c:
- * win/rules.vc: Added a missing $(OPTDEFINES) which broke the
- build if STATS=memdbg was specified.
-
-2003-07-15 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+2009-11-18 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclCmdIL.c (SortCompare): Cleared up confusing error
- message. [Bug 771539]
+ * doc/CrtChannel.3: [Bug 2849797]: Fix channel name inconsistences
+ * generic/tclIORChan.c: as suggested by DKF.
+ * generic/tclIO.c: Minor *** POTENTIAL INCOMPATIBILITY ***
+ because Tcl_CreateChannel() and derivatives
+ now sometimes ignore their "chanName"
+ argument.
-2003-07-11 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclAsync.c: Eliminate various gcc warnings (with -Wextra)
+ * generic/tclBasic.c
+ * generic/tclBinary.c
+ * generic/tclCmdAH.c
+ * generic/tclCmdIL.c
+ * generic/tclCmdMZ.c
+ * generic/tclCompile.c
+ * generic/tclDate.c
+ * generic/tclExecute.c
+ * generic/tclDictObj.c
+ * generic/tclIndexObj.c
+ * generic/tclIOCmd.c
+ * generic/tclIOUtil.c
+ * generic/tclIORTrans.c
+ * generic/tclOO.c
+ * generic/tclZlib.c
+ * generic/tclGetDate.y
+ * win/tclWinInit.c
+ * win/tclWinChan.c
+ * win/tclWinConsole.c
+ * win/tclWinNotify.c
+ * win/tclWinReg.c
+ * library/auto.tcl: Eliminate "then" keyword
+ * library/clock.tcl
+ * library/history.tcl
+ * library/safe.tcl
+ * library/tm.tcl
+ * library/http/http.tcl: Eliminate unnecessary spaces
+ * library/http1.0/http.tcl
+ * library/msgcat/msgcat.tcl
+ * library/opt/optparse.tcl
+ * library/platform/platform.tcl
+ * tools/tcltk-man2html.tcl
+ * tools/tclZIC.tcl
+ * tools/tsdPerf.c
+
+2009-11-17 Andreas Kupries <andreask@activestate.com>
+
+ * unix/tclUnixChan.c (TtyParseMode): Partial undo of Donal's tidy-up
+ from a few days ago (2009-11-9, not in ChangeLog). It seems that
+ strchr is apparently a macro on AIX and reacts badly to pre-processor
+ directives in its arguments.
+
+2009-11-16 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclEncoding.c: [Bug 2891556]: Fix and improve test to
+ * generic/tclTest.c: detect similar manifestations in the future.
+ * tests/encoding.test: Add tcltest support for finalization.
+
+2009-11-15 Mo DeJong <mdejong@users.sourceforge.net>
+
+ * win/tclWinDde.c: Avoid gcc compiler warning by explicitly casting
+ DdeCreateStringHandle argument.
+
+2009-11-12 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclIO.c (CopyData): [Bug 2895565]: Dropped bogosity which
+ * tests/io.test: used the number of _written_ bytes or character to
+ update the counters for the read bytes/characters. New test io-53.11.
+ This is a forward port from the 8.5 branch.
+
+2009-11-11 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclClock.c (TclClockInit): Do not create [clock] support
+ commands in safe interps.
+
+2009-11-11 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * library/http/http.tcl (http::geturl): [Bug 2891171]: URL checking
+ too strict when using multiple question marks.
+ * tests/http.test
+ * library/http/pkgIndex.tcl: Bump to http 2.8.2
+ * unix/Makefile.in:
+ * win/Makefile.in:
- * tests/binary.test (binary-46.*): Tests to help enforce the
- current behaviour.
- * doc/binary.n: Documented that [binary format a] and [binary scan a]
- do encoding conversion by dropping high bytes, unlike the rest of
- the core. [Bug 735364]
+2009-11-11 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclIO.c: Fix [Bug 2888099] (close discards ENOSPC error) by
+ saving the errno from the first of two FlushChannel()s. Uneasy to
+ test; might need specific channel drivers. Four-hands with aku.
+
+2009-11-10 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+ * tests/winFCmd.test: Cleanup directories that have been set chmod
+ 000. On Windows7 and Vista we really have no access and these were
+ getting left behind.
+ A few tests were changed to reflect the intent of the test where
+ setting a directory chmod 000 should prevent any modification. This
+ restriction was ignored on XP but is honoured on Vista
+
+2009-11-10 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclBasic.c: Plug another leak in TCL_EVAL_DIRECT evaluation.
+ Forward port from Tcl 8.5 branch, change by Don Porter.
+
+ * generic/tclObj.c: [Bug 2895323]: Plug memory leak in
+ TclContinuationsEnter(). Forward port from Tcl 8.5 branch, change by
+ Don Porter.
+
+2009-11-09 Stuart Cassoff <stwo@users.sf.net>
+
+ * win/README: [bug 2459744]: Removed outdated Msys + Mingw info.
+
+2009-11-09 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclBasic.c (TclEvalObjEx): Moved the #280 decrement of
+ refCount for the file path out of the branch after the whole
+ conditional, closing a memory leak. Added clause on structure type to
+ prevent seg.faulting. Forward port from valgrinding the Tcl 8.5
+ branch.
+
+ * tests/info.test: Resolve ambiguous resolution of variable "res".
+ Forward port from 8.5
+
+2009-11-08 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/string.n (bytelength): Noted that this command is not a good
+ thing to use, and suggested a better alternatve. Also factored out the
+ description of the indices into its own section.
+
+2009-11-07 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+ * tests/fCmd.test: [Bug 2891026]: Exclude tests using chmod 555
+ directories on vista and win7. The current user has access denied and
+ so cannot rename the directory without admin privileges.
+
+2009-11-06 Andreas Kupries <andreask@activestate.com>
+
+ * library/safe.tcl (::safe::Setup): Added documentation of the
+ contents of the state array. Also killed the 'InterpState' procedure
+ with its upleveled variable/upvar combination, and replaced all uses
+ with 'namespace upvar'.
+
+2009-11-05 Andreas Kupries <andreask@activestate.com>
+
+ * library/safe.tcl: A series of patches which bring the SafeBase up to
+ date with code guidelines, Tcl's features, also eliminating a number
+ of inefficiencies along the way.
+ (1) Changed all procedure names to be fully qualified.
+ (2) Moved the procedures out of the namespace eval. Kept their
+ locations. IOW, broke the namespace eval apart into small sections not
+ covering the procedure definitions.
+ (3) Reindented the code. Just lots of whitespace changes.
+ Functionality unchanged.
+ (4) Moved the multiple namespace eval's around. Command export at the
+ top, everything else (var decls, argument parsing setup) at the
+ bottom.
+ (5) Moved the argument parsing setup into a procedure called when the
+ code is loaded. Easier management of temporary data.
+ (6) Replaced several uses of 'Set' with calls to the new procedure
+ 'InterpState' and direct access to the per-slave state array.
+ (7) Replaced the remaining uses of 'Set' and others outside of the
+ path/token handling, and deleted a number of procedures related to
+ state array access which are not used any longer.
+ (8) Converted the path token system to cache normalized paths and path
+ <-> token conversions. Removed more procedures not used any longer.
+ Removed the test cases 4.3 and 4.4 from safe.test. They were testing
+ the now deleted command "InterpStateName".
+ (9) Changed the log command setup so that logging is compiled out
+ completely when disabled (default).
+ (10) Misc. cleanup. Inlined IsInterp into CheckInterp, its only user.
+ Consistent 'return -code error' for error reporting. Updated to use
+ modern features (lassign, in/ni, dicts). The latter are used to keep a
+ reverse path -> token map and quicker check of existence.
+ (11) Fixed [Bug 2854929]: Recurse into all subdirs under all TM root
+ dirs and put them on the access path.
+
+2009-11-02 Kevin B. Kenny <kennykb@acm.org>
+
+ * library/tzdata/Asia/Novokuznetsk: New tzdata locale for Kemerovo
+ oblast', which now keeps Novosibirsk time and not Kranoyarsk time.
+ * library/tzdata/Asia/Damascus: Syrian DST changes.
+ * library/tzdata/Asia/Hong_Kong: Hong Kong historic DST corrections.
+ Olson tzdata2009q.
+
+2009-11-02 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/object.n (DESCRIPTION): Substantive revision to make it clearer
+ what the fundamental semantics of an object actually are.
+
+2009-11-01 Joe Mistachkin <joe@mistachkin.com>
+
+ * doc/Cancel.3: Minor cosmetic fixes.
+ * win/makefile.vc: Make htmlhelp target work again. An extra set of
+ double quotes around the definition of the HTML help compiler tool
+ appears to be required. Previously, there was one set of double
+ quotes around the definition of the tool and one around the actual
+ invocation. This led to confusion because it was the only such tool
+ path to include double quotes around its invocation. Also, it was
+ somewhat inflexible in the event that somebody needed to override the
+ tool command to include arguments. Therefore, even though it may look
+ "wrong", there are now two double quotes on either side of the tool
+ path definition. This fixes the problem that currently prevents the
+ htmlhelp target from building and maintains flexibility in case
+ somebody needs to override it via the command line or an environment
+ variable.
+
+2009-11-01 Joe English <jenglish@users.sourceforge.net>
+
+ * doc/Eval.3, doc/Cancel.3: Move TIP#285 routines out of Eval.3 into
+ their own manpage.
+
+2009-10-31 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclBasic.c (ExprRoundFunc): [Bug 2889593]: Correctly report
+ the expected number of arguments when generating an error for round().
+
+2009-10-30 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+ * tests/tcltest.test: When creating the notwritabledir we deny the
+ current user access to delete the file. We must grant this right when
+ we cleanup. Required on Windows 7 when the user does not automatically
+ have administrator rights.
+
+2009-10-29 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tcl.h: Changed the typedef for the mp_digit type
+ from:
+ typedef unsigned long mp_digit;
+ to:
+ typedef unsigned int mp_digit;
+ For 32-bit builds where "long" and "int" are two names for the same
+ thing, this is no change at all. For 64-bit builds, though, this
+ causes the dp[] array of an mp_int to be made up of 32-bit elements
+ instead of 64-bit elements. This is a huge improvement because
+ details elsewhere in the mp_int implementation cause only 28 bits of
+ each element to be actually used storing number data. Without this
+ change bignums are over 50% wasted space on 64-bit systems. [Bug
+ 2800740].
-2003-07-11 Don Porter <dgp@users.sourceforge.net>
+ ***POTENTIAL INCOMPATIBILITY***
+ For 64-bit builds, callers of routines with (mp_digit) or (mp_digit *)
+ arguments *will*, and callers of routines with (mp_int *) arguments
+ *may* suffer both binary and stubs incompatibilities with Tcl releases
+ 8.5.0 - 8.5.7. Such possibilities should be checked, and if such
+ incompatibilities are present, suitable [package require] requirements
+ on the Tcl release should be put in place to keep such built code
+ [load]-ing only in Tcl interps that are compatible.
- * library/package.tcl: Corrected [pkg_mkIndex] bug reported on
- comp.lang.tcl. The indexer was searching for newly indexed packages
- instead of newly provided packages.
+2009-10-29 Donal K. Fellows <dkf@users.sf.net>
-2003-07-08 Vince Darley <vincentdarley@users.sourceforge.net>
+ * tests/dict.test: Make variable-clean and simplify tests by utilizing
+ the fact that dictionaries have defined orders.
- * tests/winFCmd.test: fix for five tests under win98 [Bug 767679]
+ * generic/tclZlib.c (TclZlibCmd): Remove accidental C99-ism which
+ reportedly makes the AIX native compiler choke.
-2003-07-07 Jeff Hobbs <jeffh@ActiveState.com>
+2009-10-29 Kevin B. Kenny <kennykb@acm.org>
- * doc/array.n: add examples from Welton
+ * library/clock.tcl (LocalizeFormat):
+ * tests/clock.test (clock-67.1):
+ [Bug 2819334]: Corrected a problem where '%%' followed by a letter in
+ a format group could expand recursively: %%R would turn into %%H:%M:%S
-2003-06-23 Vince Darley <vincentdarley@users.sourceforge.net>
+2009-10-28 Don Porter <dgp@users.sourceforge.net>
- * doc/file.n: clarification of 'file tail' behaviour [Bug 737977]
+ * generic/tclLiteral.c: [Bug 2888044]: Fixed 2 bugs.
+ * tests/info.test: First, as noted in the comments of the
+ TclCleanupLiteralTable routine, since the teardown of the intrep of
+ one Tcl_Obj can cause the teardown of others in the same table, the
+ full table cleanup must be done with care, but the code did not
+ contain the same care demanded in the comment. Second, recent
+ additions to the info.test file had poor hygiene, leaving an array
+ variable ::a lying around, which breaks later interp.test tests during
+ a -singleproc 1 run of the test suite.
-2003-07-04 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+2009-10-28 Kevin B. Kenny <kennykb@acm.org>
- * doc/expr.n: Tighten up the wording of some operations. [Bug 758488]
+ * tests/fileName.test (fileName-20.[78]): Corrected poor test
+ hygiene (failure to save and restore the working directory) that
+ caused these two tests to fail on Windows (and [Bug 2806250] to be
+ reopened).
- * tests/cmdAH.test: Made tests of [file mtime] work better on FAT
- filesystems. [Patch 760768] Also a little general cleanup.
+2009-10-27 Don Porter <dgp@users.sourceforge.net>
- * generic/tclCmdMZ.c (Tcl_StringObjCmd): Made [string map] accept
- dictionaries for maps. This is much trickier than it looks, since
- map entry ordering is significant. [Bug 759936]
+ * generic/tclPathObj.c: [Bug 2884203]: Missing refcount on cached
+ normalized path caused crashes.
- * generic/tclVar.c (Tcl_ArrayObjCmd, TclArraySet): Made [array
- get] and [array set] work with dictionaries, producing them and
- consuming them. Note that for compatability reasons, you will
- never get a dict from feeding a string literal to [array set]
- since that alters the trace behaviour of "multi-key" sets.
- [Bug 759935]
+2009-10-27 Kevin B. Kenny <kennykb@acm.org>
-2003-06-23 Vince Darley <vincentdarley@users.sourceforge.net>
+ * library/clock.tcl (ParseClockScanFormat): [Bug 2886852]: Corrected a
+ problem where [clock scan] didn't load the timezone soon enough when
+ processing a time format that lacked a complete date.
+ * tests/clock.test (clock-66.1):
+ Added a test case for the above bug.
+ * library/tzdata/America/Argentina/Buenos_Aires:
+ * library/tzdata/America/Argentina/Cordoba:
+ * library/tzdata/America/Argentina/San_Luis:
+ * library/tzdata/America/Argentina/Tucuman:
+ New DST rules for Argentina. (Olson's tzdata2009p.)
- * generic/tclTrace.c: fix to Window debug build compilation error.
+2009-10-26 Don Porter <dgp@users.sourceforge.net>
-2003-06-27 Don Porter <dgp@users.sourceforge.net>
+ * unix/Makefile.in: Remove $(PACKAGE).* and prototype from the
+ `make distclean` target. Completes 2009-10-20 commit.
- * tests/init.test: Added [cleanupTests] to report results of tests
- * tests/pkg.test: that run in slave interps. [Bugs 761334,761344]
+2009-10-24 Kevin B. Kenny <kennykb@acm.org>
- * tests/http.test: Used more reliable path to find httpd script.
+ * library/clock.tcl (ProcessPosixTimeZone):
+ Corrected a regression in the fix to [Bug 2207436] that caused
+ [clock] to apply EU daylight saving time rules in the US.
+ Thanks to Karl Lehenbauer for reporting this regression.
+ * tests/clock.test (clock-52.4):
+ Added a regression test for the above bug.
+ * library/tzdata/Asia/Dhaka:
+ * library/tzdata/Asia/Karachi:
+ New DST rules for Bangladesh and Pakistan. (Olson's tzdata2009o.)
-2003-06-25 Don Porter <dgp@users.sourceforge.net>
+2009-10-23 Andreas Kupries <andreask@activestate.com>
- * tests/init.test: Added tests init-4.6.* to illustrate [Bug 760872]
+ * generic/tclIO.c (FlushChannel): Skip OutputProc for low-level
+ 0-length writes. When closing pipes which have already been closed
+ not skipping leads to spurious SIG_PIPE signals. Reported by
+ Mikhail Teterin <mi+thun@aldan.algebra.com>.
-2003-06-25 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+2009-10-22 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclTrace.c: New file, factoring out of virtually all the
- various trace-related things from tclBasic.c and tclCmdMZ.c with
- the goal of making this a separate maintenance area.
+ * generic/tclOOBasic.c (TclOO_Object_VarName): [Bug 2883857]: Allow
+ the passing of array element names through this method.
-2003-06-25 Mo DeJong <mdejong@users.sourceforge.net>
+2009-10-21 Donal K. Fellows <dkf@users.sf.net>
- * unix/configure: Regen.
- * unix/tcl.m4 (SC_CONFIG_CFLAGS): Add -ieee when
- compiling with cc and add -mieee when compiling
- with gcc under OSF1-V5 "Tru64" systems.
- [Bug 748957]
+ * generic/tclPosixStr.c: [Bug 2882561]: Work around oddity on Haiku OS
+ where SIGSEGV and SIGBUS are the same value.
-2003-06-24 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclTrace.c (StringTraceProc): [Bug 2881259]: Added back cast
+ to work around silly bug in MSVC's handling of auto-casting.
- * doc/encoding.n: Corrected the docs to say that [source] uses the
- system encoding, which it always did anyway (since 8.1) [Bug 742100]
+2009-10-20 Don Porter <dgp@users.sourceforge.net>
-2003-06-24 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * unix/Makefile.in: Removed the long outdated and broken targets
+ package-* that were for building Solaris packages. Appears that the
+ pieces needed for these targets to function have never been present in
+ the current era of Tcl development and belong completely to Tcl
+ pre-history.
- * generic/tclHash.c (Tcl_HashStats): Prevented occurrence of
- division-by-zero problems. [Bug 759749]
+2009-10-19 Don Porter <dgp@users.sourceforge.net>
-2003-06-24 Mo DeJong <mdejong@users.sourceforge.net>
+ * generic/tclIO.c: [Patch 2107634]: Revised ReadChars and
+ FilterInputBytes routines to permit reads to continue up to the string
+ limits of Tcl values. Before revisions, large read attempts could
+ panic when as little as half the limiting value length was reached.
+ Thanks to Sean Morrison and Bob Parker for their roles in the fix.
- * unix/tclUnixPort.h: #undef inet_ntoa before
- #define to avoid compiler warning under freebsd.
- [Bug 745844]
+2009-10-18 Joe Mistachkin <joe@mistachkin.com>
-2003-06-23 Pat Thoyts <patthoyts@users.sourceforge.net>
+ * generic/tclObj.c (TclDbDumpActiveObjects, TclDbInitNewObj)
+ (Tcl_DbIncrRefCount, Tcl_DbDecrRefCount, Tcl_DbIsShared):
+ [Bug 2871908]: Enforce separation of concerns between the lineCLPtr
+ and objThreadMap thread specific data members.
- * doc/dde.n: Committed TIP #135 which changes the
- * win/tclWinDde.c: -exact option to -force. Also cleaned
- * tests/winDde.test: a bug in the tests.
- * library/dde/pkgIndex.tcl: Incremented version to 1.2.5
+2009-10-18 Joe Mistachkin <joe@mistachkin.com>
- * doc/dde.n: Committed TIP #120 which provides the
- * win/tclWinDde.c: dde package for safe interpreters.
- * tests/winDde.test: Incremented package version to 1.2.4
- * library/dde/pkgIndex.tcl:
+ * tests/thread.test (thread-4.[345]): [Bug 1565466]: Correct tests to
+ save their error state before the final call to threadReap just in
+ case it triggers an "invalid thread id" error. This error can occur
+ if one or more of the target threads has exited prior to the attempt
+ to send it an asynchronous exit command.
-2003-06-23 Vince Darley <vincentdarley@users.sourceforge.net>
+2009-10-17 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclFCmd.c: fix to bad error message when trying to
- do 'file copy foo ""'. [Bug 756951]
- * tests/fCmd.test: added two new tests for the bug.
+ * generic/tclVar.c (UnsetVarStruct, TclDeleteNamespaceVars)
+ (TclDeleteCompiledLocalVars, DeleteArray):
+ * generic/tclTrace.c (Tcl_UntraceVar2): [Bug 2629338]: Stop traces
+ that are deleted part way through (a feature used by tdom) from
+ causing freed memory to be accessed.
- * win/tclWinFile.c:
- * win/tclWin32Dll.c: recommitted some filesystem globbing
- speed-ups, but disabled some on the older Win 95/98/ME where
- they don't seem to work.
+2009-10-08 Donal K. Fellows <dkf@users.sf.net>
- * doc/FileSystem.3: documentation fix [Bug 720634]
+ * generic/tclDictObj.c (DictIncrCmd): [Bug 2874678]: Don't leak any
+ bignums when doing [dict incr] with a value.
+ * tests/dict.test (dict-19.3): Memory leak detection code.
-2003-06-18 Miguel Sofer <msofer@users.sf.net>
+2009-10-07 Andreas Kupries <andreask@activestate.com>
- * generic/tclNamesp.c (Tcl_Export): removed erroneous comments
- [Bug 756744]
+ * generic/tclObj.c: [Bug 2871908]: Plug memory leaks of objThreadMap
+ and lineCLPtr hashtables. Also make the names of the continuation
+ line information initialization and finalization functions more
+ consistent. Patch supplied by Joe Mistachkin <joe@mistachkin.com>.
-2003-06-17 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclIORChan.c (ErrnoReturn): Replace hardwired constant 11
+ with proper errno #define, EAGAIN. What was I thinking? The BSD's have
+ a different errno assignment and break with the hardwired number.
+ Reported by emiliano on the chat.
- * win/makefile.vc: fixes to check-in below so compilation now
- works again on Windows.
+2009-10-06 Don Porter <dgp@users.sourceforge.net>
- * generic/tclCmdMZ.c:
- * tests/regexp.test: fixing of bugs related to regexp and regsub
- matching of empty strings. Addition of a number of new tests.
- [Bug 755335]
-
-2003-06-16 Andreas Kupries <andreask@activestate.com>
-
- * win/Makefile.in: Haven't heard back from David for a week.
- * win/configure: Now committing the remaining changes.
- * win/configure.in: Note: In active contact with Helmut Giese
- * win/makefile.vc: about the borland relatedchanges. This part
- * win/rules.vc: will see future updates.
- * win/tcl.m4:
- * win/makefile.bc:
+ * generic/tclInterp.c (SlaveEval): Agressive stomping of internal reps
+ was added as part of the NRE patch of 2008-07-13. This doesn't appear
+ to actually be needed, and it hurts quite a bit when large lists lose
+ their intreps and require reparsing. Thanks to Ashok Nadkarni for
+ reporting the problem.
-2003-06-10 Andreas Kupries <andreask@activestate.com>
+ * generic/tclTomMathInt.h (new): Public header tclTomMath.h had
+ * generic/tclTomMath.h: dependence on private headers, breaking use
+ * generic/tommath.h: by extensions [Bug 1941434].
- * generic/tclConfig.c (ASSOC_KEY): Changed the key to
- "tclPackageAboutDict" (tcl prefix) to make collisions with the
- keys of other packages more unlikely.
+2009-10-05 Andreas Kupries <andreask@activestate.com>
-2003-06-10 Miguel Sofer <msofer@users.sf.net>
+ * library/safe.tcl (AliasGlob): Fixed conversion of catch to
+ try/finally, it had an 'on ok msg' branch missing, causing a silent
+ error immediately, and bogus glob results, breaking search for Tcl
+ modules.
- * generic/tclBasic.c:
- * generic/tclExecute.c: let TclExecuteObjvInternal call
- TclInterpReady instead of relying on its callers to do so; fix for
- the part of [Bug 495830] that is new in 8.4.
- * tests/interp.test: Added tests 18.9 (knownbug) and 18.10
-
-2003-06-09 Andreas Kupries <andreask@activestate.com>
-
- * generic/tcl.decls: Ported the changes from the
- * generic/tcl.h: 'tip-59-implementation' branch into the CVS
- * generic/tclBasic.c: head. Regenerated stub table. Regenerated
- * generic/tclInt.h: the configure's scripts, with help from Joe
- * generic/tclDecls.h English.
+2009-10-04 Daniel Steffen <das@users.sourceforge.net>
+
+ * macosx/tclMacOSXBundle.c: [Bug 2569449]: Workaround CF memory
+ * unix/tclUnixInit.c: managment bug in Mac OS X 10.4 &
+ earlier.
+
+2009-10-02 Kevin B. Kenny <kennykb@acm.org>
+
+ * library/tzdata/Africa/Cairo:
+ * library/tzdata/Asia/Gaza:
+ * library/tzdata/Asia/Karachi:
+ * library/tzdata/Pacific/Apia: Olson's tzdata2009n.
+
+2009-09-29 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclDictObj.c: [Bug 2857044]: Updated freeIntRepProc
+ * generic/tclExecute.c: routines so that they set the typePtr
+ * generic/tclIO.c: field to NULL so that the Tcl_Obj is
+ * generic/tclIndexObj.c: not left in an inconsistent state.
+ * generic/tclInt.h:
+ * generic/tclListObj.c:
+ * generic/tclNamesp.c:
+ * generic/tclOOCall.c:
+ * generic/tclObj.c:
+ * generic/tclPathObj.c:
+ * generic/tclProc.c:
+ * generic/tclRegexp.c:
+ * generic/tclStringObj.c:
+
+ * generic/tclAlloc.c: Cleaned up various routines in the
+ * generic/tclCkalloc.c: call stacks for memory allocation to
+ * generic/tclInt.h: guarantee that any size values computed
+ * generic/tclThreadAlloc.c: are within the domains of the routines
+ they get passed to. [Bugs 2557696 and 2557796].
+
+2009-09-28 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCmdMZ.c: Replaced TclProcessReturn() calls with
+ * tests/error.test: Tcl_SetReturnOptions() calls as a simple fix
+ for [Bug 2855247]. Thanks to Anton Kovalenko for the report and fix.
+ Additional fixes for other failures demonstrated by new tests.
+
+2009-09-27 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/error.test (error-15.8.*): Coverage tests illustrating
+ flaws in the propagation of return options by [try].
+
+2009-09-26 Donal K. Fellows <dkf@users.sf.net>
+
+ * unix/tclooConfig.sh, win/tclooConfig.sh: [Bug 2026844]: Added dummy
+ versions of tclooConfig.sh that make it easier to build extensions
+ against both Tcl8.5+TclOO-standalone and Tcl8.6.
+
+2009-09-24 Don Porter <dgp@users.sourceforge.net>
+
+ TIP #356 IMPLEMENTATION
+
+ * generic/tcl.decls: Promote internal routine TclNRSubstObj()
+ * generic/tclCmdMZ.c: to public Tcl_NRSubstObj(). Still needs docs.
+ * generic/tclCompile.c:
+ * generic/tclInt.h:
+
+ * generic/tclDecls.h: make genstubs
* generic/tclStubInit.c:
- * generic/tclConfig.c:
- * generic/tclPkgConfig.c:
- * unix/Makefile.in:
- * unix/configure.in: The changes in the windows section are not
- * unix/tcl.m4: yet committed, they await feedback from
- * unix/mkLinks: David Gravereaux.
- * doc/RegConfig.3:
- * mac/tclMacPkgConfig.c:
- * tests/config.test:
-2003-06-09 Don Porter <dgp@users.sourceforge.net>
+2009-09-23 Miguel Sofer <msofer@users.sf.net>
- * string.test (string-4.15): Added test for [string first] bug
- reported in Tcl 8.3, where test for all-single-byte-encoded strings
- was not reliable.
+ * doc/namespace.n: the description of [namespace unknown] failed
+ to mention [namespace path]: fixed. Thx emiliano.
-2003-06-04 Joe Mistachkin <joe@mistachkin.com>
+2009-09-21 Mo DeJong <mdejong@users.sourceforge.net>
- * tools/man2help.tcl: Added duplicate help section checking
- * tools/index.tcl: and corrected a comment typo for the
- getTopics proc in index.tcl [Bug #748700].
+ * tests/regexp.test: Added check for error message from
+ unbalanced [] in regexp. Added additional simple test cases
+ of basic regsub command.
-2003-06-02 Vince Darley <vincentdarley@users.sourceforge.net>
+2009-09-21 Don Porter <dgp@users.sourceforge.net>
- * win/tclWinFCmd.c:
- * tests/fCmd.test: fix to [Bug #747575] in which a bad error
- message is given when trying to rename a busy directory to
- one with the same prefix, but not the same name. Added three
- new tests.
-
-2003-05-23 D. Richard Hipp <drh@hwaci.com>
+ * generic/tclCompile.c: Correct botch in the conversion of
+ Tcl_SubstObj(). Thanks to Kevin Kenny for detection and report.
+
+2009-09-17 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCompile.c: Re-implement Tcl_SubstObj() as a simple
+ * generic/tclParse.c: wrapper around TclNRSubstObj(). This has
+ * tests/basic.test: the effect of caching compiled bytecode in
+ * tests/parse.test: the value to be substituted. Note that
+ Tcl_SubstObj() now exists only for extensions. Tcl itself no longer
+ makes any use of it. Note also that TclSubstTokens() is now reachable
+ only by Tcl_EvalEx() and Tcl_ParseVar() so tests aiming to test its
+ functioning needed adjustment to still have the intended effect.
- * win/tclWinTime.c: Add tests to detect and avoid a division by zero
- in the windows precision timer calibration logic.
+2009-09-16 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
-2003-05-23 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclObj.c: Extended ::tcl::unsupported::representation.
- * generic/tclObj.c (tclCmdNameType): Converted internal rep
- management of the cmdName Tcl_ObjType the opposite way, to always
- use the twoPtrValue instead of always using the otherValuePtr.
- Previous fix on 2003-05-12 broke several extensions that wanted
- to poke around with the twoPtrValue.ptr2 value of a cmdName
- Tcl_Obj, like TclBlend and e4graph. [Bug 726018]
- Thanks to George Petasis for the bug report and Jacob Levy for
- testing assistance.
+2009-09-11 Don Porter <dgp@users.sourceforge.net>
-2003-05-23 Mo DeJong <mdejong@users.sourceforge.net>
+ * generic/tclBasic.c: Completed the NR-enabling of [subst].
+ * generic/tclCmdMZ.c: [Bug 2314561].
+ * generic/tclCompCmds.c:
+ * generic/tclCompile.c:
+ * generic/tclInt.h:
+ * tests/coroutine.test:
+ * tests/parse.test:
- * unix/mkLinks: Set the var S to "" at the top
- of the file to avoid error when user has set S
- to something.
- [Tk Bug #739833]
+2009-09-11 Donal K. Fellows <dkf@users.sf.net>
-2003-05-22 Daniel Steffen <das@users.sourceforge.net>
+ * tests/http.test: Added in cleaning up of http tokens for each test
+ to reduce amount of global-variable pollution.
- * macosx/Tcl.pbproj/project.pbxproj: added missing references to
- new source files tclPathObj.c and tclMacOSXFCmd.c.
+2009-09-10 Donal K. Fellows <dkf@users.sf.net>
- * macosx/tclMacOSXBundle.c: fixed a problem that caused only the
- first call to Tcl_MacOSXOpenVersionedBundleResources() for a given
- bundle identifier to succeed. This caused the tcl runtime library
- not to be found in all interps created after the inital one.
-
-2003-05-19 Kevin B. Kenny <kennykb@hippolyta>
+ * library/http/http.tcl (http::Event): [Bug 2849860]: Handle charset
+ names in double quotes; some servers like generating them like that.
- * unix/tclUnixTime.c: Corrected a bug in conversion of non-ASCII
- chars in the format string.
+2009-09-07 Don Porter <dgp@users.sourceforge.net>
-2003-05-19 Daniel Steffen <das@users.sourceforge.net>
+ * generic/tclParse.c: [Bug 2850901]: Corrected line counting error
+ * tests/into.test: in multi-command script substitutions.
- * macosx/Tcl.pbproj/project.pbxproj: changed tclConfig.sh location
- in versioned framework subdirectories to be identical to location
- in framework toplevel; fixed stub library symbolic links to be
- tcl version specific.
+2009-09-07 Daniel Steffen <das@users.sourceforge.net>
- * unix/tclUnixTime.c: fixed typo.
+ * generic/tclExecute.c: Fix potential uninitialized variable use and
+ * generic/tclFCmd.c: null dereference flagged by clang static
+ * generic/tclProc.c: analyzer.
+ * generic/tclTimer.c:
+ * generic/tclUtf.c:
-2003-05-18 Kevin Kenny <kennykb@acm.org>
+ * generic/tclExecute.c: Silence false positives from clang static
+ * generic/tclIO.c: analyzer about potential null dereference.
+ * generic/tclScan.c:
+ * generic/tclCompExpr.c:
- * compat/strftime.c: Modified TclpStrftime to return its
- * generic/tclClock.c: result in UTF-8 encoding, and removed
- * mac/tclMacTime.c: the conversion from system encoding to
- * unix/tclUnixTime.c: UTF-8 from [clock format]. Needed to
- * win/tclWinTime.c: avoid double conversion of the timezone
- name on Windows systems. [Bug 624408]
+2009-09-04 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCompCmds.c (TclCompileSubstCmd): [Bug 2314561]:
+ * generic/tclBasic.c: Added a bytecode compiler routine for the
+ * generic/tclCmdMZ.c: [subst] command. This is a partial solution to
+ * generic/tclCompile.c: the need to NR-enable [subst] since bytecode
+ * generic/tclCompile.h: execution is already NR-enabled. Two new
+ * generic/tclExecute.c: bytecode instructions, INST_NOP and
+ * generic/tclInt.h: INST_RETURN_CODE_BRANCH were added to support
+ * generic/tclParse.c: the new routine. INST_RETURN_CODE_BRANCH is
+ * tests/basic.test: likely to be useful in any future effort to
+ * tests/info.test: add a bytecode compiler routine for [try].
+ * tests/parse.test:
-2003-05-16 Pat Thoyts <patthoyts@users.sourceforge.net>
+2009-09-03 Donal K. Fellows <dkf@users.sf.net>
- * library/dde/pkgIndex.tcl: Applied TIP #130 which provides
- * tests/winDde.test: for unique dde server names. Added
- * win/tclWinDde.c: some more tests. Fixes [Bug 219293]
+ * doc/LinkVar.3: [Bug 2844962]: Added documentation of issues relating
+ to use of this API in a multi-threaded environment.
- * doc/dde.n: Updated documentation re TIP #130.
- * tests/winDde.test: Applied patch for [Bug 738929] by KKB and
- changed to new-style tests.
+2009-09-01 Andreas Kupries <andreask@activestate.com>
-2003-05-16 Kevin B. Kenny <kennykb@acm.org>
+ * generic/tclIORTrans.c (ReflectInput): Remove error response to
+ 0-result from method 'limit?' of transformations. Return the number of
+ copied bytes instead, which is possibly nothing. The latter then
+ triggers EOF handling in the higher layers, making the 0-result of
+ limit? the way to inject artificial EOF's into the data stream.
- * unix/Makefile.in: Removed one excess source file tclDToA.c
+2009-09-01 Don Porter <dgp@users.sourceforge.net>
-2003-05-16 Daniel Steffen <das@users.sourceforge.net>
+ * library/tcltest/tcltest.tcl: Bump to tcltest 2.3.2 after revision
+ * library/tcltest/pkgIndex.tcl: to verbose error message.
+ * unix/Makefile.in:
+ * win/Makefile.in:
- * macosx/Tcl.pbproj/project.pbxproj: updated copyright year.
-
-2003-05-15 Kevin B. Kenny <kennykb@acm.org>
+2009-08-27 Don Porter <dgp@users.sourceforge.net>
- * generic/tclGetDate.y: added further hackery to the yacc
- * generic/tclDate.c: post-processing to arrange for the
- * unix/Makefile.in: code to set up exit handlers to free
- the stacks [Bug 736425].
+ * generic/tclStringObj.c: [Bug 2845535]: A few more string
+ overflow cases in [format].
-2003-05-15 Jeff Hobbs <jeffh@ActiveState.com>
+2009-08-25 Andreas Kupries <andreask@activestate.com>
- * win/tclWinFile.c (TclpMatchInDirectory): revert glob code to
- r1.44 as 2003-04-11 optimizations broke Windows98 glob'ing.
+ * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard)
+ (Tcl_EvalEx, TclEvalEx, TclAdvanceContinuations, TclNREvalObjEx):
+ * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, TclListLines):
+ * generic/tclCompCmds.c (*):
+ * generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv)
+ (TclFreeCompileEnv, TclCompileScript, TclCompileTokens):
+ * generic/tclCompile.h (CompileEnv):
+ * generic/tclInt.h (ContLineLoc, Interp):
+ * generic/tclObj.c (ThreadSpecificData, ContLineLocFree)
+ (TclThreadFinalizeObjects, TclInitObjSubsystem, TclContinuationsEnter,
+ (TclContinuationsEnterDerived, TclContinuationsCopy, TclFreeObj)
+ (TclContinuationsGet):
+ * generic/tclParse.c (TclSubstTokens, Tcl_SubstObj):
+ * generic/tclProc.c (TclCreateProc):
+ * generic/tclVar.c (TclPtrSetVar):
+ * tests/info.test (info-30.0-24):
- * doc/socket.n: nroff font handling correction
+ Extended the parser, compiler, and execution engine with code and
+ attendant data structures tracking the position of continuation lines
+ which are not visible in the resulting script Tcl_Obj*'s, to properly
+ account for them while counting lines for #280.
- * library/encoding/gb2312-raw.enc (new): This is the original
- gb2312.enc renamed to allow for it to still be used. This is
- needed by Tk (unix) because X fonts with gb2312* charsets really
- do want the original gb2312 encoding. [Bug 557030]
+2009-08-24 Daniel Steffen <das@users.sourceforge.net>
-2003-05-14 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclInt.h: Annotate Tcl_Panic as noreturn for clang static
+ analyzer in PURIFY builds, replacing preprocessor/assert technique.
- * generic/tclCmdAH.c (Tcl_FormatObjCmd): Stop unwarranted demotion
- of wide values to longs by formatting of int values. [Bug 699060]
+ * macosx/tclMacOSXNotify.c: Fix multiple issues with nested event loops
+ when CoreFoundation notifier is running in embedded mode. (Fixes
+ problems in TkAqua Cocoa reported by Youness Alaoui on tcl-mac)
-2003-05-14 Jeff Hobbs <jeffh@ActiveState.com>
+2009-08-21 Don Porter <dgp@users.sourceforge.net>
- * library/encoding/gb2312.enc: copy euc-cn.enc over original
- gb2312.enc. gb2312.enc appeared to not work as expected, and most
- uses of gb2312 really mean euc-cn (which may be the cause of the
- problem). [Bug 557030]
+ * generic/tclFileName.c: Correct regression in [Bug 2837800] fix.
+ * tests/fileName.test:
-2003-05-14 Daniel Steffen <das@users.sourceforge.net>
+2009-08-20 Don Porter <dgp@users.sourceforge.net>
- Implementation of TIP 118:
-
- * generic/tclFCmd.c (TclFileAttrsCmd): return the list of attributes
- that can be retrieved without error for a given file, instead of
- aborting the whole command when any error occurs.
+ * generic/tclFileName.c: [Bug 2837800]: Correct the result produced by
+ [glob */test] when * matches something like ~foo.
- * unix/tclUnixFCmd.c: added support for new file attributes and for
- copying Mac OS X file attributes & resource fork during [file copy].
+ * generic/tclPathObj.c: [Bug 2806250]: Prevent the storage of strings
+ starting with ~ in the "tail" part (normPathPtr field) of the path
+ intrep when PATHFLAGS != 0. This establishes the assumptions relied
+ on elsewhere that the name stored there is a relative path. Also
+ refactored to make an AppendPath() routine instead of the cut/paste
+ stanzas that were littered throughout.
- * generic/tclInt.decls: added declarations of new external commands
- needed by new file attributes support in tclUnixFCmd.c.
+2009-08-20 Donal K. Fellows <dkf@users.sf.net>
- * macosx/tclMacOSXFCmd.c (new): Mac OS X specific implementation of
- new file attributes and of attribute & resource fork copying.
+ * generic/tclCmdIL.c (TclNRIfObjCmd): [Bug 2823276]: Make [if]
+ NRE-safe on all arguments when interpreted.
+ (Tcl_LsortObjCmd): Close off memory leak.
- * mac/tclMacFCmd.c: added implementation of -rsrclength attribute &
- fixes to other attributes for consistency with OSX implementation.
+2009-08-19 Donal K. Fellows <dkf@users.sf.net>
- * mac/tclMacResource.c: fixes to OSType handling.
+ * generic/tclCmdAH.c (TclNRForObjCmd, etc.): [Bug 2823276]: Make [for]
+ and [while] into NRE-safe commands, even when interpreted.
- * doc/file.n: documentation of [file attributes] changes.
+2009-08-18 Don Porter <dgp@users.sourceforge.net>
- * unix/configure.in: check for APIs needed by new file attributes.
+ * generic/tclPathObj.c: [Bug 2837800]: Added NULL check to prevent
+ * tests/fileName.test: crashes during [glob].
- * unix/Makefile.in:
- * unix/tcl.m4: added new platform specifc tclMacOSXFCmd.c source.
+2009-08-16 Jan Nijtmans <nijtmans@users.sf.net>
- * unix/configure:
+ * unix/dltest/pkge.c: const addition
+ * unix/tclUnixThrd.c: Use <pthread.h> in stead of "pthread.h"
+ * win/tclWinDde.c: Eliminate some more gcc warnings
+ * win/tclWinReg.c:
+ * generic/tclInt.h: Change ForIterData, make it const-safe.
+ * generic/tclCmdAH.c:
+
+2009-08-12 Don Porter <dgp@users.sourceforge.net>
+
+ TIP #353 IMPLEMENTATION
+
+ * doc/NRE.3: New public routine Tcl_NRExprObj() permits
+ * generic/tcl.decls: extension commands to evaluate Tcl expressions
+ * generic/tclBasic.c: in NR-enabled command procedures.
+ * generic/tclCmdAH.c:
+ * generic/tclExecute.c:
+ * generic/tclInt.h:
+ * generic/tclObj.c:
+ * tests/expr.test:
+
+ * generic/tclDecls.h: make genstubs
* generic/tclStubInit.c:
- * generic/tclIntPlatDecls.h: regen.
- * tools/genStubs.tcl: fixes to completely broken code trying to
- prevent overlap of "aqua", "macosx", "x11" and "unix" stub entries.
+2009-08-06 Andreas Kupries <andreask@activestate.com>
- * tests/unixFCmd.test: added tests of -readonly attribute.
-
- * tests/macOSXFCmd.test (new): tests of macosx file attributes and
- of preservation of attributes & resource fork during [file copy].
-
- * tests/macFCmd.test: restore -readonly attribute of test dir, as
- otherwise its removal can fail on unices supporting -readonly.
+ * doc/refchan.n [Bug 2827000]: Extended the implementation of
+ * generic/tclIORChan.c: reflective channels (TIP 219, method
+ * tests/ioCmd.test: 'read'), enabling handlers to signal EAGAIN to
+ indicate 'no data, but not at EOF either', and other system
+ errors. Updated documentation, extended testsuite (New test cases
+ iocmd*-23.{9,10}).
-2003-05-13 David Gravereaux <davygrvy@pobox.com>
+2009-08-02 Miguel Sofer <msofer@users.sf.net>
- * generic/tclEnv.c: Another putenv() copy behavior problem
- repaired when compiling on windows and using microsoft's runtime.
- [Bug 736421]
+ * tests/coroutine.test: fix testfile cleanup
-2003-05-13 Jeff Hobbs <jeffh@ActiveState.com>
+2009-08-02 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclIOUtil.c: ensure cd is thread-safe.
- [Bug #710642] (vasiljevic)
+ * generic/tclObj.c (Tcl_RepresentationCmd): Added an unsupported
+ command for reporting the representation of an object. Result string
+ is deliberately a bit obstructive so that people are not encouraged to
+ make code that depends on it; it's a debugging tool only!
-2003-05-13 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * unix/tclUnixFCmd.c (GetOwnerAttribute, SetOwnerAttribute)
+ (GetGroupAttribute, SetGroupAttribute): [Bug 1942222]: Stop calling
+ * unix/tclUnixFile.c (TclpGetUserHome): endpwent() and endgrent();
+ they've been unnecessary for ages.
- * generic/tclEvent.c (Tcl_Finalize): Removed unused variable to
- reduce compiler warnings. [Bug 664745]
+2009-08-02 Jan Nijtmans <nijtmans@users.sf.net>
-2003-05-13 Joe Mistachkin <joe@mistachkin.com>
+ * win/tclWin32Dll.c: Eliminate TclWinResetInterfaceEncodings, since it
+ * win/tclWinInit.c: does exactly the same as TclWinEncodingsCleanup,
+ * win/tclWinInt.h: make sure that tclWinProcs and
+ tclWinTCharEncoding are always set and reset
+ concurrently.
+ * win/tclWinFCmd.c: Correct check for win95
- * generic/tcl.decls: Changed Tcl_JoinThread parameter name from
- * generic/tclDecls.h: "id" to "threadId". [Bug 732477]
- * unix/tclUnixThrd.c:
- * win/tclWinThrd.c:
- * mac/tclMacThrd.c:
-
-2003-05-13 Daniel Steffen <das@users.sourceforge.net>
-
- * generic/tcl.decls:
- * macosx/tclMacOSXBundle.c: added extended version of the
- Tcl_MacOSXOpenBundleResources() API taking an extra version number
- argument: Tcl_MacOSXOpenVersionedBundleResources().
- This is needed to be able to access bundle resources in versioned
- frameworks such as Tcl and Tk, otherwise if multiple versions were
- installed, only the latest version's resources could be accessed.
- [Bug 736774]
-
- * unix/tclUnixInit.c (Tcl_MacOSXGetLibraryPath): use new versioned
- bundle resource API to get tcl runtime library for TCL_VERSION.
- [Bug 736774]
-
- * generic/tclPlatDecls.h:
- * generic/tclStubInit.c: regen.
+2009-07-31 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c: [Bug 2830354]: Corrected failure to
+ * tests/format.test: grow buffer when format spec request
+ large width floating point values. Thanks to Clemens Misch.
- * unix/tclUnixPort.h: worked around the issue of realpath() not
- being thread-safe on Mac OS X by defining NO_REALPATH for threaded
- builds on Mac OS X. [Bug 711232]
+2009-07-26 Donal K. Fellows <dkf@users.sf.net>
-2003-05-12 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * library/auto.tcl (tcl_findLibrary, auto_mkindex):
+ * library/package.tcl (pkg_mkIndex, tclPkgUnknown, MacOSXPkgUnknown):
+ * library/safe.tcl (interpAddToAccessPath, interpDelete, AliasGlob):
+ (AliasSource, AliasLoad, AliasEncoding):
+ * library/tm.tcl (UnknownHandler): Simplify by swapping some [catch]
+ gymnastics for use of [try].
- * tests/cmdAH.test: General clean-up of tests so that all
- tcltest-specific commands are protected by constraints and all
- platforms see the same number of tests. [Bug 736431]
+2009-07-26 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
-2003-05-12 Don Porter <dgp@users.sourceforge.net>
+ * tools/genStubs.tcl: Forced LF translation when generating .h's to
+ avoid spurious diffs when regenerating on a Windows box.
- * generic/tclInterp.c: (AliasObjCmd): Added refCounting of the words
- * tests/interp.test (interp-33.1): of the target of an interp
- alias during its execution. Also added test. [Bug 730244].
+2009-07-26 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclBasic.c (TclInvokeObjectCommand): objv[argc] is no
- longer set to NULL (Tcl_CreateObjCommand docs already say that it
- should not be accessed).
+ * win/Makefile.in: [Bug 2827066]: msys build --enable-symbols broken
+ * win/tcl.m4: And modified the same for unicows.dll, as a
+ * win/configure: preparation for [Enh 2819611].
- * tests/cmdMZ.test: Forgot to import [temporaryDirectory].
+2009-07-25 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclObj.c (tclCmdNameType): Corrected variable use of the
- otherValuePtr or the twoPtrValue.ptr1 fields to store a
- (ResolvedCmdName *) as the internal rep. [Bug 726018].
+ * library/history.tcl (history): Reworked the history mechanism in
+ terms of ensembles, rather than the ad hoc ensemble-lite mechanism
+ used previously.
- * doc/Eval.3: Corrected prototype for Tcl_GlobalEvalObj [Bug 727622].
+2009-07-24 Donal K. Fellows <dkf@users.sf.net>
-2003-05-12 Miguel Sofer <msofer@users.sf.net>
+ * doc/self.n (self class): [Bug 2704302]: Add some text to make it
+ clearer how to get the name of the current object's class.
- * generic/tclVar.c (TclObjLookupVar): [Bug 735335] temporary fix,
- disabling usage of tclNsVarNameType.
- * tests/var.test (var-15.1): test for [Bug 735335]
+2009-07-23 Andreas Kupries <andreask@activestate.com>
-2003-05-10 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tclIO.c (Tcl_GetChannelHandle): [Bug 2826248]: Do not crash
+ * generic/tclPipe.c (FileForRedirect): for getHandleProc == NULL, this
+ is allowed. Provide a nice error message in the bypass area. Updated
+ caller to check the bypass for a mesage. Bug reported by Andy
+ Sonnenburg <andy22286@users.sourceforge.net>
- * win/tclWinSerial.c (SerialCloseProc): correct mem leak on
- closing a Windows serial port [Bug #718002] (schroedter)
+2009-07-23 Joe Mistachkin <joe@mistachkin.com>
- * generic/tclCmdMZ.c (Tcl_StringObjCmd): prevent string repeat
- crash when overflow sizes were given (throws error). [Bug #714106]
+ * generic/tclNotify.c: [Bug 2820349]: Ensure that queued events are
+ freed once processed.
-2003-05-09 Joe Mistachkin <joe@mistachkin.com>
+2009-07-22 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tclThreadAlloc.c (TclFreeAllocCache): Fixed memory leak
- caused by treating cachePtr as a TLS index [Bug 731754].
+ * macosx/tclMacOSXFCmd.c: CONST -> const
+ * generic/tclGetDate.y:
+ * generic/tclDate.c:
+ * generic/tclLiteral.c: (char *) cast in ckfree call
+ * generic/tclPanic.c: [Feature Request 2814786]: remove TclpPanic
+ * generic/tclInt.h
+ * unix/tclUnixPort.h
+ * win/tclWinPort.h
- * win/tclAppInit.c (Tcl_AppInit): Fixed memory leaks caused by not
- freeing the memory allocated by setargv and the async handler created
- by Tcl_AppInit. An exit handler has been created that takes care of
- both leaks. In addition, Tcl_AppInit now uses ckalloc instead of
- Tcl_Alloc to allow for easier leak tracking and to be more consistent
- with the rest of the Tcl core [Bugs 733156, 733221].
+2009-07-22 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
- * tools/encoding/txt2enc.c (main): Fixed memory leak caused by failing
- to free the memory used by the toUnicode array of strings [Bug 733221].
+ * generic/tclEvent.c: [Bug 2001201 again]: Refined the 20090617 patch
+ on [exit] streamlining, so that it now correctly calls thread exit
+ handlers for the calling thread, including <Destroy> bindings in Tk.
-2003-05-09 Miguel Sofer <msofer@users.sf.net>
+2009-07-21 Kevin B. Kenny <kennykb@acm.org>
- * generic/tclCompile.c (TclCompileScript):
- * tests/compile.test (compile-3.5): corrected wrong test and
- behaviour in the earlier fix for [Bug 705406]; Don Porter reported
- this as [Bug 735055], and provided the solution.
+ * library/tzdata/Asia/Dhaka:
+ * library/tzdata/Indian/Mauritius: Olson's tzdata2009k.
-2003-05-09 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+2009-07-20 Donal K. Fellows <dkf@users.sf.net>
- * generic/tclCmdMZ.c (Tcl_ReturnObjCmd): The array of strings
- passed to Tcl_GetIndexFromObj must be NULL terminated. [Bug 735186]
- Thanks to Joe Mistachkin for spotting this.
+ * generic/tclCmdMZ.c (StringIsCmd): Reorganize so that [string is] is
+ more efficient when parsing things that are correct, at a cost of
+ making the empty string test slightly more costly. With this, the cost
+ of doing [string is integer -strict $x] matches [catch {expr {$x+0}}]
+ in the successful case, and greatly outstrips it in the failing case.
-2003-05-07 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+2009-07-19 Donal K. Fellows <dkf@users.sf.net>
- * doc/trace.n: Fixed very strange language in the documentation
- for 'trace add execution'. [Bug 729821]
+ * generic/tclOO.decls, generic/tclOO.c (Tcl_GetObjectName): Expose a
+ function for efficiently returning the current name of an object.
- * generic/tclCmdMZ.c (Tcl_TraceObjCmd): Made error message for
- 'trace info' more consistent with documentation. [Bug 706961]
+2009-07-18 Daniel Steffen <das@users.sourceforge.net>
- * generic/tclDictObj.c (DictInfoCmd): Fixed memory leak caused by
- confusion about string ownership. [Bug 731706]
+ * unix/Makefile.in: Define NDEBUG in optimized (non-symbols) build to
+ disable NRE assert()s and threaded allocator range checks.
-2003-05-05 Don Porter <dgp@users.sourceforge.net>
+2009-07-16 Don Porter <dgp@users.sourceforge.net>
- * generic/tclBasic.c: Implementation of TIP 90, which
- * generic/tclCmdAH.c: extends the [catch] and [return]
- * generic/tclCompCmds.c: commands to enable creation of a
- * generic/tclExecute.c: proc that is a replacement for
- * generic/tclInt.h: [return]. [Patch 531640]
+ * generic/tclBinary.c: Removed unused variables.
+ * generic/tclCmdIL.c:
+ * generic/tclCompile.c:
+ * generic/tclExecute.c:
+ * generic/tclHash.c:
+ * generic/tclIOUtil.c:
+ * generic/tclVar.c:
+
+ * generic/tclBasic.c: Silence compiler warnings about ClientData.
* generic/tclProc.c:
- * generic/tclResult.c:
- * tests/cmdAH.test:
- * tests/cmdMZ.test:
- * tests/error.test:
- * tests/proc-old.test:
- * library/tcltest/tcltest.tcl: The -returnCodes option to [test]
- failed to recognize the symbolic name "ok" for return code 0.
+ * generic/tclScan.c: Typo in ACCEPT_NAN configuration.
+
+ * generic/tclStrToD.c: [Bug 2819200]: Set floating point control
+ register on MIPS systems so that the gradual underflow expected by Tcl
+ is in effect.
+
+2009-07-15 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclInt.h (Namespace): Added machinery to allow
+ * generic/tclNamesp.c (many functions): reduction of memory used
+ * generic/tclResolve.c (BumpCmdRefEpochs): by namespaces. Currently
+ #ifdef'ed out because of compatibility concerns.
-2003-05-05 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclInt.decls: Added four functions for better integration
+ with itcl-ng.
- * generic/tclBasic.c (Tcl_HideCommand): Fixed error message for
- grammar and spelling.
+2009-07-14 Kevin B. Kenny <kennykb@acm.org>
-2003-04-28 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclInt.h (TclNRSwitchObjCmd):
+ * generic/tclBasic.c (builtInCmds):
+ * generic/tclCmdMZ.c (Tcl_SwitchObjCmd):
+ * tests/switch.test (switch-15.1):
+ [Bug 2821401]: Make non-bytecoded [switch] command aware of NRE.
- * generic/tclDictObj.c (DictIncrCmd): Updated to reflect the
- behaviour with wide increments of the normal [incr] command.
- * generic/tclInt.decls: Added TclIncrWideVar2 to internal stub
- table and cleaned up.
- * tests/incr.test (incr-3.*):
- * generic/tclVar.c (TclIncrWideVar2, TclPtrIncrWideVar):
- * generic/tclExecute.c (TclExecuteByteCode):
- * generic/tclCmdIL.c (Tcl_IncrObjCmd): Make [incr] work when
- trying to increment by wide values. [Bug 728838]
+2009-07-13 Andreas Kupries <andreask@activestate.com>
- * generic/tclCompCmds.c (TclCompileSwitchCmd): Default mode of
- operation of [switch] is exact matching. [Bug 727563]
+ * generic/tclCompile.c (TclInitCompileEnv, EnterCmdWordIndex)
+ (TclCleanupByteCode, TclCompileScript):
+ * generic/tclExecute.c (TclCompileObj, TclExecuteByteCode):
+ * tclCompile.h (ExtCmdLoc):
+ * tclInt.h (ExtIndex, CFWordBC, CmdFrame):
+ * tclBasic.c (DeleteInterpProc, TclArgumentBCEnter)
+ (TclArgumentBCRelease, TclArgumentGet, SAVE_CONTEXT)
+ (RESTORE_CONTEXT, NRCoroutineExitCallback, TclNRCoroutineObjCmd):
+ * generic/tclCmdAH.c (TclNRForObjCmd, TclNRForIterCallback,
+ (ForNextCallback):
+ * generic/tclCmdMZ.c (TclNRWhileObjCmd):
-2003-04-25 Don Porter <dgp@users.sourceforge.net>
+ Extended the bytecode compiler initialization to recognize the
+ compilation of whole files (NRE enabled 'source' command) and switch
+ to the counting of absolute lines in that case.
- * generic/tclBasic.c: Tcl_EvalObjv() failed to honor the
- TCL_EVAL_GLOBAL flag when resolving command names. Tcl_EvalEx
- passed a string rep including leading whitespace and comments
- to TclEvalObjvInternal().
+ Further extended the bytecode compiler to track the start line in the
+ generated information, and modified the bytecode execution to
+ recompile an object if the location as per the calling context doesn't
+ match the location saved in the bytecode. This part could be optimized
+ more by using more memory to keep all possibilities which occur
+ around, or by just adjusting the location information instead of a
+ total recompile.
-2003-04-25 Andreas Kupries <andreask@activestate.com>
+ Reworked the handling of literal command arguments in bytecode to be
+ saved (compiler) and used (execution) per command (See the
+ TCL_INVOKE_STK* instructions), and not per the whole bytecode. This,
+ and the previous change remove the problems with location data caused
+ by literal sharing (across whole files, but also proc bodies).
+ Simplified the associated datastructures (ExtIndex is gone, as is the
+ function EnterCmdWordIndex).
- * win/tclWinThrd.c: Applied SF patch #727271. This patch changes
- the code to catch any errors returned by the windows functions
- handling TLS ASAP instead of waiting to get some mysterious
- crash later on due to bogus pointers. Patch provided by Joe
- Mistachkin.
+ The last change causes the hashtable 'lineLABCPtr' to be state which
+ has to be kept per coroutine, like the CmdFrame stack. Reworked the
+ coroutine support code to create, delete and switch the information as
+ needed. Further reworked the tailcall command as well, it has to pop
+ its own arguments when run in a bytecode context to keep a proper
+ stack in 'lineLABCPtr'.
- This is a stop-gap measure to deal with the low number of ?TLS
- slots provided by some of the variants of Windows (60-80).
+ Fixed the mishandling of line information in the NRE-enabled 'for' and
+ 'while' commands introduced when both were made to share their
+ iteration callbacks without taking into account that the loop body is
+ found in different words of the command. Introduced a separate data
+ structure to hold all the callback information, as we went over the
+ limit of 4 direct client-data values for NRE callbacks.
-2003-04-24 Vince Darley <vincentdarley@users.sourceforge.net>
+ The above fixes [Bug 1605269].
- * generic/tclFileName.c: fix to bug reported privately by
- Jeff where, for example, 'glob -path {[tcl]} *' gets confused
- by the leading special character (which is escaped internally),
- and instead lists files in '/'. Bug only occurs on Windows
- where '\' is also a directory separator.
- * tests/fileName.test: added test for the above bug.
-
-2003-04-22 Andreas Kupries <andreask@activestate.com>
+2009-07-12 Donal K. Fellows <dkf@users.sf.net>
- * The changes below fix SF bugs [593810], and [718045].
+ * generic/tclCmdMZ.c (StringIndexCmd, StringEqualCmd, StringCmpCmd):
+ * generic/tclExecute.c (TclExecuteByteCode): [Bug 2637173]: Factor out
+ * generic/tclInt.h (TclIsPureByteArray): the code to determine if
+ * generic/tclUtil.c (TclStringMatchObj): it is safe to work with
+ byte arrays directly, so that we get the check correct _once_.
- * generic/tclIO.c (Tcl_CutChannel, Tcl_SpliceChannel):
- Invoke TclpCutSockChannel and TclpSpliceSockChannel.
+ * generic/tclOOCall.c (TclOOGetCallContext): [Bug 1895546]: Changed
+ * generic/tclOO.c (TclOOObjectCmdCore): the way that the cache is
+ managed so that when itcl does cunning things, those cunning things
+ can be cached properly.
- * generic/tclInt.h: Declare TclpCutSockChannel and
- TclpSpliceSockChannel.
+2009-07-11 Donal K. Fellows <dkf@users.sf.net>
- * unix/tclUnixSock.c (TclpCutSockChannel, TclpSpliceSockChannel):
- Dummy functions, on unix the sockets are _not_ handled
- specially.
+ * doc/vwait.n: Substantially increased the discussion of issues and
+ work-arounds relating to nested vwaits, following discussion on the
+ tcl-core mailing list on the topic.
- * mac/tclMacSock.c (TclpCutSockChannel, TclpSpliceSockChannel):
- * win/tclWinSock.c (TclpCutSockChannel, TclpSpliceSockChannel):
- New functions to handle socket specific cut/splice operations:
- auto-initi of socket system for thread on splice, management of
- the module internal per-thread list of sockets, management of
- association of sockets with HWNDs for event notification.
+2009-07-10 Pat Thoyts <patthoyts@users.sourceforge.net>
- * win/tclWinSock.c (NewSocketInfo): Extended initialization
- assignments to cover all items of the structure. During
- debugging of the new code mentioned above I found that two
- fileds could contain bogus data.
+ * tests/zlib.test: ZlibTransformClose may be called with a NULL
+ * generic/tclZlib.c: interpreter during finalization and
+ Tcl_SetChannelError requires a list. Added some tests to ensure error
+ propagation from the zlib library to the interp.
- * win/tclWinFile.c: Added #undef HAVE_NO_FINDEX_ENUMS before
- definition because when compiling in debug mode the compiler
- complains about a redefinition, and this warning is also treated
- as an error.
+2009-07-09 Pat Thoyts <patthoyts@users.sourceforge.net>
-2003-04-21 Don Porter <dgp@users.sourceforge.net>
+ * tests/zlib.test: [Bug 2818131]: Added tests and fixed a typo that
+ broke [zlib push] for deflate format.
- * library/tcltest/tcltest.tcl: When the return code of a test does
- not meet expectations, report that as the reason for test failure,
- and do not attempt to check the test result for correctness.
- [Bug 725253]
+2009-07-09 Donal K. Fellows <dkf@users.sf.net>
-2003-04-18 Jeff Hobbs <jeffh@ActiveState.com>
+ * compat/mkstemp.c (mkstemp): [Bug 2819227]: Use rand() for random
+ numbers as it is more portable.
- * win/tclWinInt.h (VER_PLATFORM_WIN32_CE): conditionally define.
- * win/tclWinInit.c: recognize Windows CE as a Win platform.
- This just recognizes CE - full support will come later.
+2009-07-05 Donal K. Fellows <dkf@users.sf.net>
- * win/configure: regen
- * win/configure.in (SHELL): force it to /bin/sh as autoconf 2.5x
- uses /bin/bash, which can fail to find exes in the path (ie: lib).
+ * generic/tclZlib.c (ZlibTransformWatch): Correct the handling of
+ events so that channel transforms work with things like an asynch
+ [chan copy]. Problem reported by Pat Thoyts.
- * generic/tclExecute.c (ExprCallMathFunc): remove incorrect
- extraneous cast from Tcl_WideAsDouble.
-
-2003-04-18 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+2009-07-01 Pat Thoyts <patthoyts@users.sourceforge.net>
- * doc/open.n: Moved serial port options from [fconfigure]
- * doc/fconfigure.n: to [open] as it is up to the creator of a
- channel to describe the channel's special
- config options. [Bug 679010]
-
-2003-04-16 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tcl.h: Made changes so that the "wideInt" Tcl_ObjType
- * generic/tclObj.c: is defined on all platforms, even those where
- * generic/tclPort.h: TCL_WIDE_INT_IS_LONG is defined. Also made
- the Tcl_Value struct have a wideValue field on all platforms. This is
- a ***POTENTIAL INCOMPATIBILITY*** for TCL_WIDE_INT_IS_LONG platforms
- because that struct changes size. This is the same TIP 72
- incompatibility that was seen on other platforms at the 8.4.0 release,
- when this change should have happened as well. [Bug 713562]
+ * win/tclWinInt.h: [Bug 2806622]: Handle the GetUserName API call
+ * win/tclWin32Dll.c: via the tclWinProcs indirection structure. This
+ * win/tclWinInit.c: fixes a problem obtaining the username when the
+ USERNAME environment variable is unset.
- * generic/tclInt.h: New internal macros TclGetWide() and
- TclGetLongFromWide() to deal with both forms of the "wideInt"
- Tcl_ObjType, so that conditional TCL_WIDE_INT_IS_LONG code
- is confined to the header file.
-
- * generic/tclCmdAH.c: Replaced most coding that was conditional
- * generic/tclCmdIL.c: on TCL_WIDE_INT_IS_LONG with code that
- * generic/tclExecute.c: works across platforms, sometimes using
- * generic/tclTest.c: the new macros above to do it.
- * generic/tclUtil.c:
- * generic/tclVar.c:
+2009-06-30 Daniel Steffen <das@users.sourceforge.net>
-2003-04-17 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclInt.h: Add assert macros for clang static
+ * generic/tclPanic.c: analyzer and redefine Tcl_Panic to
+ * generic/tclStubInit.c: assert after panic in clang PURIFY
+ builds.
- * doc/socket.n: Added a paragraph to remind people to specify
- their encodings when using sockets. [Bug 630621]
+ * generic/tclCmdIL.c: Add clang assert for false positive
+ from static analyzer.
-2003-04-16 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+2009-06-26 Daniel Steffen <das@users.sourceforge.net>
- * doc/CrtMathFnc.3: Functions also have to deal with wide ints,
- but this was not documented. [Bug 709720]
+ * macosx/Tcl-Common.xcconfig: Update projects for Xcode 3.1 and
+ * macosx/Tcl.xcode/*: 3.2, standardize on gcc 4.2, remove
+ * macosx/Tcl.xcodeproj/*: obsolete configurations and pre-Xcode
+ * macosx/Tcl.pbproj/* (removed): project.
-2003-04-16 Vince Darley <vincentdarley@users.sourceforge.net>
+ * macosx/README: Update project docs, cleanup.
- * generic/tclPathObj.c: removed undesired 'static' for function
- which is now shared (previously it was duplicated).
-
-2003-04-15 Joe English <jenglish@users.sourceforge.net>
- * doc/namespace.n: added example section "SCOPED SCRIPTS",
- supplied by Kevin Kenny. (Fixes [Bug 219183])
+ * unix/Makefile.in: Update dist target for project
+ changes.
-2003-04-15 Kevin Kenny <kennykb@acm.org>
+2009-06-24 Donal K. Fellows <dkf@users.sf.net>
- * makefile.vc: Updated makefile.vc to conform with Mo DeJong's
- changes to Makefile.in and tclWinPipe.c on 2003-04-14. Now passes
- TCL_PIPE_DLL in place of TCL_DBGX.
- * win/tclWinTime.c: Corrected use of types to make compilation
- compatible with VC++5.
-
-2003-04-15 Vince Darley <vincentdarley@users.sourceforge.net>
+ * tests/oo.test (oo-19.1): [Bug 2811598]: Make more resilient.
- * generic/tclIOUtil.c: finished check-in from yesterday,
- removing duplicate function definition.
-
-2003-04-14 Don Porter <dgp@users.sourceforge.net>
+2009-06-24 Pat Thoyts <patthoyts@users.sourceforge.net>
- * generic/tclClock.c: Corrected compiler warnings.
- * generic/tclTest.c:
+ * tests/http11.test: [Bug 2811492]: Clean up procs after testing.
-2003-04-14 Mo DeJong <mdejong@users.sourceforge.net>
+2009-06-18 Donal K. Fellows <dkf@users.sf.net>
- * win/Makefile.in: Don't define TCL_DBGX
- symbol for every compile. Instead, define
- TCL_PIPE_DLL only when compiling tclWinPipe.c.
- This will break other build systems, so
- they will need to remove the TCL_DBGX define
- and replace it with a define for TCL_PIPE_DLL.
- * win/tclWinPipe.c (TclpCreateProcess):
- Remove PREFIX_IDENT and DEBUG_IDENT from
- top of file. Use TCL_PIPE_DLL passed in
- from build env instead of trying to construct
- the dll name from already defined symbols.
- This approach is more flexible and better
- in the long run.
-
-2003-04-14 Kevin Kenny <kennykb@acm.org>
-
- * win/tclWinFile.c: added conditionals to restore compilation on
- VC++6, which was broken by recent changes.
-
-2003-04-14 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * generic/tclIOUtil.c:
- * generic/tclPathObj.c:
- * generic/tclFileSystem.h: overlooked one function which
- was duplicated, so this is now shared between modules.
- * win/tclWinFile.c: allow this file to compile with VC++ 5.2 again
- since Mingw build fixes broke that.
-
-2003-04-13 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/configure: Regen.
- * win/configure.in: Add check for FINDEX_INFO_LEVELS
- from winbase.h, known to be a problem in VC++ 5.2.
- Define HAVE_NO_FINDEX_ENUMS if the define does not
- exist.
- * win/tclWinFile.c: Put declarations for
- FINDEX_INFO_LEVELS and FINDEX_SEARCH_OPS inside
- a check for HAVE_NO_FINDEX_ENUMS so that these are
- not declared twice. This fixes the Mingw build.
- * win/tclWinTime.c: Rework the init of timeInfo
- so that the number or initializers matches the
- declaration. This was broken under Mingw. Add
- cast to avoid compile warning when calling the
- AccumulateSample function.
-
-2003-04-12 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/Makefile.in (GENERIC_OBJS): add missing tclPathObj.c
-
-2003-04-12 Kevin Kenny <kennykb@acm.org>
-
- * doc/clock.n:
- * generic/tclClock.c (Tcl_ClockObjCmd):
- * tests/clock.test: Implementation of TIP #124. Also renumbered
- test cases to avoid duplicates [Bug 710310].
- * tests/winTime.test:
- * win/tclWinTest.c (TestwinclockCmd, TestwinsleepCmd):
- * win/tclWinTime.c (Tcl_WinTime, UpdateTimeEachSecond,
- ResetCounterSamples, AccumulateSample,
- SAMPLES, TimeInfo): Made substantial changes
- to the phase-locked loop (replaced an IIR filter with an FIR one)
- in a quest for improved loop stability (Bug not logged at SF, but
- cited in private communication from Jeff Hobbs).
-
-2003-04-11 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclCmdMZ.c (Tcl_StringObjCmd,STR_IS_INT): Corrected
- inconsistent results of [string is integer] observed on systems
- where sizeof(long) != sizeof(int). [Bug 718878]
- * tests/string.test: Added tests for Bug 718878.
- * doc/string.n: Clarified that [string is integer] accepts
- 32-bit integers.
-
-2003-04-11 Andreas Kupries <andreask@activestate.com>
-
- * generic/tclIO.c (UpdateInterest): When dropping interest in
- TCL_READABLE now dropping interest in TCL_EXCEPTION too. This
- fixes a bug where Expect detects eof on a file prematurely on
- solaris 2.6 and higher. A much more complete explanation is in
- the code itself (40 lines of comments for a one-line change :)
-
-2003-04-11 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * tests/cmdAH.test: fix test suite problem if /home is a symlink
- [Bug #703264]
- * generic/tclIOUtil.c: fix bad error message with 'cd ""'
- [Bug #704917]
- * win/tclWinFile.c:
- * win/tclWin32Dll.c:
- * win/tclWinInt.h: allow Tcl to differentiate between reparse
- points which are symlinks and mounted volumes, and correctly
- handle the latter. This involves some elaborate code to find
- the actual drive letter (if possible) corresponding to a mounted
- volume. [Bug #697862]
- * tests/fileSystem.test: add constraints to stop tests running
- in ordinary tcl interpreter. [Bug #705675]
+ * generic/tclCkalloc.c (MemoryCmd): [Bug 988703]:
+ * generic/tclObj.c (ObjData, TclFinalizeThreadObjects): Add mechanism
+ for discovering what Tcl_Objs are allocated when built for memory
+ debugging. Developed by Joe Mistachkin.
- * generic/tclIOUtil.c:
- * generic/tclPathObj.c: (new file)
- * generic/tclFileSystem.h: (new file)
- * win/makefile.vc:
- Split path object handling out of the virtual filesystem layer,
- into tclPathObj.c. This refactoring cleans up the internal
- filesystem code, and will make any future optimisations and
- forthcoming better thread-safety much easier.
-
- * generic/tclTest.c:
- * tests/reg.test: added some 'knownBug' tests for problems in
- Tcl's regexp code with the TCL_REG_CAN_MATCH flag (see Bug #703709).
- Code too impenetrable to fix right now, but a fix is needed
- for tip113 to work correctly.
-
- * tests/fCmd.test
- * win/tclWinFile.c: added some filesystem optimisation to the
- 'glob' implementation, and some new tests.
-
- * generic/tclCmdMZ.c: fix typo in comment
-
- * tests/winFile.test:
- * tests/ioUtil.test:
- * tests/unixFCmd.test: renumbered tests with duplicate numbers.
- (Bug #710361)
-
-2003-04-10 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * doc/binary.n: Fixed typo in [binary format w] desc. [Bug 718543]
-
-2003-04-08 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tclCmdAH.c (Tcl_ErrorObjCmd): Strings are only empty if
- they have zero length, not if their first byte is zero, so fix
- test guarding Tcl_AddObjErrorInfo to take this into account. [Bug
- reported by Don Porter; no bug-id.]
-
-2003-04-07 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclCompCmds.c (TclCompileIfCmd): Corrected string limits of
- arguments interpolated in error messages. [Bug 711371]
-
- * generic/tclCmdMZ.c (TraceExecutionProc): Added missing
- Tcl_DiscardResult() call to avoid memory leak.
-
-2003-04-07 Donal K. Fellows <zzcgudf@ernie.mvc.mcc.ac.uk>
-
- * generic/tclDictObj.c (Tcl_DictObjCmd): Stopped compilers from
- moaning about switch fall-through. [Bug 716327]
- (DictFilterCmd): Yet more warning killing, this time reported by
- Miguel Sofer by private chat.
-
-2003-04-07 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * tests/dict.test (dict-2.6):
- * generic/tclDictObj.c (Tcl_NewDictObj, Tcl_DbNewDictObj): Oops!
- Failed to fully initialise the Dict structure.
- (DictIncrCmd): Moved valueAlreadyInDictionary label to stop
- compiler complaints. [Bug 715751]
-
- * generic/tclDictObj.c (DictIncrCmd): Followed style in the rest of
- the core by commenting out wide-specific operations on platforms
- where wides are longs, and used longs more thoroughly than ints
- through [dict incr] anyway to forestall further bugs.
- * generic/tclObj.c: Made sure there's always a tclWideIntType
- implementation available, not that it is always useful. [Bug 713562]
-
-2003-04-05 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tclDictObj.c: Removed commented out notes on
- declarations to be moved to elsewhere in the Tcl core.
-
- * generic/tclInt.h: Final stages of plumbing in.
- * generic/tclBasic.c:
- * generic/tclObj.c (TclInitObjSubsystem):
-
- * unix/Makefile.in, win/Makefile.in, win/makefile.[bv]c: Build support.
- * generic/tcl.decls: Added dict public API to stubs table.
- * generic/tcl.h (Tcl_DictSearch): Added declaration of structure
- to allow user code to iterate over dictionaries.
-
- * doc/DictObj.3: New files containing dictionary
- * doc/dict.n: implementation, documentation and tests
- * generic/tclDictObj.c: as mandated by TIP #111.
- * tests/dict.test:
-
-2003-04-03 Mo DeJong <mdejong@users.sourceforge.net>
+2009-06-17 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
- * unix/configure:
- * unix/tcl.m4 (SC_CONFIG_CFLAGS): Don't set
- TCL_LIBS if it is already set to support
- use of TCL_LIBS var from tclConfig.sh in
- the Tk configure script.
-
-2003-04-03 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/Makefile.in: Don't subst MATH_LIBS,
- LIBS, and DL_LIBS separately. Instead, just
- subst TCL_LIBS since it includes the others.
- * unix/configure: Regen.
- * unix/tcl.m4 (SC_CONFIG_CFLAGS, SC_TCL_LINK_LIBS):
- Set and subst TCL_LIBS in SC_CONFIG_CFLAGS instead
- of SC_TCL_LINK_LIBS. Don't subst MATH_LIBS
- since it is now covered by TCL_LIBS.
- * unix/tclConfig.sh.in: Use TCL_LIBS instead
- of DL_LIBS, LIBS, and MATH_LIBS.
- * unix/dltest/Makefile.in: Ditto.
-
-2003-04-03 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclCompCmds.c (TclCompileReturnCmd): Now that [return]
- compiles to INST_RETURN, it is safe to compile even outside a proc.
-
-2003-04-02 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/configure: Regen.
- * win/configure.in: Set stub lib flag based
- on new LIBFLAGSUFFIX variable.
- * win/tcl.m4 (SC_CONFIG_CFLAGS): Set new
- LIBFLAGSUFFIX that works like LIBSUFFIX,
- it is used when creating library names.
- The previous implementation would generate
- -ltclstub85 instead of -ltclstub85s when
- configured with --disable-shared.
-
-2003-04-02 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclParse.c (TclSubstTokens): Moved declaration of
- utfCharBytes to beginning of procedure so that it does not go
- out of scope (get free()d) while append is still pointing to it.
- [Bugs 703167, 713754]
-
-2003-04-01 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/configure: Regen.
- * unix/tcl.m4 (SC_CONFIG_CFLAGS): Check for
- inet_ntoa in -lbind inside the BeOS block since
- doing it later broke the build under SuSE 7.3.
- [Bug 713128]
-
-2003-04-01 Don Porter <dgp@users.sourceforge.net>
-
- * tests/README: Direct [source] of *.test files is no longer
- recommended. The tests/*.test files should only be evaluated under
- the control of the [runAllTests] command in tests/all.tcl.
-
- * generic/tclExecute.c (INST_RETURN): Bytecompiled [return] failed
- to reset iPtr->returnCode, causing tests parse-18.17 and parse-18.21
- to fail strangely.
- * tests/parse.test (parse-18.21): Corrected now functioning test.
- Added further coverage tests.
-
-2003-03-31 Don Porter <dgp@users.sourceforge.net>
-
- * tests/parse.test (parse-18.*): Coverage tests for the new
- implementation of Tcl_SubstObj(). Note that tests parse-18.17 and
- parse-18.21 demonstrate some bugs left to fix in the current code.
-
-2003-03-27 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/configure: Regen.
- * unix/tcl.m4 (SC_CONFIG_CFLAGS): Use -Wl,--export-dynamic
- instead of -rdynamic for LDFLAGS. The -rdynamic is
- not documented so it seems better to pass the
- --export-dynamic flag to the linker.
- [Patch 573395]
-
-2003-03-27 Miguel Sofer <msofer@users.sf.net>
-
- * tests/encoding.test:
- * tests/proc-old.test:
- * tests/set-old.test: Altered test numers to eliminate duplicates,
- [Bugs 710313, 710320, 710352]
-
-2003-03-27 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * tests/parseOld.test: Altered test numers to eliminate duplicates.
- * tests/parse.test: [Bugs 710365, 710369]
- * tests/expr-old.test:
- * tests/expr.test:
+ * generic/tclEvent.c: Applied a patch by George Peter Staplin
+ drastically reducing the ambition of [exit] wrt finalization, and
+ thus solving many multi-thread teardown issues. [Bugs 2001201,
+ 486399, and possibly 597575, 990457, 1437595, 2750491]
- * tests/utf.test: Altered test numers to eliminate duplicates.
- * tests/trace.test: [Bugs 710322, 710327, 710349, 710363]
- * tests/lsearch.test:
- * tests/list.test:
- * tests/info.test:
- * tests/incr-old.test:
- * tests/if-old.test:
- * tests/format.test:
- * tests/foreach.test:
+2009-06-15 Don Porter <dgp@users.sourceforge.net>
-2003-03-26 Mo DeJong <mdejong@users.sourceforge.net>
+ * generic/tclStringObj.c: sprintf() -> Tcl_ObjPrintf() conversion.
- * unix/configure: Regen.
- * unix/tcl.m4 (SC_CONFIG_CFLAGS, SC_TCL_LINK_LIBS):
- Add BeOS system to SC_CONFIG_CFLAGS. Check for
- inet_ntoa in -lbind, needed for BeOS.
+2009-06-15 Reinhard Max <max@suse.de>
-2003-03-26 Don Porter <dgp@users.sourceforge.net>
+ * unix/tclUnixPort.h: Move all socket-related code from tclUnixChan.c
+ * unix/tclUnixChan.c: to tclUnixSock.c.
+ * unix/tclUnixSock.c:
- * doc/tcltest.n:
- * library/tcltest/tcltest.tcl: Added reporting during
- [configure -debug 1] operations to warn about multiple uses of
- the same test name. [FR 576693]
+2009-06-15 Donal K. Fellows <dkf@users.sf.net>
- * tests/msgcat.test (msgcat-2.2.1): changed test name to avoid
- duplication. [Bug 710356]
+ * tools/tcltk-man2html.tcl (make-man-pages): [Patch 557486]: Apply
+ last remaining meaningful part of this patch, a clean up of some
+ closing tags.
- * unix/dltest/pkg?.c: Changed all Tcl_InitStubs calls to pass
- argument exact = 0, so that rebuilds are not required when Tcl
- bumps to a new version. [Bug 701926]
+2009-06-13 Don Porter <dgp@users.sourceforge.net>
-2003-03-24 Miguel Sofer <msofer@users.sf.net>
+ * generic/tclCompile.c: [Bug 2802881]: The value stashed in
+ * generic/tclProc.c: iPtr->compiledProcPtr when compiling a proc
+ * tests/execute.test: survives too long. We only need it there long
+ enough for the right TclInitCompileEnv() call to re-stash it into
+ envPtr->procPtr. Once that is done, the CompileEnv controls. If we
+ let the value of iPtr->compiledProcPtr linger, though, then any other
+ bytecode compile operation that takes place will also have its
+ CompileEnv initialized with it, and that's not correct. The value is
+ meant to control the compile of the proc body only, not other compile
+ tasks that happen along. Thanks to Carlos Tasada for discovering and
+ reporting the problem.
- * generic/tclVar.c:
- * tests/var.test: fixing ObjMakeUpvar's lookup algorithm for the
- created local variable, bugs #631741 (Chris Darroch) and #696893
- (David Hilker).
-
-2003-03-24 Pat Thoyts <patthoyts@users.sourceforge.net>
-
- * library/dde/pkgIndex.tcl: bumped version to 1.2.2 in tclWinDde.c,
- now adding here too.
-
-2003-03-22 Kevin Kenny <kennykb@acm.org>
-
- * library/dde/pkgIndex.tcl:
- * library/reg/pkgIndex.tcl: Fixed a bug where [package require dde]
- or [package require registry] attempted to load the release version
- of the DLL into a debug build. [Bug 708218] Thanks to Joe Mistachkin
- for the patch.
- * win/makefile.vc: Added quoting around the script name in the
- 'test' target; Joe Mistachkin insists that he has a configuration
- that fails to launch tcltest without it, and it appears harmless
- otherwise.
-
-2003-03-22 Pat Thoyts <patthoyts@users.sourceforge.net>
-
- * win/tclWinDde.c: Make dde services conform the the documentation
- such that giving only a topic name really returns all services
- with that topic. [Bug 219155]
- Prevent hangup caused by dde server applications failing to process
- messages [Bug 707822]
- * tests/winDde.test: Corrected labels and added a test for search
- by topic name.
-
-2003-03-20 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclInt.h (tclOriginalNotifier):
- * generic/tclStubInit.c (tclOriginalNotifier):
- * mac/tclMacNotify.c (Tcl_SetTimer,Tcl_WaitForEvent):
- * unix/tclUnixNotfy.c (Tcl_SetTimer,Tcl_WaitForEvent,
- Tcl_CreateFileHandler,Tcl_DeleteFileHandler):
- * win/tclWinNotify.c (Tcl_SetTimer,Tcl_WaitForEvent): Some linkers
- apparently use a different representation for a pointer to a function
- within the same compilation unit and a pointer to a function in a
- different compilation unit. This causes checks like those in the
- original notifier procedures to fall into infinite loops. The fix
- is to store pointers to the original notifier procedures in a struct
- defined in the same compilation unit as the stubs tables, and compare
- against those values. [Bug 707174]
-
- * generic/tclInt.h: Removed definition of ParseValue struct that
- is no longer used.
-
-2003-03-19 Miguel Sofer <msofer@users.sf.net>
+2009-06-10 Don Porter <dgp@users.sourceforge.net>
- * generic/tclCompile.c:
- * tests/compile.test: bad command count on TCL_OUT_LINE_COMPILE
- [Bug 705406] (Don Porter).
+ * generic/tclStringObj.c: [Bug 2801413]: Revised [format] to not
+ overflow the integer calculations computing the length of the %ll
+ formats of really big integers. Also added protections so that
+ [format]s that would produce results overflowing the maximum string
+ length of Tcl values throw a normal Tcl error instead of a panic.
+
+ * generic/tclStringObj.c: [Bug 2803109]: Corrected failures to
+ deal with the "pure unicode" representation of an empty string.
+ Thanks to Julian Noble for reporting the problem.
+
+2006-06-09 Kevin B. Kenny <kennykb@acm.org>
+
+ * generic/tclGetDate.y: Fixed a thread safety bug in the generated
+ * library/clock.tcl: Bison parser (needed a %pure-parser
+ * tests/clock.test: declaration to avoid static variables).
+ Discovered that the %pure-parser declaration
+ allowed for returning the Bison error message
+ to the Tcl caller in the event of a syntax
+ error, so did so.
+ * generic/tclDate.c: bison 2.3
+
+2006-06-08 Kevin B. Kenny <kennykb@acm.org>
+
+ * library/tzdata/Asia/Dhaka: New DST rule for Bangladesh. (Olson's
+ tzdata2009i.)
+
+2009-06-08 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/copy.n: Fix error in example spotted by Venkat Iyer.
+
+2009-06-02 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclExecute.c: Replace dynamically-initialized table with a
+ table of static constants in the lookup table for exponent operator
+ computations that fit in a 64 bit integer result.
+
+ * generic/tclExecute.c: [Bug 2798543]: Corrected implementations and
+ selection logic of the INST_EXPON instruction.
+
+2009-06-01 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/expr.test: [Bug 2798543]: Added many tests demonstrating
+ the broken cases.
+
+009-05-30 Kevin B. Kenny <kennykb@acm.org>
+
+ * library/tzdata/Africa/Cairo:
+ * library/tzdata/Asia/Amman: Olson's tzdata2009h.
+
+2009-05-29 Andreas Kupries <andreask@activestate.com>
+
+ * library/platform/platform.tcl: Fixed handling of cpu ia64,
+ * library/platform/pkgIndex.tcl: taking ia64_32 into account
+ * unix/Makefile.in: now. Bumped version to 1.0.5. Updated the
+ * win/Makefile.in: installation commands.
+
+2009-05-26 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * doc/expr.n: Fixed documentation of the right-associativity of
+ the ** operator. (spotted by kbk)
+
+2009-05-14 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOOInfo.c (InfoObjectNsCmd): Added introspection mechanism
+ for finding out what an object's namespace is. Experience suggests
+ that it is just too useful to be able to do without it.
+
+2009-05-12 Donal K. Fellows <dkf@users.sf.net>
-2003-03-19 Don Porter <dgp@users.sourceforge.net>
+ * doc/vwait.n: Added more words to make it clear just how bad it is to
+ nest [vwait]s.
- * library/auto.tcl: Replaced [regexp] and [regsub] with
- * library/history.tcl: [string map] where possible. Thanks
- * library/ldAout.tcl: to David Welton. [Bugs 667456,667558]
- * library/safe.tcl: Bumped to http 2.4.3, opt 0.4.5, and
- * library/http/http.tcl: tcltest 2.2.3.
+ * compat/mkstemp.c: Add more headers to make this file build on IRIX
+ 6.5. Thanks to Larry McVoy for this.
+
+2009-05-08 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOO.c (TclNRNewObjectInstance): [Bug 2414858]: Add a
+ * generic/tclBasic.c (TclPushTailcallPoint): marker to the stack of
+ NRE callbacks at the right point so that tailcall works correctly in a
+ constructor.
+
+ * tests/exec.test (cat): [Bug 2788468]: Adjust the scripted version of
+ cat so that it does not perform transformations on the data it is
+ working with, making it more like the standard Unix 'cat' program.
+
+2009-05-07 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclObj.c (Tcl_GetCommandFromObj): [Bug 2785893]: Ensure that
+ a command in a deleted namespace can't be found through a cached name.
+
+ * generic/tclBasic.c: Let coroutines start with a much smaller
+ * generic/tclCompile.h: stack: 200 words (previously was 2000, the
+ * generic/tclExecute.c: same as interps).
+
+2009-05-07 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/env.test (printenvScript, env-4.3, env-4.5): [Bug 1513659]:
+ * tests/exec.test (exec-2.6): These tests had subtle dependencies on
+ being on platforms that were either ISO 8859-1 or UTF-8. Stabilized
+ the results by forcing the encoding.
+
+2009-05-06 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCmdMZ.c: [Bug 2582327]: Improve overflow error message
+ from [string repeat].
+
+ * tests/interp.test: interp-20.50 test for Bug 2486550.
+
+2009-05-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOO.c (InitFoundation, AllocObject, AllocClass):
+ * generic/tclOODefineCmds.c (InitDefineContext): Make sure that when
+ support namespaces are deleted, nothing bad can subsequently happen.
+ Issue spotted by Don Porter.
+
+2009-05-03 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/Tcl.n: [Bug 2538432]: Clarified exact treatment of ${arr(idx)}
+ form of variable substitution. This is not a change of behavior, just
+ an improved description of the current situation.
+
+2009-04-30 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclBasic.c (TclObjInvoke): [Bug 2486550]: Make sure that a
+ null objProc is not used, use Tcl_NRCallObjProc instead.
+
+2009-05-01 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * win/configure.in Fix 64-bit detection for zlib on Win64
+ * win/configure (regenerated)
+
+2009-04-28 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * unix/tcl.m4, unix/configure (SC_CONFIG_CFLAGS): harden the check to
+ add _r to CC on AIX with threads.
+
+2009-04-27 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/concat.n (EXAMPLES): [Bug 2780680]: Rewrote so that the spacing
+ of result messages is correct. (The exact way they were wrong was
+ different when rendered through groff or as HTML, but it was still
+ wrong both ways.)
+
+2009-04-27 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclIndexObj.c: Reset internal INTERP_ALTERNATE_WRONG_ARGS
+ * generic/tclIOCmd.c: flag inside the Tcl_WrongNumArgs function,
+ so the caller no longer has to do the reset.
+
+2009-04-24 Stuart Cassoff <stwo@users.sf.net>
+
+ * unix/Makefile.in: [Patch 2769530]: Don't chmod/exec installManPage.
+
+2009-04-19 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+ * library/http/http.tcl: [Bug 2715421]: Removed spurious newline added
+ * tests/http11.test: after POST and added tests to detect excess
+ * tests/httpd11.tcl: bytes being POSTed.
* library/http/pkgIndex.tcl:
- * library/opt/optparse.tcl:
- * library/opt/pkgIndex.tcl:
- * library/tcltest/tcltest.tcl:
- * library/tcltest/pkgIndex.tcl:
- * tools/genStubs.tcl:
- * tools/tcltk-man2html.tcl:
- * unix/mkLinks.tcl:
-
- * doc/Eval.3 (Tcl_EvalObjEx): Corrected CONST and
- * doc/ParseCmd.3 (Tcl_EvalTokensStandard): return type errors
- in documentation. [Bug 683994]
-
- * generic/tclCompCmds.c (TclCompileReturnCmd): Alternative fix for
- * generic/tclCompile.c (INST_RETURN): [Bug 633204] that uses a new
- * generic/tclCompile.h (INST_RETURN): bytecode INST_RETURN to
- * generic/tclExecute.c (INST_RETURN): properly bytecode the
- [return] command to something that returns TCL_RETURN.
-
-2003-03-18 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/configure: Regen.
- * win/configure.in: Don't run the AC_CYGWIN
- macro since it uses AC_CANONICAL_HOST under
- autoconf 2.5X. Just check to see if __CYGWIN__
- is defined by the compiler and set the
- ac_cv_cygwin variable based on that.
- [Bug 705912]
-
-2003-03-18 Kevin Kenny <kennykb@users.sourceforge.net>
-
- * tests/registry.test: Changed the conditionals to avoid an
- abort if [testlocale] is missing, as when running the test in
- tclsh rather than tcltest. [Bug #705677]
-
-2003-03-18 Daniel Steffen <das@users.sourceforge.net>
-
- * tools/tcltk-man2html.tcl: added support for building 'make html'
- from inside distribution directories named with 8.x.x version
- numbers. tcltk-man2html now uses the latest tcl8.x.x resp. tk8.x.x
- directories found inside its --srcdir argument.
-
-2003-03-17 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/format.test: Renumber tests, a bunch of
- tests all had the same id.
-
-2003-03-17 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * doc/lsearch.n: Altered documentation of -ascii options so
- * doc/lsort.n: they don't specify that they operate on
- ASCII strings, which they never did
- anyway. [Bug #703807]
-
-2003-03-14 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tclCmdAH.c (Tcl_FormatObjCmd): Only add the modifier
- that indicates we've got a wide int when we're formatting in an
- integer style. Stops some libc's from going mad. [Bug #702622]
- Also tidied whitespace.
-
-2003-03-13 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/tcl.m4 (SC_WITH_TCL): Port version number
- fix that was made in tk instead of tcl sources.
-
-2003-03-13 Mo DeJong <mdejong@users.sourceforge.net>
-
- Require autoconf 2.57 or newer, see TIP 34
- for a detailed explanation of why this is good.
- This will no doubt break the build on some
- platforms, let the flaming begin.
-
- * tools/configure: Regen with autoconf 2.57.
- * tools/configure.in: Require autoconf 2.57.
- * unix/configure: Regen with autoconf 2.57.
- * unix/configure.in: Require autoconf 2.57.
- Apply AC_LIBOBJ changes from patch 529884.
- * unix/tcl.m4: Ditto.
- * win/configure: Regen with autoconf 2.57.
- * win/configure.in: Require autoconf 2.57.
- Don't subst LIBOBJS since this happens by
- default, this avoids an autoconf error.
-
-2003-03-12 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclBasic.c (Tcl_EvalTokensStandard):
- * generic/tclCmdMZ.c (Tcl_SubstObj):
- * generic/tclCompCmds.c (TclCompileSwitchCmd):
- * generic/tclCompExpr.c (CompileSubExpr):
- * generic/tclCompile.c (TclSetByteCodeFromAny,TclCompileScript,
- TclCompileTokens,TclCompileCmdWord):
- * generic/tclCompile.h (TclCompileScript):
- * generic/tclExecute.c (TclCompEvalObj):
- * generic/tclInt.h (Interp,TCL_BRACKET_TERM,TclSubstTokens):
- * generic/tclParse.c (ParseTokens,Tcl_SubstObj,TclSubstTokens):
- * tests/subst.test (2.4, 8.7, 8.8, 11.4, 11.5):
- Substantial refactoring of Tcl_SubstObj to make use of the same
- parsing and substitution procedures as normal script evaluation.
- Tcl_SubstObj() moved to tclParse.c. New routine TclSubstTokens()
- created in tclParse.c which implements all substantial functioning
- of Tcl_EvalTokensStandard(). TclCompileScript() loses its
- "nested" argument, the Tcl_Interp struct loses its termOffset
- field and the TCL_BRACKET_TERM flag in the evalFlags field, all
- of which were only used (indirectly) by Tcl_SubstObj(). Tests
- subst-8.7,8.8,11.4,11.5 modified to accomodate the only behavior
- change: reporting of parse errors now takes precedence over
- [return] and [continue] exceptions. All other behavior should
- remain compatible. [RFE 536831,684982] [Bug 685106]
-
- * generic/tcl.h: Removed TCL_PREFIX_IDENT and TCL_DEBUG_IDENT
- * win/tclWinPipe.c: from tcl.h -- they are not part of Tcl's
- public interface. Put them in win/tclWinPipe.c where they are used.
-
- * generic/tclInterp.c (Tcl_InterpObjCmd): Corrected and added
- * tests/interp.test (interp-2.13): test for option
- parsing beyond objc for [interp create --]. Thanks to Marco Maggi.
- [Bug 702383]
-
-2003-03-11 Kevin Kenny <kennykb@users.sourceforge.net>
-
- * win/makefile.vc: Added two missing uses of $(DBGX) so that
- tclpip8x.dll loads without panicking on Win9x.
-
-2003-03-09 Kevin Kenny <kennykb@users.sourceforge.net>
-
- * generic/tclTest.c (TestChannelCmd): Removed an unused local
- variable that caused compilation problems on some platforms.
-
-2003-03-08 Don Porter <dgp@users.sourceforge.net>
-
- * doc/tcltest.n: Added missing "-body" to example. Thanks to
- Helmut Giese. [Bug 700011]
-
-2003-03-07 Mo DeJong <mdejong@users.sourceforge.net>
+ * makefiles: package version now 2.8.1
- * tests/io.test:
- * tests/ioCmd.test: Define a fcopy constraint and add
- it to the constraint list of any test that depends
- on the fcopy command. This is only useful to
- Jacl which does not support fcopy.
-
-2003-03-07 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/encoding.test: Name temp files *.tcltestout
- instead of *.out so that when they are removed later,
- we don't accidently toast any files named *.out that
- the user has created in the build directory.
-
-2003-03-07 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tclCmdAH.c (Tcl_FileObjCmd): Fix the setting of a file's
- mtime and atime on 64-bit platforms. [Bug #698146]
-
-2003-03-06 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/io.test: Doh! Undo accidental commenting
- out of a couple of tests.
-
-2003-03-06 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/io.test: Define a fileevent constraint and add
- it to the constraint list of any test that depends
- on the fileevent command. This is only useful to
- Jacl which does not support fileevent.
-
-2003-03-06 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/io.test: Define an openpipe constraint and add
- it to the constraint list of any test that creates
- a pipe using the open command. This is only useful to
- Jacl which does not support pipes.
-
-2003-03-06 Don Porter <dgp@users.sourceforge.net>
-
- * generic/TclUtf.c (Tcl_UniCharNcasecmp): Corrected failure to
- * tests/utf.test (utf-25.*): properly compare Unicode strings of
- different case in a case insensitive manner. [Bug 699042]
-
-2003-03-06 Kevin Kenny <kennykb@users.sourceforge.net>
-
- * generic/tclCompCmds.c (TclCompileSwitchCmd):
- Replaced a non-portable 'bzero' with a portable 'memset'.
- [Bug 698442].
-
-2003-03-06 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tclIO.c (Tcl_Seek, Tcl_OutputBuffered):
- If there is data buffered in the statePtr->curOutPtr
- member then set the BUFFER_READY flag in Tcl_Seek.
- This is needed so that the next call to FlushChannel
- will write any buffered bytes before doing the seek.
- The existing code would set the BUFFER_READY flag
- inside the Tcl_OutputBuffered function. This was a
- programming error made when Tcl_OutputBuffered
- was originally created in CVS revision 1.35. The
- setting of the BUFFER_READY flag should not have
- been included in the Tcl_OutputBuffered function.
- * generic/tclTest.c (TestChannelCmd): Use the
- Tcl_InputBuffered and Tcl_OutputBuffered
- util methods to query the amount of buffered
- input and output.
-
-2003-03-06 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tclIO.c (Tcl_Flush): Compare the
- nextAdded member of the ChannelBuffer to the
- nextRemoved member to determine if any output
- has been buffered. The previous check against
- the value 0 seems to have just been a coding
- error. See other methods like Tcl_OutputBuffered
- for examples where nextAdded is compared to
- nextRemoved to find the number of bytes buffered.
-
-2003-03-06 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tclIO.c (Tcl_GetsObj): Check that
- the eol pointer has not gone past the end
- of the string when in auto translation
- mode and the INPUT_SAW_CR flag is set.
- The previous code worked because the
- end of string value \0 was being compared
- to \n, this patch just skips that pointless
- check.
-
-2003-03-06 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tclIO.c (WriteBytes, WriteChars,
- Tcl_GetsObj, ReadBytes): Rework calls to
- TranslateOutputEOL to make it clear that
- a boolean value is being returned.
- Add some comments in an effort to make
- the code more clear. This patch makes
- no functional changes.
-
-2003-03-06 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tclIO.c (Tcl_SetChannelOption):
- Invoke the Tcl_SetChannelBufferSize method
- as a result of changing the -buffersize
- option to fconfigure. The previous
- implementation used some inlined code that
- reset the buffer size to the default size
- instead of ignoring the request as
- implemented in Tcl_SetChannelBufferSize.
- * tests/io.test: Update test case so that
- it actually checks the implementation of
- Tcl_SetChannelBufferSize.
-
-2003-03-05 David Gravereaux <davygrvy@pobox.com>
-
- * win/rules.vc: updated default tcl version to 8.5.
-
-2003-03-05 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tclCompCmds.c (TclCompileSwitchCmd): First attempt at a
- bytecode-compiled switch command. It only handles the most common
- case of switching, but that should be enough for this to speed up
- a lot of people's code. It is expected that the speed gains come
- from two things: better handling of the switch itself, and
- integrated compilation of the arms instead of embedding separate
- bytecode sequences (i.e. better local variable handling.)
- * tests/switch.test (switch-10.*): Tests of both uncompiled and
- compiled switch behaviour. [Patch #644819]
-
- * generic/tclCompile.h (TclFixupForwardJumpToHere): Additional
- macro to make the most common kind of jump fixup a bit easier.
-
-2003-03-04 Don Porter <dgp@users.sourceforge.net>
-
- * README: Bumped version number of
- * generic/tcl.h: Tcl to 8.5a0.
- * library/init.tcl:
- * mac/README:
- * macosx/Tcl.pbproj/project.pbxproj:
- * tests/basic.test:
- * tools/configure.in:
- * tools/tcl.hpj.in:
- * tools/tcl.wse.in:
- * unix/configure.in:
- * unix/tcl.spec:
- * win/README:
- * win/README.binary:
- * win/configure.in:
- * win/makefile.bc:
- * win/makefile.vc:
- * win/tcl.m4:
+2009-04-15 Donal K. Fellows <dkf@users.sf.net>
- * tools/configure: autoconf
- * unix/configure:
- * win/configure:
+ * doc/chan.n, doc/close.n: Tidy up documentation of TIP #332.
-2003-03-03 Jeff Hobbs <jeffh@ActiveState.com>
+2009-04-14 Kevin B. Kenny <kennykb@acm.org>
- *** 8.4.2 TAGGED FOR RELEASE ***
+ * library/tzdata/Asia/Karachi: Updated rules for Pakistan Summer
+ Time (Olson's tzdata2009f)
-2003-03-03 Daniel Steffen <das@users.sourceforge.net>
+2009-04-11 Donal K. Fellows <dkf@users.sf.net>
- Mac OS Classic specific fixes:
- * generic/tclIOUtil.c (TclNewFSPathObj): on TCL_PLATFORM_MAC,
- skip potential directory separator at the beginning of addStrRep.
- * mac/tclMacChan.c (OpenFileChannel, CommonWatch): followup
- fixes to cut and splice implementation for file channels.
- * mac/tclMacFile.c (TclpUtime): pass native path to utime().
- * mac/tclMacFile.c (TclpObjLink): correctly implemented creation
- of alias files via new static proc CreateAliasFile().
- * mac/tclMacPort.h: define S_ISLNK macro to fix stat'ing of links.
- * mac/tclMacUtil.c (FSpLocationFromPathAlias): fix to enable
- stat'ing of broken links.
+ * generic/tclOOMethod.c (InvokeForwardMethod): Clarify the resolution
+ behaviour of the name of the command that is forwarded to: it's now
+ resolved using the object's namespace as context, which is much more
+ useful than the previous (somewhat random) behaviour of using the
+ caller's current namespace.
-2003-03-03 Kevin Kenny <kennykb@users.sourceforge.net>
+2009-04-10 Pat Thoyts <patthoyts@users.sourceforge.net>
- * win/Makefile.vc: corrected bug introduced by 'g' for debug builds.
-
-2003-03-03 Don Porter <dgp@users.sourceforge.net>
+ * library/http/http.tcl: Improved HTTP/1.1 support and added
+ * library/http/pkgIndex.tcl: specific HTTP/1.1 testing to ensure
+ * tests/http11.test: we handle chunked+gzip for the various
+ * tests/httpd11.test: modes (normal, -channel and -handler)
+ * makefiles: package version set to 2.8.0
- * library/dde/pkgIndex.tcl: dde bumped to version 1.2.1 for
- * win/tclWinDde.c: bundled release with Tcl 8.4.2
+2009-04-10 Daniel Steffen <das@users.sourceforge.net>
- * library/reg/pkgIndex.tcl: registry bumped to version 1.1.1 for
- * win/tclWinReg.c: bundled release with Tcl 8.4.2
+ * unix/tclUnixChan.c: TclUnixWaitForFile(): use FD_* macros
+ * macosx/tclMacOSXNotify.c: to manipulate select masks (Cassoff).
+ [FRQ 1960647] [Bug 3486554]
- * library/opt/pkgIndex.tcl: updated package index to version 0.4.4
+ * unix/tclLoadDyld.c: Use RTLD_GLOBAL instead of RTLD_LOCAL.
+ [Bug 1961211]
-2003-02-28 Jeff Hobbs <jeffh@ActiveState.com>
+ * macosx/tclMacOSXNotify.c: revise CoreFoundation notifier to allow
+ embedding into applications that
+ already have a CFRunLoop running and
+ want to run the tcl event loop via
+ Tcl_ServiceModeHook(TCL_SERVICE_ALL).
- * win/configure:
- * win/configure.in: check for 'g' for debug build type, not 'd'.
- * win/rules.vc (DBGX): correct to use 'g' for nmake win makefile
- to match the cygwin makefile for debug builds. [Bug #635107]
+ * macosx/tclMacOSXNotify.c: add CFRunLoop based Tcl_Sleep() and
+ * unix/tclUnixChan.c: TclUnixWaitForFile() implementations
+ * unix/tclUnixEvent.c: and disable select() based ones in
+ CoreFoundation builds.
-2003-02-28 Vince Darley <vincentdarley@users.sourceforge.net>
+ * unix/tclUnixNotify.c: simplify, sync with tclMacOSXNotify.c.
- * doc/file.n: subcommand is 'file volumes' not 'file volume'
+ * generic/tclInt.decls: add TclMacOSXNotifierAddRunLoopMode()
+ * generic/tclIntPlatDecls.h: internal API, regen.
+ * generic/tclStubInit.c:
-2003-02-27 Jeff Hobbs <jeffh@ActiveState.com>
+ * unix/configure.in (Darwin): use Darwin SUSv3 extensions if
+ available; remove /Network locations
+ from default tcl package search path
+ (NFS mounted locations and thus slow).
+ * unix/configure: autoconf-2.59
+ * unix/tclConfig.h.in: autoheader-2.59
- * generic/tclIOUtil.c (MakeFsPathFromRelative): removed dead code
- check of typePtr (darley).
+ * macosx/tclMacOSXBundle.c: on Mac OS X 10.4 and later, replace
+ deprecated NSModule API by dlfcn API.
- * tests/winTime.test: added note about PCI hardware dependency
- issues with high performance clock.
+2009-04-10 Donal K. Fellows <dkf@users.sf.net>
-2003-02-27 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * doc/StringObj.3: [Bug 2089279]: Corrected example so that it works
+ on 64-bit machines as well.
- * tests/lsearch.test (lsearch-10.7):
- * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Stopped -start option
- from causing an option when used with an empty list. [Bug #694232]
+2009-04-10 Pat Thoyts <patthoyts@users.sourceforge.net>
-2003-02-26 Chengye Mao <chengye.geo@yahoo.com>
+ * tests/http.test: [Bug 26245326]: Added specific check for problem
+ * tests/httpd: (return incomplete HTTP response header).
- * win/tclWinInit.c: fixed a bug in TclpSetVariables by initializing
- dwUserNameLen with the sizeof(szUserName) before calling GetUserName.
- Don't know if this bug has been recorded: it caused crash in starting
- Tcl or wish in Windows.
+2009-04-08 Kevin B. Kenny <kennykb@acm.org>
-2003-02-26 Jeff Hobbs <jeffh@ActiveState.com>
+ * tools/tclZIC.tcl: Always emit files with Unix line termination.
+ * library/tzdata: Olson's tzdata2009e
- * generic/tclCmdMZ.c (TraceCommandProc): Fix mem leak when
- deleting a command that had trace on it. [Bug #693564] (sofer)
+2009-04-09 Don Porter <dgp@users.sourceforge.net>
-2003-02-25 Don Porter <dgp@users.sourceforge.net>
+ * library/http/http.tcl: [Bug 26245326]: Handle incomplete
+ lines in the "connecting" state. Thanks to Sergei Golovan.
- * doc/pkgMkIndex.n: Modified [pkg_mkIndex] to use -nocase matching
- * library/package.tcl: of -load patterns, to better accomodate
- common user errors due to confusion between [package names] names
- and [info loaded] names.
+2009-04-08 Andreas Kupries <andreask@activestate.com>
-2003-02-25 Andreas Kupries <andreask@pliers.activestate.com>
+ * library/platform/platform.tcl: Extended the darwin sections to add
+ * library/platform/pkgIndex.tcl: a kernel version number to the
+ * unix/Makefile.in: identifier for anything from Leopard (10.5) on up.
+ * win/Makefile.in: Extended patterns for same. Extended cpu
+ * doc/platform.n: recognition for 64bit Tcl running on a 32bit kernel
+ on a 64bit processor (By Daniel Steffen). Bumped version to 1.0.4.
+ Updated Makefiles.
- * tests/pid.test: See below [Bug #678412].
- * tests/io.test: Made more robust against spaces in paths
- [Bug #678400].
+2009-04-08 Don Porter <dgp@users.sourceforge.net>
-2003-02-25 Miguel Sofer <msofer@users.sf.net>
+ * library/tcltest/tcltest.tcl: [Bug 2570363]: Converted [eval]s (some
+ * library/tcltest/pkgIndex.tcl: unsafe!) to {*} in tcltest package.
+ * unix/Makefile.in: => tcltest 2.3.1
+ * win/Makefile.in:
- * tests/execute.test: cleaning up testobj's at the end, to avoid
- leak warning by valgrind.
+2009-04-07 Don Porter <dgp@users.sourceforge.net>
-2003-02-22 Zoran Vasiljevic <zoran@archiwrae.com>
+ * generic/tclStringObj.c: Correction so that value of
+ TCL_GROWTH_MIN_ALLOC is everywhere expressed in bytes as comment
+ claims.
- * generic/tclEvent.c (Tcl_FinalizeThread): Fix [Bug #571002]
+2009-04-04 Donal K. Fellows <dkf@users.sf.net>
-2003-02-21 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * doc/vwait.n: [Bug 1910136]: Extend description and examples to make
+ it clearer just how this command interprets variable names.
- * tests/binary.test (binary-44.[34]):
- * generic/tclBinary.c (ScanNumber): Fixed problem with unwanted
- sign-bit propagation when scanning wide ints. [Bug #690774]
+2009-03-30 Don Porter <dgp@users.sourceforge.net>
-2003-02-21 Daniel Steffen <das@users.sourceforge.net>
+ * doc/Alloc.3: [Bug 2556263]: Size argument is "unsigned int".
- * mac/tclMacChan.c (TclpCutFileChannel, TclpSpliceFileChannel):
- Implemented missing cut and splice procs for file channels.
+2009-03-27 Don Porter <dgp@users.sourceforge.net>
-2003-02-21 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclPathObj.c (TclPathPart): [Bug 2710920]: TclPathPart()
+ * tests/fileName.test: was computing the wrong results for both [file
+ dirname] and [file tail] on "path" arguments with the PATHFLAGS != 0
+ intrep and with an empty string for the "joined-on" part.
- * library/package.tcl (tclPkgUnknown): Minor performance tweaks
- to reduce the number of [file] invocations. Meant to improve
- startup times, at least a little bit. [Patch 687906]
+2009-03-25 Jan Nijtmans <nijtmans@users.sf.net>
-2003-02-20 Daniel Steffen <das@users.sourceforge.net>
+ * doc/tclsh.1: Bring doc and tools in line with
+ * tools/installData.tcl: http://wiki.tcl.tk/812
+ * tools/str2c
+ * tools/tcltk-man2html.tcl
- * unix/tcl.m4:
- * unix/tclUnixPipe.c: (macosx) use vfork() instead of fork() to
- create new processes, as recommended by Apple (vfork can be up to
- 100 times faster thank fork on macosx).
- * unix/configure: regen.
+2009-03-25 Donal K. Fellows <dkf@users.sf.net>
-2003-02-20 Jeff Hobbs <jeffh@ActiveState.com>
+ * doc/coroutine.n: [Bug 2152285]: Added basic documentation for the
+ coroutine and yield commands.
- * generic/tclEncoding.c (LoadTableEncoding):
- * library/encoding/cp932.enc: Correct jis round-trip encoding
- * library/encoding/euc-jp.enc: by adding 'R' type to .enc files.
- * library/encoding/iso2022-jp.enc: [Patch #689341] (koboyasi, taguchi)
- * library/encoding/jis0208.enc:
- * library/encoding/shiftjis.enc:
- * tests/encoding.test:
+2009-03-24 Donal K. Fellows <dkf@users.sf.net>
- * unix/tclUnixChan.c (Tcl_MakeTcpClientChannel): add
- MakeTcpClientChannelMode that takes actual mode flags to avoid
- hang on OS X (may be OS X bug, but patch works x-plat).
- [Bug #689835] (steffen)
+ * generic/tclOOBasic.c (TclOOSelfObjCmd): [Bug 2704302]: Make 'self
+ class' better defined in the context of objects that change class.
-2003-02-20 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclVar.c (Tcl_UpvarObjCmd): [Bug 2673163] (ferrieux)
+ * generic/tclProc.c (TclObjGetFrame): Make the upvar command more able
+ to handle its officially documented syntax.
- * doc/regsub.n: Typo fix [Bug #688943]
+2009-03-22 Miguel Sofer <msofer@users.sf.net>
-2003-02-19 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tclBasic.c: [Bug 2502037]: NR-enable the handling of unknown
+ commands.
- * unix/tclUnixThrd.c (TclpReaddir):
- * unix/tclUnixPort.h: update to Bug 689100 patch to ensure that
- there is a defined value of MAXNAMLEN (aka NAME_MAX in POSIX) and
- that we have some buffer allocated.
+2009-03-21 Miguel Sofer <msofer@users.sf.net>
-2003-02-19 Daniel Steffen <das@users.sourceforge.net>
+ * generic/tclBasic.c: Fixed "leaks" in aliases, imports and
+ * generic/tclInt.h: ensembles. Only remaining known leak is in
+ * generic/tclInterp.c: ensemble unknown dispatch (as it not
+ * generic/tclNamesp.c: NR-enabled)
+ * tests/tailcall.test:
- * generic/tclStringObj.c: restored Tcl_SetObjLength() side-effect
- of always invalidating unicode rep (if the obj has a string rep).
- Added hasUnicode flag to String struct, allows decoupling of
- validity of unicode rep from buffer size allocated to it (improves
- memory allocation efficiency). [Bugs #686782, #671138, #635200]
+ * tclInt.h: comments
- * macosx/Tcl.pbproj/project.pbxproj:
- * macosx/Makefile: reworked embedded build to no longer require
- relinking but to use install_name_tool instead to change the
- install_names for embedded frameworks. [Bug #644510]
+ * tests/tailcall.test: Added tests to show that [tailcall] does not
+ currently always execute in constant space: interp-alias, ns-imports
+ and ensembles "leak" as of this commit.
- * macosx/Tcl.pbproj/project.pbxproj: preserve mod dates when
- running 'make install' to build framework (avoids bogus rebuilds
- of dependent frameworks because tcl headers appear changed).
-
- * tests/ioCmd.test (iocmd-1.8): fix failure when system encoding
- is utf-8: use iso8859-1 encoding explicitly.
+ * tests/nre.test: [foreach] has been NR-enabled for a while, the test
+ was marked 'knownBug': unmark it.
-2003-02-18 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclCompile.c (TclCompileExprWords): remove unused
- variable "range" [Bug 664743]
- * generic/tclExecute.c (ExprSrandFunc): remove unused
- variable "result" [Bug 664743]
- * generic/tclStringObj.c (UpdateStringOfString): remove unused
- variable "length" [Bug 664751]
- * tests/execute.test (execute-7.30): fix for [Bug 664775]
-
-2003-02-18 Andreas Kupries <andreask@activestate.com>
-
- * unix/tcl.m4: [Bug #651811] Added definition of _XOPEN_SOURCE and
- linkage of 'xnet' library to HP 11 branch. This kills a lot of
- socket-related failures in the testsuite when Tcl was compiled
- in 64 bit mode (both PA-RISC 2.0W, and IA 64).
-
- * unix/configure: Regenerated.
-
-2003-02-18 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tclIO.c (HaveVersion): correctly decl static
-
- * unix/tclUnixThrd.c (TclpReaddir): reduce size of name string in
- tsd to NAME_MAX instead of PATH_MAX. [Bug #689100] (waters)
-
-2003-02-18 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/configure: Regen.
- * unix/tcl.m4 (SC_ENABLE_THREADS): Make sure
- -lpthread gets passed on the link line when
- checking for the pthread_attr_setstacksize symbol.
-
-2003-02-18 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * generic/tclTest.c: cleanup of new 'simplefs' test code, and
- better documentation.
-
-2003-02-17 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclBasic.c (TclRenameCommand): fixing error in previous
- commit.
-
-2003-02-17 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tclExecute.c (TclExecuteByteCode INST_STR_MATCH):
- * generic/tclCmdMZ.c (Tcl_StringObjCmd STR_MATCH):
- * generic/tclUtf.c (TclUniCharMatch):
- * generic/tclInt.decls: add private TclUniCharMatch function that
- * generic/tclIntDecls.h: does string match on counted unicode
- * generic/tclStubInit.c: strings. Tcl_UniCharCaseMatch has the
- * tests/string.test: failing that it can't handle strings or
- * tests/stringComp.test: patterns with embedded NULLs. Added
- tests that actually try strings/pats with NULLs. TclUniCharMatch
- should be TIPed and made public in the next minor version rev.
+ * generic/tclBasic.c: Fix for (among others) [Bug 2699087]
+ * generic/tclCmdAH.c: Tailcalls now perform properly even from
+ * generic/tclExecute.c: within [eval]ed scripts.
+ * generic/tclInt.h: More tests missing, as well as proper
+ exploration and testing of the interaction with "redirectors" like
+ interp-alias (suspect that it does not happen in constant space)
+ and pure-eval commands.
-2003-02-17 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclBasic.c (TclRenameCommand): 'oldFullName' object was
- not being freed on all function exits, causing a memory leak
- [Bug 684756]
-
-2003-02-17 Mo DeJong <mdejong@users.sourceforge.net>
+ * generic/tclExecute.c: Proper fix for [Bug 2415422]. Reenabled
+ * tests/nre.test: the failing assertion that was disabled on
+ 2008-12-18: the assertion is correct, the fault was in the
+ management of expansions.
- * generic/tclIO.c (Tcl_GetsObj): Minor change
- so that eol is only assigned at the top of the
- TCL_TRANSLATE_AUTO case block. The other cases
- assign eol so this does not change any functionality.
+ * generic/tclExecute.c: Fix both test and code for tailcall
+ * tests/tailcall.test: from within a compiled [eval] body.
-2003-02-17 Kevin Kenny <kennykb@users.sourceforge.net>
+ * tests/tailcall.test: Slightly improved tests
- * tests/notify.test: Removed Windows line terminators. [Bug 687913].
-
-2003-02-15 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclBasic.c (Tcl_EvalEx):
- * generic/tclCompExpr.c (CompileSubExpr):
- * generic/tclCompile.c (TclCompileScript):
- * generic/tclParse.c (Tcl_ParseCommand, ParseTokens):
- * generic/tclParseExpr.c (ParsePrimaryExpr):
- * tests/basic.test (47.1):
- * tests/main.test (3.4):
- * tests/misc.test (1.2):
- * tests/parse.test (6.18):
- * tests/parseExpr.test (15.35):
- * tests/subst.test (8.6): Don Porter's fix for bad parsing of
- nested scripts [Bug 681841].
+2009-03-20 Don Porter <dgp@users.sourceforge.net>
-2003-02-15 Kevin Kenny <kennykb@users.sourceforge.net>
-
- * tests/notify.test (new-file):
- * generic/tclTest.c (TclTest_Init, EventtestObjCmd, EventtestProc,
- EventTestDeleteProc):
- * generic/tclNotify.c (Tcl_DeleteEvents): Fixed Tcl_DeleteEvents
- not to get a pointer smash when deleting the last event in the
- queue. Added test code in 'tcltest' and a new file of test cases
- 'notify.test' to exercise this functionality; several of the new
- test cases fail for the original code and pass for the corrected
- code. [Bug 673714]
+ * tests/stringObj.test: [Bug 2597185]: Test stringObj-6.9
+ checks that Tcl_AppendStringsToObj() no longer crashes when operating
+ on a pure unicode value.
+
+ * generic/tclExecute.c (INST_CONCAT1): [Bug 2669109]: Panic when
+ appends overflow the max length of a Tcl value.
+
+2009-03-19 Miguel Sofer <msofer@users.sf.net>
- * unix/tclUnixTest.c (TestfilehandlerCmd): Corrected a couple
- of typos in error messages. [Bug 596027]
-
-2003-02-14 Jeff Hobbs <jeffh@ActiveState.com>
-
- * README: Bumped to version 8.4.2.
* generic/tcl.h:
- * tools/tcl.wse.in:
- * unix/configure:
- * unix/configure.in:
- * unix/tcl.m4:
- * unix/tcl.spec:
- * win/README.binary:
- * win/configure:
- * win/configure.in:
- * macosx/Tcl.pbproj/project.pbxproj:
-
- * generic/tclStringObj.c (Tcl_GetCharLength): perf tweak
-
- * unix/tcl.m4: correct HP-UX ia64 --enable-64bit build flags
-
-2003-02-14 Kevin Kenny <kennykb@users.sourceforge.net>
-
- * win/tclWinTime.c: Added code to test and compensate for
- forward leaps of the performance counter. See the MSDN Knowledge
- Base article Q274323 for the hardware problem that makes this
- necessary on certain machines.
- * tests/winTime.test: Revised winTime-2.1 - it had a tolerance
- of thousands of seconds, rather than milliseconds. (What's six
- orders of magnitude among friends?
- Both the above changes are triggered by a problem reported at
- http://aspn.activestate.com/ASPN/Mail/Message/ActiveTcl/1536811
- although the developers find it difficult to believe that it
- accounts for the observed behavior and suspect a fault in the
- RTC chip.
-
-2003-02-13 Kevin Kenny <kennykb@users.sourceforge.net>
-
- * win/tclWinInit.c: Added conversion from the system encoding
- to tcl_platform(user), so that it works with non-ASCII7 user names.
- [Bug 685926]
-
- * doc/tclsh.1: Added language to describe the handling of the
- end-of-file character \u001a embedded in a script file.
- [Bug 685485]
-
-2003-02-11 Vince Darley <vincentdarley@users.sourceforge.net>
+ * generic/tclInt.h:
+ * generic/tclBasic.c:
+ * generic/tclExecute.c:
+ * generic/tclNamesp.c (Tcl_PopCallFrame): Rewritten tailcall
+ implementation, ::unsupported::atProcExit is (temporarily?) gone. The
+ new approach is much simpler, and also closer to being correct. This
+ commit fixes [Bug 2649975] and [Bug 2695587].
- * tests/fileName.test:
- * unix/tclUnixFile.c: fix for [Bug 685445] when using 'glob -l'
- on broken symbolic links. Added two new tests for this bug.
+ * tests/coroutine.test: Moved the tests to their own files,
+ * tests/tailcall.test: removed the unsupported.test. Added
+ * tests/unsupported.test: tests for the fixed bugs.
-2003-02-11 Kevin Kenny <kennykb@users.sourceforge.net>
+2009-03-19 Donal K. Fellows <dkf@users.sf.net>
- * tests/http.test: Corrected a problem where http-4.14 would fail
- when run in an environment with a proxy server. Replaced references
- to scriptics.com by tcl.tk.
-
-2003-02-11 Jeff Hobbs <jeffh@ActiveState.com>
+ * doc/tailcall.n: Added documentation for tailcall command.
- * tests/lsearch.test:
- * generic/tclCmdIL.c (Tcl_LsearchObjCmd): protect against the case
- that lsearch -regepx list and pattern objects are equal.
+2009-03-18 Don Porter <dgp@users.sourceforge.net>
- * tests/stringObj.test:
- * generic/tclStringObj.c (Tcl_GetCharLength): correct ascii char
- opt of 2002-11-11 to not stop early on \x00. [Bug #684699]
+ * win/tclWinFile.c (TclpObjNormalizePath): [Bug 2688184]:
+ Corrected Tcl_Obj leak. Thanks to Joe Mistachkin for detection and
+ patch.
- * tests.parse.test: remove excess EOF whitespace
+ * generic/tclVar.c (TclLookupSimpleVar): [Bug 2689307]: Shift
+ all calls to Tcl_SetErrorCode() out of TclLookupSimpleVar and onto its
+ callers, where control with TCL_LEAVE_ERR_MSG flag is more easily
+ handled.
- * generic/tclParse.c (CommandComplete): more paranoid check to
- break on (p >= end) instead of just (p == end).
+2009-03-16 Donal K. Fellows <dkf@users.sf.net>
-2003-02-11 Miguel Sofer <msofer@users.sf.net>
+ * generic/tclCmdMZ.c (TryPostBody): [Bug 2688063]: Extract information
+ from list before getting rid of last reference to it.
- * generic/tclParse.c (CommandComplete):
- * tests/parse.test: fix for [Bug 684744], by Don Porter.
+2009-03-15 Joe Mistachkin <joe@mistachkin.com>
-2003-02-11 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tclThread.c: [Bug 2687952]: Modify fix for TSD leak to match
+ * generic/tclThreadStorage.c: Tcl 8.5 (and prior) allocation semantics
- * generic/tclIOUtil.c (Tcl_FSJoinPath, Tcl_FSGetNormalizedPath):
- (UpdateStringOfFsPath): revert the cwdLen == 0 check and instead
- follow a different code path in Tcl_FSJoinPath.
- (Tcl_FSConvertToPathType, Tcl_FSGetNormalizedPath):
- (Tcl_FSGetFileSystemForPath): Update string rep of path objects
- before freeing the internal object. (darley)
+2009-03-15 Donal K. Fellows <dkf@users.sf.net>
- * tests/fileSystem.test: added test 8.3
- * generic/tclIOUtil.c (Tcl_FSGetNormalizedPath):
- (UpdateStringOfFsPath): handle the cwdLen == 0 case
+ * generic/tclThreadStorage.c (TSDTableDelete): [Bug 2687952]: Ensure
+ * generic/tclThread.c (Tcl_GetThreadData): that structures in
+ Tcl's TSD system are all freed. Use the correct matching allocator.
- * unix/tclUnixFile.c (TclpMatchInDirectory): simplify the hidden
- file match check.
+ * generic/tclPosixStr.c (Tcl_SignalId,Tcl_SignalMsg): [Patch 1513655]:
+ Added support for SIGINFO, which is present on BSD platforms.
-2003-02-10 Mo DeJong <mdejong@users.sourceforge.net>
+2009-03-14 Donal K. Fellows <dkf@users.sf.net>
- * win/configure:
- * win/configure.in: Generate error when attempting
- to build under Cygwin. The Cygwin port of Tcl/Tk
- does not build and people are filing bug reports
- under the mistaken impression that someone is
- actually maintaining the Cygwin port. A post to
- comp.lang.tcl asking someone to volunteer as an
- area maintainer has generated no results.
- Closing bugs 680840, 630199, and 634772 and
- marking as "Won't fix".
+ * unix/tcl.pc.in (new file): [Patch 2243948] (hat0)
+ * unix/configure.in, unix/Makefile.in: Added support for reporting
+ Tcl's public build configuration via the pkg-config system. TEA is
+ still the official mechanism though, in part because pkg-config is not
+ universally supported across all Tcl's supported platforms.
-2003-02-10 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+2009-03-11 Miguel Sofer <msofer@users.sf.net>
- * doc/append.n: Return value was not documented. [Bug 683188]
+ * generic/tclBasic.c (TclNRCoroutineObjCmd): fix Tcl_Obj leak.
+ Diagnosis and fix thanks to GPS.
-2003-02-10 Vince Darley <vincentdarley@users.sourceforge.net>
+2009-03-09 Donal K. Fellows <dkf@users.sf.net>
- * doc/FileSystem.3:
- * generic/tclIOUtil.c:
- * generic/tclInt.h:
- * tests/fileSystem.test:
- * unix/tclUnixFCmd.c:
- * unix/tclUnixFile.c:
- * win/tclWinFile.c: further filesystem optimization, applying
- [Patch 682500]. In particular, these code examples are
- faster now:
- foreach f $flist { if {[file exists $f]} {file stat $f arr;...}}
- foreach f [glob -dir $dir *] { # action and/or recursion on $f }
- cd $dir
- foreach f [glob *] { # action and/or recursion on $f }
- cd ..
+ * generic/tclCmdMZ.c (Tcl_TryObjCmd, TclNRTryObjCmd): Moved the
+ implementation of [try] from Tcl code into C. Still lacks a bytecode
+ version, but should be better than what was before.
+
+2009-03-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclZlib.c (TclZlibCmd): Checksums are defined to be unsigned
+ 32-bit integers, use Tcl_WideInt to pass to scripts. [Bug 2662434]
+ (ZlibStreamCmd, ChanGetOption): A few other related corrections.
+
+2009-02-27 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tcl.decls: [Bug 218977]: Tcl_DbCkfree needs return value
+ * generic/tclCkalloc.c
+ * generic/tclDecls.h: (regenerated)
+ * generic/tclInt.decls: don't use CONST84/CONST86 here
+ * generic/tclCompile.h: don't use CONST86 here, comment fixing.
+ * generic/tclIO.h: don't use CONST86 here, comment fixing.
+ * generic/tclIntDecls.h (regenerated)
- * generic/tclTest.c: Fix for [Bug 683181] where test suite
- left files in 'tmp'.
+2009-02-25 Don Porter <dgp@users.sourceforge.net>
-2003-02-08 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tclUtil.c (TclStringMatchObj): [Bug 2637173]: Revised
+ the branching on the strObj->typePtr so that untyped values get
+ converted to the "string" type and pass through the Unicode matcher.
+ [Bug 2613766]: Also added checks to only perform "bytearray"
+ optimization on pure bytearray values.
- * library/safe.tcl: code cleanup of eval and string comp use.
+ * generic/tclCmdMZ.c: Since Tcl_GetCharLength() has its own
+ * generic/tclExecute.c: optimizations for the tclByteArrayType, stop
+ having the callers do them.
-2003-02-07 Vince Darley <vincentdarley@users.sourceforge.net>
+2009-02-24 Donal K. Fellows <dkf@users.sf.net>
- * win/tclWinFCmd.c: cleanup long lines
- * win/tclWinFile.c: sped up pure 'glob' by a factor of 2.5
- ('foreach f [glob *] { file exists $f }' is still slow)
- * tests/fileSystem.text:
- * tests/fileName.test: added new tests to ensure correct
- behaviour in optimized filesystem code.
+ * doc/clock.n, doc/fblocked.n, doc/format.n, doc/lsort.n,
+ * doc/pkgMkIndex.n, doc/regsub.n, doc/scan.n, doc/tclvars.n:
+ General minor documentation improvements.
-2003-02-07 Vince Darley <vincentdarley@users.sourceforge.net>
+ * library/http/http.tcl (geturl, Eof): Added support for 8.6's built
+ in zlib routines.
+2009-02-22 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * tests/lrange.test: Revert commits of 2008-07-23. Those were speed
+ * tests/binary.test: tests, that are inherently brittle.
+
+2009-02-21 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c: Several revisions to the shimmering
+ patterns between Unicode and UTF string reps. Most notably the
+ call: objPtr = Tcl_NewUnicodeObj(...,0); followed by a loop of calls:
+ Tcl_AppendUnicodeToObj(objPtr, u, n); will now grow and append to
+ the Unicode representation. Before this commit, the sequence would
+ convert each append to UTF and perform the append to the UTF rep.
+ This is puzzling and likely a bug. The performance of [string map]
+ is significantly improved by this change (according to the MAP
+ collection of benchmarks in tclbench). Just in case there was some
+ wisdom in the old ways that I missed, I left in the ability to restore
+ the old patterns with a #define COMPAT 1 at the top of the file.
+
+2009-02-20 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclPathObj.c: [Bug 2571597]: Fixed mistaken logic in
+ * tests/fileName.test: TclFSGetPathType() that assumed (not
+ "absolute") => "relative". This is a false assumption on Windows,
+ where "volumerelative" is another possibility.
+
+2009-02-18 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c: Simplify the logic of the
+ Tcl_*SetObjLength() routines.
+
+ * generic/tclStringObj.c: Rewrite GrowStringBuffer() so that it
+ has parallel structure with GrowUnicodeBuffer(). The revision permits
+ allocation attempts to continue all the way up to failure, with no
+ gap. It also directly manipulates the String and Tcl_Obj internals
+ instead of inefficiently operating via Tcl_*SetObjLength() with all of
+ its extra protections and underdocumented special cases.
+
+ * generic/tclStringObj.c: Another round of simplification on
+ the allocation macros.
+
+2009-02-17 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * win/tcl.m4, win/configure: Check if cl groks _WIN64 already to
+ avoid CC manipulation that can screw up later configure checks.
+ Use 'd'ebug runtime in 64-bit builds.
+
+2009-02-17 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c: Pare back the length of the unicode
+ array in a non-extended String struct to one Tcl_UniChar, meant to
+ hold the terminating NUL character. Non-empty unicode strings are
+ then stored by extending the String struct by stringPtr->maxChars
+ additional slots in that array with sizeof(Tcl_UniChar) bytes per
+ slot. This revision makes the allocation macros much simpler.
+
+ * generic/tclStringObj.c: Factor out common GrowUnicodeBuffer()
+ and solve overflow and growth algorithm fallbacks in it.
+
+ * generic/tclStringObj.c: Factor out common GrowStringBuffer().
+
+ * generic/tclStringObj.c: Convert Tcl_AppendStringsToObj into
+ * tests/stringObj.test: a radically simpler implementation
+ where we just loop over calls to Tcl_AppendToObj. This fixes [Bug
+ 2597185]. It also creates a *** POTENTIAL INCOMPATIBILITY *** in
+ that T_ASTO can now allocate more space than is strictly required,
+ like all the other Tcl_Append* routines. The incompatibility was
+ detected by test stringObj-6.5, which I've updated to reflect the
+ new behavior.
+
+ * generic/tclStringObj.c: Revise buffer growth implementation
+ in ExtendStringRepWithUnicode. Use cheap checks to determine that
+ no reallocation is necessary without cost of computing the precise
+ number of bytes needed. Also make use of the string growth algortihm
+ in the case of repeated appends.
+
+2009-02-16 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclZlib.c: Hack needed for official zlib1.dll build.
+ * win/configure.in: fix [Feature Request 2605263] use official
+ * win/Makefile.in: zlib build.
+ * win/configure: (regenerated)
+ * compat/zlib/zdll.lib: new files
+ * compat/zlib/zlib1.dll:
+
+ * win/Makefile.in: [Bug 2605232]: tdbc doesn't build when Tcl is
+ compiled with --disable-shared.
+
+2009-02-15 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c: [Bug 2603158]: Added protections from
+ * generic/tclTestObj.c: invalid memory accesses when we append
+ * tests/stringObj.test: (some part of) a Tcl_Obj to itself.
+ Added the appendself and appendself2 subcommands to the
+ [teststringobj] testing command and added tests to the test suite.
+
+ * generic/tclStringObj.c: Factor out duplicate code from
+ Tcl_AppendObjToObj.
+
+ * generic/tclStringObj.c: Replace the 'size_t uallocated' field
+ of the String struct, storing the number of bytes allocated to store
+ the Tcl_UniChar array, with an 'int maxChars' field, storing the
+ number of Tcl_UniChars that may be stored in the allocated space.
+ This reduces memory requirement a small bit, and makes some range
+ checks simpler to code.
+ * generic/tclTestObj.c: Replace the [teststringobj ualloc] testing
+ * tests/stringObj.test: command with [teststringobj maxchars] and
+ update the tests.
+
+ * generic/tclStringObj.c: Removed limitation in
+ Tcl_AppendObjToObj where the char length of the result was only
+ computed if the appended string was all single byte characters.
+ This limitation was in place to dodge a bug in Tcl_GetUniChar.
+ With that bug gone, we can take advantage of always recording the
+ length of append results when we know it.
+
+2009-02-14 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c: Revisions so that we avoid creating
+ the strange representation of an empty string with
+ objPtr->bytes == NULL and stringPtr->hasUnicode == 0. Instead in
+ the situations where that was being created, create a traditional
+ two-legged stork representation (objPtr->bytes = tclEmptyStringRep
+ and stringPtr->hasUnicode = 1). In the situations where the strange
+ rep was treated differently, continue to do so by testing
+ stringPtr->numChars == 0 to detect it. These changes make the code
+ more conventional so easier for new maintainers to pick up. Also
+ sets up further simplifications.
+
+ * generic/tclTestObj.c: Revise updates to [teststringobj] so we don't
+ get blocked by MODULE_SCOPE limits.
+
+2009-02-12 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c: Rewrites of the routines
+ Tcl_GetCharLength, Tcl_GetUniChar, Tcl_GetUnicodeFromObj,
+ Tcl_GetRange, and TclStringObjReverse to use the new macro, and
+ to more simply and clearly split the cases depending on whether
+ a valid unicode rep is present or needs to be created.
+ New utility routine UnicodeLength(), to compute the length of unicode
+ buffer arguments when no length is passed in, with built-in
+ overflow protection included. Update three callers to use it.
+
+ * generic/tclInt.h: New macro TclNumUtfChars meant to be a faster
+ replacement for a full Tcl_NumUtfChars() call when the string has all
+ single-byte characters.
+
+ * generic/tclStringObj.c: Simplified Tcl_GetCharLength by
+ * generic/tclTestObj.c: removing code that did nothing.
+ Added early returns from Tcl_*SetObjLength when the desired length
+ is already present; adapted test command to the change.
+
+ * generic/tclStringObj.c: Re-implemented AppendUtfToUnicodeRep
+ so that we no longer pass through Tcl_DStrings which have their own
+ sets of problems when lengths overflow the int range. Now AUTUR and
+ FillUnicodeRep share a common core routine.
+
+2009-02-12 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclOODefineCmds.c (TclOOGetDefineCmdContext): Use the
+ correct field in the Interp structure for retrieving the frame to get
+ the context object so that people can extend [oo::define] without deep
+ shenanigans. Bug found by Federico Ferri.
+
+2009-02-11 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c: Re-implemented AppendUnicodeToUtfRep
+ so that we no longer pass through Tcl_DStrings which have their own
+ sets of problems when lengths overflow the int range. Now AUTUR and
+ UpdateStringOfString share a common core routine.
+
+ * generic/tclStringObj.c: Changed type of the 'allocated' field
+ * generic/tclTestObj.c: of the String struct (and the
+ TestString counterpart) from size_t to int since only int values are
+ ever stored in it.
+
+2009-02-10 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclEncoding.c: Eliminate some unnessary type casts
+ * generic/tclEvent.c: some internal const decorations
+ * generic/tclExecute.c: spacing
+ * generic/tclIndexObj.c:
+ * generic/tclInterp.c:
+ * generic/tclIO.c:
+ * generic/tclIOCmd.c:
+ * generic/tclIORChan.c:
+ * generic/tclIOUtil.c:
+ * generic/tclListObj.c:
+ * generic/tclLiteral.c:
+ * generic/tclNamesp.c:
+ * generic/tclObj.c:
+ * generic/tclOOBasic.c:
+ * generic/tclPathObj.c:
+ * generic/tclPkg.c:
+ * generic/tclProc.c:
+ * generic/tclRegexp.c:
+ * generic/tclScan.c:
+ * generic/tclStringObj.c:
* generic/tclTest.c:
- * tests/fileSystem.text: fixed test 7.2 to avoid a possible
- crash, and not change the pwd.
-
- * tests/http.text: added comment to test 4.15, that it may
- fail if you use a proxy server.
-
-2003-02-06 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tclCompCmds.c (TclCompileIncrCmd):
- * tests/incr.test: Don't include the text
- "(increment expression)" in the errorInfo
- generated by the compiled version of the
- incr command since it does not match the
- message generated by the non-compiled version
- of incr. It is also not possible to match
- this error output under Jacl, which does
- not support a compiler.
-
-2003-02-06 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tclExecute.c (TclExecuteByteCode): When an
- error is encountered reading the increment value during
- a compiled call to incr, add a "(reading increment)"
- error string to the errorInfo variable. This makes
- the errorInfo variable set by the compiled incr command
- match the value set by the non-compiled version.
- * tests/incr-old.test: Change errorInfo result for
- the compiled incr command case to match the modified
+ * generic/tclTestProcBodyObj.c:
+ * generic/tclThread.c:
+ * generic/tclThreadTest.c:
+ * generic/tclTimer.c:
+ * generic/tclTrace.c:
+ * generic/tclUtil.c:
+ * generic/tclVar.c:
+ * generic/tclStubInit.c: (regenerated)
+
+2009-02-10 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * unix/tcl.m4: [Bug 2502365]: Building of head on HPUX is broken when
+ using the native CC.
+ * unix/configure: (autoconf-2.59)
+
+2009-02-10 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclObj.c (Tcl_GetString): Added comments and validity
+ checks following the call to an UpdateStringProc.
+
+ * generic/tclStringObj.c: Reduce code duplication in Tcl_GetUnicode*.
+ Restrict AppendUtfToUtfRep to non-negative length appends.
+ Convert all Tcl_InvalidateStringRep() calls into macros.
+ Simplify Tcl_AttemptSetObjLength by removing unreachable code.
+ Simplify SetStringFromAny() by removing unreachable and duplicate code.
+ Simplify Tcl_SetObjLength by removing unreachable code.
+ Removed handling of (objPtr->bytes != NULL) from UpdateStringOfString,
+ which is only called when objPtr->bytes is NULL.
+
+2009-02-09 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclCompile.c: [Bug 2555129]: const compiler warning (as
+ error) in tclCompile.c
+
+2009-02-07 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclZlib.c (TclZlibCmd): [Bug 2573172]: Ensure that when
+ invalid subcommand name is given, the list of valid subcommands is
+ produced. This gives a better experience when using the command
+ interactively.
+
+2009-02-05 Joe Mistachkin <joe@mistachkin.com>
+
+ * generic/tclInterp.c: [Bug 2544618]: Fix argument checking for
+ [interp cancel].
+ * unix/Makefile.in: Fix build issue with zlib on FreeBSD (and possibly
+ other platforms).
+
+2009-02-05 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCmdMZ.c (StringIndexCmd, StringRangeCmd, StringLenCmd):
+ Simplify the implementation of some commands now that the underlying
+ string API knows more about bytearrays.
+
+ * generic/tclExecute.c (TclExecuteByteCode): [Bug 2568434]: Make sure
+ that INST_CONCAT1 will not lose string reps wrongly.
+
+ * generic/tclStringObj.c (Tcl_AppendObjToObj): Special-case the
+ appending of one bytearray to another, which can be extremely rapid.
+ Part of scheme to address [Bug 1665628] by making the basic string
+ operations more efficient on byte arrays.
+ (Tcl_GetCharLength, Tcl_GetUniChar, Tcl_GetRange): More special casing
+ work for bytearrays.
+
+2009-02-04 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c: [Bug 2561794]: Added overflow protections to
+ the AppendUtfToUtfRep routine to either avoid invalid arguments and
+ crashes, or to replace them with controlled panics.
+
+ * generic/tclCmdMZ.c: [Bug 2561746]: Prevent crashes due to int
+ overflow of the length of the result of [string repeat].
+
+2009-02-03 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * macosx/tclMacOSXFCmd.c: Eliminate some unnessary type casts
+ * unix/tclLoadDyld.c: some internal const decorations
+ * unix/tclUnixCompat.c: spacing
+ * unix/tclUnixFCmd.c
+ * unix/tclUnixFile.c
+ * win/tclWinDde.c
+ * win/tclWinFCmd.c
+ * win/tclWinInit.c
+ * win/tclWinLoad.c
+ * win/tclWinPipe.c
+ * win/tclWinReg.c
+ * win/tclWinTest.c
+ * generic/tclBasic.c
+ * generic/tclBinary.c
+ * generic/tclCmdAH.c
+ * generic/tclCmdIL.c
+ * generic/tclCmdMZ.c
+ * generic/tclCompCmds.c
+ * generic/tclDictObj.c
+
+2009-02-03 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclObj.c (tclCmdNameType): [Bug 2558422]: Corrected the type
+ of this structure so that extensions that write it (yuk!) will still
+ be able to function correctly.
+
+2009-02-03 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c (SetUnicodeObj): [Bug 2561488]:
+ Corrected failure of Tcl_SetUnicodeObj() to panic on a shared object.
+ Also factored out common code to reduce duplication.
+
+ * generic/tclObj.c (Tcl_GetStringFromObj): Reduce code duplication.
+
+2009-02-02 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclInterp.c: Reverted the conversion of [interp] into an
+ * tests/interp.test: ensemble. Such conversion is not necessary
+ * tests/nre.test: (or even all that helpful) in the NRE-enabling
+ of [interp invokehidden], and it has other implications -- including
+ significant forkage of the 8.5 and 8.6 implementations -- that are
+ better off avoided if there's no gain.
+
+ * generic/tclStringObj.c (STRING_NOMEM): [Bug 2494093]: Add missing
+ cast of NULL to (char *) that upsets some compilers.
+
+ * generic/tclStringObj.c (Tcl_(Attempt)SetObjLength): [Bug 2553906]:
+ Added protections against callers asking for negative lengths. It is
+ likely when this happens that an integer overflow is to blame.
+
+2009-02-01 David Gravereaux <davygrvy@pobox.com>
+
+ * win/makefile.vc: Allow nmake flags such as -a (rebuild all) to pass
+ down to the pkgs targets, too.
+
+2009-01-30 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/chan.n: [Bug 1216074]: Added another extended example.
+
+ * doc/refchan.n: Added an example of how to build a scripted channel.
+
+2009-01-29 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/stringObj.test: [Bug 2006888]: Remove non-ASCII chars from
+ non-comment locations in the file, making it work more reliably in
+ locales with a non-Latin-1 default encoding.
+
+ * generic/tclNamesp.c (Tcl_FindCommand): [Bug 2519474]: Ensure that
+ the path is not searched when the TCL_NAMESPACE_ONLY flag is given.
+
+ * generic/tclOODecls.h (Tcl_OOInitStubs): [Bug 2537839]: Make the
+ declaration of this macro work correctly in the non-stub case.
+
+2009-01-29 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclInterp.c: Convert the [interp] command into a
+ * tests/interp.test: [namespace ensemble]. Work in progress
+ * tests/nre.test: to NRE-enable the [interp invokehidden]
+ subcommand.
+
+2009-01-29 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclNamesp.c (TclMakeEnsemble): [Bug 2529117]: Make this
+ function behave more sensibly when presented with a fully-qualified
+ name, rather than doing strange stuff.
+
+2009-01-28 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclBasic.c (TclInvokeObjectCommand): Made this understand
+ what to do if it ends up being used on a command with no objProc; that
+ shouldn't happen, but...
+
+ * generic/tclNamesp.c (TclMakeEnsemble): [Bug 2529157]: Made this
+ understand NRE command implementations better.
+ * generic/tclDictObj.c (DictForCmd): Eliminate unnecessary command
implementation.
- * tests/incr.test: Add tests to make sure the compiled
- and non-compiled errorInfo messages are the same.
-2003-02-06 Don Porter <dgp@users.sourceforge.net>
+2009-01-27 Donal K. Fellows <dkf@users.sf.net>
- * library/tcltest/tcltest.tcl: Filename arguments to [outputChannel]
- and [errorChannel] (also -outfile and -errfile) were [open]ed but
- never [closed]. Also, [cleanupTests] could remove output or error
- files. [Bug 676978].
- * library/tcltest/pkgIndex.tcl: Bumped to version 2.2.2.
+ * generic/tclOODefineCmds.c (Tcl_ClassSetConstructor):
+ [Bug 2531577]: Ensure that caches of constructor chains are cleared
+ when the constructor is changed.
-2003-02-05 Mo DeJong <mdejong@users.sourceforge.net>
+2009-01-26 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
- * tests/interp.test:
- * tests/set-old.test: Run test cases that depend
- on hash order through lsort so that the tests
- also pass under Jacl. Does not change test
- results under Tcl.
+ * generic/tclInt.h: [Bug 1028264]: WSACleanup() too early.
+ * generic/tclEvent.c: The fix introduces "late exit handlers" for
+ * win/tclWinSock.c: similar late process-wide cleanups.
-2003-02-04 Vince Darley <vincentdarley@users.sourceforge.net>
+2009-01-26 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
- * generic/tclIOUtil.c:
- * generic/tclEvent.c:
- * generic/tclInt.h:
- * mac/tclMacFCmd.c:
- * unix/tclUnixFCmd.c:
- * win/tclWin32Dll.c:
- * win/tclWinFCmd.c:
- * win/tclWinInit.c:
- * win/tclWinInt.h:
- * tests/fileSystem.test: fix to finalization/unloading/encoding
- issues to make filesystem much less dependent on encodings for
- its cleanup, and therefore allow it to be finalized later in the
- exit process. This fixes fileSystem.test-7.1. Also fixed one
- more bug in setting of modification dates of files which have
- undergone cross-platform copies. [Patch 676271]
-
- * tests/basic.test:
- * tests/exec.test:
- * tests/fileName.test:
- * tests/io.test: fixed some test failures when tests are run
- from a directory containing spaces.
-
- * tests/fileSystem.test:
- * generic/tclTest.c: added regression test for the modification
- date setting of cross-platform file copies.
-
-2003-02-03 Kevin Kenny <kennykb@users.sourceforge.net>
-
- * generic/tclBasic.c: Changed [trace add command] so that 'rename'
- callbacks get fully qualified names of the command. [Bug
- 651271]. ***POTENTIAL INCOMPATIBILITY***
- * tests/trace.test: Modified the test cases for [trace add
- command] to expect fully qualified names on the 'rename'
- callbacks. Added a case for renaming a proc within a namespace.
- * doc/trace.n: Added language about use of fully qualified names
- in trace callbacks.
-
-2003-02-01 Kevin Kenny <kennykb@users.sourceforge.net>
-
- * generic/tclCompCmds.c: Removed an unused variable that caused
- compiler warnings on SGI. [Bug 664379]
-
- * generic/tclLoad.c: Changed the code so that if Tcl_StaticPackage
- is called to report the same package as being loaded in two interps,
- it shows up in [info loaded {}] in both of them (previously,
- it didn't appear in the static package list in the second.
-
- * tests/load.test Added regression test for the above bug.
- [Bug 670042]
-
- * generic/tclClock.c: Fixed a bug that incorrectly allowed
- [clock clicks {}] and [clock clicks -] to be accepted as if
- they were [clock clicks -milliseconds].
-
- * tests/clock.test: Added regression tests for the above bug.
- [Bug 675356]
-
- * tests/unixNotfy.test: Added cleanup of working files
- [Bug 675609]
-
- * doc/Tcl.n: Added headings to the eleven paragraphs, to improve
- formatting in the tools that attempt to extract tables of contents
- from the manual pages. [Bug 627455]
-
- * generic/tclClock.c: Expanded mutex protection around the setting
- of env(TZ) and the thread-unsafe call to tzset(). [Bug 656660]
-
-2003-01-31 Don Porter <dgp@users.sourceforge.net>
-
- * tests/tcltest.test: Cleaned up management of file/directory
- creation/deletion to improve "-debug 1" output. [Bug 675614]
- The utility [slave] command failed to properly [list]-quote a
- constructed [open] command, causing failure when the pathname
- contained whitespace. [Bug 678415]
-
- * tests/main.test: Stopped main.test from deleting existing file.
- Test suite should not delete files that already exist. [Bug 675660]
-
-2003-01-28 Don Porter <dgp@users.sourceforge.net>
-
- * tests/main.test: Constrain tests that do not work on Windows.
- [Bug 674387]
-
-2003-01-28 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * generic/tclIOUtil.c: fix to setting modification date
- in TclCrossFilesystemCopy. Also added 'panic' in
- Tcl_FSGetFileSystemForPath under illegal calling circumstances
- which lead to hard-to-track-down bugs.
-
- * generic/tclTest.c: added test suite code to allow
- exercising a vfs-crash-on-exit bug in Tcl's finalization caused
- by the encodings being cleaned up before unloading occurs.
- * tests/fileSystem.test: added new 'knownBug' test 7.1
- to demonstrate the crash on exit.
-
-2003-01-28 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tcl.h: Add TCL_PREFIX_IDENT and
- TCL_DEBUG_IDENT, used only by TclpCreateProcess.
- * unix/Makefile.in: Define TCL_DBGX.
- * win/Makefile.in: Define TCL_DBGX.
- * win/tclWinPipe.c (TclpCreateProcess):
- Check that the Tcl pipe dll actually exists
- in the Tcl bin directory and panic if it
- is not found. Incorporate TCL_DBGX into
- the Tcl pipe dll name. This fixes a really
- mysterious error that would show up when
- exec'ing a 16 bit application under Win95
- or Win98 when Tcl was compiled with symbols.
- The error seemed to indicate that the executable
- could not be found, but it was actually the
- Tcl pipe dll that could not be found.
-
-2003-01-26 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/README: Update msys+mingw URL to release 6.
- This version bundles gcc 3.
-
-2003-01-26 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/configure: Regen.
- * win/configure.in: Add test that checks to
- see if the compiler can cast to a union type.
- * win/tclWinTime.c: Squelch compiler warning
- about union initializer by casting to union
- type when compiling with gcc.
-
-2003-01-25 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tclIO.c (Tcl_CutChannel, Tcl_SpliceChannel):
- Invoke TclpCutFileChannel and TclpSpliceFileChannel.
- * generic/tclInt.h: Declare TclpCutFileChannel
- and TclpSpliceFileChannel.
- * unix/tclUnixChan.c (FileCloseProc, TclpOpenFileChannel,
- Tcl_MakeFileChannel, TclpCutFileChannel,
- TclpSpliceFileChannel): Implement thread load data
- cut and splice for file channels. This avoids
- an invalid memory ref when compiled with -DDEPRECATED.
- * win/tclWinChan.c (FileCloseProc, TclpCutFileChannel,
- TclpSpliceFileChannel): Implement thread load data
- cut and splice for file channels. This avoids
- an invalid memory ref that was showing up in the
- thread extension.
-
-2003-01-25 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/tclWin32Dll.c (TclpCheckStackSpace, squelch_warnings):
- * win/tclWinChan.c (Tcl_MakeFileChannel, squelch_warnings):
- * win/tclWinFCmd.c (DoRenameFile, DoCopyFile, squelch_warnings):
- Re-implement inline ASM SEH handlers for gcc.
- The esp and ebp registers are now saved on the
- stack instead of in global variables so that
- the code is thread safe. Add additional checks
- when TCL_MEM_DEBUG is defined to be sure the
- values were recovered from the stack properly.
- Remove squelch_warnings functions and add
- a dummy call in the handler methods to squelch
- compiler warnings.
-
-2003-01-25 Mo DeJong <mdejong@users.sourceforge.net>
+ * win/tclWinSock.c: [Bug 2446662]: Resync Win behavior on RST with
+ that of unix (EOF).
+
+2009-01-26 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclZlib.c (ChanClose): [Bug 2536400]: Only generate error
+ messages in the interpreter when the thread is not being closed down.
+
+2009-01-23 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/zlib.n: Added a note that 'zlib push' is reversed by 'chan pop'.
+
+2009-01-22 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclCompile.h: CONSTify TclPrintInstruction (TIP #27)
+ * generic/tclCompile.c
+ * generic/tclInt.h: CONSTify TclpNativeJoinPath (TIP #27)
+ * generic/tclFileName.c
+ * generic/tcl.decls: {unix win} is equivalent to {generic}
+ * generic/tclInt.decls
+ * generic/tclDecls.h: (regenerated)
+ * generic/tclIntDecls.h
+ * generic/tclGetDate.y: Single internal const decoration.
+ * generic/tclDate.c:
+
+2009-01-22 Kevin B. Kenny <kennykb@acm.org>
+
+ * unix/tcl.m4: Corrected a typo ($(SHLIB_VERSION) should be
+ ${SHLIB_VERSION}).
+ * unix/configure: Autoconf 2.59
+
+2009-01-21 Andreas Kupries <andreask@activestate.com>
+ * generic/tclIORChan.c (ReflectClose): [Bug 2458202]:
+ * generic/tclIORTrans.c (ReflectClose): Closing a channel may supply
+ NULL for the 'interp'. Test for finalization needs to be different,
+ and one place has to pull the interp out of the channel instead.
+
+2009-01-21 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c: New fix for [Bug 2494093] replaces the
+ flawed attempt committed 2009-01-09.
+
+2009-01-19 Kevin B. Kenny <kennykb@acm.org>
+
+ * unix/Makefile.in: [Patch 907924]:Added a CONFIG_INSTALL_DIR
+ * unix/tcl.m4: parameter so that distributors can control where
+ tclConfig.sh goes. Made the installation of 'ldAix' conditional upon
+ actually being on an AIX system. Allowed for downstream packagers to
+ customize SHLIB_VERSION on BSD-derived systems. Thanks to Stuart
+ Cassoff for his help.
+ * unix/configure: Autoconf 2.59
+
+2009-01-19 David Gravereaux <davygrvy@pobox.com>
+
+ * win/build.vc.bat: Improved tools detection and error message
+ * win/makefile.vc: Reorganized the $(TCLOBJ) file list into seperate
+ parts for easier maintenance. Matched all sources built using -GL to
+ both $(lib) and $(link) to use -LTCG and avoid a warning message.
+ Addressed the over-building nature of the htmlhelp target by moving
+ from a pseudo target to a real target dependent on the entire docs/
+ directory contents.
+ * win/nmakehlp.c: Removed -g option and GrepForDefine() func as it
+ isn't being used anymore. The -V option method is much better.
+
+2009-01-16 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tcl.h: Bump patchlevel to 8.6b1.1 to distinguish
+ * library/init.tcl: CVS snapshots from the 8.6b1 and 8.6b2 releases
+ * unix/configure.in: and to deal with the fact that the 8.6b1
+ * win/configure.in: version of init.tcl will not [source] in the
+ HEAD version of Tcl.
+
+ * unix/configure: autoconf-2.59
* win/configure:
- * win/configure.in: Define HAVE_ALLOCA_GCC_INLINE
- when we detect that no alloca function is found
- in malloc.h and we are compiling with GCC.
- Remove HAVE_NO_ALLOC_DECL define.
- * win/tclWin32Dll.c (TclpCheckStackSpace):
- Don't define alloca as a cdecl function.
- Doing this caused a tricky runtime bug because
- the _alloca function expects the size argument
- to be passed in a register and not on the stack.
- To fix this problem, we use inline ASM when
- compiling with gcc to invoke _alloca with the
- size argument loaded into a register.
-
-2003-01-24 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tclWinDde.c (Dde_Init): clarified use of tsdPtr.
- (DdeServerProc): better refcount handling of returnPackagePtr.
-
- * generic/tclEvent.c (Tcl_Finalize): revert finalize change on
- 2002-12-04 to correct the issue with extensions that have TSD
- needing to finalize that before they are unloaded. This issue
- needs further clarification.
-
- * tests/unixFCmd.test: only do groups check on unix
-
-2003-01-24 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * generic/tclStringObj.c: proper fixes for Tcl_SetObjLength and
- Tcl_AttemptSetObjectLength dealing with string objects with
- both pure-unicode and normal internal representations.
- Previous fix didn't handle all cases correctly.
- * generic/tclIO.c: Add 'Tcl_GetString()' to ensure the object has
- a valid 'objPtr->bytes' field before manipulating it directly.
-
- This fixes [Bug 635200] and [Bug 671138], but may reduce performance
- of Unicode string handling in some cases. A further patch will
- be applied to address this, once the code is known to be correct.
-
-2003-01-24 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/configure: Regen.
- * win/configure.in: Add test to see if alloca
- is undefined in malloc.h.
- * win/tclWin32Dll.c (TclpCheckStackSpace): Rework
- the SEH exception handler logic to avoid using
- the stack since alloca will modify the stack.
- This was causing a nasty bug that would set the
- exception handler to 0 because it tried to pop
- the previous exception handler off the top of
- the stack.
-
-2003-01-23 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * doc/lset.n: Fixed fault in return values from lset in
- documentation examples [SF Bug #658463] and tidied up a bit at the
- same time.
-
-2003-01-21 Joe English <jenglish@users.sourceforge.net>
- * doc/namespace.n (namespace inscope): Clarified documentation
- [SF Patch #670110]
-
-2003-01-21 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/configure: Regen.
- * win/tcl.m4 (SC_CONFIG_CFLAGS): Set SHLIB_SUFFIX
- so that TCL_SHLIB_SUFFIX will be set to a useful
- value in the generated tclConfig.sh.
- Set SHLIB_LD_LIBS to "" or '${LIBS}' based on
- the --enable-shared flag. This matches the
- UNIX implementation.
-
-2003-01-18 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tclCkalloc.c: change %ud to %u as appropriate.
-
-2003-01-17 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/tclWinDde.c (DdeServerProc): Deallocate
- the Tcl_Obj returned by ExecuteRemoteObject
- if it was not saved in a connection object.
-
-2003-01-17 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tcl.h: Revert earlier change that
- defined TCL_WIDE_INT_TYPE as long long and
- TCL_LL_MODIFIER as L when compiling with
- mingw. This change ended up causing some
- test case failures when compiling with mingw.
- * generic/tclObj.c (UpdateStringOfWideInt):
- Describe the warning generated by mingw and
- why it needs to be ignored so that someone
- is not tempted to "fix" this problem again
- in the future.
-
-2003-01-16 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * generic/tclStringObj.c: Tcl_SetObjLength fix for when
- the object has a unicode string rep. Fixes [Bug 635200]
- * tests/stringObj.test: removed 'knownBug' constraint from
- test 14.1 now that this bug is fixed.
-
- * generic/tclInt.h:
- * generic/tclBasic.c:
- * generic/tclCmdMZ.z:
- * tests/trace.test: execution and command tracing bug fixes and
- cleanup. In particular fixed [Bug 655645], [Bug 615043],
- [Bug 571385]
- - fixed some subtle cleanup problems with tracing. This
- required replacing Tcl_Preserve/Tcl_Release with a more
- robust refCount approach. Solves at least one known crash
- caused by memory corruption.
- - fixed some confusion in the code between new style traces
- (Tcl 8.4) and the very limited 'Tcl_CreateTrace' which existed
- before.
- - made behaviour consistent with documentation (several
- tests even contradicted the documentation before).
- - fixed some minor error message details
- - added a number of new tests
-
-2003-01-16 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tclWinSerial.c (SerialOutputProc): add casts for
- bytesWritten to allow strict compilation (no warnings).
- * tests/winDde.test:
- * win/tclWinDde.c (Tcl_DdeObjCmd): Prevent crash when empty
- service name is passed to 'dde eval' and goto errorNoResult in
- request and poke error cases to free up any allocated data.
-
-2003-01-16 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/tclWin32Dll.c (squelch_warnings): Squelch
- compiler warnings from SEH ASM code.
- * win/tclWinChan.c (squelch_warnings): Squelch
- compiler warnings from SEH ASM code.
- * win/tclWinDde.c: Add casts to avoid compiler
- warnings. Pass pointer to DWORD instead of int
- to avoid compiler warnings.
- * win/tclWinFCmd.c (squelch_warnings): Add casts
- and fixup decls to avoid compiler warnings.
- Squelch compiler warnings from SEH ASM code.
- * win/tclWinFile.c: Add casts and fixup decls
- to avoid compiler warnings. Remove unused variable.
- * win/tclWinNotify.c: Declare as DWORD instead
- of int to avoid compiler warning.
- * win/tclWinReg.c: Add casts to avoid compiler
- warning. Fix assignment in if expression bug.
- * win/tclWinSerial.c: Add casts to avoid compiler
- warnings. Remove unused variable.
- * win/tclWinSock.c: Add casts and fixup decls
- to avoid compiler warnings.
-
-2003-01-14 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tclClock.c (FormatClock): corrected typo that
- incorrectly conditionally defined savedTZEnv and savedTimeZone.
-
-2003-01-13 Mo DeJong <mdejong@users.sourceforge.net>
-
- Fix mingw build problems and compiler warnings.
-
- * generic/tcl.h: Add if defined(__MINGW32__)
- check to code that sets the TCL_WIDE_INT_TYPE
- and TCL_LL_MODIFIER.
- * generic/tclClock.c (FormatClock): Don't
- define savedTimeZone and savedTZEnv if
- we are not going to use them.
- * generic/tclEnv.c: Add cast to avoid warning.
- * win/tclWinChan.c: Use DWORD instead of int
- to avoid compiler warning.
- * win/tclWinThrd.c: Only define allocLock,
- allocLockPtr, and dataKey when TCL_THREADS
- is defined. This avoid a compiler warning
- about unused variables.
-
-2003-01-12 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/README: Update msys + mingw URL, the
- new release includes the released 1.0.8
- version of msys which includes a number
- of bug fixes.
-
-2003-01-12 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/configure: Regen.
- * win/tcl.m4 (SC_CONFIG_CFLAGS): Pull in
- addition of shell32.lib to LIBS_GUI that
- was added to the Tk tcl.m4 but never made
- it back into the Tcl version.
-
-2003-01-12 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tcl.h: Skip Tcl's define of CHAR,
- SHORT, and LONG when HAVE_WINNT_IGNORE_VOID
- is defined. This avoids a bunch of compiler
- warnings when building with Cygwin or Mingw.
- * win/configure: Regen.
- * win/configure.in: Define HAVE_WINNT_IGNORE_VOID
- when we detect a winnt.h that still defines
- CHAR, SHORT, and LONG when VOID has already
- been defined.
- * win/tcl.m4 (SC_LOAD_TCLCONFIG): Subst the
- TCL_DEFS loaded from tclConfig.sh so that
- Tcl defines can make it into the Tk Makefile.
-
-2003-01-12 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/configure: Regen.
- * win/configure.in: Check for typedefs like LPFN_ACCEPT
- in winsock2.h and define HAVE_NO_LPFN_DECLS if not found.
- * win/tclWinSock.c: Define LPFN_* typedefs if
- HAVE_NO_LPFN_DECLS is defined. This fixes the build
- under Mingw and Cygwin, it was broken by the changes
- made on 2002-11-26.
-
-2003-01-10 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * generic/tclIOUtil.c:
- * win/tclWinInt.h:
- * win/tclWinInit.c: fix to new WinTcl crash on exit with vfs,
- introduced on 2002-12-06. Encodings must be cleaned up after
- the filesystem.
-
- * win/makefile.vc: fix to minor VC++ 5.2 syntax problem
-
-2003-01-09 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclCompCmds.c (TclCompileReturnCmd): Corrected off-by-one
- problem with recent commit. [Bug 633204]
-
-2003-01-09 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * generic/tclFileName.c: remove unused variable 'macSpecialCase'
- [Bug 664749]
-
- * generic/tclIOUtil.c:
- * generic/tclInt.h:
- * unix/tclUnixFile.c:
- * mac/tclMacFile.c:
- * win/tclWinFile.c:
- * win/tclWinInt.h:
- * win/tclWin32Dll.c:
- * tests/cmdAH.test: fix to non-ascii chars in paths when
- setting mtime and atime through 'file (a|m)time $path $time'
- [Bug 634151]
+2009-01-14 Don Porter <dgp@users.sourceforge.net>
-2003-01-08 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclBasic.c (Tcl_DeleteCommandFromToken): Reverted most
+ of the substance of my 2009-01-12 commit. NULLing the objProc field of
+ a Command when deleting it is important so that tests for certain
+ classes of commands don't return false positives when applied to
+ deleted command tokens. Overall change is now just replacement of a
+ false comment with a true one.
- * generic/tclExecute.c (TclExprFloatError): Use the IS_NAN macro
- for greater clarity of code.
+2009-01-13 Jan Nijtmans <nijtmans@users.sf.net>
-2003-01-07 Don Porter <dgp@users.sourceforge.net>
+ * unix/tcl.m4: [Bug 2502365]: Building of head on HPUX is broken when
+ using the native CC.
+ * unix/configure (autoconf-2.59)
- * generic/tclCompCmds.c (TclCompileReturnCmd):
- * tests/compile.test: Corrects failure of bytecompiled
- [catch {return}] to have result TCL_RETURN (not TCL_OK) [Bug 633204].
- This patch is a workaround for 8.4.X. A new opcode INST_RETURN is a
- better long term solution for 8.5 and later.
+2009-01-13 Donal K. Fellows <dkf@users.sf.net>
-2003-01-04 David Gravereaux <davygrvy@pobox.com>
+ * generic/tclCmdMZ.c (Tcl_ThrowObjCmd): Move implementation of [throw]
+ * library/init.tcl (throw): to C from Tcl.
- * win/makefile.vc:
- * win/rules.vc: Fixed INSTALLDIR macro problem that blanked itself
- by accident causing the install target to put the tree at the root
- of the drive built on. Whoops..
-
- Renamed the 'linkexten' option to be 'staticpkg'. Added 'thrdalloc'
- to allow the switching _on_ of the thread allocator. Under testing,
- I found it not to be benificial under windows for the purpose of the
- application I was using it for. It was more important for this app
- that resources for tcl threads be returned to the system rather than
- saved/moved to the global recycler. Be extra clean or extra fast
- for the default threaded build? Let's move to clean and allow it to
- be switched on for users who find it benificial for their use of
- threads.
+2009-01-12 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclBasic.c (Tcl_DeleteCommandFromToken): One consequence of
+ the NRE rewrite is that there are now situations where a NULL objProc
+ field in a Command struct is perfectly normal. Removed an outdated
+ comment in Tcl_DeleteCommandFromToken that claimed we use
+ cmdPtr->objPtr==NULL as a test of command validity. In fact we use
+ cmdPtr->flags&CMD_IS_DELETED to perform that test. Also removed the
+ setting to NULL, since any extension following the advice of the old
+ comment is going to be broken by NRE anyway, and needs to shift to
+ flag-based testing (or stop intruding into such internal matters).
+ Part of [Bug 2486550].
+
+2009-01-09 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c (STRING_SIZE): [Bug 2494093]: Corrected
+ failure to limit memory allocation requests to the sizes that can be
+ supported by Tcl's memory allocation routines.
+
+2009-01-09 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclNamesp.c (NamespaceEnsembleCmd): [Bug 1558654]: Error out
+ when someone gives wrong # of args to [namespace ensemble create].
+
+2009-01-08 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c (STRING_UALLOC): [Bug 2494093]: Added missing
+ parens required to get correct results out of things like
+ STRING_UALLOC(num + append).
+
+2009-01-08 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclDictObj.c, generic/tclIndexObj.c, generic/tclListObj.c,
+ * generic/tclObj.c, generic/tclStrToD.c, generic/tclUtil.c,
+ * generic/tclVar.c: Generate errorcodes for the error cases which
+ approximate to "I can't interpret that string as one of those" and
+ "You gave me the wrong number of arguments".
+
+2009-01-07 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/dict.n: [Tk Bug 2491235]: Added more examples.
+
+ * tests/oo.test (oo-22.1): Adjusted test to be less dependent on the
+ specifics of how [info frame] reports general frame information, and
+ instead to focus on what methods add to it; that's really what the
+ test is about anyway.
+
+2009-01-06 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/stringObj.test: Revise tests that demand a NULL Tcl_ObjType
+ in certain values to construct those values with [testdstring] so
+ there's no lack of robustness depending on the shimmer history of
+ shared literals.
+
+2009-01-06 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclDictObj.c (DictIncrCmd): Corrected twiddling in internals
+ of dictionaries so that literals can't get destroyed.
+
+ * tests/expr.test: [Bug 2006879]: Eliminate non-ASCII char.
+
+ * generic/tclOOInfo.c (InfoObjectMethodsCmd,InfoClassMethodsCmd):
+ [Bug 2489836]: Only delete pointers that were actually allocated!
+
+ * generic/tclOO.c (TclNRNewObjectInstance, Tcl_NewObjectInstance):
+ [Bug 2481109]: Perform search for existing commands in right context.
+
+2009-01-05 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCmdMZ.c (TclNRSourceObjCmd): [Bug 2412068]: Make
+ * generic/tclIOUtil.c (TclNREvalFile): implementation of the
+ [source] command be NRE enabled so that [yield] inside a script
+ sourced in a coroutine can work.
+
+2009-01-04 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclCmdAH.c: Tidy up spacing and code style.
+
+2009-01-03 Kevin B. Kenny <kennykb@acm.org>
+
+ * library/clock.tcl (tcl::clock::add): Fixed error message formatting
+ in the case where [clock add] is presented with a bad switch.
+ * tests/clock.test (clock-65.1) Added a test case for the above
+ problem [Bug 2481670].
+
+2009-01-02 Donal K. Fellows <dkf@users.sf.net>
+
+ * unix/tcl.m4 (SC_CONFIG_CFLAGS): [Bug 878333]: Force the use of the
+ compatibility version of mkstemp() on IRIX.
+ * unix/configure.in, unix/Makefile.in (mkstemp.o):
+ * compat/mkstemp.c (new file): [Bug 741967]: Added a compatibility
+ implementation of the mkstemp() function, which is apparently needed
+ on some platforms.
******************************************************************
+ *** CHANGELOG ENTRIES FOR 2008 IN "ChangeLog.2008" ***
+ *** CHANGELOG ENTRIES FOR 2006-2007 IN "ChangeLog.2007" ***
+ *** CHANGELOG ENTRIES FOR 2005 IN "ChangeLog.2005" ***
+ *** CHANGELOG ENTRIES FOR 2004 IN "ChangeLog.2004" ***
+ *** CHANGELOG ENTRIES FOR 2003 IN "ChangeLog.2003" ***
*** CHANGELOG ENTRIES FOR 2002 IN "ChangeLog.2002" ***
*** CHANGELOG ENTRIES FOR 2001 IN "ChangeLog.2001" ***
*** CHANGELOG ENTRIES FOR 2000 IN "ChangeLog.2000" ***
diff --git a/ChangeLog.1999 b/ChangeLog.1999