gaudi / GAUDI_v20r4-branch / GaudiKernel / doc / release.notes

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
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
Package : GaudiKernel
Package manager : Marco Clemencic

! 2009-07-17: Charles Leggett
    - GaudiKernel/IPartPropSvc

! 2009-06-10: Charles Leggett
    - GaudiKernel/Service.cpp, AlgTool.cpp: fix unchecked StatusCodes
	gerenated when exceptions are thrown.

! 2009-05-12: Charles Leggett
    - AlgTool.cpp: don't finalize if state != INITIALIZED

! 2009-04-29: Charles Leggett
    - GaudiException.h: StatusCode

! 2009-03-13: Charles Leggett
     - Property.h: useUpdateHanlder() returns a bool (patch #2871)
     - Algorithm.cpp, MinimalEventLoopMgr.cpp: proper exit code when
          Algorithm finalize() throws an exception. (patch #2867)

! 2009-01-21: Charles Leggett
     - GaudiKernel/IAlgTool.h: virtual destructor
                               bug #2747

! 2009-01-15: Charles Leggett
     - GaudiKernel/MsgStream.h: specialize operator<< for const char*

! 2009-01-14: Charles Leggett
     - add IIoComponent, IIoComponentMgr
     - Bootstrap.h/cpp: hasApplicationMgr()
     - StatusCode.cpp: move operator= to cpp (IssueSeverity)
     - PropertyMgr.h: ServiceHandleArray
     - ServiceHandle.h: ServiceHandleArray
     - IStateful.h, IAlgTool.h, AlgTool.h: disable configure()
     - python/GaudiKernel/GaudiHandles.py: ServiceHandleArray
     - ApplicationMgr, ServiceMgr: loopCheckIgnore()
     - ServiceMgr.cpp: delete all services in finalize recursively


================ GaudiKernel v26r1 ====================================
! 2008-12-16 - Marco Clemencic
 - Modified the Configurable.getValuedProperties logic to use all the explicitly
   set properties and not only those different from the defaults.

! 2008-12-15 - Marco Clemencic
 - Added the possibility of declaring "passive" dependencies between
   ConfigurableUser instances (i.e. C.U.s from which the properties are taken).
   The dependency is declared with the class data member
   __queried_configurables__.
 - Modified Python logging formatter of configurables to add the prefix ("#") to
   each printed line.

! 2008-12-10 - Marcus Frank
 - Patch #2699: First version of run records service
   Generalize DataIncident to also pass arbitrary parameters.

! 2008-12-09 - Marco Clemencic
 - Fixed minor problem in Configurable.__new__ for ConfigurableUser.

! 2008-12-07 - Marco Clemencic
 - Fixed compilation warning with gcc 4.3.

! 2008-12-05 - Marco Clemencic
 - Improved the logic of ConfigurableUser.propagateProperty (see the code for
   details).

! 2008-12-01 - Marco Clemencic
 - Fixed bug #44504. Inconsistent default for createIf flag for services.
   Set the default of the flag to "true" in both IServiceLocator::service
   signatures.
 - Fixed bug #44279. Ambiguous signature in setProperty functions
   Removed the redundant declarations.
 - Fixed problems with ToolHandles.

! 2008-11-27 - Marco Clemencic
 - Fixed compilation problems with ROOT 5.21/06.

================ GaudiKernel v26r0 ====================================
! 2008-11-13 - Pere Mato
 - Added the functions pushCurrentDataObject and popCurrentDataObject, taken
   from GaudiPoolDb.

! 2008-11-12 - Marco Clemencic
 - Added the possibility of specifying post-config actions (functions to be
   called after the call of all __apply_configuration__ methods) with the
   functions appendPostConfigAction and removePostConfigAction from
   GaudiKernel.Configurable (exposed via Gaudi.Configuration too).

! 2008-11-11 - Marco Clemencic
 - Added a small script (make_patch.py) to simplify the generation of patches.

! 2008-11-10 - Marco Clemencic
 - Minor change to ISvcManager to allow enable/disable of the initialization
   loop check.

! 2008-11-07 - Marco Clemencic
 - Added automatic registration of ConfigurableUser specializations to the
   database of configurables.

! 2008-11-06 - Marco Clemencic
 - Re-enabled the GaudiHandleProprtyProxy.
 - Modified the ConfigurableUser base class so that the ConfigurableUser classes
   declared as used are not active by default and they get activated the when
   they get instantiated explicitly. The test has been updated too.

! 2008-11-01 - Marco Clemencic
 - Fixed bug #43420. IPartPropSvc not accessible from Python
   Added the missing interface to the dictionary.

! 2008-10-30 - Marco Clemencic
 - Fixed a compilation problem on gcc4.3 with properties of type vector<pair>.
   (order of specializations in GaudiKernel/ToStream.h)
 - Replaced operator<<(MsgStream,vector) with the one in GaudiKernel/SerializeSTL.h
 - Modified the base class ConfigurableUser to allow automatic apply. If the
   ConfigurableUser derived class should touch other ConfigurableUser instances,
   the classes must be added to the class data member __used_configurables__
   (see tests/scripts/test_configurable_users.py in the package Gaudi).
 - Added the function GaudiKernel.Configurable.applyConfigurableUsers() which
   actually does the job of calling the apply method of all the ConfigurableUser
   instances.
 - Added the methods getProp and setProp to Configurable (LHCb contibution) and
   propagateProperty and propagateProperties to ConfigurableUsers (adaptations from
   LHCb contributions).

! 2008-10-28 - Marco Clemencic
 - Fixed bug #43314. Memory leak in StatusCode
   Added protection against self-assignment and delete of the owned
   IssueSeverity instance.

! 2008-10-27 - Marco Clemencic
 - Fixed warnings reported by gcc 4.3:
   - type qualifiers ignored on function return type
   - ../src/Lib/StatusCode.cpp:59: warning: the address of ‘addresses’ will
     always evaluate as ‘true’
   - ISO C++ forbids casting between pointer-to-function and pointer-to-object
     (only active for gcc >= 4)
 - Modified ConfigurableAlgTool.toStringProperty to use getFullName (to get rid
   of the parent name in front of the instance name).
 - Fixed a glitch in Configurable.__str__ when the property is a GaudiHandle.
 - Do not use the full path to genconf.exe with install area.
 - Fixed compilation errors and some warnings on gcc 4.3.

! 2008-10-23 - Marco Clemencic
 - Reverted old implementation of the reinitialize method of Algorithm, Service
   and AlgTool, i.e. do nothing. Fixes bug #39706.
 - Fixed bug #42428. Properties of clones are not cloned.
   - Modified the method clone to create copies of the properties if they are of
     types: [ str, list, dict, tuple ].
 - Fixed bug #43065. Error when unpickling GaudiHandles.
   - Modified the constructor of GaudiHandle to accept a GaudiHandle (or any
     instance with the method "toStringProperty") as argument.

! 2008-10-21 - Marco Clemencic
 - Improvements in the logging of GaudiKernel.ProcessJobOptions. "Print OFF" and
   "print ON" can be obtained using the GaudiKernel.ProcessJobOptions.PrintOn and
   GaudiKernel.ProcessJobOptions.PrintOff functions.

! 2008-10-20 - Marco Clemencic
 - Fixed the cast of errno from "int" to "unsigned long". (Fixes bug #25460)

! 2008-10-17 - Sebastien Binet
 - Fixed bug #42005. System::typeinfoName is missing 'signed char'
   - Added the missing case.

! 2008-10-17 - Marco Clemencic
 - Patch #2303. Improve/extend IAlgorithm interface
   Added the methods
    - setExecuted
    - isEnabled
    - filterPassed
    - setFilterPassed
 - Fixed bug #39846. gaudirun.py creates invalid entries in flattened options
   Modified filter "getNeededConfigurables" (GaudiKernel.Proxy.Configurable) to
   exclude ConfigurableUser instances.

! 2008-10-15 - Marco Clemencic
 - Excluded a couple of problematic methods from the dictionary (not preseent with
   ROOT 5.18, but causing problems with ROOT 5.21).
 - Fixed a problem with patch #2261. The usage of "id" for the aliases was
   conflicting with its usage for the DataObject factories.

! 2008-10-10 - Vanya Belyaev
 - Patch #2073: SharedObjectsContainer and 'blind' access to TYPE::Container &
                TYPE::Selection
   Added SharedObjectsContainer.

! 2008-10-09 - Pere Mato
 - Patch #2261. Introducing name alias for Algorithms and Services 
   Added the new macros DECLARE_NAMED_ALGORITHM_FACTORY(type,name) to be used
   instead of the current DECLARE_ALGORITHM_FACTORY(type) for algorithms with
   templates. Similarly for Services.

! 2008-10-09 - Marco Clemencic
 - Modified the return type of the "size" methods of ObjectContainerBase,
   KeyedContainer, ObjectList and ObjectVector to be size_t (i.e. "unsigned long")
   instead of long.
   It avoids some compilation warnings.

! 2008-10-09 - Vanya Belyaev
 - Patch #2058. Extensions for AIDA::TProfile1D
   IHistogramSvc : few new methods are added for booking of 1D-profiles with
                   Y-range and options

! 2008-10-03 - Marco Clemencic
 - Added ITHistSvc::getGraphs(), needed by patch #1963.

! 2008-10-01 - Marco Clemencic
 - Minor change in System::backTrace interface.

! 2008-10-01 - Frank Winklmeier
 - Patch #1797: Backtrace utility for System
   Generalized version of the code taken from IssueLogger::getTraceBack()
   (GaudiSvc).
 - Patch #1796: Performance improvement for message reporting

! 2008-08-06 - Marco Clemencic
 - Fixed bug #39809 (wrong configuration of public tools).

! 2008-08-05 - Marco Clemencic
 - Fixed bug #39250. Cannot use configurable instances as values for properties
                     of type map<str,str>.
 - Fixed bug #39117. gaudirun.py export to old options does not handle correctly
                     GaudiHandles.
   Added the method getFullName. 
 - Fixed bug #39116. gaudirun.py export to old options prints '#' instead of '//'
   The fix required a review of the way messages are printed across the whole
   Configurables machinery. The Python standard logging module is now used and
   the customization in GaudiKernel.Logging has been removed.
   In printout in Python job option files should be done with the log instance
   accessible from Gaudi.Configuration.

================ GaudiKernel v25r2 ====================================
! 2008-07-17 - Marco Clemencic
 - Added the interface IEventTimeDecoder (from LHCb detector description), and
   the Reflex dictionary for it.

! 2008-07-15 - Marco Clemencic
 - Fixed bug #38868. MinimalEventLoopMgr does not restart algorithms
   Implemented restart so that it calls the restart of all the algorithms. 
   Fixed the implementation of reinitialize too.

! 2008-07-15 - Gerhard Raven
 - Fixed bug #38855. Inconsistent check in Service::sysRestart.
   Fixed a the result of a bad cut & paste.

! 2008-07-15 - Vanya Belyaev
 - Patch #1756. Decrease the probability for FPE in StatEntity::addFlag
   Added a check in StatEntity::addFlag to avoid floating point exceptions
   (underflows).

! 2008-07-11 - Charles Leggett
 - requirements: tweak genconfig_cmd macro to work with GAUDI_ATLAS tag

! 2008-06-30 - Marco Clemencic
 - Cleaned up Boost link options plus a fix for Boost 1.35.

================ GaudiKernel v25r1 ====================================
! 2008-06-25 - Marco Clemencic
 - Fixed bug #38206: gaudirun.py fails to set a list property from a property
                     reference.
 - Fixed bug #38194: gaudirun.py expands too many environment variables
   Avoid to expand the environment variables in the strings.

================ GaudiKernel v25r0 ====================================
! 2008-06-12 - Marco Clemencic
 - Modified the logic behind IFileAccess: the implementation must be able to
   tell which protocols it can handle.

! 2008-06-10 - Charles Leggett, Marco Clemencic
 - Fixed bug #37690. message svc release() in Auditor destructor
   - Moved the call the message service release to the finalize method, where it
     should be.

! 2008-06-10 - Marco Clemencic
 - Added platform-independent sleep functions:
   - Gaudi::Sleep(int)
   - Gaudi::NanoSleep(long long)
 
! 2008-06-06 - Marco Clemencic
 - Fixed Windows compilation warning (caused by patch #1756).

! 2008-06-05 - Marco Clemencic
 - Fixed bug #36742. Cannot pickle options using "PropertyReference"
 - Fixed a problem on osx105 (Undefined symbols: _environ).
 - Fixed bug #37479. gaudirun.py fails parsing old option lines with comments
                     and quotes.
 - Fixed bug #37488. importOptions does not expand environment variables.
 - Fixed bug #35347. Cannot import 2 Python option files with the same name.
   - Used execfile instead of __import__ for Python modules, following Paolo's
     suggestion).
 - Fixed bug #35913. Configurables type checking fails on Gaudi::Histo1DDef.
   - Fixed avoiding that tuples and lists are treated the same way.
 - Fixed bug #34769. Assigning a configurable to a list property does not fail.
   - Values for properties expecting lists, tuples and dictionaries must match
     the type (before it was possible to set a list from an iterable object).
 - Fixed handling of files starting with '#!' in gaudirun.py 

! 2008-06-04 - Marco Clemencic
 - Fixed the last place where dylib was used on OSX (DsoUtils.h).

! 2008-06-04 - Charles Leggett
 - Patch #1865. Better printouts for HistorySvc.
   - Prints out more information about the various History objects to the output
     file.

! 2008-06-02 - Marco Clemencic
 - Task #5809. Extension to Gaudi Application state machine.
   First implementation of the proposed extension.
   A new interface (IStateful) has been added to provide a common way of
   interacting with the state machine.
   The interfaces IService, IAlgorithm and IAlgTool have been extended with the
   methods from IStateful, and ISvcManager and IAlgManager have been extended to
   support the new states.
   The states and the transition have been defined in enums
   (Gaud::StateMachine::State, Gaudi::StateMachine::Transition), and the
   constraints on the possible changes are enforced by the function
   Gaudi::StateMachine::ChangeState, which throws an exception if the transition
   is not allowed.
   Since algorithms and tools do not support all the states, the state
   Gaudi::StateMachine::CONFIGURED is reached after the constructor. Services
   are constructed in the state Gaudi::StateMachine::OFFLINE and become
   Gaudi::StateMachine::CONFIGURED in the base class initialize method (as
   defined in patch #1757).
   The methods Algorithm::setInitialized and Algorithm::setFinalized has been
   removed.
   IAuditor has been extended to support auditing of the new transitions (start
   and stop).
   The Reflex dictionary has been updated to include the new classes/enums. 

! 2008-05-29 - Charles Leggett
 - Changed the name of the extension for libraries on OSX from ".dylib" to ".so".

! 2008-05-13 - Vanya Belyaev
 - Patch #1756. Improvements for Chrono/ChronoStat&IChronoSvc
   - Removal of many (ugly) obsolete lines, overall cleanup, improved flexible
     print-out and other improvements.
   - GaudiKernel/IChronoSvc.h
     - The basic type from IChronoSvc now is "double" instead of "longlong".
     - Change the return type from void to "(const)StatEntity*" for the methods
       chronoStart/Stop.
   - GaudiKernel/ChronoEntity.h, src/Lib/ChronoEntity.cpp
     - The class is essentially rewritten (keeping the same public interface) in
       terms of the generic counter StatEntity. And internally it is just a set
       of three generic counters (for user/kernel&elapsed time correspondingly).
       New features includes the better control over the printout through new
       methods: outputUserTime, outputSystemTime, outputElapsedTime, outputTime.
   - GaudiKernel/Chrono.h
     - Make this tiny helper class simpler and more efficient:
       - for the usage with IChronoSvc, avoid one virtual call
       - allow the usage with ChronoEntity class

! 2008-05-09 - Marco Clemencic
 - Added small interface (IFileAccess) for services/tools that allow read-only
   file access agnostic of the storage backend (filesystem, web, CondDB, ...).
 - Fixed a minor problem in ProcessJobOptions.py strip away spaces in component
   and property names ("MyAlg . MyProp" -> "MyAlg.MyProp"). 

================ GaudiKernel v24r0 ====================================
! 2008-04-04 - Vanya BELYAEV
 - Patch #1751. Fixed a typo in Stat::operator-=.

! 2008-04-04 - Marco Clemencic
 - Bug #35201. Python options parser '//' interpreted as comment in strings.
   Fixed by adding an extra check in ProcessJobOptions.py to allow '//' in
   strings (like URLs). The fix is not perfect because requires that the string
   is on a single line, but at least allows it.
 - Fixed Bug #34680. Bad implementation of Service::messageSvc.
   The obsolete methods now forward the call to the correct ones.
   (anyway they should be removed at some point)
 - Fixed a problem introduced with patch #1757.
   Modified DataStreamTool to call sysInitialize instead of initialize for
   conversion services.
 
! 2008-04-04 - Charles Leggett
 - Patch #1757. detect creation/initialization loops for services.
   Modified the way the state of the service is set:
    - the base class initialize sets the state to CONFIGURED
    - the service becomes INITIALIZED in the sysInitialized, after the
      specialized service completed (successfully) the initialization.
 
! 2008-04-03 - Sebastien Binet / Martin Woudstra
 - Bug #34752/Patch #1747. GaudiHandleArray.__getstate__ prevents pickling.
   Fixed.

! 2008-04-03 - Vanya BELYAEV
 - Patch #1751.
   Change the signature of declareProperty/declareRemoteProperty methods
    - for PropertyMgr form "void" to "Property*"
    - for Algorithm/Service/AlgTool/Auditor base classes from StatusCode to
      "Property*"

   The previous return value was completely useless: 
    - either "void" or (always) StatusCode::SUCCESS

   With the pointer to the actual property returned, one can easily use it, e.g.
   to declare handlers as in:
   //----------------------------------------------------------------------
   class MyAlg : public Algorithm
   {
   
   public: 

     // constructor 

     MyAlg ( ... ): Algorithm ( ... ) 
                  , m_property( .... ) 
     {
       declareProperty ("Property" , m_property , "some documentation") 
         -> declareUpdateHandler ( &MyAlg::handler ) ;
     }      

   private:

     SOMETYPE m_property;

   };
   //----------------------------------------------------------------------

! 2008-04-03 - Marco Clemencic
 - Patch #1725. New IAuditor interface.
   - The Auditor member functions are now only 8, for all the combinations of:
     * before or after
     * standard event or custom event
     * INamedInterface* or string
   - All the after methods accept a StatusCode (if not specified, a SUCCESS with
     the checked flag set is used).
   - The obsolete member functions are kept for backward compatibility.
   - The default implementations of "before" and "after" are using the obsolete
     methods to make legacy Auditors to work.
   - IAuditorSvc is now an extension of IAuditor.
   - AuditorGuard has been adapted to the new interface and the audit with a
     status code check is simpler.
   - The standard event types defined in the enum IAuditor::StandardEventType
     can be printed and converted to strings with operator<<. 

! 2008-04-02 - Marco Clemencic
 - Python job options:
   - Removed the possibility of assigning a tool to an attribute of a
     configurable if that attribute/property does not exists. It was intended to
     allow simple declaration of private tools, but it is dangerous because it
     avoids the checking of the spelling of properties. 
   - Modified Configurable.addTool() to accept a subclass of ConfigurableAlgTool
     as first argument (as well as an instance) to avoid the instantiation of an
     unneeded instance of the public tool configurable. 

! 2008-03-11 - Hubert Degaudenzi
 - added 2 patterns to create and use helper library for genconf. Some libraries
   need to have other preloaded libraries in order to perform the genconf 
   procedure correctly. While this can be fixed on linux with the 
   LD_PRELOAD environment variable, this is not possible on windows. Thus
   the genconf executable takes an extra argument "--load-library" to which
   the full path of the helper library is passed.

! 2008-03-07 - Marco Clemencic
 - Added a work around for ROOT bug #34282 in dict/dictionary.xml (excluded few
   data members of Gaudi::Time).
 - Fixed Bug #34046. False warning when mixing Python options and old options.
   The check on the case of old options have been improved.

================ GaudiKernel v23r4 ====================================
! 2008-02-28 - Marco Clemencic
 - Minor change to fix a regression. The line

     #include"file.opts"

   is understood by the JobOptsSvc, but it was not by the Python parser.

! 2008-02-27 - Charles Leggett
 - Patch #1711. Get all instances of a tool type.
   Function used in the Atlas event display.

! 2008-02-27 - Marco Clemencic
 - Hack to avoid a conflict in the way Configurables are used in Athena and
   Gaudi.  In GaudiPython they are used in the AppMgr constructor, while in
   Athena they are used in a different moment (and not even all of them are
   needed).
   The conflict is resolved by using a function to return the needed
   configurables, implemented to return the keys of allConfigurables for Gaudi
   and and empty list for Athena. 

! 2008-02-27 - Wim Lavrijsen
 - Patch #1710. Convenience method for removing entries from GaudiHandleArray
   Add a simple convenience method for deleting tools from a ToolHandleArray by
   name, rather than having to locate them first.

! 2008-02-21 - Marco Clemencic
 - Moved the release of m_messageSvc and m_pAuditorSvc from Service::~Service to
   Service::sysFinalize.

! 2008-02-21 - Yushu Yao
 - Patch #1687. Adding getPropertyMgr() in AlgTool
   This is needed to develop double use tools (tools that can be used in Gaudi
   as well as in ROOT) in Athena.

! 2008-02-20 - Hubert Degaudenzi
 - added static function to Message.{h,cpp} in order to be able to access 
   Message::DEFAULT_FORMAT and Message::DEFAULT_TIME_FORMAT.

! 2008-02-04 - Charles Leggett
 - Patch #1668.
   In Python 2.5, the method __str__ of ServiceHandles gets called causing some
   problems. The reason has to be investigated, but the patch allows to work.
   
! 2008-02-04 - Yushu Yao
 - Patch #1666: Add AlgTool::declareRemoteProperty
   Added the member function declareRemoteProperty to AlgTool (present in
   Algorithm and Service).

! 2008-02-04 - Marco Clemencic
 - Fixed bug #33209: Deprecated raising a string with Python 2.5
   Added a class for errors occurring during the parsing (ParserError).

! 2008-01-29 - Marco Clemencic
 - Python options:
   Modified added a flag to the Configurable base class to block assignments.
   The flag is set in GaudiPython.AppMgr after the application manager has been
   configured, to prevent that people try to manipulate the configuration when
   it is too late.
   The lock does not (and cannot) work for in-place changes (like += on a list).  

! 2008-01-29 - Vanya BELYAEV
 - Modified IInterface::hash32 to use and return "unsigned int" instead of
   "unsigned long" for portability.

================ GaudiKernel v23r3 ====================================
! 2008-01-18 - Marco Clemencic
 - Fixed bug #32549.
   Changed the level of the message about the AbortEvent incident from ERROR to
   DEBUG. 
 - Fixed a compilation warning in genconf.cpp with Boost 1.34.1 on Win32.  

! 2008-01-14 - Vanya BELYAEV
 - Patch #1581.
   - GaudiKernel/Parsers.h, src/Lib/ParseMaps.cpp
      add the parser functions for parsion of following types:
      1) std::map<int,std::string>
      2) std::map<unsigned int, std::string>
    These types play important roles for LHCb-HLT and are requested 
      by Gerhard Raven 

! 2008-01-11 - Gerhard Raven
 - patch #1621 (bug #32466).
   Add to IToolSvc/ToolSvc the possibility of using observers to monitor the
   creation of and retrieval of tools.

! 2008-01-11 - Marco Clemencic
 - Python options:
   - Modified Configurable.addTool to set the property with the same name of the
     tool (if it exists), so that it not hides the tool reference.
   - Modified PropertyProxy.__get__ to allow direct access to the default for
     dictionaries as well as for lists.
   - Added the helper class Configurable.PropertyReference to allow the late
     binding of properties as it was possible in old options (mainly needed for
     backward compatibility).
     The option:
     
        MyAlg.MyProp = @AnotherAlg.AProp;
        
     translates to:
     
        MyAlg().MyProp = Configurable.PropertyReference("AnotherAlg.AProp")
     
   - Modified the parser of old job options to correctly translate references.
   - Modified ConfigurableAlgTool.getFullName to return only the instance name
     (instead of the fully qualified name).
   - Allow the wrong case for properties in old option files, but issue warnings.
   - Modified the default logger to print "GaudiKernel" instead of "Athena" and
     prepend a '#' to the message to allow evaluation of the standard output in
     Python (needed in Ganga).

! 2008-01-10 - Marco Clemencic
 - Fixed a problem in ProcessJobOptions.py occurring when option values have '\'
   inside (filenames on Windows).

! 2008-01-09 - Marco Clemencic
 - Python options:
   - Take the values for VERBOSE, DEBUG, INFO, WARNING, ERROR, FATAL always from
     GaudiKernel.Constants.
   - Made "Configurable" equivalent to "str", so that it is possible to set a
     string property from a configurable instance.  It allows something like:
     
       mySvc = AService("theService",...)
       myAlg = AnAlgorithm("theAlgorithm")
       myAlg.ServiceToUse = mySvc

! 2008-01-08 - Marco Clemencic
 - Fixed a problem in ProcessJoboptions.py: allow have white spaces before the
   '#' sign of directives.

! 2007-12-20 - Marco Clemencic
 - Improved the message of DataSvc when re-throwing a std::exception. Now the
   message contains the type of the exception.
 - Added a constructor for GaudiException accepting a std::exception. The type
   of the passed exception and its message are appended to the message of the
   GaudiException.
 - Fixed a problem in ProcessJoboptions.py when DOS new-lines were found on
   Unix. 
 
! 2007-12-19 - Marco Clemencic
 - Fixed a couple of typos in Map.h (preventing the generation of dictionary).
 - Check if a value is in the list before trying to delete it when interpreting
   "-=" in old job options.
 - Restored the original logic for parsing list in old job options (replace all
   "{}" with "[]", unless there is a ':').
    
! 2007-12-12 - Marco Clemencic
 - patch #1585.
   - Added the templated function pp_cast<DEST>(SRC**) to replace the common casts
       (void**)&pointer
     and
       (IInterface *&)m_mySvc
     to avoid the warning
       "dereferencing type-punned pointer will break strict-aliasing rules"
   - Fixed warnings about breaking of strict-aliasing rules (gcc 4.1 optimized).

! 2007-12-03 - Markus Frank & Marco Clemencic
 - Implemented the Win32 version of the code in DsoUtils.h, with some
   simplification.

! 2007-11-30 - Marco Clemencic
 - Fixed DsoUtils.h to work on OSX too.
 - Fix for bug #31677.
   Move GaudiHandles.py from GaudiPython to GaudiKernel.

! 2007-11-28 - Sebastien Binet
 - patch #1560.
   Minor change to avoid possible injection of GaudiKernel.Configurable through
   importOptions.

! 2007-11-26 - Marco Clemencic
 - Fixed a problem with the dictionary and ROOT >= 5.16.

! 2007-11-21 - Marco Clemencic
 - Fixed few compilation warnings on osx in the dictionary.

! 2007-11-20 - Marco Clemencic
 - Fixed few compilation warnings on win32 in the dictionary.

================ GaudiKernel v23r2 ====================================
! 2007-11-16 - Marco Clemencic
 - Added a new incident type (AbortEvent) that force the (Minimal)EventLoopMgr
   to skips all the top algorithms still to be executed for the current event.
   It can be used when a reconstruction step fails so it does not make sense to
   process the event, but we do not want to stop the application.   
 - Fixed a bug in the old job option interpretation if mixed with python
   options.
   The sequence:
     MessageSvc.OutputLevel = 1
     #include "SetMsgSvcOutLvlTo2.py"
     MessageSvc.OutputLevel = 1
   was not correctly setting the output level (if SetMsgSvcOutLvlTo2.py sets the
   output level).

! 2007-11-15 - Vanya Belyaev
 - patch #1523.
   Add possibility to have properties of the types std::map<int,int> and
   std::vector<std::pair<int,int> > (the second case is perfectly suited
   for Helder Lopez' request of the list of event/run numbers)
   modified files:
    - GaudiKernel/Parsers.h
      add two functions "parse" for parsing of new types
    - src/Lib/Parse*.cpp
      add the implementation of parsing functions

! 2007-11-14 - Marco Clemencic
 - Added the function GaudiKernel.Configurable.purge to clean up all the
   configurables and the list of already imported files from the memory.
   After a call to "purge" one is able to restart the configuration from scratch
   without having to leave the python session.
    
! 2007-11-13 - Marco Clemencic
 - Instead of generating *Conf.py files trying to import AthenaCommon and fail
   back on GaudiKernel, use the module GaudiKernel.Proxy, which internally does
   the same kind of trick but only once.
 
! 2007-11-13 - Sebastien Binet
 - patch #1520 (bug #31097)
   Removed a duplicated data member in ServiceHandle (same information already
   available in the base class).
 - patch #1158
   Modified genconf.exe to generate modules (*_confDb.py) with a smaller memory
   footprint. The code to fill the DB is encapsulated in a function that is then
   deleted after being called. 

! 2007-11-12 - Marco Clemencic
 - Moved the *.qmt files to the implicit suite (directory) "gaudikernel.qms".

! 2007-11-08 - Marco Clemencic
 - task #5807.
   Added the header GaudiKernel/SerializeSTL.h to provide implementations of
   operator<< for some common STL containers and GaudiUtils::*Map.
   The implementations live in the namespace GaudiUtils. To use them, one have
   to add "using namespace GaudiUtils" (in the relevant scope).
   Tests have been added too.

! 2007-11-02 - Marco Clemencic
 - Added a temporary work-around for OSX in ProcessDescriptor.cpp.
   To get timing information, it tries to open /proc/$PID/stats, which does not
   exist in OSX. The alternative is to use some other mechanism, but the one
   implemented in ProcessDescriptor seems to cause a segmentation fault.
   (to be investigated) 

! 2007-10-31 - Marco Clemencic
 - Rewritten ProcessJobOptions.py. Major changes:
   - honor the #pragma print on/off in old options
   - print a warning if a file is included twice (the second time it is ignored)
   - allow inclusion of ".py" and ".pkl" files from ".opts" files (this is the
     main reason fror the rewrite)
   - moved importOptions from Gaudi.Configaration to ProcessJobOptions to allow
     better recursion

! 2007-10-31 - Marco Clemencic
 - Minor change to the IUpdateManagerSvc interface (added the function :purge")

! 2007-10-29 - Pere Mato
 - KeyedObjectManager.cpp: changed order of specialization and instantiation
   to please gcc 4.0

! 2007-10-22 - Marco Clemencic
 - Use the pattern QMTest and add a .qmt file (QMTest test description) to run
   the DirSearchPath test.
 - Modified DirSearchPath_test to work on Windows too.

! 2007-10-16 - Paolo Calafiura
 - patch #1416. new DirSearchPath method and test
   - Added DirSearchPath::find_all
   - Moved the test from GaudiSvc to GaudiKernel

================ GaudiKernel v23r1 ====================================
! 2007-10-10 - Pere Mato
 - Corrected bug of ProcessJobOptions.py detected by Marco C. when using filenames with
   environments.

! 2007-10-09 - Marco Clemencic
 - Moved DirSearchPath from GaudiSvc/src/JobOptionsSvc to GaudiKernel
   (requested by Paolo Calafiura).
   Note: the 2 tests using DirSearchpath are still in GaudiSvc.

! 2007-10-02 - Pere Mato
 - Patch #1400.
   Support for pickle files in python configurations.
   Fixed various bugs in parsing old joboptions files

! 2007-09-28 - Vanya Belyaev
 - Patch #1345.
   minor modifications to improve Tuples::TupleObj (GaudiAlg package)
   - GaudiKernel/NTuple.h
       1) substitute the explicit specialization for NTuple::Range with 
          the regular calls of std::numeric_limits<T>::min()/max()
       2) disable "#ifndef ALLOW_ALL_TYPES"

! 2007-09-26 - Vanya Belyaev
 - patch #1375. Allow configuration of Histogram1D from job options.
   - New class Gaudi::Histo1DDef for histogram description/definition.
   - Implementation of parsing for new histogram properties.
     (Sascha Mazurov)

! 2007-09-25 - Vanya Belyaev
 - Patch #1357.
   Minor improvements to Gaudi::Utils::setProperty():
    - allow to set the documentation of a property
    - allow to set a property from a PopertyType

! 2007-09-24 - Sebastien Binet (& Marco Clemencic)
 - patch #1247. (partial)
   - avoid duplication of symbols in files generated by genconf.
     (Warning: Win32 implementation missing)
   Note: the patch was providing a patched version of genmap which cannot be
         included in Gaudi, but should be proposed to ROOT.

! 2007-09-24 - Hubert Degaudenzi
 - changed back Configurables.py into Configurable.py (it was
   a mistake).

! 2007-09-24 - Marco Clemencic
 - modified the way to pass  fallback module to genconf: comma-separated list
   instead of a dedicated option.

! 2007-09-24 - Markus Frank
 - fixed bug #29806. Wrong call to setDataProvider.

! 2007-09-21 - Hubert Degaudenzi & Marco Clemencic
 - factored out the main application part to the Gaudi package.
 - added the GaudiKernel prefix when importing python modules in order
   to avoid local imports.
 - changed the name of Configurable.py into Configurables.py for
   compatibility with the Athena module.
 - added an option to genconf that adds a fallback module for the
   location of Configurables and ConfigurableDb
 - modified the genconfig CMT pattern for the previous change to have
   AthenaCommon by default and if it doesn't exist fall back to
   GaudiKernel. This is a temporary fix until both approaches are merged.

! 2007-08-31 - Hubert Degaudenzi & Paolo Calafiura
 - Patch #1260.moved the MinimalEventLoopMgr from GaudiSvc to GaudiKernel. The factory 
   for this service is still in GaudiSvc

! 2007-08-06 - Vanya Belyaev
 - patch #1231.
   - Splitted IChronoStatSvc.h into IChronoSvc and IStatSvc.
   - Remove ICounterSvc::CountObject and replaced it with Stat.
   - Added few free functions to format StatEntity objects as table rows.

! 2007-07-27 - Marco Clemencic
 - Added the file cbrt.h, which provides an implementation of cbrt (cubic
   root) to all the platforms (it is a built-in function of gcc).

! 2007-07-24 - Vanya Belyaev
 - patch #1246.
   Introduced 2 new classes:
     * Gaudi::Guards::ExceptionGuard
       executes a functor in a "standard" try-catch block.
     * Gaudi::Guards::AuditorGuard
       executes a function of an object when the instance is created and
       a second one when destroied, allowing automatic "clean-up" (in case
       of early exit).
   See GaudiKernel/Gaurds.h (doxygen) for more details.

! 2007-07-24 - Charles Leggett
 - patch #1253.
   This patch fixes Algorithm.cpp, AlgTool.cpp and Service.cpp such that
   there is a consistent use of the auditorSvc-after[whatever] in the catch
   loops when an exception is thrown. It also gets rid of some needlessly
   verbose comments.

! 2007-07-24 - Pere Mato
 - patch #1250.
   Removed the default constructor of Service because it is causing a memory
   leak in Reflex.

! 2007-07-24 - Vanya Belyaev
 - patch #1227.
   Added the functions "Gaudi::Utils::setProperty(IInterface*,...)", simpler
   counterparts of "Gaudi::Utils::setProperty(IProperty*,...)".

! 2007-07-23 - Vanya Belyaev
 - patch #1226.
   * SmartIFBase<TYPE>:
     + explicitely disable copy constructor and assignement
     + add "checking operator", operator!()
   * SmartIF<TYPE> and SmartIF<IInterface>
     + add "const" into copy constructor
     + add the constructor from underlying pointer
     + add "const" into standard assignement
     + add "const" into template assignemet
     + remove line duplicates between standard assignement and assignement
       from the regular pointer
     + fix typo in return type of assignement from the base
     + add "checking operator", operator!()

! 2007-07-17 - Sebastien Binet
 - patch #1182.
   Improved precision for timing measurements in ProcessDescriptor
   (on linux).  The patch allow to use the function getrusage when
   possible to get a us precision instead of ms. When getrusage cannot
   be used, the timing is measured in the old way.

! 2007-07-16 - Marco Clemencic
 - changed the syntax for specialization of templated function in namespace 
   for gcc 4.1 future use
   
! 2007-07-16 - Hubert Degaudenzi
 - added the possibility to use the universal time for the messages.
   there is a new "%u" format for this. It replaces the usual "%t" in 
   the MessageSvc.Format.

! 2007-06-18 - Vanya Belyaev
 - patch #1178. 
    * The patch substitute the internal counters, used for
      (I)CounterSvc by generic counters of type StatEntity.
    * This allow to reuse the useful functionality of StatEntity class.
    * In addition it will allow an easy publishing and integration of
      counters with monitoring tasks.
    * Also it adds more functionality for grouping of counters, in
      particular the extraction of the whole group of counters
      (required by Matt Needham)
    * The printout of counters is now coherent with printout of
      generic counters through GuadiCommon<T>.

================ GaudiKernel v23r0 ====================================
! 2007-06-11 - Sebastien Binet
 - Fix to bug #26919. Explicit implementation of the copy constructor
   and assignment operator for the PropertyWithValue class.

! 2007-05-24 - Pere Mato
 - Added specialization of ROOT::Reflex::TypeDistiller for strings in
   AudFactory.h (was missing).

! 2007-05-24 - Marco Clemencic
 - Extended the IIncidentSvc interface to make it possible to register
   a listener for only one occurrence of the requested event
   (see bug #25552).

! 2007-05-24 - Vanya Belyaev
 - patch #1171. The enhancement of existing Algorithm Context Service
   is the primary goal of the proposed patch. The existing
   AlgContextSvc is not safe with respect to e.g. Data-On-Demand
   service or to operations with subalgorithms. The patched service
   essentially implements the queue of executing algorithms, thus the
   problems are eliminiated. In addition the enriched interface
   provides the access to the whole queue of executing algorithms.

! 2007-05-24 - Vanya Belyaev
 - patch #1163. Patch to allow the following syntax:
	 setProperty ( "OutputLevel" , "4" ) ;
	 setProperty ( "OutputLevel" , 4 ) ;  //new
	 setProperty ( "Enable" , "False" ) ;
	 setProperty ( "Enable" , false ) ; //new
	 setProperty ( "ErrorMax" , "10" ) ;
	 setProperty ( "ErrorMax" , 10 ) ; //new
	 std::vector<double> data = ... ; //new
	 setProperty( "Data" , data ) ; //new
	 std::map<std::string,double> cuts = ... ; //new
	 setProperty( "Cuts" , cuts ) ; //new
	 std::map<std::string,std::string> dict = ... ; //new
	 setProperty( "Dictionary" , dict ) ; //new
   The setting of properties through strings is still possible.
   
! 2007-05-23 - Marco Clemencic
 - patch #1168. Added specialization for void* to GaudiUtils::Hash.

! 2007-05-23 - Charles Leggett
 - patch #1176. Added few missing functions in ITHistSvc
   (already present in THistSvc)
 
! 2007-05-23 - Vanya Belyaev
 - patch #1161. Improvements and clean-up in StatEntity:
    - Removed "weight"-related functions and methods (unused)
    - Added binomial error calculation for efficiency-like counters
    - Improved print-out format
    - Added methods to make StatEntity mode DIM friendly
    - Some clean up in comments
 
! 2007-05-23 - Marco Clemencic
 - patch #1160. Changed the returned value of
    - Algorithm::setExecuted()
    - Algorithm::resetExecuted()
    - Algorithm::setFilterPassed()
   from StatusCode to void.

! 2007-05-22 - Marco Clemencic
 - patch #1166. Splitted ParseVectors.cpp in 6 pieces:
    * ParseVectorsBool.cpp
    * ParseVectorsChar.cpp
    * ParseVectorsInteger.cpp
    * ParseVectorsReal.cpp
    * ParseVectorsString.cpp
    * ParseVectorsVector.cpp
   to reduce memory usage at compile time (with a modest increase of
   disk space and compilation time).

! 2007-05-15 - Sebastien Binet
 - patch #1157. Here is a simple patch to harmonize the interaction
   with the underlying m_outputLevel data member of each of these main
   Gaudi components. It makes sure that the 3 of them have:
	int outputLevel () const;
	void initOutputLevel(Property&); //update handler
   also added this method to MsgStream:
	void setMsgSvc( IMessageSvc* svc ) {
	     m_service = svc;
	} 

! 2007-05-15 - Chris Jones
 - patch #1136: Updates to Algorithm and AlgTool required for
   changes in GaudiAlg for automatic registration of data to the
   monitoring service
  + Addition of the same declareInfo(...) methods in AlgTool as in
    Algorithm
  + Replace hardcoded monitor service name with new job option
  + New method to provide 'easy' direct access to monitor service
    via pointer

! 2007-05-15 - Sebastien Binet
 - patch #1129: Add the method outputLevel() to Auditor.

! 2007-05-14 - Marco Clemencic
 - fix to bug #25852 bis
   Fixed compilation problem on windows by adding the definitions for
   the missing functions localtime_r and gmtime_r
   (header GaudiKernel/time_r.h).
   Removed also a couple of compilation warnings.

! 2007-05-10 - Ivan Belyaev 
 Patch #1126: 
 - GaudiKernel/StatEntity.h, src/Lib/StatEntity.cpp
   1) Add the assignment operator from the scalar value according to
      the request by Ulrich Kerzel (LHCb/RICH)
   2) Add two new methods "efficiency" and "efficiencyErr" for
      evaluation of binomial estimate of the efficiency, associated
      with the counter. If the counter could be interpreted as
      efficiency, these methods produce right results. Method
      "efficiency" returns either "flagMean" or -1, if the
      interpretation of counter as efficiency is not possible. In a
      similar way "efficiencyErr" returns the binomial estimate of the
      uncertainty or -1, if the interpretation of counter as
      efficiency is not possible. Note that there could be sizable
      difference between RMS estimate "flagMeanRMS" and the binomial
      estimate "efficiencyErr", however for large statistics and for
      non-extremal (close to ~0 or, especially ~100%) efficiencies,
      these estimates should be very similar.
 - GaudiKernel/ToStream.h
   1) Add the printout for std::list
   2) Add the template parameters for std::vector, std::set, std:map,
      GaudiUtils::Map, GaudiUtils::VectorMap, GaudiUtils::HashMap. It
      allows to use all these function for containers with non-default
      optional template arguments, e.g. allocators, comparison
      criteria, hash functions or underlying containers,
   3) Remove the unused local variable "delim".
 - GaudiKernel/VectorMap.h, GaudiKernel/Map.h. Improve doxygen
   comments according to the request by Marco Cattaneo)

