Skip to content
This repository
branch: smoke-me/JSON_…
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 9535 lines (6258 sloc) 264.242 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534
#1

2011.02.15 mikehh
        * Released 3.1.0
        See NEWS for more.

2011.01.18 cotto
* Released 3.0.0
See NEWS for more.

2010.12.21 Whiteknight
* Released 2.11.0
See NEWS for more.

2010.11.16 tcurtis
* Released 2.10.0
See NEWS for more.

2010.10.19 Gerd
* Released 2.9.0
See NEWS for more.

2010.09.21 Gerd
* Released 2.8.0
See NEWS for more.

2010.08.17 mikehh
* Released 2.7.0
See NEWS for more.

2010.07.10 coke
* Released 2.6.0
See NEWS for more.

2010.06.15 Gerd
* Released 2.5.0
See NEWS for more.

2010.05.18 Whiteknight
* Released 2.4.0
See NEWS for more

2010.04.20 Gerd
* Released 2.3.0
See NEWS for more.

2010.03.16 cotto
* Released 2.2.0
See NEWS for more.

2010.02.16 darbelo
* Released 2.1.0
See NEWS for more.

2010.01.19 chromatic
* Released 2.0.0
See NEWS for more.

2009.12.15 Gerd
* Released 1.9.0
See NEWS for more.

2009.11.17 barney
* Released 1.8.0
See NEWS for more.

2009.10.20 dukeleto
* Released 1.7.0
See NEWS for more.

2009.9.15 particle
* Released 1.6.0
See NEWS for more.

2009.8.18 Whiteknight
* Released 1.5.0
See NEWS for more.

2009.7.21 cotto
* Released 1.4.0
See NEWS for more.

2009.06.16 Whiteknight
* Released 1.3.0
See NEWS for more.

2009.05.19 Infinoid
* Released 1.2.0
See NEWS for more.

2009.04.21 fperrad
* Released 1.1.0
See NEWS for more.

2009.03.17 allison
* Released 1.0.0
See NEWS for more.

2009.02.17 kjs
* Released 0.9.1
See NEWS for more.

2009.01.20 chromatic
* Released 0.9.0
See NEWS for more.

2008.12.16 Whiteknight
* Released 0.8.2
See NEWS for more.

2008.11.18 chromatic
* Released 0.8.1
See NEWS for more.

2008.10.21 particle
* Released 0.8.0
See NEWS for more.

2008.09.16 pmichaud
* Released 0.7.1
See NEWS for more.

2008.08.19 rgrjr
* Released 0.7.0
See NEWS for more.

2008.07.15 barney
* Released 0.6.4
See NEWS for more.

2008.06.17 smash
* Released 0.6.3
See NEWS for more.

2008.05.20 chromatic
* Released 0.6.2
See NEWS for more.

2008.04.15 particle
* Released 0.6.1
See NEWS for more.

2008.03.18 bernhard
* Released 0.6.0
See NEWS for more.

2008.02.20 pmichaud
* Released 0.5.3
See NEWS for more.

2008.01.15 rgrjr
* Released 0.5.2
See NEWS for more.

2007.12.18 jonathan
* Released 0.5.1
See NEWS for more.

2007.11.20 chromatic
* Released 0.5.0
See NEWS for more.

2007.10.17 coke
* Released 0.4.17
See NEWS for more.

2007.09.18 particle
* Released 0.4.16
See NEWS for more.

2007.08.22 pmichaud
* Released 0.4.15
See NEWS for more.

2007.07.17 particle
* Released 0.4.14
See NEWS for more.

2007.06.19 allison
* Released 0.4.13
See NEWS for more.

2007.05.15 chromatic
* Released 0.4.12
See NEWS for more.

2007.04.17 mdiep
* Released 0.4.11
See NEWS for more.

2007.03.20 coke
* Released 0.4.10
See NEWS for more.

2007.3.10 coke
* removed parakeet

2007.02.22 pmichaud
* Released 0.4.9
See NEWS for more.

2007.01.17 chromatic
* changed 'name' method on namespaces to 'get_name' per pdd21

2007.01.16 particle
* Released 0.4.8
See NEWS for more.

2006.12.12 particle
* added C<isnull> opcode

2006.11.14 chip
* Released 0.4.7
See NEWS for more.

2006.11.07 tewk
* added :init pragma functionality to subs

2006.10.28 jonathan
* added :vtable pragma functionality to subs

2006.09.18 chromatic
* added Parrot::Embed under ext/Parrot-Embed

2006.08.18 leo
* remove the None PMC - if needed it can trivially be reimplemented
in languages from r14189

2006.08.16 creiss
Merged Software Transactional Memory branch into trunk, adds:
* several new opcodes whose names start with stm_
* read-only PMC support
* several new PMC types (whose names start with STM*)
* support for threads (again)

2006.08.08 chip
* Released 0.4.6
See NEWS for more.

2006.08.02 chip
* opcodes: "in PMC" is no longer a synonym for "invar PMC";
there are opcodes now that want the real "in PMC".
* namespace and global opcodes now accept name arrays again, as
well as keys; the corresponding namespace PMC methods are gone.

2006.07.21 leo
* Parrot_x_exit, Parrot_x_on_exit take now an Interp * argument

2006.07.25 chip
* add experimental op find_type_i_p
* fix longstanding bug that sometimes didn't encode pasm keys as
Key PMCs (specifically "[S0]" and "['stringliteral']").

2006.07.24 chip
further implementation of new pdd21:
* new opcodes {get,set}*global
(old {find,store}*global will be supported for a short while)

2006.07.20 audreyt
* --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
(or some such --leo)
(at the moment code is checking for 2.0 -- ambs)

2006.07.17 chip
partial implementation of new pdd21:
* old: "get_namespace KEY". new: "get_hll_namespace KEY"
* get_namespace and find_global opcodes no longer accept arrays
of strings. To use arrays, call namespace object methods.

2006.06.19 leo
* Released 0.4.5
See NEWS for more.

2006.06.03 leo
* I and N registers are never cleared to 0 / 0.0 on subroutine entry

2006.05.14 leo
* Released 0.4.4
See NEWS for more.

2006.04.30 bernhard
* Make the Perl PMCs dynamic and move them to src/dynpmc

2006.04.02 leo
* Released 0.4.3
See NEWS for more.

2006.03.06 leo
* Shifted argument type bits left by 2 according to r11754
change of docs/pdds/pdd03_calling_conventions.pod
* if you are creating PASM then code needs adjustment

2006.02.22 leo
* Released 0.4.2
See NEWS for more.

2006.01.16 bernhard
* rename src/dynclasses to src/dynpmc
* rename src/classes to src/pmc

2006.01.15 leo

* find_global and friends returns a .Null PMC instead of .Undef on
lookup failure, iff lookup exceptions are off

2006.01.08 leo
* Released 0.4.1
See NEWS for more.

2005.12.28 particle
* renamed all .imc files to .pir
* modified all doc references to .pir as well

2005.12.13 particle
* moved jit/ directory to src/jit/

2005.12.12 particle
* moved io/ directory to src/io/
* moved classes/ directory to src/classes/
* moved dynclasses/ directory to src/dynclasses/

2005.12.08 particle
* moved types/ directory to src/types/
* moved pf/ directory to src/packfile/
* moved ops/ directory to src/ops/

2005.12.08 particle
* moved charset/ directory to src/charset/
* moved encodings/ directory to src/encodings/

2005.12.07 particle
* moved imcc/ directory to compilers/imcc/

2005.12.06 particle
* moved util/ directory to tools/util/
* removed imcc/examples/ directory
* moved ast/ directory to compilers/ast/

2005.12.05 particle
* moved imcc/docs/ directory to docs/imcc/
* moved build_tools/ directory to tools/build/
* modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP

2005.12.04 leo
* Released 0.4.0
* See NEWS for changes

2005.11.06 leo
* Released 0.3.1
* See NEWS for changes

2005.10.01 leo
* Released 0.3.0
* See NEWS for changes

2005.08.05 leo
* Released 0.2.3
* See NEWS for changes

2005.07.03 leo
* Released 0.2.2
* See NEWS for changes

2005.06.04 leo
* Released 0.2.1
* allow short names for object attributes
* string encoding and charset can now be set independently
* experimental mmap IO layer for slurping files
* enable compile opcode support for compilers written in PASM/PIR
* improved HLL support with .HLL and n_operators pragmas
* simplified hash code
* more strength reduce optimizations
* distinct debug and trace flag settings
* glob support in PGE
* new character classification opcodes and interfaces
* numerous bug fixes and enhancements

2005-05-08 leo
* Released 0.2.0
* parrot repository is now under subversion
* MMD (Multi Method Dispatch) enhanced
* new unary and infix opcodes that return new result PMCs
* dynamic scalar PMCs inherit now almost all from Parrot core PMCs
* more unification of PMCs and ParrotObjects
* tailcalls for functions and methods
* PGE (Parrot Grammar Engine) reworked
* Pugs creates Parrot code and Pugs is a registered compiler now
* new languages/lisp
* the usual bug fixes and improvements

2005-03-06 leo
* Released 0.1.2
* big rewrite of string code, not yet finished but ...
* partial implementation of a generational garbage collector
* indirect register frame addressing
* .return(args) PIR syntax
* moved most of the Python code to dynclasses
* a lot more Python functionality
* precalculate opcodes with all constants
* PGE - Parrot Grammar Engine
* scalar classes refactoring
* much more tests and big test system cleanup
* improved documentation
* and as always a lot more

2004-10-09 leo
* Released 0.1.1
* Need Perl 5.6 now for building
* Basic AST support, PAST file parser, bits of code generation
* BigInt PMC using GMP
* Complex PMC
* Dynamic loading improved including bundles of PMC classes
* Experimental support for "make install"
* IA64 and hppa JIT support
* ICU unicode support
* IO layer handling code
* IO readline and buffered IO fixes
* Incremental GC
* Internal pythonic functions: filter, map, reduce, max, min ...
* Languages updates for m4, tcl, perl6, regex. New parakeet language.
* Library updates, Stream and SDL library
* MMD - multi method dispatch for binary vtable methods
* Many new array PMCs
* Method call syntax in PIR obj."meth"(...)
* More OS stuff: stat, exec, system, gmtime, piped read and write
* New Python PMCs like Enumerate, None
* Non-branching compare opcodes
* PIR support for += and friends
* Python language subdir
* Python types mapped to existing PMCs
* Slices and range support
* Tons of bug fixes, documentation updates, new tests
* Win32 COFF exec support
* ... and a lot more

2004-02-29 leo
* Released 0.1.0
* "Ladies and gentlemen, I give you... objects!"
* Huge documentation overhaul
* More supported platforms, s. PLATFORMS
* Basic thread support for pthread based architectures
* Basic event handling for timers and signals including:
* PASM callbacks for NCI (native C) functions.
* Improved platform configuration
* COW stacks now working, stacks code redone
* Structure handling vastly improved
* Random PMC and rand primitives
* Better subroutine call syntax in PIR
* Make PIR subroutines compliant with pdd03
* Improved profiling (DOD, GC timings)
* Hash code improvements, incl. random key order support
* Experimental freeze/thaw code for some PMC types
* IO improvements for buffered layer and Win32
* String iterators
* String bitwise vtables
* Many new opcodes
* Support for JIT, where malloced memory isn't executable
* Priority DOD scheme for objects that need timely destruction
* Improved bytecode loading (e.g. onLoad functions)
* Language updates: forth, Perl6/P6C, m4
* Libraries: Getopt_Long, SDL, Dumper, Sort
* new JAPH examples
* Unified imcc and parrot test handling
* Many new tests (make test reports 1386 tests)
* Numerous bug fixes


2003-10-31 leo
* Released 0.0.13
* Yep thirteen - haunted by the ghost of 0.0.12
* Build imcc as parrot
* Objects more finished
* Delegate vtable methods to byte code
* Binary multi-method dispatching
* Isa and does methods for PMCs
* Call byte code from C
* Start of extension interface
* Experimental struct handling
* Catch access to NULL PMCs
* Experimental network socket interface code and opcodes
* IO fixes and improvements
* Dynamic opcode libraries
* Fix-assigned opcode numbers
* Argument flattening for function calls
* More native call interface (NCI) signatures
* Ncurses, postgres, and pcre interface libraries
* Forth language is vastly improved
* BSD and Win32 build improvements
* Many new tests and fixes

2003-10-22 melvin
* imcc moved from parrot/languages/ to parrot/

2003-09-20 sfink

* updated the native_pbc test files (from Leo)
* built 0.0.11.1 release tarball

2003-09-20 sfink

* CHANGES BUNDLED INTO 0.0.11:
* Executable output
* Dynamic PMC registration
* Trial exception system
* Beginnings of object system
* Iterators
* Ordered hashes
* I/O system improvements
* References
* Documentation for basic PMC types
* IMCC support of Parrot Calling Conventions
* Runtime loading of chartypes (and other string improvements)
* Conditional breakpoints
* Dramatically accelerated sweeps for finalizable objects
* Small PMCs (PMCs split into core and extensions)
* Loadable bytecode packfiles
* Constant PMCs
* Sub variants that deal with the stack correctly
* Switched runops core
* Line numbers in warnings
* Environment access
* Many documentation cleanups
* Conversion to CPS style!
* BASIC debugger and many other wacky features
* Filename, line number parsing support in IMCC

2003-07-21 17:31 chromatic
* applied copyright patch from Josh Wilmes

2003-06-14 13:50 dan
* Moved the registers out of the context structure, since they
really aren't context
* Changed the register stack frames to hold only 16 registers
rather than 32, added half-set push and pop ops, and reworked
the full set push/pops to do two half-set push/pops. Should
speed up saving register data on calls, since we usually only
care about the top half of the registers anyway.
* Started committing some of the new class/object framework
* Remembered to finally start updating the Changelog

2003-03-18 03:50 ask

* Various files
Update Yet Another copyright statements to reflect the (no longer
so) shiny new year.

2003-03-11 22:06 chip

* Configure.pl: print help on non-option command line args

2002-12-18 20:38 sfink: changes since 0.0.8

- Allow suppression of cgoto core to save memory during compile
* Native function calling interface
* Major rewrite of stack and list aggregates
- Scalar PMC added
* Scratchpads implemented
- Win32 libraries
- Internal memory subsystem documentation
* Preliminary DotGNU support
- Packfile fingerprinting
* Buffer/PMC unification (into PObjs)
* stabs debugging information support
* Major Jako overhaul, including:
- imcc integration
- native function calling
- Perl6 string interpolation
- languages/regex now targets IMCC
* Optional Lea memory allocator
* Full sprintf implementation
* Many, many new tests
* Miniparrot
- exchange ops
- runtime-controllable gc debugging
* PMC properties
- Crash info
* JIT: various improvements
- register usage tracking
- block register allocation
- optimizations
- more jitted ops
- restartable
- architecture abstraction layer
- debugging via GDB
* Beginning support for extensible packfiles
* Much better key support, generally
* splice()
* Restructured PMC hierarchy with better functionality inheritance
* IMCC: many, many improvements. See imcc/ChangeLog
* Perl6: index map grep join reverse defined
* Scheme with functions!


2002-03-19 22:54 nicholas

* docs/running.pod: Patch from Simon Glover <scog@amnh.org>:

We can now get usage information for test_parrot without having to
grep the source.

2002-03-19 22:53 simon

* Configure.pl:
Parrot is called parrot.

2002-03-19 22:53 nicholas

* docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:

1. There are tests in t/pmc as well as t/op now.
2. Adds a comment about Parrot::Test

2002-03-19 18:09 dan

* Configure.pl, examples/assembly/life.pasm: Toss a prompt that
messes up automated builds

Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-03-19 00:33 mrjoltcola

* core.ops: Doc cleanup from Simon Glover.

2002-03-18 23:52 mrjoltcola

* io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.

2002-03-18 22:09 dan

* include/parrot/resources.h: Checked in old version

2002-03-18 20:17 dan

* include/parrot/resources.h: Forgot a prototype

2002-03-18 20:15 dan

* resources.c: D'oh! Thinko, fixed.

Courtesy of "Peter Gibbs" <peter@emkel.co.za>

2002-03-18 17:33 josh

* Configure.pl: Lowering the bar a bit.

2002-03-18 17:33 sfink

* languages/regex/: MAINTAINER, Makefile, README, regex.pl,
test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
t/example.t: Whoops, wrong time to check this in.

2002-03-18 16:42 dan

* memory.c, resources.c: Partial fix for GC's memory trouncing. At
least we consider the PMC and Buffer free pools worth collecting,
and initialize the Buffer pool stuff. Still not 100% correct,
though.

2002-03-18 15:35 simon

* packfile.c:
Fix format arg bug.

2002-03-18 07:45 brentdax

* Configure.pl: Warn if you're using 64-bit ints on a 32-bit
system.

2002-03-18 00:09 sfink

* languages/regex/: MAINTAINER, Makefile, README, regex.pl,
test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
t/example.t: Buggy 1st version of regex compiler implementation.
Warning: the test code depends on features of the assembler that do
not yet exist.

2002-03-17 21:35 ajgough

* types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
through addition and subtraction. Also added the ability to run
all the tests, including the ones which deal with overflow and
underflow. These fail, but that's expected. Soon they'll pass.
Then I'll show them. Yesssssss. Tessssssssts my precioussssss,
passsssssssings tesssstsssss.

2002-03-17 20:06 ajgough

* types/: bignum.c, bignum.h, bignum_test.pl: Modified
check_(under|over)flow to test bignumbers, rather than values.
context now carries E_limit, from which max and min exp are found.

Added a default-context-creating function (although this isn't the
same as either of the default contexts defined in the eda).

2002-03-17 13:31 ajgough

* types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
exported version matches prototypes of other public functions.

2002-03-17 06:44 josh

* chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
packout.c, resources.c, string.c, include/parrot/encoding.h: Some
last-minute re-indenting.

2002-03-17 05:07 mrjoltcola

* io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.

2002-03-16 23:17 nicholas

* classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
remove warnings:

default.pmc: In function `Parrot_default_get_integer_keyed':
default.pmc:50: warning: control reaches end of non-void function
default.pmc: In function `Parrot_default_get_number_keyed':
default.pmc:58: warning: control reaches end of non-void function
default.pmc: In function `Parrot_default_get_string_keyed':
default.pmc:67: warning: control reaches end of non-void function
default.pmc: In function `Parrot_default_get_pmc_keyed':
default.pmc:87: warning: control reaches end of non-void function

2002-03-16 18:50 ajgough

* types/: bignum.c, bignum.h: Lots of prototypes changed in
readiness for nicely telling your caller about any oddness you've
caused in the persuit of flow.

2002-03-16 17:38 dan

* interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
include/parrot/interpreter.h, include/parrot/resources.h: Now we
can control the GC and DOD, to stop it when we don't really want
it.

2002-03-16 16:58 dan

* resources.c, vtable.tbl, classes/default.pmc,
include/parrot/resources.h: Added the last code to let PMCs control
their marking at DOD time

2002-03-16 16:57 ajgough

* types/bignum.c: Ok, I worked out how to not have lots of tabs. I
feel a little more virtuous now. Really I do. You might not
believe me, but you should. perl -pne 's/\t/ /g', if you're
curious.

2002-03-16 16:57 josh

* packfile.c, packout.c: M-x untabify is my new friend.

2002-03-16 16:50 josh

* trace.c, resources.c: Minor whitespace tweak for the benefit of
check_source_standards.pl

2002-03-16 16:50 ajgough

* types/: bignum.c, bignum.h: More documentation, separate
functions into public and private sorts, some initial stuff to cope
with over and underflow correctly.

2002-03-16 16:49 josh

* resources.c: Re-indented (sorry bout the big diff)

2002-03-16 16:47 bdwheele

* examples/assembly/fact.pasm: This fixes fact.pasm so it will
assemble again, both with Simon's new assembler and with the old
one.

2002-03-16 16:33 mrjoltcola

* io/TODO: Get the TODO up-to-date for 0.0.4.

2002-03-16 16:11 josh

* Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
silly people (such as me) running Configure with
/usr/local/bin/perl (which is 5.004_05) and not realising their
mistake until the pmc subdirectory, where the first qr// is
encountered.

Syntax error messages don't tell you what you did wrong. This does:

/usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
only version 5.00405, stopped at Configure.pl line 10.

2002-03-16 14:38 ajgough

* Makefile.in: Small fix to Makefile.in to keep Irix make happy
with commenting.

2002-03-16 11:45 simon

* MANIFEST, examples/assembly/xml_parser.pasm:
Added Clint Pierce's XML parser.

2002-03-15 22:24 simon

* packout.c:
Don't need that function.

2002-03-15 21:56 simon

* Makefile.in, include/parrot/packfile.h:
Rebuild packout.o, since it'll be used for the Packfile XS module

2002-03-15 19:45 dan

* include/parrot/: memory.h, pmc.h: Another add-in for GC

2002-03-14 19:48 dan

* core.ops: No string to int for some reason

2002-03-14 18:45 dan

* string.c, t/op/string.t: Fix 0-length substr problem

2002-03-14 14:46 dan

* core.ops, interpreter.c, resources.c, classes/array.pmc,
classes/perlarray.pmc, examples/assembly/life.pasm,
include/parrot/interpreter.h, include/parrot/resources.h: Added in
a counter for copied memory, with a display in life.pasm

2002-03-14 03:16 mrjoltcola

* MANIFEST: Update MANIFEST courtesy of Simon Glover.

2002-03-13 23:43 simon

* packfile.c:
Oops.

2002-03-13 23:43 simon

* packfile.c:
Hangs head in shame.

2002-03-13 21:31 simon

* MANIFEST:
FAQ moved.

2002-03-13 18:06 simon

* string.c:

Fix string_compare screw-up.

2002-03-13 18:02 brentdax

* docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
and add a new question/answer pair.

2002-03-12 22:53 mrjoltcola

* io.ops: Quick and dirty read ops for PIO. No warranty provided.

2002-03-12 22:48 mrjoltcola

* examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
warranty provided.

