/usr/share/doc/stilts/sun256/versions.html is in stilts-doc 3.1.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="sun-style.css">
<title>Version History</title>
</head>
<body>
<hr>
Next <a href="secC.1.html">Previous</a> <a href="secC.html">Up</a> <a href="index.html">Contents</a> <br> <b>Up: </b><a href="secC.html">Release Notes</a><br>
<b>Previous: </b><a href="secC.1.html">Acknowledgements</a><br>
<hr>
<hr>
<h2><a name="versions">C.2 Version History</a></h2>
<p>Releases to date have been as follows:
<dl>
<dt><strong>Version 0.1b (29 April 2005)</strong></dt>
<dd>First public release
</dd>
<dt><strong>Version 0.2b (30 June 2005)</strong></dt>
<dd>
<ul>
<li>Added Times func class for MJD-ISO8601 time conversions.</li>
<li>Fixed bug when doing NULL_ test expressions on first column in table.</li>
</ul>
</dd>
<dt><strong>Version 1.0b (30 September 2005)</strong></dt>
<dd>This is the first non-experimental release of STILTS, and
it incorporates major changes and backward incompatibilities
since version 0.2b.
<p>
<dl>
<dt><strong>Parameter system</strong></dt>
<dd>The parameter system has undergone a complete rewrite;
there is now only a single command "<code>stilts</code>",
invoked using the <code>stilts</code> script or the
<code>stilts.jar</code> jar file, and the various tasks are
named as subsequent arguments on the command line.
Command arguments are supplied after that.
The new invocation syntax is described in detail elsewhere in
this document. As well as invocation features such
as improved on-line help, optional prompting,
parameter defaulting, and more uniform access to common features,
this will make it more straightforward to wrap these tasks
for use in non-command-line environments, such as behind a
SOAP or CORBA interface, or in a CEA-like execution environment.
</dd>
<dt><strong>Crossmatching</strong></dt>
<dd>A new command <code>tmatch2</code> has been introduced.
This provides flexible and efficient crossmatching between
two input tables. Future releases will provide commands for
intra-table and multi-table matching.
</dd>
<dt><strong>Concatentation</strong></dt>
<dd>A new command <code>tcat</code> has been introduced, which
allows two tables to be glued together top-to-bottom.
This is currently working but very rudimentary - improvements
will be forthcoming in future releases.
</dd>
<dt><strong>Calculator</strong></dt>
<dd>A new utility command <code>calc</code> has been introduced,
which performs one-line expression evaluations from the
command line.
</dd>
<dt><strong>Pipeline filters</strong></dt>
<dd>The following new filter commands for use in <code>tpipe</code>
and other commands have been introduced:
<ul>
<li><code>addskycoords</code>: calculates new
celestial coordinate pair from existing ones
(FK4, FK5, ecliptic, galactic, supergalactic)
</li>
<li><code>replacecol</code>: replaces column data,
using existing metadata
</li>
<li><code>badval</code>: replaces given 'magic'
value with null
</li>
<li><code>replaceval</code>: replaces given 'magic'
value with any specified value
</li>
<li><code>tablename</code>: edits table name
</li>
<li><code>explodecols</code> and <code>explodecols</code> commands
replace <code>explode</code></li>
</ul>
<p>The new <code>stream</code> parameter of <code>tpipe</code> now
allows you to write filter commands in an external file, to
facilitate more manageable command lines.
</p>
<p>Wildarding for column specification is now allowed for some
filter commands.
</p>
</dd>
<dt><strong>Algebraic functions</strong></dt>
<dd>
<ul>
<li>New functions for converting time values between different
coordinate systems (Modified Julian Date, ISO-8601,
Julian Epoch and Besselian Epoch).
</li>
<li>New RANDOM special function.</li>
</ul>
</dd>
<dt><strong>Documentation</strong></dt>
<dd>SUN/256 has undergone many changes. Much of the tool
documentation is now automatically generated from the code
itself, which goes a long way to ensuring that the documentation
is correct with respect to the current state of the code.
</dd>
</dl>
</p>
</dd>
<dt><strong>Version 1.0-1b (7 October 2005)</strong></dt>
<dd>Fixed jar file manifest bug which prevented working on Java 1.5</dd>
<dt><strong>Version 1.1 (10 May 2006)</strong></dt>
<dd>A number of new features and capabilities have been introduced:
<dl>
<dt><strong><code>tcube</code> Command</strong></dt>
<dd>The new <a href="tcube.html">tcube</a> command
calculates N-dimensional histograms (density maps) from N columns
of an input table and writes the result to a FITS file.
</dd>
<dt><strong>Processing Filters</strong></dt>
<dd>The following new <a href="filterSteps.html">filters</a>
have been added:
<ul>
<li><code>stats</code> filter provides the same information as
the old <code>stats</code> output mode, but allows much more
flexible use of the results. It can also calculate many new
quantities, including quantiles, skew and kurtosis.
</li>
<li><code>meta</code> filter provides the same information as
the old <code>meta</code> output mode, but allows much more
flexible use of the results.
</li>
<li><code>assert</code> filter provides in-pipeline logical
assertions.
</li>
<li><code>uniq</code> filter collapses multiple adjacent identical
or similar rows.
</li>
<li><code>sorthead</code> filter provides a (usually) more
efficient method of doing what you could previously do
by combining <code>sort</code> and <code>head</code> filters.
</li>
<li><code>colmeta</code> filter adds/modifies metadata for selected
columns.
</li>
<li><code>check</code> filter checks table in stream - for debugging
purposes only.
</li>
</ul>
<p>Additionally usage of the <code>sort</code> filter has been changed
so that it can now do everything that <code>sortexpr</code> used to
be able to do; <code>sortexpr</code> is now withdrawn.
</p>
</dd>
<dt><strong>Output Modes</strong></dt>
<dd>The following new <a href="outModes.html">output modes</a>
have been introduced:
<ul>
<li><code>plastic</code> mode broadcasts the table to
one or all registered PLASTIC listeners.
</li>
<li><code>cgi</code> mode writes the table to standard output in a
form suitable for output from a CGI script.
</li>
<li><code>discard</code> mode throws away the table.
</li>
</ul>
and usage of the following has been modified:
<ul>
<li><code>topcat</code> mode now attempts to use PLASTIC
(amongst other methods) to contact TOPCAT.
</li>
<li><code>stats</code> and <code>meta</code> modes are mildly
deprecated in favour of the corresponding new filters
(see above).
</li>
</ul>
</dd>
<dt><strong>Other new features</strong></dt>
<dd>
<ul>
<li>New IPAC table format input handler added.</li>
<li>New <code>csv-noheader</code> format variant output handler
added.
</li>
<li><code>roundDecimal</code> and <code>formatDecimal</code>
functions introduced for more control over visual appearance
of numeric values.
</li>
<li>Experimental facilities for automatically generating a CEA
application description file.
</li>
</ul>
</dd>
<dt><strong>Bug fixes and minor improvements</strong></dt>
<dd>
<ul>
<li>Now copes with 'K'-format FITS binary table columns
(64-bit integers).
</li>
<li>Improved, though still imperfect, retention of table-wide
metadata in VOTables.
</li>
<li>Distinctions between null and false values in boolean columns are
handled more carefully for FITS and VOTable files.
</li>
<li>Efficiency improvement when writing FITS-plus format
(now only requires a maximum of two passes rather than
three of the input rows).
</li>
<li>Added the <code>mark.workaround</code>
<a href="sysProperties.html">system property</a> which can
optionally work around a bug in some input streams
("Resetting to invalid mark" errors).
</li>
<li>Fixed a bug in Cartesian matching which failed to match
if the required error in any dimension was zero.
</li>
<li>Fixed erroneous reports about unknown <code>ucd</code> and
<code>utype</code> attributes of TABLE element in
<code>votlint</code>.
</li>
<li>When joining tables, column name comparison to determine
whether deduplication is required is now case-insensitive.
</li>
<li>Error message improved when no automatic format detection
is attempted for streamed tables.
</li>
<li>Setting <code>istream=true</code> is now less likely to cause a
"Can't re-read stream" error.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 1.2 (7 July 2006)</strong></dt>
<dd>
<dl>
<dt><strong>Column-oriented Storage</strong></dt>
<dd>New features for permitting column-oriented storage
(<code>colfits</code> format, new <code>startable.storage</code>
policy "<code>sideways</code>") have been introduced.
These can provide considerable efficiency improvements for
certain tasks when working with very large (and especially wide)
tables.
</dd>
<dt><strong>New VO commands</strong></dt>
<dd>Added two new commands for querying Virtual Observatory services:
<ul>
<li><code>multicone</code>
- Makes multiple cone search queries to the same service
</li>
<li><a href="regquery.html"><code>regquery</code></a>
- Queries the VO registry
</li>
</ul>
These tasks are experimental and may be modified or renamed in
future releases.
</dd>
<dt><strong>Other items</strong></dt>
<dd>
<ul>
<li><code>transpose</code> filter added.
</li>
<li>Added flux conversion functions (Jansky<->magnitude).</li>
<li>ISO-8601 strings now permit times of 24:00:00 as they should.</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 1.2-1 (3 August 2006)</strong></dt>
<dd>
<ul>
<li>Tab-Separated Table (TST) format now supported for reading and
writing.
</li>
<li>New <code>setparam</code> and <code>clearparams</code> filters.
</li>
<li>Added ICRS coordinate system for <code>addskycoords</code>.
</li>
<li>TUCDnn header cards now used in FITS files to transmit UCDs
(non-standard mechanism).
</li>
<li>Efficiency improvements for column-oriented access.</li>
</ul>
</dd>
<dt><strong>Version 1.3 (5 October 2006)</strong></dt>
<dd>
<dl>
<dt><strong>Table Concatenation</strong></dt>
<dd>The old <code>tcat</code> command has been replaced by more capable
<a href="tcat.html"><code>tcat</code></a> and
<a href="tcatn.html"><code>tcatn</code></a> commands.
Between them these provide concatenation of an unlimited number of
homogeneous or heterogeneous input tables.
Additional columns may be added to indicate which of the input tables
given output rows originated from.
</dd>
<dt><strong>Parameter value indirection</strong></dt>
<dd>Certain parameters
(<code>in</code> in <a href="tcat.html"><code>tcat</code></a>,
<code>cmd</code> and friends)
may now be specified in the form "@filename".
This indicates that the value for the parameter is to be obtained
by reading it from the named file.
This is useful if a very long value is required for the parameter
in question. The <code>script</code> parameter of
<a href="tpipe.html"><code>tpipe</code></a> has therefore been
withdrawn, since it did just the same thing.
</dd>
<dt><strong>MySpace access</strong></dt>
<dd>Direct access to the MySpace virtual file system is now provided
by use of <code>ivo:</code>- or <code>myspace:</code>-type URLs.
</dd>
<dt><strong>Conversion functions</strong></dt>
<dd>
<ul>
<li>Time conversion functions between MJD and Decimal Year have
been added
(<a href="uk.ac.starlink.ttools.func.Times.html">Section 10.5.5</a>).
</li>
<li><code>toHex</code> and <code>fromHex</code> numeric conversion
functions have been added
(<a href="uk.ac.starlink.ttools.func.Conversions.html">Section 10.5.13</a>).
</li>
</ul>
</dd>
<dt><strong>Documentation improvements</strong></dt>
<dd>
<ul>
<li>The HTML version of SUN/256 now uses CSS to provide better
highlighting of <code>commands</code> etc.
</li>
<li>The <a href="outModes.html">Output Modes</a> and
<a href="filterSteps.html">Processing Filter</a> sections are
now split into subsections to make the table of contents
clearer.
</li>
<li>The <a href="cmdUsage.html">Command Reference</a> section now
has only one level of subsection listed in the table of
contents to make it clearer.
</li>
</ul>
</dd>
<dt><strong>Other new features and improvements</strong></dt>
<dd>
<ul>
<li>Added <code>-J</code> flag to <code>stilts</code> script
for passing flags directly to Java.
</li>
<li>Added new <code>out</code> parameter to <code>votlint</code>.
</li>
<li>Added <code>-ifndim</code> and <code>-ifshape</code> flags to
<a href="explodeall.html">explodeall</a> filter.
</li>
<li>The <code>exact</code> match mode in
<a href="tmatch2.html"><code>tmatch2</code></a>
now copes with array-valued columns.
</li>
<li>Added <code>force</code> parameter to <code>multicone</code> task
as a workaround for some broken services.
</li>
<li>Added Sample (as opposed to Population) Standard Deviation/Variance
calculation options to the <code>stats</code> filter.
</li>
<li>Improved CEA description file output - now contains details of
all tasks rather than just a few, as well as various
improvements in documentation etc.
</li>
</ul>
</dd>
<dt><strong>Bug fixes</strong></dt>
<dd>
<ul>
<li>Fixed erroneous complaints from <code>votlint</code> about
<code>utype</code> attribute on RESOURCE elements.
</li>
<li>Fixed a couple of minor crossmatching bugs (which wouldn't
have affected results).
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 1.3-1 (Starlink Hokulei release)</strong></dt>
<dd>
<ul>
<li>New command <a href="tjoin.html"><code>tjoin</code></a> introduced.
</li>
<li>Output to MySpace can now be streamed, if running under J2SE1.5 or
later.
</li>
<li>Slight changes to parameters for <code>votlint</code>
and <code>votcopy</code>.
</li>
<li>Fixed bug in handling of single quotes in FITS file metadata.</li>
<li>Added <code>-bench</code> flag to <code>stilts</code> command.
</li>
<li>Various scalability improvements for use with very large (Tb?)
files.
</li>
<li>Improved efficiency for <code>text</code> and <code>ascii</code>
output formats (now one-pass not two-pass).
</li>
<li>Improved CEA app-description file, including especially option lists
for things like input and output formats.
</li>
<li>Added README.cea file to distribution.</li>
<li>Fixed problem which could mis-report VOTable out of memory errors
as Broken Pipe.
</li>
<li>Added Vega<->AB magnitude conversion constants to
<a href="uk.ac.starlink.ttools.func.Fluxes.html">Fluxes</a> functions.
</li>
<li>Added <code>duptag</code> parameters to <a href="tmatch2.html">tmatch2</a>
task for customised renaming of columns with duplicated names.
</li>
<li>Added hyperbolic trig functions to
<a href="uk.ac.starlink.ttools.func.Maths.html">Maths</a> class
(<code>sinh</code>, <code>cosh</code>, <code>tanh</code>
and inverses).
</li>
<li>Added cosmology distance calculations in class
<a href="uk.ac.starlink.ttools.func.Distances.html">Distances</a>.
</li>
<li>Added <a href="funcs.html"><code>funcs</code></a> task, a browser for
expression language function documentation.
</li>
<li>Added <code>-checkversion</code> to list of <code>stilts</code>
<a href="stilts-flags.html">flags</a>.
</li>
</ul>
</dd>
<dt><strong>Version 1.3-2 (6 July 2007)</strong></dt>
<dd>
<ul>
<li>Added optional <code>table</code> parameter to
<a href="calc.html"><code>calc</code></a> command
(for access to table parameters).
</li>
<li>Can use table parameter names in expressions using
<code>param$</code> notation (<a href="jel-paramref.html">Section 10.2</a>).
</li>
<li>Can reference columns/parameters by UCD by using
<code>ucd$</code> notation
in expressions (<a href="jel-colref.html">Section 10.1</a>)
and as column identifiers (<a href="col-id.html">Section 6.2</a>).
</li>
<li>Improved deduplication of column names when joining tables.</li>
<li>Fix error in output of FITS table <code>TNULL</code><i>n</i> header
cards - write them as numeric not string values.
</li>
<li>Improve error message for broken CSV files.</li>
<li>Modified JDBC handling so that MySQL and PostgreSQL do not run out
of heap memory when streaming large datasets for input.
Think I've done the same for SQL Server, but this is not tested.
</li>
<li>Improve error reporting in the presence of a deficient JVM
(such as GNU <code>gcj</code>).
</li>
<li>Add locale-specific <code>formatDecimalLocal</code> functions in
class <a href="uk.ac.starlink.ttools.func.Formats.html">Formats</a>.
</li>
<li>Add <code>fluxToLuminosity</code> and <code>luminosityToFlux</code>
functions in class
<a href="uk.ac.starlink.ttools.func.Fluxes.html">Fluxes</a>.
</li>
<li>Fix bug which was causing NullPointerExceptions
in the <code>transpose</code> filter.
</li>
</ul>
</dd>
<dt><strong>Version 1.3-3 (4 Sep 2007)</strong></dt>
<dd>
<ul>
<li>Experimental, and currently undocumented, <code>sqlcone</code>
task introduced, along with some classes in package
<code>uk.ac.starlink.ttools.cone</code> designed for library use by
AstroGrid DSA code.
</li>
<li>CEA description of <code>tmatch2</code> <code>params</code>
parameter now has <code>minoccurs=0</code>, since that can be true
for exact matches.
</li>
</ul>
</dd>
<dt><strong>Version 1.3-4 (10 Sep 2007)</strong></dt>
<dd>
<ul>
<li>Fixed VotCopy bug.</li>
</ul>
</dd>
<dt><strong>Version 1.3-5 (30 Oct 2007)</strong></dt>
<dd>
<ul>
<li>Added <code>-stdout</code> and <code>-stderr</code> flags to
<code>stilts</code> command.
</li>
<li>Some bugs fixed in generation of CEA <code>app-description.xml</code>
file.
</li>
<li>Documentation provided for <code>sqlcone</code> command.
</li>
<li>Fixed error in <code>fluxToLuminosity</code> function.
</li>
</ul>
</dd>
<dt><strong>Version 1.4 (6 December 2007)</strong></dt>
<dd>
<dl>
<dt><strong>Table joins</strong></dt>
<dd>This version provides more cross matching functionality.
Added to the existing <a href="tmatch2.html"><code>tmatch2</code></a>
command are new tasks:
<ul>
<li><a href="tskymatch2.html"><code>tskymatch2</code></a>:
stripped down version of <code>tmatch2</code> for ease of use when
matching with sky coordinates.
</li>
<li><a href="tmatch1.html"><code>tmatch1</code></a>:
internal matcher, finds groups of objects within a table.
</li>
<li><a href="tmatchn.html"><code>tmatchn</code></a>:
finds group or multiple-pair matches between multiple (>2)
tables.
</li>
</ul>
<p>Two tasks have been renamed for improved clarity and consistency:
<ul>
<li><code>multicone</code> is now named
<a href="coneskymatch.html"><code>coneskymatch</code></a></li>
<li><code>sqlcone</code> is now named
<a href="sqlskymatch.html"><code>sqlskymatch</code></a></li>
</ul>
</p>
<p>There has also been some enhancement and rationalisation of
parameters for all table join tools (<code>tmatch*</code> as well as
<code>tjoin</code>,
<code>coneskymatch</code> and <code>sqlskymatch</code>):
<ul>
<li>All table join commands now use similar <code>fixcols</code> and
<code>suffix*</code> parameters to control renaming of duplicated
columns in output tables (note this replaces the old
<code>duptag*</code> parameters in <code>tmatch2</code>).
</li>
<li>Crossmatching tasks have a new <code>progress</code> parameter
which allows you to configure whether progress is reported to the
console.
</li>
<li>The <code>copycols</code> parameter of <code>coneskymatch</code>
and <code>sqlskymatch</code> now defaults to "<code>*</code>"
(include all columns from input table in the output).
</li>
</ul>
</p>
<p><a href="match.html">Section 7</a> of the manual has been somewhat
rearranged and improved.
</p>
</dd>
<dt><strong>Other enhancements</strong></dt>
<dd>
<ul>
<li>FITS reader now imports table HDU header cards as table parameters.
</li>
<li>CeaWriter can now output CEA service definition XML config file as
well as app-description file (experimental - may be withdrawn).
</li>
</ul>
</dd>
<dt><strong>Bug fixes</strong></dt>
<dd>
<ul>
<li>Embedded spaces in output ASCII format table column names
are now substituted with underscores.
</li>
<li>Fix a bug which caused an infinite number of dots to be printed
when attempting a crossmatch with an empty input table.
</li>
<li>Corrected <code>votlint</code> handling of TABLEDATA-type
multi-dimensional <code>char</code>/<code>unicodeChar</code> arrays.
These are now split up into strings by counting characters rather
than using whitespace delimiters.
I <em>think</em> it's doing the right thing now.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 1.4-1 (28 January 2008)</strong></dt>
<dd>
<dl>
<dt><strong>New RDBMS-related features</strong></dt>
<dd>
<ul>
<li>New command <a href="sqlclient.html"><code>sqlclient</code></a>,
which is a general JDBC-based SQL command-line client.
</li>
<li>New command <a href="sqlupdate.html"><code>sqlupdate</code></a>,
which allows updates to existing rows in SQL tables.
</li>
<li>Some changes to <a href="mode-tosql.html"><code>tosql</code></a>
output mode:
<ul>
<li>choice of options for how to write to the database output table,
controlled by new associated parameter <code>write</code>
(can be <code>create</code>, <code>dropcreate</code>
or <code>append</code>)
</li>
<li>associated parameter <code>newtable</code> renamed
<code>dbtable</code></li>
<li>associated parameter <code>database</code> renamed
<code>db</code> for consistency with other commands
</li>
</ul>
</li>
</ul>
</dd>
<dt><strong>Local and service-based matching command enhancements</strong></dt>
<dd>
<ul>
<li>New parameter <code>scorecol</code> added to
<code>tmatch2</code>,
<code>coneskymatch</code> and
<code>sqlskymatch</code> commands,
which controls adding a new column to match output tables
containing a goodness-of-match value.
</li>
<li>New parameter <code>parallel</code> added to
<a href="coneskymatch.html"><code>coneskymatch</code></a> task
which allows multiple cone searches to be carried out in
parallel.
</li>
<li>New parameter <code>erract</code> added to
<code>coneskymatch</code> which controls response to
isolated failures in individual cone search queries.
</li>
</ul>
</dd>
<dt><strong>General improvements</strong></dt>
<dd>
<ul>
<li>Improved error reporting (reasons for errors are now reported
even without the <code>-debug</code> flag).
</li>
<li>Add new help option <code>help='*'</code> which prints help for
all parameters of a task at once.
</li>
<li>Added (mostly undocumented) <code>+verbose</code> flag
for reducing verbosity level.
</li>
<li>Minor improvements to CEA app-description.</li>
<li>Downgraded from WARNING to INFO log messages about
the (extremely common) VOTable syntax error of omitting
a FIELD/PARAM element's <code>datatype</code> attribute.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 1.4-2 (26 March 2008)</strong></dt>
<dd>
<dl>
<dt><strong>Minor enhancements:</strong></dt>
<dd>
<ul>
<li>Add <code>progress</code> parameter to <code>tmatchn</code>.
</li>
<li>Add <code>emptyok</code> parameter to
<code>coneskymatch</code>.
</li>
</ul>
</dd>
<dt><strong>Bugfixes:</strong></dt>
<dd>
<ul>
<li>Fixed pair matching performance bug (slower if tables were not
given in the right order) introduced at v1.4.
</li>
<li>Fixed null handling error in <code>calc</code> task.
</li>
<li>Fixed error in <code>stats</code> filter cardinality value
calculation.
</li>
<li>Fixed minor bugs in suffix addition for matching commands
<code>fixcols</code>.
</li>
<li>Removed unformatted XML output in <code>stats</code> filter
usage message.
</li>
<li>Try to avoid exponential format in cone search URLs
(some endpoints seem to require fixed point format).
</li>
<li>Minor CEA fixes.</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 2.0b (23 October 2008)</strong></dt>
<dd>This version contains two new major items, plotting and server mode.
Both work, but are missing desirable features and have not had extensive
testing in the field, so should be considered experimental at this stage.
<dl>
<dt><strong>Plotting</strong></dt>
<dd>Two table plotting commands are now provided:
<ul>
<li><a href="plot2d.html"><code>plot2d</code></a>:
Old-style 2D Scatter Plot
</li>
<li><a href="plot3d.html"><code>plot3d</code></a>:
Old-style 3D Scatter Plot
</li>
<li><a href="plothist.html"><code>plothist</code></a>:
Old-style Histogram
</li>
</ul>
See also the new <a href="plot.html">Plotting</a>
section in the manual.
</dd>
<dt><strong>Server/Servlet Mode</strong></dt>
<dd>A new command <a href="server.html"><code>server</code></a> is
provided which allows STILTS commands to be executed via HTTP.
One purpose of this is to facilitate server-side use of the
plotting commands co-located with data to generate on-the-fly
graphical summaries of server-held datasets.
</dd>
<dt><strong>Smaller enhancements and bugfixes</strong></dt>
<dd>
<ul>
<li>Efficiency improvements (~25%? in both CPU time and memory usage)
for HEALPix-based sky crossmatching
(thanks to Nikolay Kouropatkine at Fermilab for a new version of
the PixTools library).
</li>
<li>New class <a href="uk.ac.starlink.ttools.func.Arrays.html">Arrays</a>
added to algebraic functions.
</li>
<li>New Appendix <a href="classified.html">Commands by Category</a>
added to manual.
</li>
<li>Add <code>minReal</code> and <code>maxReal</code> functions
(max/min ignoring blank values) in class
<a href="uk.ac.starlink.ttools.func.Arithmetic.html">Arithmetic</a>.
</li>
<li>Sexagesimal field identification for ASCII input files
is less stringent
(now permits minutes or seconds equal to 60).
</li>
<li>Minor CEA fixes.</li>
<li>HEALPix bug fix
(<a href="http://home.fnal.gov/~kuropat/HEALPIX/PixTools.html">PixTools</a> bug fix update).
</li>
<li>Fix bug in use of <code>tcat</code>'s
<code>loccol</code> parameter.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 2.0-1 (23 December 2008)</strong></dt>
<dd>
<ul>
<li>Can reference columns/parameters by Utype by using
<code>utype$</code> notation
in expressions (<a href="jel-colref.html">Section 10.1</a>)
and as column identifiers (<a href="col-id.html">Section 6.2</a>).
</li>
<li>Non-alphanumeric column names may now be used for algebraic expressions
in the special case that the expression is just the value of a
single column.
</li>
<li><code>regquery</code> command has changed in implementation,
data access, and output format. It now queries VOResource1.0
registries rather than the very out of date registry protocol which
was used in earlier versions.
</li>
</ul>
</dd>
<dt><strong>Version 2.0-2 (9 January 2009)</strong></dt>
<dd>
<ul>
<li>Added new <a href="mode-samp.html">samp</a> output mode which passes
the generated table to clients using the SAMP protocol.
</li>
<li>Updated the <a href="mode-topcat.html">topcat</a> output mode to use
SAMP as one way of communicating with a running TOPCAT.
</li>
<li><code>-version</code> flag now reports starjava subversion revision
as well as other items.
</li>
</ul>
</dd>
<dt><strong>Version 2.0-3 (27 March 2009)</strong></dt>
<dd>
<ul>
<li>Fits BINTABLE TZERO/TSCAL value reading improvements:
<ul>
<li>Columns with integer TZERO values now read as integers
rather than floating point values where possible.
This includes unsigned longs ('K'), which were previously
represented as doubles with lost precision.
Unsigned longs which are too large however (>2<sup>63</sup>)
are read as nulls.
</li>
<li>Byte-valued columns can now be written out by
<code>fits-basic</code> output
handler as signed byte values (TFORM=B,TZERO=-128)
rather than signed shorts (TFORM=I).
</li>
<li>More comprehensive testing.</li>
<li>Fixed bug in calculating value scaled double ('D') values.</li>
<li>Fixed bug in typing value for scaled float ('E') arrays.</li>
<li>Fixed bug which caused registry queries (<code>regquery</code>)
to fail for Java 1.6.
</li>
</ul>
</li>
<li>Fix minor bugs in detail of <code>votlint</code>'s validation tests
(VOTABLE element content model,
INFO and PARAM and FIELD required attributes).
</li>
<li>Report application name and version in User-Agent header of outgoing
HTTP requests.
</li>
<li>The fixed length Substring Array Convention for string arrays
(<code>TFORMnn=rAw</code>)
is now understood for FITS binary tables.
</li>
<li>Minor SAMP bugs fixed (JSAMP upgraded to 0.3-1).</li>
</ul>
</dd>
<dt><strong>Version 2.0-4 (17 July 2009)</strong></dt>
<dd>
<ul>
<li>Work around J2SE mark/reset bug when loading table direct from URL.</li>
<li>Produce null rather than nonsense results from sky coordinate
conversions with unphysical latitudes
(<code>addskycoords</code> filter).
</li>
<li>Produce null rather than questionable results from sexagesimal
conversions with mins/secs out of range.
</li>
<li>Fix two bugs in <code>votcopy</code>: XML processing instructions
garbled on output, and pathnames in <code>base</code> parameters
inappropriately flattened in hrefs attribute values.
</li>
</ul>
</dd>
<dt><strong>Version 2.0-5 (2 Oct 2009)</strong></dt>
<dd>
<ul>
<li>VOTable 1.2 supported.</li>
<li><code>votlint</code> can now validate VOTable documents following
the (provisional, 2009-09-29 PR) VOTable 1.2 standard.
</li>
<li>Namespacing of VOTable documents made more intelligent, and
configurable using the <code>votable.namespacing</code> system
property.
</li>
<li><code>votlint</code> now checks that the correct XML namespaces are
in use.
</li>
<li>Be more careful in XML, including VOTable, output;
fix VOTable output encoding to be UTF-8,
and ensure no illegal XML characters are written.
</li>
<li>HTML table output is now HTML 4.01 by default
(includes THEAD and TBODY tags).
</li>
<li><code>parse*</code> string->numeric conversion
functions now cope with leading or trailing whitespace.
</li>
<li>Work around illegally truncated type declarations in IPAC tables.</li>
<li>Fix a bug which caused the first table in a multi-table file
(FITS or VOTable) to be used in streaming mode, even if
a subsequent one was requested.
</li>
<li>Bug fixed in crossmatching output: entries which should have been
null were sometimes written as non-null (typically large negative
numbers) in FITS and in non-TABLEDATA VOTable output.
This affected cells in otherwise non-nullable columns
where the entire row was absent. The previous behaviour is not
likely to have been mistaken for genuine results.
</li>
</ul>
</dd>
<dt><strong>Version 2.1 (6 November 2009)</strong></dt>
<dd>
<ul>
<li><code>coneskymatch</code> can now match using SIA and SSA
services as alternatives to Cone Search ones
(see its new <code>servicetype</code> parameter).
</li>
<li>Fixed an obscure bug which could under rare circumstances cause
truncation of strings with leading/trailing whitespace read
from text-format files.
</li>
<li>A new <code>startable.storage</code> policy "<code>adaptive</code>"
is now the default. This should mean running out of memory less
often. The old behaviour can be restored by giving the new
<code>-memory</code> command line flag.
</li>
</ul>
Note that the STIL API used by this release has changed in some
backwardly incompatible ways, and may change further.
If you're using STILTS as a library rather than an application
you might want to wait for a later release when the API has settled down.
</dd>
<dt><strong>Version 2.1-1 (21 December 2009)</strong></dt>
<dd>
<ul>
<li>Plotting commands can now output to PDF as well as existing graphics
formats.
</li>
<li>New filter <a href="fixcolnames.html"><code>fixcolnames</code></a>.
</li>
<li>Fixed internationalisation bug which could cause
<code>coneskymatch</code> to fail in locales that use ","
for a decimal point.
</li>
<li>Significant performance improvements related to the case of VOTable
documents containing many tables.
</li>
</ul>
</dd>
<dt><strong>Version 2.1-2 (24 March 2010)</strong></dt>
<dd>
<ul>
<li><a href="jystilts.html">JyStilts</a> introduced.
This is a jython (i.e. Python, though not CPython)
interface to the STILTS commands.
It is believed to be fully working, but somewhat experimental -
feedback is encouraged.
</li>
<li>Considerable performance and scalability improvements to the
crossmatching commands
(<code>tmatch1</code>, <code>tmatch2</code>, <code>tmatchn</code> and
<code>tskymatch2</code>).
For several common regimes, using default settings,
memory use has been decreased by a
factor of about 5, and CPU time reduced by a factor of about 3.
</li>
<li>Add optional tuning parameters to crossmatch commands
(parameter <code>tuning</code> for
<code>tmatch1</code>, <code>tmatch2</code> and <code>tmatchn</code>,
and parameter <code>healpixk</code> for <code>tskymatch2</code>).
Experimentation with these can lead to significant performance
improvements for given matches.
</li>
<li>Fixed a crossmatch bug; it was giving a possibility of
suboptimal "<code>find=best</code>"
match assignments when pair matching in crowded fields.
Crossmatch results thus may differ between earlier versions
and this one. Both are reasonable, but the newer behaviour is
more correct. In non-crowded fields, there should be no change.
</li>
<li>Further performance improvement for VOTable documents with
very many TABLEs.
</li>
<li>Memory management adjusted further - default (Adaptive) storage policy
now uses direct allocation (=<code>malloc()</code>)
for intermediate-sized buffers
to avoid running out of java heap space.
</li>
<li>New option "<code>find=each</code>" for
<code>coneskymatch</code> and <code>sqlskymatch</code> commands.
This allows you to get an output table with exactly one row for
each row of the input table.
</li>
<li>New flag <code>-memgui</code> to monitor memory usage during runs.
</li>
<li>Add new filter <a href="rowrange.html"><code>rowrange</code></a>.
</li>
<li>Add new functions to
<a href="uk.ac.starlink.ttools.func.Arrays.html">Arrays</a>:
<code>array</code> functions for constructing arrays,
and new aggregating functions <code>median</code> and
<code>quantile</code>.
</li>
<li>Syntax of the crossmatching commands' <code>progress</code> parameter
has changed; it now has an additional option which will write
limited profiling information as well as logging as the match
progresses.
</li>
<li>Add <code>ylabel</code> parameter to <code>plothist</code> command.
</li>
<li>The <code>random</code> and <code>sequential</code> filters have
been renamed <code>randomview</code> and <code>seqview</code>
respectively. This provides a better idea of what they do.
Since they are only useful for debugging, it is unlikely that this
will break anyone's existing code.
</li>
<li>New filter <code>random</code> introduced which converts tables
to random-access if necessary.
</li>
<li>Document previously undocumented <code>legend</code> parameter to
plotting commands.
</li>
<li>Matching commands <code>matcher</code> parameters can now accept
classnames of <code>MatchEngine</code> implementation classes as
an option.
</li>
<li>Classes are now distributed as a zip of jars
(<code>stilts_jars.zip</code>) as an alternative to
the monolithic jar file (<code>stilts.jar</code>).
This may be more appropriate for those using STILTS classes in a
framework that contains other third party class libraries.
</li>
<li>Adjusted the way that data types are read from JDBC databases.
Date, Time and Timestamp typed columns will now be converted to Strings
which means they can be written to most output formats
(previously they were omitted from output tables).
</li>
<li>STILTS no longer attempts to communicate with TOPCAT using SOAP.
TOPCAT's SOAP interface has been deprecated since v2.1 (2006),
so this isn't likely to cause trouble, and it permits removal of
SOAP (Axis) classes from the application jar file, saving several
megabytes and reducing potential version clash problems.
</li>
<li>Fix bug in code for handling very large mapped FITS files.
This was causing fatal read errors in some cases.
</li>
</ul>
</dd>
<dt><strong>Version 2.2 (6 August 2010)</strong></dt>
<dd>New capabilities for multi-table I/O have been introduced:
<ul>
<li>New multi-table output tasks
<code>tmulti</code> and <code>tmultin</code>.
These currently just copy multiple input tables to a single
multi-table container file (e.g. Multi-Extension FITS or
multi-TABLE VOTable). Future releases may generalise the output of
multi-table processing.
</li>
<li>New <code>multi</code> parameter introduced for <code>tcat</code>
and <code>tmulti</code> tasks to pick up all tables in a
multi-table container file.
</li>
<li>New JyStilts functions <code>treads</code> and <code>twrites</code>
for multi-table I/O.
</li>
</ul>
There are some additional enhancements:
<ul>
<li>Added experimental name-resolution filter <code>addresolve</code>;
this currently uses Sesame.
</li>
<li>Added filter <code>repeat</code>, which repeats table rows a
given number of times.
</li>
</ul>
And a number of bug fixes:
<ul>
<li>Recognise unofficial column type "<code>long</code>" in IPAC format
tables.
</li>
<li>Better behaviour (warn + failover) when attempting to read large
files on 32-bit OS or JVM.
</li>
<li>Efficiency warning now issued for large compressed FITS files.</li>
<li>Upgraded PixTools HEALPix library to 2010/02/09 version.
This fixes a bug that could theoretically cause deficient crossmatch
results, though I haven't managed to produce such errors.
</li>
<li>Fixed bug in TST table output.</li>
<li>Fixed bug in FITS-plus metadata output
(table parameters were getting lost).
</li>
<li>Corrected literature references in Fluxes conversion class
documentation (thanks to Mattia Vaccari).
</li>
<li>Fixed bug in CSV file parsing that could ignore header row in
absence of non-numeric columns.
</li>
<li>Shape and ElSize metadata items now correctly reported by
<code>meta</code> filter.
</li>
<li>Fixed JyStilts bug when supplying an empty string for a parameter
value.
</li>
</ul>
<p>Finally, from this release STILTS requires version 1.5 (a.k.a. 5.0)
of the Java J2SE Runtime Environment; it will no longer run on
version 1.4, which is now very old. I don't expect this to cause
compatibility issues for anyone, but I'm interested to hear if that's
not the case.
</p>
</dd>
<dt><strong>Version 2.2-1 (23 December 2010)</strong></dt>
<dd>
<ul>
<li>Storage management improvements; removed restriction on large
(>2Gb) non-FITS datasets in some circumstances.
</li>
<li>Efficiency improvement in sequential mapped access to large FITS
files.
</li>
<li>Fix so FITS tables >2Gb can provide random access in 32-bit mode
(though slower than 64-bit).
</li>
<li>FITS files now store table names in EXTNAME (and possibly EXTVAR)
header cards.
</li>
<li>Window placement for the few GUI tasks should now behave a bit more
like platform norms, rather than sitting in the top left hand
corner.
</li>
<li>HTML table output now writes cell contents which look like URLs
in HTML <A> tags.
</li>
<li>Basic authorization (<code>http://user:pass@host/path</code>) on
table URLs handled.
</li>
<li>Fixed file pointer int overflow bug in FITS MultiMappedFiles.</li>
</ul>
</dd>
<dt><strong>Version 2.3 (9 May 2011)</strong></dt>
<dd>
<dl>
<dt><strong>TAP</strong></dt>
<dd>The new commands
<a href="tapquery.html"><code>tapquery</code></a> and
<a href="tapresume.html"><code>tapresume</code></a> have been introduced.
These provide support for the Table Access Protocol (TAP),
and allow freeform queries in an SQL-like language to be
made to remote databases.
</dd>
<dt><strong>Minor enhancements</strong></dt>
<dd>
<ul>
<li>Random Groups HDUs are now tolerated, though not interpreted,
within FITS files.
</li>
<li>Added <code>soapout</code> parameter to <code>regquery</code>
command.
</li>
<li>Added <code>count</code>, <code>variance</code> and
<code>stdev</code> functions to
<a href="uk.ac.starlink.ttools.func.Arrays.html">Arrays</a>.
</li>
<li>Upgrade to JSAMP v1.2.</li>
<li>Improve text rendering in <code>funcs</code> window display.
</li>
<li>Attempt case-sensitive matching before case-insensitive for
column names.
</li>
<li>Fix <code>replaceval</code> filter to work with Infinities.
</li>
</ul>
</dd>
<dt><strong>Bug fixes and workarounds</strong></dt>
<dd>
<ul>
<li>JDBC table input handler now effectively downcasts
BigInteger/BigDecimal types to Long/Double.
The PostgreSQL JDBC driver seems to use the Big* types routinely
for numeric values (which I don't think it used to do).
</li>
<li>Add workaround for J2SE bug
<a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4795134">#4795134</a>,
which could cause errors when reading compressed FITS files.
</li>
<li>Fix FITS character handling bug which could cause corrupted FITS
files on output in presence of non-ASCII characters.
</li>
<li>Fix (some) JDBC connection leaks.</li>
<li>Add missing parameters <code>dashNS</code> and
<code>linewidthNS</code> to <code>plot2d</code> task.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 2.3-1 (30 June 2011)</strong></dt>
<dd>
<ul>
<li>Added new command <code>taplint</code>.
This is a validator for TAP (Table Access Protocol) services.
It is only likely to be useful to people developing or operating
TAP services.
</li>
<li>ASCII table parsers now understand python-friendly
<code>nan</code> and <code>inf</code> representations.
</li>
<li>Added new constants to expression language
<code>Infinity</code> and <code>NaN</code>.
</li>
<li>Fixed a significant bug in sky crossmatching.
If all points in a table were on one side of the RA=0 line,
but the error radius extended across that line, matches on the
other side could be missed. Matches could also be missed if
different tables used different conventional ranges for RA
(e.g. -180..180 in one case and 0..360 in another).
This fix may in some, but not most, cases result in slower matching
than previously.
</li>
<li>Fixed <code>coneskymatch</code> cone search verbosity parameter so that
VERB=3 is not erroneously ignored.
</li>
</ul>
</dd>
<dt><strong>Version 2.4 (27 October 2011)</strong></dt>
<dd>
<dl>
<dt><strong>Crossmatching:</strong></dt>
<dd>
<ul>
<li>Two new asymmetric match options <code>best1</code>
and <code>best2</code> have been added
for the <code>find</code> parameter in the pair matching commands
<code>tmatch2</code> and <code>tskymatch2</code>.
They correspond to finding the best match in table B for each row
in table A, and in crowded fields often provide more intuitive
semantics than the previous symmetric <code>best</code> option
(in non-crowded fields there is generally no difference).
This replicates the matching performed by some other tools,
including Aladin.
</li>
<li>New matchers have been added to permit matching of general
elliptical, rather than just circular, regions in both planar
and sky coordinates; see
<a href="EllipseCartesianMatchEngine.html"><code>2d_ellipse</code></a>,
and
<a href="EllipseSkyMatchEngine.html"><code>skyellipse</code></a>.
</li>
<li>Another new matcher is available for dealing with per-object
errors in Cartesian coordinates (previously per-object errors
could only be handled in sky coords); see
<a href="ErrorCartesianMatchEngine.html"><em>N</em><code>d_err</code></a>.
</li>
<li>Semantics of the
<a href="SkyMatchEngine-err.html"><code>skyerr</code></a>
matcher have changed slightly.
</li>
</ul>
</dd>
<dt><strong>Expression language functions:</strong></dt>
<dd>
<ul>
<li>Algebraic functions involving angles are now mostly available
using degrees as well as radians.
The <code>Coords</code> class has been replaced by
<a href="uk.ac.starlink.ttools.func.CoordsDegrees.html"><code>CoordsDegrees</code></a> and
<a href="uk.ac.starlink.ttools.func.CoordsRadians.html"><code>CoordsRadians</code></a>
classes providing sky coordinate functions,
and a new class
<a href="uk.ac.starlink.ttools.func.TrigDegrees.html"><code>TrigDegrees</code></a>
provides normal degree-based trigonometric functions
alongside the radian-based versions in
<a href="uk.ac.starlink.ttools.func.Maths.html"><code>Maths</code></a>.
Some of the old function names have changed to make clear that they
use radians and not degrees.
This change should be much more convenient in most cases;
sorry it's taken so long to get round to.
</li>
<li>Add new <code>join</code> function is added to the
<a href="uk.ac.starlink.ttools.func.Arrays.html">Arrays</a> class
to combine all the elements of an array into a string.
</li>
</ul>
</dd>
<dt><strong>taplint:</strong></dt>
<dd>There are several bugfixes and changes related to the
TAP validator tool <code>taplint</code>, mostly thanks to bug
reports etc from the TAP community:
<ul>
<li>Improve test logic for record limiting queries.</li>
<li>Errors no longer reported (e.g. E-Qxx-CNAM)
for unexpected TAP_SCHEMA table column ordering
(when running query stage but no metadata acquisition stages).
</li>
<li>Add new stage MDQ, which checks query result columns for all
tables against declared metadata.
</li>
<li>Add check of versioned and unversioned LANG variants.</li>
<li>Now uses corrected upload ID
(<code>ivo://ivoa.net/std/TAPRegExt#upload-*</code>)
as per most recent TAPRegExt draft.
</li>
</ul>
</dd>
<dt><strong>Bug fixes and minor enhancements:</strong></dt>
<dd>
<ul>
<li>Add parameter <code>parse</code> to <code>tapquery</code> command,
allowing pre-send syntax checking of submitted ADQL.
</li>
<li>Add experimental system properties
<code>star.basicauth.user</code> and
<code>star.basicauth.password</code>.
</li>
<li>Improve resilience of <code>coneskymatch</code> in the presence of
unreliable or inconsistent DAL services.
</li>
<li>A PARAMref element with no referent in a VOTable
no longer causes an uncaught NullPointerException.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 2.5 (28 March 2013)</strong></dt>
<dd>
<dl>
<dt><strong>New coverage-related functionality:</strong></dt>
<dd>
<ul>
<li>Add new command <a href="pixsample.html"><code>pixsample</code></a>
which can sample pixel data from HEALPix table files
(useful for things like Schlegel dust extinction).
Also <a href="addpixsample.html"><code>addpixsample</code></a> filter,
which does the same job.
</li>
<li>Add new command <code><a href="pixfoot.html">pixfoot</a></code>
which can generate MOC (Multi-Order Coverage) maps.
</li>
<li>Add MOC-based coverage filter to <code>coneskymatch</code>
when using some Cone Search services (mostly VizieR).
This uses the Multi-Order Coverage map service operated by CDS.
It can make VizieR multi-cone queries much faster by not doing
cone searches that are outside the coverage region of the
catalogue in question.
</li>
<li>Add new class
<a href="uk.ac.starlink.ttools.func.Coverage.html">Coverage</a>
to the expression language containing MOC-related functions
(currently, just <code>inMoc</code>).
</li>
</ul>
</dd>
<dt><strong>Other new capabilities:</strong></dt>
<dd>
<ul>
<li>Add IPAC table output format.</li>
<li>Add new class
<a href="uk.ac.starlink.ttools.func.KCorrections.html">KCorrections</a>
to the expression language,
containing a method for calculating K-corrections
following the method of Chilingarian and Zolotukhin.
</li>
<li>You can now reference tables in multi-extension FITS files by name
(EXTNAME or EXTNAME-EXTVER) as an alternative to by HDU index.
</li>
</ul>
</dd>
<dt><strong>VOTable enhancements:</strong></dt>
<dd>
<ul>
<li>VOTable input, output and validation are now supported
for version 1.3 of the VOTable standard.
</li>
<li>The version of the VOTable format used for VOTable output
can now be selected,
by using the <a href="sysProperties.html">system property</a>
<code>votable.version</code>.
Output version is VOTable 1.2 by default.
</li>
<li><code>votlint</code> has been changed so that it handles
different VOTable versions more capably.
Versions 1.1+ are now validated against a schema
(which is how those versions are defined) rather than against
a DTD hacked to do the same job as the schema.
VOTable 1.3 validation is now provided.
</li>
<li>The <code>votcopy</code> command has a new <code>version</code>
parameter to control output version,
and a new <code>nomagic</code> parameter to control whether
<code>VALUES</code>/<code>null</code> attributes are removed
where appropriate.
</li>
<li>Infinite floating point values are now correctly encoded
in VOTable output ("<code>+Inf</code>"/"<code>-Inf</code>",
not "<code>Infinity</code>"/"<code>-Infinity</code>" as in
previous versions).
</li>
<li><code>votlint</code> is now stricter about floating point
<code>TD</code> element contents.
</li>
<li>VOTable output no longer writes the <code>schemaLocation</code>
attribute by default.
</li>
</ul>
</dd>
<dt><strong>Other enhancements:</strong></dt>
<dd>
<ul>
<li>Add new function <code>hypot</code> (=sqrt(x*x+y*y))
to the <code>Maths</code> class in expression language.
</li>
<li>Add new <code>split</code> functions for string splitting
to the <code>Strings</code> class in expression language.
</li>
<li>Add <code>-utype</code> flags for <code>addcol</code>,
<code>replacecol</code>, <code>colmeta</code> and
<code>setparam</code> filters,
and <code>utype</code> option for <code>meta</code> filter.
</li>
<li>Some changes to the <code>toString</code> function:
it now works on non-numeric values,
gives the right answer for <code>Long</code> integers
and character values,
and returns a blank value rather than the string "null" or "NaN"
for blank inputs.
</li>
<li>Sexagesimal to numeric angle conversion functions now permit the
seconds part of the sexagesimal string to be missing.
</li>
<li>Changes to the IPAC format definition are accommodated:
the "long"/"l" type, which is apparently now official,
no longer generates a warning, and headers may now use
minus signs instead of whitespace.
</li>
<li>Add <code>OBS</code> stage (ObsTAP validation)
to <code>taplint</code>.
</li>
<li>Add more checks to <code>CAP</code> stage of <code>taplint</code>.
Declared languages (including features) and output formats are
now checked.
</li>
<li>Tidy up error reporting a bit (fewer duplicate nested messages
reported).
</li>
<li>PNG graphics output no longer has transparent background.</li>
<li>Issue a warning for high values of <code>coneskymatch</code>
<code>parallel</code> parameter.
</li>
<li>Upgrade JSAMP library to version 1.3-3.</li>
<li>Upgrade Grégory Mantelet's ADQL library to version 1.1.</li>
</ul>
</dd>
<dt><strong>Bug fixes:</strong></dt>
<dd>
<ul>
<li>Fix serious and long-standing bug
(bad TZERO header, causes subsequent reads to fail)
for FITS output of boolean array columns.
</li>
<li>Fix small but genuine sky matching bug.
The effect was that near the poles matches near the specified
threshold could be missed. The bug was in the PixTools library,
fixed at the 2012-07-28 release.
</li>
<li>Fix bug in <code>tmatchn</code> group mode which could result in
output rows with columns from only a single table,
i.e. not representing an inter-table match,
even when <code>join*=default</code>.
</li>
<li>Fix bug which failed when attempting to read FITS files with
complex array columns (<code>TFORMn=rC/rM</code>).
</li>
<li>Fix failure when caching very large sequential tables.</li>
<li>Fix bug in <code>replacecol</code> and <code>replaceval</code>
filters which could cause truncation of strings in FITS
and possibly VOTable output when the new value was longer
than the previously declared maximum length.
</li>
<li>Fix <code>tcat</code>, <code>tcatn</code> so that in most cases
output column metadata is compatible with all input tables, not
just the first one in terms of nullability, array shape etc.
</li>
<li>Adjust SQL writer to avoid a type error for MySQL.</li>
<li>Fix bug in HMS sexagesimal formatting: minus sign was omitted from
negative angles. Now the output is forced positive.
</li>
<li>Cope with 1-column CSV files.</li>
<li>Use the correct form "<code>rows</code>"/"<code>bytes</code>"
rather than "<code>row</code>"/"<code>byte</code>"
for TAP capability unit values.
</li>
<li>Fix error bar rendering bug which could result in diagonal lines
being offset near the edge of plots.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 2.5-1 (1 July 2013)</strong></dt>
<dd>
<dl>
<dt><strong>New functionality</strong></dt>
<dd>
<ul>
<li>Add read-only support for
<a href="http://cdf.gsfc.nasa.gov/">CDF</a>
(NASA Common Data Format) files.
</li>
<li>Add Median Absolute Deviation calculation
(<code>MedAbsDev</code> and <code>ScMedAbsDev</code>)
options to <a href="stats.html"><code>stats</code></a> filter.
</li>
<li>Improved handling of HTTP basic authorization.
401s now generate a useful message about the
<code>star.basicauth.*</code> system properties if they
have not been set up.
</li>
</ul>
</dd>
<dt><strong>Bug fixes and minor enhancements</strong></dt>
<dd>
<ul>
<li>Fix CSV regression bug introduced at v2.5
- CSV files now work again with MSDOS-style line breaks.
</li>
<li>Fixed FITS output bug which could result in badly-formed
string-valued header cards (no closing quote).
</li>
<li>Source code is now managed by git and not subversion.
The format of the "Starjava revision" string reported by the
<code>-version</code> flag has changed accordingly.
</li>
<li>Output mode <code>meta</code> now copes better with array-valued
table parameters.
</li>
<li>Implemented fixes to reduce the chance of users inadvertently
overloading external Cone/SIA/SSA services with multicone-like
queries.
First, fix it so that abandoned queries are properly terminated,
rather than continuing to hit the server until completion or JVM
shutdown.
Second, implement a sensible default maximum value for the
<code>parallel</code> parameter of <code>skyconematch</code>
(though this may be adjusted with a system property).
</li>
<li>Quoting behaviour has changed when generating SQL to write to
RDBMS tables. This ought to reduce problems related to mixed-case
identifiers. However, it is possible that it could lead to
unforseen new anomalies.
</li>
<li>More <code>toString</code> overloads - now works for byte and
boolean values too.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 2.5-2 (7 March 2014)</strong></dt>
<dd>
<ul>
<li>Add some more colour maps.</li>
<li>Fix some broken and misdocumented non-table-output JyStilts
commands (<code>tcube</code>, <code>pixfoot</code>).
</li>
<li>Fix bug which prevented access to long integer array elements
from expression language.
</li>
<li>The Exact matcher now considers scalar numeric values equal if
they have the same numeric value; they are no longer required
to have the same type.
</li>
<li>Fixed a registry client bug which means that the
<code>regquery</code> command can now successfully talk to
the NVO/VAO/STSci registry.
That has been broken since mid-2010.
</li>
<li>Add new command <code>tloop</code> for generating single-column
tables from a numeric loop variable.
</li>
<li><code>taplint</code> now checks for the right ObsCore ID,
though still recognises the wrong one (got from TAPRegExt),
and warns if found.
</li>
<li>Fix TST input handler so TST files with fewer than 3 columns
can be read.
</li>
<li>Add <code>Nd_cuboid</code> matcher option to match commands.
</li>
</ul>
</dd>
<dt><strong>Version 2.5-3 (4 July 2014)</strong></dt>
<dd>
<dl>
<dt><strong>New and improved functionality:</strong></dt>
<dd>
<ul>
<li>Add new command
<a href="cdsskymatch.html"><code>cdsskymatch</code></a>.
In most cases (for querying tables that can be found in VizieR)
this can and should be used instead of
<code>coneskymatch</code> - it's <em>much</em> faster.
</li>
<li>Commands <code>coneskymatch</code>, <code>sqlskymatch</code>
and <code>pixfoot</code> will now guess RA/Dec columns
if relevant parameters are left blank.
</li>
<li>Added new graphics output format <code>png-transp</code>
to generate PNG files with transparent backgrounds.
</li>
<li>Upgraded Gregory Mantelet's ADQL library to version 1.2.
Better ADQL parsing.
</li>
</ul>
</dd>
<dt><strong>Improvements and adjustments to
<a href="taplint.html"><code>taplint</code></a>:</strong></dt>
<dd>
<ul>
<li>Rework <code>taplint</code>
API to facilitate static acquisition of
report codes during programmatic use.
A few error codes have changed.
</li>
<li>Add new "duff query" test to <code>taplint</code>.
</li>
<li>Avoid <code>taplint</code> MDQ stage data type mismatch error
report for BOOLEAN/boolean declared/returned data.
</li>
<li><code>taplint</code> now takes steps to ensure that TAP_SCHEMA
column list query is not truncated.
</li>
<li><code>taplint</code> now flags absence of ObsCore table with
I[nfo] not F[ailure] status.
</li>
<li>Change the implementation of <code>taplint</code> stages which
perform validation against XSD schemas.
Schemas from external namespaces may now be imported and used.
The CPV stage, which was previously broken and disabled
by default, is now fixed and enabled by default.
Known/expected schemas are stored locally, and a warning is
reported if external ones are used. Schema validation seems
remarkably complicated, so it's possible there are still errors
in this implementation - if you suspect so,
please report it.
</li>
<li>Add missing geometric reserved words to ADQL reserved word
list. This fixes some problems with column names like
"DISTANCE" in taplint tests.
</li>
<li>Fixed some bugs related to TAP table uploads.
In particular these could cause incorrect table upload error
reports in <code>taplint</code>.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 3.0 (3 October 2014)</strong></dt>
<dd>
<dl>
<dt><strong>New plotting commands:</strong></dt>
<dd>A set of new plotting commands are provided which give
comprehensive access to all the new-style visualisation capabilities
available in TOPCAT v4. These commands are
documented in <a href="plot2.html">Section 8</a>.
These commands, and the underlying visualisation facilities,
are considerably more capable than the, now deprecated,
old-style plot commands
<code>plot2d</code>, <code>plot3d</code> and <code>plothist</code>.
</dd>
<dt><strong>Programmatic invocation:</strong></dt>
<dd>Programmatic invocation of STILTS tasks from third-party java code
is now officially sanctioned and documented in the new
<a href="taskApi.html">Section 11</a>.
To support this changes have been made to the parameter system
(<code>Parameter</code> class now supports generics)
and there are some visible
changes to the user documentation as well
(parameters now report their data type,
and tasks report their classname).
Normal (e.g. command-line) usage should not undergo any changes,
but a fair bit of UI code has changed, so unexpected problems
are possible.
</dd>
<dt><strong>Other items:</strong></dt>
<dd>
<ul>
<li>Add new output mode
<code><a href="mode-gui.html">gui</a></code>,
which displays the table data in a scrollable
window on the screen.
</li>
<li>Add new <code>-allowunused</code> flag to the stilts command.
If this is set, then unused parameter settings on the command line
just result in a warning, not failure of the command.
</li>
<li>Attempting to write FITS tables with >999 columns now fails
with a more helpful error message.
</li>
<li>Improved Unicode handling in VOTables.
Fixed a serious bug in <code>votcopy</code>
that generated unreadable output to BINARY or BINARY2 serialization
if any non-empty column had datatype="unicodeChar".
Also improved behaviour when copying between tables with
unicodeChar columns; these are usually preserved now, rather
than being squashed to datatype char.
Some lurking Unicode-related issues remain.
</li>
<li>The TAP client now tolerates whitespace around
UWS status codes.
</li>
<li>taplint: downgrade unknown post-table QUERY_STATUS value message
from Error to Warning.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 3.0-1 (13 November 2014)</strong></dt>
<dd>
<dl>
<dt><strong>New functionality:</strong></dt>
<dd>
<ul>
<li>Add (experimental) read-only support for Gaia/DPAC GBIN format.</li>
<li>Add new task
<a href="tapskymatch.html"><code>tapskymatch</code></a>.
</li>
<li>Functions in class
<a href="uk.ac.starlink.ttools.func.Coverage.html">Coverage</a>
adjusted:
new function <code>nearMoc</code>, and MOC can be identified by
VizieR table IDs as well as by filename/URL.
</li>
<li>For <a href="repeat.html"><code>repeat</code></a> filter,
add <code>-row|-table</code>
flags to control sequence of output rows.
</li>
<li>For <a href="setparam.html"><code>setparam</code></a>
and <a href="repeat.html"><code>repeat</code></a> filters,
allow use of an algebraic expression for values,
not just a literal value.
</li>
<li>Add special values <code>$ncol</code> and <code>$nrow</code> to
the
<a href="jel-paramref.html">expression language</a>
to refer to the column and row counts in a table.
The special variable <code>index</code> is also deprecated in favour
of <code>$index</code> or <code>$0</code>.
</li>
</ul>
</dd>
<dt><strong>Bugfixes and minor improvements:</strong></dt>
<dd>
<ul>
<li>Add some more colour maps for aux/density shading.</li>
<li>Fix <code>stilts</code> invocation script to pick up classes from
<code>stilts.jar</code> in script directory in preference to
other places (e.g. topcat-full.jar).
</li>
<li>Fix <code>taplint</code> to permit application/xml
not just text/xml content-type where appropriate (UWS stage).
</li>
<li>Fix <code>taplint</code> so it doesn't warn (W-TMV-UNSC) about
unknown VOSITables schema.
</li>
<li>Fix <code>taplint</code> so that <code>unicodeChar</code>
matches CHAR/VARCHAR in the same way as <code>char</code>
for column type declaration purposes.
</li>
<li>Fix <code>taplint</code> so that capabilities document can have
TAPRegExt dataModel ivo-id elements with xs:anyURI rather than
vr:IdentifierURI (only a warning is issued in the latter case),
in anticipation of TAPRegExt-1.0 Erratum #1.
</li>
<li>Adjust <code>taplint</code> to handle adql:TIMESTAMP columns more
carefully on upload and retrieval.
</li>
<li>Update JSAMP to v1.3.5.</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 3.0-2 (6 February 2015)</strong></dt>
<dd>
<dl>
<dt><strong>Plotting enhancements:</strong></dt>
<dd>
<ul>
<li>Linear fitting of points is now available using the
<a href="layer-linearfit.html">linearfit</a> layer type for
<code>plot2plane</code>. Points may be weighted.
</li>
<li>You can add titles to plots using the new <code>title</code>
parameter.
</li>
<li>New plot layer type
<a href="layer-sizexy.html"><code>sizexy</code></a>
allows plotting (optionally autoscaled)
markers with horizontal and vertical extents
independently determined by input data.
</li>
<li>More flexibility when assigning colour maps, in
<a href="shading-aux.html">aux</a> and
<a href="shading-density.html">density</a> shading modes, and
<a href="layer-spectrogram.html">spectrogram</a> layer.
New parameters <code>*func</code> allow assignment of
different data->ramp mapping functions
(sqrt and square as well as linear and logarithmic),
and new parameters <code>*quant</code> allow quantisation
of the colour map to discrete levels.
</li>
<li>Replace <code>maxsizeN</code> parameter with <code>autoscaleN</code>
for <a href="layer-size.html"><code>size</code></a> plot layer type.
You can now optionally turn off autoscaling and specify marker size
in pixels instead.
</li>
<li>Add <code>auxcrowd</code> parameter to plot2 tasks to influence
tick crowding on aux axis colour ramp. Also adjust default to use
fewer ticks.
</li>
<li>Add some "dart" options (fixed-base open or filled triangles)
for plotting vectors (see <code>arrowN</code> parameter in
layers like
<a href="layer-xyvector.html"><code>xyvector</code></a>).
</li>
<li>Add some "triangle" options (variable-base open or filled triangles)
for plotting ellipses (see <code>ellipseN</code> parameter in layers
like <a href="layer-xyellipse.html"><code>xyellipse</code></a>).
</li>
<li>Histogram normalisation option adjusted
so that total area under bars,
rather than total height of bars, is fixed.
</li>
<li>The <code>PlotDisplay</code> class that forms the result of
plot2 commands can now have <code>PointSelectionListener</code>s
registered on it. This lets you determine what point a user
has clicked on if you're using the plotting classes from
third party java code.
</li>
</ul>
</dd>
<dt><strong>FITS I/O:</strong></dt>
<dd>
<ul>
<li>Reworked part of the FITS table input implementation,
in particular adjusting the way memory mapping is done to reduce
resource requirements on some platforms.
If you notice any difference, it should be reduced virtual and
perhaps resident memory usage, and some (~10%?) performance
improvements, when reading large FITS/colfits files.
If you were previously having problems
with large memory allocations leading to
disk thrashing and system lockup when scanning files
larger than RAM (this didn't happen on all OSes),
these will hopefully have gone away.
However, please report anything that appears to be working worse
than before, or continued memory usage issues.
</li>
<li>Colfits files can now be accessed from streams,
not just uncompressed disk files
(though that's not necessarily a good idea).
</li>
</ul>
</dd>
<dt><strong>Bugfixes and workarounds:</strong></dt>
<dd>
<ul>
<li>Fixed a query bug (missing <code>REQUEST=queryData</code> parameter)
in the multi-SSA mode (<code>servicetype=ssa</code>) of
<code>coneskymatch</code>.
This long-standing bug would have stopped this command working
at all with well-behaved SSA services.
</li>
<li>Fixed error in fits-var output
(PCOUNT header card did not include block alignment gap).
</li>
<li>Graphics coordinates are now calculated in floating point
rather than as integers. This fixes problems that could
cause scaled vectors, ellipses etc to be drawn with shapes
or orientations badly wrong due to rounding errors.
It also improves plotting of analytic functions, especially
to vector contexts (PDF/EPS).
</li>
<li>Fix some problems to do with zooming to very large/small
plot axis ranges.
</li>
<li>Hide error bars (etc) that would extend to negative values
on logarithmic axes; previously they were being drawn in anomalous
places.
</li>
<li>Fix NullPointerException bug when null value was supplied to
multi-word parameter (e.g. <code>tcube</code>).
</li>
<li>Fix Aux axis positioning for 3D plots so that the numeric labels
don't get snipped off at top and bottom.
</li>
<li>Add a hack that allows LDAC FITS tables to be treated sensibly
in auto-format-detection mode.
</li>
<li>Make VOTable handling more robust against unknown (illegal)
datatypes.
</li>
<li>Add missing parameters <code>auxmax</code>, <code>auxmin</code>
to plotting task documentation.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 3.0-3 (14 April 2015)</strong></dt>
<dd>
<ul>
<li>New System Command option for
<a href="location-syntax.html">input table syntax</a>;
you can now use "<code><syscmd</code>" or "<code>syscmd|</code>"
to supply input byte streams from Un*x pipelines.
</li>
<li>Add new Kernel Density Estimate plot layer types
<a href="layer-kde.html">kde</a>,
<a href="layer-knn.html">knn</a> and
<a href="layer-densogram.html">densogram</a>
for <code>plot2plane</code>.
</li>
<li>More histogram normalisation options provided.
Instead of just <code>true</code>/<code>false</code>,
the <code>normalisation</code>
parameter of the <a href="layer-histogram.html">histogram</a> layer
now has the options
<code>none</code>, <code>height</code>,
<code>area</code> and <code>maximum</code>.
This allows both the area normalisation introduced in v3.0-2,
and the height normalisation used in earlier versions
which it replaced.
</li>
<li>More histogram bar style options provided;
the <a href="layer-histogram.html">histogram</a> <code>barform</code>
parameter now provides the options
<code>semi_filled</code> (the new default) and <code>semi_steps</code>.
These give outlined partially transparent bars, which make it
much easier to see what's going on in multi-dataset histograms.
Note <code>semi_steps</code> does not currently export very nicely
to PDF/EPS.
Similar options are also available in the new KDE plots.
</li>
<li>Column data read in as unsigned bytes will now be written out as
unsigned bytes where the output format permits;
previously they were forced to 16-bit signed integers.
This affects FITS, VOTable and CDF I/O handlers.
</li>
<li>Add <code>count_rows()</code> method to JyStilts
<a href="jytable.html">table</a> objects, which for non-random tables
may be much more efficient than <code>len()</code>.
</li>
<li>Be less strict about recognising colfits files
(tolerate implicit TDIMn headers).
</li>
<li><code>taplint</code> is now aware of, and performs some checks
related to, schema-level table metadata declared by TAP services.
</li>
<li>Work round FITS read bug that could cause problems for VOTables using
inline FITS serialization, and possibly elsewhere.
</li>
<li>Fix bug that caused trouble when auto-ranging a plot
with a single sky position.
</li>
</ul>
</dd>
<dt><strong>Version 3.0-4 (17 August 2015)</strong></dt>
<dd>
<dl>
<dt><strong>Bugfixes (some significant):</strong></dt>
<dd>
<ul>
<li>Fix a serious bug in processing of FITS bit vector
(<code>TFORMn='rX'</code>) columns.
Values read from these columns are presented as a
<code>boolean[]</code> array. In all previous versions of STIL
the bits have appeared in that array in the wrong sequence
(LSB..MSB per byte rather than the other way round).
Apologies to anyone who may have got incorrect science results
from this error in the past, and thanks to Paul Price for helping
to diagnose it.
</li>
<li>Fix a less serious bug with <code>TFORMn='rX'</code> processing;
attempting to read a single-element bit vector column
(<code>TFORMn=1X</code> or <code>X</code>) previously
resulted in an error making the file unreadable.
Values read from such columns are now presented as
Boolean scalars.
</li>
<li>Fix a VOTable reading bug relating to bit vector data
(<code>datatype="bit"</code>) appearing in BINARY/BINARY2
serializations. This one was more obvious, it would usually
generate an error when attempting to read the file.
</li>
<li>Fix serious bug in time conversion for CDF TIME_TT2000
data types.
</li>
<li>Fix a bug in <code>votcopy</code> that converted columns from
datatype <code>unsignedByte</code> to <code>short</code> when
transforming. Since v3.0-3 this is no longer necessary.
In the case of converting to a binary serialization,
since v3.0-3 this was causing it to generate unreadable VOTable
output.
</li>
<li>Fix a bug in <code>votcopy</code> that failed to handle
columns with datatype <code>bit</code>. In the case of
converting to a binary serialization, these were in all previous
versions generating unreadable VOTable output.
Now they convert them to columns with datatype
<code>boolean</code> (not perfect, but better).
</li>
<li>Fix <code>skyvector</code> bug:
<code>dlat</code> and <code>dlon</code>
values were being used the wrong way round.
</li>
<li>Upgrade JEL to v2.0.2.
Fixes problem with evaluating void-typed expressions,
and possibly some other obscure bugs.
</li>
<li>Some taplint bug fixes.</li>
</ul>
</dd>
<dt><strong>Behaviour changes:</strong></dt>
<dd>
<ul>
<li>Changes to the way that TAP service table/column name reports are
interpreted (to conform to original intention of TAP standard).
Taplint now checks that table/column names from TAP_SCHEMA
and /tables
endpoint are regular-or-delimited-identifiers, but no longer
submits example queries using supplied column names wrapped in
additional quotes.
</li>
<li>Modify the heuristics that determine whether the first row of
a CSV file is a header.
</li>
</ul>
</dd>
<dt><strong>Enhancements (mostly minor):</strong></dt>
<dd>
<ul>
<li>Added some functions to the
<a href="uk.ac.starlink.ttools.func.Arrays.html">Arrays</a> class
that return array-valued results from array-valued parameters:
<code>add</code>, <code>subtract</code>,
<code>multiply</code>, <code>divide</code>,
<code>reciprocal</code>, <code>condition</code>.
</li>
<li>Improve error reporting in the face of non-VOTable
TAP error responses.
In many cases this makes it much easier to see what's going wrong
with a TAP query.
</li>
<li>As a diagnostic tool, when making TAP queries,
a log message giving a roughly equivalent <code>curl(1)</code>
command is now issued at the CONFIG level
(visible using flags <code>-verbose -verbose</code>).
</li>
<li>New <code>taplint</code> parameter <code>maxtable</code>
limits the number of tables tested in the stage that
queries data from each individual table (<code>MDQ</code>).
May be useful for very large services.
</li>
<li>New <code>tapquery</code> parameter <code>upvotformat</code>
to determine what VOTable serialization variant is used to
transmit uploaded tables to the TAP server.
Previously uploads were always BINARY which ought to work,
but the parameter now defaults to TABLEDATA,
since some services (e.g. CADC)
currently fail with binary uploads.
</li>
<li>Minor improvement to version reporting
(reports java specification version,
no longer issues warning for absent revision string).
</li>
<li>Update JCDF library to v1.1
(minor changes to do with leap seconds).
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 3.0-5 (22 October 2015)</strong></dt>
<dd>
<ul>
<li>Fix error reporting bug when a non-VOTable response is received
from a TAP service.
</li>
<li>Upgrade to JCDF v1.2 - fixes a bug when reading large (multi-2Gb)
CDF files.
</li>
<li>Added source code for an example basic GUI plot application,
<code>uk.ac.starlink.ttools.example.BasicPlotGui</code>.
</li>
<li>The expression language has a new way of
<a href="jel-colref.html">referring to a column</a>;
if you use the form "<code>Object$</code><em><column-id></em>"
you get the value as an Object not a primitive.
This is a special-interest measure for user-defined
functions that need to see null numeric values.
</li>
<li>Adjust GBIN input handler:
avoid descending into Class-typed members of gbin list objects,
and add logging for object->column translations.
</li>
</ul>
</dd>
<dt><strong>Version 3.0-6 (27 November 2015)</strong></dt>
<dd>
<dl>
<dt><strong>Crossmatching bug fix</strong></dt>
<dd>Fix a long-standing crossmatch bug
relating to range restriction during pre-processing.
This could have caused missed associations (but not false positives)
near the edge of coverage regions when using per-row errors,
if the scale of the errors differed
(especially differed significantly) between the matched tables.
It affected <code>matcher</code> values of
<code><n>-d_err</code>, <code>skyerr</code>,
<code>2d_ellipse</code> and <code>skyellipse</code> only.
Thanks to Grant Kennedy (IoA) for reporting this bug.
</dd>
<dt><strong>Density plots</strong></dt>
<dd>Some more options for making weighted density plots have been added.
Since v3.0 the Density shading mode has let you see the density
of plotted points, but this lacked some features.
Three new ways to do density plots are added; these all give you
the option of weighting by an additional coordinate (like the Aux mode),
choosing the combination method (mean, median, sum, max, ...),
and displaying the quantitative value-colour mapping
on the shared colour ramp (previously aux axis) beside the plot.
The new density plots are:
<ul>
<li><a href="shading-weighted.html">Weighted shading mode</a>,
using shaped marker kernels on the screen pixel grid,
available for all plot types
</li>
<li><a href="layer-skydensity.html">SkyDensity layer</a>,
using HEALPix bins on the celestial sphere, for the Sky plot
</li>
<li>Density layer
(<em>later obsoleted by <a href="layer-grid.html">Grid layer</a></em>),
using square N*N screen pixel bins, for the Plane plot
</li>
</ul>
The details are somewhat experimental and may
undergo some adjustments in future releases (feedback welcome).
</dd>
<dt><strong>Colour maps</strong></dt>
<dd>There are various changes affecting selection and display of
colour maps used for density and aux axis shading:
<ul>
<li>The default colour map for Aux mode, and other layers using
the shared colour map, is no longer Rainbow! It's Inferno.
Rainbow colour maps are much hated by visualisation experts.
Of course you can still choose Rainbow if you like.
</li>
<li>Add some new colour maps:
<em>Viridis</em>, <em>Inferno</em>, <em>Magma</em> and
<em>Plasma</em> from
<a href="http://bids.github.io/colormap/">Matplotlib 1.5</a>,
the <em>SRON</em> rainbow variant developed by
<a href="https://personal.sron.nl/~pault/">Paul Tol</a>,
some diverging maps
(<em>HotCold</em>, <em>RdBu</em>, <em>PiYG</em>, <em>BrBG</em>)
and a qualitative constant chroma/luminance map
<em>HueCL</em>.
</li>
<li>The options for Density and Aux shading are now mostly the same
as each other except where there's good reason to differ.
Previously they were different in haphazard ways.
</li>
<li>An attempt is made to give the default form of each colour map
a sensible name, without leading minus signs.
</li>
<li>Fix it so that the whole range of each map is distinguishable
from white. This is a good idea when you're plotting symbols
on a white background, which is common in stilts.
Perhaps there are cases it's not such a good idea;
if you think so, complain and I may change it back.
</li>
<li>Try to fix it so that all the colour maps go in the same
direction (light->dark) where applicable.
</li>
<li>Throw out a couple of particularly useless colour maps.</li>
<li>Colour map ramp display is now different for non-absolute maps;
their effect is shown on a selection of base colours,
not just for one base colour.
</li>
</ul>
</dd>
<dt><strong>Minor items</strong></dt>
<dd>
<ul>
<li>Try harder to identify epoch columns (suitable for time plot),
in particular look for VOTable <code>xtype</code> of JD or MJD,
and <code>units</code> of year.
</li>
<li>Add some functions to the
<a href="uk.ac.starlink.ttools.func.Tilings.html">Tilings</a> class
to do with solid angles
(<code>healpixSqdeg</code>,
<code>healpixSteradians</code>,
<code>steradiansToSqdeg</code>,
<code>sqdegToSteradians</code>,
<code>SQDEG</code>).
</li>
<li>Fix plot bug; titles were painted in white
for pixel output formats.
</li>
<li>Rationalise plot report logging. Some more diagnostic information
about plots is now logged at the INFO level
(visible if topcat is run with the <code>-verbose</code> flag).
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 3.0-7 (10 June 2016)</strong></dt>
<dd>
<dl>
<dt><strong>Expression Language</strong></dt>
<dd>The JEL library underlying the expression language parser
has been upgraded to v2.1.1 (thanks to Konstantin Metlov),
now supporting variable-length argument lists among other things.
This allows the following improvements:
<ul>
<li>New functions that support any number of arguments are provided:
<code>array</code>, <code>intArray</code>, <code>stringArray</code>
in class <a href="uk.ac.starlink.ttools.func.Arrays.html">Arrays</a>;
<code>concat</code>, <code>join</code>
in class <a href="uk.ac.starlink.ttools.func.Strings.html">Strings</a>;
and
<code>sum</code>, <code>mean</code>, <code>variance</code>,
<code>stdev</code>, <code>min</code>, <code>max</code>,
<code>median</code>, <code>countTrue</code>
in new class
<a href="uk.ac.starlink.ttools.func.Lists.html">Lists</a>.
</li>
<li>Some old lists of similarly-named functions with fixed numbers
of arguments have been replaced by single functions that
take an arbitrary number of arguments
(e.g. <code>array(x1)</code>, <code>array(x1,x2)</code>, ...
<code>array(x1,x2,x3,x4,x5,x6,x7,x8)</code>
replaced by <code>array(values...)</code>).
</li>
<li>The 2-argument <code>min</code>/<code>max</code> functions in class
<code>Arithmetic</code> have been renamed
<code>minNaN</code>/<code>maxNaN</code> to avoid confusion,
but in most cases existing expressions involving min/max
will work as before.
</li>
<li>Some functions that used to require string arguments will now
auto-convert numeric types
(e.g. <code>concat(toString(RA),";",toString(DEC))</code>
can now be written <code>concat(RA,";",DEC)</code>).
</li>
<li>You can now implement
<a href="jelExtend.html">user-defined functions</a> with variable
numbers of arguments.
</li>
<li>Writing large (>=2**31) literal integers used to fail with
an inscrutable error message.
Now the message tells you to append the
"<code>L</code>" character.
</li>
</ul>
</dd>
<dt><strong>Time plots</strong></dt>
<dd>The <a href="plot2time.html"><code>plot2time</code></a> command
has been enhanced so that it can make <em>multi-zone</em> plots -
multiple plots stacked vertically that share the same horizontal
(time) axis but have independent vertical axes.
The time plot itself and this multi-zone feature are currently
experimental; in future versions they may be improved or changed,
and the multi-zone feature may be extended to other plot types.
Some other changes and fixes have gone along with this:
<ul>
<li>A few API changes have been made to support multi-zone plots,
including generalising the <code>NavigationListener</code>
interface and rearranging some
<code>PlotDisplay</code> and <code>AbstractPlot2Task</code>
constructor/factory method arguments.
For single-zone plots the changes are not very substantial.
This only affects you if you are using the STILTS classes
as a java plotting library.
If that applies to you and you have trouble upgrading,
I'm happy to provide assistance.
</li>
<li><code>plot2time</code> now supports shading modes
(<code>shadingN</code> and associated parameters).
</li>
<li>The <a href="layer-spectrogram.html">spectrogram</a> layer
now uses the (per-plot, or more precisely now per-zone)
Aux colour map rather than a layer-specific colour map.
This means that the colour ramp is displayed alongside the plot,
but also that some parameters have been renamed
(e.g. <code>auxmapZ</code> replaces <code>spectromapN</code>,
where <code>Z</code> is an optional zone suffix
and <code>N</code> is an optional layer suffix).
</li>
<li>The <code>function</code> layer type now works in the time plot,
rather than throwing an error.
However, it doesn't work very well, since the time coordinate
is in unix seconds rather than something more user-friendly.
</li>
<li>Fixed a serious bug in ISO-8601 axis labelling.
In some cases axis labels were being drawn at positions badly
different from the correct position.
</li>
</ul>
</dd>
<dt><strong>Miscellaneous enhancements and changes</strong></dt>
<dd>
<ul>
<li>This and subsequent releases target <strong>Java SE 6</strong>,
so will no longer
run under the (now very ancient) Java 5 runtime.
</li>
<li>Provide more careful documentation of licensing arrangements.
The distributed LICENSE.txt file notes that the starjava code is
LGPL, and documents licenses for each third-party dependency.
</li>
<li>Add <a href="layer-fill.html">Fill</a> layer type for Plane and Time
plots.
</li>
<li><code>tapquery</code> and <code>tapresume</code> now use
blocking HTTP requests rather than repeated polls
to wait for asynchronous TAP job completion from
services that declare themselves UWS 1.1 compliant.
</li>
<li>Add new parameters
<code>executionduration</code> and <code>destruction</code> to
<a href="tapquery.html"><code>tapquery</code></a> command.
These let you request resource limit adjustments when submitting
an asynchronous TAP job.
</li>
<li>Improve sky plot border painting.</li>
<li>Clean up noisy Cubehelix colour map.</li>
<li>New function <code>countTrue</code> in class
<a href="uk.ac.starlink.ttools.func.Arrays.html">Arrays</a>.
</li>
<li>New stage <code>EXA</code> for <a href="taplint.html">taplint</a>
checks TAP <code>/examples</code> endpoint.
Note the details of the examples format are still under discussion,
(this version targets WD-DALI-1.1-20160415 &
WD-TAP-1.1-20160428, somewhat informed by TAPNotes-2013-12-13),
so the details may change in future.
</li>
<li><code>taplint</code> now validates ObsCore 1.1 where declared
alongside ObsCore 1.0.
Currently uses PR-ObsCore-v1.1-20160330.
</li>
<li>The <a href="http://andromeda.star.bris.ac.uk/starjavadocs/uk/ac/starlink/ttools/taplint/package-summary.html">taplint API</a>
has changed slightly:
the class that used to be <code>Reporter</code>
is now called <code>TextOutputReporter</code>.
If you are using taplint programmatically you may need to make
small changes. This results from some refactoring that makes
it easier to customise taplint output.
</li>
<li>Replaced <code>opaque</code> config option with
<code>transparency</code> for plane and sky density plots.
</li>
<li>Changed implementation of GIF exporter for plots,
from Acme to ImageIO.
Shouldn't be any noticable difference.
Acme encoding dependency removed.
</li>
</ul>
</dd>
<dt><strong>Bug fixes</strong></dt>
<dd>
<ul>
<li>Fix bug in cumulative histogram calculation.</li>
<li>Fix read failure for FITS files with non-blank TDIM for
zero-length columns.
</li>
<li>Fix bugs that led to timezone-dependent results when
reading ISO-8601 or decimal year time columns.
</li>
<li>Fix numeric field truncation bug in LaTeX table output.</li>
<li>Fix some parameter handling errors in <code>coneskymatch</code>.
</li>
<li>Fix NullPointerException bug for disjoint regions in some cases in
<code>tmatchn</code>.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 3.0-8 (13 September 2016)</strong></dt>
<dd>
<ul>
<li>New task <a href="tskymap.html">tskymap</a> lets you generate all-sky
density maps (e.g. HEALPix) from an input table.
</li>
<li>New plot layer type <a href="layer-healpix.html">healpix</a>
can plot all-sky maps from HEALPix map tables
(e.g. as generated by <code>tskymap</code>).
</li>
<li>Add some HEALPix-related functions to the
<a href="uk.ac.starlink.ttools.func.Tilings.html">Tilings</a> class:
conversions from pixel index to sky position and
conversions between ring and nested schemes.
</li>
<li>Subrange-typed plot command parameters like
<a href="plot2plane-usage.html">plot2plane</a>'s <code>auxclip</code>
now have a default value of null.
This uses a default clip, which avoids very light colours.
Explicitly supplying a subrange value (e.g. "<code>0,1</code>")
can now use the whole range; previously the very light colours
were inaccessible.
</li>
<li>The GBIN input handler
can now pick up more metadata from the classpath.
For suitable tables, metadata included in datamodel classes
if present can be interrogated to provide table
and column descriptions and UCDs.
There are still some deficiencies of this functionality
(no column order, utypes and units missing,
large file "temp.xml" written to current directory)
dependent on issues in the upstream Gaia libraries and ICD.
</li>
<li>Add parameters <code>tablesurl</code>, <code>examplesurl</code> etc
to task <a href="taplint.html"><code>taplint</code></a>,
so you can specify custom locations for different TAP endpoints
rather than have them fixed at their default locations
hanging off the base service URL.
Ditto for the tasks <code>tapquery</code> and <code>tapskymatch</code>,
though in these cases the extra parameters are
(since currently rather special interest) largely undocumented.
</li>
<li>Fix <code>taplint</code> behaviour in absence of a /tables endpoint
(404 now gives a Warning not an Error).
</li>
<li><code>taplint</code> ObsTAP validation updated to
PR-ObsCore-v1.1-20160709.
</li>
<li>Fix bug that caused read failures for large (>0.5Gb) FITS files
outside of the current directory on 32-bit JVMs.
This was a regression bug since v3.0-2.
</li>
<li>Fix long-standing bug that failed to release file descriptors
when opening FITS tables (could cause an error if very many
FITS files were opened).
</li>
</ul>
</dd>
<dt><strong>Version 3.0-9 (23 September 2016)</strong></dt>
<dd>
<ul>
<li>Fix aux ranging bug in some plot types
(SkyDensity, Healpix, Density, Weighted)
that used an aux data range too small to show colour variations
when <code>auxfunc=log</code>
and negative data values were present.
</li>
<li>Improved performance (better memory use, faster) of some plot types
(SkyDensity, Healpix, Density, Weighted).
</li>
<li>Fix JyStilts bug that could cause the same data to be used for
different tables specified in a single plot.
</li>
</ul>
</dd>
<dt><strong>Version 3.1 (8 March 2017)</strong></dt>
<dd>
<dl>
<dt><strong>Plotting improvements</strong></dt>
<dd>
<ul>
<li>Improved documentation of plot
<a href="LayerType.html">layer types</a> and
<a href="ShapeMode.html">shading modes</a> in the user document -
each option now has an example graphic
and the text of the command that generates it.
</li>
<li>New layer type <a href="layer-grid.html">grid</a>,
to plot a 2-d weighted histogram.
This replaces the <code>density</code> layer,
which has been withdrawn
(<code>grid</code> can do all the same things and more,
except specify bin size in screen pixels).
</li>
<li>New plot layer type <a href="layer-quantile.html">quantile</a>,
which can (e.g.) plot median lines through noisy data.
</li>
<li>New plot layer type <a href="layer-gaussian.html">gaussian</a>,
for Gaussian fits to histograms.
</li>
<li>Histogram-like layer types are now available from the
<a href="plot2time.html">plot2time</a> command as well as
from <code>plot2plane</code>,
so you can now plot histograms with a temporal horizontal axis.
</li>
<li>New normalisation (scaling) option <code>unit</code> for
histogram, KDE, and KNN plots.
</li>
<li>New normalisation (scaling) options <code>per_day</code> etc
for histogram, KDE and KNN layers when used from the
<code>plot2time</code> command.
</li>
<li>Colour names recognised by the <code>plot2*</code> command
<code>*color</code> parameters
now include the (140)
<a href="https://www.w3c.org/TR/css3-color#svg-color">CSS-like</a> colours alongside
the dozen standard plotting colours.
</li>
<li>Plot commands <code>insets</code> parameter now lets you specify
margins round plots using any combination of
<code><top>,<left>,<bottom>,<right></code>,
rather than requiring all values or none.
</li>
<li>Add new parameter <code>auxwidth</code> to plot2 commands,
to control colour ramp lateral dimension in pixels.
</li>
<li>Modify <em>plan</em> caching arrangements for STILTS plots.
This results in much better interactive performance
(navigation etc) for some plot layer types plotted to the screen.
There are also some minor API changes to a few of the plot2
utility classes, which now provide more flexibility
for caching.
</li>
<li>Various tweaks to the details of how plots are positioned on
the screen or in output graphics files.
</li>
</ul>
</dd>
<dt><strong>Miscellaneous enhancements</strong></dt>
<dd>
<ul>
<li>Fixed the match score (distance measure) for
<a href="CombinedMatchEngine.html">combined matchers</a>.
Previously, the score was a linear sum of the unscaled distances
for the constituent matchers, which meant a <em>Best</em> match
was pretty meaningless.
Now, it adds scaled distances in quadrature,
so Best matching should give you a somewhat sensible result.
</li>
<li>The <code><a href="SkyMatchEngine-err.html">skyerr</a></code>
and <code><a href="ErrorCartesianMatchEngine.html">nd_err</a></code>
matchers now report output separations as scaled (dimensionless)
values rather than in physical units; this means the results are
more comparable, so <em>Best</em> matches will make more sense.
</li>
<li><a href="taplint.html">taplint</a>
can now optionally write its output in JSON
format (see <code>format</code> parameter).
</li>
<li>Update <code>taplint</code> OBS stage for
PR-ObsCore-v1.1-20160923.
</li>
<li>The <a href="uk.ac.starlink.ttools.func.Maths.html">Maths</a> function
<code>hypot</code> now takes an arbitrary number of arguments
(instead of exactly two).
</li>
<li>Add <code>blockmaxrec</code> parameter to
<a href="tapskymatch.html">tapskymatch</a>,
and improve warning text in case of result truncations.
</li>
<li>Improve <code>tapquery</code>/<code>tapresume</code> behaviour
when monitoring async jobs; if the service goes down,
the application will wait for it to come back rather than
bailing out.
</li>
<li>Options for MOC output format
(<code>mocfmt</code> parameter
in <a href="pixfoot.html">pixfoot</a> command) have changed;
option <code>ascii</code> is replaced by <code>json</code>.
The old ASCII format was slightly broken JSON in any case.
</li>
<li>MOC library upgraded to v4.6 (from v3.3). Improved MOC output.</li>
<li>Update JCDF library to v1.2-2 (2017-01-01 leap second).</li>
</ul>
</dd>
<dt><strong>Bug fixes</strong></dt>
<dd>
<ul>
<li>Fix KDE/KNN plotting bug that could get scaling badly wrong
for normalised cumulative plots.
</li>
<li>Fix some regression bugs relating to <code>plot2</code> command
<code>insets</code> parameter, present since v3.0-6.
</li>
<li>Remove spurious padding from EPS graphics output.</li>
<li>Fix small bug in <code>plot2plane</code>/<code>plot2time</code>
label painting; horizontal axis label was sometimes off the
bottom of the plot by a few pixels.
</li>
<li>Fix subpixel offset of colour ramp frame in PDF/PostScript graphics
output.
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 3.1-1 (29 September 2017)</strong></dt>
<dd>
<dl>
<dt><strong>New functionality</strong></dt>
<dd>
<ul>
<li>New plot layer types
<a href="layer-xycorr.html">xycorr</a> and
<a href="layer-skycorr.html">skycorr</a> for error ellipses rotated
as specified by Gaia-style correlation values.
</li>
<li>New plot layer type <a href="layer-skygrid.html">skygrid</a>
can draw multiple sky system coordinate axis grids on sky plot.
</li>
<li>Colour map parameters
(<code>auxmap</code>, <code>densemapN</code> etc)
for the plotting commands
will now accept custom colour maps that interpolate between
a list of named colours,
e.g. "<code>HotPink-yellow-SkyBlue</code>".
</li>
<li>New position angle calculation functions
<a href="uk.ac.starlink.ttools.func.CoordsDegrees.html"><code>posAngRadians</code></a>
and
<a href="uk.ac.starlink.ttools.func.CoordsRadians.html"><code>posAngDegrees</code></a>
added to expression language.
</li>
</ul>
</dd>
<dt><strong>Table I/O changes</strong></dt>
<dd>
<ul>
<li>It is now possible to write and re-read tables with >999
columns to FITS or colfits format. The new limit is 2^31 columns.
This uses a non-standard convention; software that is not aware
of the convention (e.g. CFITSIO or earlier STILTS versions)
will only be able to use the first 998 columns of tables written
in this way.
</li>
<li>For VOTable columns that reference <code>COOSYS</code> elements,
the relevant information is now accessible as
column auxiliary metadata
(<code>CoosysSystem</code>, <code>CoosysEpoch</code>,
<code>CoosysEquinox</code>)
e.g. using the <a href="meta.html"><code>meta</code></a> filter.
</li>
<li>Any columns referencing <code>COOSYS</code> elements
read from VOTable-based formats (VOTable or FITS-plus)
will now be written out to VOTable-based formats with
equivalent COOSYS references included.
Currently not table parameters though.
</li>
<li>The default version for output VOTables is now VOTable 1.3.
New output formats <code>votable-binary2-inline</code> and
<code>votable-binary2-href</code> are now offered alongside
the five previously available VOTable variants.
</li>
<li>Slight changes to the FITS-plus output handler VOTable formatting
in the primary HDU; now uses default output VOTable version
rather than VOTable 1.1.
</li>
<li>FITS keywords using the ESO
<a href="https://fits.gsfc.nasa.gov/registry/hierarch_keyword.html">HIERARCH</a>
convention can now be read as table parameters
rather than ignored when reading FITS tables.
</li>
</ul>
</dd>
<dt><strong>Minor behaviour changes</strong></dt>
<dd>
<ul>
<li>The <code>charset</code> parameter of <code>votcopy</code>
now defaults to UTF-8 rather than the system default.
</li>
<li>Replace parameter <code>autoscale</code> with <code>unit</code> in
<a href="layer-skyvector.html"><code>skyvector</code></a> and
<a href="layer-skyellipse.html"><code>skyellipse</code></a>
plot layers.
</li>
<li>Change autoscaling defaults for plot layer types
<a href="layer-xyvector.html"><code>xyvector</code></a>,
<a href="layer-xyzvector.html"><code>xyzvector</code></a>,
<a href="layer-skyvector.html"><code>skyvector</code></a>,
<a href="layer-xyellipse.html"><code>xyellipse</code></a>,
<a href="layer-skyellipse.html"><code>skyellipse</code></a>;
autoscaling is now turned <em>off</em> by default.
Apologies for this change to behaviour,
but it's better for consistency with new layer types
<a href="layer-xycorr.html"><code>xycorr</code></a> and
<a href="layer-skycorr.html"><code>skycorr</code></a>,
and presents less danger of misinterpreted plots.
</li>
<li>Taplint: downgrade type mismatch error <code>E_QTYP</code>
to warning <code>W_QTYP</code> in view of TAP-1.0 Erratum #3.
</li>
<li>The <code>COOSYS</code> element is now passed without a deprecation
warning in VOTable 1.3 documents by
the <code>taplint</code> and <code>votlint</code> validators,
in view of VOTable-1.3 Erratum #1.
The warning is still issued for VOTable 1.2 documents,
but the text is toned down.
</li>
<li>Taplint no longer issues a warning about DataModel references
that do not match the <code>vr:IdentifierURI</code> type;
this follows TAPRegExt Erratum #1.
</li>
<li>Modify taplint Examples document @vocab attribute testing in the
light of DALI 1.1.
</li>
</ul>
</dd>
<dt><strong>Bug fixes</strong></dt>
<dd>
<ul>
<li>Update PixTools (HEALPix) library to 2017-09-06 version
(https://github.com/kuropat/eag-HEALPix,
<code>447a7be073876dba32</code>).
This fixes a bug in
<a href="uk.ac.starlink.ttools.func.Tilings.html"><code>healpixRingIndex</code></a> that could give
the wrong value for small values of longitude near zero
in the equatorial region.
It seems possible that this might have led to very infrequent
missed associations when crossmatching in these regions,
but tests appear to indicate that no such errors would
actually have resulted.
</li>
<li>Long fields (>10240 characters) in output CSV files
are no longer truncated.
</li>
<li>Fix misfeature in
<a href="layer-skyvector.html">skyvector</a> and
<a href="layer-skyellipse.html">skyellipse</a> plot layers;
these now preserve orientation on the sky even when
<code>viewsys</code> differs from <code>datasys</code>.
Previously the
<code>dlat</code>/<code>dlon</code>/<code>posang</code>
parameters were always interpreted in
the view, rather than the data, sky coordinate system.
</li>
<li>Fix bug in plot title placement.</li>
<li>Fix filename generation error for plotting command
animation output (wrong number of digits if frame count
was an exact power of 10).
</li>
</ul>
</dd>
</dl>
</dd>
<dt><strong>Version 3.1-2 (7 November 2017)</strong></dt>
<dd>
<dl>
<dt><strong>New expression language functions</strong></dt>
<dd>
<ul>
<li>New functions
<a href="uk.ac.starlink.ttools.func.Strings.html"><code>desigTo*</code></a>
for extracting positions from IAU-style object designations
(like <code>2MASS J04355524+1630331</code>) - use with care.
</li>
<li>New functions
<a href="uk.ac.starlink.ttools.func.CoordsDegrees.html"><code>polarDistanceDegrees</code></a> and
<a href="uk.ac.starlink.ttools.func.CoordsRadians.html"><code>polarDistanceRadians</code></a>;
these calculate the distance in 3d space between two
positions specified in spherical polar coordinates.
</li>
<li>New functions
<a href="uk.ac.starlink.ttools.func.Arithmetic.html"><code>phase</code></a>
to help with phase folding given a known period.
A new modulus function
<a href="uk.ac.starlink.ttools.func.Arithmetic.html"><code>mod</code></a>,
whose output is always positive
(unlike the <code>%</code> operator) is also added.
</li>
</ul>
</dd>
<dt><strong>Bug fixes and workarounds</strong></dt>
<dd>
<ul>
<li>Upgrade JEL to v2.1.2: now you can use functions in the expression
language that have the same name as table columns.
</li>
<li>Add fix to discard on read any VOTable/FITS-plus table parameters
with names "<code>uk.ac.starlink.topcat.plot2.TopcatLayer*</code>".
These useless items were added in potentially large numbers when
saving plotted tables from TOPCAT v4.5 (TOPCAT bug).
A null <code>tpipe</code> operation at this version will therefore
purge these items.
</li>
<li>Fix plot bug that sometimes caused error bars to come out
very small when exporting to a graphics file.
This was a regression bug (present in v3.1-1 but not v3.1).
</li>
<li>Fix another tiny error bar plotting bug too.</li>
<li>Small taplint update; required UCD for
<code>obs_publisher_did</code>/<code>publisher_id</code> changed
to match REC-ObsCore-1.1 (even though it's an illegal UCD1+).
</li>
</ul>
</dd>
</dl>
</dd>
</dl>
</p>
<hr>Next <a href="secC.1.html">Previous</a> <a href="secC.html">Up</a> <a href="index.html">Contents</a> <br> <b>Up: </b><a href="secC.html">Release Notes</a><br>
<b>Previous: </b><a href="secC.1.html">Acknowledgements</a><br>
<hr><i>STILTS - Starlink Tables Infrastructure Library Tool Set<br>Starlink User Note256<br>STILTS web page:
<a href="http://www.starlink.ac.uk/stilts/">http://www.starlink.ac.uk/stilts/</a><br>Author email:
<a href="mailto:m.b.taylor@bristol.ac.uk">m.b.taylor@bristol.ac.uk</a><br>Mailing list:
<a href="mailto:topcat-user@jiscmail.ac.uk">topcat-user@jiscmail.ac.uk</a><br></i></body>
</html>
|