! 2007-05-10 - Hubert Degaudenzi
 - fixed warning for gcc 4 (on MacOSX) about non-existing virtual
   destructors in NTuple.h for NTuple::Array, NTuple::Matrix,
   NTuple::Item etc.

! 2007-05-09 - Sebastien Binet
 - patch #1141. Fix return statement of GaudiHandleArray::operator=.

! 2007-05-02 - Hubert Degaudenzi
 - fix to bug #25460. The return value of getLastError is now an
   unsigned long. A static_cast was added.

! 2007-04-30 - Andy Salnikov
 - fix to bug #25852. The patch is quite small and touches only two
   classes - Message and MessageSvc. Messages now have one more format
   flag '%t' which is replaced with the formatted timestamp on
   output. Default format string has not changed so default output
   will look identical to what it was before. The format of the
   timestamp can be changed through the additional format string
   similarly to the message format string. Time format can contain
   anything that is accepted by strftime plus additional '%f' code for
   milliseconds.

! 2007-04-27 - Sebastien Binet 
 - patch #25888. Fixed uninitialized variable in Algorithm.cpp.

! 2007-04-09 - Marco Clemencic
 - patch #1125. Fixed INamedInterface in order to provide the right 
   IInterfaceID. An empty virtual destructor has been added.

! 2007-04-05 - Martin Woudstra
 - Patch #1103. The attached 2 patches (one for GaudiPython and one
   for GaudiKernel) contain the changes needed to support
   ToolHandleArray's (a 'vector' of ToolHandles). This is a new
   feature, and is already in use in ATLAS. In addition to the
   ToolHandleArray and its associated base classes, there is the
   GaudiHandleArrayProperty, and an update to genconf to support it