2002-03-12 22:29 ajgough

* docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.

2002-03-12 22:24 ajgough

* docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
version 1.1, Don't know if this is the correct number, but I don't
want this stuck on my harddrive where it will get lost, so 14 it is
:)

2002-03-12 11:35 simon

* MANIFEST, packdump.c, packout.c:

Just so the functionality doesn't disappear.

2002-03-12 11:33 simon

* Makefile.in, chartype.c, encoding.c, packfile.c,
chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
include/parrot/chartype.h, include/parrot/encoding.h,
include/parrot/packfile.h:

Packfile axing.

2002-03-11 23:06 nicholas

* core.ops: Patch from Simon Glover <scog@roe.ac.uk>:

Core.ops documentation nits

2002-03-11 23:05 nicholas

* t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:

Most of the PerlUndef tests in pmc.t appear to have been added
twice.
Enclosed patch removes the duplicates.

2002-03-10 23:40 nicholas

* t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:

More tests for the PerlString test-suite.

2002-03-10 23:40 nicholas

* t/op/time.t: Patch from Simon Glover <scog@amnh.org>:

test for sleep with negative argument

2002-03-10 21:58 nicholas

* t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:

Enclosed patch fixes up a few more holes in our test coverage.

2002-03-10 21:18 mrjoltcola

* classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
classes/parrotpointer.pmc, classes/perlarray.pmc,
classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
classes/perlstring.pmc, classes/perlundef.pmc,
include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
argument to the init() vtable method so PMCs have the option to
know how to size themselves at creation. size could be N elements
or a byte count, depending on the PMC or it may simply be ignored.
Overloaded 'new' opcode for optional arg.

2002-03-10 21:15 mrjoltcola

* lib/Parrot/Assembler.pm: Minor patch to the assembler for the
new_p_ic_ic opcode to work same as new_p_ic (looks up a named
class).