! 2007-03-25 - Chris Jones
 - Patch #1099. Add Specialization stream operator for
   std::vector<T,A> to MsgStream.h Allows print out of vector created
   with custom allocators e.g. std::vector< RichSmartID,
   boost::pool_allocator< RichSmartID > >

! 2007-04-04 - Chris Jones
 - Patch #1092. There is a bug in the current implementation of the
   format(..) method in MsgStream.(cpp,h) which means if a user uses
   the format method twice in one message request, wrong information
   is printed. The attached patch fixes this by returning instead a
   std::string.  However, if somewere a user is explicitly using the
   returned char * pointer (They really shouldn't be...) a small
   change to their code would be required. i.e.
      char * c = format("XXX,x);
      to
      std::string s = format("XXX,x);
      c = s.c_str(); 

================ GaudiKernel v22r2 ====================================
! 2007-03-14 - Sebastien Binet
 - Patch #1081 (fix to bug #24704): fix the crash that happens when
   the destinatin file of genconf has a "+" in its path.

! 2007-03-13 - Sebastien Binet
 Patch #1080: fixes to GaudiKernel/src/Util/genconf.cpp:
 - fix handling of templated components
 - fix handling of (default value of) BooleanProperties
 - fix handling of NaN DoubleProperties (follows the good old Garbage
   In, Garbage Out pattern, even though a warning is issued during
   genconf processing...)


! 2007-03-12 - Vanya Belyaev
 - Patch #1073. Simple modification of IExceptionSvc interface (and
   the implementation ExceptionSvc) to avoid the explicit appearence
   of class Algorithm in the interface. The interface is modified to
   substitute Algorithms with INamedInterface. It allows to use the
   service in much wider context, in particular with tools, services
   and auditors.

! 2007-03-9 - Sebastien Binet
 - Patch #1058 (partially). Makes sure a DoubleProperty is understood
   as a double on the python side (and not converted into an int as it
   was the cast)
 - added merge_genconfDb.py scripts to merge configurables.

! 2007-03-9 - Hubert Degaudenzi
 - Clean up genconf pattern left over.

! 2007-03-08 - Martin Woudstra
 - patch #1070. The python configurables generated with the current
   genconf.cpp return the python (mangled) class name from the
   function getType(). This should be the C++ class name, otherwise
   the ToolSvc will not find tools from classes in namespaces and/or
   templated classes. This is critical as many classes in ATLAS as of
   these categories and all those are broken now.
 - patch #1071. The GaudiHandle version used in ATLAS has since some
   time an 'empty()' member function to indicate that no component is
   supposed to be retrieved nor used. For some reason this member
   function did not make it into Gaudi 19, so now the ATLAS code is
   broken. patch adds this member function to the GaudiHandleBase
   class, and allows the users to specify an 'empty' handle in the
   constructor (i.e. "" is kept is-as and does not trigger the setting
   to the default type).

! 2007-02-26 - Sebastien Binet
 patch #1041
 - removes some warnings wrt hidden methods

! 2007-02-26 - Paolo Calafiura
 - patch #1049: do a full include of SmartDataPtr.h instead of a
   forward declaration.

================ GaudiKernel v22r1 ====================================
! 2007-02-23 - Hubert Degaudenzi
 - moved the factory declaration of DataStreamTool to GaudiSvc

! 2007-02-16 - Hubert Degaudenzi
 - fixed genconf for the Auditors.

! 2007-02-16 Charles Leggett
 - patch #1019: refactor of the library into a component library.

! 2007-02-16 - Sebastien Binet
 Patch #1033
 - patch to genconf which prevents it to segfault when no property
   could be dyn-casted.

! 2007-02-15 - Marco Clemencic
 Patch 1032:
 - Added a helper class to allow the usage of IUpdateManagerSvc from
   python.  The helper class is IUpdateManagerSvc::PythonHelper,
   declared as friend of IUpdateManagerSvc. The implementation
   consists of 2 static functions implemented in dictionary.h.

! 2007-02-14 - Pere Mato
 - Fixed bug #23811: patch #1001 is breaking Configurables generation
 
! 2007-02-14 - Vanya BELYAEV
 Patch #1001
 - a) couple of fixes, which allows to retrieve the private tools not
      only from Algorithm, Services and AlgTools, but also from
      Auditors.
   b) Update the queryInteface method for AlgTool,Algorithm,Auditor
      and Servicebase classes to allow query for INamedInterface, in
      addition "C-cast" is substituted with "static_cast"
   The modified files: 
       src/Lib/AlgTool.cpp
       src/Lib/Algorithm.cpp
       src/Lib/Auditor.cpp 
       src/Lib/Service.cpp