Also added small hack for .sub directive (which simply translates
to a label, however we might eventually want to collect these to
validate bsr calls.

2002-03-10 15:09 ajgough

* types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
Added round_floor and round_ceiling. 3403 tests pass, none fail.

2002-03-10 03:56 ajgough

* types/: bignum.c, bignum_atest.pl: Added extended stuff to
divide, divide integer and remainder. All filled in functions now
have special values capability.

Much remains to be done though, and the pdd needs to catch up.

2002-03-10 01:36 ajgough

* types/bignum.c: Added extended stuff to _add, _subtract.

2002-03-10 00:14 nicholas

* t/op/: integer.t, number.t: Patch from Simon Glover
<scog@roe.ac.uk>:

The enclosed patch fixes a few of the holes in our test coverage
uncovered by Josh Wilmes

2002-03-09 23:03 ajgough

* types/: bignum.c, bignum.h: Modified compare to work with
extended values. Made a couple of changes here and there to allow
BN_comp to take a context, so that an is_zero check doesn't clobber
negative zeros.

2002-03-09 22:19 ajgough

* types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
Unary plus now copes with special values.

2002-03-09 04:25 ajgough

* types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
traps and flags are now enabled and tested for all the standard
tests for all the functions which are currently implemented. Test
harness faffed with to allow these to be tested.

2002-03-09 02:29 josh

* encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
Re-indented

2002-03-09 02:22 josh

* config_h.in: tab-blastin'

2002-03-09 02:21 josh

* check_source_standards.pl: Play nicer with M-x compile- don't
bother giving line numbers for things you don't want to look at.

2002-03-09 02:10 josh

* examples/mops/mops.c: re-indented

2002-03-09 02:07 josh

* classes/pmc2c.pl: Use the usual header so that we can detect the
autogeneratedness.

2002-03-09 02:05 josh

* jit2h.pl: Avoid accidental /* inside a comment, which generates a
compiler warning

2002-03-09 01:59 josh

* io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
patch- re-indent io/*.c.

2002-03-09 01:52 ajgough

* types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
special values to the string conversion functions, some other
functions now need context (to let -0 pass through really_zero)
which have also been added.

2002-03-09 01:47 josh

* test_main.c: Re-indented.

2002-03-09 01:41 josh

* rx.c: killed a stray tab

2002-03-09 01:38 josh

* rx.c: Re-indented.

2002-03-09 01:36 josh

* misc.c: Oops, some tabs remained- cleaned up.

2002-03-09 01:31 josh

* misc.c: Re-indented (major patch, sorry)

2002-03-09 00:59 josh

* embed.c: Re-indented.

2002-03-08 23:08 simon

* MANIFEST, docs/pdds/pdd10_embedding.pod,
docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
docs/pdds/pdd13_bytecode.pod:
Placeholder PDDs.

2002-03-08 21:12 ajgough

* include/parrot/string.h: Added private flags to string.h, mostly
so that other GCed stuff can also have its very own private flags.

2002-03-08 19:53 simon

* MANIFEST:
Great PDD Renaming

2002-03-08 19:41 robert

* docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
pdd6.pod, pdd7.pod: Renamed...

2002-03-08 18:51 simon

* MANIFEST, docs/pdds/pdd08_keys.pod:
Add keys PDD.

2002-03-08 18:20 ajgough

* types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
Introduced exception handlers and exception flags to context, will
allow support of extended standard. Unified exception checking
mechanism (sort of) and made minimal changes to bulk of code to use
this. Tests pass, I'm happy, and further changes will happen more
gradually.

2002-03-08 04:38 josh

* interpreter.c, string.c, testparrotsizes_c.in: More indenting
tweaks.

2002-03-08 04:37 josh

* platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented

2002-03-08 04:24 josh

* embed.c: A bit more re-indenting

2002-03-08 04:20 josh

* embed.c: Indenting fixes

2002-03-08 04:14 josh

* jit.c: Re-indented (run_indent.pl)

2002-03-08 03:36 josh

* ops2c.pl: Fix the line numbers which get reported while compiling
core_ops*.c

2002-03-08 03:22 josh

* packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
The variable "type" is set but never used.

opcode_t type;

2002-03-08 03:04 josh

* resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
io/io_unix.c: Clean up unused and set-but-not-referenced variables
noticed by the sgi compiler.

2002-03-08 03:02 josh

* misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
misc.c, Line = 417 The indicated type qualifier is meaningless on
cast type.


(const char) 'f');
^

2002-03-08 02:55 josh

* Makefile.in: Clean up one of the object files it was missing

2002-03-08 01:15 josh

* include/parrot/interpreter.h: Fixes the following error (tcc):
"./include/parrot/interpreter.h", line 27: Error: [Syntax]: Extra
comma at end of list.

2002-03-06 22:15 simon

* stacks.c:
Tidy up stack chunk allocation.

2002-03-06 21:00 simon

* interpreter.c:
Create strings only once we've got string register heads set up.

2002-03-06 20:31 simon

* classes/perlarray.pmc:
malloc(0) considered harmful.

2002-03-06 20:24 simon

* include/parrot/resources.h:
I like it when Parrot compiles.

2002-03-06 17:02 dan

* classes/array.pmc: Changed over to data pointing to a Buffer.

2002-03-06 15:45 dan

* core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
packfile.c, pbc2c.pl, pdump.c, resources.c,
include/parrot/interpreter.h, include/parrot/memory.h,
include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
and opcode_t > longs will now be even more suspect than what they
were beforehand. 2) Feel free to bicker with names. I don't think
we've come to *any* sort of agreement with these, although we
really, really, need to. 3) I forget the third thing. 4) But I
thought of a fourth. 5) I've now remembered the third thing: IIRC,
ANSI C states that enums will fit within the smallest type (int or
greater) that can hold the values. Is that actually correct, and
does it state whether unsigned is preferred to signed for
non-negative enums? 6) Since I'm no longer constrained by "three"
or "quick", I'm going size_t happy for a lot of memory-related
storage. (That's good. No sense wasting the size or performance
of an UINTVAL for strange values of UINTVAL.) I'm also using it in
a couple other internal things (like the GC stat counters, seen
here). Size and performance, again, and unpromotable to a bigint,
so we know that we (theoretically) will wrap. However, size_t
isn't the best choice for the type. (Not that there's anything
wrong with size_t, just that it shouldn't be called size_t.) Any
thoughts? I was thinking of just doing unsigned int, because,
IIRC, int is usually the natural word size, and will be most
efficient. Thoughts? 7) I forgot what the fourth thing I thought
of was while writing down the others. Sorry.

Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>

2002-03-06 15:26 dan

* memory.c, resources.c, string.c, classes/perlarray.pmc,
include/parrot/resources.h: Now we allocate generic Buffers from
arenas too

2002-03-05 21:42 brentdax

* Configure.pl: Minor cleanup and enhancements.

2002-03-05 21:25 dan

* resources.c: non-special GC now works with PMCs

2002-03-05 19:48 brentdax

* Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
Parrot now "knows" if it's a development version or a release
version. See the instructions in the DEVELOPING file.

2002-03-05 18:05 brentdax

* MANIFEST: pasm.vim wasn't in the manifest.

2002-03-05 17:57 simon

* Makefile.in:
Now, through much evilness, make distclean and make cvsclean work
again.

2002-03-05 17:38 dan

* memory.c, resources.c, docs/pdds/pdd09_gc.pod,
include/parrot/interpreter.h, include/parrot/pmc.h,
include/parrot/resources.h: PMC tracing complete

2002-03-05 16:28 gregor

* languages/jako/Makefile.in:
Changed -I ../../ to -I ../../lib when calling the assembler, since
the perl modules have moved.

2002-03-05 05:30 josh

* packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
string.c: More re-indenting via run_indent.pl.

2002-03-05 05:17 josh

* runops_cores.c, trace.c, warnings.c: Re-indented (via
run_indent.pl)

2002-03-05 04:26 josh

* key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
using run_indent.pl and some minor tweaking.

2002-03-05 04:21 josh

* chartype.c, encoding.c, exceptions.c, global_setup.c,
interpreter.c: Re-indented using run_indent.pl and some minor
tweaking.

2002-03-05 03:30 josh

* include/parrot/trace.h: These functions are no longer used (or
even implemented)

2002-03-04 18:21 josh

* include/parrot/trace.h: Fix a typo in the argument type.

Patch from <daniel.ritz@gmx.ch>

2002-03-04 03:39 josh

* check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
header to jit_struct.h so we don't try to check it for conformance.
(no way will it conform)

2002-03-04 03:38 josh

* include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
unicode.h, warnings.h: Remove some remaining tabs and split some of
the remaining long lines.

2002-03-04 03:17 josh

* include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
string_funcs.h, trace.h, warnings.h: This is the first batch of
re-indenting. This patch is the result of running run_indent.pl
on the header files and manually tweaking the results where errors
were noticed. This should get us closed, but some refinement may
follow.

2002-03-04 03:06 josh

* resources.c: Return without parens, as mentioned in PDD 7

2002-03-04 03:01 josh

* core.ops: POD fixes.

2002-03-04 02:58 josh

* config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
on autogenerated files- used by the check_source_standards.pl
script (for now) to exempt autogenerated files from the checks.

2002-03-04 02:51 josh

* embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
warnings.c: Added the editor "boilerplate" footer to a few files
which were missing it.

2002-03-04 02:34 josh

* check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
c preprocessor directive indentation to comply with pdd 7.

(also fixes the check for this indentation in
check_source_standards.pl)

2002-03-04 02:32 josh

* lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
irix.

perl t/harness t/op/basic..........Use of uninitialized value at
lib/Parrot/Test.pm line 81. # Failed test (t/op/basic.t at
line 6) # got: undef # expected: ''

2002-03-04 02:30 josh

* MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
"indent" program to enforce some of the code style standards
outlined in PDD 7.

Usage: ./run_indent.pl <file>

2002-03-03 19:04 simon

* examples/mops/mops.c:
Let's make it compile, huh?

2002-03-03 19:04 simon

* examples/mops/mops.cs:
I R AN IDIOT

2002-03-03 18:11 simon

* examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
Added C# and MS-IL versions of mops tester.

2002-03-03 14:52 simon

* core.ops:
Add a sub() op to make mops_p work.

2002-03-02 18:12 nicholas

* examples/mops/mops.c, include/parrot/embed.h,
include/parrot/interp_guts.h, include/parrot/jit.h,
include/parrot/misc.h, include/parrot/packfile.h,
include/parrot/rx.h, include/parrot/warnings.h,
platforms/generic.c, platforms/generic.h, platforms/win32.c,
platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
Wilmes to add the emacs and vim "ending boilerplate" that sets the
indent variables correctly.

2002-03-02 17:41 nicholas

* resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
patch to fix a compiler warning.

2002-03-01 22:35 dan

* memory.c, resources.c, include/parrot/pmc.h,
include/parrot/resources.h: PMCs now come out of arenas.

2002-03-01 06:15 dan

* string.c:
A non-existing buffer + a non-existing buffer should be a
non-existing buffer, not "", which is really '\0'.

Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>

2002-03-01 06:02 dan

* classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:

TMTOWTDI, but strcmp is probably the worse.

Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>

2002-03-01 02:32 brentdax

* embed.c: Debug mode now prints out the GC data.

2002-02-28 23:44 dan

* core.ops, resources.c, include/parrot/resources.h: Added collect
and sweep opcodes

2002-02-28 22:58 dan

* docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
opcode

2002-02-28 22:50 dan

* core.ops, interpreter.c, resources.c,
examples/assembly/life.pasm, include/parrot/interpreter.h,
include/parrot/resources.h: Add some stat gathering to the resource
allocation code.

Also add an interpreter info retrieval op, and teach it about the
different things it can retrieve.

Finally, add some stat info to life.pasm as an example

2002-02-28 21:27 dan

* editor/pasm.vim: VIM mode commands for parrot assembly files

Courtesy of Scott Beck <scott@gossamer-threads.com>

2002-02-28 19:20 dan

* examples/assembly/life.pasm: Fix a creeping string length leak.

Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>

2002-02-28 18:26 dan

* string.c: When you clone a constant, it ain't constant no mo'.

Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>

2002-02-28 00:51 dan

* MANIFEST: Add missing files

Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>

2002-02-28 00:49 dan

* docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
CVS seems to have several chunks missing out of it, too. This
patch is simply an administrative patch, with the differences
between my last version, and the one currently in there. There
will be a forthcoming patch for some minor tweaking to the PDD, but
I wanted a common baseline before I make any (potential) semantic
changes.

There's only one semi-major change, which noone needs to worry
about just yet. That's a change from PDD Format 1 to PDD Format
6.0 - rationale can be found under 'Standard (Version #)' of the
STANDARDS TRACK infomation. Don't worry about this yet, because it
should be 6.0.0, and we need to discuss Perl versus Parrot with
PDDs.

Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>

2002-02-28 00:27 dan

* packfile.c, resources.c, examples/assembly/life.pasm,
include/parrot/register.h, include/parrot/resources.h,
include/parrot/string.h: First pass of semi-full GC. (Strings only,
no PMCs yet)

This patch now implements a real copying collector. We trace from
our root set and compact the contents of Buffer structs.

Todo:

*) It's very STRING-centric and doesn't handle memory stuffed in
Buffers. But, then, we don't have pool allocation for Buffers
either, and we need to have that soonish for this to work.

*) Doesn't trace PMCs, so if you trigger a collection and there's
memory or STRING structs only accessible from PMCs, you'll fail
horribly. That needs fixing too

*) Better algorithms for when to trace or collect vs when to just
go allocate more memory from the system. Should probably be more
cache friendly too.

2002-02-27 21:04 dan

* jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
examples/assembly/life.pasm, include/parrot/resources.h,
include/parrot/string.h, include/parrot/string_funcs.h,
jit/i386/core.jit: Start of GC in

2002-02-26 16:41 dan

* jit/i386/string.jit: Fix a typo

Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>

2002-02-26 16:37 dan

* interpreter.c: Fix solaris test failures

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-26 16:36 dan

* include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
unicode.h, warnings.h: Fixes various warts in header files, such
as: * macros -added parens to prevent problems with operator
precedence -removed ; at end * removed SSIZE_MAX, since ssize_t
is no longer used * added some more INLINE definitions for MSVC and
C99 compilers

Courtesy of Brian Lee Ray <blray@ualr.edu>

2002-02-26 16:20 dan

* Configure.pl: Turns out we were using a warning flag which
doesn't exist on 2.7. Simple tweak though:

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-25 22:58 dan

* MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC

2002-02-25 17:36 dan

* include/parrot/pmc.h: Fix the bits

2002-02-23 21:57 dan

* include/parrot/resources.h: Another 1.5% never hurts

2002-02-23 21:44 dan

* global_setup.c, memory.c, resources.c, string.c,
include/parrot/resources.h: Allocate STRING headers from an arena
with freelist rather than with the system malloc. First step in a
good (or even a bad) GC system.

2002-02-23 20:37 brentdax

* misc.c: lint has been doing Evil and Wrong things to misc.c.

2002-02-22 14:59 ajgough

* types/bignum.c: BN_multiply split into BN_multiply and
BN_imultiply, the internal version to be used by idivide so that
rounding isn't performed during intermediate stages of division.

following test scripts now all pass: divide divideint add multiply
subtract remainder compare rounding plus minus (these are all the
operations currently implemented, rescale and power must still be
written, so don't pass right now).

2002-02-22 13:13 ajgough

* types/bignum_atest.pl: Test harness modified to understand
comments better, and be able to run unary (and rounding) tests.
Currently a few rounding tests fail, which are being investigated.

2002-02-22 01:41 dan

* key.c: Although there's more work being done on the key stuff and
this isn't the final fix, applying this patch does get parrot to
build with two more compilers, so it's probably worthwhile.

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-22 00:53 dan

* config_h.in, misc.c, include/parrot/embed.h,
include/parrot/exceptions.h, include/parrot/interpreter.h,
include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
include/parrot/resources.h, include/parrot/rx.h,
include/parrot/string.h, include/parrot/unicode.h,
include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
io/io_win32.c: Fixes the following (lcc) warnings:

- interpreter.c:470: warning: expression with no effect elided
(related to the way warnings flags were defined)

- misc.c:352: warning: unreachable code
misc.c:483: warning: unreachable code
(i introduced these with some overzealous de-linting)

- numerous warnings like this:
io/io_unix.c:383: warning: conversion from pointer to void' to
pointer to
pointer to struct _ParrotIO function(pointer to struct
Parrot_Interp,pointer
to struct _ParrotIOLayer,pointer to const char,pointer to const
char,pointer
to pointer to void)' is compiler dependent

Fixes the following nits: - remove bad indenting (tabs) in the
includes

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-21 21:12 ajgough

* types/: bignum.c, bignum.h: These might look like massive
changes, but really it's just he imposition of coding standards.
The file still isn't entirely compliant, but is now much more so.

Also changed:

o a few more comments
o BN_compare uses internal BN_comp to compare
o lost_digits behaviour is now correct (test harness modified to
test
this).

All binary functions now pass all the tests in the basic standard.
Unary functions not yet tested, will be soon.

2002-02-21 18:20 dan

* lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
was no longer needed, and the ssize_t thing really shouldn't be
needed either.

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-21 18:15 dan

* Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
include/parrot/parrot.h: this patch adds support for the freely
available borland c++ 5.5.1 compiler

depends on: - josh's patch to remove ssize_t from CPrederef.pm -
working borland compiler (compiler must know where to find headers
and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
cc='cl.exe' - a working make utility (borland make doesn't work,
nmake does)

changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
hints/mswin32.pl - remove a space from Configure.pl (very very
important for bcc) - add a O_BINARY flag to open() in pdump.c,
embed.c (required by bcc) - define O_BINARY 0 when it's not defined
(win32 knows it, linux not)

and the why: - parrot is MUCH faster when compiled with borland c
(make test on p2-450, 320MB): * msvc++: 313 seconds * bcc: 251
seconds

Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>

2002-02-21 18:09 dan

* jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
cuddled elses, as required by PDD 7.

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-21 18:04 dan

* MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
a new Makefile target called "check_source". This target scans all
the .c and .h files in the directory and checks for conformance to
a number of the standards outlined in PDD 7.

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-21 16:38 ajgough

* types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
allow arithmetic with numbers with a fixed fractional part, buffer
structures now more ready to be integrated into the parrot memory
allocation game, test harness modified to allow lost_digits
condition to be checked. Some more comments.

2002-02-21 15:53 simon

* io/io_unix.c:
Fix typo

Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>

2002-02-20 16:41 dan

* MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD

2002-02-18 18:25 dan

* MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-18 18:21 dan

* lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
CPrederef.pm to make to generated code compile with the MS
compiler.

fixes: - ms compiler allows inline only for c++, for c there's
__inline - ms header files knows nothing about ssize_t

Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>

2002-02-18 17:49 dan

* MANIFEST: Add the PDDs

2002-02-18 17:47 dan

* docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
coding standards PDD.

2002-02-18 17:40 dan

* docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev

2002-02-18 12:41 gregor

* test_main.c:
Remove warning about exit() not being declared.

2002-02-18 08:29 simon

* misc.c, warnings.c, include/parrot/misc.h,
include/parrot/warnings.h:
This patch adds some missing const's to silence a number of gcc
warnings.

Courtesy of: Josh Wilmes <josh@hitchhiker.org>

2002-02-18 08:26 simon

* Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
include/parrot/parrot.h, include/parrot/rx.h,
include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
lib/Parrot/OpTrans/CPrederef.pm:
- add makefile target and script to test for external libc
dependencies
- fix return values in hash and array PMCs (returning 0 in a
void func)
- remove unnecessary data pointer <=> function pointer
conversions
outside of the JIT code.
- move the definition of the "INLINE" macro out of the rx header
and make
available for general use on C++ compilers and gcc.
- remove a few unused variables

Courtesy of: Josh Wilmes <josh@hitchhiker.org>

2002-02-17 16:29 simon

* docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
We're organised and responsible. Honest.

2002-02-17 02:46 sfink

* Makefile.in: Remove $^ for nmake compatibility.

2002-02-16 09:20 brentdax

* config_h.in, test_main.c, include/parrot/chartype.h,
include/parrot/embed.h, include/parrot/encoding.h,
include/parrot/string.h, include/parrot/string_funcs.h: Better
embedding exposure and hiding, part 1.

2002-02-16 04:38 dan

* Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
Anyway, here's a patch to repair pbc2c.pl, combined with removing
typecasts in various places throughout the code. It probably won't
work for Windows yet. The libparrot.a target might need to be
modified to at least prevent it from confusing make on Windows; I
don't know.

Preliminary instructions for using pbc2c.pl are in
docs/running.pod. I'll try to do better later.

Courtesy of Steve Fink <steve@fink.com>

2002-02-16 04:15 dan

* exceptions.c, include/parrot/exceptions.h: Warnings cleaned up

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-16 00:03 simon

* classes/: perlarray.pmc, perlhash.pmc:

pmc is already defined!

2002-02-15 23:20 brentdax

* Configure.pl, config_h.in, exceptions.c, pmc.c,
include/parrot/exceptions.h: Far more informative panic messages.

2002-02-15 03:24 dan

* lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
much more extensive patch that fixes it to work properly, and
deletes a bazillion casts as well. It also points to the question
"can we make the byte_code be an opcode_t* already?"

Oh, and it makes some of the formatting prettier, so it's gotta be
good.

Courtesy of * Steve Fink <steve@fink.com>

2002-02-15 02:30 dan

* Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
stacks.c: I've tweaked the "lint" target somewhat and fixed a few
of the things it finds. Attaching the patch as well as the current
lint output.

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-15 01:59 dan

* t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
moment.

2002-02-15 01:48 dan

* t/pmc/perlarray.t: Skip tests for features that need twiddling

2002-02-15 01:40 dan

* t/op/rx.t: Skip a test that's waiting for us to rejig some array
things

2002-02-14 23:30 dan

* resources.c: Added comment for buffer tag routine. D'oh!

2002-02-14 23:28 dan

* resources.c, include/parrot/resources.h: Added buffer mark
routine for GC

2002-02-14 23:17 dan

* memory.c, classes/array.pmc, classes/perlarray.pmc,
include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
Rejigged memory system a bit. Now should be ready for the horror
that is garbage collection.

2002-02-14 19:33 gregor

* ops2c.pl, include/parrot/oplib.h:
Added code to automatically generate a function within an oplib to
lookup opinfos given the op name. This will come in handy in future
when we want to twiddle opcode tables at run time and possibly at
startup time.

2002-02-14 19:25 gregor

* examples/assembly/queens.pasm:
Regenerated queens.pasm from queens.jako since the clone_* stuff
went away.

2002-02-14 17:12 dan

* resources.c, include/parrot/resources.h: Finished up the
interface for memory and tracked interpreter thingies.

2002-02-14 16:53 dan

* memory.c, include/parrot/memory.h: intercept free and realloc

2002-02-14 05:53 dan

* interpreter.c, runops_cores.c: The type changes in struct
Packfile break the pointer math used in a few places to calculate
the address of the end of the loaded byte code. This causes
segfaults in build_asm in jit.c when using -j. It also breaks the
bounds checking on opcode address in runops_slow_core.

The patch adds the necessary cast to correct the code_end
calculations.

Courtesy of Jason Gloudon <perl@gloudon.com>

2002-02-14 01:01 ajgough

* types/: bignum.c, bignum.h, bignum_test.pl: Added support for
BigInt operations (I think), tests for normal operation continue to
pass. Also a shed load of comments.

2002-02-13 01:34 ajgough

* types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
is a (mostly) working bignumber library. There remains much work
to do though, some functions are not yet implemented and headers
need to find their way to the correct place RSN. Also support for
bigints and a sensible error reporting mechanism are needed.

2002-02-12 18:51 dan

* misc.c: Fix some warnings

2002-02-12 17:10 dan

* misc.c: Run through indent -kr -nce so I can read it

2002-02-12 16:49 dan

* misc.c: Need standard header/footer comments

2002-02-11 20:32 simon

* classes/array.pmc:
get and set pmc methods.

2002-02-11 20:19 simon

* classes/array.pmc:
Maybe the keys aren't integer...

2002-02-11 20:03 simon

* core.ops, vtable.tbl, classes/default.pmc:
{g,s}et_pmc_keyed

2002-02-11 19:07 simon

* vtable.tbl, classes/default.pmc:
Add set_pmc. Usee with caution.

2002-02-11 18:20 dan

* classes/: array.pmc, perlarray.pmc: Patch array classes to
compile

2002-02-11 17:59 simon

* core.ops, embed.c, global_setup.c, key.c, rx.ops,
classes/perlarray.pmc, classes/perlhash.pmc:
Make it compile.

2002-02-11 17:57 simon

* packfile.c, include/parrot/packfile.h:
Reduce warnings

Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2002-02-11 17:55 dan

* docs/parrot_assembly.pod: Document some key ops

2002-02-11 09:20 brentdax

* pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
disgustingly easy.

2002-02-11 00:34 simon

* core.ops, include/parrot/exceptions.h:
This is what keyed set ops look like. Remember, however, that for
keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
obviously ambiguous that you ought to use the 4-arg version
instead.

2002-02-10 23:12 jgoff

* classes/: array.pmc, perlarray.pmc: Properly allocate
SELF->data's array of PMC* data in array and perlarray.pmc. This
isn't tested yet, but should be fairly straightforward. PerlHash
needs to be finished before the system will compile again, and that
should be done in the next few days.

2002-02-09 04:46 jgoff

* classes/: array.pmc, default.pmc, intqueue.pmc,
parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
Added basic _keyed member functions. Unfortunately this still
doesn't fix the problems that are causing the build to break. It's
a start though. I'm not implementing the PMC add functions just
yet.

2002-02-08 15:59 simon

* classes/array.pmc:
Some more work on getting the array stuff up to date.

2002-02-08 12:23 simon

* classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
lib/Parrot/Vtable.pm:
Got array->get_integer_keyed doing what I think it ought to. One
down, all the rest to go.

2002-02-08 11:47 simon

* vtable.tbl:
Although I didn't intend it to be quite that broken...

2002-02-08 11:42 simon

* vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
Completely break Parrot, but at least we get the key stuff right
for now.

2002-02-08 06:25 dan

* hints/darwin.pl: Silences the warning about passing in
-flat_namespace to the compile. That's a link-only flag.

2002-02-08 04:52 jgoff

* classes/: array.pmc, default.pmc, intqueue.pmc,
parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
return values in *.pmc, added some missing casts to the repeat_foo
members, and deleted the _index members from the perlscalar
classes. Basic cleanup, and getting ready for _keyed functions.

2002-02-07 04:49 mrjoltcola

* examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
added a nested subroutine call.

2002-02-07 04:32 jgoff

* vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
changes in order to give the whitespace rules a little workout, and
do a little bit more testing. No actual structural changes were
made. lib/Parrot/Vtable.pm got an interface change, and more
importantly should be ready to support the new '_keyed' attribute,
which will work roughly thus: PMC* src_value gets remapped to 'PMC*
src_value' followed by 'KEY* src_key'. This will be how the new
_keyed operators will function, and those should be written within
a few days.

2002-02-06 18:00 doughera

* misc.c: Change C++-style comments to C comments (again). Remove
unused perl5 code that was in #if 0/#endif.

2002-02-06 17:59 doughera

* warnings.c: Add trailing newline.

2002-02-06 04:14 mrjoltcola

* include/parrot/io.h, io/io.c: Minor cleanup.

2002-02-06 03:11 mrjoltcola

* examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
couple of loose end in win32 IO stuff. Open behaves now but needs
more work.

2002-02-05 21:02 brentdax

* classes/pmc2c.pl: Length on whoami init was always 7--a problem
which showed up in Purify builds.

2002-02-05 17:15 simon

* misc.c:
Warning fixes.

Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>

2002-02-05 17:08 doughera

* misc.c: Avoid C++-style comments.

2002-02-05 17:07 doughera

* lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
not valid assembler for Sun's /usr/ccs/bin/as. Now they are,
thanks to Jason Gloudon <perl@gloudon.com>.

2002-02-05 14:04 simon

* misc.c:
Make the problem different, perhaps even better.

2002-02-05 13:49 simon

* misc.c:
Possibly fix a `short int' is promoted to `int' when passed through
`...' scary error, possibly make things absolutely worse.

2002-02-05 13:15 simon

* Configure.pl:
Placate Tru64.

2002-02-05 13:12 simon

* warnings.c:
Not going to get far without this one...

2002-02-05 11:41 simon

* string.c:
Don't barf when handed null pointers.

2002-02-05 10:04 simon

* misc.c, include/parrot/misc.h:
Fix some trivial bugs in warnings code.

2002-02-05 09:27 simon

* misc.c:
Oops, forgot this one; also added %P support.

2002-02-05 09:20 simon

* MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
include/parrot/interpreter.h, include/parrot/misc.h,
include/parrot/parrot.h, include/parrot/warnings.h:
Warnings support.

Courtesy of: Brent Dax <brentdax@cpan.org>

2002-02-05 05:41 jgoff

* vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
format of vtable.tbl to get rid of the tab-dependence. The format
now looks roughly like this:

init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
assumed here, but note the C-like prototyping. Also had to disable
one test that depended upon 'concat_p_p_s', which isn't necessary
anyway.

Vtable.pm will change again when the type '_keyed' is added,
because that requires remapping parameters slightly differently
again. Also, note that it assumes 'value' is the first parameter
in the list. This assumption will go away at the same time.

2002-02-04 16:57 ajgough

* core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
functions. Thanks to Simon Glover.

2002-02-04 02:47 ajgough

* hints/os2.pl: Removes a flag from the os/2 hints file that isn't
needed. I suspect that the entire hints file isn't really needed,
but there's no one to actually tell us this.

2002-02-02 15:45 ask

* docs/ParrotFAQ.htm: fix internal links

2002-02-02 04:06 jgoff

* classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
Moving the internal KEY structure from the cache.struct_val member,
where it doesn't really belong, to the internal SELF->data member.
This frees up the cache/type members for other usage.

This is the first step in moving PMCs to the point where we can do
multidimensional PMC handles. The next step is to change the
assembler to accept the syntax of 'set P0["foo"],7'.

2002-02-02 00:13 nicholas

* include/parrot/global_setup.h: Patch from Jonathan Stowe to
prototype Parrot_Array_class_init

2002-02-02 00:13 nicholas

* embed.c: Casts to tidy up warnings from Jonathan Stowe Change
time to sum_time to avoid warning on FreeBSD about tracking a
global [No, this warning does not appear on Linux. Yes, it is real
:-)]

2002-02-01 23:02 nicholas

* embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
Glover

2002-02-01 20:20 nicholas

* t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)

2002-02-01 18:20 nicholas

* lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
you

2002-02-01 13:22 nicholas

* MANIFEST: Add docs/embed.pod and t/op/ifunless.t

2002-02-01 12:19 simon

* core.ops, t/op/ifunless.t, t/op/integer.t:
Added "unless" op.

2002-02-01 12:11 simon

* lib/Parrot/Test.pm:
Remove a warning.

2002-02-01 01:38 nicholas

* MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
and a manitest target to Makefile.in that lets one test the
manifest.

2002-02-01 00:03 dan

* core.ops, global_setup.c, include/parrot/pmc.h: More setup for
PMC dynaloading

2002-01-31 21:46 gregor

* Configure.pl, Makefile.in, hints/mswin32.pl:
A few more things are now configable, so we are closer to win32
shared library builds. Not there yet, but closer.

2002-01-31 21:00 dan

* global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
include/parrot/pmc.h: First step in dynamically loading PMC classes

2002-01-31 19:38 dan

* Makefile.in: Dependencies in the Makefile are currently too broad
brush. I don't enjoy waiting for everything to recompile every
time I try to tweak the jit. The only file that #includes
jit_struct.h is jit.c, so I feel that the Makefile dependencies
should reflect this, and not cause a gratuitous recompile of
everything. There are probably other auto-generated header files
that world+dog should not depend on.

Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-31 19:03 gregor

* Makefile.in, lib/Parrot/Test.pm, t/harness:
Added two new make targets:

* testp: Like 'make test', but passes -P to t/harness, so you get
to
see how broken predereferencing is.

* testj: Like 'make test', but passes -j to t/harness, so you get
to
see how broken JIT is.

Now, anyone who wants to see how good all three ways of running are
can do so, at the cost of about 3x the time.

2002-01-31 17:09 brentdax

* embed.c, test_main.c: Implement the ARGV-in-P0 thing.

2002-01-31 03:41 grunblatt

* docs/jit.pod: Update jit.pod

2002-01-31 03:20 grunblatt

* jit/i386/core.jit: Hold this until we get an assemble tool,
because of the different objdump problems.

2002-01-31 03:13 grunblatt

* Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump. Courtesy
of: Jason Gloudon <perl@gloudon.com>

2002-01-31 02:22 grunblatt

* jit/i386/core.jit: Continue if the register is null

2002-01-30 23:50 grunblatt

* lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
sun4Generic.pm: Move the AS and OBJDUMP constants to each os
specific file.

2002-01-30 23:35 mrjoltcola

* io/io_win32.c: Change implementation of isatty on win32,
suggested by Hong Zhang.

2002-01-30 23:19 sfink

* jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
Op::may_jump boolean method.

Replaced jit2h's hardcoded pattern match to decide what ops might
change the control flow.

2002-01-30 22:13 dan

* Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
parrot to mostly-build with tcc. It allows one to skip compiling
the JIT stuff (by specifying --define jitcapable=0), and it
introduces a test program which gives a friendlier error in this
case for compilers which are as picky as tcc is about function
pointer conversion.

If anyone figures out the proper way to cast these function
pointers this may not be necessary.

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-01-30 20:54 dan

* docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
Here's an update to docs/running.pod to better reflect the current
state (both the test_parrot and assemble.pl improvements, plus
documentation of a few more things.) And also a speling fiks
s/POST_MORTERM/POST_MORTEM/.

I could also replace some "perl foo" calls with "./foo" if someone
wanted to set the executable flag in CVS on assemble.pl,
optimize.pl, etc.

Courtesy of Steve Fink <steve@fink.com>

2002-01-30 20:43 dan

* core.ops: find_global doesn't work, so stub out the wrong code

2002-01-30 19:08 dan

* lib/Parrot/Assembler.pm: fixes the POD in Parrot::Assembler so
that perldoc
can read it and just tidies it up generally. It also adds
documentation
for the constantize_integer and constantize_number functions.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-30 18:02 dan

* assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
classes/genclass.pl, classes/pmc2c.pl,
languages/scheme/Scheme/Test.pm: Many of the Perl scripts in the
distribution (including assemble.pl !)
can no longer find the Parrot::* modules. Enclosed patch fixes
(although
it would be nice if there were an easier way to do this).

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-30 16:00 mrjoltcola

* io/io_win32.c: Correct function calls for win32_fdopen and arg
types.

2002-01-30 15:50 mrjoltcola

* io/io_unix.c: Minor bug fix for fdopen flag arg type.

2002-01-30 15:42 grunblatt

* pbc2c.pl, examples/assembly/Makefile: Updates related to moving
files around

2002-01-30 15:38 grunblatt

* MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
the manifest, and also puts it back into alphabetical order.

Courtesy of: Simon Glover <scog@roe.ac.uk>

2002-01-30 14:41 nicholas

* embed.c: Patch from Simon Glover to clean up warnings where
prototype is () not (void)

2002-01-30 13:54 nicholas

* include/parrot/embed.h, test_main.c: Add void as an explicit
parameter in test_main.c's usage(), version(void) and embed.h's
Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
warning: function declaration isn't a prototype

2002-01-30 12:08 simon

* lib/Parrot/.cvsignore:
Ignore generated Perl modules.

2002-01-30 12:07 simon

* t/harness:
Run the PMC tests as well.

2002-01-30 12:04 simon

* MANIFEST:
Fix MANIFEST after recent t/pmc rejig.

2002-01-30 11:42 simon

* lib/Parrot/Test.pm:
Report non-zero exit codes.

Courtesy of: Michael G Schwern <schwern@pobox.com>

2002-01-30 11:39 simon

* t/op/rx.t:
Skip final test, TODO doesn't work yet.

2002-01-30 09:54 brentdax

* docs/embed.pod: Leon Brocard was kind enough to explain to me how
predereferencing works.

2002-01-30 09:38 brentdax

* docs/: embed.pod, parrot.pod: Document this newfangled embedding
subsystem.

2002-01-30 09:37 brentdax

* include/parrot/embed.h: Fix a mistake, clear up a warning.

2002-01-30 09:37 brentdax

* config_h.in: Expose another flag for embedders.

2002-01-30 05:07 jgoff

* make_vtable_ops.pl, t/harness: Both files didn't know of the new
location for Parrot/, and t/harness wasn't able to run the new
op/pmc tests. Both problems fixed, so I think I'm going to declare
the build suitable for public consumption.

2002-01-30 04:34 robert

* docs/Makefile.in: update for CVS movement

2002-01-30 04:32 robert

* Makefile.in: Adjust for CVS reorganization. (This time, edit the
.in file, not the real Makefile)

2002-01-30 04:20 robert

* Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
related to moving files around

2002-01-30 04:10 robert

* MANIFEST: Update MANIFEST to reflect CVS reorg.

2002-01-30 04:07 robert

* Configure.pl: Add './lib' to our @INC because Parrot/* moved.

2002-01-30 03:56 robert

* Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
lib/Parrot/

2002-01-30 03:46 robert

* languages/miniperl/miniperlc: renamed to mpc

2002-01-30 03:45 robert

* t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
pmc_perlstring.t: Moved to t/op/pmc/

2002-01-30 03:40 robert

* include/parrot/register_funcs.h: Renamed to regfuncs.h

2002-01-30 03:14 jgoff

* classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
Fixed some problems with PerlArray and added tests. Previously,
only integers could be accessed by negative indices. After this
change, all basic types can be accessed by negative indices, and
they can also be set at negative indices.

2002-01-29 22:13 brentdax

* TODO: Just look at the stupid diff.

2002-01-29 21:53 simon

* TODO, docs/vtables.pod:
New TODO, and tiny addition to vtables.pod

2002-01-29 21:47 mrjoltcola

* include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.

2002-01-29 21:38 mrjoltcola

* Makefile.in: Makefile.in tweak for io depend.

2002-01-29 21:15 brentdax

* embed.c: Fix a segfault and some profiling formatting nits.

2002-01-29 20:54 brentdax

* pmc.c: Oops.

2002-01-29 20:50 brentdax

* pmc.c, include/parrot/exceptions.h: Exceptions are better than
segfaults.

2002-01-29 20:17 mrjoltcola

* interpreter.c, core.ops, io.ops: CVS missed this.

2002-01-29 20:17 mrjoltcola

* io/io.c: These should have gone in Sunday with the rest. CVS is
out to get me.

2002-01-29 18:39 brentdax

* platforms/win32.h: Fix Win32 whoops.

2002-01-29 18:29 brentdax

* embed.c, include/parrot/embed.h: A couple minor embedding fixes.

2002-01-29 17:51 simon

* MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
include/parrot/embed.h, include/parrot/parrot.h:
Embedding support. Cool.

Courtesy of: <brentdax@cpan.org>

2002-01-29 15:40 grunblatt

* Configure.pl: Detect if we can use "objdump". Courtesy of: Jason
Gloudon <perl@gloudon.com>

2002-01-29 14:42 simon

* include/parrot/parrot.h:
Platform stuff has to be included *after* system headers.

2002-01-29 14:05 grunblatt

* interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
support for SPARC. Courtesy of: Jason Gloudon <perl@gloudon.com>

2002-01-29 10:56 simon

* platforms/generic.h:
If we don't have a S_ISREG, produce something close to it.

2002-01-29 06:01 dan

* MANIFEST, README, LICENSES/Artistic: Finally added licenses

2002-01-29 04:38 jgoff

* classes/array.pmc: Forgot to remove some C++-isms from the
get_{foo}_index routines.

2002-01-29 04:26 jgoff

* MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
t/pmc/array.t: Added array class that languages other than perl can
use for a basis. It has no features like preextension, and the
array index starts at 0.

MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
and classes/Makefile.in - Added array.pmc to the makefile.
(Assuming rules like .pmc.o are portable (or even possible) I might
alter classes/Makefile.in to autobuild the appropriate files.

2002-01-29 02:32 dan

* MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
Update to Test::More 0.41 which adds Test::Builder

Delete the vestigal Test::Utils

Change Parrot::Test so it uses Test::Builder instead of Evil
Wrappers
around Test::More

output_* now returns whether the test passes or fails

Parrot::Test no longer exports Test::More's functions. Instead
they
can simply be used together. The few tests which used
Test::More
features (ie. skip) have 'use Test::More' added.

I ditched the export_to_level() crutch. Do we expect parrot to
work on
5.004? (literally 5.004, not 5.004_04)

Courtesy of Michael G Schwern <schwern@pobox.com>

2002-01-28 21:04 dan

* docs/overview.pod: There is no opcodes.pod; I'm assuming the
pointer should actually be to
parrot_assembly.pod, as the canonical documentation.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-28 20:21 dan

* languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
clone[inps]

2002-01-28 19:18 dan

* core.ops, register.c: clone[insp] is dead

2002-01-28 17:46 grunblatt

* Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
jit/i386/core.jit: Fix to make the jit work in linux yet again.

2002-01-28 16:45 dan

* MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
the requirement for fink at the moment.

2002-01-28 15:59 simon

* test_main.c:
People might try and run a directory file, with spectacular
results. We don't want that. No.

2002-01-28 14:58 doughera

* core.ops: Avoid C++-style comments.

2002-01-28 14:16 grunblatt

* jit.c, io/io.c: Changed jit.c to fit the way registers are
accessed. Readded the pio_(stdin|stdout|stderr) to make builds
work again.

2002-01-28 13:47 doughera

* include/parrot/register.h: Avoid C++-style comment.

2002-01-28 06:03 dan

* MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
docs/parrot_assembly.pod, include/parrot/interpreter.h,
include/parrot/parrot.h, include/parrot/regfuncs.h,
include/parrot/register.h, include/parrot/register_funcs.h,
include/parrot/string.h, include/parrot/string_funcs.h: Registers
are now stored in the interpreter structure itself, rather than
just a pointer to the top of the register structure. Pushes and
pops now involve memcpys, but register access has one fewer
dereference.

Fails four of the register stack tests, though, so not perfect.
Needs fixing, but this is a good place to start.

2002-01-28 04:40 mrjoltcola

* test_main.c: cvs commit missed this. ??

2002-01-28 04:27 mrjoltcola

* examples/assembly/io1.pasm, include/parrot/exceptions.h,
include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
interpreter now (at least in theory). IO handle array added. Misc
bug fixes in layer handling. Changed any IO_ constants to PIO_ so
we don't conflict with system libraries. Still have broken
stuff in win32 and stdio layer.

2002-01-28 04:01 mrjoltcola

* include/parrot/chartype.h: Typo in chartype.h include guard.

2002-01-28 03:41 mrjoltcola

* t/op/interp.t: Fix flag for interp so we don't get "info"
messages which break tests.

2002-01-28 01:54 dan

* include/parrot/string.h: A few more buffer/string flags

2002-01-27 11:33 nicholas

* chartypes/unicode.c: Cast unsigned argument to int in call to
isdigit to silence gcc warning.

2002-01-26 23:18 grunblatt

* Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
off that flag.

2002-01-26 23:17 grunblatt

* Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
jit/i386/core.jit: [no log message]

2002-01-26 22:18 simon

* jit/i386/core.jit:
Jumping to 0x0 is a recipe for segfaults.

2002-01-26 18:35 simon

* t/harness:
Allow user to select which tests to harness

Courtesy of: Nicholas Clark <nick@unfortu.net>

2002-01-26 17:20 grunblatt

* Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
to make the jit work in linux again.

2002-01-26 16:52 dan

* Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
headers can't cope with this. Darwin-only

2002-01-26 16:04 dan

* include/parrot/parrot.h: Quick note to remind folks that this
isn't the file they're looking for if they're writing extensions or
embedding parrot.

Courtesy of Andy Dougherty <doughera@lafayette.edu>

2002-01-26 00:41 mrjoltcola

* MANIFEST: Oopsy.

2002-01-26 00:37 mrjoltcola

* docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
Turoff

2002-01-25 01:31 grunblatt

* jit/alpha/core.jit: There is no neg or fneg.

2002-01-25 01:27 grunblatt

* core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
t/op/number.t: Added Parrot_neg. Erase t.s

2002-01-24 23:26 dan

* interpreter.c: Best make sure unused elements are NULL

2002-01-24 23:24 dan

* interpreter.c: Fix stupid thinko

2002-01-24 18:37 doughera

* Makefile.in: Add a few missing dollar signs in the lifetest
section so that ${exe} and the like get properly interpolated.

2002-01-24 18:15 mrjoltcola

* docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
for io.ops file. Add reference to it in parrot.pod. Courtesy of
Simon Glover <scog@roe.ac.uk>

2002-01-24 06:43 mrjoltcola

* io/io_stdio.c: Oops.

2002-01-24 06:34 mrjoltcola

* include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
of work on the buffering layer. Decided to use shared read/write
buffer (as do most implementations) for now since its the simplest
way to keep everything synced, (flush on seeks, flush read on
writes, etc.)

2002-01-24 03:38 mrjoltcola

* test_main.c: Cleaned up option handling code a bit for main().

2002-01-23 23:22 dan

* interpreter.c, include/parrot/interpreter.h,
include/parrot/resources.h: Now each interpreter gets its own hash
for globals.

2002-01-23 20:45 dan

* Configure.pl: Fix a warning when there's no - in an architecture

2002-01-22 23:57 grunblatt

* docs/running.pod: [no log message]

2002-01-22 20:29 doughera

* KNOWN_ISSUES: long doubles don't work on SPARC either. It
appears to be a generic problem (if sizeof(long double) >
sizeof(double)), not an x86-specific one.

2002-01-22 16:57 doughera

* runops_cores.c: Change variable name from time to starttime to
avoid gcc warning about variable name shadowing.

2002-01-22 16:55 doughera

* classes/pmc2c.pl: Include class_init prototype too.

2002-01-22 16:01 doughera

* MANIFEST: [no log message]

2002-01-22 01:04 ajgough

* global_setup.c, classes/default.pmc, classes/intqueue.pmc,
classes/parrotpointer.pmc, classes/perlarray.pmc,
classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
include/parrot/global_setup.h: Patch from Nick Clark to quieten
warnings from pmc files. Message-ID:
<20020121224719.GE1726@Bagpuss.unfortu.net>

2002-01-22 00:53 ajgough

* test_main.c: Clears up a couple of warnings in test_main.c.
Thanks to Nick Clark. Message-ID:
<20020121190457.GB1726@Bagpuss.unfortu.net>

2002-01-22 00:47 ajgough

* string.c, chartypes/unicode.c, chartypes/usascii.c,
include/parrot/chartype.h: Cause all codepoints to be treated as
UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
Nick Clark, see also: Message-ID:
<20020121214137.GC2371@Bagpuss.unfortu.net> )

2002-01-22 00:24 dan

* key.c: We do mandate an ANSI conformant C compiler, don't we?

Appended patch cures these warnings:

key.c: In function `debug_key': key.c:29: warning: int format,
INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
format, INTVAL arg (arg 4)

Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-21 12:41 mrjoltcola

* MANIFEST, io.ops: For some reason cvs commit didn't get this, may
be clock skew.

2002-01-21 06:37 mrjoltcola

* io/io.c: Cleanup a warning

2002-01-21 06:28 mrjoltcola

* examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
ops. Various other IO twiddlings.

2002-01-21 03:25 grunblatt

* Makefile.in: Use $jitcpuarch instead of $cpuarch. Thanks to
Melvin Smith for the catch up.

2002-01-20 23:13 sfink

* stacks.c: Fixed logic errors, need tests

2002-01-20 22:17 brentdax

* rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
prepare for /i to work.

2002-01-20 20:52 grunblatt

* Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
jit/alpha/string.jit:
- Added support for ALPHA, by now linux and bsd.

- Reduced jit2h.pl execution time by precompiling the call to the
unimplemented op.

- Reduced the duplicated code in Parrot/Jit/*.pm by adding
Parrot/Jit/${cpuarch}Generic.pm

- Changed the way to detect quads to what is written in "man
perlfunc".

2002-01-20 17:23 brentdax

* rx.ops: There's no such thing as rx_allocateinfo.

2002-01-19 08:26 brentdax

* pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.

2002-01-19 07:12 mrjoltcola

* MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
into io.ops, leave the STDIO wrappers in core.ops until they
disappear. Added debug op for switching on VM debug flag

2002-01-19 01:55 mrjoltcola

* include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls

2002-01-19 00:55 brentdax

* Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
include/parrot/rxstacks.h: Add regex-specific stacks for
efficiency.

2002-01-18 23:58 dan

* Configure.pl: I think the optimal fix here is simply to remove
-ansi -pedantic. -ansi may well have some uses, but even the gcc
man pages say "There is no reason to use this option [-pedantic];
it exists only to satisfy pedants."

Courtesy of Andy Dougherty <doughera@lafayette.edu>

2002-01-18 23:23 dan

* MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
docs/running.pod, which lists the various executables Parrot
currently includes, examples of running them, and mentions of where
they fail to work. It's more of a cry for help than a useful
reference. :-) I've been having trouble recently when making
changes in figuring out whether I broke anything, because any
non-default way of running the system seems to be already broken. I
can't tell what brokenness is expected and what isn't.

Courtesy of Steve Fink <steve@fink.com>

2002-01-15 22:13 brentdax

* include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
substring use and enhance performance.

2002-01-15 21:03 ajgough

* string.c: Fix problem with string_transcode, &dest not being
updated if src was already in desired encoding.

2002-01-15 16:54 brentdax

* rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
warnings. Leaves only one warning, at rx.ops line 409, that I
can't manage to get rid of.

2002-01-15 16:50 dan

* pbc2c.pl: Pointer arithmetic not quite right in the generated
code. Also patches pbc2c.pl to work with rx.ops.

Courtesy of Jason Gloudon <perl@gloudon.com>

2002-01-15 16:15 dan

* classes/Makefile.in: All the C files in classes/ weren't being
compiled with an of the gcc warnings flags. With this patch they
are, and there are an awful lot of warnings, more than I could hope
to understand and clear up (within any sensible time period before
submitting a rash of patches, by which time everyone else would
have moved the code on)

Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-15 16:10 dan

* core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
chartypes/usascii.c: This patch adds a few more macros for .ops
files to use. In addition to the existing

goto OFFSET(...)
goto ADDRESS(...)
goto POP()
goto NEXT()

it adds

expr OFFSET(...)
expr ADDRESS(...)
expr POP()
expr NEXT()

This is intended mainly for use in helper functions in .ops files,
but also for ops that need to eg push the address of the next
opcode onto a stack. The only place this currently happens (outside
of my private code) is in the bsr opcode, which previously
hardcoded the computation.

This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
higher in the generated file so that it can be used by static
functions in the preamble.

Finally, I ran into a parentheses matching problem -- should goto
OFFSET(...) rewrite \bgoto\s+OFFSET\((.*)\) or
\bgoto\s+OFFSET\((.*?)\)

It was done inconsistently for the different calculations, and of
course neither are correct because you really want matching
parentheses. But that seems like too much bother. (Currently,
there's only one place that uses anything other than $n in the
parentheses, and that's the enternative() op.) So I made them all
.*? but emulated recent POD by also allowing (( ... )) (that's two
parenthesis with a space padding the body.)

The generated core_ops.c and core_ops_prederef.c files after this
patch are identical except for the CUR_OPCODE and REL_PC macros
getting moved a little higher, and the bsr in the regular path (not
prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.

In summary, this is a big wad of meaningless changes for the
current code. But it will make adding some opcodes easier in the
future, and cleans up a small nit in the current bsr.

Courtesy of Steve Fink <steve@fink.com>

2002-01-15 08:48 brentdax

* include/parrot/rx.h: Bitmaps can now include chars >255 (well,
sort of).

2002-01-15 08:45 brentdax

* rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).

2002-01-15 05:00 brentdax

* rx.ops: Speed up rx_literal--roughly doubles benchmark
performance.

2002-01-14 20:18 dan

* vtable.tbl, vtable_h.pl: Clean up a zillion warnings

Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-14 20:03 dan

* Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
classes/parrotpointer.pmc, classes/perlarray.pmc,
classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
classes/perlstring.pmc, classes/perlundef.pmc,
encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
patch cleans up most of the MSVC-warnings when using warning level
4 (the highest, one above the default level 3). It turns off two
level-4 warnings for 'unreferenced formal parameter' and 'named
type definition in parentheses', the latter of which was turning up
warnings in MS VC headers. Level 4 warnings also helped me find a
couple of other lurking bugs in the parrot code.

Replaces the various fprintf/exit combos with calls to
internal_exception, which uses var_args to emulate printf. Various
exception types were added as well. These are probably temporary
until a real exception system arrives.

Fixed some places in the IO code where wrong functions were being
called, or put into the vtable.

Courtesy of "Michel Lambert" <mlambert@legendent.com>

2002-01-14 19:00 dan

* MANIFEST: D'oh! Forgot a file.

Courtesy of Andy Dougherty <doughera@lafayette.edu>

2002-01-14 18:44 brentdax

* rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
sense (and a few other enhancements to regexes).

2002-01-14 07:07 brentdax

* interpreter.c, runops_cores.c, test_main.c,
include/parrot/interpreter.h: Make profiling a little more useful.

2002-01-13 19:44 dan

* Configure.pl: Turn off unsed things warnings for now

2002-01-13 19:39 dan

* key.c, classes/perlarray.pmc: key.c: initialize KEY.keys

classes/perlarray.c: * get_string: is casting
SELF->cache.struct_val to a STRING*, while all other methods are
using it as a KEY*; don't know what a perlarray stringifies to,
so replacing with NULL * get_bool: the default behaviour does not
look right to me

Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>

2002-01-13 19:37 dan

* Makefile.in, classes/Makefile.in: Makefile.in: (Re)add ld_debug
flags to LDFLAGS, so that Configure.pl --debugging works with
MSVC

classes/Makefile.in make easier to add pmb2c.pl flags to all
pmc2c calls

Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>

2002-01-13 19:36 dan

* io/io_win32.c: according to my MSVC docs, you should use
_tcslen only after
#including tchar.h

Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>

2002-01-13 19:35 dan

* docs/intro.pod: Doc tweak.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-13 19:34 dan

* t/: op/pmc_perlstring.t, pmc/perlstring.t: Enclosed test checks
that

if Px, ...

works with PerlString PMCs; these should be false if they are "",
0, or
are undefined, and true in every other case.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-13 19:23 dan

* Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
NUMVAL_FMT to FLOATVAL_FMT.

Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-13 17:45 jgoff

* Makefile.in, global_setup.c, classes/Makefile.in,
classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
designing your own classes.

2002-01-13 08:47 simon

* interpreter.c, Parrot/OpTrans/CPrederef.pm,
lib/Parrot/OpTrans/CPrederef.pm:
Fix bsr in prederef mode.

Courtesy of: Jason Gloudon <perl@gloudon.com>

2002-01-12 15:33 dan

* interpreter.c, key.c, packfile.c, register.c, resources.c,
string.c, encodings/singlebyte.c, encodings/utf32.c,
include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
Silence most of the unused variable warnings.

Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-12 15:18 dan

* rx.ops: This patch fixes a warning and also changes an 'int' to
an 'INTVAL'. All tests should pass on Solaris.

Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-12 15:13 dan

* interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
examples/assembly/life.pasm, include/parrot/interpreter.h,
include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
io/io_win32.c: More IO work. (Plus some misc twiddles)

Courtesy of Melvin Smith <mrjoltcola@mindspring.com>

2002-01-12 01:14 dan

* include/parrot/string.h: fix a missing name

2002-01-12 00:39 grunblatt

* include/parrot/string.h: Few typos.

2002-01-12 00:16 grunblatt

* jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
that change the program control flow.

2002-01-11 23:53 brentdax

* classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
ParrotPointer's guts.

2002-01-11 23:03 dan

* include/parrot/string.h: flags for the buffers, for GC

2002-01-11 22:31 dan

* include/parrot/pmc.h: PMC flag docs. Those'd be good...

2002-01-11 22:21 dan

* include/parrot/pmc.h: Started with PMC flags

2002-01-11 19:33 dan

* config_h.in, memory.c, resources.c, string.c,
include/parrot/resources.h: Beginnings of a memory allocation/gc
system. Without the GC part.

2002-01-11 18:05 dan

* core.ops: Make sure constant pushes are right on mixed 32/64 bit
systems

Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-11 17:50 dan

* core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
a patch that makes pbc2c generated code work with the bsr opcode.
It creates a new opcode 'enternative', and uses this to support a
mixed model of interpretation and execution of compiled C code.

Courtesy of Jason Gloudon <perl@gloudon.com>

2002-01-11 17:48 dan

* Makefile.in: Add life as a potential .exe target

2002-01-11 17:30 dan

* include/parrot/resources.h: Start of arena stuff for GC

2002-01-11 05:34 brentdax

* rx.ops: Docs modifications.

2002-01-11 04:19 brentdax

* rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
regular expressions.

2002-01-11 03:44 grunblatt

* jit/i386/core.jit: off by one.

2002-01-11 02:25 dan

* Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark

Courtesy of Steve Fink <steve@fink.com>

2002-01-11 00:32 brentdax

* MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.

2002-01-10 23:22 ajgough

* string.c, docs/strings.pod: Removed all the nul termination code,
as this is in general a bad idea. Note added to docs/strings.pod
to warn people away from assuming termination.

2002-01-10 23:14 dan

* core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
testparrotsizes_c.in, include/parrot/interpreter.h,
include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
implementation

Courtesy of Steve Fink <steve@fink.com>

2002-01-10 22:48 dan

* core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
sizeof(INTVAL)

Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-10 22:46 dan

* key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
t/pmc/perlhash.t: Well, actually two bugs.

The first is an off-by-one error in key.c than can cause parrot
to segfault if hash % NUM_BUCKETS happens to be zero.

The other is a bug in the PerlHash init() code that causes new
PerlHash
PMCs to start with the wrong size.

Both fixed below; also tests to prevent them recurring.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-10 22:30 dan

* classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
t/pmc/perlarray.t: The enclosed patch allows one to use the if op
with a PerlArray,

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-10 21:31 dan

* examples/assembly/life.pasm: Tweaked to be a benchmarkable thing

2002-01-10 20:30 grunblatt

* jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
All the op codes that doesn't change the program control flow now
work in the JIT by calling the code generated by the compiler when
the op is not in core.jit TODO: * Make all the ops that change
the program control flow (and are not on core.jit) work. *
Remove the dispatch payload.

2002-01-10 17:13 dan

* classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
which tries to return 0 from a void function.

Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-10 17:12 dan

* t/op/macro.t: Skip tests, don't comment them out.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-10 17:10 dan

* rx.c: This fixes a couple of nits in rx.c:

1. There's no newline at the end, which makes gcc unhappy.
2. We should use NULL, not 0 or "", for creating null pointers.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-10 17:09 dan

* MANIFEST: Adds rx.t, removes duplicated rx.c and puts everything
back in
alphabetical order.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-10 16:54 ajgough

* resources.c: Made free_string check that there was a string to
free. In reponse to a bug spotted by Joshua Nye.

2002-01-09 22:44 dan

* global_setup.c: Forgot the setup

2002-01-09 22:35 dan

* rx.ops: Forgot this one

2002-01-09 22:35 dan

* MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
Tests don't work, though.

Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-09 21:48 dan

* t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that

2002-01-09 21:22 dan

* classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
Generic pointer holder class

Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-09 21:19 dan

* MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
patches.

2002-01-09 19:54 dan

* io/io_unix.c: Whoops. Forgot one

2002-01-09 19:43 dan

* key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
t/pmc/perlhash.t: Fix hash crash bugs

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-09 19:13 dan

* memory.c: Signedness whoops.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-09 18:23 dan

* MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
io/io_stdio.c, io/io_win32.c: Changes:

-Minor layer cleanups -Win32 layer added (mostly stubs for now) but
will be using the Win32 API and company rather than the unix-ish
fake ones. -stdin/stdout/stderr Win32 specific code added. Rather
than use 0,1,2, Microsoft says use GetStdHandle(), etc. so that
stuff is there. Soon we should be able to start using these
rather than fprintf(stderr, ...) and remove stdio linkage.

Courtesy of <mrjoltcola@mindspring.com>

2002-01-09 17:26 dan

* test_main.c: Fixes bad code gen on x86.

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-01-09 17:24 dan

* Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
classes/perlnum.pmc: This patch adds macros to the config.h file
for INTVAL and NUMVAL printf formats.

Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-08 22:55 ajgough

* docs/vtables.pod: Clarify what get_string should do.

2002-01-08 20:05 dan

* key.c: Keep comments in sync.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-08 19:50 dan

* memory.c, include/parrot/memory.h: Need a realloc

2002-01-08 17:24 gregor

* .cvsignore, Configure.pl, Makefile.in:
Added 'reconfig' make target and corresponding --reconfig option to
Configure.pl, so its very easy to re-run Configure.pl with the last
(command-line) options you passed it.

2002-01-08 16:33 dan

* core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
in core.ops. Potential help for optimizers and JITters.

Courtesy of gregor@linux1.kennedytech.com

2002-01-08 16:32 dan

* key.c: Grab key length from the right spot

Courtesy of "Peter Gibbs" <peter@emkel.co.za>

2002-01-08 13:27 ajgough

* test_main.c: Fix slight thinko in realloc usage for reading from
stdin.

2002-01-08 11:34 ajgough

* test_main.c: Allow test_parrot to read bytecode stream from
stdin, adds -f command line option, with "-f -" doing the stdin
stuff.

2002-01-08 06:34 jgoff

* key.c, include/parrot/key.h: key.c - Added simple implementation
of buckets. include/parrot/key.h - Added enum_key_bucket type

2002-01-08 03:21 jgoff

* include/parrot/key.h: Added an undef type to the key structure,
so we can delete keys without confusion.

2002-01-07 22:09 dan

* key.c, packfile.c, string.c, include/parrot/key.h,
include/parrot/packfile.h, include/parrot/string.h: Fix whines
about index being redefined

Courtesy of Nick Clark

2002-01-07 21:15 dan

* ops2pm.pl: Don't allow the same ops lib to be included twice.

Courtesy of Steve Fink <steve@fink.com>

2002-01-07 20:48 dan

* Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
failures

Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-07 20:43 dan

* docs/intro.pod: Missing a comma

Courtesy of "coral" <coral@eekeek.org>

2002-01-07 20:41 dan

* global_setup.c: Quiet a warning

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-07 18:58 gregor

* t/op/.cvsignore:
Ignore intermediate test files.

2002-01-07 17:01 gregor

* ops2c.pl:
Print a warning if an .ops file is mentioned more than once on the
command line.

2002-01-07 16:12 ajgough

* t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
these shouldn't fail.

2002-01-07 15:15 simon

* t/: op/pmc_perlhash.t, pmc/perlhash.t:
Stop segfaults.

2002-01-07 15:11 simon

* key.c:
Fix zero-termination bug in hash function.

2002-01-07 13:37 ajgough

* MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.

2002-01-07 11:53 brentdax

* Configure.pl: Fixes the + thing in prompts, plus adds a synonym
(:add{foo}) and a new deleting thing (:rem{foo})

2002-01-07 11:43 simon

* Configure.pl:
Gobble the + before concatenating.

2002-01-07 03:53 dan

* Makefile.in: Dependency fix for new ops setup.

2002-01-07 03:33 jgoff

* classes/perlarray.pmc: Add negative indices, and fix a small
allocation problem.

2002-01-06 23:54 ajgough

* hints/os2.pl: Makes the hints file take account of ldflags and
ccflags being split. This hints file is still very specific to
builds with gnu tools, but a proper solution can wait. Thanks to
Nick Burch.

2002-01-06 22:12 dan

* Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
-changes Parrot::OpLib::core's dependencies to reflect the new
selectable ops files -allows some of the special forms of 'goto'
inside the PREAMBLE of an opcode file

Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-06 19:59 simon

* Makefile.in:
*cough*

2002-01-06 18:19 dan

* classes/perlhash.pmc: Fix some type issues.

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-01-06 18:03 dan

* Configure.pl, Makefile.in: It adds a prompt to Configure asking
for a list of opcode files to use. The default is everything
available except for obscure.ops.

In addition, it makes it so that if your answer to a question
starts with '+', it will concatenate it to the default. For
example:

What C compiler do you want to use? [cl] +HAHAHA!!!

will result in $PConfig{cc} eq "cl HAHAHA!!!". While that example
is not terribly useful, it is quite useful with things like
command-line flags and the like.

Finally, it contains a couple tweaks so that my syntax-highlighting
editor recognizes some heredocs correctly. :^)

Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-06 17:59 dan

* KNOWN_ISSUES, MANIFEST, README: Doc Patches

Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-06 17:58 dan

* MANIFEST: We're missing a couple of files from the MANIFEST.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-06 17:57 dan

* ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: 1.
Compiler directives, etc. in files other than core.ops will now
work. 2. Compiler warnings will now display the file and line
number of the opcode file.

Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-06 17:52 dan

* languages/jako/jakoc: Fix breakage caused by iton/ntoi going away

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-06 17:36 dan

* docs/intro.pod: Lots of updates

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-06 02:34 gregor

* interpreter.c:
Add some internal documentation on the theory of operation of the
prederef code.

2002-01-06 02:17 gregor

* interpreter.c:
Removed unnecessary include.

2002-01-05 12:37 simon

* classes/.cvsignore:
Ignore generated .h files.

Courtesy of: Josh Wilmes <josh@hitchhiker.org>

2002-01-05 12:37 simon

* Configure.pl:
Make lcc happier by adding a dummy structure.

Courtesy of: Josh Wilmes <josh@hitchhiker.org>

2002-01-05 12:35 simon

* global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
Make perlundef work. (And coincidentally stop segfaults in the
tests :)

Courtesy of: Jason Gloudon <perl@gloudon.com>

2002-01-05 04:59 dan

* t/: op/pmc.t, pmc/pmc.t: Undef tests added.

2002-01-05 04:55 jgoff

* classes/perlhash.pmc: Added perlhash class definition

2002-01-05 04:48 dan

* core.ops: Fix on 64 bit platforms with 32-bit opcode_t

Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-05 03:57 jgoff

* MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
vtable.tbl, classes/Makefile.in, classes/default.pmc,
include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
t/pmc/pmc.t: Initial hash commit.

core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
key.h - Adding NUM_BUCKETS classes/default.pmc - Adding
set_{integer,number,string}_index_s

This does not yet do collision resolution, but will soon.

2002-01-05 02:54 dan

* interpreter.c: More unsigned fixes

Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-04 22:13 dan

* Configure.pl, hints/mswin32.pl: Makes config's building of the
test programs happier.

Courtesy of "Jason Diamond" <jason@injektilo.org>

2002-01-04 19:00 dan

* Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
separate things

2002-01-04 18:27 dan

* Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
Fixes to get things configuring and building on Win32 Native.

Courtesy of "Jason Diamond" <jason@injektilo.org>

2002-01-04 17:39 dan

* hints/vms.pl: debug cleanup

2002-01-04 16:53 dan

* docs/parrot.pod: The enclosed patch brings the list of
documentation in parrot.pod
up to date.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-04 16:47 dan

* test_main.c, Parrot/Jit/i386-linux.pm,
lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
off warnings..

Courtesy of Kevin Falcone <kevin@jibsheet.com>

2002-01-04 16:44 dan

* Configure.pl, Makefile.in: Fixed linking to use linker.

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-01-04 16:39 dan

* io/io_stdio.c: Added CVS tag info

2002-01-04 16:35 dan

* hints/cygwin.pl: Time for this. We need a sane linker, and ld2
isn't it

2002-01-04 16:26 dan

* languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
Tokenizer test

Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>

2002-01-04 16:17 dan

* chartypes/unicode.c: Silence some warnings.

Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-04 16:09 dan

* classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
perlstring.pmc, perlundef.pmc: - genclass.pl attempts to put the Id mark
into generated files
but the Id mark string gets mangled when it's committed.
This patch fixes the existing .pmc files and fixes genclass.pl.

- Makes capitalization in .pmc header match actual filenames

- The command for calling genclass.pl in vtables.pod is incorrect,
since it assumes you're running in classes/ but genclass.pl
assumes
it's being run from the main directory. I changed genclass.pl to
not
care.

Courtesy of Steve Fink <steve@fink.com>

2002-01-04 03:57 dan

* MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
me--I *had* the files:wq!

2002-01-04 03:40 dan

* MANIFEST: Whoops--remove files not really there

2002-01-04 03:37 dan

* interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
my sig adds a new_stack() function to take care of the allocation
and setup of "generic" stacks.

Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-04 02:36 dan

* core.ops: The entry in core.ops for puts(s|sc) is missing a =cut
and so
writes a load of junk in core_ops.pod. Applied patch fixes.

Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-04 02:35 dan

* classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
logical-or is using get_integer instead of get_bool for logical
operations. This patch corrects that.

Perlnum and perlstring have working get_bool's, so the default
logical_or and logical_and should be sufficient. The empty methods
are pointed to the default logical_or.

Courtesy of Jason Gloudon <perl@gloudon.com>

2002-01-04 02:31 dan

* Makefile.in: docs/Makefile should be removed by realclean, but
isn't

Courtesy of Kevin Falcone <kevin@jibsheet.com>

2002-01-04 02:29 dan

* classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!

Courtesy of Steve Fink <steve@fink.com>

2002-01-04 00:51 dan

* docs/vtables.pod: More docs

Courtesy of Steve Fink <steve@fink.com>

2002-01-04 00:47 dan

* Configure.pl: Updated 64-bit patch

Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-04 00:43 dan

* Configure.pl: 64-bit Fix.

Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-03 22:37 dan

* MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
some buffering work. Additional work on other layers.

Courtesy of Melvin Smith <mrjoltcola@mindspring.com>

2002-01-03 19:41 gregor

* disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
Updated copyright messages on top-level files.

2002-01-03 04:23 robert

* make.pl: Add author information. Bonsai test.

2002-01-03 04:02 dan

* io/io_os.c: Twig Bonsai

2002-01-03 03:45 dan

* io/: io_os.c, io_os.c: Twig Bonsai

2002-01-03 03:41 dan

* io/io_os.c: Twig Bonsai

2002-01-02 21:42 gregor

* packfile.c, include/parrot/packfile.h:
Get rid of warnings in packfile.[hc]

2002-01-02 20:39 gregor

* manicheck.pl:
Bracketed translated patterns with ^ and $.

2002-01-02 20:11 dan

* io/io_os.c: silence a warning

2002-01-02 19:52 grunblatt

* jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
op_assembly to jit_struct.h, so that we get the real number of ops.
Removed some warnings.

2002-01-02 19:31 tom

* string.c: Fix string transcoding so that it actually works.

Patch from Peter Gibbs <peter@emkel.co.za>

2002-01-02 19:20 gregor

* manicheck.pl:
A program to check the MANIFEST file, accounting for .cvsignore
files.

2002-01-02 19:19 dan

* t/harness: twig bonsai

2002-01-02 19:13 dan

* t/harness: twig bonsai

2002-01-02 18:54 dan

* t/harness: Tweak to test Bonsai

2002-01-02 16:27 dan

* Configure.pl: Allow 64-bit build of parrot on systems with a
mixed 32/64 bit perl

Courtesy of David M. Lloyd <dmlloyd@tds.net>

2002-01-02 15:33 simon

* MANIFEST, docs/Makefile:
Fixed up MANIFEST. (And I removed the Makefile in docs/)

Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2002-01-02 13:51 simon

* Configure.pl:
Die on broken manifest.

2002-01-02 13:48 simon

* jit2h.pl, examples/assembly/mops.pasm:
Clear up JIT warnings.

Courtesy of: Nick Clark <nick@unfortu.net>

2002-01-02 04:10 dan

* io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
only once, so new interp creation works again

Courtesy of Melvin Smith <mrjoltcola@mindspring.com>

2002-01-02 03:32 dan

* t/op/interp.t: Stubbed the test out, since it's hanging at the
moment.

2002-01-02 00:55 dan

* MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
io/io_os.c: Initial IO system patches

Courtesy of <mrjoltcola@mindspring.com>

2002-01-01 22:55 ajgough

* classes/default.pmc: On second thoughts, and some prodding, the
set_* methods now only set the appropriate part of the cache, and
do nothing else.

2002-01-01 22:29 ajgough

* classes/default.pmc: Wrote a whole host of default pmc methods.

set_* create appropriate Perl* result.
get_* simply grabs needed bit of cache.*_val

Other methods do the rightest thing I can think of, at the moment.

None yet cope with overflow, the modulus operation needs to be
checked as
I don't know quite which semantics we really want.

Not tested yet.

2002-01-01 20:23 dan

* docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
rid of unneeded tmp var and eliminated const from encode prototype
since it does make changes to the string.

Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2002-01-01 20:11 dan

* Makefile.in: Make clean now tosses pdump.o

Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2002-01-01 19:49 dan

* pdump.c, test_main.c: Warnings cleanup

Courtesy of Josh Wilmes <josh@sky.net>

2002-01-01 19:45 dan

* Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
hints/mswin32.pl, languages/jako/Makefile.in,
languages/scheme/Makefile.in: Makes cleanup better on non-Unix
platforms

Courtesy of "Jason Diamond" <jason@injektilo.org>

2002-01-01 19:41 dan

* include/parrot/register.h: Clean up some warnings

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-01-01 19:10 simon

* pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
Hack-around to enable compilation of code using vtable ops.

2002-01-01 18:43 dan

* encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
checks on unsigned things

Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2002-01-01 18:26 dan

* runops_cores.c: More warning silences.

Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-01 18:25 dan

* trace.c: Shuts up a warning.

Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-01 18:24 dan

* encodings/singlebyte.c: Clean up some warnings.

Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-01 18:20 dan

* Configure.pl: Hey, those PPros are really x86 systems! Who'dve
thunk it?

Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-01 18:17 dan

* packfile.c: Warning cleanup

Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-01 17:53 dan

* string.c: New string size should be based on output encoding's
size, not input encoding's size.

Courtesy of: "Peter Gibbs" <peter@emkel.co.za>

2002-01-01 17:22 dan

* Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
string.c, test_main.c, trace.c, include/parrot/exceptions.h,
include/parrot/interpreter.h, include/parrot/memory.h,
include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
Warnings fixups.

Courtesy of Chip Turner <cturner@redhat.com>

2002-01-01 17:09 dan

* encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
encodings/utf8.c, include/parrot/encoding.h: Some signed things are
now unsigned, as is proper.

Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-01 16:59 dan

* include/parrot/trace.h: Useless debugging prototype removed

Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-01 16:58 dan

* MANIFEST: We forgot a file.

Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-01 03:53 dan

* Configure.pl: Okay, I give. Removed some warnings because the
darned system headers were triggering them. Sloppy, sloppy
coding...

2002-01-01 03:48 dan

* config_h.in: Add in an unsigned INTVAL.

Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2002-01-01 03:46 dan

* global_setup.c: Clean up some compiler warnings.

Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2002-01-01 03:43 dan

* ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
include/parrot/op.h: Cleaned up some things to make the compiler
happier.

Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-01 03:14 dan

* Configure.pl: Quad updates.

Courtesy of Nicholas Clark <nick@unfortu.net>

2001-12-31 22:53 dan

* include/parrot/op.h: Typedef had parameters backwards. Threw
core.ops for a big whiny warnings loop.

2001-12-31 22:37 dan

* Makefile.in, resources.c: Tweaks to try and get things to build
in the right order.

2001-12-31 21:58 dan

* Configure.pl: Stupid thinko fix

2001-12-31 21:34 dan

* Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds

Courtesy of: "Jason Diamond" <jason@injektilo.org>

2001-12-31 21:32 dan

* Configure.pl: Fix for non-gcc systems

2001-12-31 20:22 dan

* interpreter.c: Tweak so we can build on non-JIT platforms

2001-12-31 20:11 dan

* Configure.pl: Force the time on some copied files to be 'now' to
make the Win builds much less annoying.

Courtesy of "Jason Diamond" <jason@injektilo.org>

2001-12-31 20:07 dan

* Configure.pl: Nuke all object files in the parrot tree that
matter when configuring. Shouldn't be necessary with good
dependencies in the makefile, but we don't have those yet.

2001-12-31 20:00 gregor

* chartypes/unicode.c:
Silence unused variable warnings.

2001-12-31 19:40 dan

* Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too

2001-12-31 19:37 gregor

* interpreter.c, jit.c, include/parrot/jit.h:
Created a prototype for JIT functions and used it in interpreter.c.

2001-12-31 19:31 dan

* Configure.pl, test_gnuc.c: Better GCC detection (and version
detection) with really cranky warnings if we find we're using it.

Courtesy of: Nicholas Clark <nick@unfortu.net>

2001-12-31 18:01 gregor

* interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:

Fixed a few warnings wrt prototypes, etc.

2001-12-31 17:23 dan

* string.c: Silenced most of the compiler whines

2001-12-31 17:15 gregor

* Configure.pl:
Get the ccname from either ccname or just cc config var.

2001-12-31 17:14 gregor

* Parrot/Op.pm, lib/Parrot/Op.pm:
Another intermediate opbody notation. Could come in handy. Explicit
types.

2001-12-31 17:05 dan

* string.c: Minor warnings update

2001-12-31 17:00 dan

* include/parrot/string.h: Warnings cleanup

2001-12-31 16:00 simon

* encodings/utf8.c, include/parrot/encoding.h:
Remove a couple more.

2001-12-31 15:58 simon

* vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
include/parrot/op.h:
Rid ourselves of a few warnings.

2001-12-31 15:32 dan

* Configure.pl: Made GCC ever so much pickier.

Switch list courtesy of Jarkko.

2001-12-31 15:22 dan

* string.c: Tightened up initial allocation.

Courtesy of: "Peter Gibbs" <peter@emkel.co.za>

2001-12-31 06:48 dan

* Configure.pl: Minor Windows tweak

2001-12-31 05:32 dan

* core.ops: Unused temp variable tossed.

Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2001-12-31 05:09 grunblatt

* Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
supported plataforms

2001-12-31 03:05 dan

* Configure.pl, Makefile.in, classes/Makefile.in: Added in a
platform-independent quote substitution for the makefiles.
Hopefully this'll make the Win32 builds happier.

2001-12-30 21:08 dan

* string.c, include/parrot/string.h: More string system tweaks.

Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2001-12-30 20:45 dan

* core.ops: Some pod cleanup

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2001-12-30 20:22 ajgough

* docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
we aren't using them right now. Clarified the workings of set Px,
Py and clone Px, Py.

2001-12-30 20:15 grunblatt

* jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
Added readjit() to read *.jit files Updated core.jit to the new
set_n_i

2001-12-30 20:14 ajgough

* examples/assembly/mops.pasm: Changed iton/ntoi to set.

2001-12-30 19:52 dan

* packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
include/parrot/trace.h, platforms/generic.c: Compiler whine
cleanups

Courtesy of Josh Wilmes <josh@hitchhiker.org>

2001-12-30 19:13 dan

* Configure.pl, Makefile.in: Make GCC pickier by default.

Courtesy of: Josh Wilmes <josh@hitchhiker.org>

2001-12-30 18:41 dan

* core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
ntoi opcodes to sets.

Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2001-12-30 17:58 gregor

* Makefile.in:
'make' no longer builds the mops test. Use 'make mops' for that. To
run the test, you can do 'make mopstest'.

2001-12-30 17:30 gregor

* Makefile.in:
Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
Gregor.

2001-12-30 17:26 gregor

* .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
Build enhancements. Originally to support building shared
libraries, but now of broader impact.

* .cvsignore: Ignore the blib/ directory, about which more later.

* Configure.pl:

* Got rid of TAB formatting and lined a few things up.

* Added header comment with CVS Id variable, and a few other
block header comments.

* Uses new Parrot::BuildUtil module to determine the Parrot
version.

* Reworded a few messages, added a couple, and wrapped
messages
to 79 columns.

* Added 2002 to the Copyright statement.

* Added new configure variables: VERSION, MAJOR, MINOR and
PATCH

NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
greater
than 5.6.0, but the comment implies it isn't.

* Makefile.in:

* Added $(SO), $(A) and $(AR_CRS) defines for library
building.

* Added $(RM_RF) define for removing directory trees

* Grouped generated files into two classes: "sticky" (made by
configure,
persisting across 'make clean') and 'fluid' (made during
the build
process, deleted by 'make clean').

* Added header comments.

* Added target for test_prog linked with shared library.

* Added rules to build shared libraries in blib/lib. The
libraries are
built with trailing version numbers in their file names,
and then
symbolic links are created for shorter and no version tag
variants.

* Added some missing dependencies

* Added some missing 'make clean' targets.

* Added 'make realclean' target that deletes files created by
Configure.pl (including Makefile), forcing a re-configure.

* Added a 'status' CVS target.

* VERSION: New file, contains only the version. This version
number is
propagated to a few places, such as the core oplib version
number. This
reduces the amount of coordination that has to happen to get
version
number stuff throughout the tree in sync and updated prior to
cutting
a new release. Feel free to grep for '0.0.3' to see the other
files
that contain the version number (but, do that in a fresh CVS
copy, or
after doing 'make realclean').

* config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
PARROT_*_VERSION,
since the oplib and Parrot itself share a version number now.
Added
PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
(a
string).

* core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
of
specifying the version by hand. Non-core oplibs will set this
to
a quoted dot-string with three natural number components
without
leading zeros.

* interpreter.c: Make use of PARROT_VERSION to simplify some
sprintf()s, and
to get the complete version number in the resulting strings
(including the
new PATCH portion).

* make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
the
generated file.

* obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.

* ops2c.pl: Account for the PATCH version, too. This affects the
name of the
oplib init function, and the oplib info struct initializer.

* Parrot/BuildUtil.pm: New file for reading in and validating the
contents of
the new VERSION file. Other build utilities could go here in
futuer.

* Parrot/OpsFile.pm:

* Allow three components in version number, and require that
the value
be in double quotes.

* Allow "VERSION = PARROT_VERSION", substituting the shared
Parrot
VERSION in that case.

* include/parrot/oplib.h: Add the patch_version member.

2001-12-30 12:16 simon

* MANIFEST, Makefile.in:
More stuff forgotten from MANIFEST.

2001-12-30 12:13 simon

* MANIFEST:
Missing JIT file.

2001-12-30 12:12 simon

* jit2h.pl:
Safety first.

2001-12-30 12:12 simon

* Makefile.in:
Gragh.

2001-12-30 12:04 simon

* Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
include/parrot/string.h, t/op/string.t:
* Expand the strings test suite to be more complete * Make string
commands more consistent (i.e, now the only string command that
actually changes the original is chopn) * Significantly reduce the
number of memory allocations and eliminate reallocations.

Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>

2001-12-29 22:12 dan

* interpreter.c, key.c, register.c, stacks.c, string.c,
test_main.c, trace.c: Updates to match the coding standards.

Courtesy of Bryan C. Warnock <bwarnock@raba.com>

2001-12-29 20:42 grunblatt

* jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
us to write asm in *.jit files instead of hex. Courtesy of: Rafael
Kitover <caelum@debian.org>

2001-12-28 21:20 dan

* core.ops: Okay, now print takes a preceding file handle.

I feel so dirty now.

2001-12-28 20:46 dan

* core.ops, t/op/hacks.t: Added in the readline op, as well as
changing the open op to use fopen under the hood.

THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!

2001-12-28 18:20 ajgough

* core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
include/parrot/exceptions.h, include/parrot/string.h,
t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
repeat op, so that "foo" x 10 can be done. Filled in PerlString
vtables appropriately. Also tests for same, new pmc_perlstring.t
to hold tests specific to PerlStrings, as the pmc.t file is taking
too long to run and slowing down my thought processes.

Changes to strings.c etc to take string functions.

Some changes to the strings docs, but not yet complete.

Also, PerlString was copying pointers to strings, rather than
strings themselves, so some action-at-a-distance bugs were creeping
in, I think I've fixed this so everything works nicely.

2001-12-28 04:56 gregor

* examples/assembly/pmcmops.pasm:
PMC-using version of mops.pasm.

Courtesy of: Bryan C. Warnock <bwarnock@raba.com>

2001-12-28 04:56 gregor

* examples/assembly/.cvsignore:
Small tinkering. Removed old stuff, etc.

2001-12-28 01:26 gregor

* examples/mops/mops.scheme:
Scheme example. Major GC thrashing on umb-scheme here. Probably due
to the very un-scheme-like implementation.

2001-12-28 01:19 gregor

* examples/mops/mops.c:
Some people's picky compilers don't like us redefineing time(), so
we call it time_n(). :)

2001-12-28 00:28 gregor

* examples/mops/: README, mops.ps:
Added a PostScript example and a README.

2001-12-27 23:57 gregor

* Makefile.in:
Build the C mops translation in examples/mops/mops.c

2001-12-27 23:56 gregor

* examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
Some translations of mops.pasm into other languages, for inner loop
performance comparisons.

2001-12-27 22:40 gregor

* examples/assembly/mops.pasm:
Fixed erroneous file name in header comment.

2001-12-27 21:18 gregor

* pbc2c.pl:
One-liner to avoid no-op gotos to the next op.

2001-12-27 21:06 gregor

* runops_cores.c:
Fixed -p (profiling). Slow runops core was doing unconditional
tracing, when it should have been checking the flags.

2001-12-27 18:50 ajgough

* core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
classes/perlstring.pmc, include/parrot/chartype.h,
include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
dded get_digit() to chartypes * Added string_bool() to strings *
Added if_s_ic op, to use same * Added (PerlString)->get_bool stuff
to perlstring.pmc * Tests for above, also a for couple of other
ops without tests

The unicode chartype has only had placeholders added for get_digit,
string_to_num has been updated to use type->get_digit rather than
the previous ascii-isms. Some remain, but we need to carefully
define what we mean by a number before we let thousands of code
points act as a minus sign.

2001-12-27 18:32 dan

* classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
compiler warnings.

Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>

2001-12-27 18:23 dan

* t/op/bitwise.t: More tests.

Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>

2001-12-27 17:08 gregor

* MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
include/parrot/interpreter.h, include/parrot/oplib.h,
lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
platforms/win32.c, platforms/win32.h:
Initial code for dynamic loading of oplibs, applied for now to the
loading of the core_prederef oplib when the -P flag is passed to
test_parrot.

* MANIFEST: Added entry for the new file include/parrot/oplib.h.

* Makefile.in:

* Added libcore_prederef_0_3.so to the shared target.
* Added build rule for libcore_prederef_0_3.so.
* Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
to Parrot/OpLib/core.pm, core_ops.c and
core_ops_prederef.c.

* config_h.in: Added defines for constants used to locate the
core oplib's init function, and the core_prederef oplib for
dynaloading.

* core.ops: Added a VERSION = 0.3 line near the top. This is now
required by Parrot/OpsFile.pm.

* interpreter.c:

* Added init_prederef() and stop_prederef() functions to load
and unload the core_prederef oplib when we are in prederef
mode.

NOTE: In all likelihood, the prederef stuff has a rapidly
dwindling time-to-live. The JIT should provide vastly
superior
performance, and loading an alternate set of core_ops isn't
the real direction for the dynaloading stuff. Loading
*additional* ops is. It does provide a handy test case for
the
general idea for now, though.

* Gets the core copcode table, etc. via the core oplibs oplib
info pointer, as returned by the core oplib's init
function.

* ops2c.pl

* Make use of the version, major version and minor version
stuff parsed by Parrot/OpsFile.pm

* The only exported symbol in the generated files is the init
function now, since that returns an oplib info struct
pointer, and all the important stuff can be found there.

* ops2pm.pl: Put the oplib version in the generated .pm file.

* test_main.c: Small changes necessitated by changes in the names
of some members of the interpreter struct.

* trace.c: Small changes necessitated by changes in the names
of some members of the interpreter struct.

* Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
ops are found.

* include/parrot/interp_guts.h: Small changes necessitated by
changes in the names of some members of the interpreter struct.

* include/parrot/interpreter.h: Include the new
include/parrot/oplib.h header. Small changes to the oplib-
related members.

* include/parrot/oplib.h: Define the type of the oplib init
function, and the struct type for the oplib info.

* platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
since not all platforms have it. For those that do, a default
second argument is provided.

2001-12-26 05:12 gregor

* Configure.pl:
Make jitarch calculation not get tripped up by extra components to
archname.

2001-12-24 21:23 gregor

* jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
Some more JIT work from Daniel Grunblatt.

* Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
to C
functions.

* Added JUMP(END) to place the number of bytes to the end of the
current
op.

* The *.jit files syntax changed.

* Added jit/i386/lib.jit to place handly functions as jump that
take as
argument the address where is the opcode number to jump to.

* There is a bug at some point, but I will start writing
jit/i386/string.jit and jit/i386/stacks.jit so that we don't
have use
calls, which make the jit as slow as the interpreter.

Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>

2001-12-24 03:46 dan

* Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
Perls before 5.6.0 don't like it.

2001-12-22 16:02 ajgough

* t/op/stacks.t: stopped skipping tests we can run now. added
clonep tests.

2001-12-21 21:13 gregor

* jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
Fixed some package name goofs.

Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>

2001-12-21 19:32 gregor

* MANIFEST, Makefile.in, core.ops, interpreter.c,
make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
Changes to syntax of .ops files and refactoring of ops2c*.pl and
pbc2c.pl.

* Removed ops2c-prederef.pl

* (unrelated) Removed vestigial Parrot/Opcode.pm file.

* Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
for old functionality of ops2c-prederef.pl), and
Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).

"OpTrans" == "Op Transformation"

* Makefile.in modifications to call "ops2c.pl C" where it used
to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
to be "ops2c-prederef.pl".

* core.ops and obscure.ops changes to syntax. Semantics are
identical with previous version:

return HALT --> HALT()
return AUTO --> goto NEXT()
return RETREL(...) --> goto OFFSET(...)
return RESTART(*) --> restart NEXT()

Also, pop_generic_entry() stuff (local var + 5 lines of code)
for dest-less branch ops replaced with new notation "goto
POP()",
which uses the new pop_dest() function in stacks.c. This also
allowed these ops to become 'inline' ops, since they no longer
have local variables.

The 'ret' op also became simplified to just "goto POP()", and
also became an inline op.

* interpreter.c reflects the change in type name:

prederef_op_func_t --> op_func_prederef_t

that occurred in include/parrot/op.h

* make_vtable_ops.pl uses "goto NEXT()" where it used to use
"return AUTO".

* ops2c.pl is now generic. Its first argument is the last
package name component of a subclass of Parrot::OpTrans. These
subclasses all have full names of the form Parrot::OpTrans::*.
An instance of the class is created and later consulted for
various bits of information needed to generate the C code.

* pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
contain its transformation rules.

* stacks.c has a new function pop_dest() that pops a destination
off the control stack. include/parrot/stacks.h has the
prototype.

* Parrot/Op.pm now supports the syntax generated by
Parrot::OpsFile
for the "goto POP" case.

Also, the source() method now expects its second argument to be
an object that ISA Parrot::OpTrans. Methods of this object are
called to perform the substitutions.

* Parrot/OpsFile.pm supports the change in notation mentioned
above.

* docs/intro.pod reflects these changes.

* include/parrot/op.h: Renamed type prederef_op_func_t to
op_func_prederef_t because it made the implementation of the
shared ops2c.pl easier.

2001-12-21 13:47 gregor

* Configure.pl, config_h.in, interpreter.c, test_main.c:
Both test_parrot (via test_main.c) and the intepreter itself (via
interpreter.c) use the JIT_CAPABLE config to decide whether to
actually attempt JIT operation, or to complain.

2001-12-20 23:25 gregor

* core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
Changes to the format of *.ops files. An attempt to provide hints
for future opfunc processing logic that wants to know if an opfunc
is simple enough to JIT (e.g.) inline, or not.

See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
addition to The Source in core.ops and Parrot/OpsFile.pm for more
info.

2001-12-20 21:28 gregor

* Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
jit/i386/core.jit:
More JIT stuff:

* A fix to Gregor's last Configure.pl update.

* Remove the need for hardcoded "\n" at the end of the "%f"
format for printing floating-point numbers.

* New, improved *.jit syntax for references to registers,
e.g. INT_REG[n].

* Support for C() improved.

Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>

2001-12-20 16:55 dan

* MANIFEST: Added jit.c to the manifest.

2001-12-20 15:24 simon

* jit2h.pl:
Off-by-one error fixed.

2001-12-20 14:18 simon

* jit/i386/core.jit:
Just a noop. It's the only machine code I know.

2001-12-20 13:10 gregor

* Configure.pl, Makefile.in, jit2h.pl:
Attempt to fix Win32 builds.

* No more empty braces in include/parrot/jit_struct.h

Also:

* ${jitarchname} has the *bsd -> bsd substitution on it, but
${archname}
does not.

2001-12-20 11:56 simon

* Makefile.in:
De-cp

2001-12-20 01:57 gregor

* Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
include/parrot/.cvsignore, include/parrot/interpreter.h,
include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
lib/Parrot/Jit/i386-nojit.pm:
Initial JIT implementation.

* Enabled with test_parrot -j. 20x speed boosts seen.

* Unsupported archs mapped to i386-nojit. Don't do -j on them.

* More to come.

Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>

2001-12-20 01:53 jgoff

* MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
core.ops - Removed key operators, they should be hidden from the
assembler. t/op/key.t - No need to test the nonexistent key
operators.

2001-12-20 00:13 ajgough

* core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
that asking for type of entry at depth causes segfault as stack is
zero based, fixed cmp in core.ops to reflect this. Last test is
skipped as we don't do exceptions right yet.

2001-12-19 19:11 ajgough

* t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
non-being was causing Irix "issues".

2001-12-19 03:37 jgoff

* languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
004_combined.t: Changed tests to make sure they pass with the
addition of the clone operator.

2001-12-18 20:06 gregor

* interpreter.c, include/parrot/interp_guts.h:
Performance improvements to the predereferencing code path
suggested to me over lunch yesterday by my friend John Kennedy.
The goal is to remove the additional test in the inner loop that
was checking for NULL to decide whether or not to call the
prederef() function. Also moved pc & pc_prederef syncing outside
the inner loop.

* Changed the prototype of the prederef() function in
interpreter.c to match that of an opfunc.

* Instead of initializing the prederef void * array with NULL,
we initialize it with pointers to prederef().

* prederef() now returns the prederef_pc passed in, so that
after predereferencing, the same location is executed, but now
with the real code being called.

Thanks to: John Kennedy

2001-12-18 19:59 ajgough

* t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
(including some more in the skipped string -> int tests).

2001-12-18 07:06 jgoff

* MANIFEST: Forgot to add classes/perlarray.pmc

2001-12-18 07:05 jgoff

* Makefile.in, core.ops, global_setup.c, vtable.tbl,
classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
t/pmc/pmc.t: Big update... Makefile.in - Added
classes/perlarray.pmc core.ops - Added new series of set() ops for
arrays global_setup.c - Initialized perlarray classes/Makefile.in -
Added perlarray.pmc classes/*.pmc - Added
set_{integer,number,string}_index and
get_{integer,number,string}_index include/parrot/pmc.h - Added new
type t/op/pmc.t - Added basic array test

classes/perlarray.pmc - Added

2001-12-17 05:29 jgoff

* languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
generator to use clone operator instead of set Px,Py

2001-12-17 05:25 jgoff

* core.ops, classes/perlint.pmc, classes/perlnum.pmc,
classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
PMC,PMC operator. Uses the clone() vtable entries.

2001-12-17 04:51 jgoff

* MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
entry

2001-12-17 04:41 jgoff

* languages/miniperl/Miniperl/Makefile.PL: Now in its proper
directory...

2001-12-17 04:41 jgoff

* languages/miniperl/Makefile.PL: Moved it to the proper directory.

2001-12-17 04:39 jgoff

* languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
t/

2001-12-17 04:27 jgoff

* languages/miniperl/Miniperl.pm: Latest version of the driver.
Admittedly it's a little thin on true OO, but the algorithms are
the key.

2001-12-17 04:24 jgoff

* languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
003_generator.t, 004_combined.t: Much more comprehensive test suite
for the codegen et al

2001-12-17 04:22 jgoff

* languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
Tokenizer.pm: Newer codegen, tightened up parser output, added hash
key handling

2001-12-17 04:20 jgoff

* languages/miniperl/Miniperl/Test.pm: The newer test suite is much
more comprehensive.

2001-12-17 04:17 jgoff

* languages/miniperl/foo.mpl: Test file that'll be outdated by
changes to the new compiler

2001-12-17 04:11 jgoff

* languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
files to Miniperl/

2001-12-16 14:11 simon

* classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
t/pmc/pmc.t:
Fix bogus assumption that multiplying an integer by an integer
yields an integer.

2001-12-16 12:48 simon

* make_vtable_ops.pl:
Fixed op exploder.

2001-12-16 12:45 simon

* make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
Expand multimethod vtable ops.

2001-12-16 12:04 simon

* Makefile.in:
Added 'cvsclean' which doesn't zap CVS/* directories.

2001-12-15 01:50 dan

* include/parrot/string.h: Fixed typo in string.h. lagnuage,
indeed!

Thanks to grunblatt fom #parrot for the catch

2001-12-15 01:39 dan

* .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
languages/miniperl/.cvsignore, languages/miniperl/Makefile,
languages/miniperl/Makefile.in,
languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
languages/scheme/Makefile, languages/scheme/Makefile.in: Build
tweaks.

Courtesy of: Jay McCarthy <jay@kenyamountain.com>

2001-12-14 17:39 dan

* t/op/trans.t: More trans tests.

Courtesy of: Simon Glover <scog@roe.ac.uk>

2001-12-14 07:41 robert

* make.pl: - define MAKE macro - topological sort and subgraph
order - start of timestamp stuff (still badly broken)

2001-12-14 06:06 jgoff

* optimizer.pl: Hopefully this should do the trick..

2001-12-14 06:04 jgoff

* Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer

optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.

The optimizer performs its work on a file post-macro expansion.
Run it on a .pasm file, preferably with some trivially reducible
operations
like 'add I0,5,-6' or 'mul I0,I1,0'

2001-12-14 05:48 robert

* Makefile.in: case error EXE -> exe

2001-12-14 05:42 robert

* Makefile.in: remove legacy PDISASM macro

2001-12-14 04:01 dan

* classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
better Win building

Courtesy of: Garrett Goebel <garrett@scriptpro.com>

2001-12-13 22:03 dan

* Configure.pl, Makefile.in, Parrot/Test.pm,
languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
can change it without having to change the world.

2001-12-13 21:57 dan

* core.ops, interpreter.c, docs/parrot_assembly.pod,
include/parrot/interpreter.h, t/op/debuginfo.t: Added current
file/line/package to interp structure, with ops to get and set
them. Now we can know where we are!

2001-12-13 19:43 dan

* Configure.pl, Makefile.in: Makefile tweaks to hopefully make
WinXP builds work out of the box

2001-12-13 17:05 dan

* Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
name again--makes case-insensitive systems much happier.

2001-12-13 16:21 dan

* core.ops, key.c, string.c, test_main.c, trace.c,
classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
compiler warnings

Courtesy of: Josh Wilmes <josh@sky.net>

2001-12-13 13:33 gregor

* languages/jako/Makefile.in:
Improved the method of calling the assembler.

2001-12-13 13:30 gregor

* languages/jako/Makefile.in:
Improve the build process. It now works from the main parrot dir,
and from the languages/jako directory. Now uses the .SUFFIXES
target and generic build rules to reduce clutter in the
Makefile.in.

2001-12-13 13:29 gregor

* languages/jako/.cvsignore:
Ignore the (now generated Makefile), and don't ignore .list files
anymore, since we aren't generating them.

2001-12-13 13:11 gregor

* Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
languages/Makefile.in, languages/jako/Makefile,
languages/jako/Makefile.in:
Added a 'languages' target to the top-level Makefile.in, and
modified the jako build procedure to involve Makefile.in -->
Makefile too (done by Configure.pl).

NOTE: languages/jako and language/scheme are built.
languages/miniperl wasn't building right, so it was left off for
now.

2001-12-13 12:15 gregor

* MANIFEST:
Added MAINTAINER file and mandelzoom.jako from languages/jako to
the MANIFEST.

2001-12-13 12:12 gregor

* .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
ops2c-prederef.pl, ops2c.pl, test_main.c,
include/parrot/interp_guts.h, include/parrot/interpreter.h,
include/parrot/op.h, include/parrot/oplib/.cvsignore:
Welcome to the Just-in-Time Predereferencing Patch!

This patch implements a "predereferencing" mode for parrot. That
means that a lot of the dereferencing you see in DO_OP and in the
opfuncs is done up front (really, JIT) rather than as and each time
we execute each op in the byte code stream.

This works by creating an array of void pointers with the same
number of elements as the byte code array. This array starts out
life zero-initialized. Each time we go to execute an op, we check
first to see if we have a NULL pointer at *cur_opcode. If so, we
know we haven't done our predereferencing yet (this is the JIT
part), so we call the prederef() function with sufficient args that
it can go look up opfunc pointers and op arg types and put the
opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
where N is the number of args (counting the op itself as one arg).

We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
to have inline INTVAL constants.

I've been getting about a 22% speed increase over vanilla code path
when I compile with -O0. Advantage decreases at -O9 here. I tested
with mops.pbc, and also by temporarily putting the -P flag in
Parrot/Test.pm and running all the tests. So, this code is as
correct as the test suite can detect.

Here's how it plays out in the code:

* New script ops2c-prederef.pl

Copy-paste code reuse from ops2c.pl. Modified to expect the
args to give
a void ** cur_opcode and to return a void **.

* Modified ops2c.pl

* opfuncs are now static. Who needs to call them by name from
outside,
anyway? They are accessed via the opfunc table.

* Some MACRO stuff to make things work whether we prederef or
not. It
may be possible to get rid of these some day if other folks
agree
that we should be using CODE object pointers + offsets as
our PC
rather than raw pointers to either opcode_t's or (void *)'s
(depending on prederef mode or no).

* core.ops modified to be usable to build both kinds of opfuncs.
For now,
this means:

* calls to push_generic_entry(... cur_opcode ...) were
changed to
push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
a
macro that does the right thing in both kinds of ops.c
files.

This is applicable to the bsr op. If we treated
destinations as
(Code PMC + local offset) rather than as
pointer-to-memory-somewhere,
this wouldn't be a big deal. We may need to do that at some
point
anyway, so that when you jump around and return not only do
you have
the right PC (pointer, today), but you also have the
thread/interpreter
knowing what chunk of bytecode it is in at all times
(assuming we'll
allow reflection, as in ops that query or affect the
current CODE PMC).

* runinterp was modified. Instead of copying the top-level
PackFile struct
and blasting its byte_code pointer, we simply call runops
on the new
interp, passing in the pointer to the current interp's code
and the
offset into that code at which to start (this last arg used
to be a
pointer PC, now its an offset PC).

* include/parrot/op.h

* new typedef for prederef opfuncs (they return void **)

* include/parrot/interp_guts.h

* New DO_OP_PREDEREF() macro described above.

* include/parrot/interpreter.h

* New prototype of runops() -- see below.

* resume_addr field changed to resume_flag and resume_offset
pair of fields.
We might be resuming from interp using prederef to one not
or vice-versa,
so pointers between the two don't play nice together.
Offsets are beautiful.

* New PARROT_PREDEREF_FLAG constant

* interpreter.c

* include "parrot/oplib/core_ops_prederef.h"

* prederef() function described above.

* runops_prederef() runops variant. Uses DO_OP_PREDEREF()
macro as its core.

* runops() modified to take size_t CODE-relative offset PC
rather than
pointer PC. This made other things workable and doesn't
seem to have lost
anything important (IMO).

* test_main.c

* New flag '-P' to enable predereferencing.

* Makefile modified to build core_ops_prederef.c from core.ops
via
ops2c-prederef.pl.

BTW, also added missing $(INC)/interp_guts.h to H_FILES.

Added core_ops_prederef$(O) to O_FILES

2001-12-13 12:12 gregor

* languages/jako/MAINTAINER:
Thought it would be nice to put this right in the code...

2001-12-13 04:36 jgoff

* languages/miniperl/Miniperl/Generator.pm: Commented out
debugging, fixed register spillover algorithm

2001-12-13 04:23 jgoff

* make.pl: Found and fixed obob in the parser (Wasn't parsing last
line) Restructured a bit of the dependency generator to fix a
different obob bug.

2001-12-13 03:43 robert

* MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod

2001-12-13 03:03 jgoff

* make.pl: Added make.pl

2001-12-13 02:44 jgoff

* languages/miniperl/Miniperl.pm: Nearly-complete 'make'
replacement in perl. Non-compliant bits - Takes absolutely -NO-
special flags... - Dies on undefined macros
such as $(PDISASM) in current make - Dies on
recursive macro expansions (Doesn't test for
mutual or multipart loops) - In general it
seems to be a little less lenient... Missing bits - File
mod/creation times aren't being looked at - Actions
aren't being taken - The few funky variables ($@, $<)
aren't being dealt with Bugs - Line numbers are slipping a bit.

2001-12-13 02:29 jgoff

* languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
Reconstructing files to make the parser flow a little better.

2001-12-13 00:51 dan

* resources.c: Be a bit less wasteful with resources that don't
need to be aligned

2001-12-12 18:22 dan

* Makefile.in: D'oh! Fixed looping makefile bug.

Courtesy of: "Jaen Saul" <jaen@saul.ee>

2001-12-12 16:23 jgoff

* languages/miniperl/t/001_basic/basic1.scheme: Bogus entry

2001-12-12 16:22 jgoff

* MANIFEST: Manifest additions for languages/miniperl

2001-12-12 16:19 jgoff

* languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
tests. These are left over from the Scheme suite and shouldn't be
used yet.

2001-12-12 16:18 jgoff

* languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
modules. Miniperl/ is where the real work gets done. t/ is largely
vacant because it isn't ready to survive real tests yet.

2001-12-12 16:17 jgoff

* languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
mpc: Final go-round, hopefully.

languages/miniperl/Makefile - Used basically to run tests, as there
is nothing here that needs to be
dynamically built. languages/miniperl/Miniperl.pm - Stub module
that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
Sample miniperl file. languages/miniperl/miniperlc - Miniperl
compiler stub

2001-12-12 16:09 dan

* Configure.pl: Setting a variable with the make command name is
useful.

2001-12-12 15:07 simon

* Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
Recursive make considered "ow, don't do that".

2001-12-12 14:45 dan

* Makefile.in: Makefile had some non-portable code. (Okay, a lot of
non-portable code) Killing builds on Win32 native. Small patch
applied which hopefully fixes it.

2001-12-12 06:12 ajgough

* classes/Makefile.in: perl is $(PERL), you know it makes sense.

2001-12-12 06:08 ajgough

* Makefile.in: perl is $(PERL).

2001-12-12 06:00 ajgough

* t/op/integer.t: Added tests to integer.t so that all permutations
of arguments are actually called at some point.

2001-12-12 05:18 ajgough

* t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
Tests for sleep i|ic

2001-12-12 05:09 ajgough

* t/op/stacks.t: Added pushp and popp register stack tests.

2001-12-12 04:51 ajgough

* t/op/stacks.t: Added tests for save and restore, for all register
types. Let there be Haiku.

2001-12-12 04:27 ajgough

* t/op/basic.t: bsr_i test. You know you want it.

2001-12-12 02:55 ajgough

* MANIFEST: Added hints/os2.pl to MANIFEST.

2001-12-12 02:52 jgoff

* core.ops, key.c: Final checkin... These are actually the correct
copies.

2001-12-12 02:12 jgoff

* include/parrot/key.h: key.c - Removed a few functions,
generalized set_element_value and element_value to accept
KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
core.ops - Modified to accept the new return style.

This is a prelude to adding virtual-table methods to allow hashing
&c. Expect at least one or two more redesigns before this settles
down. However, it still passes the original tests.

2001-12-11 13:35 gregor

* runops_cores.c:
Fixed a typo.

2001-12-11 12:03 gregor

* .cvsignore:
Don't ignore test_prog, but do ignore parrot.

2001-12-11 12:03 gregor

* classes/.cvsignore:
Ignore the generated file default.h

2001-12-11 04:07 jgoff

* key.c: Key source

2001-12-11 04:05 jgoff

* include/parrot/key.h, t/op/key.t: Needed header file, new test

2001-12-11 04:00 jgoff

* core.ops: Added new key aggregate operations to core ops.

2001-12-11 04:00 jgoff

* include/parrot/parrot.h: Added key.h to header list

2001-12-11 03:59 jgoff

* MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t

2001-12-11 03:58 jgoff

* Makefile.in: Added implementation of key aggregates.

2001-12-08 23:07 simon

* README:
README good to go.

2001-12-08 23:05 simon

* Configure.pl, Makefile.in, README, Parrot/Test.pm,
docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
test_prog? What is test_prog?

2001-12-08 22:57 simon

* ChangeLog:

Oops, the changelog commit was on *this* machine.

2001-12-08 22:56 simon

* NEWS:
Updates to NEWS and ChangeLog pre-release.

2001-12-08 22:07 simon

* MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
classes/perlnum.pmc, classes/pmc2c.pl:
Add "default" PMC vtable so you can inherit implied stuff.

2001-12-08 21:24 simon

* Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
docs/vtables.pod, lib/Parrot/PackFile.pm:
Getting the documentation up to scratch.

2001-12-08 21:21 simon

* classes/pmc2c.pl:
Allow inheriting from default class.

2001-12-07 20:43 gregor

* examples/assembly/queens.pasm:
Regenerated the file with the latest jakoc.

2001-12-07 20:29 simon

* core.ops, t/op/stacks.t:
Rename "rotate" to "rotate_up".

2001-12-07 20:15 simon

* t/op/stacks.t:
Some tests for rotate.

2001-12-07 00:55 gregor

* core.ops:
Cast the result of the pointer arithmetic, since without the cast
there are warnings with some compilers, and without the parens
around the pointer arithmetic, precedence breaks the meaning and
causes crashes.

2001-12-06 23:37 simon

* core.ops:
Temporary. I prefer compiler warnings to segfaults, thanks.

2001-12-06 23:34 simon

* runops_cores.c:
Make "trace" work again.

2001-12-06 21:23 dan

* Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm

2001-12-06 21:22 dan

* core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy

2001-12-06 19:22 simon

* core.ops:
Yet another "How the *%$! did that compile?" moment.

2001-12-06 18:28 dan

* hints/vms.pl: Fix to build, with a HERE logical required

2001-12-06 17:48 dan

* core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
changes to the interpreter--flags are now part of the interp
structure.

Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>

2001-12-06 14:02 gregor

* docs/intro.pod:
s/little_languages/languages/ in Jako section.

2001-12-06 13:15 simon

* Makefile.in:
Ensure the documentation gets made.

2001-12-06 13:12 simon

* MANIFEST, docs/intro.pod:
Documentation! Added the "Some Assembly Required" article with
minor updates.

2001-12-06 00:39 simon

* core.ops:
More "eq" support.

Courtesy of: Nguon Hao Ching <hao@netaxs.com>

2001-12-06 00:37 simon

* test_main.c:
Add the "-d" debug flag. Doesn't actually *do* anything yet.

Courtesy of: Melvin <mrjoltcola@mindspring.com>

2001-12-06 00:11 tom

* string.c, chartypes/unicode.c, chartypes/usascii.c,
encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
include/parrot/chartype.h, include/parrot/encoding.h,
include/parrot/parrot.h: Moved string to number conversion code out
of the encoding layer and into the main string layer as neither the
encoding layer nor the character type layer knows enough on it's
own to do the conversion correctly.

2001-12-05 23:12 tom

* Makefile.in: Rebuild the classes directory if any of the object
files for the classes are missing rather than only when perlint.o
is missing.

2001-12-05 19:43 gregor

* Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
* Reworked the constantize_string() stuff a little bit because it
was
puking on things like "\033[H\033[2J\0" (which occurs in the
languages/jako/mandelzoom.jako example).

2001-12-05 19:39 gregor

* languages/jako/: Makefile, mandelzoom.jako:
Added 'mandelzoom' example.

2001-12-05 19:38 gregor

* languages/jako/jakoc:
* Added sleep()

* Changed some instances of die() to confess()

2001-12-05 18:34 gregor

* t/: op/pmc.t, pmc/pmc.t:
s/sting->int/string->int/

2001-12-05 18:08 gregor

* Parrot/.cvsignore:
Ignore PMC.pm

2001-12-05 18:05 gregor

* classes/.cvsignore:
Ignore the generated files.

2001-12-05 17:19 gregor

* pbc2c.pl:
* Reverted recent changes, since they broke the script. Real fix
coming
later.

2001-12-05 17:03 simon

* classes/Makefile.in:
Remember: change Makefile.in, not Makefile. D'oh.

2001-12-05 17:02 simon

* Makefile.in:
Ensure PMC.pm gets remade.

2001-12-05 16:58 simon

* MANIFEST, Makefile.in, classes/Makefile.in,
classes/perlundef.pmc, include/parrot/pmc.h:
Add perlundef class.

2001-12-05 16:45 simon

* core.ops:
Document "new P0, foo"

2001-12-05 16:43 simon

* MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
Allow assembler to know about PMC class names.

2001-12-04 13:39 ajgough

* MANIFEST: Added t/op/pmc.t to MANIFEST.

2001-12-04 05:02 ajgough

* classes/perlnum.pmc: Picky compiler pointed out probable thinko
in perlnum.c

2001-12-04 04:24 ajgough

* encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
broken form of strtod and appropriate tests. Does not yet check
for overflow.

2001-12-04 01:31 ajgough

* string.c, encodings/singlebyte.c, encodings/utf16.c,
encodings/utf8.c, include/parrot/encoding.h: Added length parameter
to extract_num and extract_int string vtables, without this it
would be impossible to have strings with nulls in while still
knowing where they ended.

2001-12-03 18:40 ajgough

* string.c, classes/perlstring.pmc, encodings/singlebyte.c,
encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
include/parrot/string.h: Moved pmc string to number conversion into
the string encoding tables.

2001-12-03 00:21 ajgough

* core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
for p-> integer.

2001-12-02 23:09 jgoff

* classes/Makefile.in: Removed some redundant targets.

2001-12-02 19:02 ajgough

* t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
equality macro rather than using perl to generate expected output,
all tests now have <<OUTPUT.

2001-12-02 17:44 ajgough

* t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
for pmc.t as well. Will probably move macros into another file at
some point, although this might be best left until the tests are
unperled.

2001-12-02 06:16 jgoff

* classes/pmc2c.pl: It wasn't properly setting the vtable index
within Parrot_Perl{Class}_init.

2001-12-02 06:09 jgoff

* classes/Makefile.in: I seem to have removed *$(O) twice..

2001-12-02 05:06 jgoff

* Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
Configure.pl - Removed '-I./include', added classes/Makefile
generation MANIFEST - Added classes/Makefile.in Makefile.in -
Removed old classes/* make stuff Added target for
classes/Makefile

2001-12-02 04:48 jgoff

* classes/Makefile.in: Going to be used shortly...

2001-12-02 04:40 jgoff

* docs/Makefile: Configure.pl - Added automatic makefile creation
for docs/ and classes/ Removed '-I./include' because
it was getting incorrectly passed to classes/
MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
- Removed classes/ build stuff, replaced with classes/Makefile.in
Added '-I./include' locally docs/Makefile - Should no
longer be used, but I'm not brave enough to do a
cvs delete.

2001-12-02 01:21 ajgough

* t/op/trans.t: Refactored trans math tests to have hard coded
expected return values and be more ready to be unperled at some
point in the future. Added $fp_equality_macro which is a
"nearly-equal-to" function.

2001-12-02 01:18 ajgough

* Makefile.in: Humph. People really ought to use Makefile
variables, s/perl/$(PERL)/ throughout.

2001-12-01 18:15 jgoff

* classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
figure out what to do vis-a-vis the lack of snprintf.

2001-11-30 13:14 ajgough

* t/op/: integer.t, number.t: Added tests for abs ops to number.t
and integer.t

2001-11-30 13:14 ajgough

* core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
-, else ... form.

2001-11-30 10:36 simon

* core.ops:
Rewrite print_p to do the right thing.

2001-11-30 06:21 jgoff

* t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
concat, integer/number/string math

2001-11-30 06:20 jgoff

* classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
classes/perlint.pmc - Fixes and expanding for concat and math with
strings classes/perlnum.pmc - Fixes and expanding for concat and
math with strings classes/perlstring.pmc - Fixes and expanding for
concat and math with strings

2001-11-29 15:21 ajgough

* hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
$^X lies, which confused bash which make uses to run things when
doing its stuff.

2001-11-29 04:58 jgoff

* classes/perlstring.pmc: Removed C++-style comments for good
measure

2001-11-29 04:51 jgoff

* t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers

2001-11-29 04:28 jgoff

* global_setup.c: Initialize PMC strings

2001-11-29 04:25 jgoff

* core.ops: Added set_p_s and set_p_sc, modified print_p to handle
string PMCs.

2001-11-29 04:24 jgoff

* classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
files to properly upgrade int to num, do calculations. Also added
basic string operations. Currently errors out on anything but set
operations, but this will be fixed soon.

2001-11-29 04:22 jgoff

* Makefile.in: PMC .c files weren't getting cleaned out.

2001-11-28 17:00 simon

* t/harness:

Make csh-glob happy.

Courtesy of: Andy Dougherty: <doughera@lafayette.edu>

2001-11-28 16:40 simon

* classes/perlnum.pmc:

De-C++

2001-11-28 15:22 simon

* string.c:

Fixes Alex's string concat worry.

2001-11-28 14:27 ajgough

* t/op/string.t: test "null onto null" incorrectly passing as it
produced no output. Output provided.

2001-11-28 11:14 simon

* include/parrot/pmc.h:

Placate AIX.

2001-11-26 21:03 dan

* MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1

2001-11-26 17:29 simon

* classes/perlint.pmc:

Various subtle but non-showstopper bugs.

2001-11-26 11:23 simon

* classes/pmc2c.pl:

Replace dependency on Text::Balanced

Courtesy of: Bart Lateur <bart.lateur@pandora.be>

2001-11-26 05:22 jgoff

* global_setup.c: Last file that should need to be committed. I
swear.

2001-11-26 05:09 jgoff

* core.ops: Let's try this again... Changes to core.ops required

2001-11-26 04:58 jgoff

* classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
Uncommented PerlNum_init classes/perlint.pmc - Added set_number
functions classes/perlnum.pmc - Set up basic number functions
t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
tests against numbers and numbers+integers

2001-11-25 13:18 simon

* Makefile.in:
Windows XP make doesn't like $<

2001-11-25 12:56 simon

* MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
examples/assembly/mops_p.pasm:
PMC preprocessor.

Courtesy of: Angel Faus <afaus@corp.vlex.com>

I (Simon) also added a couple more integer methods, but no tests
since I'm a Bad Person.

2001-11-25 08:40 brentdax

* ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
lib/Parrot/OpsFile.pm: Allow _ in op names

2001-11-25 05:54 jgoff

* classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
Added basic math ops t/op/pmc.t - Added tests of basic math ops

2001-11-23 18:27 simon

* core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
Add everything you need to make MOPS use PMCs.

2001-11-23 18:06 simon

* core.ops:
Eh, you'll need this for rewriting mops.pasm.

2001-11-23 17:55 simon

* core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
t/pmc/pmc.t:
More work on integer PMCs.

2001-11-23 17:29 simon

* Makefile.in:
Surprise! Whitespace! HLAGHLAGHLAGH

2001-11-23 17:28 simon

* Makefile.in, ops2c.pl, ops2pm.pl:
Add vtables.ops to the core

Courtesy of: Jeff Goff <jgoff@speakeasy.net>

2001-11-22 18:39 simon

* core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
t/pmc/pmc.t:
We can now create PMCs.

2001-11-21 05:49 jgoff

* Makefile.in: Makefile cleans up *.pasm *.pbc *.out

2001-11-20 16:00 simon

* docs/vtables.pod, include/parrot/pmc.h:
Reorder PMC flags so there's a fixed number of user-defined flags.

Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>

2001-11-19 03:39 jgoff

* Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
nested quotes. t/op/basic.t - Add tests for single-quoted strings,
escaped quotes, and proper handling of newlines.

2001-11-16 22:03 simon

* classes/perlint.c:
More work on the Perl Integer class. More needed, though.

2001-11-16 21:57 simon

* pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.

2001-11-16 20:49 simon

* interpreter.c, runops_cores.c, trace.c,
include/parrot/runops_cores.h:
Kill superfluous runops cores.

2001-11-16 17:50 simon

* MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
include/parrot/parrot.h, include/parrot/pmc.h:
Skeleton for Perl scalar types, done right.

2001-11-16 16:15 simon

* classes/genclass.pl:
This tidies up genclass to deal with the new-style multimethods.

2001-11-16 15:29 simon

* Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
lib/Parrot/Vtable.pm, include/parrot/parrot.h:
Rework multimethods to be *true* multimethods - that is, have
different types.

2001-11-15 22:29 simon

* MANIFEST, Makefile.in, pmc.c:
pmc.c linkage and support. Oh, and making it compile.

2001-11-15 22:26 dan

* t/op/interp.t: Forgot to tell CVS about the test...

2001-11-15 22:10 dan

* MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
docs/parrot_assembly.pod, include/parrot/string.h: Added in support
for PMC registers for the interpreter.

Added in the docs for the runinterp opcode.

Added in code for both the newinterp and runinterp opcodes, so we
can now create new interpreters from within parrot and have them do
things. (Though we can't pass data back and forth. Yet)

2001-11-15 21:24 simon

* vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
More documentation, and other changes as discussed with Dan.

2001-11-15 19:51 simon

* classes/scalarclass.c:
De-cut-and-pasto.

2001-11-15 19:50 simon

* classes/scalarclass.c:
A little code tidiness.

2001-11-15 19:33 simon

* include/parrot/pmc.h:
Missed this in the previous commit - un-constantize the base for
user-defined PMC flags.

2001-11-15 19:28 simon

* classes/scalarclass.c:
Hey look, sanity.

2001-11-15 17:09 simon

* classes/scalarclass.c:
It seems I have completely forgotten how to write C.

2001-11-15 16:53 simon

* docs/vtables.pod:
Start of the PMC classes documentation.

2001-11-15 14:46 simon

* classes/scalarclass.c:
Changing to use a Perl-style struct instead of the union cache.

2001-11-13 23:56 tom

* string.c: Removed leading _ from string_index as function names
starting with _ are reserved to implementors by the C standard.

Also fixed string_index to use the encoding routines instead of
assuming a single byte encoding.

2001-11-13 12:59 jgoff

* string.c: Patched string_concat to accept null strings. That
test was failing. Nothing to do with ord().

2001-11-13 12:43 jgoff

* string.c: string_ord function, string_concat fixes

2001-11-13 04:52 jgoff

* core.ops: Added ord to core.ops

2001-11-13 04:35 jgoff

* docs/strings.pod, include/parrot/exceptions.h,
include/parrot/string.h, t/op/string.t: core.ops - Added ord
operator, documentation string.c - Added string_ord, _string_index
(_string_index is a static helper) Patched
string_concat to handle null strings properly. docs/strings.pod -
Description of string_ord include/parrot/exceptions.h - Added
ORD_OUT_OF_STRING exception include/parrot/string.h - Added
string_ord() t/op/string.t - Added full set of test for
ord_i_(s|sc)(_(i|ic))?

string.c contains a bit of documentation explaining the logic
behind _string_index, primarily having to do with multiple encoding
formats.

2001-11-12 22:30 simon

* t/op/macro.t:
Count 'em.

2001-11-12 22:28 simon

* Makefile.in:
Add a rule to compile "platform"

2001-11-12 22:26 simon

* Makefile.in:
Tidy up distclean target.

2001-11-12 16:54 dan

* MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
t/op/macro.t: Fixes to the assembler's macro facility and a test

Courtesy of: Jeff <jgoff@speakeasy.net>

2001-11-12 16:50 dan

* Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
stdin

Courtesy of: Jeff <jgoff@speakeasy.net>

2001-11-12 16:36 dan

* Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
CygWin

Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>

2001-11-12 11:22 simon

* examples/assembly/mops.pasm:

Trivial tightening of mops loop.

2001-11-07 23:57 ajgough

* docs/tests.pod: This is a basic quide to writing tests with
assembler.

2001-11-07 22:29 dan

* stacks.c: Added a little documentation on the cleanup parameter
for an entry

2001-11-07 14:43 dan

* MANIFEST, platforms/generic.c, platforms/linux.c,
platforms/linux.h: Portability patches.

Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2001-11-06 19:51 tom

* Makefile.in: Clean up object files in the subdirectories as well
as those in the top level directory.

Enhanced version of patch from Daniel Grunblatt
<daniel@grunblatt.com.ar>

2001-11-06 16:14 dan

* Configure.pl, MANIFEST, Makefile.in, core.ops,
platforms/generic.c, platforms/generic.h: Made things a bit more
platform-independent. Makefile still needs work to pick up changes
to the platform-specific files.

2001-11-05 21:32 dan

* docs/parrot_assembly.pod: Added docs for the GC control ops

2001-11-04 02:52 gregor

* platforms/: win32.c, win32.h:
* win32 dynamic loading functions.

Courtesy of Jason Diamond <jason@injektilo.org>

2001-11-04 00:04 brentdax

* Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
allows an absolute path to be used and gives a useful error message
if the original source file can't be found

2001-11-02 12:37 gregor

* platforms/: linux.c, linux.h:
* Beginning of dynamic loading support. Linux only for now.

2001-11-02 12:13 gregor

* MANIFEST, time.c, include/parrot/time.h:
* Removed time.[hc], since they have been superseded by the new
platform
stuff.

2001-11-02 12:11 gregor

* Configure.pl, Makefile.in, core.ops, vtable.tbl,
classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
platforms/win32.c, platforms/win32.h:
Patch from Jason Diamond to make win32 platform stuff work:

* Modified Configure.pl, mswin32.pl, and Makefile.in so that the
platform specific files in the platforms directory gets copied to
the correct directories. The Makefile will re-copy the platform.h
and .c files if the original is modified.

* #include platform.h in parrot.h instead of time.h.

* Removed time.h and time.obj from the Makefile. time.h and time.c
aren't being used anymore since that code was moved to linux.c and
win32.c.

* Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
windows.h. This required updating several files besides parrot.h.

* Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
instead of the missing identifiers (on Windows) in core.ops in the
calls to open.

* Added Parrot_sleep and Parrot_setenv to both the linux and win32
platform files and called those from core.ops. The Linux code for
these functions came from core.ops so they should hopefully work.

Courtesy of Jason Diamond <jason@injektilo.org>

2001-11-02 06:43 brentdax

* Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)

2001-11-02 02:26 gregor

* .cvsignore, MANIFEST, include/parrot/.cvsignore,
platforms/linux.c, platforms/linux.h, platforms/win32.c,
platforms/win32.h:
* Beginnings of platform support files in platform/*.[hc]

2001-11-01 23:37 tom

* classes/intclass.c: Added missing *'s to STRING arguments and
return values to avoid compiler warnings.

2001-11-01 22:21 gregor

* MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
include/parrot/parrot.h, include/parrot/time.h:
Initial "fix" of time(n) op for Win32:

* Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>

* time.c and include/parrot/time.h

First attempt at getting this working across platforms. The
macro WIN32 being tested might not be right.

* New functions Parrot_intval_time() and Parrot_floatval_time()
wrap the appropriate functionality depending upon platform.
Changed core.ops to call these.

Added obscure.ops with obscure transcendental ops.

Added simple file I/O ops (close, open, read, write):

* Initial versions Courtesy of Jeff <jgoff@speakeasy.net>

* I changed some arg ordering stuff.

* I added read/write of INTVALs and FLOATVALs.

Added environment variable ops (getenv, setenv)

Added system error ops (err(i) and err(s) for accessing errno and
strerr().

Moved print ops in with other "temporary" developer ops, since
they'll move to a devel.ops or temp.ops oplib once we have oplibs.

2001-10-31 22:51 tom

* MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
encodings/utf8.c, include/parrot/chartype.h,
include/parrot/encoding.h, include/parrot/exceptions.h,
include/parrot/parrot.h, include/parrot/string.h,
include/parrot/strnative.h, include/parrot/strutf16.h,
include/parrot/strutf32.h, include/parrot/strutf8.h,
include/parrot/transcode.h: Reworked the string code in line with
Dan's latest design that separates character sets from encodings.

2001-10-31 19:53 dan

* docs/parrot_assembly.pod: Finished I/O section of docs

2001-10-31 16:51 dan

* core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
Moved includes out of core.ops and into parrot.h where they belong
(suitably guarded with #ifdefs). Also some updates to
parrot_assembly.pod

2001-10-30 21:43 dan

* core.ops, stacks.c, docs/parrot_assembly.pod,
include/parrot/stacks.h: Added entrytype opcode to fetch the type
of the entry on the stack

2001-10-29 18:30 dan

* stacks.c: You can turn off stack entry type validation on pop by
passing in a type of 0 now. (For those cases where you just want to
throw the darned thing away)

2001-10-29 14:37 gregor

* core.ops, languages/jako/jakoc:
* New variants of the save ops to save constants on the stack.
This is
useful for saving zero arg and result counts on the stack, for
example.

* Modified jakoc to to adapt to the newly announced calling
conventions.
Even though Jako source code appears to show subroutines with
fixed
numbers of arguments and results, they are implemented with the
variable count calling convention. Future modifications will be
needed
to ensure that an exception is raised if the stack frame is of
the
wrong size (or, at least that we pop the complete frame off).
We'll
also have to make more changes to support the true
fixed-arg-count
and fixed-result-count parts of the calling convention spec.

2001-10-28 16:53 simon

* MANIFEST, stacks.c, classes/scalarclass.c,
include/parrot/stacks.h:
Unbelievably bad errors of mine, plus a type incompatibility of
Dan's.

2001-10-28 08:30 simon

* classes/scalarclass.c:
Beginning of a scalar class.

2001-10-28 08:29 simon

* make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
include/parrot/pmc.h:
This fixes the problem with vtables and pointer arithmetic.

2001-10-26 19:58 dan

* core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
include/parrot/stacks.h: Split the generic stack into a user push
stack and a control stack

2001-10-26 02:59 bdwheele

* Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]

2001-10-24 20:27 dan

* languages/scheme/: Makefile, Scheme.pm, schemec,
Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
Scheme compiler

2001-10-24 20:23 dan

* MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
interpreter needs in pdump.c. Added scheme bits to manifest

2001-10-24 16:43 gregor

* Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
* Make the assembler handle octal character code escapes in
string
constants.

2001-10-24 15:56 dan

* MANIFEST, examples/assembly/life.pasm: Added an example in to
play the game of life

2001-10-24 15:54 dan

* core.ops: Added sleep. We'll need to override this to do events
properly anyway, so...

2001-10-24 14:03 gregor

* Makefile.in, pbc2c.pl, pdump.c:
* Adapt pdump.c and pbc2c.pl to the new requirement to pass
interpreter
pointer into string functions.

Courtesy of: Ryan O'Neil <talisman580@yahoo.com>

2001-10-23 20:09 gregor

* languages/jako/jakoc:
* Terminological refinement in regexp capture comment.

2001-10-23 15:23 simon

* classes/genclass.pl:
Use a saner ANSI C construct to make MIPSPro happy.

Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>

2001-10-23 00:34 tom

* core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
strutf8.c, include/parrot/string.h: Make sure the interpreter
structure is passed to the transcoder as necessary, including
passing it to string_compare().

2001-10-23 00:32 tom

* Makefile.in: Make pdump build again by including resources.o in
the link.

2001-10-22 22:43 dan

* core.ops, packfile.c, string.c, strnative.c, strutf16.c,
strutf32.c, strutf8.c, test_main.c, transcode.c,
include/parrot/packfile.h, include/parrot/parrot.h,
include/parrot/resources.h, include/parrot/string.h,
include/parrot/transcode.h: Everything now uses the allocators and
deallocators in resources.c.

Unfortunately we lost standalone string-test mode, but I can cope
with that.

Please note that until we have a real allocation/deallocation/GC
system, this'll leak. A *lot*.

2001-10-22 20:27 dan

* MANIFEST, Makefile.in, pmc.c, resources.c,
include/parrot/resources.h: First cut to handle arena allocation of
PMC headers. (Amongst other things)

2001-10-22 19:02 dan

* Configure.pl, config_h.in, register.c, include/parrot/register.h:
Now each register type has its own mask macro, which is the right
thing to do.

Patch courtesy of Jason Gloudon <perl@gloudon.com>

2001-10-21 23:40 tom

* stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
stack chunk and add a test to test this rollover in future.

Courtesy of Jason Gloudon <perl@gloudon.com>.

2001-10-21 19:14 dan

* include/parrot/string.h: Changed string 'unused' field to the
language field.

2001-10-21 18:18 gregor

* languages/jako/: Makefile, mops.jako:
* Makefile: 'clean' target removes .list files, too. And, it does
rm -f
with wildcards rather than listing things explicitly.

* mops.jako actually prints out the
millions-of-operations-per-second
(mops) value instead of just the operations-per-second value.

2001-10-21 18:03 simon

* classes/intclass.o:
*smack*! WRONG!

2001-10-21 17:47 simon

* MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
lib/Parrot/Vtable.pm:
Initial work on PMCs. Explanation to follow

2001-10-21 15:20 gregor

* examples/assembly/queens.pasm:
* Modernize the calling conventions in queens.pasm. It was using
swap,
which now must be rotate. Also, changed to use return values on
the
stack instead of in I0.

2001-10-19 18:14 gregor

* core.ops, stacks.c, include/parrot/stacks.h,
languages/jako/jakoc:
Per Dan's request, replacing 'swap' op by 'rotate'.

* core.ops: Replaced 'swap()' by 'rotate(i|ic)'.

* stacks.c and stacks.h: Removed swap-related functions from my
prior commit, replacing them with stack_depth(), stack_entry()
and rotate_entries().

NOTE: The stack_depth() and rotate_entries() routines could
be made more efficient through the caching of the sum of chunk
'used' members from lower chunks in a field in the upper
chunks. Also, if the interpreter's stack_base was changed to
hold the pointer to the *top* chunk (since we usually come
at the stack from the top down) instead of the *bottom*
chunk. The code here at least works, and we can decide about
bigger changes separately.

For now, rotate only handles rotates in one direction and
of magnituded one. A fully general rotate would do handle
rotates in both directions and of arbitrary amounts. Again,
this implementation is sufficient for current applications,
and a feature-complete version can be developed if this turns
out to be otherwise the right type of implementation.

This change includes a new exception for ERROR_STACK_SHALLOW,
meaning "not-empty-yet-not-deep-enough-for-what-you-asked".

* jakoc: Changed the calling convention to use rotate instead
of swap (of course). Also changed the convention for return
value passing to use the stack as well.

2001-10-19 13:36 gregor

* MANIFEST, core.ops, disassemble.pl, stacks.c,
examples/assembly/queens.pasm, include/parrot/stacks.h,
languages/jako/.cvsignore, languages/jako/Makefile,
languages/jako/bench.jako, languages/jako/euclid.jako,
languages/jako/fact.jako, languages/jako/jakoc,
languages/jako/mandelbrot.jako, languages/jako/mops.jako,
languages/jako/primes.jako, languages/jako/queens.jako,
languages/jako/sub.jako:
* New stack functions push_entry(), pop_entry() and swap_entry().
The first two exist for the support of the last one. These
functions don't care what is in the stack entries. These exist
to support the new 'swap' op (see next bullet).

* New op 'swap' for swapping the top two elements on the stack.
This is necessary for passing arguments to functions, since
the return address will be on top of any arguments that have
been pushed on the stack. This way, you can use a (swap, pop)
pair to retrieve each argument (for subroutine linkage).

* Disassembler now prints numbers in decimal by default, with
a new '-x' flag to turn on hexadecimal display. Since other
members of the Parrot Tool Set use decimal by default, this
makes it easier to compare output from the various tools.

* Jako compiler has more explanatory comments and the following
new features:

* Lexically scoped variables.

* Subroutines that take arguments and return values:

sub int foo(int bar) {
if (bar == 1) {
return 42;
} else {
return 13;
}
}
* ... if (...) and ... unless (...) statement modifiers
can be used on next, last and redo.

* Bitwise and (&, &=) and or (|, |=) ops.

* Type names are just 'int', 'num', 'str', and 'poly' now.
The old long names 'integer', 'number', 'string', and
'polytype' are no longer valid.

* Integer variable assignments can now use 0b (binary),
0 (octal) and 0x (hexadecimal) radix prefixes on literals.

* New Jako and Parrot assembly examples queens.{jako,pasm} for
solving the eight-queens problem. The assembly example is a
hand-modified version of the assembly code produced by the
Jako compiler from queens.jako. A few unnecessary ops have
been removed, lots of unnecessary labels have been removed,
and all the Jako source code comments have been removed.

* Makefile and .cvsignore in languages/jako modified so that
the assembler produces listings when assembling the programs,
yet the *.list files are ignored by CVS.

* Made the default target in languages/jako/Makefile 'all'.

* Modified some of the Jako examples to use some of the new
features of Jako, such as subroutines and lexical variable
scoping.

2001-10-19 02:43 gregor

* runops_cores.c, include/parrot/runops_cores.h:
Bug fix (gcc doesn't complain, but MIPSpro does):

* Added missing extern to runops_cores array declaration in
include/parrot/runops_cores.h

* Also added 'const' there and in runops_cores.c

2001-10-18 15:18 gregor

* .cvsignore, include/parrot/oplib/.cvsignore:
* Ignore the vtable-related generated files.

2001-10-18 15:14 gregor

* core.ops:
* left and right shifts now allow the 2nd argument to be a
constant.

2001-10-18 14:55 simon

* make_vtable_ops.pl:
This is C, not Perl. How on earth did that even compile?

2001-10-18 14:54 simon

* make_vtable_ops.pl:
More vtable ops.

2001-10-18 12:33 simon

* Makefile.in, make_vtable_ops.pl, vtable.tbl:
Initial stab at vtable opcode creation stuff.

2001-10-18 02:15 gregor

* MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
include/parrot/interpreter.h, include/parrot/runops_cores.h,
include/parrot/trace.h: Preparation for autogenerated runops cores:

* Split tracing and runops core stuff out of interpreter.c into
trace.c and runops_cores.c

* Similar split of stuff from include/parrot/interpreter.h

* Manifest and Makefile.in updates to make things still compile.

2001-10-18 01:21 gregor

* Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:

* Makefile.in: examples/assembly/mops.c depends on pbc2c.pl

* Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl

* ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)

* ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)

* pbc2c.pl: Removed explicit include of <math.h>, replacing it
with
copy of $ops->preamble.

2001-10-17 22:32 bdwheele

* interpreter.c: Moved op dump code into trace_op_dump, per Dan's
request.

2001-10-17 22:08 gregor

* Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
* Now handles label-and-comment-only lines.

2001-10-17 22:04 bdwheele

* interpreter.c: added more comprehensive trace output

2001-10-17 16:50 tom

* Makefile.in: Removed the explicit rule for building mops.o from
mops.c so that the implicit rule for compiling C files is used
instead. This means that the chosen C flags are used, including any
optimisation options.

2001-10-17 15:24 tom

* core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
op explosion logic to be able to handle exploding this:

sub(i, i|ic, i|ic)

into these:

sub(i, i, i)
sub(i, i, ic)
sub(i, ic, i)

without also generating this unwanted version:

sub(i, ic, ic)

The enhanced version rejects any expansion where there is more than
one expanded argument and all the expanded arguments are constants.

2001-10-17 14:20 simon

* Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
Build fixes to use correct Perl version and ensure that things are
running in the right directory.

Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2001-10-17 13:16 simon

* Makefile.in:
core.pm is more critical than that.

2001-10-17 13:05 simon

* core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
"Explode" ops into multiple versions for different parameters.

Courtesy of: Tom Hughes <tom@compton.nu>

2001-10-17 12:54 simon

* Makefile.in:
Fix dependencies and cleaning.

2001-10-17 12:45 simon

* Configure.pl, Makefile.in:
Fixes to make Parrot compile without the temporary build hack

Courtesy of: Jason Gloudon <perl@gloudon.com>

2001-10-16 20:43 gregor

* Makefile.in:
* Fixed dependencies for building Parrot/OpLib/core.pm

2001-10-16 19:35 bdwheele

* core.ops, t/op/string.t: Changed set s,sc to use string_copy &
added test, thanks to Alex Gough

2001-10-16 16:49 bdwheele

* core.ops: added opcode variants for constants and 3 arg concat

2001-10-16 15:12 bdwheele

* core.ops: added "set Sx,Sy" as a string copy to match the other
register-to-register copies available

2001-10-16 13:09 gregor

* core.ops:
* Added #include <sys/time.h> in the preamble for gettimeofday().

2001-10-16 13:09 gregor

* Makefile.in:
* Removed cd t; make, which no longer applies

2001-10-16 03:18 bdwheele

* core.ops: fix save & restore operations to push correct type onto
stack. [good eye to Jason Gloudon for noticing this]

2001-10-16 01:38 bdwheele

* core.ops, register.c, examples/assembly/fact.pasm,
include/parrot/register.h: send in the clones: clone routines for
parrot + example program

2001-10-15 22:37 gregor

* MANIFEST, Makefile.in, examples/assembly/.cvsignore,
examples/assembly/Makefile, examples/assembly/bsr.pasm,
examples/assembly/call.pasm, examples/assembly/euclid.pasm,
examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
examples/assembly/mops.pasm, examples/assembly/stack.pasm,
examples/assembly/substr.pasm, examples/assembly/trace.pasm,
t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
t/test4.pasm, t/test5.pasm, t/trace.pasm:
* Moved examples from t/*.pasm to examples/assembly/*.pasm, with
some
renames so the names match what they demonstrate.

2001-10-15 22:18 gregor

* core.ops, t/test.pasm:
* time_n uses gettimeofday() to get sub-second times.

* t/test.pasm uses time_n directly rather than doing int stuff
and
converting to num later.

2001-10-15 12:28 gregor

* t/: test.pasm, test2.pasm, trace.pasm:
* t/test.pasm prints using string constants instead of string
regs.

* t/test2.pasm assembles (using implicit op modes)

* t/trace.pasm updated for new behavior of trace_ic, which does
not
require an 'end' after 'trace'.

2001-10-15 00:47 gregor

* core.ops, interpreter.c, test_main.c,
include/parrot/interpreter.h, t/test.pasm: * New interpreter flag
PARROT_PROFILE_FLAG

* New runops cores to handle profiling

* Support for -p flag in test_prog to enable profiling

* New profile_ic op to control profiling at run-time

2001-10-14 21:54 gregor

* core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
lib/Parrot/OpsFile.pm: Integrated op documentation.

* core.ops now contains POD documentation of ops, interspersed
with the
ops themselves

* Ops are organized into POD =head2 sections

* Parrot/OpsFile.pm now treats the preamble of the ops file as
anything
up to the first POD directive OR op definition.

* docs/Makefile now generates core_ops.pod from core.ops vi
perldoc -u.

2001-10-14 11:58 simon

* Makefile.in:
Unbreak Digital Un^W^WTru64

2001-10-14 11:00 simon

* Configure.pl:
Remove weird typo.

2001-10-14 10:56 tom

* Configure.pl: Stop Configure trying to make op_info.c and op.h as
op_info.c no longer exists and op.h is no longer a generated file.

2001-10-14 10:54 tom

* Makefile.in: Added vtable.h to the list of things removed by the
clean target.

2001-10-14 01:43 gregor

* .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
include/parrot/.cvsignore, include/parrot/interp_guts.h,
include/parrot/interpreter.h, include/parrot/op.h,
include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
t/op/stacks.t, t/op/string.t, t/op/trans.t:
Moby Patch:

* basic_opcodes.ops and opcode_table replaced by core.ops

* process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
and ops2c.pl. These convert *.ops to *_ops.c and
include/parrot/oplib/*_ops.h

* New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm

* disassemble.pl modified to use

* interpreter.c modified to use structures in core_ops.c instead
of the old op_info and op_func stuff. We're not yet to the
point of handling multiple oplibs at a time, but we are getting
there...

Fingerprinting stuff disabled for now. We used to go off
opcode_table. We need to rethink this. I have some ideas to
make it unnecessary, but it remains to be seen whether others
will like the direction they take us.

Termination condition for while(){} loop in runops is now
(pc) instead of (*pc). Any op can cause a HALT by returning
a NULL pointer. Ops end, bounds and trace all do this. So, now
the 'end' op body is actually executed, although all it does
is HALT.

* Makefile.in modified to perform a test build using pbc2c.pl,
which is the bytecode --> C compiler I've posted to the
list before.

* Op full names are now autogenerated. Op root names must not
contain underscores, so some op renamings have happened.
Such as clear_i becoming cleari.

2001-10-13 11:49 simon

* Configure.pl, MANIFEST:
Make parrot actually build again.

2001-10-12 21:34 dan

* docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
opcodes

2001-10-12 20:56 dan

* MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
generic stack now in. We also have subroutines, of a simple sort!

2001-10-12 19:15 tom

* t/op/string.t: Improved string comparison tests try all string
combinations with each of the comparison ops.

2001-10-12 19:09 dan

* interpreter.c: Properly sets up generic stack now

2001-10-12 19:09 dan

* include/parrot/interpreter.h: Fixed stack chunk struct type in
interpreter structure

2001-10-12 18:59 dan

* stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
changes to get the generic stack working

2001-10-12 18:59 dan

* Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
hints/vms.pl: Made the changes to figure out mask bits for various
register and stack chunks

2001-10-11 22:09 dan

* docs/parrot_assembly.pod: Tossed the parameter for return

2001-10-11 19:28 tom

* strnative.c: Assignment, not comparison. (Plus formatted for
coding standards)

Courtesy of Bryan C. Warnock

2001-10-10 19:21 tom

* basic_opcodes.ops, opcode_table, string.c, strnative.c,
strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
include/parrot/string.h, t/op/string.t: Added support for string
comparisons and extended the comparison ops to include comparison
of strings.

2001-10-10 17:58 dan

* MANIFEST: Shouldn't have added vtable.h to the manifest...

2001-10-10 17:54 dan

* MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
lib/Parrot/Vtable.pm: Now spits out the #defines for the various
vtable type entries properly

2001-10-10 15:37 dan

* Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
parse new vtable.tbl file now that I've actually checked *in* the
new format vtable.tbl file...

2001-10-10 15:32 dan

* vtable.tbl: New Column to indicate the type of the vtabel entry
so we can know how many slots it takes

2001-10-10 05:26 thgibbs

* Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
allow parrot to compile. PACKAGE is not defined, therefore, I
added a struct before it to have it not complain until we define
PACKAGE. Also, there was an extra shift in Vtable.pm and a missing
semicolon at the end of the struct declaration.

2001-10-10 05:09 thgibbs

* Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
string constants of the form U"string" become unicode encoded
parrot strings and the form N"string" become native encoded parrot
strings.

Courtesy of: Tom Hughes <tom@compton.nu>

2001-10-10 04:55 dan

* vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
support for generating the vtable function table offset macros

2001-10-10 01:05 simon

* t/op/integer.t:
The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
compiles into the mod op, not the cmod_i op, hence wasn't testing
what it thought it was.

Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>

2001-10-09 03:45 thgibbs

* Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
assembler to generate unicode strings.

Courtesy of: Tom Hughes <tom@compton.nu>

2001-10-08 19:30 brentdax

* Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
info for Parrot::Config to remember, more flexible test.c stuff

2001-10-08 15:04 gregor

* basic_opcodes.ops:
* Removed trash from early mod_i experiments (pardon our dust)

2001-10-08 14:56 gregor

* basic_opcodes.ops:
* Fixed a couple of typos.

2001-10-08 14:45 gregor

* basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
Arithmetic enhancements:

* Renamed existing mod_i as cmod_i and added "corrected" mod_i:

NOTE: This "uncorrected mod" algorithm uses the C language's
built-in
mod operator (x % y), which is

... the remainder when x is divided by y, and thus is zero
when y
divides x exactly.
...
The direction of truncation for / and teh sign of the
result for %
are machine-dependent for negative operands, as is the
action taken
on overflow or underflow.
--
[1], page 41

Also:

... if the second operand is 0, the result is undefined.
Otherwise, it
is always true that (a/b)*b + a%b is equal to z. I both
operands are
non-negative, then teh remainder is non-negative and
smaller than the
divisor; if not, it is guaranteed only that the absolute
value of the
remainder is smaller than the absolute value of the
divisor.
--
[1], page 205

This op is provided for those who need it (such as
speed-sensitive
applications with heavy use of mod, but using it only with
positive
arguments), but a more mathematically useful numeric mod based
on
floor(x/y) and defined with y == 0 is provided by the mod_i op.

[1] Brian W. Kernighan and Dennis M. Ritchie, *The C
Programming
Language*, Second Edition. Prentice Hall, 1988.

* Added "corrected" mod_i:

NOTE: This "corrected mod" algorithm is based on the C code on
page 70
of [1]. Assuming correct behavior of C's built-in mod operator
(%) with
positive arguments, this algorithm implements a mathematically
convenient
version of mod, defined thus:

x mod y = x - y * floor(x / y)

For more information on this definition of mod, see section 3.4
of [2],
pages 81-85.

References:

[1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
Millennium* Springer, 1999.

[2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
*Concrete
Mathematics*, Second Edition. Addison-Wesley, 1994.

* Added mod_n, using the same formula as above, but with FLOATVAL
arguments.

* Added cmod_n, using the C math library's fmod() function:

NOTE: This "uncorrected mod" algorithm uses the built-in C math
library's
fmod() function, which computes

... the remainder of dividing x by y. The return value is x
- n * y,
where n is the quotient of x / y, rounded towards zero to
an
integer.
-- fmod() manpage on RedHat
Linux 7.0

In addition, fmod() returns

the remainder, unless y is zero, when the function fails
and errno
is set.

According to page 251 of [1], the result when y is zero is
implementation-
defined.

This op is provided for those who need it, but a more
mathematically
useful numeric mod based on floor(x/y) instead of truncate(x/y)
and
defined with y == 0 is provided by the mod_n op.

[1] Brian W. Kernighan and Dennis M. Ritchie, *The C
Programming
Language*, Second Edition. Prentice Hall, 1988.

* Added and modified tests as appropriate for the above.

2001-10-08 08:49 thgibbs

* include/parrot/exceptions.h, include/parrot/parrot.h,
include/parrot/string.h, include/parrot/strutf16.h,
include/parrot/strutf32.h, include/parrot/strutf8.h,
include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
strings for utf8, utf16, and utf32.

Courtesy of: Tom Hughes <tom@compton.nu>

2001-10-08 08:10 thgibbs

*