! 2007-02-13 - Pere Mato
 - Reverted change in Booststrap.cpp. This fixes "bug #23684: BootSvcLocator is breaking athena.py"
 - genconf.cpp: applied "patch #1016: configurable genconf"
                fixed "bug #23649: ICounterSvc inheritance tree and Reflex::PluginSvc"
 
! 2007-02-08 - Pere Mato (David Quarrie)
 - Bootstrap.cpp:
   Introduced a dual-stage boostrap mechanism to ensure an orderly startup
   of the ApplicationMgr. If the Gaudi::svcLocator() function is called before the singleton
   ApplicationMgr instance exists, a BootSvcLocator singleton instance is
   created. This responds to any subsequent requests for services by
   returning StatusCode::FAILURE, unless the ApplicationMgr singleton 
   instance has been created in the interim. In this case, the BootSvcLocator
   forwards the request to the ApplicationMgr instance. The motiviation for
   this is to handle static object instances where the constructor attempts
   to locate services and would otherwise instantiate the ApplicationMgr
   instance in an unorderly manner. This logic requires that the 
   ApplicationMgr instance is created explicitly.


! 2007-02-07 - Martin Woudstra
 - fix to patch #1009. Avoid infinite recursion.

! 2007-02-05 - Pere mato (Sebastien Binet)
 - Applied patch #1009: patches to fix XyzHandle parsing from python
   jobOptions

! 2007-02-05 - Paolo Calafiura
 Patch #1007
 - turned the templated member functions operator << (T&) and its
   partial spec operator << (vector<T>&) into open functions. This
   appears to remove ambiguities a user defined MsgStream operator <<
   template (typically in a data object header file). The compiler
   sees the user defined template as a better specialization and
   matches that with no ambiguity.
 - removed the MsgStream& operator(std::ostream&) recently proposed as
   a patch since it does not serve any useful purpose

! 2007-01-31 - Pere Mato
 - Applied patch #1000: improvement in ConfigurableDb output for genconf

! 2007-01-30 - Pere Mato (
 - Applied [partially] patch #997: genconf.cpp patch       
 - It adds to genconf.cpp:
      - a "double loading" libraries to shield against dual_use
        libraries (which could bring lots of external
       libraries into the generated  Configurable)
      - the generation of an ASCII file (a-la-rootmap) to describe
        Configurables for the benefit of the (athena)
        PropertyProxy.py.

! 2007-01-27 - Pere Mato (Paolo Calafiura)
 - Variation of the templated streamer that should provide the same
   functionality and address the ambiguous overload problems ATLAS saw
   with the template

! 2007-01-18 - Charles Leggett
 - patch #977 on MsgStream.

! 2007-01-18 - Charles Leggett
 patch #972. 
 - add messageCount to IMessageSvc
 - extend Auditor::(sys)afterExecute to pass a const StatusCode&,
   which is the return code of the algorithm
 - new auditor to monitor algorithms, issue message if algorithm
   writes out an ERROR or FATAL, but returns SUCCESS

! 2007-01-17 - Marco Cattaneo
 - removed GCCXML_CXXFLAGS definition following fix in reflex.

! 2007-01-17 - Charles Leggett
 - patch #971: added ServiceHandle and GaudiHandle.

================ GaudiKernel v22r0 ====================================
! 2007-01-23 - Pere Mato
 - AlgFactory.h, SvcFactory.h, ToolFactory.h: added template specialization for Reflex::TypeDistiller to
   overcome a problem with Reflex and the name given to std::string. The change can be removed when Reflex
   will be modified.
 - MsgStream.h: Corrected compilation error.
   
! 2007-01-12 - Marco Clemencic
 - fix to patch #954. Modification of the interface of IDataStreamTool
   to avoid explicit reference to std::vector.
 - added the method addStream, in parallel to addStreams.

! 2007-01-12 - Hubert Degaudenzi
 - bug #22799. changed the return value of chronoStart, chronoStop,
   chronoPrint, stat and statPrint method of the IChronoStatSvc from
   StatusCode to void.

! 2007-01-10 - Eric van Herwijnen
 - Patch #943 & #946. Update of the IMonitorSvc interface. To be
   compatible with the DIM format. Added declareInfo for the special
   case of general structure monitoring to Algorithm.h.

! 2006-12-22 - Andres Osorio & Marco Clemencic
 Patch #954
 - Moved EventSelectorDataStream from GaudiSvc to GaudiKernel
 - Added IDataStreamTool and the basic implementation DataStreamTool
   (to be used by EventSelector to loop over the files)
 - fixed a few StatusCode checks.

! 2006-12-21 - Pere Mato
 - ConversionSvc.cpp(.h): added method
   ConversionSvc::loadConverter(DataObject*) to load anything
   necessary (typically a dictionary) for finding/initializing a
   converter. Dummy at the base class level.

! 2006-12-18 - Pere Mato
 - ServiceLocatorHelper.cpp: added the code that declares the service
   pair type/name. It was removed by mistake ( I guess) after the
   merge with all the changes from ATLAS.

! 2006-12-15 - Pere Mato
 - VectorMap.h: removed protected find() method to avoid compilation error in
                Event/HtlEvent package 

! 2006-12-14 - Hubert Degaudenzi
 - removed duplicated dictionary entry for InterfaceID (it is located in the
   GaudiPython dictionary)

! 2006-12-14 - Charles Leggett & Hubert Degaudenzi
 - fixed the SimpleProperty constructors for ATLAS usage (with Ivan
   Belyaev's help).
 - a few StatusCode checks fixing.
 - removed unused static function PR_indent in PathResolver.cpp

! 2006-12-10 - Charles Leggett
 - requirements: added "-pedantic" to Linux compilation in private
 - extra ";": AllocatorPool.h/.cpp, ChronoEntit, Debugger.h, Environment.h
              KeyedObject.cpp, KeyedObjectManager.h/.cpp, KeyedTraits.h
              Memory.h,  NTupleImplementation, NTupleItems.h, ProcessDescriptor
              Property.cpp, PropertyMgr.cpp, Selector.h, Stat.cpp, 
              StatEntity.cpp, TimePoint.h
 - auditors: Algorithm.h/cpp, AlgTool.h, Auditor.h/cpp, IAuditorSvc,
             Service.h/cpp
 - doc string for props: Algorithm.h, AlgTool.h, Auditor.h/cpp, Property.h/.cpp
 - service creation on demand: ServiceLocatorHelper.cpp, ISvcLocator
 - setPriority of services: ISvcManager
 - fire ModuleIncident when module loaded: IClassManager, 
	ModuleIncident.h (new)
 - IIncidentSvc.h: rethrow incident if requested with extra param to
                   addListener()
 - ToolHandle: GaudiHandle, ToolHandle, AlgTool::refCount, dictionary.h/.xml

! 2006-12-08 - Pere Mato
 - added Transform3DTypes.h, Transform4DTypes.h, Vector3DTypes.h,
   Vector4DTypes.h, Plane3DTypes.h, Point3DTypes.h, Point4DTypes.h,
   SymmetricMatrixTypes.h, Coord3DTypes.h, GenericMatrixTypes.h,
   GenericVectorTypes.h. These are typdefs to ROOT types.

! 2006-11-30 - Pere Mato
  Adpated package to the new PluginSvc
  - Removed protected from constructor/destructors and fiendship of
    Factory class
  - Removed files: FactoryTable.h, IAlgFactory.h, IAuditorFactory.h,
    ICnvFactory.h, IObjManager.h, IObjectFactory.h, IRndmGenFactory.h,
    ISvcFactory.h, IToolFactory.h, FactoryTable.h, ICnvManager.h
  - Deep changes in the XXXFactory.h files to take into account the
    new plugin service

! 2006-11-29 - Hubert Degaudenzi
 - this is the beginning of the release notes for the merge with the
   v20r13 release (v20r9b branch).

! 2006-11-26 - Vanya BELYAEV - patch #922
 - GaudiKernel/VectorMap.h
    1) On the request form ATLAS (Savannah reports  #21395 and #21394)
       add the method "update" to class GaudiUtils::VectorMap.
       NOTE: It is nor STL-compliant! 
       It behaves like "insert", but it OVERRIDES the mapped value 
    2) Also  "const-look-up" is added through the methods 
       "operator()" and "operator[]" 
       Again it is nto STL-complient signature: 
       the methdod are "const" , and there are no 
       "non-const" analogues 

     *  For typical usage of this class in LHCb context 
     *  as "ExtraInfo" field I would like to recommend 
     *  to AVOID this method 
 
    3) Add also the checked access in STL-spirit: 
        GaudiUtils::VectorMap::at   
       throw std::out_of_range exception for non-existing keys 
 - GaudiKernel/ToStream.h
    add the partial specialization for printout of following classes:  
     1) GaudiUtils::Map   
     2) GaudiUtils::HashMap   
     3) GaudiUtils::VectorMap
    The printout done in a style of "Python-dictionary", similar to 
     std::map 
    Also print out for std::set is added 
 - src/Lib/VectorMap.cpp
     new file fith implementtation of action for nonexisting key 

! 2006-11-22 - Hubert Degaudenzi
 - added environment variable GCCXML_CXXFLAGS=" -m32" for 32 bits
   compilation on amd64 machines (with the slc4-ia32 tag)
 - added environment variable GAUDIEXE which points to the Gaudi
   executable.

! 2006-11-02 - Hubert Degaudenzi
 - modified rootmapdump.py in order to match any file *beginning* with
   "rootmap" and not only the "rootmap" filename. This is the same
   matching behavior as the one in ROOT itself.

! 2006-10-27 - Ivan Belyaev
 - patch #870. Added operator << for StatusCode.

! 2006-10-26 - Marco Clemencic
 - Patch #736. Improvemts to TransientFastContainer. Now it allows to
   use for new objects the default constructor, the copy constructor
   and a user specified constructor (via placement new).

! 2006-10-12 - Marco Clemencic
 - Patch #879. Fixed a bug in DataSvc. When retrieving an object from
   the transient store, it fails if the root node has not yet been
   loaded. I added a check on the root node for those cases and I
   explicitely load it if needed.

! 2006-10-06 - Marco Clemencic
 - Patch #863. Add the function System::setEnv to set an environment
   variable.  Setting the variable to "" results in removing it from
   the environment (same behavior on windows and linux). The parameter
   overwrite define the behavior in the case the variable is alredy
   present (0=no change, 1=overwrite).

! 2006-11-29 - Hubert Degaudenzi
 - this is the end of the release notes for the merge with the
   v20r13 release (v20r9b branch).

! 2006-11-27 - David Quarrie
 - fixed compilation problems for MacOS 10.4

! 2006-11-17 - Pere Mato
 - ISvcLocator.h: Added new function eraseService() to erase a service
   from the list of known services
 - Service.cpp: The destructor calls eraseService() to cleanup the
   service list
 - Minor corrections for StatusCode.

! 2006-11-10 - Markus Frank -Patch #908
 - Removed access to histogram factory.
 - Added storage types for online usage to CLID.h
 - new header HistogramBase.h to allow access to ROOT implementation
   of AIDA histograms.

! 2006-11-09 - Pere Mato
 - Added classes JobHistory, AlgorithmHistory, AlgToolHistory,
   DataHistory, ServiceHistory from "GaudiHistory" package such that
   it can be removed. The goal is to have less packages
   (i.e. complexity)
 - requirements: added pattern to generate Python configuration file
 - genconf.cpp: adapted to new properties

================ GaudiKernel v21r0 ====================================
! 2006-10-31 - Pere Mato
 - StatusCode.h(.cpp) - Reworked to avoid copying complicated objects
   all the time

! 2006-09-25 - Hubert Degaudenzi
 - added the scripts folder with the rootmapdump.py utility. This
   scripts allows to dump the ROOTMAPs present in the
   LD_LIBRARY_PATH. It can also check the duplication of entries.

! 2006-09-21 - Hubert Degaudenzi
 - factored out the stacktrace function from the StatusCode class to the
   System.cpp file.

! 2006-09-09 - Hubert Degaudenzi
 - added dictionary generation for ExceptionSvc, IssueLogger,
   StatusCodeSvc, THistSvc.
 - fixed compilation problem for win32 in the StatusCode.cpp file.

! 2006-09-09 - Charles Leggett & Hubert Degaudenzi
 - Imported new services interfaces from ATLAS: IExceptionSvc,
   IIssueLogger, IStatusCodeSvc, ITHistSvc.
 - StatusCode.h has been modified (and has now an implementation)
 - new IssueSeverity.cpp.

! 2006-09-09 - Vanya BELYAEV - patch #839
 - GaudiKernel/Grammars.h
     Add a method StringGrammar::matchString, which allows to 
     substitute all "std::isspace" symbols with the blank.
     It is a bit incorrect operation, but it allows 
     to split very long string into few lines.
     It is incorrect since the overall number of blank symbols 
     in the string is a quantity which is difficult to control.
     One still needs to be very careful with CR/LF symbols in the 
     opts-files. 
     This particular fix solves the problem with configuration
     of DataOnDemandSvc, where long string are unavoidable. 
     The solution  ( 'std::isspace' --> ' ' ) has been discussed with 
     Marco Cattaneo. We have agreed that this solution is not safe, 
     but it solves the particular problem. 

     The fix is kindly provided by Sasha Mazurov (Alexander.Mazurov@gmail.com)

 - GaudiKernel/Property.h 
    1) reshuffle the property assignment/load methods to eliminate the 
       duplication of actions, from now Property::load is implemented 
       through Property::assign. It provides a bit more coherency in 
       the code.
    2) the actual action for Property::assign and Property::load is 
       been released a bit, not one can load/assign either from the 
       property of the same type or from the valid string representation 
       of property of any type. Previously only StringProperty has been 
       allowed.
    3) The full template specializations of 
       PropertyWithValue<std::string>::toString and  
       PropertyWithValue<std::string>::assign are provided 
        - there are no "extra" confusing double quotes now in the 
          string printout 
        - the string is always parsed at assign, in particular it means
          that all surrounding pairs of quotes will be removed 
          automatically as redundant  
 - GaudiKernel/ToStream.h
      - modify a bit the implementation of Gaudi::Utils::toStream 
        for std::string to use single quotes if the string containt 
        double quotes
      - add the implementation of Gaudi::Utils::toStream for boolean values 
        to print boolean values "à la Python" as "True" or "False" 
      - add the implementation for float/double/long double to print them 
        with reasonable precision. It is important since the default 
        precision of ios_base is 6, which could be not enough, and 
        the precision of boost::lexical_cast is 
         std::numerical_limit<...>::digit10+1, 
        which is much more than we need.
  - GaudiKernel/Property.h, src/Lib/Property.cpp 
     add few useful functions to descrease the number of ugly  
     technical lines in some public code 

     namespace Gaudi { namespace Utils {
       bool      hasProperty ( const IProperty*  p  , const std::string& name ) ;
       bool      hasProperty ( const IInterface* p  , const std::string& name ) ;
       Property* getProperty ( const IProperty*  p  , const std::string& name ) ;
       Property* getProperty ( const IInterface* p  , const std::string& name ) ;
       bool      hasProperty 
       ( const std::vector<const Property*> , const std::string& name ) ;
       const Property* getProperty 
       ( const std::vector<const Property*> , const std::string& name ) ;
     
     }}

================ GaudiKernel v20r9 ====================================
! 2006-08-21 - Ivan Belyaev
 - patch #817. For new associatiove properties, e.g. map
   the implemented behaviour do not fulfill the naive expectations. E.g:

   A.a = { "a" : 1 , "a" : 2 , "b" : 3 , "a" : 10 } ; 
   A.a += { "a" : 100 , "a" : 200 };

   The result will be the map:

   { "a" : 1 , "b" = 2 } ; // "The first wins"

   this result is not in agreement with "naive" expectation for
   std::map, where "the last wins". the attached patch solves the
   problem, and now the behaviour of the properties is more coherent
   with behaviour of std::map.

! 2006-08-06 - Markus Frank
 - System.cpp: do not free strings after calls to strerror() or
   dlerror().  This is known to cause valgrind errors because libc
   internally allocates memory, but is the **correct** usage of these
   functions according to the docs. Otherwise repeated calls tend to
   screw up malloc.
 
! 2006-07-31 - Pere Mato
 - Changed interface IJobOptionsSvc from pointer to reference to fix
   bug #18581 overview: Memory leak due to changed behaviour of
   JobOptionsSvc

================ GaudiKernel v20r8 ====================================
! 2006-07-14 - Stefan Roiser
 - fixed type in dictionary for m_typeinfo member of the Property
   class in the xml selection file.

! 2006-07-07 - Hubert Degaudenzi
 - bug #17843: fixed extra semicolon and DOS end of lines.

! 2006-07-07 - Marco Clemencic
 - patch #748: fixed the recipient of the std::string::find method. It
   should not be assigned to int but to std::string::size_type since
   it has a different size on 64 bits plateforms.

! 2006-06-26 - Hubert Degaudenzi
 - bug #17739. Changed the return value of GaudiMain. Before it was always
   returning 0 and now it returns the StatusCode of the ApplicationMgr
   in the UNIX command line way.
      - "0" for success
      - "1" for failure
   to test it for examples one could do: 
     >Gaudi.exe some.opts && echo "Gaudi has succeeded"

! 2006-06-15 - Hubert Degaudenzi
 - Fix gcc 3.4.5 compilation problems in the new property parser. 

! 2006-06-06 - Alexander Mazurov & Ivan Belyaev
 - new property parser installed. It relies on the Boost::spirit
   lexer/parser.

! 2006-06-06 - Vanya Belyaev
 - fixed const problem in VectorMap.

! 2006-05-31 - Marco Clemencic
 - patch #730. Fixes a bug in the constructor of
   TransientFastContainer when it is called with an argument different
   from 0.

================ GaudiKernel v20r7 ====================================
! 2006-05-22 - Marco Clemencic
 - patch #727. Fixed a compilation problem on Win32 after using
   std::map instead of hash_map in GaudiUtils::HashMap.

! 2006-05-19 - Marco Clemencic
 - patch #725. Fixed a warning on Win32.

! 2006-05-11 - Marco Cattaneo
 - patch #723. Redefines the unit "pascal" to "Pa" to avoid a name
   clash that causes a compiler warning on on Windows in
   SystemOfUnits.h

! 2006-05-11 - Vanya Belyaev
 - added templated SmartRefVector constructor with first and last
   iterator pointers as arguments 

================ GaudiKernel v20r6 ====================================
! 2006-05-04 Marco Clemencic
 - patch #720. Added TransientFastContiner<T> (and related helper classes
   TransientFastContainerBase and DefaultObjectCleaner<T>).
   The new container does its own memory management, recycling the objects not
   used and not deleting them when it is cleared (just reset an internal
   counter).

! 2006-05-02 Hubert Degaudenzi
 - Added PhysicalConstants.h and SystemOfUnits.h (from CLHEP) in
   GaudiKernel. The constants and units are in the Gaudi::Units
   namespace. 
 - patch #715. Added boost allocator wrapper (Marco Clemencic).
 - patch #719. Added 2 functions to make the UpdateManagerSvc work
   safely in multi-thread environment. They allow to block the
   activities of the service while interacting with it (Marco Clemencic).

! 2006-04-20 Hubert Degaudenzi
 - clean up of the legacy lines of code for obsolete compiler version
  (before gcc 3).

! 2006-04-20 Marco Clemencic
 - patch #705. The default hash functions is extremely expensive for
   integers. This causes extremely poor performaces for the standard
   KeyedContainer<>. The patch introduces efficient specializations of
   Hash<> for int, long and long long (and unsigned).

! 2006-04-13 Charles Leggett and Hubert Degaudenzi
 - inserted ATLAS feature INamedInterface.

================ GaudiKernel v20r5 ====================================
! 2006-03-15
 - modified the returned values of the Auditors
   beforeExecute/afterExecute (etc) to be void instead of StatusCode::SUCCESS.

! 2006-03-09 Markus Frank
 - patch #691. Add support for objects in N-tuples. Note: This only works for
   NTuple::Item.  NTuple::Array and NTuple::Matrix is __NOT__
   supported for objects. If you need this functionality store an
   std::vector<Object*>. See GaudiExamples/POOLIO/EvtCollectionWrite
   for an example of the usage.
 - Added GaudiMain.cpp in the library.

! 2006-03-09 Markus Frank
 - patch #668. Fix retrieval of error string in System::getErrorString().
   The routine caused a core dump on linux when dl_error() returned NULL.

! 2006-02-24 Marco Clemencic
 - patch #678. It has been reported that MS implementation of hash_map
   is extremely slow. The idea is to use std::map instead (which is
   faster than hash_map on win!!!), while we investigate to find a
   better solution.

! 2006-02-23 Hubert Degaudenzi
 - fix compilation warnings with Gcc 3.4.4

! 2006-02-14 Ivan Belyaev
 - added new allocator imported from GEANT4. They should decrease the
   allocation time significantly. Please have a look at the
   GaudiExample "Allocator".

! 2006-02-06 Hubert Degaudenzi
 - fixed windows compilation warning (bug #14852).

================ GaudiKernel v20r4 ====================================
! 2006-01-27 Hubert Degaudenzi
 - corrected constructor call syntax of fstream in genconf to be
   compatible with Linux.

! 2006-01-26 Pere Mato
 - Added new program genconf to generate the python configuration file for component libraries
 - Fix bug #14665 overview: IID_IAlgorithm and IID_IConversionSvc Conflict
 - Moved some class in the dictionary of GaudiPython to the dictionary in GaudiKernel
 
! 2006-01-25 Marco Clemencic
 - Added class Gaudi::Time (based on seal::Time). Updated interfaces
   IDetDataSvc, IValidity and IUpdateManager in order to use the new class.
   Modified dictionary.h and dictionary.xml in order to produce dictionaries
   for Gaudi::Time.

! 2006-01-25 Hubert Degaudenzi
 - added IUpdateManagerSvc in the dictionary generation.

! 2006-01-19 Pere Mato
 - Adapted to use genreflex (Reflex from ROOT)

================ GaudiKernel v20r3 ====================================
! 2006-01-18 Hubert Degaudenzi
 - fixed forward declarations in GaudiKernel/IMagneticFieldSvc.h

! 2006-01-12 Pere Mato
 - Added std::vector<const ContainedObect*> in the dictionary

! 2006-01-10 Hubert Degaudenzi
 - moved the macro definitions DECLARE_XXX_FACTORY and
   DECLARE_NAMESPACE_XXX_FACTORY from DeclareFactoryEntries.h to their
   own header files where XXX are Algorithm, Auditor, Converter,
   Object, Service, Tool.
 - corrected wrong syntax in macros.
 - moved the remaining macros (DECLARE_XXX and DECLARE_NAMESPACE_XXX)
   from DeclareFactoryEntries.h to their corresponding header files.

! 2005-12-20 Hubert Degaudenzi
 - Commented out AIDATupleSvc.

! 2005-12-20 Marco Clemencic
 - Added UpdateManager interface.

! 2005-12-05  Manuel Domenech
 - added setCriteria method to IAIDATupleSvc interface to allow passing
   a preselection criteria for reading data from a tuple.

! 2005-11-15 Markus Frank
 - Fix problems of KeyedContainer when using keys with explicit constructors.

================ GaudiKernel v20r2 ====================================
! 2005-11-22 Pere Mato
 - Booststrap.h: converted Gaudi class into a Gaudi namespace

! 2005-11-22 Vanya Belyaev
 - Added class GaudiUtils::VectorMap (former _VctMap from Vanya) that implements associative version inspirer 
   from the Loki library by Andrei Alexandrescu.
 
 an associative vector
   inspired from Loki associative vector.
   Fix problems of KeyedContainer when using keys with explicit constructors.

! 2005-11-21 Markus Frank
 - Fix problems of KeyedContainer when using keys with explicit constructors.

! 2005-11-21 -  Pere Mato
  - Added new methods in IAlgorithm: isInitialized(), isFinalized() and isExecuted() (suggested by Vanya)

! 2005-11-18 -  Marco Clemencic
  - Added 3 classes to replace the HashTable and the hacks in stl_hash.h
  
    * GaudiUtils::Map is a simple associative container. It is implemented as a proxy 
      to a template class implementing the underlying container (defaulting to std::map). 
      It features "operator[](key) const" and "operator()(key) const". It has a virtual 
      destructor so that it can be extended via inheritance.
    * GaudiUtils::Hash is a simple hash function (based on Stroustrup's example) which 
      correctly handle pointers, std::string and char*. It is portable between Linux and Windows.
    * GaudiYUtils::HashMap is a Map which uses internally a hash_map. The differences 
      between gcc and VC7 are taken into account in order avoid users having to put "#ifdef"s.

! 2005-11-09 - Chris Jones
 - Change output level data member in Algorithms and AlgTools from int
   to IntegerProperty, and add a non-const access method for this
   property. Allows uses to attach callback handle methods to this
   property (Such as in GaudiAlg) to allow them to react as needed
   to changes in the output levels. Needed in GaudiAlg to force the
   creation of a new cached MsgStream object.

================ GaudiKernel v20r1 ====================================
! 2005-11-03 Pere Mato
 - added the changes to dictionary.xml delection file. Removed the dictionary_rflx.xml file.

! 2005-10-13 Hubert Degaudenzi
 - removed obsolete files GaudiKernel/KeyedDictionary.h and
   GaudiKernel/SealDictonary.h.

! 2005-10-10 Hubert Degaudenzi
 - added the transient state to the refCount and hasKey Methods of
   KeyedObject in the dictionary_rflx.xml selection file (Markus Frank).

================ GaudiKernel v20r0 ====================================
! 2005-09-12  Pere Mato
 - MsgStream.h: removed special stream function for StatusCode. It did
   not help on WIN32
 - GaudiException.h: added explicit call to accessor of StatusCode to
   unsigned long code

! 2005-08-05  Hubert Degaudenzi
 - added "long long" format in the instantiation of SimpleProperty and
   SimplePropertyRef templates.

! 2005-08-05  Hubert Degaudenzi
 - applied patch #502. Minor polishing of Stat and StatEntity classes
   to improve their functionality (in absolutely backward compatible
   way). From now the usage of StatEntyty in 'standalone' mode is
   greatly simplified (previously it has been tightly coupled to
   Chrono&Stat Service, and "public" interface was ugly). The
   functionality of Stat class is also improved (Vanya).

! 2005-07-25 - Hubert Degaudenzi
 - fixed bug #9475. Missing #include <stdexcept> (Mattias Ellert).

! 2005-07-25 - Hubert Degaudenzi
 - fixed bug #9474. fixed bad friend declaration. According to the C++
   standard typedef'ed typenames may not be declared friends. (Mattias
   Ellert). 

! 2005-07-25 - Hubert Degaudenzi
 - fixed bug #9468. Missing typname keyword within templates (Mattias Ellert). 

! 2005-07-21 - Hubert Degaudenzi
 - fixed bug #9467 

! 2005-07-21  Markus Frank
 - patch #445. Move basic dictionaries from GaudiPoolDb to GaudiKernel
   gccxml inputs in new subdirectory dict
   output id a dictionary DLL called "GaudiKernelDict"
   Reflex dictionary produced in parallel: "GaudiKernelRflxDict"
 - Fix inline bug in SmartDataPtr (function was never instantiated,
   hence problem did not appear)
 - Fix data member access in RndmGenerators.h

! 2005-07-21 Hubert Degaudenzi
 - patch #476. Compilation of some Reflex dictionaries currently
   fails. I'd need an overload for the MsgStream::operator << for
   StatusCode to cure this. The attached patch is one proposal how it
   could be done (Stefan Roiser).

! 2005-07-18  Hubert Degaudenzi
 - fixed bug #9466. extra semicolon (Mattias Ellert).	

! 2005-07-15  Hubert Degaudenzi  <Hubert.Degaudenzi@cern.ch>
 - fixed bug #9476. Missing keyword "class". (Mattias Ellert)

================ GaudiKernel v19r3 ====================================
! 2005-07-13  Hubert Degaudenzi  <Hubert.Degaudenzi@cern.ch>
 - fixed bug #9479

! 2005-05-10  Hubert Degaudenzi  <Hubert.Degaudenzi@cern.ch>
 - modifications for the new service StagerSvc. Added IStagerSvc and a
   new incident "EndStream" that will trigger the end of the
   processing of one file. 

================ GaudiKernel v19r2 ====================================
! 2005-05-10  Hubert Degaudenzi  <Hubert.Degaudenzi@cern.ch>
 - added path access to SmartRef (Marco Clemencic)

! 2005-04-22  Hubert Degaudenzi  <Hubert.Degaudenzi@cern.ch>
 - GaudiKernel/IValidity.h (IValidity): added some const qualifiers 
   to function members of the IValidity class (Marco Clemencic).

================ GaudiKernel v19r1 ====================================

! 2005-04-14 - Eric VAN HERWIJNEN 
 - modification of the IMonitor.h interface


! 2005-04-14 - Hubert Degaudenzi
 - removed the following interface files:
	
  GaudiKernel/IDetectorElement.h 
  GaudiKernel/IGeometryInfo.h
  GaudiKernel/ILVolume.h
  GaudiKernel/IPVolume.h
  GaudiKernel/ISolid.h
  GaudiKernel/ITransportSvc.h


================ GaudiKernel v19r0 ====================================
! 2005-03-02 - Markus Frank
 - Obsolete interface call: StatusCode IAlgManager::declareAlgModule
 - New interface call:      StatusCode IAlgManager::getFactory(const std::string& alg_type, IAlgFactory*& fac);
 - Obsolete interface call: StatusCode ISvcManager::declareSvcCreator
 - Obsolete interface call: StatusCode ISvcManager::declareSvcModule
 - New interface call:      StatusCode ISvcManager::getFactory(const std::string& svc_type, ISvcFactory*& fac);
 
================ GaudiKernel v18r3 ====================================
! 2005-02-25 - Pere Mato
 - System.cpp: applied patch to overcome CXXABI problem (merge from v17r1)
 
! 2005-02-24 - Manuel Domenech
- Added the interface IAIDATupleSvc.h for the AIDA-based tuple service.
- ClassID, Algorithm.h and lib/Algorithm.cpp: added declarations for the AIDATupleSvc.

================GaudiKernel v18r2=====================================
! 2005-02-15 - Markus Frank
 - SealDictionary.h - fix for SmartRefDict. 

! 2005-02-11 - Pere Mato
 - Algorithm.cpp: removed the name extensions such as  ".sysInitialize()", ".sysExecute()" 
   and ".sysFinalize()" in the messages generated by the base class.
   It makes it simple to control over the threshold messages from algorithm. (suggested by Vanya)

! 2005-02-02 - Pere Mato
 - System.cpp(typeinfoName):  removed extra spaces between types and "*" and "&"

================GaudiKernel v18r1=====================================
! 2005-01-19 - Pere Mato
 - DataObject.h(.cpp) Added copy constructor. Problem reported by Mikhail Kirsanov (HARP)
 - IMagneticFieldSvc.h: Changed forward declarations for CLHEP classes.

================GaudiKernel v18r0=====================================
! 2004-12-10 - Markus Frank
 - GaudiKernel/IDataProviderSvc.h
   Update doc for unregisterObj entries, which was uncorrect.

! 2005-01-12 - Pere Mato
 - IHistogramSvc.h: Added profile histograms
 - ClassId.h: Added profile histograms CLID's

! 2005-01-11 - Pere Mato
 - Changed IEventProcessor interface to add stopRun() method
 - Changed System.cpp to load dynamic libraries with RTLD_GLOBAL flag and commented out
   the special typo_info implementation
 
! 2004-12-10 - Pere Mato
 - Added interface IMonitorSvc.h (from Gaucho)
 - Algorithm.h,.cpp: Added new method declateInfo(...) to declare monitoring variables
 
! 2004-12-06 - Markus Frank
 - SealDictionary.h
   Make use of ReflectionBuilder/CollectionProxy.h
   for new container handling using ROOT CollectionProxy mechanism.
 - Service.cpp:
   Inhibit printing of services before the properties are properly
   set. Until the properties are set, each service inherits the
   output level of the message service.
   This was apparently screwed with the invention of the
   OutputLevel update handler for services.
   This removes the "ignored" global printout level of the
   sub-eventselector instances when opening new files.

! 2004-09-13 - Markus Frank
 - Protection in KeyedContainer::configureDirectAccess()
   To protect against reading NULL pointers - a problem
   reported by M.Cattaneo.

! 2004-10-27 - Pere Mato
 - Changed order of finalization of Algorithm/Sub-algorithms
   bug #3903 overview: finalize and nested algorithms
   
================GaudiKernel v17r0=====================================
! 2004-10-25 - Pere Mato
 - Algorithm.cpp: added setFinalized() at the end of of the finalization to avoid doing it
                  more than once.
 - Service.cpp: added protection on accessor msgSvc() for the MessageSvc itself.
 - Changed IAlgManager interface. 
   - Added initializeAlgorithms() and finalizeAlgorithms()
   - Removed declareAlgCreator()
   - Added optional argument to createAlgorithm() to tell if the Algorithm should be managed
 - Removed PathResolver.h,cpp because of compilation problems on Windows
 
! 2004-08-10 - Charles Leggett
 - new class ServiceLocatorHelper used to implement service methods
   in Algorithm.(h,cpp), Service.(h,cpp), AlgTool.(h,cpp), Converter.(h,cpp)
 - ISvcLocator.h:  new method service<T>(type, name, T*, bool) to 
    create/retrieve a non-default instance of a service

! 2004-08-10 - Charles Leggett
 - PathResolver.h,cpp: added
 - Service.(h,cpp): callback for output level

================GaudiKernel v16r2=====================================

! 2004-08-03 - Vanya BELYAEV
 - GaudiKernel/ParticleProperty.h
   Two methods for particle<-->antiparticle relations 
       const ParticleProeprty* antiParticle() const ;
       void setAntiParticle( const PArticleProeprty* ) ;
 - GaudiKernel/ChronoEntity.h, GaudiKernel/StatEntity.h
   src/Lib/ChronoEntity.cpp,   src/Lib/StatEntity.cpp
   Files are moved from GaudiSvc package to allow run-time 
   public inspection of Chrono & Stat counters 
 - GaudiKernel/IChronostatSvc.h 
   Two method are added to allow run-time publc inspection of
   Chrono & Stat counters: 
     const ChronoEntity* chrono ( const ChronoTag& tag ) const ;
     const StatEntity*   stat   ( const StatTag&   tag ) const ;
 
================GaudiKernel v16r1=====================================
! 2004-07-22 - Pere Mato
  - DataObject.h: Added ostream operator << . In this way we can output DataObjects using ostream or MsgStream. This was
                  already possible with ContainedObjects.
! 2004-07-20 - Pere Mato
  - KeyedDictionary.h: Reverted typo removal in KeyedContainer<> class name. Otherwise the existing files are not
    readable.
  - Incicent.h: Added doxygen comments (from Chris Jones)
  - Property.h/MsgStream.h: added more specialized templates for handling MsgStream operator << and 
    stream operator << for ArrayProperties and vector<T>. This should avoid compilation errors
    detected by Marco.
    
! 2004-07-19 - Pere Mato
  - System.h/cpp: added implementation for Windows
  - MsgStream: replaced a bunch MsgStream& operator <<(MsgStream&,...) by a templated one
    MsgStream& operator <<(MsgStream&,T) to handle any type for which the standard
    ostream& operator << (stream&, T) exists.
  - Property.h: added standard ostream& operator <<(ostream&,SimpleProperty<T>)

================GaudiKernel v16r0p1=====================================
! 2004-07-16 - Charles Leggett
  - DataObject.h: addeed refCount() method
  - System.h/cpp: added methods to get env vars and system parameters

================GaudiKernel v16r0=======================================
! 2004-07-13 - Charles Leggett
  - Additions for History Objects: HistoryObj.*, IHistorySvc.h, IAlgContextSvc.h

! 2004-07-13 - Pere Mato
  - ParticleProperty.h: added pdgID() and setPdgID() as alises to jetsetID() and setJetsetID()
  - Property.cpp: added template specialization to support string booleans in setProperty()
                  ("false", "true", "False", "True", ...)
                  
! 2004-26-06 - Markus Frank
  - Small update in SmartIF.h to get a cleaner API
  - New interface: IPartitionControl
    Generic interface to manipulate services with several
    encapsulated instances "Partitions"
  - New Interface: ICounterSvc
    Interface to manage/create/access counters and groups of counters

! 2004-07-02 - Pere Mato
  - IInterface.h    Removed IID typedef to finally avoid clashes with windows.h

! 2004-15-05 - Markus Frank
  - DataSvc.h/cpp     Let the DataSvc connect to the incident service
                      - Generate incident on persistent data access
                        Enable using        DataSvc.EnableAccessHandler = 1;
                        Set incident name:  DataSvc.DataAccessName = "EventDataAccess";
                      - Generate incident on data fault:
                        Enable using        DataSvc.EnableFaultHandler = 1;
                        Set incident name:  DataSvc.DataFaultName = "EventDataAccess";

! 2004-01-05 - Markus Frank
  - IEvtSelector.h    New upgraded interface from C.Cioffi - NOT backwards compatible
  - Environment.h/cpp New header file extending the System namespace to handle
                      standard environment manipulations
  - Tokenizer.h/cpp   Allow for environment resolution in token values - if requested.
                      Default is backwards compatible

================GaudiKernel v15r4=======================================
! 2004-04-22 - Vanya Belyaev
  - Added changes from Vanya to fix the problems reported by Matt on output level for AlgTools

================GaudiKernel v15r3=======================================
! 2004-04-19 - Markus Frank
 - KeyedContainer.h: Modified erase() method to use a temporary vector to improve performance.
   Tested by Chris Parkes: The new keyed container code  
     VeloSim:execute  238ms/event
   to be compared with the old timing
     VeloSim:execute  638ms/event - old code, using original keyed container
 
================GaudiKernel v15r2=======================================
! 2004-03-04 - Gloria Corti
 - IParticlePropertySvc.h: Changed interface to add the Pythia ID
 - ParticleProperty.h: Changed to Pythia ID in constructor and remove obsolete 
                       accessors.

================GaudiKernel v15r1=======================================
! 2004-01-23 - Markus Frank
 - SmartRef.h/SmartRefbase.h  Replaced inheritance by object embedding. This change
                              is neded to optimize CPU for persistency based on POOL.
                                 
! 2004-01-20 - Vanya BELYAEV  
 - Algorithm.h  1) add protected accessor to m_outputLevel field 
                2) add shortcuts evtSvc() and svcLoc() 
                3) resurrect default(empty) Algorithm::initialize() 
                   and Algorithm::finalize() methods
                4) split 'long' lines to please LHCb-flavour Emacs 
 - AlgTool.h    1) add protected accessor to m_outputLevel field 
                2) add shortcut svcLoc() to serviceLocator() method 
                3) split 'long' lines to please LHCb-flavour Emacs 
  
================GaudiKernel v15r0=======================================
! 2004-01-08 - Werner Wiedenmann
 - System.h:        use gaudi "__linux" #define rather than LINUX
 - class AlgTool:   same MT-naming treatment as for Algorithm andService (use service_i)
 - ThreadGaudi.cpp: deal with AlgTool parents name
 - Converter.cpp:   get thread name from conversion svc

! 2004-01-08 - Vanya Belyaev
 - IJobOptionsSvc interface has been modified to add new method (readOptions(...)) to be
   ab;e to read additional option files.

! 2003-12-12 - Markus Frank
 - Added Keyed container as intrinisc Gaudi container object for Keyed objects
 - Added POOL storage types to ClassID.h

! 2003-12-12 - Markus Frank
 - Added Keyed container as intrinisc Gaudi container object for Keyed objects
 - Added POOL storage types to ClassID.h

! 2003-12-09 - Markus Frank
 - A bunch og changes in preparation to the integration with SEAL/POOL
 - Added dependency with SEAL
 

================GaudiKernel v14r2=======================================
! 2003-12-03 - Grigori Rybkine
 - Added using AIDA::<ClassName> to allow use of AIDA in applications
   without prefix AIDA:: (as before)

! 2003-11-26 - Pere Mato
 - Adapted to new version of AIDA (namespaces)
 - Replaced macro WIN32 by _WIN32
 
================GaudiKernel v14r1=======================================
! 2003-11-25 - Pere Mato
 - Modifications for Mac OSX (Guy Barrand)

! 2003-11-25 - Pere Mato
 - Added GaudiKernel/stl_hash.h to provide hash maps and sets

! 2003-11-20 - Pere Mato
 - Added IncidentTypes namespace with incident type names
   [ Bug #1085 ] 'Standard' incidents

================GaudiKernel v14r0=======================================
! 2003-07-03 - Markus Frank
  Major upgrade for use of POOL. Main change: extend technology specifier to
  int from unsigned char. Please note, that the changed interfaces are NOT BACKWARDS
  compatible. In particular in the converter area concrete user classes must 
  support integer technology types. To create a compiler error, the converter 
  base class does no longer have the method repSvcType().

  ModuleInfo.cpp        Remove signed/unsigned warning
  MsgStream.h           Added missing header file

  DataObject.cpp
  LinkManager.cpp/h     Dynamic link manager creation for POOL

  ClassID.h
  CnvFactory.h
  ConversionSvc.h
  Converter.cpp/h
  GenericAddress.h
  IAddressCreator.h
  ICnvFactory.h
  ICnvManager.h
  IConverter.h
  IOpaqueAddress.h
  IPersistencySvc.h      Integer technology types

  NTuple.h
  SmartRef.h
  SmartRefBase.cpp/h     Extend and allow customization for the usage in POOL

================GaudiKernel v13r5=====================================
! 2003-07-03 - Pere Mato
 - MsgStream.h: added op << for std::vector

! 2003-06-25 - Paolo Calafiura, Pere Mato
 - SmartDataObjectPtr: added const in operator = argument
 - Algorithm.cpp, Converter.cpp, Service.cpp: Fixed service_i() [ Bug #927 ] 

================GaudiKernel v13r4p1=====================================
! 2003-06-26 - Pere Mato
 - System.cpp: removed white spaces in System::typeinfoName() for templated classes with more than one argument.
 
================GaudiKernel v13r4=====================================

! 2003-05-07 - Paolo Calafiura
 - Algorithm.cpp: sysExecute returns immediately if isEnabled() false

! 2003-05-06 - Paolo Calafiura for RD Schaffer
 - IAddressCreator.h and ConversionSvc: new creatAddress from string interface
  
! 2003-04-29 - Sebastien Ponce
 - solution to the gcc 3.2 dynamic_cast problem. For deeeeeep explanations
   of both the problem and the solution, see doc/dynamic_cast.pb

! 2003-04-18 - Paolo Calafiura
 - DataSvc.cpp: protect registerObject against null DataObj pointer (fail)
  
! 2003-04-15 - Paolo Calafiura
 - NTupleImplementation.cpp: delete m_buffer mismatched with array new in
   RootHistCnv::RCWNTupleCnv::book
 - System.cpp: fix memory leak in getErrorString

! 2003-04-10 - Marco Cattaneo
 - RndmGenerators.cpp: Fix a memory leak at finalisation

! 3002-04-04 - Pere Mato 
 - Updated IAddressCreator interface with two convert IOpaqueAddresses to
   string format and vise versa (proposal by RD Shaffer)
   virtual StatusCode convertAddress( const IOpaqueAddress* pAddress,
                                      std::string& refAddress) = 0;
   virtual StatusCode createAddress( const std::string& refAddress,
                                     IOpaqueAddress*& refpAddress) = 0;
                                    
! 2003-04-01 - Sebastien PONCE
 - some coding convention applications
 - bug fix in PropertyMgr concerning the output of property names

! 2003-03-13 - Paolo Calafiura
- moved pthread handle and "_self" call to System.h

! 2003-03-11 - Paolo Calafiura
- MsgStream: define MSG::hex and MSG::dec for gcc 3.2
- rename ThreadLibGaudi.h as ThreadGaudi.h

! 2003-02-27 - Charles Leggett & Paolo Calafiura
- IMessageSvc: added two new abstract methods useColor and
  getLogColor (all existing MsgServices needs updating!).
  Added MSG::Color enum
- MsgStream: support colored messages

- changes to Converter service method (see Algorithm and Service
  below). TO DO: extract common service_i implementation


! 2003-02-25 - Werner Wiedenmann & Paolo Calafiura
 - add ThreadLibGaudi.{h,cpp}: utilities to get and parse thread
   instance names 
 - changes to Service and Algorithm:
         - service method asks first for thread specific service
	   instance, if not available get generic service instance
         - allow for setting of thread specific and generic properties
         - create thread specific sub-Algorithms automatically

! 2003-01-21 - Markus Frank
  - Add second connectOutput call to conversion service interface.
    Second argument allows to specify the opening mode 
    (NEW, RECREATE, UPDATE)
  - DataTypeInfo: add 2 new types: LONG_STRING, LONG_NTCHAR
  - (I)SelectStatement: Allow for more generic selects than
    only FUNCTION and STRING
    
! 2003-01-06 - Sebastien Ponce
 - improvements in support for gcc 3.2

================GaudiKernel v13r3=====================================
! 2002-11-21 - Sebastien Ponce
 - fixes in Converter.cpp to avoid memory leaks

! 2002-11-19 - Pere Mato
 - Added setExecuted() after execute() in Algorithm::sysExecute(). Requested by
   Vanya.

================GaudiKernel v13r2=====================================
! 2002-11-06 - Sebastien Ponce
 - fixes in order to remove deprecated warnings on gcc 3.2
 - coding conventions applications

! 2002-11-11 - Markus Frank
 - Timing.cpp: Use routine ::gettimeofday(...) to measure current time.
   This improves the precision of several timing measurements 
   (current time, elapsed time) to 1 micro second.
   The change affects linux only.
 
! 2002-11-08 - Markus Frank
 - Move CLID for N-tuples into ClassID.h
 - Fix bug in ISvcLocator.h: If service initialization failed, status was still OK.

! 2002-11-06 - Markus Frank
 - DeclareObjectFactory.h - add declarations for containedobject factories 
   and dataobject factories.

================GaudiKernel v13r1=====================================
! 2002-10-21 - Pere Mato
 - IRegistry.h - the typedefs in this class are now public.

! 2002-10-21 - Sebastien Ponce
 - Bug fix in StreamBuffer for deserialization of char*

! 2002-10-11 - Paolo Calafiura
 - Added protection in ConversionService::setDataProvider: since ATLAS use 
   StoreGate and pass a NULL pDataSvc pointer.

================GaudiKernel v13r0=====================================
! 2002-10-04 - Pere Mato
 - Changed interface IJobOptionsSvc to add accessors to the JobOptions 
   catalogue
   
! 2002-09-27 - Sebastien Ponce
 - fixes in order to compile on gcc 3.2
 - lots of coding conventions applications

! 2002-09-25 - Markus Frank
 - Add declarations for object factories to DeclareFactoryEntries.h
 - Remove windows compiler warning in Bootstrap.cpp

! 2002-09-25 - Sebastien Ponce
 - Implementation of the reinitialize method for DataSvc

! 20020916 Pere Mato
 - Changes to clean the reference counting and memory deallocation
   detected by the "valgrind" tool.

! 20020703 Paolo Calafiura
 - RegistryEntry.h: put DataSvc in the global ns when declaring as friend
 - Service.h: add ISvcLocator include for service() inline implementation        

! 20020628 Pere Mato, Sebastien Ponce
 - Improved error reporting when loading dynamic libraries
 - Changed INFO messages to DEBUG when initializing services
 - Replaced forward class declarations by including the concerned header files. This
   is to aliviate user confusion.
 - Added function format(string fmt, ...) that can be used to format messages
   within the MsgStream class.
   Example: 
   log << MSG::INFO << format("Evt: %8d Run: %8d", evt, run) << endmsg;
	 Caveat: Since the unspecified argument list is used (...) the arguments can not
	 be cheched for the correct type and possible conversions are not triggered. 

! 20020529 Paolo Calafiura
 - Auditor.h: service() needs IServiceLocator header file
 - DeclareFactoryEntries.h: typo in AudFactory name
 
! 20020506 Paolo Calafiura
 - PropertyMgr: use interface hub (Massimo ApplicationMgr refactoring)

! 20020506 Andrea Valassi
 - Change in MsgStream.h to allow the use of std::hex on Windows
 
================v12r2=====================================
! 20020506 Pere Mato
 - Bug fix in AlgTool.cpp. Pointer to ToolSvc not initialized
   (Reported by O. Callot)

! 20020502 Pere Mato
 - Bug fix in base classes Service and Converter. The accessor msgsvc() shpould 
   returns always a valid MessageSvc (Reported by RD Schaffer)
 - Added templated function service() in Converter base class.
 - Bug fix in Service.cpp. The finalize method access violates if called before
   initialize (Reported by Wim Lavrijsen)

================v12r1=====================================
! 20020426 Markus Frank
  - Bug fix in DataSvc, which inhibited automatic directory
    generation if intermediate leafs were present.

================v12r0=====================================
! 20020408 Pere Mato
  - Included ISvcLocator.h and IMessageSvc.h in Algorithm.h instead
    of the existing forward declaration

! 20020405 Pere Mato
  - Added two new accessors to AlgTool base class
    templated  service( name, svc, createif) to access any service
		tooSvc() to access the tool service

! 20020327 Pere Mato
  - Changes needed for Solaris (by Wim Lavrijsen). Details:
    +++ GaudiKernel/src/Lib/Property.cpp
       getQuotedItem() in unnamed namespace instead of static
    +++ GaudiKernel/src/Lib/ModuleInfo.cpp
       explicit cast added: "if ( 0 != ::dladdr((void*)System::moduleHandle,...
    +++ GaudiKernel/src/Lib/System.cpp
       in System::typeinfoName(), added a #elif defined(sun)
    +++ GaudiKernel/CnvFactory.h
       removed virtual inheritence in class CnvFactory & CnvFactory2 
    +++ GaudiKernel/ObjectFactory.h
       removed virtual inheritence in class ObjectFactory & ObjectFactory2 

! 20020315 Markus Frank
  - Kernel.h
    Properly #ifdef LONGLONG_MAX, LONGLONG_MIN
  - MsgStream.h
    Add operator<<(longlong), operator>>(longlong&)
  - StreamBuffer.h
    Add serialization for std::vector, std::list
    Add operator<<(longlong), operator>>(longlong&)
  - Converter.cpp
    Do not dereference dataProvider if pointer is invalid
  - TimePoint.h
    Add StreamBuffer& operator<<(), StreamBuffer& operator>>(), 
    MsgStream& operator<<()
  - TimePoint.h
    Add MsgStream& operator<<()
  - ITime.h
    Add MsgStream& operator<<()

! 20020213 - Markus Frank
  - Added clear() method to ObjectVector<T> and ObjectList<T>
    clear() removes all elements from the ObjectVector and  ObjectList<T>

! 20020215 Pere Mato
  - Removed dependency with AIDA
  - Eliminated the old IHistogramXXX interfaces. Users should use the 
    AIDA ones directly
  - Changed ClassId.h and IHistogramSvc.h to include 3D histograms
  
! 20020225 Markus Frank
  - Problem reported by Kambiz Mahboubi fixed concerning the
    user defined random number generator (i.e. DefinedPdf)
  - GaudiKernel/RndmGenerators.h

! 20020213 - Pere Mato
  - Algorithm.cpp: Fixed bug 
    The status code of sysInitilize() of sub-algorithms was not 
    checked. Now it should fail and report an error.
    
================v11r1=====================================
! 20020128 - Markus Frank
  - DataObejct.cpp: Fixed bug 
    Automatically create leaves on registerAddress if the
    Option "ForceLeaves" is set to true
  - SmartRefs.cpp:
    Fixed Feature: For smart refs to ContainedObject(s), resolve
    parent pointer only when needed.
  - ConversionSvc.cpp:
    Bug fix: Converters were never finalized. Done from now on, whenever the
    converter gets disconnected from the conversion service.
    
================v11r0=====================================
! 20011212 - Pere Mato
  - Added dependency to AIDA requested by David Quarrie

! 20011207 - Sebastien Ponce
  - Changed interface IConversionSvc.h. Added method converter(const CLID&) to get
    the converter with that CLID.

! 20011126 - Markus Frank
  - MsgStream.cpp
    Any change of the printout level from the application program
    using MsgStream::setLevel(...) is ignored by the message service. 
    Update the local printout level on a by message bases and restore
    the previous printout level.

! 20011120 - Markus Frank
  - NTuple.h
    the function entries addItem(...) are DEPRECATED for
    Ntuple columns, which depend on an index column.
    The replacement is: addIndexedItem(...).
    This has repeatedly caused confusion for users.
    Also added doxygen information for these entries.

! 20011115 - Pere Mato
  - Added initialize() and finalize() methods in IAlgTool interface.
  - The base class AlgTool implemements them as dummy but allows an implementation
    of  them on specific Algorithm Tools
  - Removed the need to implement a queryInterface() in specific Algorithm tools. Instead
    use the expresion declareInterface<Ixxxx>(this) in the constructor.  
  - Added releaseTool() method in IToolSvc.
 
! 20011111 - Pere Mato
  - Many Changes from Markus for the DataStore classes re-design.

! 20011108 - Pere Mato
  New versions of interfaces:
  - ISvcManager.h (incompatible) Added more functionality to offload ApplicationMgr
  - ISvsLocator.h (compatible) Changed getServices() to const
  
! 20011105 - Sebastien Ponce
  Added new methods in DataSvc to be able to set the root without clearing
  the store

! 20011009 - Pere Mato
  Removed CLID_Event from ClassID.h to avoid clashes with Event.h generated from
  GaudiObjDesc tools

! 20011005 - Pere Mato
  Changed IInterface.h Introduced a new constructor for InterfaceID that
  uses a name (class name) instead of the interface number. A hash
  function converts the name into a number.

! 20011003 - Pere Mato
  Changed SmartDataLocator.h reported by David Rousseau

! 20010914 - Pere Mato
  Modified ClassID.h to include CondDB stuff
  Solved bug in DataSvc.cpp reported by Andrea Valassi

! 20010710 - Pere Mato
  Removed interfaces IGiGaSvc.h and IGiGaSetUpSvc.h

! 20010706 - David Quarrie
  Extend IChronoStatSvc to support retrieving the delta-time between
  start/stop pairs.

! 20010629 - Pere Mato
  Changes in interfaces needed for improved interactivity support :
  IService.h   : Added new method reinitialize() to allow services to 
                 take into account changes after the first time initialization
  IAlgorithm.h : Added beginRun() and endRun() methods. These are called each time
                 the event loop is executed.
  IEventProcessor.h : Added executeRun() and nextEvent() methods. This is to 
                      eliminate the need to use the IAppMgrUI interface in the
                      EventLoopMgr components.
  IAppMgrUI.h  : Renamed method state() to stateName().
  IScriptingSvc.h : Deleted

! 20010627 - Markus Frank
  Bootstrap.h/cpp : Allow to set the instance of the service locator
                    in case several ApplicationMgr instances are present.
  ObjectVector.h,
  ObjectList.h    : Add forward typedefs for pointer and const_pointer
                    (Requested by P.Calafiura/LBL)
  RefTable.h      : Implement serialize methods
  RegistryEntry.h/cpp,
  DataSvc.h/cpp   : Implement several bug-fixes
                     - allow for objects in locations like /AA/BB/BB/BB/...
                     - allow to access objects with omission of the root
                       directory: "/Event/MC" is equivalent to "MC"
                     - execution optimization
  SmartDataObjectPtr.h : Fix annoying compiler warning
  SmartRefBase.h,
  SmartRef.h      : operator==() was badly implemented (Found by O.Callot)
  strcasecmp.h    : WIN32 needs an additional #include <cstring> 

! 20010625 - Pere Mato
  - Added remote properties functionality. Changed PropertyMgr and base classes Service
    and Algorithm
  - Added MsgStream::endmsg with same functionality as endreq. (Request from ATLAS)
  - Using AIDA Historams instead of LHCb private ones. The existing include files 
    include the new ones but generating a warning. The IAnnotation interface is added
    because it does not exists in the used AIDA release
    

! 20010618 - v10 (Flr)
  requirements - use GaudiPolicy v5
                 apply pattern package_stamps

! 20010518 - Pere Mato
  Changed CLIDs in Reftable.h (re-tagged v9)

! 20010508 - Pere Mato
  Fixed bug reported by M. Cattaneo. The OutputLevel of AlgTools was not
  set correctly if the parent Algorithm didn't set it explicitely.

! 20010503 - Markus Frank
  Allow access to data store items without specification of the top level
  directory. It is equivalent to specify an histogram like "/stat/simple/1"
  or simply "simple/1". Note that the the entire prefix "/stat/" must be 
  omitted. The use is backwards compatible.
  Added a qualifier ALWAYS to the message service specifying that a given 
  message should always be printed.
  ie.
  MsgStream log (msgSvc(), "Name")
  log << MSG::ALWAYS << "Hello." << endreq;
  will result in
  Name      SUCCESS Hello.
  and will not be omitted.

! 20010430 - Markus Frank
  Bug fixes:
  GaudiKernel/DllMain.icpp WINNT: Processhandle should no longer be closed
                           since the handle is shared for all DLLs.
  GaudiKernel/INTuple.h    Interface extended to directly use NTuple pointer
                           to write/read n-tuple. It is no longer necessary to
                           use the n-tuple service for these actions.
  NTupleImplementation.h/cpp dto.
  GaudiKernel/SmartDataPtr.h        Bug fix: 
                                    SmartDataPtr<Object> obj (...)
                                    if ( obj ) {...}
                                    Check succeeded if object is present however
                                    had bad type. Now this check checks for the
                                    presence of the object AND the data type.
                                    Moved pointer to object from SmartDataObjectPtr
                                    to SmartDataStorePtr (template class).
                                    Also moved corresponding check operators.
  GaudiKernel/SmartDataLocator.h    dto.
  GaudiKernel/SmartDataStorePtr.h   dto.
  GaudiKernel/SmartDataObjectPtr.h  dto.
  GaudiKernel/SmartDataObjectPtr.cpp dto.

! 20010320 - Sebastien Ponce
  - PropertyMgr.h Avoid compiation errors for egcs 2.95.2
  - Debugger.cpp, ProcessDescriptor.cpp Avoid compilation errors for 2.95.2
  - MsgStream.h Added the bool type in the operator<<(). 

! 20010320 David Quarrie
 - Fix Linux macro problem in Kernel.h (should be __linux, not linux).  Fix
   memory leak in Property.h. Fix a destructor problem in PropertyMgr.h by
   adding a std::vector<bool> to keep track of Property ownership. Add
   a protected state() member function to Service to allow subclasses to
   access the current state.

! 20010319 Pere Mato
 - Fixed interface IAddressCreator

! 20010316 Markus Frank
 - New Interface added IEventProcessor

! 20010315 Andrea Valassi
 - Minor changes in IValidity.h, MsgStream.h ClassID.h

! 20010314 Pere Mato
 - Removed const in IProperty::getProperty(const string&, string&)
   Implies to modify all the classes implementing such interface

! 20010314 David Quarrie
 IScriptingSvc.h Add execute( const std::string& ) to allow for execution
                 of a script.
 Property.cpp    Fix problem in dealing with either double or single quotes
                 as delimiters for string values.

! 20010313 Markus Frank

 - GaudiKernel/
	Bootstrap.h    Add entry point to create multiple Application Managers
        StreamBuffer.h Change in buffer allocation (See Gaudi Developers message)
        strcasecmp.h   Make inline function for WIN32 to standardize on Linux str(n)casecmp
                       without all the #ifdefs
        HashTable.h    Bug fix by Traudl Hansl-Kozanecka (GLAST)
        RefTable.h     dto. Moved from LHCbEvent to GaudiKernel.
        IRunable.h     new interface for Runable
        IAppMgrUI.h    Allow access to the application managers state.
			  (May need changes to ApplicationMgr in GaudiSvc)
        SystemBase.h   ->@System
        System.h       ->@System
        Timing.h       ->@System
	Memory.h       ->@System
        ModuleInfo.h   ->@System
        Debugger.h     ->@System

 - src/static/  Move all files to LIB - static is no longer needed at all!

 - src/Lib
	Bootstrap.cpp  Add entry point to create multiple Application Managers
        DataObject.cpp Remove warning on linux in acceptInspector()
        ConversionSvc.cpp Bug-Fix: if on creating persistent objects no converter was
                          found success (!!) was returned. No correctly returns error.

	System.cpp                ->@System
	Debugger.cpp              ->@System
	Memory.cpp                ->@System
        Timing.cpp                ->@System
        ModuleInfo.cpp            ->@System
        Win32PsApi.h              ->@System
        ProcessDescriptor.h       ->@System
        ProcessDescriptor.cpp     ->@System

 -@System:
       Major code reshuffeling.
        - Static class was changed to namespace. This will make it much simpler to
        extend the functionality without actually having the default header System.h.
        System.h containes the declarations of all functions in a backwards-compatible way.
      - All other functionality was factorized out:
        Memory.h/cpp 		Info about memory consumption
        Timing.h/cpp   		Info about time consumption
        ModuleInfo.h/cpp	Info about running modules
	Debugger.h/cpp          Invoke debugger from running program (NT only)
        ProcessDescriptor.h/cpp **Internal** access to process specific information
        + Win32Api.h            as it is exported by Linux/NT. This header is PURELY internal
                                and should never be included directly.

! 20010313 Pere Mato
 - Moved files ISolid.h, IPVolume.h, ILVolume.h, IDetectorElement.h, IGeometryInfo.h
   ITransportSvc.h to the DesDesc package. Forward links to the new position have been
   left in place.

! 20010312 Markus Frank
 Changes to the job options processing
 - implemented PropertyMgr::setProperty( const std::string& n, const std::string& v )
 - Properly implement the macro QUOTEDELEMENTINPUT.
   CTDay ir right when he quotes that this is "HACK Big Time". It's also undebuggable.

! 20010305 Pere Mato
 - Corrected bug reported by O. Callot that the OutputLevel was not working
   for Algorithms.

! 20010228 David Quarrie
 - ARM page 210 tweaks to IToolFactory.h to avoid compiler warnings. Add
   DECLARE_ALGTOOL(X) and DECLARE_TOOL(X) macros to DeclareFactoryEntries.h

! 20010226 Pere Mato
 - Small changes to make it compile in NT

! 20010223 David Quarrie
 - Changes for Solaris support, which is incomplete. The package compiles on
   this platform, but some of the required template specialization "hacks" are
   not fully understood and need to be revisited. Run-time debugging hasn't
   yet begun.
 - Changes to avoid compiler warning messages. These are all due to function
   overloading across class hierarchies. The policy is described on Page 210
   of the ARM. It's not yet clear whether these are compatible with the Visual
   C++ compiler on NT. Modified files:
       GenericLink.h IAlgFactory.h IAuditorFactory.h IDataDirectory.h
       IFactory.h IHistogramSvc.h ISvcFactory.h ObjectContainerBase.h
       ObjectFactory.h ObjectList.h ObjectVector.h
 - Changes to support the scripting service. SimpleProperties now support
   callback handlers for both reading and updating. The IProperty interface
   has been extended to allow more flexible setting & retrieving of properties
   from streams and strings. Modified files:
       IProperty.h Property PropertyMgr PropertyVerifier
 - Add support for explicitly specifying the CLID and name of the root
   object in the transient event store (defaults are CLID_Event and "/Event").
   Modified files:
    DataSvc IDataManagerSvc
 - Other details:
   AlgTool Algorithm Auditor Service
       Support new IProperty interface. Use function template for
       declareProperty. Support deferred service instantiation in service
       accessors.
   FactoryTable.h
        Fix compiler warning because of missing comment characters
   System.cpp
        Minor tweak to avoid SOlaris compiler warning.

! 20010223 Pere Mato
 - Changes to deal with the template specialization in the new version of GNU c++ compiler

! 20010208 Pere Mato
 - Modified System.cpp. Added suffix in the DLL name when loading
 
! 20000125 Pere Mato
 - Changed CLID& by CLID in Converter base class to avoid weird problems with some
   converters in Linux.
 - Corrected bug in Algorithm::service()
 - In Bootstrap.h, added static method Gaudi::svcLocator() to get the ISvcLocator* 
   in isolation.
 - In ISvcLocation.h added a templated method ISvcLocator::service() to facilitate 
   retrival of services.

! 20010122 - GaudiKernel v8r1 and head revision (Flr)
  GaudiKernel/IGiGa*.h - update include file path to new schema.

! 20000119 Pere Mato
 <<< Changes are not compatible with existing packages. Everything should be re-built >>>>
 - Eliminated static library GaudiBase.
 - Eliminated the constant data files IInterface.cpp and Kernel.cpp
 - Renamed class IID to InterfaceID
 - Added de definition of the InterfaceID (IID) constants in each interface Ixxxx.h file
 - Introduced new file ClassID.h which constains some the definition of CLID and some basic
   constants.
 - Changes asked by Vanya for the classes: ILVolume, IPVolume, ISolid, IGeometryInfo,
   IDetectorElement

! 20001215 Pere Mato
 - Renamed Time::Time class by TimePoint class
 - The constants Time::time_absolutepast and Time::time_absolutefutre are now defined 
   in the TimePoint.h. The namespace Time has been removed.
   
! 20001213 Pere Mato
 - Cleanup and adaptation to the new way of documenting the code based
   on Doxygen (JavaDoc style)
 - Incorparated changes done by D.Quarrie in the old LHCb repository

 - Add isInitialized() and seInitialized() member functions and handling to prevent
   multiple initialization attempts on the same Algorithm. This protection is needed
   when scripting is in use.

! 20001119 - David Quarrie
 - Implemented a new service called ScriptingSvc. This is a service (with an
   initial implementation based on Python), which provides a scripting capability
   at run-time as opposed to the JobOptionsSvc which is limited to run startup
   time. This service has entailed some changes to the Gaudi kernel classes, which
   are mainly extensions to existing interfaces, but with some backwards-compatible
   rework of several of the Property classes.
   + Added new interface: IScriptingSvc

- Auditor/Auditor
  Same changes as for Algorithm.

- Interfaces/IServiceLocator
  Add list<IService*> getServices() for symmetry with the IAlgManager.

- JobOptionsSvc
  A major rework of the Property class hierarchy to better support the scripting
  interface. For the most part the changes are backwards compatible, with the
  exception that bounds checking involves use of a verifier().  Note that the
  PropertyRef.cpp & .h files are obsolete since that class is now typedef'd.
  The PropertyList class for nested properties is not yet functional. Both of
  these classes have been retained but bypassed in the build for now.

- Kernel/Service
  Replace overloaded declareProperty function by function template.
  Add PropertyMgr* accessor

- ApplicationMgr/AppMgrUI
  Add AppMgrUI class as intermediate class between IAppMgrUI and
  ApplicationMgr. This simplifies the scripting interface.


! 20001204 Pere Mato
  Moved in ObjectVector<T> and ObjectList<T> from the LHCbEvent package.
  Removed iterator from ObjectContainerBase class

! 20001122 Pere Mato
  Various changes needed for CMT v1r7 and Nmake

! 20001128 GaudiKernel v8
  move *.cpp into src/static/ and src/Lib/
  move *.h, *.icpp and GaudiFactory.cpp into GaudiKernel/
  update #include statements

!=============================================================================
! 20001018 - Pere Mato
 - Implemented a new service called IncidentSvc. This allows to communicate 
   asynchronously things that happen in the system. The ApplicationMgr uses it to inform
   when begining and ending the processing of one physics event.
   + Added new interfaces related to the new service: IIncidentSvc.h, IIncidentListener.h
   + Added new base class: Incident.h

 - Changed IHistogramSvc to be consistent with the (HTL) histogram implementation using
   double for defining histogram edges instead of float. Code using histograms needs to
   be re-compiled!!. (CT0000000035488)

! =====================================================================
! 20001310 - Markus Frank
 Changes files:
	DataSvc/DataSvc.cpp
	DataSvc/DataSvc.h
	PersistencySvc/ConversionSvc.cpp;
	System/System.cpp;

      New Interfaces:
      Interfaces/IDataSourceMgr.h;
      Interfaces/IInspectable.h;
      Interfaces/IInspector.h;
      Interfaces/ISelectStatement.h;

      Changed interfaces:
      Interfaces/INTuple.h      Extension for N-tuples to accept pre-selections
      Interfaces/IPersistencySvc.h;

	Kernel/DataObject.cpp;    Extended to make dataobject inspectable
	Kernel/DataObject.h;      dto.

	// New files:
      Kernel/DataTypeInfo.cpp;  allow access to primitive type information
      Kernel/DataTypeInfo.h;    dto.
      Kernel/SelectStatement.h; base calss for selct statements (e.g. for N-tuples)
      Kernel/Tokenizer.cpp;     small parser for qualified strings of type: ITEM='value'
      Kernel/Tokenizer.h;       dto.

    	Kernel/GenericAddress.h; Fix bug when returning object name from datadirectory
      Kernel/IInterface.cpp;   Added Interface and storage types

      Kernel/ObjectFactory.h;
      Kernel/StreamBuffer.h;
	MessageSvc/MsgStream.h;

      NtupleSvc/NTuple.h;       Extension for N-tuples to accept pre-selections
      NTupleSvc/NTupleImplementation.cpp;  dto.
      NTupleSvc/NTupleImplementation.h;    dto.
      NTupleSvc/NTupleItems.cpp;           dto.
      NTupleSvc/NTupleItems.h;             dto.
      NTupleSvc/Selector.cpp;              Base class for user preselectors
      NTupleSvc/Selector.h;                dto.

!=======================================================================================
! 20001009 - Vanya Belyaev 
   (1) Gaudi/Kernel/IInterface.cpp - added definition of IID_IGiGaCnvSvc 
              and 2 definitions of pseudy-technology types, needed for GiGa 
   (2) remove obsolete method from IGiGaSvc interface, the functionality of these 
       method is replaced by  GiGa Conversion Sercice 

!========================================================================================
! 20001009 - David Quarrie, Pere Mato
 - Added the support for "Auditors". The following existing files has been changed:
   Algorithm.h (.cpp), ISvcLocator.h, IInterface.cpp
   New interfaces: IAuditor.h, IAuditorFactory.h
   New classes: Auditor.h (.cpp), AudFactory.h

! ======================================================================================
! 20000731 - Vanya Belyaev 
  - Gaudi/DetectorDataSvc/DetectorElement.h bug fix 
       (1) remove empty default constructor         (incorrect initialization) 
       (2) now default construction is not empty!!!

! ======================================================================================
! 20000720 - Gaudi v7

! 20000717 - Radovan Chytracek
  - Fixed inheritance order for DetectorElement class + class ID getters

! 20000710 - Gloria Corti
  - Introduce the interfaces and base classes for the ToolSvc
     new files in Interfaces: IAlgTool.h, IToolFactory.h, IToolSvc.h
     new files in Kernel: AlgTool.h, AlgTool.cpp, ToolFactory.h
     modified IInterface.cpp (in Kernel) to add the IID for IAlgTool,IToolFactory and 
     IToolSvc
  - requirements: introduce AlgTool.cpp in Gaudilib
  - Change obsolete comment in IParticlePropertySvc

! 20000709 - Markus Frank
  - Bug fixes for release
  - Randm number wrapper as described in the Sotfware week

! 20000704 - Pavel Binko
  - Interfaces - the interfaces IAxis, IHistogram and IHistogramSvc
                 have been enhanced by function :
                 - returning all edges in a given axis
                 - setting the histogram title
                 - allowing to register, unregister, retrieve and find
                   a histogram in the transient histogram data store 

! 20000704 - Marco Cattaneo
  - requirements : use LHCbCMT v3r1 (to pick up EXTLIB v2r1)

! 20000630 - Pere Mato
  - Removed implementations of initialize(), finalize() and execute() 
    in Algorithm base class as a response to the e-discussion concerning
    the spelling of such methods.

! 20000622 - Vanya Belyaev
  - System.cpp : introduce "more correct" coefficient between time clocks and seconds :-))

! 20000622 - Vanya Belyaev
  - System.cpp : introduce "correct" coefficient between time clocks and seconds 


! 20000621 - Marco Cattaneo
  - requirements: insert underscore in name of Gaudi_shlibflags macro, 
                  to please CMT v1r5

! 20000617 - Vanya Belyaev
  - Bug fix in Gaudi/System/System.cpp file in method char** System::argv()

! 20000616 - Pere Mato
  - Changed Algorithm base class. Added an error counter and max error 
    limit to allow continuation of trhe program. Default is one.
    Added accessor to RndmGenSvc from base class.

! 20000615 - (Pere Mato, David Quarrie)
  - Changed interface IAlgorithm and base class Algorithm to support 
    Algorithm sequences (Babar style). Added some more algorithm flags
   (enabled, executed, fileter passed, ...) in base class. Added method
    reasetExecuted() in the IAlgorithm interface.
  - Changed IProperty interface to support property browsing. Added the
    following methods:
    const Property& getProperty( const std::string& name ) const = 0;
    const std::vector<Property*>& getProperties( ) const = 0;
  - Changed base class Property to introduce the possibility of asking
    to a property for its type. 
  - Introduced new classes: PropertyList, CommandProperty
    A PropertyList is a Property that contains an array of other properties
    A CommandProperty has a callback function associated that is called 
    when a new value of the property is set.
    The PropertyList can handle property nesting. The name convention is
    that names are separated by ":".  
  - Changed PropertyMgr to base its implementation with PropertyList

! 20000609 - (Markus Frank)
  - Main improvement:
    Implementation of the public part of the random number generator package.

  Besides this I **had** to do some code cleanup:
  - Algorithm.h: Removed Algorithm::create(...) 
    Function was declared but never implemented.
  - IChronoStatSvc.h: "long double" is not really a ansi data type.
    Changed to double.
  - IDataManagerSvc.h
    IID_IDataManagerSvc_NO_ERROR = SUCCESS becomes
    IID_IDataManagerSvc_NO_ERROR = IInterface::SUCCESS
  - ITime.h: use longlong data type from kernel.h instead
    of __int64 and "long long" + #ifdef.
  - PropertyRef.h: Simple typedefs of simple properties.
    e.g. typedef SimplePropertyRef<int> IntegerPropertyRef;
    just as it is done in "Property.h".
  - DataObject.cpp: Actually implement 2 member functions which
    were always in the header, but never made it to code.
  - Kernel.h: If neither Linux nor WIN32 is the platform,
    fix "longlong" to a 64 bit structure capable of holding
    the variable.
  - StreamBuffer.h: Clean up internal classes ContainedLink and 
    IdentifiedLink, get rid of macros
  - Message.h: There is no such class "ostream". Use #include <iostream> instead;
  - MsgStream.h: Added copy constructor
  - NTuple.h:    Get rid of a few macros and write the proper code instead.
  - Get rid of NTupleFile.h and NTupleDirectory.h - should never have 
    been used at all. The classes were always defined in NTuple.h!


! 20000525 

- Fixed template instantiation in Ntuple::Item (For version 6 of Visual C++
- Corrected "OuputLevel" bug in Service.cpp. This would not take into account
  a change in the OuputLevel for services.

! 20000523 

Markus Frank Make System.cpp compile under VC 6.0 which opposite to VC 5.0
             defines STRICT by default.

! 20000410 - Gaudi v6

New EventSelector Interface  06/04/2000 
----------------------------------------
Gonzalo Gracia Abril: IEvtSelector.h modified

Gaudi splited into Gaudi and GaudiSvc
-------------------------------------
- Nearly all services moved into the new package GaudiSvc
- Gaudi remains to contain only interfaces, base classes,
  DataSvc and ConversionSvc
- Gaudi uses the new package LHCbCMT
  (Pavel Binko)

Small correction in Service.cpp/h
---------------------------------
- Added const function messageService() which was 
  necessary to get a MsgStream in any constant function
  (Gonzalo Gracia Abril)

New Functionality
-----------------
- New histogram 1D and 2D interfaces, conforming the AIDA interfaces.
- HistogramSvc changed - the LHCb histogram implementation uses now
  the HTL implementation of histograms through the AIDA interfaces.
- HistogramSvc and NTupleSvc changed in order to allow their moving
  to the new package GaudiSvc.

! 19991116 - Gaudi v5

New Functionality
-----------------
- Added a output level threshold associated to the clients (services &
  algotihms) of the MessageSvc overriding the global threshold.
- New JobOptions service implementation with a new parser.
- Support for N-tuples.
- Support for dynamic library loading

Improvemenets
------------- 
- Added interfaces for detector description
- Improved ParticleProperty service. Added index by LundID.
- Modified ApplicationManager to acommonatye other changes

! 19991018 - Gaudi v4r1

New Funtionality
----------------
- Data service and conversion services changed, information about
  storage types and class IDs added
- HTL histograms supported
  + New HTL interfaces are the Interfaces directory,
    their syntax does not differ from the native HTL syntax
  + Compilation with the HTL library nedds the flag HTL_USE_STD

Changes done by Markus Frank, Pere Mato, Pavel Binko


! 19990812 

New Funtionality
----------------
- Support for dynamic link libraries (shareable libraries):
  + Added interface IClassManager with a method called loadModule()
  + Added interface IFactory as a base interface for all factory interfaces
  + Added a FactoryTable static class to support DLLs
  + Modified implemtation of AlgFactory and SvcFactory to use new interfaces
  + Added new property ("DLLs") in ApplicationMgr to set a list of DLL to be loaded at run time
  + Temporary compilation macro to use Gaudi with DDLs (GAUDI_USE_DLL)

Improvements
------------
- Removed "std" from the names of standard services instances.

! ========================================================================

! 19990618 - Gaudi v4

Changes done by Markus Frank, Marco Cattaneo, Paul Maley, Pere Mato
                Rado Chytracek, Iain Last, Pavel Binko among others

New Functionality
-----------------
- Support for Detector Descriptions:
  New classes: DetDataSvc, DetectorElement
  New Interfaces: IgeometryInfo
- Particle Property service:
  New classes: ParticleProperty, ParticlePropertySvc
  New interfaces: IPartoplePropertySvc

Improvements
------------
- Kernel:
  Added classes: GenericAddress, GenericLink
  Many changes in base classes to support new functionality.
- Algorithm:
  Changed initialization methods (sysInitialize(), sysFinalize())
  Added assessors to standards services
- ApplicationMgr:
  Changed to support new services (DetDataSvc, ParticlePropertiesSvc,...)
- DataSvc:
  Improvements in interfaces. Changed the way to name a DataObject in the store.
  Added classes: SmartDataLocator, SmartDataObjectPtr
- MessageSvc:
  Added classes GaudiErrorHandler and GaudiNagHandler to
  interface NAG C error handling to Gaudi/MessageSvc. 
  In order to avoid compile time dependency of Gaudi on <nag.h>,
  GaudiNagHandler is defined inline. Applications using this
  facility must #include "Gaudi/MessageSvc/GaudiNagHandler.h".
  Details of usage can be found at:
  http://lhcb.cern.ch/~cattanem/LHCb/GaudiNagC.html
- PersistencySvc:
  Changed to support two or more conversion services. This was needed to
  support the Root conversion service. 
  Added classes OutputStream, OutputStreamAgent

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.