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
|
New in 2024.09:
+ Improvements:
+ Additions:
+ [6.e] Provide `is revision-gated("6.x")` trait [c2c8d7a0][6fa7c425]
+ Fixes:
+ Deprecations:
+ Internal:
+ Use binding for all sub aliases [e1a77dc3]
+ spell out MVMROOT macro for now for compatibility [46d219b4][46d219b4]
+ set-env.ps1: Fix detecting build tools with multiple installed [c4c540eb]
+ Micro-opt for non-existing keys in hash [60dbc201]
+ Micro-opt for %h<a>:exists [dd66162a]
+ Micro-opt %h<a>:exists:p [83d7a7ff]
+ Micro-opt %h<a>:exists:kv [cc194cdc]
+ Add dedicated { }:p|kv|k|v candidates [36e8403d]
+ Micro-opt { }:delete:exists [753c7559]
+ Micro-opt { }:delete:(:p|kv) [e2288121]
+ Micro-opt { }:delete:exists:(:p|kv) [eb7a8279]
+ Micro-opt { }:delete:(k|v) [49be2cf5]
+ Remove all SLICE_ONE_HASH references in %h<key> [74b45bb3]
+ Simplify %h<a b c> handling [4646481e]
+ Micro-opt []:(k|p|kv|v) [0dd0d72e]
+ Micro-opt [x]:exists [b093bc42]
+ Micro-opt []:foo by Boolifying in the signature [50b86140]
+ Micro-opt [foo]:(p|kv|v) [86a5a10c]
+ Actually only allow concrete iterables in %h{...} [045644e0]
+ Address a small but significant corner case in the optimizer [ba303f4a]
+ Fix small breakage in the Mu:U sm optimization [fdeb87d0]
+ Add test for "not-Mu:U" ~~ Mu:U [6e182acd]
+ Remove $?FILE and $?LINE where they don't make much sense [2ee68bff]
+ Make sure we have a Bool to check against with :exists
+ RakuAST Development:
+ over 30 commits, 142/153 (make test), and 1158/1355 (make spectest)
[778c7a63][65c318f0][9ffadf80][7c3b2b18][1081b051][c612b32b][59257a4b]
[7857b802][ed5c906c][1fda647f][0c9a00ad][a27ae5ed][3e2684a4][a383c8bb]
[307efa6d][cd0e6ee6][81d43af6][38fa6c48][a8111db8][a260251b][07c8b119]
[d0a70281][4ccbad96][7ddaf755][850a5a71][5032aad2][fb7d3e7f][6888e977]
[866eec37][dde75687][27565cc1][8162f3eb][8eef4c79]
New in 2024.08:
+ Improvements:
+ Ensure path-spec is a Str (in CompUnit::) [c1742f04]
+ Additions:
+ Implement @a[**] with hammering flattening behavior [0bdd27db]
+ Fixes:
+ Ensure that sunk failed lookups in native arrays always explode [a8745fe8]
+ Fix iterating over Junction with non-simple loop bodies [fde5d87f]
+ Prevent dispatch errors on Regex.Bool [29a03213]
+ Deprecations:
+ Internal:
+ Fix precomp build [a445da42]
+ Support will complain on X::Syntax::Number::LiteralType [43d2b0fb]
+ RakuAST Development:
+ over 200 commits, 142/153 (make test), and 1144/1356 (make spectest)
[3cf20717][b250ffe7][c6067668][9ef8949f][03ed5ae7][0fea3de3][76b4c655]
[57624715][4ff3dc07][1ea5fb7f][6276062f][5b9b6cff][3b4d36ad][315afc85]
[4d8d6f08][63b87f25][96e7d21f][927a98b9][1391345b][bbce2206][25005c9b]
[f600848a][a2182152][466ca907][71278b66][e20fb393][06a4cccd][85a91398]
[6075bdf5][630c0115][1fa1a949][00daa29c][afca9150][58f1edf3][8eeaf0ba]
[ba1594f2][a23bc866][f61ed6b9][b148ca72][d66097a3][03e773b9][a7af6dad]
[9bb892ab][46d9b19c][5baa9076][d9b8ab79][dfa74eca][4c60227d][bae68c74]
[940938c8][0b04d210][9291f43f][ee3c85e7][87065a32][bfdbf1cf][c5267fc7]
[05a9907e][1c912bc5][aa0ad4c6][c21e0fd9][5b24cf03][45d891a5][fed4ae38]
[70346a93][0f1e175e][9635b3cb][1ab4600a][eec9a322][6a72394c][f74da8c2]
[8ac3f1eb][85489cb4][e74deef2][f7eea363][8c9263f1][9af44342][eb9ee510]
[0bf7c876][0ad81419][bb7de9ca][d899e868][835bf7a2][8507514a][efeac953]
[ef959d08][b8762051][846bc284][e8bd820b][d93f6970][0f862af0][977b11e4]
[5f5fe4fe][bcb39d0b][06d11b59][e007c708][6f687f10][e16400b1][d7130cb8]
[43af30aa][09deed5d][99c530a0][6e253ef5][e6c6f5c0][10fecfb5][74c48ea3]
[3d9361a9][a80fcb1a][b50eb200][7971a150][80abf79c][87f150f7][1586e96a]
[3a615004][1549a841][3240b2fc][575f0e8e][d853a08f][ae98e84c][0091408b]
[d74604d8][af7acf0c][081147ee][0b4048f2][1a616bfb][ed1c48a5][dfd2ccda]
[d87bd876][d9037aea][cd1aae89][f340f39e][bac1ee8f][c3c6e458][4cfc7900]
[10297c64][bc16b3c2][191787bb][f6b628f3][ebfd4dad][db44e946][5acdfcc0]
[1887d27b][466740bb][ec381c70][37b5aeb8][1849fc8b][c1f424a5][8bbd7104]
[d0be5d1b][7114c6c1][5fc65475][331d5ea2][ba94f702][5cca0b4f][1b843c75]
[82e5aada][dcec75e9][c0880471][76d9e1c2][86502c46][25e6280a][87db5bdd]
[e6c2490e][f829dd37][efea1da0][67ab2fb4][a04a8199][56a80347][ce311700]
[4397c0e2][9f34623f][cd674298][06e1fe6c][f61870cf][5de09e0b][a90eeabb]
[866c77d8][c7c25037][0be319b8][4d35f1e3][70059eb1][bce9c3db][74b357b0]
[aada362f][c2fac3ba][11bf1065][f7c1242a][a30ba8aa][fd9cd0a5][c1520df7]
[5c532a3e][35b89a37][c7dd2bc5][7907eeab][09a96033][b46572e2][24bc8f41]
[e69bb58a][de09b60b][bf371c67][f3c9a598][6ad7aaa9][0932318b]
New in 2024.07:
+ Improvements:
+ Improve execution speed by about 5% on Intel hardware and the MoarVM
backend by disabling the EXPRession JIT by default [4d3723bd]
+ Additions:
+ Add :hammer named argument to .flat for thorough flattening [74cfe8e3]
+ Fixes:
+ Bump NQP to get fix for return from LEAVE phaser on MoarVM [0554ae9e]
+ Partially fix mixed bin/no bin reads in IO::Socket [5008807b]
+ Fix sprintf thinko in BUILDPLAN module [6536e756]
+ Deprecations:
+ Internal:
+ Change colabti log links to irclogs.raku.org links [3e4d19bb]
+ Remove the signature check from .duckmap for now [1bd985a3]
+ RakuAST Development:
+ Added Raku grammar based syntax highlighting API, and basic support
for highlighting using ANSI color codes
+ over 60 commits, 144/153 (make test), and 1065/1356 (make spectest)
[4085432e][3e55eb62][17f0148a][02526784][fd72fc3e][692677ff][ea6c68ab]
[604d6617][8752d081][e0afa0a8][a7b41f73][31336240][c7af1953][f8b56432]
[9d959fae][5795560f][cf3f0aa2][a14a94df][d782d8b0][17f89c6f][d57b4109]
[267edeb1][c50e477c][7a0c0e3f][b984ddfb][1534733d][c64dc9f4][39b987ab]
[9fc5f662][5a431ad4][133a25a2][115fdee2][6b9a163e][59fb9ebc][ca479813]
[552a88ba][b09a5ee8][38ba882a][8e00a517][527b9788][3ab6c96b][509ee1b6]
[8a138038][3079f914][c56375da][f8e64356][4dae7e5b][55754f8d][015e4a3b]
[ff48e039][dcaf53e6][487f1eda][f84ae43b][2144863d][fab5c99a][f4b4b219]
[e622928d][a469bd8d][19bd06b5][16b059c0][62e523a9][2992649f][088180b6]
[d7731e7d][1004a2ad][26622f63]
New in 2024.06:
+ Improvements:
+ Use inclusive TPF alias. [271f8320]
+ Give `Seq` some `.head` shortcuts (prevents unnecessary reifying) [07865140]
+ Check expectations of `.deepmap` / `.duckmap` / `.nodemap` [18d128ab]
+ Make `Seq.end` return a proper `Failure` [bea61881]
+ Additions:
+ Fixes:
+ Make sure the `LAST` phaser is always fired in `.map` [16ce594e]
+ Don't bother calling op in `.duckmap` on sig failure [af6df816]
+ Fix regresssion on `NativeCall::Compiler::MSVC`, introduced in 2024.05 [cc52ff12]
+ Don't set the `FIRST` flag always when iterating (fix and micro-optimization) [ad0afb04]
+ Deprecations:
+ Internal:
+ Micro-optimize .head(N) [141228a3]
+ RakuAST Development:
+ 20 commits, 144/153 (make test), and 1063/1356 (make spectest) [3f804996]
[9c53c92e][1ddbcbc1][5c10672c][16d126bc][ffc59e46][0cde5bfc][0b937b15]
[946ab902][c99d4369][1a61ed02][587cd72f][e2fa55b9][46511d59][49751627]
[a51ee10d][5b44a64b][b2f81c23][5dd0ad6f][093009a0]
New in 2024.05:
+ Improvements:
+ Provide the host:port that compose the address in use [ecd2dd46]
+ Improve .IO.open.lock failure messages [774cc864]
+ Make (^Inf).reverse fail rather than infiniloop [26f1c494]
+ Provide deeper context into `run` failures [aca5e4c1]
+ Additions:
+ Add rakudo flavor [6e55b118][c888a116][f253d68b][69a33564]
+ Add worry for WhateverCode on LHS of smartmatch [d9863e9a]
+ Add Cool.nomark in 6.e [5eb1da8c]
+ Introduce Any.are(type --> Bool:D) in 6.e [23b94de6]
+ Add :invocant option to Parameter.new [f17cd58f]
+ Fixes:
* Fix various unicode property bugs [22492982]
+ Provide conditional exit status for USAGE [a4c7d5d1]
+ Supply an Any.match method candidate for Any:D [d6dc3610][51b0ef25]
[881c1e87]
+ Fix mysterious failures when class construction process order changes
[2cba37f5]
+ Make sure type objects without MRO don't break .are [e227a4f2]
+ Fix memory leaking in infinity-bound ... [99bfab8c]
+ Allow the use of enum values in MAIN that shadow core types [e3ad75a6]
[f5218834][5fbda71d][45966a8c]
+ Clarify Range.rand failure cases, fix infinite loop, and optimize
[06e45d89][f233458e]
+ Z<> is a comment - do not render it as text. [c1cc007f]
+ Allow reduce to return containers as generated [ecd75809]
+ Make dd handle Failures better [0a0435d7]
+ Make dd be more verbose about hash/array elements [e1bd3ffd][2b2e896b]
[184c2ec2]
+ Deprecations:
+ Internal:
+ Streamline NativeCall [40c7b77f][30410664][bf81c62f][4a64b3af][d5eb39f7]
[0c9e990d][4de8e84a][d374dbb2][89407558][14bde025][9ef2df5b][586c7832]
[73776552][8dd91896][3ec47540][9d297a3d][335a0b0c][46a8f324][967d1a5a]
+ Streamline NativeCall::Dispatcher [8a7ed37c][2182fee5][9b078a12]
[ed4db102][c9a0de80]
+ Move sub map_return_type logic to NativeCall::Types [b6cc74b5]
+ Streamline NativeCall::Types [3861b8f8][89d4d42b][75fa3da4][d0cbe4ae]
[b36cceb3][b6028f9d]
+ Streamline NativeCall::Compiler::GNU [bd426162][92da00a9]
+ Only ignore last arg in a Method if '%_' (NativeCall) [f25dcacc]
+ Streamline NativeCall::Compiler::MSVC [cb6e5080][92113fe4][7766fbbd]
[ca4bd66c]
+ Use HLL::SysConfig to obtain path-sep [c8855956]
+ Refactor t/packages to follow idiomatic distribution file structure
[d25af712]
+ Use NQP for open mode detection in IO::Handle.lock [cf87ccf9]
+ Micro-optimize basic iterators [2e4bc48a][72b46fe2][6846c49e]
+ RakuAST Development:
+ 43 commits, 143/152 (make test), and 1063/1356 (make spectest) [fe579a3b]
[d890d89e][cd197264][5485db22][ee525814][fcbd5303][622f58ad][b50fb0c4]
[1278c5bb][c0c5e9ed][4e547d17][5a1e0161][a3907c3a][80ae959a][4988fb37]
[331f0192][1d5cd34f][24f3a168][eee426ea][66c4acad][5748ac20][aec7a49d]
[22a7a897][ddde58be][2c3602de][39705b00][3ce05fa0][3a928a56][5a122c60]
[22932c27][097b50cd][a26b756a][a1f98bf1][13f5a744][b08810e4][a690eecc]
[53eebb7c][cd74aa79][de12a755][5fb665ba][042660d8][b7116755][851aa490]
New in 2024.04:
+ Improvements:
+ Make X::Syntax::Number::LiteralType a subclass of
X::TypeCheck::Assignment [5b7cf94c]
+ Make Rakudo up to 2x as fast on the JVM backend by using fastutil [05aae712][23a9fdbe]
[955bc856]
+ Additions:
+ Add Allomorph.narrow [e6a28e1c]
+ Add dispatch disambiguation via 'is item' parameter trait [70f16f63]
[3b42de18][36901bb0][0ce55752][c02bd131]
+ Fixes:
+ Fix "No exception handler located for catch" trying to report
method-not-found [b61de7a9]
+ Fix naming of anonymous classes [ad12f2a9]
+ Increase JVM max heap [2d76783a]
+ Fix reporting of X::Role::Initialization errors [0eb99b8a]
+ Fix race condition in lazy deserialization on MoarVM backend [d6320eaf]
+ Fix obscure pattern bug in regex engine on MoarVM backend [f56a3973]
+ Deprecations:
+ Internal:
* Streamline "core" (bootstrap, core, metamodel) [169b28f3][b37302cb]
[010d6fe5][b5f3b474][67f662a4][8a628aa2][9c71fae0][73e1c716][fd6ffe33]
[aa02c8b8][b411252a][d1a5b479][3b736e56][c7d24b3d][d1fbc0d7][ef942c5c]
[00256ffb][189ce4f7][6c663f78][dc243d12][dab45fa3][1af29151][5ed668d4]
[1b5c0820][039dbe49][c48fc1e3][9ecfb483][54a4c8cf][4d33d371][45dfb1bd]
[ab1784b8][5cd846b2][758500f4][802e8140][e35ac0b4][555f4b00][406ad16b]
[392213dd][037fab6c][502a6a15][a4423566][9f0b8689][5256102d][a153c729]
[87feb40a][4cec36b7][56970893][b8330182][8753b0d9][b1167851][57498126]
[df5fc0e3][e57d8233][ece58501][d442a5ba][4fa4ca52][5c27242b][f4943c9b]
[c6adc333][cee9f572][0f3c775f][8159ed44][c751668b][d29d3c11][0f8c0d7e]
[35b87f36][48e87465][5cbd82d3][7235b599][f329c52d][2a233d52][e7d72619]
[309686a8][f73683f7][0c2c8cf9][9fb5674a][4e79d6b7][5211345d][a15f9f41]
[75e63ce6][b1aaf338][f6cc5d95][45491ef5][5b80043a][5287d7ea][22795931]
[25573f0c][1ee6bc46]
+ Convert uses of `if nqp::getcomp('Raku').backend.name eq <...>` to
`#?if <...>` [f43128bd]
+ RakuAST Development:
+ 91 commits, 142/151 (make test), and 1057/1356 (make spectest) [5c195f12]
[b4f58fe3][821e056c][c467e04c][d31e99e4][1f02a800][3709aeb2][e5c35555]
[cdaca915][43fe36fb][ab0a1e12][9d6f2842][33f41e6a][7ce8b6e5][0d1095a0]
[6507e0cf][06381659][30ff12ec][1f458a0f][e066203d][7ae4c397][e2e7e583]
[9b90a609][ea84171c][fe279b05][65f349a5][ea0aa21d][ca0d1708][e64145d2]
[a4b6c401][54854d93][3a70c503][f0d5a942][c6fb210a][1d609daf][9b377fcd]
[e75c4168][1ccb95d4][c9b75d73][ea0b0d15][aeccbb40][6be6f159][08d439b3]
[d0ed8cd9][312a5d85][9ca35fb9][69883683][e52a456f][09abf820][3a836f23]
[c1582285][830727e5][08b77e94][4adf9395][fce6e368][b6d8425d][90cbfde5]
[f7e50318][cee25a7c][c0f0ad3c][151236e8][c053144a][b213dba7][8f568c66]
[dd62a30b][1bd789e9][a219c9bc][35cc0d6a][171307e9][5f8c7bbe][de518e47]
[6c0e2466][9624046c][b6e8f275][7d855c4b][d1cf55cb][54ff30e8][f3b9b8e0]
[6cf9a5cb][541a9c7d][c9c2197d][d7ded459][76f0278c][326dc12b][dbe698c4]
[abc1a5f5][604663a3][c118661d][b899592b][eb1069ac][7de82585]
New in 2024.03:
+ Improvements:
+ Additions:
+ Fixes:
+ Add Parameter.of method [586f32cf]
+ Unbreak the JVM build [612dd255][fa853abc][55518662]
+ Unbreak t/harness [9395af5d]
+ Deprecations:
+ Internal:
* Streamline "core" (bootstrap, core, metamodel) [50fc7284][eea99c2b]
[704fda60][96c0a5d5][485fc866][a4ac1720][97a0eeab][18989a66][fb7e44fc]
[bef608a8][4b124a98][1491f822][8e863c81][7dee0530][375393fa][4ee064dc]
[ec11e06b][8f9ad9a3][8b00ff5b][0b65e78b][3a66dc10][c9ecbda2][48509e00]
[70b8b229][591792d7][99f52bcd][70be8a09][4581555c][bc8f695e][c283942f]
[b4a21078][2a3a1f35][b107962c][76030573][14be2dab][3e476241][e294a3e0]
[3eed834c][43017b21][4d91de6d][01077ad7][1f56f1c6][f73b4ccf][0852efe9]
[8ee1919d][28a51cfe][008cd24e][1f073f84][9d7a4c26][b83e6fa5][aa1f2274]
[d8afa16e][08d9ebf6][85e07ec8][b73ed690][d8e9c1cd][c183d282][cf474c92]
[ae526254][57c92969][a55e7fd0][dce688d4][7ab1bba3][68628fe3][cf46bd5e]
[20fbb0f1][67c3b662][be990a2e][efeb9d77][b110ebb7][c49e05d8][20376f07]
[98ca8eb9][6945637f][85b65a9c][fc7c3f47][ccf48ad2][79ad42c7][18abe8c3]
[adff147e][bafa92a6][72c491f8][2b6cfaa9][e583fa08][ca2f0d1c][621b2c75]
[53649d4f][8dffcd30][4cdb8a3c][6312d5da]
+ RakuAST Development:
+ Fix INIT blorsts running in wrong scope [237469d2]
+ Treat =place as a directive [b82fa83d]
+ ignore =finish if there is no code [f997c36c]
+ fix declaration after bind in ExpressionThunk [b1b4329b]
+ Replace fallback resolver with compile time lookups in BEGIN time code
[639f20a2]
+ Fix QAST::Var type of captures [9a983ff4]
+ Add a few missing set_braid_from_self calls to Grammar [4152833b]
+ Support CORE:: compile time lookups [62b89107]
+ Support CORE::v6<[cde]> compile time lookups [8467b84a]
+ fix accessing 6.e PseudoStash at compile time [196fbee6]
+ fix look up of our scoped subs in my scoped packages at compile time
[3853a0f8]
New in 2024.02:
+ Improvements:
+ Better errors for common array parameter mistakes [47fb8c35]
+ Improve stability in heavy async situations [761153bc][5c289878]
+ Additions:
+ Add Int/Real coercing versions of `infix:<div|mod>` [71c0151a]
+ Implement sub form of &trans, mainly to support feed operators [b238fad8]
+ Provide native int coercers to Int/Cool [a67842ac][1eaa9d71][dc5414d6]
+ Fixes:
+ Avoid leaking repo.lock handle [155818f4][e6207699][7ca96bbd][a723c387]
+ Deprecations:
+ Internal:
* Document and/or streamline dispatchers and related [d176728c][78d4fbc0]
[344f7978][e6fd943f][02bc10c2][ccbe370a][07049e7f][b151e2d7][35760ceb]
* Streamline "core" (bootstrap, core, metamodel) [51297879][bae06a2c]
[6117df24][e93208ce][b0dd4ef4][6b231533][024212cd][8e840a51][19da50e3]
[88151678][975b6634][1dfd7b4b][9f0d361b][80ac4336][760e7a72][eef53371]
[02aaf9e9][0b759a7a][614571d2][67153138][4c86ef77][dab2c235][c944dae4]
[2e4113c5][69877047][d49cd4e0][9a828454][de923f1b][1ce9b4c6][3c9f07a8]
[24a1e67c][4181d461][2c64cbc7][4f64b487][5585454f][cf773dc2][68cd850f]
[fd936efe][04229899][3c218265][192d7d0a][3271329c][71dcfd42][52dfda3f]
[b720babd][9f7a3419]
+ RakuAST Development:
+ RakuAST: some nano optimizations [9478d5c7]
New in 2024.01:
+ Improvements:
+ Make dd show types better [57bda882]
+ Make use of native unsigned integers better performant [c0340fc7]
+ Add dispatchers for handling unassigned elements in hashes and arrays
resulting in better performance in some specific idioms [0e2e20a4]
[fa4cc823][1ef51856][70d53fb6][79728078]
+ Additions:
+ New nqp::syscall/register/delegate/track/guard ops as shortcuts
to otherwise very verbose nqp::dispatch arguments [a3645497][2d8839e1]
+ Document dispatchers [9b179a55][690c6c01][93f2a8aa][bafa5ad4]
[f0673003][2aa796fd][ac5c89bb][6ba5ee53][1721f00b][5394496a][5dd90860]
[e0952486][9a07a6c8][87bcbe6a][b356bbfd][f651e9d6][2e9c0cc1][26ab5c21]
[4dc737c3][62a67452][93c31ce9][e002a7a8][7456e6dc][b94e98fc][6819b9de]
[bb384c41][fd5e4da6][f2b09f7e][6f75ed00][808885d7][fc670bb8][8bf824a5]
[2cfa0768][d6d7d154][45b1025a][6b6548d8][d327d14a][120a06c7][95770d31]
[f13ba1d0][12db03a5][11734d4f]
+ Fixes:
+ Handle .extension("foo") on IOs without extension as if :parts(0) is
specified [8cda0bc6]
+ Deprecations:
+ Deprecate many Distribution::Resource methods [c83eccfa][cd231798][4d797bbb]
[7ac9aeab]
+ Deprecate the use of PERL6LIB [47fdc20d]
+ Internal:
+ Show :auth:ver:api of module loaded (for RAKUDO_MODULE_DEBUG) [91a062d2]
[fcf22b4f]
+ Prevent possible recursion in archetypes dispatcher [6b61de2c]
+ Move backend tests from runtime to system build time [69b8a24a]
+ Use new nqp::syscall/register/delegate ops [becb682e]
+ nqp::syscall is Moar specific, so protect it [b8aaffd6]
+ Use new nqp::track / nqp::guard ops [13439539]
+ Ensure that nqp::track/guard also have their args unboxed [5d377a12]
+ Use nqp::track/guard in NativeCall dispatchers [6008a00e]
+ Document and/or streamline dispatchers and related [9b179a55][690c6c01]
[93f2a8aa][bafa5ad4][f0673003][2aa796fd][ac5c89bb][6ba5ee53][1721f00b]
[5394496a][5dd90860][e0952486][9a07a6c8][87bcbe6a][0e2e20a4][b356bbfd]
[fa4cc823][1ef51856][70d53fb6][79728078][f651e9d6][2e9c0cc1][26ab5c21]
[4dc737c3][62a67452][93c31ce9][e002a7a8][7456e6dc][b94e98fc][6819b9de]
[bb384c41][fd5e4da6][f2b09f7e][6f75ed00][808885d7][fc670bb8][8bf824a5]
[2cfa0768][d6d7d154][45b1025a][6b6548d8][d327d14a][120a06c7][95770d31]
[f13ba1d0][12db03a5][11734d4f]
+ RakuAST Development:
+ some work was done on RakuAST development, but the number of passing
spectest files did not increase this round.
[1ecff5c5][3b9de763][35484381][54ee127b][5268106d][000ac084][94e58e05]
[3c7057c0][c389de26][e1fef673][4bfde24c][91c157d2][3f6fff74][bef0a9bf]
[3c1ad110][4b6f77f4][f5e9b2dc][bdfea0b0][d992bf6a][7ea760a0]
New in 2023.12:
+ Improvements:
+ Don't set callers $/ with Grammar.parse in 6.e [8542ad21]
+ Move close to complete generic instantiation [fc2a5f64][97e6a436]
[7739c0d0][aa83d509][2df1be5d][4076476f][eabc07c3][d8a063ae][056f9c33]
[3d05492c][b4fd57bf][0b544d6d][5190dcc6][9614026d][5f9f094a][63f24857]
[2e453b9c][eef5734b][aa8fbd5b][4218796a][f8a17994][67194314][f4cad695]
[b9c09832][21d35888][44f529da][fcd787c1][7e73023b][510c3156][c22439e5]
[5f8cf56f][fe40b8e8][09429104][c6890b40][c032e2f8][18d626bd][3c88689b]
[c6f4a09c][6c0b54e5][15a787cb][4d38d698][69dd7d66][52aec48c]
+ Additions:
+ Make the Format class a Callable [bd43800b]
+ Fixes:
+ Fix rare deadlocks during supply setup [d31e4f62][6fe16327]
+ Make sure :chomp is honoured on $*ARGFILES.lines [8dca71e8]
+ Make sure if 1..0 { } does NOT fire in 6.e [4e75ae14]
+ Make Match.print more aware of its surroundings [5606fb65]
+ Removals:
+ Internal:
+ Microoptimize Promise.then(:synchronous) [ecea4878]
+ Streamline Grammar, largely de-nqpify [ca1fd753]
+ Simplify internal QX sub [e22987f4]
+ RakuAST Development:
+ some work was done on RakuAST development, but the number of passing
spectest files did not increase this round.
[eb032f03][3827870b][7584bd1c][1604909b][4f17fb52][b06e170b][17e3d0e6]
[b0c03083][cc57b408][50df535c][1a18183a][1410e712][5a51c6f2][68927535]
[d62f7780][2d1ce780][497899ee][af27c2f6]
New in 2023.11:
+ Improvements:
+ Don't open handles when calling Distribution.content [9db25993]
+ Use new stat-time-nanos syscall (in IO::Path) [cc15340f]
+ Additions:
+ Add :slang argument to Cool.AST [4707dc5a]
+ Add L10N::PT [d1812ff1]
+ Add "Sonoma" as known MacOS description (for v14 in Distro) [08b35312]
+ Add Raku.legacy implementation-detail class method [a9da976e]
+ Fixes:
+ Check if requested backtrace is null (fixes jvm bug) [76bfebf5]
+ (Re-)align backtraces on JVM with MoarVM [53a79941]
+ Fix handling of dynamic containers on 6.e PseudoStash [0479e2fd]
+ Make sure that "no actions" really means it (in grammars) [bd2c719e]
+ Replace incorrect CoC report link [2846ea59]
+ Fix some aspects of using "is default" [8b800e02][c0b19bec][4b7a9bf6]
[d32b729a][c34d60b6]
+ Fix X::Hash::Store::OddNumber message with undefined last element [f29cecfa]
+ Fix a regression where exception is thrown for a generic type [49ddf5fe]
+ Removals:
+ Remove largely unknown flags from installed raku script shims [bdd77290]
+ Internal:
+ Make sure t/13-localization tests are actually run [f3a7c045]
+ Add test for Unicode 15.1 [bd53ad25]
+ RakuAST Development:
+ A lot of work was done on RakuAST development (over 100 commits), raising
the number of passing spectest files from 975 to 981 (out of 1358).
[86458273][ed97a478][5567dd45][8b659b55][47585807][711032b0][9b6c660d]
[b5c9c9b3][fe8123d0][92ed414c][f712bdf8][c0eb6b6f][45b1a26b][bd5a28c9]
[05a2c26e][d8d79a32][36844606][2b365ac9][9a115ba4][7fcbfd65][60f4b8b9]
[f1de73e9][790c7ac9][7a3b2bec][3a44581f][090e6f51][6a991a02][06d9773e]
[f6e7475b][efe05847][63fd90ac][fcde2745][ec8628c5][5e3f8f33][4ef932fd]
[57ea28d1][e008984a][30b944e7][d6b33aef][a992d305][94caf95a][464ffab3]
[98f71865][7049370f][f6c41fcc][42f402c9][70b477ba][4b5333bf][33a6bccf]
[3fea4738][18551ef9][a186dd05][a3baa9df][688b625a][c727c2ae][4a5e0181]
[9ca11986][0fb3d809][1623e67e][1d626078][6d64ee39][95973945][974c48bb]
[24fdf40c][d6de1390][89f58733][b689ae07][4d4e2a8a][8e096c24][721906f6]
[ec57a59f][aff290da][cf3feb58][3d91a34c][b468d243][30697fea][fd99f6dc]
[12a13c48][92522e89][50b8e191][dc85a994][37fbee11][f53c6505][e8b49542]
[2f59eeeb][37e8d29f][9438ef1a][ad87284a][d7c64bdb][349ee9c2][d47c8feb]
[98da5961][d15cec91][356faf99][f2c39412][a3bbb380][b224a091][f20f7eee]
[41b4a971][16526185][50bd91f0]
New in 2023.10:
+ Improvements:
+ Produce fewer of LTA messages, especially when coercing [8c94fa43]
[0dfb9959][7a43c125][04a31275]
+ Don't link to docs.raku.org for non-CORE types [6050735e]
+ Fixes:
+ Make sure Rational.raku is correct [54c5682f]
+ Sort input file list for reproducible builds [34eda66c]
+ RakuAST Development:
+ Add a sigilless-variable token to the Raku grammar [7dc21fcf]
+ A lot of work was done on RakuAST development (over 120 commits), raising
the number of passing spectest files from 953 to 975 (out of 1358).
[0307ea9a][dfaa8c28][a6ec8dfe][05ba0ef0][89755eb0][75c615c4][e8ac6e03]
[b58c3203][9b29fdca][92485d66][fbacec38][a9d8b783][d9f2767c][f4ceaf95]
[95dce3cd][c52d55b3][ffbb53fd][c06027d0][4701845c][86991e14][9be9c24d]
[c8144167][70885883][21720d90][f261b1ea][6a2e895a][96b35253][c7ffcbe9]
[76535824][e462889f][6a198f08][bfb8ff77][c90b0393][c5adff6f][adfdef88]
[66be950f][1f03312c][4ba8870c][5a8ad916][d6695687][2be8be9f][42dc0854]
[c9dcfe3e][e330d6f1][4d700c5d][f8a2b984][549f03db][6209be81][80b47da5]
[fb62e729][fad55ca9][d6fc50d6][5d12c329][1eaaded1][daee3985][f63749b8]
[a4fae404][b13df056][3a98902d][f9fbde70][0d1c4d3a][67816a58][9ee5023c]
[934f8063][dd24f978][a5d947d9][8bc5bdd5][aa5f512b][dacdebeb][1e5de123]
[0c5f5ddb][d1952b9e][97c8e4e0][4e1a869a][0c2db5bf][51d80fde][9180ad77]
[668913d9][d7cb3070][6b598859][bbb57adb][80557f3a][f45297d5][09d87ecb]
[95d3c30e][e419d930][65b1dbd6][401c11b5][10bf44de][bb43068d][1beee9b7]
[29e29e90][70362cf4][5fb5480c][301533bb][70b8165c][7626e1ff][d76eb961]
[0ae02edf][fef0c629][48068a03][bb9496e5][7e66cd2f][495bec9f][1e86903a]
[b1c2f151][4e0c8ce1][b8b323a1][f452fc3f][babd7a47][59ebf8ce][aa58383e]
[7660d369][8defd108][55952f67][03592fc6][7b822bd1][ad3b55d6][7a4d0839]
[be282712][644f5030][b599b57a][92567220][91d07f59][483ff06c][b47da0d9]
[fa812743][ee062e9d][ca1f20c9][ea1ea2d1]
New in 2023.09:
+ Improvements:
* Work on 6.e PseudoStash clarification [6f6951c0][5d1198e7][4b9679a9]
[7d1e8b8b][1b9a434a][f3d97602][9e298840]
+ Make .combinations about 32% faster [f09fa022][695b9dc4]
+ Make .permutations about 20% faster [e41e823c]
+ Additions:
+ Introduce Operator class, subclass of Sub [fc8bf7c0][73d02cc0][70944f73]
+ Introduce X::QuoteWords::Missing::Closer class [b245dcbb][1eb3db77]
+ Fixes:
+ Fix setting operator properties on some operators («>» and «<» and
friends) [7f6f2512]
+ Provide a workaround for macOS Security Integrity Protection [402bcb8e]
+ Fix JVM build [1227b407]
+ Removals:
+ Remove Test.is_approx [e958040c]
+ Internal:
+ Use new stat syscalls [e258c2cf][64eb3e17][79784420][56294538][57e658c4]
[4597e20d][a7f368c8]
+ Remove superfluous "is equiv" [92758cc5]
+ Remove "is equiv", it isn't necessary with OperatorProperties [50a4f690]
+ Move operator related trait_mods to much later in the setting [3937c862]
+ Handle operator traits with string better [16595e84]
+ Make sure OperatorProperties are set on new 6.e operators [c9eb5953]
+ Remove unused attribute in Iterator [ec207675]
+ Rename all .pm6 files to .rakumod [81d2aa6f]
+ Make X::Worry::P5::LeadingZero exception more readable [a369b57f]
+ Streamline Routine.gist [5ed482e0]
+ RakuAST Development:
+ A lot of work was done on RakuAST development (over 230 commits), raising
the number of passing spectest files from 938 to 953 (out of 1358).
[8be7bfe2][e6bc6878][81446212][4a4be8de][76308eb5][c509e758][ce29ccda]
[042e1e4d][be6428ba][eec42c77][5aeeb39d][e0b7e831][1380fa3b][ba9f4050]
[e6fdb853][168a67ff][cefa085c][ad4c580d][66414c04][b248ae12][e7df63a4]
[4b2c4072][48838af4][ea40e4c6][def3a4ad][d3b53807][fc9debac][c4674f70]
[c21f4b6b][ceb3d407][978e2d78][61097bd1][74cd925b][3777e2db][4c3d0ede]
[c08ebbee][960a40dd][abc13a3c][f723f72c][d86cc550][6574c0e4][cc19095e]
[1c47bb26][056bf03f][3ed02c34][1a33df17][646d548e][a0936a7e][37283cd6]
[4db885c4][491b8469][b1560d3a][5b8f98b9][bda2be54][bc9a7123][e0975a5a]
[743c4252][6605c0a8][238fa003][066d1d95][a6cbf201][b5e9f6fe][57b92f07]
[f3da4c1f][89912801][66506c79][0395c7bb][29f3826a][c82791b0][1d785551]
[5d43ff5b][8797bf95][fac51f9a][cb0f4ec2][ab613324][008b73de][f3215d05]
[d33af758][c0667de0][ea12dec9][98312dcb][2a331f1f][c38af03b][24c05ee0]
[4fd34508][eb3f30f4][48ae9919][562926fc][137ff2b9][32cddc56][abbbdd01]
[f5e3bc94][e08eadf6][8dc2e53e][2b36f85f][c7338f96][e8076ae4][c035db23]
[95dbd6cd][310e40da][51b0afc4][5fe1bd82][ee170b9f][5841afb2][1626cbfb]
[76ad99d4][6da14def][e337c823][e026c1b0][65789659][6fa642c6][c19e7a1c]
[4b09c649][c821ffeb][5e10f295][b60812ea][68070835][84419efb][c978bf21]
[8ec9ae8b][e0864b19][5667eaa7][700e5248][8ed9f681][ec4d75ca][628c71bd]
[44ba0636][5881f0b9][577498bc][8631e3ab][3a70184a][be944af2][94eb0c34]
[3a0b05d6][9fe819e7][fc5d02ad][d192c18c][6817b10b][7779b565][c5d36f2f]
[6b331d9c][ca05e9fb][fe9ff1c6][73737c5b][f4c9f606][5ad51ca5][3e652d5f]
[8938e551][b5fcda9f][daec7797][9311a720][cacefa6a][e41ffda4][4f13da10]
[8832f11c][c4cd9af1][f4c228dc][f67797db][eb8fea81][9d711ea5][863373a6]
[3a91b495][636c8789][42c2f5a7][50c2f86e][8d82622a][7004c563][2671792a]
[ebd4c00e][a39765a6][1504fc2f][04ec9234][cfcf9fb3][f950ca13][97fac492]
[66b6f788][bc16a7ac][cd32d6a3][381cf921][ae833884][7ebd9bb3][42a92611]
[5d784a9c][1b6f5791][4c0ffe67][f05f7746][770ac47b][866e4310][ded9b37c]
[6f73a9c2][0079b03b][6d3904d0][60ec27c6][40a94e23][97683f98][ef0aa2b6]
[3e81831a][8c2062c2][cbfdaeec][f9de8160][b7a59287][d08c2f98][4d1ff732]
[d6b2a465][cdc7c1d5][714f2f6d][783c7900][bc3cc07a][c716de92][e3f23896]
[9da6db8f][1e797d64][cdcd9c58][c776e55a][19bd3089][35bdbbc6][44659105]
[f4fc256b][d6fd0f60][65cc4b66][150488c1][65d84a4d][1702a8e2][b70ca769]
[a1a658ab][c4511e4c][ebe8322a][6771c4ae][e46425c5][8e375870][f1c6261c]
[9866e7a1][dba3b448]
New in 2023.08:
+ Improvements:
+ Re-imagine Formatter + Format updates [2cdab744][3e5a3fb6][672999fd]
[91f221f0][f6762fa3][6eef82f6][85c83ade][ae149fcc][64e4499a]
[fe788b0a][90ccaeb5][3cf10fdc][2e53c872][5deb9eed]
+ Improve error message on iterating Ranges that can't be iterated
[4562d708]
+ Improve null regex error message a bit [19191971]
+ Deprecate including an ambiguous .pm module file [4d5f6ff9]
+ Don't mangle with exception backtrace (related to CompUnit) [e1b5fd0b]
+ Respect CUPR.may-precomp() in CURI [41ae15a0]
+ Optimize .min/.max/.minmax/.minpairs/.maxpairs [1579da00]
+ Make reverse/unlink/rmdir complain when called w/o arguments [bfc5af69]
+ Make X::Syntax::Confused more logical [375d04e3]
+ Additions:
+ Add sprintf(Format:D) candidate for now [120d929b]
+ Add format.directives method [474ca30c]
+ Add Format.AST [9ccd3c37]
+ Add support for Version.new("1,2,3-") [73d07b4b]
+ Make v1.2 eqv v1.2.0.0.0 True [d37e6e83]
+ Implement methods `andthen` and `orelse` on Promise [acd8cc45]
+ Add support for RAKUDO_NO_PRECOMPILATION environment variable [6750ab31]
+ Implement .min|max :k :v :kv :p [ec000772]
+ Implement .(min|max)pairs(&by) + (min|max)(&by, :foo) [4645317d]
+ Implement List.sort(&by?, :k) to return result indices [53edf4e4]
[53794833]
+ Make sure sub versions of min/max handle adverbs [c5cc2675]
+ Make sure sub sort takes named args and passes them on [e0a882f0]
+ Add X::NoZeroArgMeaning exception class [fc11963d]
+ Add sub versions of WHERE WHICH WHO (#5336) [dbde821f]
+ Add HOW/VAR/WHAT/WHO as Mu methods [7bc98ec4]
+ Fixes:
+ Fix syntax error when building on JVM [53440ad7]
+ Backport threadsafe update of quote-lang cache from RakuAST [60a96bb6]
+ Fix thinko introduced in e6c0b5e919 (DateTime) [b58bf6db]
+ Fix stringification of v6.* [8e394fad]
+ Fix version issues when * was involved [824a500b]
+ Make Regex.gist|raku handle absence of $!source properly [924d5341]
+ Fix use of CALLERS/CALLER pseudo stashes [4cedc949][e334eb56][16ae94c5]
+ Fix a coercion in `Range` constructor [b4b77952]
+ Ensure lock is created before NativeCall role is setup [a4a2bbd2]
+ Make $*KERNEL.bits correct on ARM64 processors [5d4bb333]
+ Fix issue with uint64 Bufs and -1 [43473202]
+ Fix signatures in some Code methods [866099aa]
+ Removals:
+ Remove deprecated --nqp-lib option [55537e9b]
+ Remove deprecated Proc.status [91fdd538]
+ Internal:
+ Fix some cases of improper language revision tests [68dbf929]
+ Increase max heap space to 6G for building jvm rakudo [26e7d650]
+ Remove nqp-home/lib and rakudo-home/lib from vm search paths [4a661911]
[64fef804]
+ Remove unused transcode compiler option [aca81e92]
+ Don't store a Whatever instance in Version, but a type object [1045f1b2]
+ Make Any.iterator-and-first an implementation detail [99a01075]
+ Introduce Range.Inf-Inf implementation detail method [dbb95d1f]
+ Abstract comparator logic [8157c033]
+ Buglet with dd [8144415a]
+ Allow "sorrows" to be specified as "sorries" [c4b68d7f]
+ Use OperatorProperties.new-compat to set %prec [5fb6d836]
+ RakuAST Development:
+ A lot of work was done on RakuAST development (over 150 commits), raising
the number of passing spectest files from 884 to 938 (out of 1358).
[dd55ffe2][0550ae76][3c2af237][fed1515d][93dd19f8][fcf1c3ff][101d3ca5]
[90aa9c66][2c2c4d4e][c7e6e5af][d72c562d][15f9685b][1beeb166][1b68eb7d]
[5fa96e37][7d037bbb][b17f9c1c][a31bdc78][5f488afb][ef764677][eb169c3f]
[84ffe2b1][e36ac593][a05c4061][2184c5a8][d520abb7][a0466136][82cdc95e]
[f2cbac39][5f03e704][b8a3096b][eb753a3b][564a6df1][126e726d][88b22e2c]
[743cc08b][5e2c6a39][9fc4f69f][d3a90fc1][1d48d351][6abb6534][d45fb6e5]
[cfa7f8d7][794d89a4][7b6c81c7][0d641880][c4059d7d][34a1a5da][1c25d071]
[a8a0416e][c02c07e9][dd009197][9f866810][5fc5c32e][632a2ecc][862e3874]
[24aa0229][d15d6d7d][6a9e9963][51ebbe80][c002940c][2aca0151][a9e83a93]
[6c345f4f][d923a4f5][b390e203][defca25f][947b49c9][3bca9516][de7151fa]
[aed6be5b][bef9ea40][b4d8a48d][977d9bee][baf8906b][0ee02288][52f49344]
[66d53dcd][ddfe6ae8][ffe631e8][eb60db5d][2588b4cf][01cf0c04][f151aba3]
[7114b4d7][3072e91e][f325c404][e1f801fc][390b8227][22e78454][20bfeaf2]
[09b452bf][1cf0b06d][5e353bcd][f7a314b2][c4053f20][4e0ecaa3][edd5d4e7]
[4afbc34c][5b2f58ba][a0ed2ae9][517e53a5][47577b8a][e4787df9][206c4552]
[5af65d33][1b44da3e][ec6671d1][4c1ea9fe][652b3050][e13a6b0f][c1b1ae8a]
[8f612e39][36f561a3][8dd2f004][bdf80215][0e79b375][3e437d76][09a16585]
[20bd4165][c1f7e4d4][941143d4][011d2ce7][519ec6e8][e20d7b44][0396233a]
[02a2bd30][512f5cc4][2caaf9f4][f604c788][703363eb][86557c94][205fb661]
[11334377][34a6c01d][c7ad58de][e6f33599][28d266ff][efb58664][35467a20]
[5ef70c6a][0ad03b5e][244ea5e9][632f952b][88ca1e38][e5d5d48e][a17588f8]
[b20c7993][8a7f4b72][1d5a9508][779f0f79][386cac8a][083f2857][32e078ca]
[d9085270][37aa0544][18786514][dc078bfd][b1f54e17][2dbcdafd]
New in 2023.06:
+ Improvements:
+ Make unknown method calls on strings mention the string [563addbb]
+ Make sure format is reported with `Formatter` errors [10cc908d]
+ Provide better error message for `my %h = Callable` [65febb98]
+ Make extensions for CURFS configurable [924386f5]
+ Make `.fmt` a multi everywhere [69d570d2][a2d616a0]
+ Additions:
+ Implement `Uni.encode` [e3a74746]
+ Add `X::Temporal::OutOfRange` [83cc6e71]
+ Add `connect-path` and `listen-path` to IO::Socket::Async thereby
implementing asynchronous Unix socket support (MoarVM only for
now) [6f9bc5b1][c452fdbf]
+ Introduce the `Format` class in 6.e [ebe0e0b2][f3bb7a2c][5a7a2e5f]
+ Add `.fmt(Format:D)` candidates where appropriate [eceaeeae]
+ Fixes:
+ Fix role typechecking over its parent class [a4201c28]
+ Add one more level of dirs to check for .t fudging [1dc496ad]
+ Precomp Pipeline: Fix building on CentOS 7 [c0a95290]
+ Consider META6.json contents when calculating CURFS id [5ec81cad]
+ Fix copy-pasto in `Capture.Bool` [a2f71d80]
+ Removals:
+ Remove largely unknown / undocumented flags from installed raku
script shims [73888f45]
+ Internal:
+ Re-commenced work on Formatter class [a54b99b6][67d8dc76][c3df563b]
+ Streamline X::Str::Sprintf::Directives::BadType [40aa1605]
+ Optimize CURFS startup time [77aa79ce][d30ac3e4][655ac635]
+ Optimize internal directory recursion [0ae02284][78d79112][2642bf2d]
[3fa0fdf7][71240f00]
+ Streamline List.fmt a bit, a few % faster [1617881d]
+ Combine 6.e augments and additions into single files [7d3b9d6b][3d0b3222]
+ Don't need to use _I version of nqp::radix... [efa78db6]
+ Add "rakuast" as key to filter roast on [fa9cd8ef]
+ Make CURFS extensions more idiomatic [6e8339a6][4d077623]
+ RakuAST Development:
+ A lot of work was done on RakuAST development (over 100 commits), raising
the number of passing spectest files from 825 to 884 (out of 1356).
[c88291e2][d320deed][4a46ee17][6eafacd0][5da5c605][566f878e][b76e2bc0]
[1028ceb6][1ab2e3e7][dd475ed0][9b207ab7][4df49e66][790b6b05][d3372c8d]
[b593dc9a][0df71cfc][d2203ccb][cc9d1ec0][0bb11fe2][feffac51][22acb30c]
[02548b5b][b7c73685][174c941a][881ce570][237b28b9][628bcdca][4b3bfbb3]
[dd95fd1c][93f560a7][cebe2ad6][9b071c2c][2e77a038][013a2fa4][000648ed]
[653e0c22][c9a5d62d][678aced8][6baa4d56][253a5d8d][7f0ba792][5a8402f5]
[c7ecdd82][5d8ca405][ee80ae0d][dce0875a][9095d86b][4813dfb8][11c012a8]
[bd10858e][eaa6293f][c6b21ec6][63219673][639e7e90][305a839b][da5fb80f]
[885a86a8][54fee5e6][2d2920f0][1c6097b8][17b97c19][003777c4][554c9fc6]
[c8a4a214][f05cd033][7661383e][9b9b7216][823f5516][58d638d3][e0cefedb]
[e015bfe7][baf1aa0f][84d14dc9][cb887de7][45cc0d4e][f2bff1f7][2cff038d]
[e8b477b5][75bdcd64][432c1d62][158c0c75][37e0a0b6][e0ec2749][55a26222]
[97d13c59][1657c0f4][a6bec923][4932c2c1][e5568f93][34854eb4][0ff1118a]
[489cb328][4dd49339][f581d020][c5b917db][0557d834][0fecf561][e10e3aa0]
[5b456299][c884b166][c6ceff3e][e95c45a5][60a10f8a][8a4f4d8e][8ab9d11f]
[33cb11be][5790e589][e66bcd67][655ac635]
New in 2023.05:
+ Improvements:
+ Allow Nil as payload to X::AdHoc [45b3a050]
+ Separate =input/=output from =code [6f482ca0]
+ Handle uncontainerized type objects as invocant to AT-POS better
[3139b6c0]
+ Introduce Iterator.is-monotonically-increasing [149dd880][2edcaa35][e702f0e6]
+ Give subsets their .^mro method [7e785883]
+ Additions:
+ Make Int.Str take a :superscript/:subscript named argument [01e82224][0248cc3e]
+ Fixes:
+ Nil.Int should coerce to 0, not to "" [70dc3c8a]
+ Removals:
+ Internal:
+ Introduce Str.is-whitespace implementation detail method [fa2b9e34]
+ Make Str.naive-word-wrapper aware of ANSI escape sequences [bb4514c9]
+ Streamline X::Syntax::Number::LiteralType a bit [bc51ff46][6e20165a]
+ Generalize -0123456789 to ⁻⁰¹²³⁴⁵⁶⁷⁸⁹ mapping [5d6ab03c][c33c5538]
+ RakuAST Development:
+ A lot of work was done on RakuAST development (over 120 commits), raising
the number of passing spectest files from 787 to 825 (out of 1355).
[7ca567b4][f8ac118c][7a442c6d][9cd11f75][7ac66112][2d656cd2][f12c8598]
[7267e7f1][6235256a][13e96284][812ed5f6][1f010bd8][14fed334][a7571cb4]
[c7f4ab14][7b86e38b][134418bd][2dd66bcb][b29e1084][aedeadf9][8b462b40]
[2bd73522][a72af165][3b302c06][904d3126][eef4a7ca][97325f65][9ca2e9d1]
[f4f61663][38cdaf3c][e253ce45][3a801285][edaa90ac][654fb380][eddff44e]
[8d74e4e7][80c35e42][ae7a219c][c55455d7][5965d7fb][8e513078][2e3690bd]
[ae1856db][6f3c5352][d1ca18f1][eedc165f][c10767e5][242f3098][cc173d83]
[d9179b2c][b317b4dd][7bbc2f99][3b705faf][d58e68bd][d1d64b38][b5a30e70]
[3f62a6f4][b6fb937d][4b69dd51][8bb54bf5][74d021c4][cd6bc209][cf3d937f]
[a4c7b199][5c4f9efe][e92e6f2f][bfb1fe31][ad422bb6][dd5125ae][fc879d6f]
[c4275902][6604178b][703378ea][5ea3f79a][08da4bfe][a1d39af5][a2102a96]
[6b6f28ed][ee5e4c3b][50fc47cf][eaf4aea2][ff29c918][10742c99][6a79c0f5]
[7243e228][b881fe84][b0339c20][c14084ec][01790de4][4f6da10a][80397225]
[a3f0f365][34c3e7a8][826eca3f][809f84cc][6b5171d6][e17840d8][cdb9a836]
[f4fa7318][7a49b6ec][b50187e4][a4698793][af54c0b2][592d11d3][2ed5c891]
[09c4b057][f2b69f53][188fbb62][b45b054d][c2449ef6][14b803f5][73a6ff6f]
[213bacbb][fdb84124][ba7f659c][8099dd3c][1fd990fb][6325d10f][a78234e1]
[65dc1204][cb8e052b][e6c9e8f1][2592579c][916bdd45][47e1fd0c]
New in 2023.04:
+ Improvements:
+ Make `Mu.WHY` a bit smarter, also handling CORE subroutines [faff9091]
+ Give `IO::Path.chown` more `unlink` like semantics [dde366ee]
+ `snip` now can also handle infinite lists [ec8cdd54]
+ Some exception message tweaking [331fd237]
+ Additions:
+ use v6.e.PREVIEW or v6.* implies `use experimental :rakuast` [fcdb78ce]
+ Add rotor capabilities to sub `comb` in 6.e [28a32766]
+ Fixes:
+ Fix `Range.Bool` for empty and infinite ranges in 6.e [83caae8e][188beb55]
[53135c8d][f31a6d56]
+ Make sure `snitch` caches Seqs [61b8bee3]
+ Make prefix `//` working again [efb59f78]
+ Make `Cool.uninames` actually work [500ad5f6]
+ Make `Cool.uniname` actually match the documentation [af0c88cc]
+ Make `List.Set` work again without hanging [5a0e7a76]
+ Make `Distr.desc` correct for MacOS 11 and higher [eae02e8e]
+ Fix the git clone cmd in install docs [f79ae571]
+ Fix `IO::Path::Parts.raku` to handle type objects correctly [16924b41]
+ Fix "Unexpected named argument 'no_fallback' passed" on some meta types
[b01d996d]
+ Warn about missing perl5 mods (Configure.pl) instead of crashing
[6f86699f]
+ Make Supply.zip handle some potential deadlock situations better
[6e2a46f6][2225e207]
+ Removals:
+ Remove support for PERL6_EXCEPTIONS_HANDLER [5d7e3857]
+ Internal:
+ Use HLL comparison for floating point noise check [3bd73896]
+ Remove some unnecessary BUILD methods [1a86348a]
+ Add Str.leading/trailing-whitespace implemementation-detail [5feb7f7f]
+ RakuAST Development:
+ A lot of work was done on RakuAST development (over 300 commits), raising
the number of passing spectest files from 694 to 787 (out of 1355).
[1f45b310][098a26e3][8809e87a][1338f4ae][e73f3bbd][48c19e15][f6fe1168]
[272cfdbf][39b536bf][f5221b97][880ca8dd][cbf3cd58][c5f555de][95e0a178]
[f2fb7b40][e9f438f5][376eb918][97d15491][55bf595d][f4335a84][463e7ed4]
[d769af80][84d1ec71][1bfe7a0b][e3e250c2][a620d0fb][ae4ce14a][6489eb82]
[6c3468c8][b3d704fe][c74e1608][3bc6e525][e32bcd1f][7f6cfaa8][003c7753]
[6c035ff2][2b0d1019][a220d715][543ecd9d][f2fff6ea][a003c3c8][7e334408]
[6669c0f2][377f6015][dadeb74e][7f3802c4][c32836f2][93609de3][9d55cb25]
[2183ec72][9995ba19][5d8ddaf5][d4633b15][a2cd27b5][110c39d1][d75df77d]
[4fa44f8d][e8f419ae][e177bc2e][f49b1080][3f7deafb][46a99d18][610bcfaf]
[9406dfe9][c9987b7c][c487eb15][bc24e6f2][79ec334e][ac217e86][525dd643]
[5a869366][322f287d][11cf9aa8][d93536e2][6079cf0b][1ae83e43][675c7717]
[5787c4f6][13c2bade][9c030754][2a5220a5][b5d1ddee][62122e57][08930e8a]
[fa79f834][965520bf][2d54be72][d78754cb][26801016][f06c9c35][0d9a7756]
[8a3289ce][f07fae0d][ce6e9031][cf2f709a][b710020b][13005cdd][8cb0dcb3]
[301ca0dc][f3c050ef][0482ee7f][c0c08a7f][4a1fad58][7fae9a11][96c68ec5]
[d96a1b95][bd23fda5][073da5cd][991ebca9][a5be6d2a][b685e676][892d76e4]
[40e2e095][47342e10][7ca3189b][166e1668][3e241ad9][15586b8e][822a74a6]
[ede05210][8bfb2c41][217a47b2][2fa64b59][c0be572f][d2eabd01][38c4e0ee]
[98cc71c0][1d7bf1c6][23a7c140][90a8183f][bdafcd10][199ff77a][db608f16]
[cacc3e39][98169657][d8d9a9f6][f7d1ad37][3540ce25][2f3e6bf9][58770a4f]
[761a5a8a][93c02664][23433abe][fa384e23][588d0f6a][cd218869][9db0bc97]
[6d9c4c76][eb72312e][6ac6cd09][c3b55cdc][7c6624b3][789a8096][1dcf6452]
[b583c333][f41c769d][f72d58bc][9245f985][6a2fee72][c5599481][be633ca0]
[c843b6f9][e08b201d][59115717][3b0adfa4][837a2eb8][18a5dab5][b8488d24]
[83ed64e9][58157b8d][6ae35eb9][b3ac1d74][28822c84][ad97d8d5][c6b2f8ac]
[a7748738][fb53d50a][9ef618ff][bc481335][3a9c1540][36b6244a][81f2ea21]
[fb30afae][5ff428dc][e514d5d9][fb988331][07d46773][b258927b][6e8abbf9]
[e5e5acb4][0a79b6a9][b5042248][238931ac][d4792fde][ba372596][4b1eaecc]
[b6525348][a30f08cb][cacd8bba][3080103b][9cc7cfe0][6eb3fa01][caa6d00d]
[33e9a585][b340c2b1][3ebdffd4][7f4554c1][dbe6ae88][b5b4e16a][da6ac812]
[db0b6feb][709c0546][7f08b0b5][9774de50][26d9a2ef][cecba5a4][e42ecff0]
[34905037][1f149b1a][0235a9be][f5dda722][7bcf8d1b][83f2cb8f][d3b58a34]
[a48bfb80][c921a0ec][a1f20e56][e6e28761][88e479f8][7dd3696b][bd084fc3]
[00d35fbd][f7a0caea][a930b3ba][679d5c41][f380b87b][458c0fc3][03db2614]
[ed7aca5f][ae5c20fa][fd8d76e3][dbad89cd][a4dad180][3fd6ccbd][54e10712]
[4d1ddc39][b6a2b1f4][ec5b592c][d540942a][38254c49][d1fe3fee][283eb484]
[4682d2ed][45dd84f6][ad5e8305][dc8b66ae][536b5eb7][e68322db][55660490]
[d9dd95c1][ae0c69a9][01abff75][8f5bb47f][f9027be3][56d63c96][5f66d853]
[b5277b99][a1c73f38][30e15f04][48fc2445][51c3b7bd][c8262a23][46eb6d2c]
[fba82975][3fb68b35][b817812b][c45fa248][68614a0a][eed0148a][b09a6a15]
[770ff00f][c4ab78b4][f040293a][36ec8e33][b8763c35][b8e1ba3b][262cc42e]
[351f053d][72b8b8b0][2d66116b][d9658202][6df32e8b][159cd628][150200c2]
[1fd667cf][31fb2b9e][027e37cc][5d1d02d9][7b4b680e][3b838eaf][62d263fc]
New in 2023.02:
+ Improvements:
+ Make use of line directive information for compile time errors [6bc209fc]
[89c23ddf]
+ Improve error message on "foo".Order [665375ba]
+ Try to be more explicit when exception reporting dies [45b19784]
+ Make X::Method::NotFound more resilient [eff02440]
+ Additions:
+ Allow for .rakutest as extension of Rakudo test files [4a42b211]
[0d49c2e7]
+ Implement numeric coercers for Date/DateTime [72856df9]
+ Allow * to be used as identity on classify|categorize [4b264b80]
+ Introduce `$*EXIT` / `$*EXCEPTION` dynamic vars [50050866]
+ Add In Memoriam for Ben Davies [ccbf9a09][3d2f8bd9]
+ Add Complex.sign to v6.e [34cf82aa]
+ Add Unicode class to v6.c [db7ca2dd]
+ Make log and sqrt handle negative values mathematically correct
in v6.e [760e21c1]
+ Make RakuAST:: classes available with `use experimental :rakuast`
[c9cb334e]
+ Efficiency:
+ Make List.head() about 2.4x as fast [7e69a6de][615b9bf9]
+ Don't pollute PROCESS:: with failed $*FOO lookups [6ef8993f]
+ Fixes:
+ Fix EVAL regression on symbol leakage [1ea6be79]
+ Resolve the case of CUPR auto-vivifying some dynamics [7194b1e6]
+ Fix the list of expected symbols [c6afe382]
+ Fix swapped iterators in Seq.ACCEPTS [f078896c]
+ Don't error without git, but all needed files are present [e3e962c2]
+ Fix `race` to actually race and not secretly hypering [ffc9fc74]
+ Fix defaults for typed optional @/% params [JVM] [49facdc0]
+ Fix storing of typed Hashes from a list [c9e391f0][5ed14bc4]
+ Fix type constraints on QuantHashes [03b3b13d]
+ Fix breakage with "use v6.e.PREVIEW" [JVM] [c88f50d5]
+ Hopefully fix all inheritance issues with set operators [586466e9]
+ Set Xmx4G for building Rakudo [JVM] [67ba2dfc]
+ Fix error reporting for feeds [e09f20ca]
+ Fix serialization issues with Version [9e4fa286]
+ Make Junction:D.(Int|Numeric|Real) work [1841d6d9]
+ Don't special case [+] to List.sum [5c66515d][6b6c0ec8]
+ Correct description of BUILD/TWEAK in BUILDPLAN [fbb669ae]
+ Removals:
+ Eradicate knowledge of unimplemented COMPOSE phaser [0040f813]
+ Internal:
+ Make Azure pipelines know about the `main` branch [c3e0eb7c]
+ Fix a syntax error in Perl code [ad9302d7]
+ Fix NQP version check [7cd8adfa]
+ Some minor harness6 fixes [d50a8667]
+ Upgrade Rakudo tests to Unicode 15.0 [37826798][47ec76bd]
+ (test fixes) .classify|categorize(*) no longer throw [0baf2c0e]
+ Micro-optimize ADD-PAIRS-TO-BAG|MIX [7a6c3095]
+ Fix "ctxlexpad needs an MVMContext" regression in SETTING:: [b21cd61c]
+ Fix test description for unknown modifier (#5179) [69f1aa1f]
+ Warn about Unicode versioning issue wrt tests [268da12b]
+ Many, many commits related to RakuAST development:
[e05474b6][956bd776][de998b6f][df72d0b1][fd3ed60e][93a39a6a][356e31cc]
[ebe0c896][bc3ab866][a9f4ffb7][88dd3c0b][ad3bc88b][ea42c963][e47d5634]
[ae5a599b][62e8f029][51fa4b14][e972178e][c4af208d][77917ed3][0d28cd5e]
[b4c1acf0][2d29a5d4][f33888f4][cfac29ae][f6da82bc][736001f6][46f2960d]
[ca6f3096][e79b8cf7][02207076][f77e195c][df9e41c5][99db315d][5d7f94aa]
[910292ea][30288c3a][f43b66d5][a4233bda][8bdbce85][66a149e4][f9525119]
[814b6186][c5a08920][08d7349c][421d57c1][2cd932ab][d0e608ab][5bfbd526]
[bddd0685][a9b6cd89][9837caa3][d5a408a9][f40f8b8a][fa170fcb][86b0d01e]
[67bb7a27][7acdd9f8][4c6b1e76][f3efb3e2][3989d3e9][6d026119][e193d8c7]
[3f4dba9b][ca0742d2][5fe88c03][78ff8057][4fc888d2][1d38dfb9][bd39e9e2]
[1bf6f3cf][4e6da7c9][6e501135][f76b86d1][414bb838][c8f8b4e4][9380dc29]
[eca14cc9][093974aa][7c28f93e][d5eaf055][5d249be4][01d6624e][f4ab1cdc]
[a175ad30][18fea042][c95e0c7b][b57b4132][cf0d95a2][20d282de][44039d74]
[161d1182][4ecb99a3][8f27ecc8][75a3f9f2][8bd84524][e1ffa4de][71686ee6]
[78247b0c][2fa9a242][b631129a][7f2fd696][fa8841fc][e4eefe3c][49ebe9f5]
[29ba81e4][ade15c81][2573378f][56ec60cf][ddf7336a][cb802953][b7439c13]
[72e80874][ecb8399d][185152df][dfbe5680][b2542b5d][50c02aac][517f0e1f]
[d68afa83][8ba4e59b][eecc8dde][1ea7a07e][2ef5ba8f][8f7b18ba][3513aa3d]
[74626de5][8bf06ec6][5dbd30af][4863d612][d0cd82f6][84bde282][4af72c04]
[641b36e4][a69a79ed][bf7b9461][a5e5a56c][c8dd111f][a3d90c45][6bf84783]
[56e1c7dd][07e81a50][40505920][98dcdd6d][4e75c2c6][f9d1ab4c][d90b2974]
[5c8a13d7][73c99451][9072bef0][3e64114a][6f6af938][1a5ae542][669bd130]
[8b35e015][ae36b70a][cbff9299][56a22494][78d72a00][e5f9572b][bb7c0d43]
[d3cd8a65][b5a3e605][19016866][b3e4d8a5][2c510103][2c53297f][2ae89773]
[c2a4d0f8][69bb1bdc][dcfbf3f3][15bdf615][b0974b77][114d59d9][f9ae5178]
[1a121077][fac1c49e][25582954][e0c31a4e][bd545822][e22a5f00][03a2d275]
[6ca3e817][a9acc308][9acde7a4][51486ed1][dd264844][6529cfcc][49cc2d22]
[3a4754ee][824893c2][462824d3][0d9f4f52][80ed4e9d][a6b7569c][9f9dd88f]
[60af9df9][6058326c][28d7b1b1][5e800399][a321e27e][fbfd2dc5][cd029491]
[0c5d37a4][022a95d4][e67e517a][cbf0db51][9ea7fed8][46016260][827e45b6]
[5e5c187c][f21b4afa][b664949d][1aecb4a6][f5ecd9b2][4ce1233d][8954e18a]
[771a3899][e2badf02][9ba49196][479774bf][474e9c6c][16822268][7996004b]
[f84133ea][bd259c99][c9a8ce7a][1487aae3][dc23129e][f3bd6c59][a12d5c71]
[ee717b79][03d59793][faf35023][27ed812d][5b410ba0][dedf4ec8][42cf463f]
[466659ab][5fd119af][19bbb1f4][3073c0c9][ce9426be][a6ba9e25][2729c171]
[3c2751a7][ad02cb8d][3deb09f1][74a782dc][c894bfa0][70bbe3d7][db8b83ac]
[ca49bdd3][6a958b76][7bd32e10][982a658e][af8ef19f][5b10b91c][785fc51a]
[c5cf19a1][274e255c][c01cad8d][7ecdb443][05a1e3ec][bae48821][28056c79]
[602a5fd3][eb246c27][5ae16fff][0e5bf559][aa506ba0][c2c43fe0][e5ba09da]
[e5cdfded][a905cf60][2acde281][1b2bc5f9][250f7859][662e78ac][1f239cd9]
[88eefa6c][c014b970][e1a9388d][01c4b74b][678e6a2e][2ab235dc][78fcc2cd]
[4e0c305f][125884fb][0182c08e][434786f7][d1fe4e16][d0060a4d][b57678f6]
[702f44d4][78e56918][706f6b1e][d85cca48][adf1fa74][a2bd6291][c9970ca2]
[285a8d29][0b35f7a6][1240b867][5c0e9a3f][76385ce8][c9647cc2][5eaaaf0d]
[ac61d457][f1b870e6][fdafab52][6322b171][0331e302][0d9db08a][9aebf7b6]
[ec101f94][8c3ac505][6f9c02b0][8df93dde][7f89093e][036025b3][75d72d57]
[0a8faf6a][a698ff06][b261bbb9][4432699d][2562bb11][dce94bb8][3e6f5297]
[a71a1a5b][64ca81b1][fa0b5f15][dbceeaba][812c7d18][4abb1134][df7d3129]
[dfb20c1b][91716f78][9c00fd83][9598d551][a55b6dc4][1301c9fb][43fead09]
[b9e6b7c3][535f6d81][7d3fa91a][daa20321][af86ac0c][af42c158][ad9a3078]
[03f96a7b][729efb1c][f109a678][2281bf5b][5d2a0550][aa6f5d0c][a9ff7dbb]
[35901c9e][90456552][5a9e1bbd][4f692a5c][40671f48][1387e490][6d6ffccd]
[d81f54d6][1af73a77][09d3ee61][cf5b926d][ee73f7fb][500b8e05][20c7345c]
[d2f40b23][a2a9208a][20eb4eb9][c22c286e][8ab89b44][0983207a][c4907f0a]
[868c8322][6c10f579][8975c2f4][4c3e46ea][e157005a][5051dcd8][a87d9f77]
[da0f4484][671476ec][a3bf626b][6d6316bc][0b84aef4][4b7dfc08][edae0ea8]
[31fbd7b9][6e41b8f7][36ab2f2c][21ecad40][af7db189][a2ed5826][bfb119f8]
[166f257b][c3d104aa][ed69091a][763910f9][6b40c2a5][7bc7cb20][1a219730]
[c4a89741][2e707230][d7d4007e][27f977bf][7dc9b8d7][3b2d223e][78edc121]
[fa9c2b80][b3a5626e][288b5a95][9ce76692][7e499dfe][65cbd86e][8f0fe8c2]
[bdc85c20][f09cb960][deb5a9b0][eb86a7bc][6d3f9d74][fcfbdd63][7c18871a]
[3b6551c5][0cb7b4e2][6e354c57][e609ac65][a67bebf8][11a53e7f][e2714599]
[86430997][e2756d61][c47ce4e4][9f724d9c][469d3860][5721538f][e0d8fc09]
[ee45dfed][8f738ebd][6c210ce2][302378ee][2363ab46][58b1d361][471432e5]
[c34c3b92][124c8cc0][50dfab76][73aefe53][0414316f][54943c3d][21b924b5]
[96ca0b2a][c9d6d96b][0656a382][2572c1b8][3f80f136][4bc0ca76][985ea4c0]
[92dc6b33][1c3cfc01][d414c58c][e67f7aca][3efa3604][4f97ea86][cb727cc1]
[899a4593][3a4ba0c8][06e19367][f45af05c][e8d074da][c3044326][64ed6925]
[276753ca][6f48e308][a072106f][d38d1c5d][4117642d][4fe1c859][e08fd893]
[77036a92][1d7c8fb7][960f3086][2e0feac8][eb4a5b2a][7c76a53b][8fa2240b]
[af51b0f0][bd5851a8][63ceb411][b5e676a5][6429a393][26cdab2c][b5d48ce2]
[9c22b8e2][f6b68b2b][7d9841eb][f3ddd024][23df134e][0869c5cf][0b95dae7]
[67171c08][8bd7f06f][8f378efc][0d2cc125][d8308f5d][805faf43][1b2880c0]
[e50668b9][b72a20fc][ad852824][ea0ebc90][94eab407][6d8f8740][c8c30823]
[b7d575c8][c16684e3][30810f4f][b02fe6a3][3fca37c1][f0847371][c8629513]
[c094494a][a3f7785e][21bda1d7][da7bd2d8][daeaa44e][657d7c8d][2bbee1fa]
[85564fc5][1d35c883][3acae169][cf150618][3544b9ac][48d86e61][d9790692]
[b5f8be92][979edc1f][8e308201][3ef17793][ce891bb1][33b44db1][b4b094d7]
[d296a1bf][097843e9][5985171a][c9c6b2f2][4af1d9b7][109bb92a][e675a241]
[f28db05a][2fb330ca][458f07d6][a9854054][49e72fc5][95fb97b8][a7a34dce]
[26a8cfcb][b1528886][a4ab9682][69ce0cf8][d09b7b9b][c98d3746][243e8dc9]
[e205f362][bad08dae][85f4fc2d][939eb2ff][3d406713][a64d8390][9d15c496]
[bcec0356][dbe6b329][79c28ccc][2add87e4][4cbf0032][948da773][f25f6304]
[c94ee45a][6ddf3941][de6bcfbd][c4739ff1][62fac9bf][37814937][4b62f4bf]
[2295d571][1b4e1fcd][c58e7616][b90cb9f9][4011c269][16cd9b36][e023cc56]
[ae5cc55b][6cf62e99][199f9548][d9f49f0b][7d41c960][ed9db185][84811ea5]
[ed760d56][5f7c2d05][167e23dd][9e26bf4a][8978230e][8b20dd1b][4b895e87]
[06a56a0d][87bf4d1e][62a388cb][1c60e5e0][64e3bb47][1c74e758][7e428f87]
[0b656f47][732d95ea][c4da1ef6][2c8a9d0c][80d9122c][3be38cd5][c9be7083]
[49ea8493][8c890dd6][72fa2a78][b054eb25][fbd0b628][f22be2d1][46836dc1]
[0e4c6207][2873c4b5][51495c57][11f4c2f1][b4b462b8][edb21f32][0ebd9a85]
[02dcc282][cee00fd0][12e15779][07452f94][eefe0a50][ade4484e][3ae59cd1]
[8798ddc0][439e72e3][298555d3][ac7d479f][760f3944][8191f2e4][18538fb5]
[ea51b5c3][61171f4a][875c33a4][e818c692][874becf2][522f1b02][b8900999]
[ea1919ec][8be48005][119ea0cb][0bd2deb1][f30a8b21][51762f5d][533fe92a]
[d2d731d6][79cd2a78][971763f2][31f28de6][e5cfb41d][263ad354][7e536922]
[e92e3c54][4fbe897e][5ef01bcf][67ed1c3c][8549417b][57bdeba2][7542441b]
[4519b9d5][c69caa73][86a246d3][f4aeb3e0][6a89d237][912f518c][fc2892e9]
[64c969cc][eac76a34][13b1c90e][5fb16cb5][3c6bf179][b223572b][666f392d]
[d0c2daa4][b393602e][3e5f3a2e][78fecda9][3d7b4fd9][a9353677][ddf09631]
[9cd7378c][caca0657][f51679fa][27d6e385][d45c450e][96e4c568][2d63d156]
[9d4a15cf][2fda7e11][3c85b965][e5578ada][e27af066][676aa173][9ab08d3b]
[b0f61734][61b01140][a02e4991][1ced0235][59943271][88d37023][06b7d398]
[9e2d4082][066e4010][44d8bcae][a8faf17d][cb2c03d8][9d5f35a5][46d8c1ac]
[f1f757c1][ee96a9f1][b047b0e6][9dd0764d][1ba87d3b][7fb3c8cc][5ea53b3a]
[2247a98b][0b6e76f9][877a08ba][9b8a160e][b7173a29][86663cb0][9d5824cb]
[e8bd1b3f][3aa8c877][a5dd70af][0f86d6f7][7d4c4ae0][347d4eb4][82aa030d]
[69be8b3a][3dd43586][a072e1ea][d4598e47][fa046b96][eb37f8cc][cd2b8d4e]
[e3b5f88d][ba5265ef][af9e6b92][af0b3f14][59bfc18a][0742c95b][f97269a1]
[bc0cc7fc][173f601e][700cd0ce][bd67cc99][c9f60a1d][ce0b72f7][1c4a226c]
[20f8d3ea][a4c97538][2b4470dd][7e93562c][ae9edaa9][6fb171f1][e39ef789]
[8018d8c2][0a32de19][84d34691][9d650660][0d4da93e][4d74a83d][42f1f912]
[dd49f98e][ddecbe68][6d7b357f][512ef78a][7102dc77][10894226][88b8060a]
[4535adc0][de4a41c2][d40250ea][b5df6e28][5f7ff013][2814e016][dcfb306b]
[b8f56ee6][2006fcff][30cf5c79][0562c894][19b3757e][5abd8960][4a6c5541]
[123ad032][8b9fb402][2279a0ae][dc452c57][0354c478][9aea72f5][8ee5e99b]
[d0916e9a][dcff39f6][5758c351][c5c93a92][e9030098][14958337][d8854eb6]
[034ed9ac][d9c9837e][ac5a0090][2fb1427a][8a5e0f8c][93ea024a][58fbc27c]
[db32b0d2][44232e76][baf03432][6ca9aada][3f195d2a][6ed3df4b][41284c03]
[d992c064][a92a632e][9c69f842][30106844][b6a3abe0][9192900e][85b91b6e]
[4e2e9906][656450e2][5890894f][dd906791][64a3bd22][5a7e07d6][5189750d]
[edf67891][464a8c68][539557bf][36638d2f][e6cfc4c8][c4080f95][57dd1901]
[b436566e][34efa236][50fd019f][b832f70d][677db9cc][f9b01f80][e8c23f84]
[dfd27038][6d837b38][212e5e6e][683648cd][468bdb28][6a04f8f5][43298c90]
[90df8d81][0b0d4ecb][08f3995e][83fb2518][1adc2ab1][16cc1702][a6ee8bce]
[86c0f401][3439c9ad][54984602][436e0d87][54a85b77][69746968][1b5b5751]
[35e498eb][91a1020d][5444c4c1][c9e4122a][916aa9a6][e339e027][1a31c3bf]
[1e384b2a][9270133e][9686757a][e3b32da1][b23f3815][6f1d1da6][c72aa169]
[1ae9b404][095615b8][73271c60][ccccfb72][00a1978d][a63f557a][64a80676]
[4db8d3e1][cdb87287][0e218e37][67647f72][a9067598][9b8ffafa][c45c2580]
[1f4eb03d][937d058b][47374fcd][7b2264ee][935d843e][5878ac39][c4b3ffbb]
[05cfed1b][63d49ac9][1eee6367][872edc5c][0f21ff2c][abb4de67][c8a480fd]
[78526bcc][7551c672][be13e518][3c817a16][127fb089][e614d978][a525e487]
[80241850][16bc5008][b09f11c8][f7412d1c][b1e40e64][fa23dd4b][c3e81a77]
[f0bcdcd2][ed8d70d4][ee21efd8][4b11fea7][56705f35][1c966e57][b1234bcc]
[454507c0][672ac184][35b6b6d6][d5dfb523][ac5fef43][6cbd0617][598a9d9c]
[da963241][8ee61927][9998d133][a8edae2c][79075ad2][c1c6ef26][a99da6c1]
[75b4f5b2][a564ff37][ee983161][84fe0503][a67c8598][2e20149a][882d6a48]
[ac282b4f][5234e0bb][1ec15a8d][70a50d51][8c64a479][49b4566e][2cffc13f]
[8589e80b][0b0bce89][dfcb5f47][0049c301][14f56a2c][4ab4907a][4f207505]
[e1a7ca62][54328e9b][34a9d51c][25d583bf][bbdaf832][68f4a96d][c0cee2e5]
[bbe447db][49cb197a][d8184117][9fc9b061][91ebaa01][03b2cf35][69fa6bba]
[04329e45][b2f61d86][d2c1de3c][d10c2750][bc7189cc][73839db2][28cb8cc2]
[39acef1e][2cb6fe37][6846bc1b][c8eeb941][7702e6b7][fdb42827][896ffc14]
[46c2324e][d366e67a][9cfaff1a][85240f0c][1072872e][bab7f837][445a2241]
[4a53b6b9][3a73a67e][775bdb28][fc9cbd3e][0ccec24c][8f9a54e9][ea60d168]
[ade6861e][a49f5a97][52b90921][c3c1f9c5][95f6c5b4][c3155c05][349b1a83]
[97a68d10][6f1b0fe7][015aacf2][48e61f8a][b4fe21c2][f98f316c][886a00d1]
[97ecc4d7][37f52599][d824e6d2][40a8d032][e45436ef][e1899640][df1fbfed]
[dbbd515a][0e99334e][5dc5bb71][47408ed8][91965978][6405f379][46982a94]
[32a733c5][403b680a][0d9f70a0][33c2b283][1d97dceb][5cc476e7][4a6ea806]
[156fc2cf][e3b9c663][0d1444d2][14923ccb][fff19795][e67941e9][d8d34a12]
[d20bea56][46fc663e][ad940dec][af90aed7][419d371d][95a5479f][035544f2]
[88e862a8][e39a546b][c17d5b2f][1be78baa][4c325212][27d1d704][93caca51]
[7b4e9823][d3d839cd][30b398b1][1f0fe647][b915dd3a][2b6b4019][cbe8d97b]
[63d48fad][83a870cb][4663edbf][b010e70b][8db41819][d2c3e931][b77f6c44]
[fb205b31][f89db51c][7ad82e9c][f2b2015a][bb75b628][1f31a41b][d1ce57ad]
[fd75bb0f][dcbd66ce][a174de25][760b9198][b0f9d832][53da367b][d371cb51]
[c9cb334e][6e337de7][afb700e2][430d6d29][64442a2e][674917ef][6b3c0a60]
[2ebe50b1][9841db37][09bdc417][289c4826][b6203f07][ccf3b24b][5b20a8c7]
[2d559ef4][01a8faa7][4f1bbdbf][656b58bc][424de2f0][b6df0034][f8e22b6f]
[1acb74d8]
New in 2022.12:
+ Improvements:
+ Improve flow of calling set-env.sh from a script [57337212]
+ Make the "needle (elem) list" message more clear [958537b1]
+ Make X::TypeCheck::Assignment message better [05d60e21]
+ Simplify X::TypeCheck::Assignment for containers [1e30b43c]
+ Additions:
+ Allow for --no-foo as alternative to --/foo when
%SUB-MAIN-OPTS<allow-no> is set [61617b12]
+ Allow for -j2 as an alternative to --j=2 when
%SUB-MAIN-OPTS<numeric-suffix-as-value> [388924d6]
+ Allow for .skip(produce,skip,produce,skip,...) in 6.e [2a1ace84]
+ Introduce "nano" term in 6.e [10feda11][feb97323]
+ Add IO::Path.created returning the Instant a path was created [dbf035d8]
+ Introduce // as a definedness prefix operator in 6.e [d05f7eed]
+ Add method Any.snitch in 6.e [10066021]
+ Introduce Dateish.days-in-year method [3d181c89][4d43bbf9][67513cb8]
+ Add rotor-like capability to Str.comb in 6.e [84abeb52]
+ Make sure Type.are also works [983cf3ec]
+ Implement IO::Path.chown and chown() [1e02f566]
+ Efficiency:
+ Add a lot of uint candidates for a lot of ops [47f9b286]
+ Add proper support for uint comparisons [25c76aed]
+ Fixes:
+ Make List:D.iterator a multi so that List:U.iterator works [5ad2c0c6]
+ Add missing Allomorph.words method [59a34853]
+ Revert "Add CUR::Staging.candidates method" to fix issue with
precompiling modules for packaging [9360c650][6937da17][454752e3]
+ Implement nominalizable transparency for definites [71de2232][c915b07c]
+ Make World's `is_type` method more reliable [13f7416c]
+ Don't blindly make a Version object for vN [7ddb90ce]
+ Add missing $obj? to Perl6::Metamodel::JavaHOW.archetypes [d059921b]
+ Fix role parameterization over generics [94f3028e]
+ Get job done well for coercive nominalizeables [9e18b391]
+ Make generics work with return type in signature [a3021944][47c35cab]
[4cdb5585]
+ Make (1,2,3,4,1,2).QuantHash>>-- work [63d03eb8][d0ec99a8]
+ Report deprecated subs/methods that are hidden-from-backtrace [43a6575b]
+ Feeds require .append to work, not .push [29eadbb2]
+ Make feed error message more comprehensible [2070ceeb]
+ Fix module installation writing precomp files into the wrong precomp
store [cc7193d0]
+ Fix NEXT / LEAVE phaser interaction on JVM [ce1af0fa]
+ Fix definite type parameterization [07164fec] [8a7d84c5]
+ Fix a regression introduced by new 'dispatch' path related to
smartmatch [35b180b8]
+ Make sure that Array.raku doesn't die on a lazy iterator [2037ffba]
+ Make sure .elems don't mention the class [3859d6cb]
+ Fix smartmatch in EVAL regression [0a9e2014][2702b001]
+ Avoid loss in precision on FatRat .Str conversion [441e71a5]
+ Revert "Simplify setting up standard handles" to fix seemingly
unrelated issue with IO::Notifications not working [64f552f3]
+ Removals:
+ Remove nqp::p6client* ops [126aa804]
+ Internal:
+ Tune Java in response to nqp's (de)serialization rewrite [018e549b]
[5a57f84e][18122e02][a78033f1]
+ Reuse $v-how instead of calling HOW again [191964c5]
+ Change internal API of RI:Snip [feb04dbe]
+ Move the iterator logic of Str.comb(N) to RI::Ngrams [e826dbdc][d12461b0]
+ Actions: Avoid repeated $<sym> eq 'S' [bc3b5824]
New in 2022.07:
+ Changes:
+ Re-imagine DateTime.new(Str) / Str.DateTime [aa462b41]
+ Make sort() a runtime error [0c9169dc]
+ Implement coercion via new-disp and re-consider return typechecking
dispatcher [7774c331][4ab61720][efd610cb][b4a26fbe][3e45f709][6c3cb859]
[f448ac47][a9606b29]
+ Make Iterable.hyper|race take Any as a default for :batch and :degree
[d73d035e]
+ Additions:
+ Implement fallback support for MRO [1128d5cf][83197e34][9710a85e]
+ Add IO::Path inode, dev, and devtype methods [5c4970c5][599a6362]
[6dc2f92c]
+ Add sub version of .head / .skip / .tail [af31b1df]
+ Implement Haskell's "span" as "snip" in 6.e [16ccb573]
+ Removals:
+ Efficiency:
+ Add native sub versions for .elems and .end (up to 4x speedup) [4fedb6f0]
+ Make coercions up to 1.6x as fast [5a8aa66b]
+ Add candidates for sub substr(str,int,int) for up to 2.8x speedup
[09ead96e]
+ Fixes:
+ Fix cases where we try calling methods on BOOTCode [4130846b]
+ Make PostionalBindFailover.iterator die [dd7f3eb9]
+ Fix subclasses of .Date(Time) coercion [1a7b4b1b]
+ Revert relaxation of positional bind failover binding [bb944723]
+ Fix an LTA error message on passing Seq to a List parameter [db13e402]
+ Fix copy-pasto in error message for native unsigned ints [ffdeecd1]
+ Add missing private error handling method in Buf[32a40791]
+ Consider Positional/Associative type parameters in optional defaults
[7148da1c]
+ Fix a deep recursion issue in return typecheck dispatcher [9fa76ec6]
[808b0768]
+ Fix a regression where coercing into a role didn't work [0e09a287]
+ Implement lazy 'handles' trait application for methods [6430d41d]
+ Get around a problem where a module duplicates method objects [324adc5a]
+ Fix lone "-" in MAIN handling with :named-anywhere [3d3966b0]
+ Add ACCEPTS method for DateTime [31779f47][621d69e0]
+ Fix some cases of coercion over containerized values [fbe3acd0]
[02f32d51]
+ Make code object based delegation 6.e feature [c6c8dfee]
+ Internal:
+ Micro-opt on CoercionHOW.typecheck [41e07ab9]
+ Make coercion more easily inlineable [eceea95c]
+ Simplify $has_varname setting [378a89e6]
+ Simplify native value / container check in binder [750487c6]
+ Further simplify native binding check [fc149e22]
+ Streamline native match check [a2f92b2b]
+ Ternearize lexpad binding of natives [f2546b44]
New in 2022.06:
+ Changes:
+ Allow optional : on LHS of signature binding declaration [20fd4f04]
+ Make &[max] and &[min] return RHS for ties [175e716f]
+ Make handles on attribute of type object more natural [1c04360d]
+ Allow openbsd to locate shared libraries by version [5abd57a8]
+ Allow :from<Raku> in identities [3051eefa]
+ Reconsider the way `$*PERL` is deprecated [10d73ada]
+ Allow setting ThreadPoolScheduler's max_threads to semi-infinite
value [4e56f241] [b0ebb5e6] [febff8fb]
+ Additions:
+ Categorize exceptions thrown by role appliers [7a2f3b19][9155b92b]
[d79a261d][86d2a75a]
+ Add :real named argument to DateTime.posix [1ffedd66]
+ Introduce (Exception|Cool).Failure coercer [51c00fdd]
+ Removals:
+ Efficiency:
+ Slightly speedup exponentiation by Ints [6f6fd1f7][1a12c34d]
+ Fix unneeded dependency check [636c805e]
+ Make .tail() on native arrays 25x as fast [7a25fc91]
+ Make .head/.tail faster on native arrays [7a25fc91][3c47f1d4][73b43e5f]
+ Make Date.new(Str) a few % faster [39298f10]
+ Make block exit handling faster for blocks having phasers [9a29735d]
[080abcd8]
+ Fixes:
+ Fix install issue on JVM [e4ba84af]
+ Fix exponentiation by large negative Ints and speedup exponentiation by
any sized negative Ints [c66c98fe][e4ae4737][b2c44bf3]
+ Fix for positional argument binding [83ea6474]
+ Fix infix le on two native strings [e93447cf]
+ Fix execution error when referencing non-existing captures [aaa5615c]
+ Remove counterproductive fallback from ModuleLoader [217960e2]
+ Resolve race conditions when working with symbols and repositories
[6fc2e6c6][0293ae58][ad2fdca4][d1b58910][f5dbd15a][082c7122][466a21d3]
[cef53ac1][2e17ca3d][8940d688][95fb9260][3b4061f6][c2f495b0][18c19fc9]
[6b117a36][2c6bccb4][ddef6461][a5cf1227]
+ Make "make test" clean on newer MacOSes [a6a856a4]
+ Fix my %h is (Set|Bag|Mix|)Hash = foo [62b6792a][51fd091a]
+ Internal:
+ Update BUILDPLAN helper module to uint renumbering [bea59762][9fd893f7]
+ Let core module installer use information from Compiler object [ce86a7db]
+ Put CATCH blocks at the start of the scope for maintainability [9f8eea41]
+ Various micro optimizations and dead code removal [ca5cfed8][0e55e9ff]
[36bdd01a][280a2090][b01c493a][a84e1684][64317c4e][8f70f8db][b84a6d2e]
[59d07871][556f1a2a][bf979d08][e9de06b8][ce86a7db]
New in 2022.04:
+ Changes:
+ Improve error when `make` encounters non-Match $/ (#4834) [2da9eb22]
[540c7365]
+ Additions:
+ Make previous values in REPL accessible with `$*N` [190e303d][1292357d]
+ Add `INSIDE_EMACS` environment variable for better embedding of the REPL
inside Emacs [76035de0]
+ Add an `IO::Path.dir-with-entries` method, returning a `Bool` indicating
if the directory has any entries (without danger of resource leaking)
[8a1e7788]
+ Implement `will complain` trait [a203a5af][2c2c5306][beeb9ffc][2baf8bc6]
+ Removals:
+ Remove the $?COMPILATION-ID constant as it was not documented and not
tested [b2a8bfc9]
+ Efficiency:
+ Make IO::Path.mkdir 2x as fast if dir already exists [57a65562]
+ Shortcut many methods on `Empty` (returning `Empty` without needing
to set up an iterator and a `Seq` [1b4977c6][8f5a07d0][943c443c]
[1afc3f4f][78ca49eb]
+ Some optimizations for regex substitution [79cd9d97][55c833ad]
[72f2f400][4503faac]
+ Micro-optimizations to make compilation of Raku code faster
[3b692b1b][9a860ca8][9b07b66c][f6d9e90f][6736bd74][2555660b][f00fa82a]
[a0303b18][0cb12fee][c74b1275][7c1e80c6][3187922b][5dfa9c4e][c891075f]
[91185079][0fe48931]
+ Micro-optimizations to make module loading faster [f19d36b3][412c4625]
[ec20a3f0][173a75b0][97ad3f79][04c8bd6b][55685572][397145a6][83bf9d26]
[1c73cb8d][fc5ee2b0][1fd2d843]
+ Micro-optimize creation of `IO::Special` objects a bit (3x at each
Raku startup) [3e217a0d]
+ Fixes:
+ Add mention of 'sub' potentially missing [a56d239d]
+ Revert "An object will never work if native is expected" compile-time
error [94d4820a]
+ Only assign to caller's `$/` during a regex substitution if it's
writable [aed27864]
+ Make sure we serialize exports [f4cba21c]
+ Ignore any dot files in "dist" directory [07b4422b]
+ Make `*CWD` initialization non-lazy, it is almost always needed and
making it non-lazy prevents a race-condition [e9575349]
+ Don't initialize PROCESS:: variables more than once [e7143e00]
+ Protect setting loading with a lock [5dd82a62][07d3030a][d53d2da9]
+ Don't treat `!=` as a meta-op of `==` [f3b1e95d][12dd09e1]
+ Fix race condition in Rakudo::Supply::BlockState [5658f4da]
+ Fix for a lexical being localized while used in a nested scope [19c6c52f]
+ Fix typed named argument arrays not reporting type correctly [dcb0ac09]
+ Make `uniprop`/`uniprops` thread safe [2bd2ca0f]
+ Correctly check for writeable containers [90d876a3]
+ Internal:
New in 2022.03:
+ Deprecations:
+ Additions:
+ Expose the `.file` and `.line` methods on `Label` objects [028828ac]
+ Allow `Date` / `DateTime` *day* parameter to be a `Callable` /
`Whatever` allowing e.g. Date.new(2022,3,*) for the last date in
March 2022. (#4808) [37756433]
+ Make sure tools/install-dist.p6 is also available as .raku [6ddf7529]
+ Removals:
+ Changes:
+ Make error on `Date.later(:hour|minute|second)` more awesome [7f00f798]
+ Give `.chomp` the possibility to specify a needle (#4739) [cccc3e8c]
+ Improve error message for invalid arguments passed to traits [eb151d53]
+ Test should work with any default version of the language [9425d0fa]
+ Fixes:
+ Un =my= `X::Comp::Group` [74cca333]
+ Turn junctions into value objects [cc3ed94b]
+ Fix a bug with gist over `Junction` keys [df09bef0]
+ Fix classification and categorization over junctions [c50f51f9]
+ Fix typo'd missing : in .nominal_type signature (#4788) [59dcca66]
+ Decrement # of calls in a block if any are optimized away [4d19c236]
+ Fix [native array `.repeated` / `.unique`] issues on JVM backend [b46fed9c]
+ Fix `IO::Path.parent` [4ef9426f][e53716aa]
+ Fix multi-method candidates lost when 6.e role is applied [6b58cc03]
+ Workaround for cases where `.ACCEPTS` may return non-Raku object [f1f5d5cd]
+ Fix issue with native array.splice [blin] [63830142]
+ Fix issue with `Net::Curl` [blin] [6d04cc39]
+ Make `DateTime.new(Allomorph:D)` work [60603bac]
+ Restore `given` / `when` optimization for `Numeric` cases [986b1df4]
+ Fix/test `Pod::To::Text` rendering of `=defn` elements (#4803) [ca2d1d6c]
+ Remove erroneous early exit from install-dist.raku [edb8a200]
+ Fix resources of the parent repo not found when using Staging [07d580bc]
+ Internal:
+ Optimize more cases of p6decontrv ops (#4793) [2ed88523]
+ Use new native unsigned integer NQP ops where applicable [ceaa38fc]
[4d61a582][28a734d1][548c2550][167c2394][72b9e1c2][e000840d][88386a09]
[3e89b30a][96cbc2be][f807186e][de9eeeb2][a71ec345][7c5595e2][a965cdcb]
[771655b0][5c8a2cf7]
+ Generate the SignedBlob/UnsignedBlob roles [65507b89][7870b446][4677dcb7]
[fb25bd4e]
+ Use --/++$i instead of $i = nqp::add/sub_i($i,1) for readability, as
this is no longer needed for performance [5caf7aaf][648d02a1][0fac2da8]
[db277ae2][11494f98][e06e32ef][2dfc69e2][3b64a627][81099326][a6019d51]
[2bf84660][c92b44ec][af7c1c32][8077ebd3][6513988b][b79e9ba5][802a4737]
[8529cc97][a236d438][08dcab8d][c1345c57][c7231cd7][bd722aba][473e903a]
[f8e69321]
+ Streamline the Blob/Buf generated code a bit [6a21196c][6230645a]
+ Generate the sorting logic for native arrays [64c7dfa1]
+ Make Complex multiplication factor constant [7bc572e7]
+ Streamline Complex -> Real coercion [e3b836a5]
+ Simplify creating a Complex object [967a130f]
+ Enable num->str coercion in native.repeated/unique [979cc607]
+ Remove unneeded/confusing can('prec') checks [232a55b9]
+ Remove some unnecessary `try`s (#4773) [0949d67c]
+ Stop telling users to avoid mimalloc [200579f7]
+ CURS simplifications (use TWEAK over BUILD, remove .name) [3f10f7da]
New in 2022.02:
+ Deprecations:
+ Additions:
+ Add support for $RAKUDO_OPT environment variable [e82e6774]
+ Implement sub rotor [90a04ac0]
+ Introducing $*RAT-UPGRADE-CLASS (#4299) [f737b080]
+ Add Cool.Order "coercer" (#4473) [4b2fc66f]
+ Add CI job that runs a spectest instead of Rakudo tests [7ef7b6ed]
+ Add :slip named argument to roundrobin() [de605e84]
+ Add an Any(iterable).infer method (#4626) [4d263779]
+ Add ACCEPTS candidate for Junction to Bool [f21af28e]
+ Add missing checks for nulls [821195b2]
+ Add missing precedence info for some infix ops (#4725) [cd86606e]
+ Add .unique to native arrays [bc8c286f]
+ Add .repeated to native arrays [369093c8]
+ Add .squish to native arrays [284b5623]
+ Finally add in memoriam for David Adler [510c24ed]
+ Removals:
+ Remove uniprop-(int|str|bool) [cc5f17a0] [2b355dc4]
+ Remove check for nullness of descriptor [b2f0a9d2]
+ Remove some no longer needed CALL-MEs [25ca2064]
+ Remove RESTRICTED setting (#3965) [6a8fa2f4]
+ Remove two dummy parameters from (Fat)Rat coercer [6c765609]
+ Remove dead code from MoarVM and JVM extops [e912bf2e][1ba3fe04]
[421dd982][969ae326]
+ Changes:
+ Relax cross-language revision role-class boundaries [d493a051]
+ Get rid of trailing ] and } when dd-ing typed arrays/hashes [49608021]
+ Adapt to nqp::radix(_I)? now returning # chars converted [4a3753fb]
+ Disallow creating Uni with out-of-range codepoints [c56c578c][ef35db06]
+ Make Complex.new about 30x as fast [586f2f3c]
+ Get IO::Path!SET-SELF below inlining limit [4f3ff580][efdc1a9e]
+ $x ** ±Inf is sometimes 0 (#4226) [03065e29]
+ Make dd output consistent for arrays and hashes [59929f0a]
+ Call .perl(:arglist) for Capture's list elements [27ede8cb]
+ Make class A does B{ } error more awesome [535e0151]
+ Make .WHY on role group delegate to default role [8f989d1a][d3e74427]
[91e3c983]
+ Make set-env.sh script work on MacOS (#4704) [19696916]
+ Protect some typechecks with try [e3f22147][5f843222]
+ Make sure that subclasses of FatRat .raku correctly [d6e6afb0]
+ Make Rat.FatRat about 5x as fast [82afbbf0]
+ Rename Any.infer to Any.are [186bd0b0]
+ Bring Rational.floor/ceiling/round/Int below inlining limit [59ea71f7]
+ Reduce bytecode size of Array[TR].BIND-POS [daeb9915]
+ Make adverbless @a[iterable] about 2.5x as fast [30f1fba3]
+ Make adverbless @a[*] about 20% faster [8ac55c57]
+ Make the adverbless zen-slice (@a[]) a few percent faster [21829c33]
+ Make FatRat.Rat coercion about 6x as fast [2fe1bb85]
+ Bring down bytecode size of nativearray.splice helper [38648b4f]
+ Re-arrange Int.base a bit [4d78bc6a]
+ Make unsuccessful .first about 40% faster [ed99df18]
+ Extract failure creation into separate subs [7dc3add8]
+ Make Capture[n] (and thus $0, $1, ...) about 5x as fast [11c8f82a]
+ Implement smartmatch as a dispatcher [32401c47]
+ Set up nativeref types for unsigned integers [b70d1147]
+ Support primspec 10 for unsigned integers [b092cc6c]
+ Also check iscont_u when looking for native references [2509e183]
+ Support uints as their own argument kind in dispatch [c0fbd367]
+ Use unsigned ops when handling unsigned buffers [63b2b846]
+ New uint candidates for operators [4db92b18]
+ Switch to unsigned ops where appropriate [c38b6b42]
+ Unsigned versions of some iterators [56923c12]
+ uint versions of native arrays [1ef6001f]
+ Bring uint improvements to the JVM [27f3b719]
+ Introduce NYI as a sub (#4716) [94456edf]
+ Make Int.roll/pick act as (^Int).roll/pick on 6.e (#4695) [45090c91]
+ Make Int.roll/pick about 6x as fast in v6.e [6222a14c]
+ Make ^Int:D about 14x as fast [21ee1fa0]
+ Make creation of Int .. Int object about 14x as fast [8fbe6c0a]
+ Specify base of non base 10 invalid numbers (#4717) [522155d5]
+ Further improvements to smartmatch dispatcher [cd20a2bc][6148b75c]
[abfb9f86][2486960b]
+ Do some better job optimizing Junction on RHS [6f925ea2][eba72f4b]
[49955840]
+ Properly support uints in BUILDPLANs [a38bebec]
+ Don't assume "year" as unit [34455138]
+ Use proper unsigned ops for accessing multidim uint arrays [8777e923]
+ Use nqp::istype for nominalizable smartmatch [ef4abcc7]
+ Fixes:
+ Make ranges coerce LHS into a numeric if range boundaries are numeric
[7f73dcbd][dd5fabf9]
+ Many improvements to smartmatching and given/when [d0f2690f][7f1189fe]
[7554d733][80fbaadd][fedfd716][91ec1bbf][5855c1d5][6616440d][9f80771c]
[966e77fe][a1bb638f][ed85bad6][6b828fe6]
+ Fix Map ACCEPTS by collapsing explicit junctions [87621e1a]
+ [JVM] Mention routine in error for wrong arity [522e49a7]
+ Fix the behaviour of Pair ~~ Pair (#4671) [026c51a0]
+ Additional fixes and improvements of smartmatch optimizations [2a3f61ef]
+ Don't use MVM_free if we didn't use MVM_malloc [1b5c0b95]
+ Fix Nil warning in dd [a8498e8a]
+ Fix dd for nameless things [95d60623]
+ Fix potential race condition in Proc::Async start [8321ce10]
+ Test return constraints for role implementors (#3249) [56b57f61]
+ Use simpler code for correct `.length` suggestions test (#4703)
[9310799c]
+ Fix warning in Pod::To::Text signature processing (#3528) [36cee696]
+ Make sure rebuilds of native array will generate ok [21d988d1]
+ Make add_constant lookup setting symbols only [28b51238]
+ Make initialization of core dynamic variables threadsafe [768ebea7]
+ Fix is_array_type on roles [944debd3]
+ Fix writes to native arrays via [] returning arbitrary data [72ef4e4d]
+ Fix "This container does not reference a native unsigned integer"
[3823f88c]
+ Fix "This container does not reference a native integer" in Blob/Buf
[a64c2f55]
+ Fix CArray treating all native integers as signed [fee9e822]
+ Eliminate p6decontrv ops caused by *_u ops [e5b67c1d][b3a71fbc]
+ Fix custom-lib race (#4738) [dab9cd66]
+ Fix method put failing on junctions [e521c8e4]
+ Fix Attribute.(get|set)_value treating uints like str [382f2f10]
+ Add unsigned candidate of +^ (bitwise negation) prefix operator
[ffa09ff6]
+ Fix "Invalid ....BUILDALL plan: 24" error [118a0c3d]
+ Fix Attribute treating all native integers as signed [753c173e]
+ Fix optimizations of smartmatches over subsets [d6fb1919][b9d8aa49]
+ Fix "container does not reference a native integer" in UnsignedBlob.STORE
[14bacc24]
+ Fix "No registered operation handler for 'iseq_u'" [4e1a7721]
+ Fix NativeCall wrongly expecting signed integer for size_t rw args
[c92833f3]
+ Fix UInt where block trying to unbox a Scalar [26215f20]
+ Fix "container does not reference a native integer" with mixed int/uint
multidim array indexes [7cb21467]
+ Fix "container does not reference a native integer" in multi slice
[e4a4a92f]
+ Allow for using uint and int as indexes in native array slice assignment
[a35a7791]
+ Fix precomp file rename race condition [006a920c]
+ Fix X::Method::NotFound on my-classes [8edc6d88]
+ Internal:
+ Replace nqp::attrinited with a descriptor-based approach [425913dc]
[c3448773][13522362][71f8981b][c76c1e64][80f122d1][f96048c1][b6135861]
[bdb0cc23][c719eab8][cd585f9d][8f796f5b][28053bd2][43f4e8a5]
New in 2021.12:
+ Deprecations:
+ Additions:
+ Add is-wrapped method to Routine (#4579) [99bc766e]
+ Introducing RAKUDO_PRECOMPILATION_PROGRESS [d88d1cc0]
+ Add In Memoriam stub for David H. Adler [dba8dbb0]
+ Add a IterationBuffer.new(iterable) candidate (#4599) [ad145b4c]
+ Add IterationBuffer.unshift/prepend methods (#4641) [259d29b3]
+ Add knowledge about MacOS Monterey [1fc8cce3]
+ Add the ability to display any default values in sub MAIN to the default
USAGE message [0b286ed2]
+ Changes:
+ Remove tai-offset-nanos from CORE::.keys [a8c579b6]
+ Make .subst-mutate faster by simplifying proto [d619e026]
+ Make .match faster by simplifying proto [2204c7cb]
+ Make .subst upto 1.9x as fast [0dae67a6]
+ Remove redundant multi method list(QuantHash:U:) [8fd65670]
+ Replace some empty TWEAKs by "is built"s [82a9ca4f]
+ Better cope with megamorphic callsites after new-disp [85df0ba1]
[3229ef12][2df1d01a][091005f3][9ad99eb9][441e103f][0d84699c][5de7faf4]
[e4b0ddf9][1fbeb4c6][f9aa1d65]
+ Support Terminal::LineEditor in the Raku REPL [5db6a344][138aca10]
[694f648b][7b188795][15a13ffc]
+ Change SetHash.values() from `is rw` to `is raw` [65987460]
+ Very simple ACCEPTS for Int:D vs Int:D (#4625) [57387455]
+ Get either parametric or concrete roles in MRO when requested [641a86d5]
[832a8476][bf2a07fb][856f1af0]
+ Create checksums for release files [8cb674ac]
+ Clean up list of people to ask for rakudo.org access [a31db709]
+ Micro-optiize IterationBuffer.append(IterationBuffer:D) [92c490ee]
+ Remove support for use experimental :collation (#4616) [eb837dee]
+ New disp nativecall (#4629) [f67fb4ab][30a7e94e][889754d5][d46a826f]
[ad5cc86f][f20d448e][452781f3][624f3a7a][02539e96][3e3b5ca8][01470de8]
[a6633242][d5b98cf7]
+ Update Release Guide to have actual information (#4639) [b3b4ca21]
+ Make Date.new(year,month,day) about 40% faster [74c8c861]
+ Make Telemetry::snap(:head) return the filename [ad1fddbb]
+ Make the max number of threads depend on number of cores (#4652)
[afc56429]
+ Make Inline::Perl5 installation suggestion complete [4e23452c]
+ Speedup Instant.Num by manual inlining [4985f8a6][8642808e]
+ Add "ceiling" as a suggestion for "ceil" [57adbb1e]
+ Reduce number of nqp::cpucores calls (#4659) [c7e456d3]
+ Fixes:
+ Make enums and Bool throw on .new [42738187]
+ Use distribution specific comp unit ids in CURFS [7ab396a0]
+ Fix X::Assignment::RO message when assignment to Nil is attempted
[1ea47322][15ed1566]
+ Make sure return value of Str.match is threadsafe [1d0a903a]
+ Fix gisting Buf or Blob parameterized with an unsized type [62c04646]
+ Use better default for nativesize in Buf/Blob gist [e99e2742]
+ Clarify let and temp operators [1fec0ef2]
+ Make StrDistance.ACCEPTS also a multi [3ef09a72]
+ Make sure IO::Path.slurp returns failures [ce0d31fb]
+ Make sure ParallelSequence is included in shas [e98e17da]
+ Fix handling of constrained Mu parameters in signature smartmatching
[4329a995][c6e24eba][034768de][e6a68a94][088e0c4e]
+ Prevent rebinding for readonly parameters [PR #4536] [ea42b3df][5e1f25d9]
[32e307b6][90307035][aeaf6f5e]
+ Fix segfaults when multiple threads initialize dynamics [db136bc5]
+ Make concurrent access to an enum by value safe (#4634) [4c238bdc]
+ Fix CATCH blocks setting $! leading to serialization errors with BEGIN
time exceptions [b994c6bb]
+ Fix stupid copy-pasto, fixes #4660 [57801d59]
+ Minimal change for fix on MacOS Monterey [f029ac83]
+ Don't suggest method of the same name as "not found" [27082897][58c3d950]
[d4914edd][af0153df][545f8d0e]
+ [JVM] Don't let signal(SIGINT) break the REPL [1ef7019b]
+ [JVM] Skip or todo failing tests for JVM [d301860e]
+ Restore larger limit for using string_to_int on 64bit systems [7772b737]
+ Fix segfaults due to concurrent hash access in parallel module loading
[835d0f12]
+ Fix removing proxies in native calls [f0713c42][a6fad879]
+ Internal:
+ Lift $!do reading out of `for` loop body [560ff8c6]
+ Fix unnecessary boxing by routines with native return types [6bd955e6]
+ Prepare extops for a MoarVM internals change [3127861c]
+ Reduce visibility of Str internal classes [380c7758]
+ Only simplify protos on the MoarVM backend [c50bc998]
+ Add a missing MVMROOT in extops [ab02205e]
+ Remove an unnecessary decont on a hot path [24333b11]
New in 2021.10:
+ SPECIAL NOTES:
+ Introduce a new dispatch mechanism, including more general
and efficient handling of various language constructs.
For more info see [The new MoarVM dispatch mechanism is here!](https://6guts.wordpress.com/2021/09/29/the-new-moarvm-dispatch-mechanism-is-here/)
[d557f72b][3e086599][1f359956][959eaeab][dc456a1a][a114255c]
[055ca78b][4e5e5329][41de71cf][4ecb1995][83f66c59][482f2561]
[5c72c7b0][1023c381][8bd88c2e][d9b75e82][7d5f251c][10e5e32b]
[54c085e9][e20ee30f][54f2d5ec][34d48682][69d8d938][734ecd2f]
[b6359402][68aaeb1e][75a9cb65][52587136][38407083][d28a8aff]
[3c5193d1][db03d022][e598691a][39cc4ee7][2b189a51][074c5fc7]
[03b524dc][a42047fe][42b52ec9][997af70f][66dc358b][4302f94d]
[f146f705][306a9e02][b4bb83c2][0d2db69c][b42f34e9][8ba49228]
[868c05ff][90410697][753d269a][4f9ac059][8cc60acc][8845d57a]
[71086d4f][c58d69eb][1360ffe1][3dd4314d][4956784e][db543fc6]
[3aeb8e31][1ca8b728][417d17c5][8fc8a7f8][fba37c5b][85d4aaee]
[dda0ea03][2baa490b][50fcef71][419d21a6][6e4a5420][21680e1f]
[ccf7fa59][ca4d3f76][5973a1c6][5b4ee2e5][533978d0][192821f8]
[c34964b3][7f15f505][39eb6778][049d1300][6bd5a86b][7055e93c]
[df9c3939][26ee39e1][258610e8][fd9d62be][cff8e98f][9b39ae14]
[269d9394][610a6c81][5d93c2ea][8b52034d][7e9aa39b][ce7e94e6]
[29973253][13cae29b][b21bf9a8][7816de91][1c2b7149][c6342f8d]
[de24aac1][ddcaf413][67501437][1355f036][3ebee705][1ab7674b]
[8e760be0][4c14af68][25f0ef88][fa5b82af][dafb08cf][daa954fa]
[652079e7][7afa7bf6][dc070055][11e73132][4e0ceea0][cf46a3c6]
[8e20ea60][d17f00b5][5ba7cf0a][885f4ab5][84da856a][f8fa8844]
[25d2f634][5d07d600][1f172ecb][5dedf062][20a3ed03][79e5919b]
[605cd8e5][61f6984b][96e15cf5][439fc5bd][7583f21e][fa4efbf1]
[52338a0c][b8183107][84b1820c][f496be1d][edf17b3d][9d7d164c]
[c1a89bc0][1253f4bd][c0098e3f][ebd03058][3e5e217f][cee2053c]
[9e7499ed][a267025f][33a6655e][fd383374][1220a3ec][a638cf61]
[c1a89bc0][1253f4bd][c0098e3f][ebd03058][3e5e217f][cee2053c]
[9e7499ed][a267025f][33a6655e][fd383374][1220a3ec][a638cf61]
[c61d91a6][65b5b4a9][e7fee3ac][b63ff146][0400253c][6d05ce36]
[90e650cf][73b82cf2][02d4e74f][336d488b][34df830a][558dccc0]
[d2d21236][6d395816][72d9a0de][e8910a4e][e19bcbf2][d4062aa0]
[69fb2d79][9441ef4a][8668ebf0][a04fe6c0][fab8e646][39b60a2c]
[383a2fb2][36664650][2afbf2a2][7ff1a8a2][0805986b][a0c5c20e]
[009f4d39][1bc136ac][0d4ba023][4d25d5d9][4c2be058][2051e7e6]
[d9d30744][0da1bec2][41d478e8][45d642f6][0f323688][36738fac]
[2ee73dbf][dc2efba6][b8e55656][8504a9a9][dfb8446b][080f772c]
[19e0c985][4830a042][f488a6e8][305afb75][9a277af2][77a186f2]
[3513296b][3ad1a93f][ebe6682d][32f1e20e][0b6f3b33][c412cd76]
[de5ee1e8][0259d451][d2c88868][bfd8a36b][583a6da5][133807ca]
[9ea760d8][dd2b274f][38f6f873][21271aa5][cddcdb71][191fbba9]
[ff92bac5][aa728ef7][40bf3f3e][8d1f24f9][ca3355a8][d6d90f41]
[02c13fad][8fc643ec][b34ae24a]
+ Deprecations:
+ The `$*PERL` variable usage will warn starting from `6.e` language release,
using `$*RAKU` is preferred now [11fd2d70][3dc4aca2]
+ Additions:
+ Add Cool.Version coercer [dab7404c]
+ Changes:
+ De-unicodify `Raku` and `Rakudo` in the welcome message [ba15173f]
+ Fixes:
+ Fix a bug where using a signature constraint with a named callable parameter did not work
[e9a0b18c][9c2cc9c2][ffb587f2][51968148][d47185eb]
+ Make sure name suggestions shown in the `X::Method::NotFound` exception are properly sorted
[0152e3c3][569f90ea]
+ Fix a bug in module loading preventing the `Inline::Python` module to be loaded twice
from different locations [88862a9f]
+ Ensure symbols installed into `GLOBAL` during loading of a compunit are not lost [0cb2cb50][bb607b6b]
+ Fix loading wrong version of a module among ones with the same name happening in some cases [33296d40]
+ Fix overwriting of the `.repo-id` file in some cases [fbb5228e][bc2cac13]
+ Fix `require` of a package with globally existing class names [d4f7d174]
+ Fix displaying a warning when using `is` routine from the `Test` module
when comparing objects where calling `.Str` is impossible [69aaa424]
+ Prevent heredocs from improperly using block variables when continuing after the block [a78c9f0d]
+ Fix a bug where calling `substr` method on a `Str` object without arguments led to infinite loop [93f0d86f]
+ Internal:
+ Log event of exhausting system threads when `RAKUDO_SCHEDULER_DEBUG` env var is enabled [ffaf453d]
+ Pass `lib` in `RAKULIB` instead of `-I` in the `harness6` script [e09df02c]
+ Rewrite `INDIRECT_NAME_LOOKUP` [431c3d6b]
+ Use `$*RAKU` instead of `$*PERL` in more places [ff6951f5]
+ Add `:override` parameter to `Rakudo::Internals.REGISTER-DYNAMIC` [4b8b566a]
+ Consistently use a number for value in name suggestions hash [c99ffc51]
New in 2021.09:
+ Additions:
+ Introduce the `safe-snapper` module. It is a shorthand
for loading `Telemetry` and starting a snapper with control-c
safety, allowing one to stop the script with control-c and
still get a report [87152eba]
+ Add ability to subtract an `Instant` value from a `DateTime`
object and vice versa [9a4af4b6]
+ Add `Numeric` coercer to `DateTime` [67138ec0]
+ Changes:
+ Make the `sprintf` method show its format string on error [ea8a95e5][57841911]
+ The `test` named parameter of the `dir` routine now handles Junctions [21a7117d]
+ Improve error message for the `X::Pragma::CannotPrecomp` exception [a52f1f62][fe461d17]
+ Efficiency:
+ Numerous small speed-ups and memory-related improvements
[94462dfa][3aba9707][3c1c709c]
+ Fixes:
+ Properly handle List of Lists in the `List.fmt` method [a86ec91e]
+ Don't lose concurrent modifications to `%!conc_table` [72bc5623]
+ Fix potential race in `Metamodel::Concretization` [d666dfe8]
+ Make the default scheduler properly see `RAKUDO_MAX_THREADS` env variable [b14d404a]
+ Internal:
+ Support `ROAST_TIMING_SCALE` in telemetry tests [9681a093]
+ Fix false positive in basic telemetry test [c0a6823b]
+ Pass along whether the Rakudo runner was called with `--full-cleanup` [5492452b]
+ Update the concretization table more sparingly [b236dcfd]
New in 2021.08:
+ Additions:
+ Enable rendering of nested blocks in the `Pod::To::Text` module [07517164][27f7924e][36de39f6]
+ Changes:
+ Raise priority of `let` and `temp` operators compared to `.=`, `.` and
auto-increment, making `let $foo .= &{ Nil }` work more intuitively compared to
`(let $foo) .= &{ Nil }` as was necessary before [ca40fca0][723e7488]
+ Change the `Scalar.WHICH` method implementation, fixing the semantics to reflect
that `Scalar` is not a value object [56fce9e7]
+ Efficiency:
+ Make the `&&`, `||` and `//` operators about 2x as fast for the `+@a` candidates [db441c2c]
+ Improve performance of smartmatching between two `Signature` objects [66ae8612]
+ Fixes:
+ Fix some occurrences of hash-related concurrency issues [58ae9394]
+ Fix the `List.reduce` method when used with `&infix:<&&>` [ea389d66][db441c2c]
+ Fix matching of native types against roles `Numeric`, `Real` and `Stringy` [a8a78132]
+ Make `Pointer.Numeric` and `Pointer.Int` methods return 0 instead of resulting in an error [681e3b5e]
+ Fix a race in the `ClassHOW.new_type` method [08f5448d][83b0bca7]
+ Internal:
+ Make checking for Windows cheaper [89df7f4b]
+ Simplify `Rakudo::Iterator::While` iterator code [ffde2ba2]
+ Fix location of the `Proc.status` deprecation message [54f1b7a5]
+ Add tests to make sure float and double `NaN` can be passed to native code
via NativeCall using the Raku `NaN` value [8ae6f394]
New in 2021.07:
+ Additions:
+ Make `cmp` routine work properly on `Iterator`, `Seq`, `Uni`, native arrays and empty `List`s
[efb3116a][f3ff0621][76714ca4][39ba8884]
+ Add the `ACCEPTS(Uni)` method on `Uni` candidate [6b6459f3]
+ Implement `last` and `next` with a value for `6.e` language revision
[402ea056][2542a0ac][a5d81353][0761d4b2][47ebc86c][a2faac4b]
[e777fc4f][4f190875][21576423]
+ Properly support nearly all HTML5 entities in Pod `E<>` formatting code [910179d7]
+ Allow `Ctrl-C` to stop entry in REPL [cf7b4f18]
+ Add `⩶` and `⩵` as Unicode synonyms for `===` and `==` [eab780f3]
+ Deprecations:
+ Deprecate the `status` method on `Proc` in place of `exitcode` and `signal` methods
[249fdba2][2fd458cc]
+ Build System:
+ Tidy and improve cleanup rules [e771bd8a]
+ Support creating an MSI installer [4e93b84e]
+ Changes:
+ Allow `add` method on `IO::Path` to take multiple values (e.g. `"foo".IO.add(<bar baz>)`) [b4d33982]
+ Efficiency:
+ Optimize calls to `map` [a8f144cc][38626c68]
+ Optimize loops without phasers for one and two arguments case [265888ce]
+ Make for / map with 2+ arguments up to 2x as fast [4c417f31][4f5fb9e6][bfa6b295]
+ Make `List cmp List` about 25% faster [50bd1717]
+ Reduce overhead of loops with phasers by at least 5% [5ecc8308][7a1b729b]
+ Make the `grep(Callable)` method about 3% faster [52ffc125][bb09bbb8][71f6bada]
+ Fixes:
+ Fix `rakuw.exe` to be a non-console app [57885f66]
+ Fix CURI probing and installation edge case issue on Windows [2839cef6][d668d992]
+ Clean up sockets created by `IO::Socket::INET.new` on error [bee5c7af][271f17b0]
+ Fix freezes caused by concurrently produced iterators
[8eae05b9][2d396ae7][6e66c2e5][24b0df8a]
+ Fix `unimatch` for non-base properties [0a1256af]
+ Internal:
+ Implement support for `moar::hllincludes` config variable [a96bfdc2][552f2810]
+ Fix binary release `set-env.*` scripts with space in path [a4a46e3c]
+ `Rakudo::Iterator::UnendingValue` no longer a `PredictiveIterator` [917d674b]
+ Separate `Rakudo::Iterator::IntRange` into two classes [03aef65c]
+ `PredictiveIterator` provides own `push-until-lazy` [7cf3927d]
+ Various internal fixes and improvements
[5976e30e][bdc5092f][1bd0411c][f2959ad5][ddc7c9ff][9c69b7d5]
[941349d0][eae82f09][2efe4302][7f5f60e8][22f78f4e][9bf1e1c2]
New in 2021.06:
+ Additions:
+ Support generics with consumption and inheritance in roles [4b996568][6e1cfe4c]
+ Introduce `done foo` syntax as a shortcut for `emit foo; done` [452e92ed]
+ Implement `pick` method on `Any` taking HyperWhatever as an argument (`.pick(**)`),
which produce all values of Foo.pick(*), and then produce all values
of Foo.pick(*) again, and again, ad infinitum [cd4a72b6]
+ Add a `repl` sub to enter the REPL from within a program [4183cdaf]
+ Add `Buf` and `Blob` coercers to `Blob` and `Buf` roles [f83e5511]
+ Changes:
+ No longer use Unicode in REPL on Windows [5e1c97ba]
+ Efficiency:
+ Tweak worker addition for many small tasks [39e5834d]
+ Make `.grep(Regex)` and `.first(Regex)` about 40% faster [0de28ae7]
+ Speed up setup of NativeCall subs and reduce memory usage [3b7fef2e]
+ Micro-optimize `levenshtein` sub used to suggest alternatives in error messages [da0f561c]
+ Fixes:
+ Improve stability on Windows by trying to rename precomp files multiple times [a9510b8d][7dfed29c]
+ Fix bogus "emit without supply or react" error when using `hyper` to process arrays [4953a299]
+ Fix some edge cases with `(+)`, `(.)`, `(&)` and `(|)` set operators [89fd8a8d]
+ Make signature destructuring with a `Junction` an error [15d372e2][57070f05]
+ Make `Mu eqv Mu` work [750c5d04]
+ Fix possible error when throwing an exception on JVM backend [9743035f]
+ Internals:
+ Provide support for `CORE::` namespace for the core itself [ea92934c][3fcf6f75][b03afef5]
+ Remove a special case for native arrays on JVM [28ff12a8]
+ Simplify `Iterable eqv Iterable` implementation [168da39a]
+ Abstract single elem path of `[]` into `Rakudo::Internals` [db074a8b]
New in 2021.05:
+ Additions:
+ Add support for `∊` and `∍` as aliases for `∈` and `∋` [d00c7e35]
+ Changes:
+ Make `lc`, `uc`, `tc`, `tclc`, `fc`, `flip` methods on `Allomorph` return `Str` instance
to make it consistent on subclassing [bb069a99]
+ Efficiency:
+ Make infix `(elem)` operator about 30x as fast on native arrays [e6a7bfe7]
+ Make `DateTime.posix` about 12x as fast [17c55f3c,ec8b1ae7]
+ Fixes:
+ Fix `$*EXECUTABLE` with non `_m` suffix executables and on Windows with `raku`, `raku-debug`, `rakuw` [b13542e8,a37f9790]
+ Fix copying of empty shaped array [0bf10e26,ede453e1]
+ Fix `substr_rw` method on `Allomorph` [1d8d05f5]
+ Improve error messages text [5c78fb7a,5331a1d8]
+ Internals:
+ Replace use of `P6EX` hllsym with `Metamodel::Configuration.throw_or_die` method [ca2753b7,a524c3de,8427afe9,2c4a0062]
+ Remove special cases for hash constants for JVM [4dab8405]
+ Move opening of standard handles into `Rakudo::Internals` [b1e4350f]
+ Fix a test for reproducible builds [21a60e17]
+ Use "#!/usr/bin/env rakudo" instead of `perl6` in module scripts [adc89e2a]
+ Add tests for REPL correctly handling junctions and incomplete regexes [45e8e8d9,cbf12d22,21100c91]
New in 2021.04:
+ Additions:
+ Make methods `keys`, `values`, `kv`, `pairs`, `antipairs`, `invert` work on `Enum`
[3a112938][615030d2][b1556cba]
+ Make `uniname` method work on all `Cool` values such as `Num` or `Match` [31331a28]
+ Add the `user` and `group` methods to `IO::Path` [2fa6413b]
+ Add new methods `day-fraction`, `modified-julian-date` and `julian-date` to `DateTime`
[6841ed5e][457925e9][39260262][2689eac1]
+ Allow `uniparse` to be called on `Cool` [075d6921]
+ Add warnings on improper use of `contains` and `index` methods [39a3862b]
+ Deprecations:
+ Deprecate `Cool.path` method, use `Cool.IO` instead [c715b5cb]
+ The NQP operators `time_i` and `time_n` were deprecated in favor of `time` which
returns integer nanoseconds since the epoch [b6448c7e][acaef290][c1f341cc]
+ Build System:
* Properly handle signals (e.g. out of memory) during build phase
and provide a more informative output [03854ed7]
+ Changes:
+ Rename `deterministic` method on `Iterator` introduced in 2020.12 into
`is-deterministic` [596ccef3]
+ Calling `ord` method on `Str:U` now throws an exception
instead of silently returning `Nil` [92dc60b7]
+ The subroutine `subtest` from the `Test` module now outputs a test header
as a comment `Subtest` with an optional description provided [a7c57a01]
+ Make `Int.chr` and `Int.unival` handling of negative values consistent [627cc406]
+ Efficiency:
* Make `now` about 38x as fast [06658515]
+ Make `Str.wordcase` about 5x as fast [5d058ea8]
+ Make `Str.uniparse` about 10% faster [9cc65028]
+ Make the `lines` and `words` subroutines up to 20x as fast [b954ef94]
+ Make `my %h is QuantHash = ...` about 5x as fast [ec73d6c9]
+ Make `Int.unival` and `Str.unival` faster [fb19daa7][bcfa5489][504c89a9]
+ Make `Str.ords` up to 2x as fast [74e449ec]
+ Make `List.sum` faster [18c4c5d4][8f4db8b6]
+ Make `Any.sum` about 40% faster and check for laziness [07aa4aea]
+ Make `chrs` method faster for native int arrays [f75957dd]
+ Make `uninames` method about 2x as fast [d14dda68]
+ Make `Str.univals` about 50% faster [88921320]
+ Make `Datish.daycount` calculation about 30% faster [c07639e6]
+ Make `uniprop` method about 30x as fast [c9aceda4][54c95ebe][885d6390]
+ Make `uniprops` method about 4x as fast [97b2b3f0]
+ Make `Baggy.AT-KEY` about 60% faster [74af72de]
+ Optimize various cases of iteration when `Iterator` produces no values [0bbeb2de]
+ Micro-optimization of a for loop construct [23036f1d]
+ Micro-optimization of startup [9ec3a128]
+ Fixes:
+ Fix a regression in command line arguments parser introduced
in the 2021.03 release, where certain complex default arguments
would throw errors when used in a pre-compiled module [10c3dbb9]
+ Fix compilation failure with `EVAL` in precompiled module's mainline [c05b23f1]
+ Make backtraces consistent on all back-ends [2e79780e][0b91b21a]
+ Fix and edge case of sub-signature handling, making `say :([]) eqv :(@);`
properly result in `False` [41fd1d9f]
+ Make signal handler setup synchronous to avoid race conditions [2d1f4904]
+ Fix race condition in `ThreadPoolScheduler` [98839c80]
+ [JVM] Properly show name of a subset in the error message
of `X::TypeCheck::Binding::Parameter` [b4367a8f]
+ [JVM] Fix `Bag` objects behavior regression [dc50951e]
+ [JVM] Fix a miscompilation of native arrays [e774e194]
+ Fix a potential issue on subclassing from NQP classes or consuming NQP roles [5959a21c]
+ Fix a potential issue during inlining [c0d7464a]
+ Fix `Int.uniname` to handle big negative and big positive integers [af6662a3]
+ Fix handling of holes in `raku` method for native str arrays [2d1510a9]
+ Fix resource leak when iterating files using `dir` method on `IO::Path` [62c976a4]
+ Fix an exception when `grab` was called on an empty `SetHash` that had contained entries before [e9e3b5fb]
+ Fix `DateTime` equivalence check with `eqv` relying on `raku` representation [01a0c934]
+ Fix methods `substr`, `substr-rw`, `chop`, `chomp`, `pred`, succ`, `comb`,
`lines`, `words`, `wordcase`, `trans`, `indent`, `uc`, `lc`, `tc`, `fc`,
`tclc`, `flip`, `split, `trim`, `trim-leading`, `trim-trailing`,
`samemark`, `samespace`, `samecase`, `subst`, `subst-mutate`
when called on a `Str` subclass
[da34b40a][f4bfeea6][813d4f1a][a26ff404][b4813bbd][3e43a729]
[a4a915ec][995d39c0][5ca26c2a][e2ec1607][c5057e86][1819caa1]
[ffcda845][fd037828][9398ae68]
+ Make sure methods `comb`, `chop`, `chomp`, `substr`, `substr-rw`
called on a `Allomorph` return Str [7a77b397][ba814fde]
+ Make sure `trim`, `trim-leading`, `trim-trailing`, `split`,
`samecase`, `samemark`, `samespace` methods handle `Allomorph` values
correctly [9a9a59c9][a2399ce9][7e87e20c][fb6441bc]
+ Internal:
* Disable superseded CIs: Travis, AppVeyor and CircleCI [d272f4fd]
+ Remove two five-year-old compatibility wrappers [1e94845b]
+ Relax lots of Cool subs access checks [c993e33b]
+ Allow for experimental features in the setting [cae44e51]
+ Split history `src/core.c/Cool.pm6` to `src/core.c/unicodey.pm6`
[0156f521][2d615fcc][4a9098ae][082800c4]
+ Re-organize Unicode related files [2d5e81b1][9f73552a][009d90b8][069c0b20]
[9d7279d5][2251b70c][dc74f081][496f986e][b88e1ca3][f2f1cda6][dcf1c506]
[5fd7d068][ee3fa379]
+ Introduce a new private method `!lazy` on `List` [d99bd6b8]
+ Introduce `throw-iterator-cannot-be-lazy` and `fail-iterator-cannot-be-lazy`
internal helper methods [8e56c8c8][6e5d742e][e592277f][d3c4ff30][057620c9]
[2cd963de][ec3c7bba][190dc553][28b2a953][3c178036][b1880263][b7b6230d]
[db778174][fe133c2b][9d1b4821][71960b16]
+ Introduce `throw-iterator-cannot-be-empty` and `fail-iterator-cannot-be-empty`
internal helper methods [ac9f40d8]
+ Abstract `unival` logic into separate class [504c89a9]
+ Abstract `ords` logic into `Rakudo::Unicodey` [817d1130]
+ Use a better approach to finding leap second days [5070ae3f]
+ Make `CLIENT::` work for code invoked from NQP world [73638877][a6639356][f0a36d89]
+ Re-organize `Nil` implementation code [5c6a80c2][32110eed][47a12a5e]
+ Make `Cool` methods consistently use `.Str` coercion rather than a mix
with `Stringy` [a68d2579][8cad7d79]
+ Various internal fixes and improvements, most notably making various
subroutines multi for the consistency
[f0a345df][2a972b24][6d03c78b][8668474d][e191266f][b0910d5b][bc8a0997]
[7dd80bb4][b988e763][30263075][e1c2d792][84eac183][e6823863][85e7e63d]
[bd900c9d][df324f1b][d9fcb759][da80b57c][57ffaf96][ad81b980][1c4577ae]
New in 2021.03:
+ Additions:
+ Implement space-delimited command line interface arguments [54b6ff30][244abf6e][67143a6d]
+ Add a predicated wait for `Lock::ConditionVariable` [b4980a1c][30e07901][94c562c4]
+ The `Pod::To::Text` module's output supports rendering of multi-level lists now [76dab72f]
+ Removals:
+ Remove `utf32` from encodings lists for MoarVM, it was never supported before
and attempts to use it gave a confusing error message [9c603460]
+ Build System:
+ Avoid Azure CI failures on re-builds [58930cfb]
+ Fix `ln -nfs` on AIX platform [91ce9a29]
+ Changes:
+ Make `printf` directive error more descriptive [171d3c46]
+ Efficiency:
+ Make sorting and related infix operators about 2x as fast [70a8e366][d61d9836][b2ae599a][0ad991e4][599b6ea5][afab11e6][9ad47170][7f2dba7a]
+ Optimize coercive parameter typechecking [734e7f48][20e6f50e]
+ Make `>>.` construct faster [412d7706][3d2940af]
+ Make `BagHash.add` a few percent faster [7c0a556e]
+ Make `xx` on a constant value about 5% faster [bf67b1f7]
+ Fixes:
+ Fix single item assignment at `List` creation (`my @l is List = 'foo'` now produces a correct result) [d40c8cd1]
+ `Kernel.signals` no longer returns unwanted extraneous data [d3aab833]
+ Fixed `.of` method on type objects [ee5244b2]
+ Set up proper precedence info for a number of infix operators [ceac5217][affdd058]
+ Fix hypering on `Map` [b21bb5ab]
+ Fix hypering when using `next` [d18653c4]
+ Fix containerization on hypering [722c2c97]
+ Tweak some tests to work on JVM backend [08345f1d]
+ Various internal documentation updates / fixes [7f0ababc][6c1b02ec][9b071642][0e957a66][9b22e51b][09d27c32]
+ Internal:
+ Update broken links to IRC logs [f395cc52]
New in 2021.02.1:
+ Fixes:
+ Fix a regression of the 2021.02 release where a lazy iterable usage could suddenly
lead to a hang [5eeddd37][6d164158][7d6e4322]
+ Fix calling `list` and `iterator` methods on `Map` and `Array` type objects [6b83135a]
+ Fix a minor memory leak in Rakudo runner [18735ae9]
+ Internal:
+ Remove newly introduced, but unreliable inlining tests [a5ca53a8]
New in 2021.02:
+ Additions:
+ Add support of the `is implementation-detail` trait
for classes and roles [4384fc5c]
+ Introduce support for passing multiple time units
to `earlier` and `later` methods on `Dateish` [8a1f8f6f][10dea6ef]
+ Add "Solaris" option to the list returned by `KERNELnames`
method on `$*RAKU` [f918f0fd]
+ Introduce the `slice` method on `Seq` accepting indices
(e.g. `@a.Seq.slice(0, 2 ... *)`) [63be83d3]
+ Implement `Map` method on `QuantHash` [110343d2]
+ Changes:
+ Add a way to set `arg0` (when specified, passed as first argument
to the process instead of the program name) for `Proc` objects [ce124551]
+ Return to REPL implementation prior to 2020.12 release [d53a9273][39103199]
+ Move to CentOS 7 in binary release GNU/Linux build [38e69d87]
+ Provide single argument semantics for assigning
a `QuantHash` to an `Array` object [6cd50ab2]
+ Conversion of a `Str` object to Enum now returns a
`Failure` object wrapping an `X::Enum::NoValue` instead
of returning the enum's type object
[e3a0c32d][28b95813][184079c9][5bc394f6][bcb9a2c9][e44b524e]
+ Module installing at sorting now prefers API sorting over version sorting [43613ac5]
+ Implement the `item` method for `QuantHash` and `Capture` types [8f6c7fe7]
+ Throw a proper NYI error on attempt to parametrize a Hash with native types [5aec4aaa]
+ Efficiency:
+ Makes `DateTime.new(y,m,d,h,m,s)` about 25% faster [0c8d238a]
+ Make `>>.` faster [8c3795e0]
+ Make the `truncated-to` method implementation for `DateTime` and `Date`
a lot faster [e6c0b5e9][c9ac5d90]
+ Improve startup time
[39d3f136][f993b345][43ccad29][82314883][7be4f5ef][d53d0308]
+ Make `Array.ASSIGN-POS` about 15% faster [f623f1b6]
+ Make `Hash` slice assignment about 2x as fast
[75c58168][09552ab5][281d9f3c]
+ Make array slices on a `Hash` about 40% faster [c039b28f]
+ Re-imagine array slicing, fixing issues, between 2x and 10x faster [ca7bc91e]
+ Makes slice assignment on a native array from an `Iterable`
about 15x as fast [4d40e23e]
+ Optimize (AT|ASSIGN|BIND|EXISTS|DELETE)-POS methods [4c91d743]
+ Speedup the basic @a[*] (Whatever slice) [9ad80af2]
+ Fixes:
+ Fix segfault caused by repossession of native call site [8c63c54c]
+ Make sure that calling `new` on a shaped array works correctly [623d4c12]
+ Fix deleting colonpair with R-metaop in value by the Optimizer [18ae0df3]
+ Improve error message on operation on closed handle [3865f1ca]
+ Provide a more accurate implementation of `**` infix operator on `Complex` [12b49b83]
+ Make sure that `.of` method of various types works on type objects [790240f6]
+ Fix potential deadlock on specialization of roles [65a5cce1]
+ Fix native `@a[*-4 .. *..2]` (Callable candidates of subscription taking
more than a single argument, and the ones returning something else than an Int) [8150a286]
+ Throw on non-Int result in `Iterable` index on native array [8a3e983c]
+ Throw on non-Int result in `Iterable` index on native array assignment [5eb55076]
+ Fixes for building and testing on Solaris platform [ac10a7a8]
+ Fix problem in `Compiler.verbose-config` [ed6e2c8b]
+ Fix an obscure error in `&Perl6::Actions::lower_signature` [bef6b4f6]
+ Fix calling programs with spaces in their path on Windows [570372f1][c3d3027d]
+ Fix passing tests for `X::Adverb` on JVM backend [e6f49356]
+ Internal:
+ No longer use Travis for CI [53da2061]
+ Add `MoarVM::SIL` helper module for developers to have better
interface to spesh results [7f90c71c][c8647ad4][b01320ad]
[1a03ce06][6793c551][842bbae3][842bbae3][1b45d0ad][7e970626]
[98b91f43][dfd604d8][1fb8caf3][3235f3e4]
+ Resurrect `make test` on the JVM backend
[bad3621c][5dfdd35c][0b4332dd][3f1607f8]
+ Make `Rakudo:Internals` method `SHORT-STRING` handle null str correctly [f2e324d5]
+ Introduce `Rakudo::Internals.TARGET`, `Rakudo::Internals.E`,
`Rakudo::Internals.RERUN-WITH` methods [025448a6][467a931d][116c8e8e][164815f6]
+ Implement the `repo-chain` method on `$*REPO` iteratively,
rather than recursively [50d1d86c]
+ Make `RAKUDO_SCHEDULER_DEBUG_STATUS` logging leaner [aa9e849a]
+ Remove a now unneeded `unimatch` method multi [6306f1e0]
+ Improve the internal subroutine `proclaim` of `Test` module
[5133103d][297cba1a][446caae3]
+ Implement `sec`, `asec` and `sech` in terms of other NQP trigonometric functions [c9d69dc6]
+ Add support for native BOOT arrays for the `dd` routine [4e645ee5]
+ Fix individual running of some test files [74e5212f]
+ Add tests for inlining
[1fb058e6][87d7c5a3][5a402a14][d94d07e6][0536d039][a3c7d00d][9c7b5561]
+ Various cleanup and micro-optimization changes
[336a2170][e14833bd][3c79db6c][e5f94a15][620fa7ad][fa648a59]
New in 2020.12:
+ Removals:
+ Deprecated method candidates (`subbuf(Any:U)` on `Buf`, `chdir(Str(), :$!test)` on `IO::Path`)
and `indir(IO() $path, &what, :$test!)` subroutine candidate that were
throwing an exception instead of a deprecation warning for a long time
were removed from CORE [9040318c]
+ Additions:
+ Add new method `deterministic` to `Iterator` role [87fc041f][b83b1b34][b63c0e02][c37a88e8][96285afb]
+ Introduce `%*SUB-MAIN-OPTS<coerce-allomorphs-to>` setting [bd5eba4b][49eecd68]
+ Add a new candidate to `spurt` routine and method.
It does not have an argument taking content to write,
making it similar to the `touch` utility [f2ea0a65]
+ Add `:emit-on-empty` and `:emit-once-on-empty` methods to `Supply.batch` method [cb8eb68a]
+ Add `:emit-timed` to `Supply.batch` method [492651ea]
+ Make `is DEPRECATED` trait introspectable on `Routine` instances [0d1c8a8e]
+ Changes:
+ Improve output of `Attribute` documentation when rendered with `Pod::To::Text` [a0a8a515]
+ Increase sensitivity of `Supply.batch(:seconds)` x 1000 [aecfc9b3]
+ The `cas` subroutine now accepts `Mu` as both its target and values [998cae57]
+ Defined `List` instances no longer return `True` when calling `ACCEPT`
with an undefined `List` (i.e. `List ~~ ()` returns False now) [9fd79f9e]
+ Mark the base native `array` class as `Positional` [d1d2546e]
+ Efficiency:
+ Implement metamodel transparency of nominalizables and fix handling of
definite parameters, gaining back some performance loss introduced with
the new coercion protocol in previous release
[d37906d0][ed16d6c1][b5465b17][e4816198]
+ Fix a shaped array performance problem [f27e212b]
+ Make execution of some kinds of `when` faster [c080e594][0006475a][b3a25580]
+ Make `cas` subroutine about 10% faster [484f870c]
+ Make `@a[*-1]` candidates about 60% faster [2d5d3bf4]
+ Optimize some array operators [4ac0f737]
+ Make array access `[$i]` with `$i` being a native int about 2x as fast [7c0956b8]
+ Improve the performance of signature binding [b1f59a2f]
+ Speed up various aspects of native 1-dim shaped arrays and
native arrays in general
[42fceb08][2c5b5457][3def3ced][705e6e62][a76e2b6e][60fa48ec]
[6792cc42][bd944e7c][2274aa85][392d8be2][1c43c46e]
+ Fixes:
+ Fix number of issues with REPL execution. e.g. it "forgetting" previous
multi sub declarations, calling `WHAT` on native type
[7c0a81f5][eae309a4][e46a1da2][f2851b90][e8ab5272][0d6278f3]
[6f7718ce][be455078]
+ Fix roles not being auto-punned for `postcifcumfix:<( )>`, by
implementing an invocation protocol for roles [79d2aeab]
[5a22a7c5][77a7bd27][17223fc4][4009f401][538ad1b7][9f98595c]
+ Fix concurrency issue in compilations with heredocs [147bae3b]
+ Fix subsets of coercions [af43ef62]
+ Fix an issue with `splitdir` method of `IO::Spec::Unix`
leading to action at a distance bugs [3d463419][f154244c]
+ Fix argument of a coercion type not having a workable default value
[44cc88b5][856dfb2d]
+ Fix error reporting for slurpy named parameters with type constraints [e1f09cfa]
+ Fix behavior of postcircumfix `[ ]` called with Iterable on
native array [4304e250]
+ Disallow calling of postcircumfix `[ ]` with type objects [6c7044ec]
+ Fix a bug in set symmetric difference logic [7b6de5c5]
+ Make `Num` coercer demand definite invocant [a75b3fa8]
+ Add missing handling of adverbs `:kv`, `:p`, `:k`, `:v` for
1-dim shaped native arrays, also support many adverbs at once
(e.g. `:exists:(kv|p)` [0f4970da][02e48d81]
+ Give stub packages created by package_at_key a proper longname [aab4f55a]
+ Fix `raku` method called on `CompUnit::Repository::Distribution` instance [7d0813c3]
+ Fix proper reporting of the `X::Parameter::RW` exception message [17320542]
+ Fix `RAKUDO_MODULE_DEBUG` output when the message contains meta characters [b58510ff]
+ The `Test` module now correctly handles `RAKU_TEST_TIMES` environment variable,
previously called `PERL6_TEST_TIMES` [d84ed4e9]
+ Internal:
+ Remove deprecated functionality to core epilogue [7406f8c6]
+ Introduce `Rakudo::Iterator.TailWith` [f6c7ddb2][9dbb52f9]
+ Add `sink-all` method to a number of PredictiveIterators [cf0f2f2e]
+ Make `Iterator.sink-all` default to using `skip-one` [f0ebdd09]
+ Add `raku` method to `Rakudo::Internals::IterationSet` for easier debugging [0d301fab]
+ Remove all easily removable `nqp::stmts` from Rakudo code [f2f2cf82]
+ Another round of nqp::if -> ternaries [aba90b01]
+ Fix unwanted references to other compilations by CompilerServices [d0de7664]
+ Type IO::Socket::INET family/type/protocol values [534cc543]
+ Add missing debug type names for easier debugging [a68b8ab4]
+ Move "is test-assertion" to candidates [15ec4fe6]
+ Adapt filenames in binary release scripts [3748884d]
+ Various cleanup and micro-optimization changes [1801a5aa]
[eabdee48][45246aef][6852f40d][dce6804c][c663cc33][1712f03b]
[b525c4df][6ee47f03][912381b7][2ce5260e][80f92836][161325e0]
[65f24a8d][c02c9cdb][46e9468f][82d31e0d][137d49b0][53ad24af]
[1331ffdd][c4c4ba98]
New in 2020.11:
+ Additions:
+ Introduce new coertion semantics. It includes coercions being first-class
type objects, a parameter being marked as `coercive` if its type is a coerce,
coercions redelegating method calls to their target type, coercions type checking
being more correct. Coercions are now nominalizable, they nominalize into
the target type. Aside from those changes, coercion protocol is introduced.
If `coerce` method of `Metamodel::CoercionHOW` is used for `Foo(Bar)`,
then the following methods are tried in the order of mentioning:
- the current standard of `Bar.Foo`
- `Bar.COERCE-INTO(Foo)`
- `Foo.COERCE-FROM(Bar)`
Also, nested coercions are supported now.
User code that depends heavily on compiler internals in this area can become incompatible,
so upgrade with caution if there is any of such sort.
[f2d73287][2675813f][81f3334a][27fb3ec0][39614955][841529a9][ea2fdd2f]
[3a7ae220][ebef668e][178c8535][dcfcda64][7429bfe3][32a8024b][42a0d131]
[0dc9664d][f4f5d2c1][e890ddf9][9725c2e9][58576c24][0edb1fcb][1dd99ef1]
[72984bfa][4efcdba2][43a81a2c][8a1ba7fd][cad80873][9f625326][34bc0b91]
[a3ed0204][b4525665][6dbce0ac][824c5adc][c015759b][efd8078f][2fb0f9fb]
+ Implement the `prefix:<||>` operator in postcircumfixes for `6.e` and later,
originally described in Synopsis 09 [e6787d77][48b1b20f][7a2264b4][35213f66]
+ Give `dd` (an internal Rakudo-specific routine for debugging purposes)
support for `BOOTThread` objects [59d140bf]
+ Add a flag to `symlink` allowing creation of relative symlinks [089bd590]
+ Implement binding of array-slices (e.g. `@A[1,2,3] := <a b c>`) [051e0361]
+ Implement binding of hash-slices (e.g. `%h<a b c> := 1,2,3`) [87ef76ae]
+ Give `raku -v` a pure ASCII version [329e47f4]
+ Introduce `is test-assertion` trait for routines, improving behaving of
test assertions written by the user [585db59c][86a208e2][2436532f]
+ Make Whatever slice work on 1-dim native shaped arrays [1cb2df80]
+ Handle `:exists` and `:delete` on 1-dim native shaped arrays with int index [db3ca28e]
+ Add Windows specific build instructions [07c95131][5b282cfc]
+ Changes:
+ Unicode support is updated to match with 13.0, 13.1 versions [bd803d5e][68196c99]
+ Do not allow `infix:<does>` on Int or Str, print an error message saying
`but` should be used [2f3de2fa]
+ `Datetime.local` now defaults to `$*TZ` [9443fba8]
+ Values passed to sub form of `push` and `unshift` are not longer flattened [e78c53ba]
+ Efficiency:
+ Create common Version objects at setting compile time [18882bf6][7f9f9e96]
+ Make `Str.raku` about 35% faster [97d473b9][5cbe14e8]
+ Make `DateTime.now` 60% faster [53b558fe][fd5950f1]
+ Simplify native shaped array `.shape` method [424ce71a]
+ Constantize empty list / hash in `Match` [0447b15e]
+ Constantize encoding and clean parts lookup [8af0c463]
+ Simplify Hash parameterization [1321a853]
+ Streamline handling of bind/delete on native arrays [adeff7de]
+ Make simple native shaped array access about 5x as fast [3e6e15e6][75574bea][f6cdbd81]
+ Fixes:
+ Fix building on Windows with MinGW [200821cd]
+ Fix a rare issue with precompilation [dd0a2a15]
+ Improvements of `postcircumfix[;]` in 6.e language version [39c51595][03e1ba72][316902dd]
+ Make auto-generated mixin role be of language revision `c`.
This fixes `$a but $b` under `use v6.e` pragma [6b87d3e5]
+ Don't inherit mixin class language revision. This allows mixin of custom roles
under `v6.e.PREVIEW` pragma [2991016a]
+ Fix some issues with `$*TZ` and long-running processes [613da571][78935ebd]
+ Make MacOS nick lookup hash a constant, also improving build reproducibility
on MacOS [78f16451][2ad244b1]
+ Add support for MacOS 11.0 nick [ccc50f7a]
+ Use alternate test for DST change [89211e2e][ede52fb0]
+ Make sure match processing can handle `$/` being a `Junction` [5b369181]
+ Fix for `isa-ok` to handle test subjects not inheriting from `Mu`
(e.g. `isa-ok Any.HOW, Metamodel::ClassHOW`) [dbf53c05]
+ Fix `IO::Path.absolute(IO::Path)` breakage on Windows [08f5d028]
+ Fix regression in list handling of `take` / `take-rw` introduced back in 2020.01 release [3e10cc6f]
+ Provide more improvements to language revision support and provide a better fix for mixins
[7de2b15b][9075c766][b21dd027][38bb2441][74faa0a2]
+ Internal:
+ Replace all simple `nqp::if(42,foo,bar)` with ternaries [b1912d9f]
+ Strip excessive escaping in an internal script [857fbfd5]
+ Update `docs/running.pod` [39eedacf]
+ Make `sigils2bit` mapper a setting compiler time thing [a541aed8][0a4eaf31]
+ Expose the `Array::Shaped` role, `Array::Shaped1|2|3` roles [ee089234][532b5423][cb95c653][e45bcd53][e45bcd53]
+ Expose `Hash::Object` and `Hash::Typed` roles [1a6cf787]
+ Make unicode property tests deterministic [151fd310]
+ Pseudostash code doesn't need a sub [7b2d9af7]
+ Refactor `Array::set-shape` a bit [18af3f44][417ad76c]
+ Better check for subness of `MAIN` [e3352cdd]
+ Don't use "perl" in identifiers unless needed [fa2013db]
+ Prevent a compiler warning about an invalid cast [f0808da6]
+ Make setting array shapes more alike [e612214c]
New in 2020.10:
+ Additions:
+ Implement `MAIN` parameter bundling via the `%*SUB-MAIN-OPTS<bundling>`
option [75f92d2b][04164a0f]
+ Generate a `rakuw.exe` executable on Windows which will not spawn
a console window (in contrast to the `raku.exe` executable) [0ea6902d][708d0ca6]
+ Add 𝐑𝐚𝐤𝐮𝐝𝐨™ and 𝐑𝐚𝐤𝐮™ welcome message [80a4ada6][4e9178f8][bae905ef]
+ Changes:
+ Add a new implementation for multi-level Hash slicing,
not backward-compatible with `6.c` version and to be enabled since `6.e`
[551b577d][f106c231][6986ea1d][8a2d9a61][1c08e66b][1c08e66b]
[d08247db][94d89686][18f3808e][4b278bcb][f9b3f925][b1ec2489]
[d6e94aed][564faa64][93503c24][b60772fa][198f6030][ff2f2b0c]
[420cb1f4][c701a482][1971ba46][964f6e48][3ca1fede][54eb4314]
[d713e451]
+ `False.truncate` returns `False` instead of 0 now [7192a99e]
+ Make "is rw" on parameters of MAIN worry [d0854ffc]
+ Change `IterationBuffer.raku` output.
Note that IterationBuffer.raku is a debugging tool: it does
*not* roundtrip, nor is it the intent that it ever will. [33bb6504]
+ Efficiency:
+ Adapt to simplified `nqp::isprime_I` [80bf1db1]
+ Make `%a{a;b}` about 30% faster [a5774094]
+ Further simplify `%h{a;b;c}` candidate [e435a087]
+ Make `Hash.DELETE-KEY` on a non-existing key 40% faster
[3131ce25][fcabad44]
+ Make making a `Uni` between 1.5x and 22x as fast [2999be32]
+ Make `.grep/.first` on native arrays about 3.5x as fast
[240bc9eb][cf239477]
+ Make `.unique/.repeated/.squish` on native arrays faster [c37ffe71]
+ Fixes:
+ Fix stub packages in multi part declarations only knowing
part of their name [51db5341]
+ Build System: Add a check to prevent building a Rakudo with a
stale NQP version [4dbdcb8d][d8db03b5]
+ Make BUILD(ALL)PLAN output a bit clearer [a26beb66]
+ Make `$*USER` and `$*GROUP` return correct values on some non-English
locales [6a89d716]
+ Fix possible race in multi-threaded precompilation [12946210]
+ Produce a better error message for `my &MAIN = { }` [e0e24a8d]
+ Fix issue with Z / X used with set operators [338c7439]
+ Produce a better error message for incorrect code `infix:(&)` [4af961ed]
+ Fix NativeCall/C++ to allow double instantiation [ecaf334c][f3ffb702]
+ An attempt to copy a directory to a file does not remove the file
anymore [41a76cad]
+ Fix a problem with multi submethods been treated as method [7cfca098]
+ Internal:
+ More fixes to the binary release scripts [bd029ae4][99acfa9c]
+ Move `Int` candidates from Numeric.pm6 to Int.pm6 [bf799bae]
+ Add `.gitattributes` file and specify file extensions [42e0434d]
New in 2020.09:
+ Additions:
+ Introducing the `Allomorph` class
[716cacdc][4872c3f0][39bc2bdf][1b16da19][3cd51ae4]
+ Add `cmp` candidates for `Code` [4a34b266]
+ Add CAVEATS.md file [df68eb29][7e11234e][a1c7497f]
+ Build System:
+ Fix relocatable build-time NQP-home [eab3e1cb][5a40482d][077f8f97]
+ Fix `RUN_RAKUDO` to use the dummy Rakudo home [a56ce834]
+ Make `Perl6::SysConfig` depend on NQPs `HLL::SysConfig` [64eb6fcb]
+ Changes:
+ Method names that differ only in capitalization are now suggested
when the method is not found
[b7ff282f][30c4b6e5][bb7c617a][b054f9f0][df5b3d53][3703469d][8c015584]
+ Make `IO::Notification::Change` a value type [17f352f5][ad927871]
+ Deprecations:
+ The `parse-names` subroutine is now explicitly deprecated in 6.d
to be be removed in 6.e, use `uniparse` subroutine instead [eef7383e]
+ Fixes:
+ Give a hint about missing provides in a META6.json when module
is not found in CURFS [b2d625b9]
+ Make `Blob.gist` work for all sizes of `Blob` [f98861ad]
+ Prevent parser bug for multiple `[` in reduce metaop [86bac5ad]
+ Make JVM honor `PERL6_HOME` env variable [038fbc44][c9901246]
+ The `set`/`unset` methods on `SetHash` and the `add`/`remove` methods
on `BagHash` give proper error message when called on a type object [b0b4459c]
+ Fix behavior of `Supply.head($n)` [46a72998]
+ Improve wording on `X::MultipleTypeSmiley` error [a9371749]
+ Fix long standing race condition in precompilation causing
spurious test failures [3780c1d4]
+ Fix `--rakudo-home` Configure.pl parameter
+ Internal:
+ Start to use `nqp::execname` on the JVM backend [3ba803d2]
+ Test the install instead of the build runners [f2bf446c]
+ Add missing files to the `make clean` target for the JVM backend [58e729f6]
+ Tweak release-related scripts [d6e27314][ccb41617][a0c12cdd]
+ Remove use of deprecated `undefine` [e59262f6]
+ Efficiency:
+ Allow for more paralellism when precompiling modules, making
parallel compilation faster [961a6535][86425339][0500ed3a]
+ Streamline `X::Multi::Ambiguous` listing [999680e6][b8121cec]
New in 2020.08.2:
+ Fixes:
+ Fix output of `--show-config` option [1a1fe7fb][f00c4198]
New in 2020.08.1:
+ Changes:
+ Fix compiler version [1336e5f3]
+ Method `invoke` of `WalkList` returns a lazy `Seq` instance now [fe40ee1e]
+ Internal:
+ `Seq` class now has its own proto for `new` method [a19996db]
New in 2020.08:
+ Changes:
+ Methods `name` and `usage-name` of `Parameter` now return an empty `Str`,
when there is no name, instead of `Nil`. Method `default` returns `Code` type object,
when no default was provided instead of `Any` type object [c11f4b18]
+ Remove redundant `(())` from `Map.new.raku` [491e1def]
+ Routine `done-testing` of `Test` module returns `Bool` now,
indicating if the tests passed or not [337848fe]
+ Deprecations:
+ Deprecate `--nqp-lib` command line option,
which had no effect for more than a year [9071653e]
+ Fixes:
+ Make `X::Method::NotFound` exception more user-friendly
[b36afcb3][760034ef][eb0ca2a3][66adb771][acc5e64d][4546a603]
+ Fix false positive typechecking exceptions for some generic types
[3d5fba7b][973b83de][8d40691d][1db17c46][1eb712d5]
+ Ensure `Routine` subtypes are composed before performing mixins with
their instances [7f2ae26c][e3c2646e]
+ Fix mixing in a role with attributes into a NQP class [1b5f6b98][9e51d01b]
+ Make exceptions thrown by supply iterators don't claim to have
originally been thrown within the iterator itself [fcfc60b6]
+ Fix `Baggy.pickpairs` called with a `Callable` [08f81f24]
+ Fix a rare, yet possible data race [9d6d8dd7]
+ Additions:
+ Add `set_parameterizer`, `parameterize_type`, `type_parameterized`,
`type_parameters` and `type_parameter_at` methods for `Metamodel::Primitives` [2ab94429]
+ Internal:
+ Type `Parameter` methods [c11f4b18]
+ Fix release pipeline to not delete the GNU/Linux build [4ad4bd30]
+ Make `Rakudo::Internals::JSON` up to 4.4x as fast [b60e1636][43bd739f]
+ Do roast-related cleanup, add `quicktest` make target
[1e20dfca][6fd09811][333ce78c][dd8cd411]
+ Rework `tools/update-passing-test-data.pl` to support backends [ea0c98cf]
+ Make `main-version.nqp` a backend-specific configuration file [80b0747a]
+ Add a `Perl6::SysConfig` class [ace5e22f]
+ Simplify binary release instructions a little [27eb5ea9]
+ Add tests to make sure profilers can be invoked [d7aa7e66]
+ Remove an outdated workaround from `Cool` implementation [a3af5833]
+ Fix incorrect method call [02a83442]
New in 2020.07:
+ Fixes:
+ Improve "Method not found" error message for some rare cases [0a86798f]
+ Fix calling `.say`/`.put`/`.note` methods on Match objects [9f546ef6]
+ Add word wrapping to numerous error messages, improve wording
[eb589c03][1b84e036][3cb29a03][6db1fb1d][80aaede3][42031860][f70a3ccd]
[3ffed2fb][a7a1fe24][cd8846ad][83a126b3][3add8615][3d9a9fc4][697596fd]
[56e5f7dc][88b0e7a3][7a93c907][f550c9f9][a4b982cd][93963433][58685eeb]
[5f423a7e][92f8c19b][5627e02b][5b7ecdc0][a7455050][f96a641f][1f93724f]
[98c7e512][248664c6][3bc4fa90]
+ Wordwrap `Mu.WHY` [16d24a21]
+ Fix check for valid Raku module extension to be an exact match instead of suffix-like one [d4eef8d4]
+ Fix result of `.raku` method called on a generic typed array [90f86d4c]
+ Additions:
+ Set equality operators: `(==)` Unicode `≡` and `≢` which allow to check
for sameness of the operands using QuantHash semantics
(for example, `1,2,3 (==) 3,1,2` returns `True`) [701f4cfb][dbd69ba7]
+ Add support for Supply.tail(*) and .tail(Inf) [9ccfc90e]
+ Add support for Supply.tail(*-3) [eaa72afa]
+ Make `Supply.head(*-3)` consistent with `List.head(*-3)` [5c8c7324][70e5cfb9]
+ Rakudo now supports the `--rakudo-home` command line option to specify the path of the Rakudo home [914bcbad]
+ Efficiency:
+ Make <a b c d>.permutations between 23 and 85x faster [682a4d4f]
+ Make IO::Handle.read(1) about 3x as fast and consuming less memory [2946ed64][252b9349]
+ Internal:
+ Micro-optimize `buf8.new` creation code in compiler [ed936c14]
+ Give `Supply.tail` its own candidate [1a91af8c]
+ Add `Str.naive-word-wrapper` (implementation detail)
[056d6a4e][9ea66e13][6db1fb1d][45893495][821f582f][3674f812]
+ Make `IO::Path` use its own `.succ` / `.pred` logic [305fc7bd]
+ Remove placeholder files [07009cc0]
+ Re-imagine `CompUnit::Repository::FileSystem!distribution` [f3b1c8df]
+ Change `perl6` to `Raku` in nqp-configure submodule URL [ddebab5a]
+ Refactor `Rakudo home` and `NQP home` handling [e4f020ca]
+ Do core setting name mapping via compiler config [6e087e13]
+ Fix for spectest not seeing Inline::Perl5 [d5630720]
New in 2020.06:
+ SPECIAL NOTES:
+ Results of `dir` routine called with dirty base path are presented
as cleaned up for some paths (like `///` or `a/../a`) unlike
before. While compatibility with most of other cases is preserved
and no ecosystem fallout was observed, be cautious of the possible
observable changes if the code does not clean dirty paths using `cleanup` method.
+ Since this release, when you start Raku with "-" as a single positional parameter, it
will now check if STDIN is connected to a terminal. If it is, then
the REPL will be started, rather than appearing to freeze waiting
for the user to enter something and issue an EOF. If STDIN is *not*
connected to a terminal, then Raku will read from STDIN and process
that as the source of a program.
+ The `run` routine, `Proc.spawn` and `Proc::Async.new` are
extended with a new argument `:$win-verbatim-args` defaulting to
`False`. If the argument is left off or set to False, the
arguments are quoted according to the Microsoft convention. This
is identical to Rakus previous behavior and thus backwards
compatible. When passing True the passed arguments are
concatenated with a single space. No other processing takes
place. This allows to manually quote the arguments as necessary.
+ Changes:
+ Support verbatim argument handling for `Proc` [709941c6][9a75738f]
+ Signatures of `slurp` and `spurt` routines not accepting redundant arguments is
now compile time error rather than run-time one [22f43444]
+ The `Distro.desc` method now states codename for MacOS [b4b2a5ec]
+ The `gist` method output for multi-dimensional arrays is truncated now [cfc3e57f][4bfe5bd5]
+ Parametrization a variable type in form `my $foo is Type[Foo, Bar]` works for all types now [de43f193]
+ The `rotate` method now returns `Seq` instead of `List` [4b501bd4]
+ Add CACHEDIR.TAG to mark cache dirs as cache [37646b86][c3bdb617][ef90599e]
+ Improve GNU C++ name mangling [4f672c27]
+ Make `Instant.raku` output simpler [c0b5fb28]
+ Improve smartmatching against `Mu`/`Any`/`Junction` types
(`Mu.new ~~ Mu` does not die anymore, `any(Mu, Any) ~~ Mu` returns `True` now) [3b4794f4][840d3e81]
+ Fixes:
+ Fix code objects created BEGIN time EVAL getting lost in precompilation [537f8877][169f63d9]
+ The `is` routine from `Test` module now handles types that cannot be stringified and
compares them using `raku` method now [c9e94623]
+ Fix various JVM and JS backend issues [8e5b610a][2b81f978]
[12f8f1eb][5b86436c][1464b35e][a059373e][9fe471cf]
+ Fix BEGIN time `EVAL` accidentally running CHECK phasers of the outer comp unit [eeb4f43f][b874c68e]
+ Fix results o `"١٢٣".Numeric` and `"١٢٣".Int` [c2e8b22f]
+ Fix race in `PIO` method of `IO::Handle` [f33ce01c]
+ Fix `Date(now)` call [9dcbc5ff]
+ Fix `.comb(Str)` to ensure non-overlapping results [8d5a0f70]
+ Fix `Instant.raku` for Rational values [f506cc03]
+ Fix sorting of 2 element native arrays [becb85eb]
+ Make sure `push-all` does not push when exhausted when splitting using a regex [077300c5]
+ Improve error message for method calls placed after white space [4278e4c2]
+ Improve `X::Syntax::Variable::MissingInitializer` exception's error message [ee005d8b]
+ Improve `X::Method::NotFound` exception's error message to only suggest a submethod if correct [b02a7413]
+ Improve `malformed loop spec` related errors [d3c3e534]
+ Improve error message for case of too many directives in routine `sprintf` [c988f832]
+ Improve detection of a version control conflict marker to provide an error message [65e412f7]
+ Additions:
+ Add `IO::Handle.do-not-close-automatically` method [61046d76][999d04aa]
+ Add `IO::Path::Parts` class [4387f280][187312b8][e9ea048b][30ae200f]
+ Add support for `printf($format, Junction)` [110324d3]
+ Add `Supply.rotate` method [9f7c9278]
+ Add `Capture.EXIST-POS` method [6a4f79ec][b55ecdf0][3372352e]
+ Add `RAKU_REPL_OUTPUT_METHOD` environment variable which sets
the method used to stringify a value of an expression in REPL, default is `gist` [285717a0]
+ Add `:chomp` named argument to `Str.lines` similar to the same named argument of `IO::Handle.new` [1bcc5d73]
+ Efficiency:
+ Make creation of regex captures faster [15961f91][272c4636]
[ed65d733][e3fa44ab][7f47db80][0b48651c][537a6e41][f627d2c8][6f6b2dfe][219199bb]
+ Make file test methods like `.d` or `.x` faster [c821bbc5]
+ Make `Match.caps` about 35% faster [87e91def]
+ Make `Str.split(Regex)` up to 2x faster [9c74d983]
+ Make `Str.split(Regex, *%_)` up to 2x faster [a9796fe5]
+ Make `dir` routine about 15% faster [700b7432]
+ Make `Blob.join` between 4% and 11% faster [84ff64cf]
+ Make `Blob.gist` about 2x as fast [b55667ef]
+ Make `QuantHash` implementation a bit faster [4a728f2a]
+ Make `IO::Spec::Win32.basename` about 1.7x as fast [ecd06c9f]
+ Make `IO::Spec::Win32.tmpdir` about 1.8x as fast [6d427d47]
+ Make `IO::Spec::Win32.path` about 2x as fast [1a8e07c2]
+ Make `IO::Spec::Unix.path` about 3.5x as fast [8dc58abf]
+ Make `IO::Spec::Unix.basename` and `IO::Spec::Unic.extension` about 1.7x as fast [f89fad87]
+ Make `IO::Spec::Unix.tmpdir` about 1.8x as fast [a2860ead]
+ Make `WhateverCode.ACCEPTS` about 2x as fast [853e6227]
+ Make `IO::Path.sibling` about 2x as fast [a5eb1d4a]
+ Make `IO::Path.succ` and `IO::Path.pred` about 3x as fast [26b9f388][7238b094]
+ Make `IO::Path.parent` about 2.7x as fast [71cb0c56]
+ Make `IO::Path.parent(N)` about 2x as fast [f93ce875]
+ Make `IO::Path.child` about 1.4x as fast [f5b2c240]
+ Make `IO::Path.add` about 1.25x as fast [718d305b]
+ Make `IO::Path.dir` between 1.5x and 2.2x as fast [b63976a8]
[6b22c1eb][7691742a][9b9d9f64]
+ Make `IO::Path.is-absolute` a bit faster [fc88b9c2][bd7fcb28]
+ Make `IO::Path.spurt` up to 35% faster [7571f65a]
+ Make `IO::Path.slurp` up to 4.7x as fast [d03fa4b0][cde948ae][36d89cf6]
+ Make `slurp` routine up to 40% faster [f3baa389][fc3e1aea]
+ Make `spurt` routine a few % faster [da5825e6]
+ Make `Str.Numeric` about 4.3x as fast [a0e58412]
+ Make `.IO` method and `IO::Path.new` about 2x as fast [2a88990b]
+ Make `IO::Spec.curupdir` about 25% faster [6a0eaabd][16d93e26]
+ Make `"42".Int` about 4.3x faster [3ee1777a]
+ Reduce overhead of `Code.ACCEPTS(value)` by 20% [2eec62fe]
+ Make `so` and `not` routines faster [d8c26500][8a3c36f8][5c93ddac][cb69cfce]
+ Optimize symbol lookup [c5f5d7ee][dc6594d6][5d61b3d0]
+ Prevent `$*OUT` lookup for each eigenstate of Junction when calling `print` or `put` [4297cb05]
+ Make `printf` routine up to 5% faster [e46d4590]
+ Streamline variable `is` and `of` handling [5561669b]
+ Make `Hash.sort` a tiny bit faster [cd617248]
+ Various small optimizations [a9074977][b50fd8b5][65e17c40]
+ Internal:
+ Set up CI with Azure Pipelines [ae07d685][43213e49][55529de1]
[78fe25b8][42c37997][4085cfdc][5b4faed3][5587574e][fce783a1][adfa192b]
+ Fix `main-version.nqp` dependencies [b71cb3ae]
+ Improve `say`, `put`, `print`, `note` methods of `IO::Handle` [7a902b5e]
[88d98225][627b39b8][438c1d2f][483cac3a][2b38666f]
+ Simplify `Shaped1Array.reverse` [de173a18]
+ Simplify `EVAL(:check)` code [afe85110]
+ Rework part of `Match` internals [0a84aa7f]
+ Simplify `Kernel.signals` using `Signal` values [5644c709]
+ Simplify `Grammar.parse` code [f10e5bce][8be24067][1402c1d1]
+ Allow debuggers for Rakudo to be specified by environment variables [48e073e2]
+ Default to using egdb when possible in rakudo-gdb-m which covers OpenBSD developer environments [b01b0120]
+ Introduce INTERPOLATE [417a591a][777e7b65][3f9f23a9][638517da][05907227]
+ Various internal improvements to the code base [ef0c457b][e71d3cb0]
[37533ee6][b3d933b4][4afaab73][3796405b][17bf5d5f][d9defb6c][2aac854f]
[799d627a][a56e62de][c1decf2a][a69465a7][26d88b9e][44b27019][95f7d34e]
[b5bf1bf4][285717a0][21c3ef82][4103a309][a616fe57][e645ff6a][ea8c04db]
[ad9b9f4f][9942ccc0][1c94538e][9f73351b][e9f80357][a431968e][519a5726]
[4ba70b7a][496e9166][d984e7c2][bf01f845][da9943a4][150af9a2][6f459456]
[92d01836][98dec90d][792a0f00][902401b7][4d1ef59e][2bfaab6c]
+ Update `INSTALL.txt` for the latest changes [8bb0235b][e1db95e8][bd5e19e4]
+ Various small improvements to compiler's user-facing documentation [dac68b27]
[302bc8ed][736ce715][10a8f6a2][627ffd42][3d6756b3][eab17e7a][18ecb604]
[2cff6dd9][77b2f2a5][197bba98][621577b4][d09cf9d8][8a8f62ca][a79efdef]
[797c96de][8c3f013d][11afa53b][fbb0abc1]
+ Various changes to documentation related to renaming process
[6ead4ce1][142d03be][e0384ee0][0ccd4cfe][4d6031f6][d53a3b1a][de6ebd4e][b0032395]
New in 2020.05.1:
+ Fixes:
+ Fix relocatable builds on the moar backend [46648b9b]
New in 2020.05:
+ Fixes:
+ Decontainerize attribute default values [d71761e3]
+ Fix `Cool` catchers for some `Str` methods
[a91d7d79][63a72659][af8788b4]
+ Update some internal documentation to use Raku name [f2cc20c6]
+ Add `Cool.contains(Regex)` candidates [c3c1e8c9]
+ Make format of all `QuantHash`'s classes `.gist` uniform [cf01f7a2]
+ `Method` objects that don't have `*%_` in their signature, `.gist` ok [ac5f353a]
+ Fix `DateTime` default stringification when the second is 0 [95de7859]
+ Make `Blob/Buf.list` non-lazy so they can be used in hypers [6d146b56][291aa580]
+ Remove unnecessary parentheses from `Pair.raku` [35a827af]
+ `IO::CatHandle.slurp` did not accept `:bin` parameter [42c4c3fc]
+ Fixed some cases where `IO::Handle.slurp` was used without `:close` [efab398e]
+ `run` routine with `out` named parameter being a `Handle` and `merge` flag
enabled now writes both stdout and stderr to the handle [1f838791]
+ A single whenever react based on a signal is now serialized by default [8aa25bfb]
+ `&cmp-ok` subroutine of `Test` module now works with objects without support for methods [fc0f78d5]
+ Ensure meta-ops respect user-defined chain ops [ac012f18]
+ Fix exception when mixing in roles that use `is built` at runtime [4c026ab8]
+ Fix inconsistent match result when using a code block in a regex [1e0474d4]
+ Fix error message related to `nextcallee` subroutine [136087e7]
+ Fix regression in sequence operator [0a6456a4]
+ Fix reflection for . twigilled parameters [296fbcf4]
+ Fix `Parameter.raku` with `OUTER` default values [87d2ff95][2f8538ed]
+ Fix `Capture.WHICH` for subclasses of `Capture` [8808401c]
+ Fix `Capture.EXISTS-KEY` for some `Capture` values [2d18cdeb]
+ Make (1..-Inf).reverse) work as intended [3983b4f8]
+ Make (foo .. foo).reverse correctly [c588323e]
+ Properly throw an exception on attempts to add a key to an immutable `Map` [1a10b63a]
+ `INPUTRC` environment variable is now checked for a Readline config when using REPL [61a48362]
+ Add missing label support for some loop constructs [66a2250a]
+ Make `Real.sign` always return an `Int` [42a303ec]
+ Result of `reverse` called on a `List` value with holes returns a
reverse of the list with `Nil` in place of holes instead of `Mu` now [e9468d6a][ca49c153]
+ Various small JVM backend related improvements [945a4d81][b4819e7c][f6f8ac0d][25a1929c][717b3266]
+ Additions:
+ Added `docs/IN-MEMORIAM.md` to commemorate departed contributors [9b6d89b1][f9f3b662][170add26]
+ Implement support of environment variables `RAKULIB` and `RAKUDOLIB`
to eventually replace deprecated `PERL6LIB`
[b3bb0d38][cc165a05][1fd660a9][00c0dec3][be9bb4b1][30a3186b][e8f7eb56][61124c35][013b47d2]
+ Implement support for environment variables `RAKU_TEST_DIE_ON_FAIL` and `RAKU_TEST_TIMES`
to replace `PERL6_TEST_DIE_ON_FAIL` and `PERL6_TEST_TIMES` [30e7a67c][afff3b0b]
+ Show timing information when installing core modules in build process [58e61356]
+ Add multiple needles feature to `Str.index/rindex` [4cec44a3][cf02c2e9]
+ `dd` can now also handle `BOOTContext` objects [8b70bfb8]
+ `Str` now has `.Date` and `DateTime` coercers [d95d218f]
+ `Date.yyyy-mm-dd` now takes a separator parameter, defaulting to `-` [3017cfea]
+ Added `Date.dd-mm-yyyy` and `Date.mm-dd-yyyy` methods [70ac9b72]
+ `IterationBuffer` now has a `.Slip` method for easier iteration [d68fe5eb]
+ Add `is implementation-detail` trait and hide exposed internals with it
[12a33637][09c1b05a][2ae9fdf0][20c978e6][78371bb0][1d57d17d][0c36feb0]
+ Introduce `^...` and `^...^` sequence generator operators [371590fa][bbed2255]
+ Add `Date.last-date-in-month` and `Date.first-day-in-month` methods [2fb7198f][20ce5560]
+ Add a `parents` metamethod to `Metamodel::ParametricRoleGroupHOW` [8dcfa849]
+ Removals:
+ Remove undocumented `Seq.new-consumed` [0f97a7f5]
+ Move implementation detail to internals [aed658d6][b639221d][86bc3b3d]
[75f34c52][d3385e73][73c7ded2][9429728c][509a7f6e][439b8609][e152aa6a][ebb29499]
+ Turn `infix:<…>` and `infix:<…^>` into aliases [bd4e119d]
+ Build system:
+ Fix CircleCI configuration [efba9639][ffcc6198]
+ Be more robust when working with git reference directories that has spaces in path
[3ec58489][e6044dfc][2f0dd45e]
+ Move prebuild archive scripts to scripts folder [e1114208]
+ Change update-submodules.pl to not use the shell at all [0ae8b4e0]
+ Fix installation of perl6 aliases [aeb418a5]
+ Move RUN_CLEAN_TARGET_FILES to a separate script [ffad1024]
+ Fix building non-moar backends on Windows [47650ebe]
+ Fix `--nqp-home` Configure.pl parameter [94fdb3d5][59fe24bc]
+ Make timing based performance tests opt in via `RAKUDO_RUN_TIMING_TESTS` environment variable [31ffc2bd]
+ Efficiency:
+ Speed up compilation of large projects [c9092582][6956c063]
+ Make `raku -n` as fast as manual iteration with `.IO.lines` [be9c139f][5cad8fee]
+ Improve behavior of default `ThreadPoolScheduler`,
increasing efficiency of multithreaded applications [77a2201e][750abe03]
+ Make method lookup with the handles trait 13% faster in certain cases [af594925]
+ Simplify "previous setting" logic [9f4a0f1c]
+ Make creation of `Failure` objects faster [79ca396e]
+ Make default `DateTime` stringification about 12% faster [0e872356][d95141ed]
+ Make all `IO::Path` filetest methods a few percent faster [76c20d28][355b520b][bd9d7c1c]
+ Make `IO::Path.mode` about 14x as fast [a093b7fa]
+ Make `Date.yyyy-mm-dd` about 250x as fast [3017cfea][f9ecf6e8]
+ Make accessing native shaped arrays about 15x faster [80f2aebf]
+ Make `Seq.Numeric` and `Seq.Int` slightly faster [b7b9358f]
+ Make a number of traits around 2% faster [4bbe308b]
+ Make a minor optimization to a bunch of STORE methods [a4fbbfa3]
+ Make `Capture.raku` 45% faster [5baa645b][d6298edc]
+ Make `Capture.WHICH` 60% faster [688f6710]
+ Make `Capture.AT-KEY` 2% faster [22c0a53d]
+ Make `push(@a, foo)` about 20x as fast [385ab4cf]
+ Make `append(@a, foo)` about 20x as fast [b98d2e00][1e4c7361]
+ Make `unshift(@a, foo)` about 20x as fast [6541775c]
+ Make `prepend(@a, foo)` about 20x as fast [9b735b76]
+ Make `Num.Rat` faster [f987cdb0][2d1ba433]
+ Make `Date.succ` faster for days 28-31 [285da3b8]
+ Make `Str.tc` about 10% faster [5610416c]
+ Make `Supply.grab` a few percent faster [e0336d52]
+ `...` (SEQUENCE) optimizations [fc8c8281][935ee309][08545a33][d2ed7faa][fbf54e17][0fba27d7]
[8fe30b9c][58fa99b2][cf6177ef][75c6ac34][500dc662][9286def3][13559242][99cb2fa2]
+ CompUnit::* optimizations [1dbb227c][0249f23e][28bd4247][b4cdccc1][cb7be78c][638c8955]
[c9d9a096][83fed554][2cc509c0][f1cdfb18][9d1b3f63][db6d2306][7c9951cc][83ddbaba]
[196db682][551c157f][07643d37][e56eddd8][20d3713c][b4d32c97][8ac2eecc][4e3e937b]
[6c7ffbdb][17c45d89][89503809][747a35ba][dedb7444][cbd75f72][81ac37f8][f54ad732]
[fae4d45d][d55146bd][e33fe878][b712789e][e756e622][199888ab][95e8906c][5271d122]
[f48b80c3][954e545c][ef2d7d84][778ce379][1a0cc947][11b186c8][dec40dc4][d38d76d5]
[f31bd5ba][e1af7407][33fc8950][a62da301][0736bf7d][437f9f46][6e95e1b0][6723d3ad]
[24fd100d][b3f7ad2f][c29a2bf0][b07224f6][7de42d4b][7b5e1434][68cadd79][f980898f]
[bec2ac4c][d66068c1][31197cd3][2899d737][d4231b1f][c2a1ee95][6d3f1c12][dceef85f]
[859d8f04][5ea1c346][2a58eb39][3d6e8d6d][ea4bdf94][38a0eb82][2075489e][13ca677e]
+ Be better at inlining `any` Junction [76923bee]
+ Optimize symbol lookup at compunit creation time [35832540][75da4cfe]
+ Numerous small optimizations and improvements [014d493a][776ef800][87226876]
[49d1dcd3][d8366ff4][61b5e488][6793713b][2edce41b][d0e427dc][0b414c0a][88a9a36e]
[604085fb][f70d95e2][db6048e3][a66f5c29][80be7d19][a5535b2a][0d5f87cc][3c83ce75]
[3aaca26a][43c7e96f][dc7a7962][e78483ed][7bbf12d3][b9b46c0a][b0a720cb][fcda03ba]
[4339073b][cfc6cc3c][33f41966][0aa8b2a8][9cabea01][9b503292][6bb87106]
+ Internal:
+ Update Appveyor perl requirement on Windows to 5.22 [370956b9]
+ Add optional "lazy" flag to `Rakudo::Iterator.SequentialIterators` [101a80f2]
+ Give `IterationBuffer` its own `iterator` method [2b49d685]
+ Adopt MoarVM-provided `value_desc_cont` [4221f822]
+ Add `Rakudo::Iterator.AllButLast` iterator [77defa77][aa5154e0]
+ Add `Rakudo::Iterator.AllButFirst` iterator [4fe18a48]
+ Add and use `Rakudo::Iterator.ReifiedListReverse` iterator
[3ca38022][270cc275][cea0fc78][4025ca43][447b396f]
+ Add `Exception.message` stub [2e605520]
+ Make `Mu.iterator` use `Rakudo::Iterator.OneValue` [65fdea7d]
+ Make `Rakudo:Iterator.OneValue` a `PredictiveIterator` [ec50b961]
+ Rename `SlippyIterator` to `Rakudo::SlippyIterator` [50f13f03][fa3c0dba]
+ Don't use named variables between internal methods [92750571]
+ Implement `VM.request-garbage-collection` [e223be56]
+ `Rakudo::Iterator.ReifiedList` now returns a `PredictiveIterator` [063bfa05]
New in 2020.02.1:
+ Fixes:
+ Fix building on musl [979d384a9f]
New in 2020.02:
+ Changes:
+ `throws-like` sub from `Test` module now throws an exception on
Bool:D matchers [f4ad0c2e][50f084d8][5696dbd1]
+ `RAKUDOLIB` environment variable now mentioned in `--help` [f9b7de22]
+ `Supply.repeated` now has `unique` rather than `squish` semantics [05213315]
+ Fixes:
+ Fix mixing in Raku-level code to the grammar [992f1b83]
+ Fixed concurrency issue with re-checking a precomp file's dependencies [f5ce80e1]
+ Ensure Rakudo can be located in a path with Unicode characters on Windows [4c6cd035]
+ Smart matching a `Regex` no longer breaks if `$/` is not a container [b777d6ff]
+ `raku -v` now mentions `Raku` as the languages [15621b8e]
+ Fixed typecheck on bound attributes (`is built(:bind)`)
[4b64338a][89203438][8a46fca4][d75a703f]
+ Fixed location of REPL history and made the `RAKUDO_HIST`
environment variable work [c5c98dea][94713af7]
+ Fixed problem with `.rotor` when given a `Seq` [c7e0df64]
+ Restored exact stringification behaviour of `index`, `indices`, `contains` on `List` [21762929]
+ Improved invalid TypeSmiley error message [246f20db]
+ Assume 1 core is always available in case `nqp::cpucores` fails [1a7f16bc]
+ `Lock.protect` now allows return of a container [b90bebae]
+ Fixed `Parameter.raku`'s handling of default values [21b80974][2aa4d095]
+ Work around spurious error in `Lock::Async` that
could lead to crashing [d18d6e9a][28541444]
+ Fixed handle leak when chaining `Proc::Async` [cdbd60c1]
+ Restore creating a `Parameter` instance using named arguments [b2c809e4]
+ Fixed behavior of `eqv` operator on two `Seq` objects [76187b57]
+ Fixed variable declared by shape match in signature [ca78390e]
+ Fixed calling of a module sub without `&` and parentheses [e1faa704]
+ Fixed consuming of all `Channel` values which has prevented
reusing it in multiple react blocks [6fbfc4a0]
+ Fixed usage of `$^a` withing a substitution regex [50ca2ed9][adb85e44]
+ Fixed clonning of multi-dim arrays [4a954cbc]
+ Fixed `$*USER` and other dynamic variables coercion for some buggy cases [3a86272e]
+ Fixed internal compiler error on parameter re-declaration [3498c540]
+ Fixed unhandled exceptions in REPL [6bf227d0]
+ Fixed stringification if `Signature` for some edge cases [b2962b1f][56ccd132]
+ Fixed `is rw` trait application to roles [4de852e4][85660c8f]
+ Improved error message when putting a positional parameter after a named one [8dcf1a8e]
+ Improved error message when referring to a non-existent class whose name contains a `::` [ca1e51c8]
+ Improved error message for Buf stringification [539e96c2][3f637af9]
+ Made sure `Version` objects can coerce themselves [5eb113b1]
+ Various fixes for JVM backend [a08f0439][5984ce98]
+ Additions:
+ Enable user-defined chaining operators to work [d027ee0c]
+ Added `prefix` and `suffix` methods to `Parameter` class which return
textual prefix and suffix of the parameter [bd68955b]
+ Made an improperly typed default for an attribute a compile time error
[d8e859d0][05b5f81b][a8bb85a0][b6fa5f5d][13c9da97][4c0761a5][c592b80e]
+ Added `SetHash.set` and `SetHash.unset` methods [6df78ca3]
+ Added `BagHash.add` and `BagHash.remove` methods [c1b8ff60]
+ `Str.contains` now also can take a `Regex` [c3c5dae1]
+ Add `:i(ignorecase)` and `:m(ignoremark)` support to
`index`, `starts-with`, `ends-with`, `contains`, `substr-eq`, `indices`
[49aaa6ff][60b0d86a][84987742][0b2236a1][d91c773a][2e3c091c][46ef7f48]
[9f710029][19576d6c][90fc61bb][ec13c3d0][ea44c194][327c74a6][73c5a25e]
[d49a418e][5a716a39][7cb04813][0761a882][b140d7a9][c2e608b2][a6acfd0a]
[aefc851b][597288be][b32048df]
+ The `IterationBuffer` class now has a `Seq` method [c87f5df9]
+ The `Compiler` class now has a `backend` method [61b416ed]
+ The `Match` class now has a `replace-with` method
[b43c839a][1ac3c5c0][7f3e852f][cd4ab4f3][930e5182]
[488feafc][b4e00120]
+ `Cool.subst` doesn't need a replacement string anymore [dfb563af]
+ `Supply.first` now also works without a matcher [57dbc358]
+ Properly show enums, subsets and routine return type in `Pod::To::Text` output
[f60d9694][91f89435][0b0a1aad]
+ Added `iterator` implementation for `Junction` (fixes e.g. calling `^name` on a Junction) [bceaeb1a]
+ Removals:
+ Remove deprecated support for implicit `Distribution::Builder` prefix [593db2d7]
+ Build system:
+ Implement an automated pipeline to create precompiled releases
[6504be7b][d01d4b26][aaf9a93e][8c995feb]
+ Implement `--git-cache-dir` Configure.pl option.
It can save time and bandwidth when doing more than one build [322b095e][ac6c4379]
+ Add a `--build-only` option for `install-dist.p6` script [4c6c0278]
+ made building optional when installing in `install-dist.p6` script [411db10e]
+ Efficiency:
+ Simplify exception throwing in bootstrap [d18c69b2]
+ Made `Seq.list` return cached list if present [8ccfa87e]
+ Made `.List` and `.Slip` more efficient [d1d931a7]
+ Made `Str.comb(Regex)` about 1.8x as fast [9e8adb65][4df7472d]
+ Made `Str.split(Regex)` about 15% faster [931f5ae0][ba2c58a3]
+ Made `Supply.unique` a few percent faster [32bd4ed8]
+ Made internal `Match` stringification a few percent faster [495ddcc1]
+ Made various aspects of `Date` and `DateTime` faster
[076ef98b][ced67b83][b086a9f2][99b67a4b][e979f173][af8cca77]
[65d0422b][b19c4eec][fa7d3bf7][16962c84][c0e8091e][0286904b]
+ Made `Date.new(Str)` about 9.8x as fast [0408d6e4][497afdad]
+ Made `Date.new(Instant)` about 12.5x as fast [f91a1616]
+ Made `Date.today` about 4.5x as fast [1d7a9168][7a2d68f8][13444198][8876e035]
+ Made `Date.earlier` / `Date.later` between 1.5x and 5.5x as fast [4ebbddfb][5943cbfe]
+ Made `Date.succ` / `Date.pred` (used in ++ and --) about 2.8x as fast [9707384c]
+ Made `Date` integer arithmetic about 2.3x as fast [cfe2cdc5]
+ Made `Date.Str` about 250x as fast with the default formatter [67022d4c]
+ Made `DateTime.new(Str)` about 30% faster [578935e6]
+ Made `DateTime.Str` about 90x as fast with the default formatter [a331ac4d][2b7d5ffe]
+ Made `Instant.new` a few percent faster [5b97ddef][bd948ba3]
+ Made creation of a `Junction` about 3.5x as fast [470f7fd0]
+ Made `Junction.defined` between 15% and 40% faster [7a561d63][423d9ad8][6844be9d]
+ `Hash.DELETE-KEY` does one less hash lookup [9217b1c7]
+ Made various aspects of `Proc::Async` faster [0c5a7075][ca49dcbd][1db41618][356bf3f7][05916efa]
+ Made `Channel.list` around 16x faster [82bd76f1]
+ Internal:
+ Preparations for UNIX sockets support [7c7d3b96][1a5b2185][ed4226d7][ce5b5dea][62cb756d]
+ Simplify leap date updating logic [25c84b3a][bdb00749]
+ Removed perlcritic config file [5ac792ac]
+ Add support for `use BUILDPLAN class` [8fdce756]
+ Add support for nqp arrays to `dd` [255318ec]
+ Change of `IO::Path!new-from-absolute-path` internal method signature [1d946e15]
+ Correctly set up values for `$*DISTRO` initialization [22d5ffc3]
+ Change file extensions to Raku format
[61821ffa][8c242d5e][582c14a8][5e9d98c2][ea1cb407][3b8104ec]
[4677f741][ac652c0e][e5723208][deac4407][7b679604][416fd513]
[ca99c7ca][54375179][82ea3292][4ec31e2c]
+ Other internal changes related to Perl 6 -> Raku migration
[10e5390b][8fd7172c][af292586][81014e78][925e73df][dd7b4ce5]
+ Tests added [21320191][ffabf8d5]
+ Remove unused `nqp::p6decodelocaltime` as NQP has `nqp::decodelocaltime` [e2ba546f][663c427e]
+ Rename the `Junction` `$!storage` attribute to `$!eigenstates` [1a6f83c6][911cac4e]
+ Simplify fetching of the kept `Promise` sentinel in `Lock::Async` [e81e5162]
+ Simplify `Parameter.raku` implementation and improve how it handles parametert names [3f6a2a22]
+ Added `*_RUNNER_OPTS` variable to Makefiles [701c38df]
+ Make `rakudo` binaries default ones and `perl6` to be aliases,
as well as include some other renaming-related changes
[f5f6f76f][23ca6952][519a741a][536a2d28]
New in 2020.01:
+ Changes:
+ A big overhaul of role applying rules and behavior or
submethods, constructors and destructors
[38c72649][a8f61882][cddcd46a][61d3aef2][27147ed0][cbc4b839]
[3f7caf57][f242bcfa][cd74a3a7][51055d0e][9369c68e][ad92abc3]
[00fec7c3][6f0dd1ea][c9ac15cb][cb903667][d89a0c92][a08e1ff5]
[c674a1d3][0654d3e5][fffb5c9c][232382f8][b47be208][44648fbe]
[c2d5c20c][48fc44c2][7afffd61][17537ab5][b1e288c3][32e210cd]
[fc4a5a3b][1e166e41][7a94c4e0][3eb63b3d][a4ad1a8e][526d38d4]
[9e4087e1][aeb10ef5][c4f1cff0][1f620408][b83e069d][4d69fda5]
[c7a87053][13ae9298][0fb7a697][86b1ccbd][ca2cb4ab][e843fd20]
[a92ade48][bdcf3149][93d0575c][23191207][595e0ca3][2c4fa983]
[b51c1fc5][afcbeb59][eadc1582][548dea5f][1aad3481][4a962e07]
[0b6a9343][bb2600d9][5d10e91c][139d528b][f2a41613][262b6fc7]
+ Smartmatching typed Arrays against same-typed Positionals now
returns True (e.g. `Array[Str:D] ~~ Positional[Str:D]`), which
returned False before [fb55ae29]
+ Class attributes and methods are now prioritized over those from
roles [f19e2ee5][2fc87db1][4c265c7c][9357eddb][83d26ddd][9f2a2f6a][55b51a24]
+ DateTime class now accepts picosecond precision [9eef0e63]
+ Make default degree for hyper/batch utilize number of CPU cores better
[9fd29cd2][5def05c9][3f51728d]
+ `$*ARGFILES` special variable now defaults to `$*IN` if no arguments [bde10698]
+ An attempt to use methods `index`, `indiced`, `contains` on a `List`
now gives a warning [c9b02185]
+ Fixes:
+ Fix repository name lookup on windows [13c5d046]
+ Fix leaking file handles when loading modules [1c467401]
+ Fix Parameter.sigil for anonymous scalar params with default values [8c0a5d6b]
+ Fix raw slurpy onearg parameter handling in Parameter.raku [33993023]
+ Fix construction of Parameter object [68808c54]
+ Fix error when calling Parameter.usage-name on unnamed parameters [81311a20]
+ Fix hang when initializing `Int` with a type object [0e9f96ea]
+ Fix missing dependency information when precompiling large dependency trees [9fa82b80]
+ Fix off-by-one error in Supply.head(limit) [80f60c05]
+ Fix for parameterized roles not found for FQN lookup if applied to a
parent class [27b3db27]
+ Fix double execution of ENTER block in some cases [d8c7d879]
+ Fixed compile-time subroutine candidate matching when `is rw`
trait is used on JVM [12d4514a][fae105b0][73d5e74d][d81212b2][5c65a126]
+ Improved error message for invalid Pod6 leading and trailing
declarator blocks [26f63ff7]
+ Prevented `ASSIGN-POS` method on `Any` from decontainerizing,
allowing its correct overloading in roles [ed8f5141]
+ Prevent `name` MOP method from returning a `NQPMu` when no name
is set by returning an empty string instead [dabf83a2]
+ Fixed relocatability of bundled native libraries
[55b3ed56][0e4f8351]
+ Made `Range.int-bounds(from,to)` always return correct result
[8c3f2927]
+ Fixed a precompilation bug related to determining class language
version [15a55801]
+ Fix "expected IO::Handle:D but got IO::Handle" in parallel test
runs [efadff2a]
+ Fix calling a qualified method from role on JVM backend [5648a4f3]
+ Fix `roundrobin` method, cross and zip operators on a 1-element
lists [f602c02c][737dd1b1][87de5ee4]
+ Fix MoarVM::Profiler.report [734047a0]
+ Additions:
+ Add `Version` type coercer to `Str` [e3cbd32c]
+ Add `Supply.repeated` method [ff08697a]
+ Add `Supply.decode($encoding)` method [59f6a031]
+ Add `Supply.first` method [ace98531]
+ Add `Supply.collate` method [40797028]
+ Allow Supply.head(*-3) to be synonym of Supply.tail(3) [6d6318d4]
+ Add `Supply.encode($encoding = "utf8")` method [5d6c0b6b]
+ Add `Supply.comb` method [348d54df][3dd9edff][67ec4b2b]
[1331128f][07dce515][147ce39e][550bf097][a666e736][92d465db]
[622b20fb][f74e506f][f8724459]
+ Add new `is built` attribute trait
[e76f8e4d][98abd6a7][e81b0b68][826c3ead][f1f690e0][ada7c365]
[ecf8a3f4][7bbb76da][8ab53027][3f0dca4f]
+ Add `Supply.split` method
[cac64caa][4fa60ab5][c16a6484][9b29bcc4][2188f13b]
+ Add `Supply.lines(:nl-in<foo>)` method [c63d8a87]
+ Allow user to retain formatting of Pod6 leading declarator
blocks (`#|`) using RAKUDO_POD_DECL_BLOCK_USER_FORMAT env var,
instead of always collapsing them into a single string. The
latter remains the default behavior [9a4c83af]
+ Made `.perl` (now `.raku`) method call on signature of {...} display `$_`
variable from outer scope [e7c20386]
+ Add `$*RAKU` variable [a05e169e]
+ `Raku` is now allowed to be used as a language in EVAL
[1c5d010f][632c0083]
+ Add `:$match` named parameter to `comb` subroutine when called
on `Cool` object when the `$matcher` argument is a `Regex`
[dd2f072d][a9cd6404]
+ Add `log2` subroutine, which accepts `Cool` and `Numeric`
arguments, as well as its method form (`Numeric.log2`)
[f6254be1]
+ Allowed colon syntax on `$.foo` method, making `$.foo: 42` work
as well as equivalent `self.foo: 42`
does [4a1323ed][6abdf27a][0f86e49f]
+ Add `RAKU_EXCEPTIONS_HANDLER` env variable,
which is not supported as an alias for `PERL6_EXCEPTIONS_HANDLER` [90408d18]
+ Build system:
+ Renamed `PERL6_HOME` env var into `RAKUDO_HOME`, preserving
backward compatibility. Rakudo `Configure.pl` now accepts
`--rakudo-home` in addition to `--perl6-home` [7cfdd598]
+ Add `--force-rebuild` command line option. Together with
`--gen-*` options is causes corresponding components to
recompile irrelevant to their existence and version
conformance [15255b0a][2022b9cd][1945b9d2]
+ Fix `set-env.sh` script [0b8ede6c]
+ Fix `raku` symlinks relocability [a00628e0]
+ Prevent silently swallowing errors on submodule update
[db43d134]
+ Use Visual Studio 2017 in AppVeyor [7ecc5bfd][7ce49472]
+ Various tweaks and small improvements
[75056dfa][8b7d0651][52a7bab9][d7d9a2f4][470c9b7e]
+ Skip 'make test' on JVM backend [e5627b83]
+ Efficiency:
+ Make `StrDistance.new` about 30% faster [91a324a0]
+ Make `Rational.Str` 10% faster [272b658a]
+ Make `Rational.Str` a few % faster with 20% fewer allocations [73e98a6c]
+ Make `Rational.base` at least 2.5x as fast [97e7cdbd]
+ Make `Array[Int].raku` at least 5% faster [66cf6f81]
+ Make `NumStr.raku` about 60% faster [e262da1d]
+ Make `IntStr.raku` about 2x as fast [2261ef11]
+ Optimize `Pair.raku` [0d96bedc][08aec410]
+ Make `Mu.raku` about 40% faster [585227ee]
+ Optimize `Str.raku` [09e66e50][a4b62fb1]
+ Make `Str.rindex` a few percent faster [7ecc3e84]
+ Make `Str.index` a few percent faster [d5719bbe]
+ Make `Str.contains` a few percent faster [030ed10d]
+ Make `Str.substr-eq` between 1.4x and 2.4x faster [276d0967]
+ Made `Str.chomp` between 10x and 100x faster [b9c0196f]
+ Made `Str.chop(N)` between 3x and 17x faster [b569e112]
+ Made `Str.chop` between 1.8x and 30x faster [f1963623]
+ Made `Str.trim-trailing` up to 2x as fast [657d36f1]
+ Made `Str.trim` between 1.5x and 3x faster [0d0d419f]
+ Made `Str.substr(N)` between 1.5 and 3x faster [4252a8c9]
+ Made `Str.substr(N,M)` about 1.5x faster [908dd251]
+ Made `Str.substr(N, Inf)` about 15% faster [25a29987]
+ Made `Str.trim-leading` between 20x and 90x faster [3941fef0]
+ Made `Str.parse-base` between 7x (with decimal point) and 12x
(without) faster, decreased its memory pressure
[74c8017c][3ce92453][9b8ce733]
+ Made `Str.Numeric` a few percent faster and 13x faster for an
empty string [37474a7a]
+ Made Str.Int a few percent faster [b42957cc]
+ Made DateTime.new(epoch) about 20% faster [9d895914]
+ Made DateTime.new($epoch) about 50% faster [cd321254]
+ Made the decont operator about 20x faster [872cb7c0]
+ Improved efficiency of JIT for `split` subroutine [3e2cfb4d]
+ Fix regression in performance of async socket [4e9487ce]
+ Micro-optimize `set_name` MOP method [88741d94]
+ Make `lazy gather` up to 15% faster [971174f4]
+ Make emit about 30% faster [aea2a36c]
+ Make `take foo` about 20% faster [a91813d0]
+ Make `take-rw foo` about 20% faster [533a2ad9]
+ Make `take foo, bar` about 60% faster [e1aaa83c]
+ Make `take-rw foo, bar` about 60% faster [bed716be]
+ Make Supply.lines a few percent faster [0f4ef3cb]
+ Numerous micro-optimizations [f5583de4]
[05aff922][488f21a6][9c15d717][6c85e691][60a9ff62][779b0a2e]
[fc8bfc2e][11a8d57f][392af08b][33266694]
+ Internal:
+ Add mechanism for seeding typename suggestions [b291fc78]
+ Removed SUBSTR-(START|CHARS)-OOR from Rakudo::Internals, they
are now `Str` private methods [ab99c2dd]
+ Simplify `Str.substr` implementation
[99a0610a][1a891062][e3426579][f79102fa]
+ Fixed some regressions related to `v6.e.PREVIEW` usage
[6c251f27][8d03bdff][94b4ca96][466f7de4][65847f71][a59fec7f][755c8030][0d2eb1cb]
+ Reflect Raku renaming on codebase [604ca34a][186c4ce6]
+ Numerous small codebase improvements, including ones related to
renaming process
[8f30cc76][fc309419][540162c1][6a129499][1003bb93][68cee0dd]
[2652d9c5][f9e30a02][ee66a6b1][a04af365][11808277][0e2485a8]
[e8a9e07f][17d81160][d5a34f19][6bd0dd51][cfb655bc][b1a68be4]
[74aea829][80cbb3ef][83423ea0][d38cfef3][d406d834][62bd2743]
[6bf6d347][e4efccc6][6f527cea][b7888d79][7ce79f4d][5f335aa4]
[9a5579ff][784daae2][add2ec0d][abcf37f2][a51268a1][b9fa673b]
[3d432429][f06c2426][f1abe9c6][bd2e0c7a][22905592][8c4244f6]
[829f4ccb][4f48e3a5][27d1c4b5][5d8ef435][ccb92df2][8ad3d244]
[70f96d9b][276c06d3][d6970e96][3e332a1a][06292bc8][8cfa6590]
[f08cd00f][7b075188][b1e986c2][0e9792c7][43669806][7925bfd4]
[82913377][fa355a26][19b820d8][06ae7d61][86a771ac][aafa8ca2]
[25e6128c][fdffa474][77d8fa37][ed44f60a][666f95c1][56d2b23d]
[0d81a867][b7870953][37ddd598][87bc1171]
New in 2019.11:
+ SPECIAL NOTES:
+ Perl 6 is now Raku! This release comes with initial changes
required for the language rename. For more info see
[Path to Raku](https://github.com/perl6/problem-solving/blob/master/solutions/language/Path-to-Raku.md)
+ Fixes:
+ Fixed the signature of `signal` [eb88e64e][fcf1f761][a46c414f]
+ Fixed laziness propagation in KeyValue/Pair iterators [abbd1285]
+ Fixed loading of `CORE`s allowing for defining new symbols for
new language releases [56af07bf]
+ `die` and `fail` now use `$!` from the calling lexical scope if
called without arguments [56af07bf]
+ Fixed a bug in `require` with incorrect installation of imported
submodules [56af07bf]
+ Fixed outer signatures getting into string interpolation
[7cab810b]
+ Fixed segfault when using meta ops in threaded code [60cfbb39]
+ Fixed Maps to keep containers [2ee82afe][42d6e0bc][cb1fbf66]
+ Made sure `Date.new-from-daycount` takes right candidate
[ac11774d]
+ Fixed passing of formatter in operations on `Date` objects
[971d4bf6]
+ Fixed `.wrap` when used with `callsame`/`nextsame`/etc. [da65fb5b]
+ Fixed a bug when a wrapped method is called first [2e915d74]
+ Fixed `:D` check when used with `where` [58c2d649]
+ Made socket family handling portable [16607d3f][17f66039]
[39b04dc9][7e106265][d7d8d37e]
+ Fixed RakuDoc parser to allow empty config values [7c3b2572]
+ Fixed handling of `:every(Inf)` in `ThreadPoolScheduler.cue`
[74f2d3f4]
+ Fixed exception propagation with race inside race [9d1505d1]
+ Fixed Proc to return Failure with non-zero signals [89fc9f35]
[6b42d314]
+ Made sure that doing keep/break on a vow more than once throws
[c7ec96aa][0f31d353][5aa998f1][f32b86a9][b8f92d25]
+ Made sure that `Backtrace.list` lists all the frames [559c24f0]
+ Made the `Buf.write-*` methods return self [dae981e8]
+ Allowed type objects on `Buf.write-int/num/bits` [43b5e768]
[18ff9052]
+ Changes:
+ [6.e] Pseudo-packages now return `Failure` for a missing
symbol (was `Nil`) [56af07bf]
+ `EVAL` no longer wraps evaluated code into own `CORE` context but
shares the one used by the calling scope. It also means that
`use v6.X` statement is not effective inside `EVAL`s anymore
[56af07bf]
+ [6.e] Grammar now returns Failure when failing to parse
[b21a5776][daebcd26][4cdd2d10][d46a9084]
+ Additions:
+ [6.e] `LEXICAL::` pseudo-package includes all symbols visible in
the lexical scope, including dynamic symbols from caller
chain [56af07bf]
+ [6.e] `SETTING::` pseudo-package includes all symbols from all
available `CORE`s [56af07bf]
+ [6.e] `UNIT::` pseudo-package includes all lexicals visible at
unit level [56af07bf]
+ [6.e] Symbol binding is now possible for all
pseudo-packages [56af07bf]
+ Individual language-release `CORE`s are now accessible
via `CORE::v6<rev>` namespaces. [6a885908]
+ Added GB2312 and GB18030 encodings [a95cb03b][4cee2c36]
+ Added support for Unicode v12.1 [f5ef0b3c][7056a25a]
+ Build system:
+ Added `raku` and `rakudo` executables [5090206d][ab0a6d61]
+ Added `--rakudo-home` alias to `--perl6-home` [dfeb7126]
+ Added `--nqp-home` and `--perl6-home` configure options to set
custom home dirs [e16e61a8]
+ Added `RAKUDO_HOME` environment variable [dfeb7126][24abab8a]
+ Added support for `.rakumod` extension [daa16b9c]
+ Added `--silent-build` option [f9ee6043]
+ Fixed errors when building from a release archive [78c05c12]
+ Fixed installation to `/usr` [1e0220ff]
+ Fixed build in folders with spaces [93669907][abc072cd][f1170895]
[0365662e][f7f9b1fc][ceb457e1][12d9e34a]
+ Created a process for making binary releases [34273916]
[1c764404][f7b4d71f]
+ Fixed libffi include issue [98e0bb68]
+ Removed `--libdir` configure option [cdd57cd0]
+ Fixed the build to not create folders outside the build
directory [cbd1dc27]
+ Minor build system fixes [165f3fbf][3d5c5517][579ac66e]
[d487cd85][c2808b32][cfb0a267]
+ General build system cleanup [90de22f8][983c3985][4ce5b7c5]
[ff9272b1][608c6cdc][9fefa336]
+ Efficiency:
+ Made sure dependencies are not recompiled if another process
already did it [23cfe1c6]
+ Many small internal optimizations [f44c14c3][82fc4e57][af108863]
[01b86fa8][c7056f20][0dd6573a][207b825e][e424248a][57f4a4c9]
[19e075ff][c3926928][44a6a0de][696eea2d][1d4c21d0][6f5232f4]
[3697325c][6297b0e4][519cfdeb][25abfe2b][1e2b0ec5]
+ Internal:
+ NQP vars and ops will now default to int instead of num [290cd792]
[5876d38a][62e2555e][1e4d3ac4][cf6f6d92]
+ Optimizer: Don't use Int*Ref in first arg
of `if/unless/while/until` [84ee0c8c]
+ Fixed `BYTE_SUPPLY_DECODER` breaking after exceptions [91624312]
+ Reduced `.moarvm` size by replacing `die X::Foo.new` by
`X::Foo.new.throw` [6d8f4050][88dfe55c]
+ Stagestats are now shown for dependent precompilation [238f8e57]
[960e5b4a]
+ Added more tests for symbols in CORE and SETTING [5cd45f91]
[53bb28d0]
+ Added `nqp::p6client*` family of ops for finding first Raku
caller from different package and determining its language
version [86525a3b]
+ Added `nqp::p6getlexclient` op and `$*OPTIMIZER-SYMBOLS`
[cbce0edd][f8768ae5]
+ Added `Sprintf.pm6` stub for development convenience [4bd25bf5]
+ Fixed inconsistent state of NativeCall subs after
repossession [573f6a2f]
+ Fixed native subs declared in BEGIN blocks and role
bodies [e45bb341]
+ Fixed optimizer interfering with some native subs [d662912e]
+ Fixed leaking an open file handle when re-precompiling [2dd570de]
New in 2019.07.1:
+ Build system:
+ Fixed issues when installing into `/usr` [f41db044]
+ Fixed unnecessary use of `git` in release tarballs [540926bf][e18b4f3b]
+ Fixed intermittent failures in one of the performance tests [bd29d3f6]
New in 2019.07:
+ SPECIAL NOTES:
+ Upcoming releases after this one will have a different changelog format
+ Java 9 is now required for JVM backend [ea94966d][8a37b931][b1fac3d6]
+ Deprecations:
+ `--profile-filename` will be deprecated in the future. Instead, there
is a `--profile-kind` option that accepts the `instrumented` (default)
or `heap` arguments, and `--profile(-compile)` accepts a filename as an
argument [31e534cf]
+ Fixes:
+ Fixed `asinh` with large negative arguments [5281c23a]
+ Fixed laziness check on `[\+]` [8f424c9d]
+ Fixed representation of constant constraint in `Parameter.perl` [a1591fbe]
+ Fixed `$*KERNEL.bits` on Windows [5a9b720d][6e8df010]
+ Made sure creating a Failure from a Failure object throws [c9110654]
+ Made a Failure throw when it is used as something `Iterable` [23fca8f6]
[4ffb4082]
+ Fixed `CLIENT::.keys` [6599998c]
+ Fixed a crash when values are deleted from `(Set|Bag|Mix)Hash` while
iterating [a6a60705][1f066d96][63657986][c5664301][787d5bf6]
+ Fixed method cloning [d14fad4a]
+ Fixed USAGE message to not omit candidates when it shouldn't [bea51993]
[dd1c8059][2b991664]
+ Class symbols are now merged into stub when
using `require STUB:file<>` [f03c7814]
+ Fixed named parameters in `MAIN` so that a single parameter for a
`@`-sigilled parameter is now accepted [87d219ee]
+ Improved USAGE message for `@` sigilled parameters [d5faa02b]
+ Implemented `:123foo` parameter format in POD6 config [95ce37d3]
+ Fixed notification queue growth in `Channel.Supply` [d5044de2]
+ Fixed `FatRat.base` failure for large denominators [d4e1d8e7][b69964b5]
+ Allowed `:at`/`:in`/`:every` to be `Inf`/`-Inf`/`NaN`
in `ThreadPoolScheduler.cue` [cc88d63d][de76a056][9b46cb90]
[c977d6c5][1a19c660]
+ Fixed an error when `RAKUDO_EXCEPTIONS_HANDLER` is set [939ea419]
+ Fixed parsing of Unicode brackets in string interpolation [ba07a62f]
+ Fixed a lot of reproducibility issues in Rakudo and precompiled modules
[0990ecc4][50699817][e1f1eb00][7926cdd6][95af2f4c][a2ba5737][4af81c36]
[5ee341cc][5b8b9c0c][5dcc687e][aa1d1ce0][7b5a9981][a973dae6][4d44bd93]
[8ec2c43f][532d19fc][5669bc92][37b7ef7c][5c24182f][c5bc71e3][cd11b507]
[b0dd44b0]
+ Fixed an issue with multiple dimensioned indexes throwing rather than
failing [7bbbebc0][9ce87eeb]
+ Made sure the REPL creates a history file if it doesn't exist [cb691da5]
+ Made sure that `.head`/`.tail` can take `Cool` values [74c8f044]
+ Fixed bogus role conflict when the same method is added under
multiple names [e274f4a2]
+ Made sure classes doing the `QuantHash` role have `.hash` and
`.Hash` [650bbc1d]
+ Fixed `ThreadPoolScheduler.cue` when called with a `times` named
parameter [48a12551]
+ Fixed an off-by-one error in infinite range subscript [35b69f07]
+ Fixed colon parsing of adverbs [76e5ee1b][91359141][c227693a][a26e95ba]
+ Fixed `List.perl` for lazy lists [ec978780]
+ Fixed `compile_in_context` with an immediate block [b9f89954]
+ Fixed parsing of `&` in regexes [f18af941]
+ Allowed capture argument to `MAIN` to accept arguments [410ff564]
+ Made `Date.truncate-to('day')` a no-op [e943f3eb]
+ Fixed assigning `Nil` to a scalar declared with captured type [c0134d2a]
+ Fixed roles inheriting from a class failing to type check against
that class [90d81c7f][41f6f9ea]
+ Fixed type checking on curried roles [86290889][5f07a394]
[9b65b33b][9c6fa1e7]
+ Fixed type matching of parameterized roles [0023f64c]
+ Fixed type matching of roles against their "parent" classes [6c023546]
+ Fixed role exports [163f0a03]
+ Fixed assigning a native array from an `Array` with deleted
elements [ef766010]
+ Fixed number of elements when `Slip`ping an `Array` [f5f41901]
+ Fixed multi-dimensional `EXISTS-POS` for out of bounds
dimensions [ca7408e9][c9a78928]
+ Made sure sorting a 2-element list with a mapper is stable [ab56324d]
+ Made sure calling `push`/`append`/`unshift`/`prepend` as a sub with
named parameters dies [b20ccbae]
+ Made `is export` export role's group [120b8d95]
+ Fixed internal `from-json` so that it doesn't creatie nested arrays
on assign [b7e0e894]
+ Made sure `Channel.fail`, `.poll`, and `.receive` will update status
of `Channel.closed` [ef1ea42c]
+ Made some methods return `Bool`s instead of 0 or 1 [6f8442ad]
+ Made sure formatter information is kept when using operators
on `Date`/`DateTime` [34c0e892][5bdeedcb][f05b1b08]
+ Fixed `require` to do the right thing when importing sigilless
symbols [63b9e1fe]
+ Implemented a more fine-grained deconting of exported symbols [93f20871]
+ Made sure `Junction`s used in a `grep` are interpreted in `Bool`
context [86523869]
+ Fixed signatures on several multi methods in core [66d92c62]
[8969399b][9b639961]
+ Changed the value of `RAKUDO_FIRST_FLAG` to avoid collision
with `MVM_CF_FORWARDER_VALID` [bf61f597]
+ Various fixes for the JVM backend [e84f7270][a5b22387][f26fbd37]
[3e51bd4e][1aae63a6][5e8451f7][96a976b3][417fa68e][f1c80fdd]
[07b4f743][ee2297b5]
+ Various fixes for the JS backend [0ecd037b][4f8a16e0][6e650cd3]
[b0668b26][75e2fb70][9d187287][7aa72ce0][1aae63a6][f1c80fdd]
[8abfbbc4][07f6ccc3][88712199][ea795710]
+ Various improvements to produced messages [54a89b6b][6563f1ab]
[2732a286][69d88be3][1ec4f171][33e2d7f4][2f6e5fde][2e8f326d]
[e3529622][24eb4d59][8f59177a][d8a41f7e][aeba161c][a362fac5]
+ Additions:
+ Added an `X::Cannot::Map` exception [fd8a00a3][ef8899f6][a804ed0f]
+ Telemetry's `snap` now also accepts an optional
"checkpoint" message [afc9f849]
+ Telemetry: allow snap `:heap` for heap snapshots [90e18b65][0c80e067]
+ `CompUnit::Repository::FileSystem` objects can now also be
created from an `IO::Path` [e9bbefd3][b2e72d6d]
+ Added support for `use v6.e.PREVIEW` [d4afd480]
+ `EVAL` now supports a `:check` flag to just check
syntax (like `perl6 -c`) [d41f162d][5b3a8ce0]
+ Implemented support for `Kernel.free-memory` and
`Kernel.total-memory` [31671f8f]
+ Added the `CachedIterator` role for creating iterators on cached
lists [94ba19f7][a4d38539]
+ By default a parametric role group would now choose non-signatured
candidate for introspection; if there is no such candidate then
the first one would be chosen [6c023546]
+ Added `--confprog`, a way to configure the behavior of some
moarvm-internal systems like the profiler [97334711]
+ Removals:
+ Removed `:where` support for `Signature/Parameter.perl` [4cfe5ec1]
+ Removed several internal functions from `CORE::` and
`SETTING::` namespaces [45eb1c5f][ed074cd1][80185031][bf57f762]
+ Removed wrappers for no longer existing internal function
from `RESTRICTED` setting [47832fe1]
+ Removed `Compiler::build-date` [019ccf05][35423a6e]
+ Removed the timestamp in `Distro`'s desc [2d4d2ca0]
+ Removed unused `%opts` argument from
`Perl6::World::load_module_early` [bc764c2e]
+ Build system:
+ Replaced shell runner scripts with native executables
[ed9b963d][7ab19817][5366c4fa][4b461bf7][2c9c823c][e0f84e05][637ba57d]
[1853eb91][9e63da47][7846144e][787596d0][5bc62699][4459364e][bb7e6094]
[11c55fb8][34162e96][9aec73a7][134b1baa][8fac1099][c4f33fce][afc79c24]
[474997fc][ef0bc23f][c63c06e7][40cc12ac]
+ Made Rakudo relocatable on most platforms [b989882d][e27c1ec3][efa9f54e]
[171bb6eb][a11e9ab5][d76fe0ae][aed29234][f20a2b6e][98a0df6e][ab96f1a6]
[f0915e92][e00c9ea8][4ec400be][52b80c44][27adb553][ffaf3fc3][a542ec94]
[090f1c96][4a7c487b][efb35b00][1add622d][1d538977][e20dcc4e][d3d4b2e8]
[65217aaa][109ce1f4][99176243][249c730e][340f692b][5a07a7fd][8809b9ce]
[de42e719][cac95fbb][0c8f269f][96e8d4f4][3fffe283][83f6256a][65ed8249]
[3f0dfcd7][f8ced498][3a4ebf34][75e234a2][6c5be5e0]
+ Revamped the whole build system [db5becfb][c1c108fd][bafa5239][3627de6d]
[6d40290e][2c4f7c79][9ce98098][c7b3bd7a][2974076b][d54fafca][7c20b9c8]
[2c256531][0299578d][01e8b85f][55ebbacc][9ac52616][59d44cf0][8784b21c]
[cc584b72][cf33f1a0][7960454a][b619b560][86fe3a05][825b6787][38980f0d]
[4b481194][dd250027][6695777e][7d2bb288][13d65042][0adb7769][5404c2a2]
[c314acc8][8d2fade7][e91668ad][5935b1dd][f12a8c95][99c53c39][141bd4e1]
[da6d90e4][16ccbeb0][f6438b02][f2ccd6fa][49a4ddbd][1fceeada][87647236]
[9ba51a8b][f077f57c][adc8e212][4e15f205][4816277c][0acd27f4][6e14da54]
[79629bde][c86742ac][09b9e065][88218704][caae6e33][de53f43b][2b1e5ab4]
[63a1b50a][e132e476][fd0a4c21][c24b1875][b25d7c94][7467ab1d][70d481b2]
[2d7e7aa4][0522259d][3f25ba92][00362541][c8b5bd3e][6ee37f8b][b93201f5]
[136e8a43][0296102e][7fc38d55][bf1bf73c][02e78700][50034d15][e51d2adb]
[1655e73c][7f69ef1d][f15f5687][f935bd20][2f8a4d78][9dca33b6][c5830f4c]
+ Introduced `PERL6_HOME` and `NQP_HOME` which allow to control where
Perl 6 and NQP look for their installation [8055fc1b][f76db01b]
[9196db5c][2633aad6][472c8c90]
+ Fixed default target on `nmake` [44e0386a]
+ Debugging commandline arguments now work on perl6 directly [2d3a7fbf]
[e26cd449][9ce17929][8b9297de]
+ Moved `spectest.data` file into roast [ed6d91c0]
+ Rakudo NQP libs are now installed into `/share/perl6/lib` instead
of `/share/nqp/lib` [34476c3a]
+ The "perl6" Perl 6 CompUnit repo was renamed to "core" and is now
installed in its own folder [80dff595][4d5b254e]
+ Efficiency:
+ Replaced internal json parser with `JSON::Fast` code [ce24f604]
[43ff9f1c][a8cd286a]
+ Made `say(\x)` about 1.08x as fast [9770c1aa]
+ Made `Iterable (<=) Map` 2x to 3x as fast [44a6468f]
+ Made internal `to-json` functionality about 3x as fast on
MoarVM, 1.6x as fast on JVM [667c75d3][8540c94d][a6a2ba90]
[e22aeafb][ee2f2d2d][dc782575][1d4bcac3]
+ Made chained calls of `.reverse` much less memory hungry and a bit
faster [2683b3d0][e118d4ef][719eefde][8ddc2ad5]
+ ReifiedListIterator is now a PredictiveIterator [9107215a]
+ Many small internal optimizations [f0915624][29878d82][76b6416d][a9b9cdc9]
[17643d49][29ce2ce3][847783e2][165f9184][2eb93b2d][286aa29e]
[a21cf6ae][86d66ea1][3556f270][0b66e011][e316c1a1]
[7db3a06d][b559512a][25fe9b0b][3cde10a7][6df735b2][bb2c3f3a]
[5b7870bf][9dad99b8][36fa16bb][0e7c6e77][c361736e][cbb9034a]
[ce30ff2a][bed0695d][95a7866c][ffc47aae][2b0ac401][7b10a428]
+ Work in progress:
+ Re-implementation of `sprintf` [8fc53ec2][12a094ad][7201d89e]
[29107b17][972a242f][1cad10b7][4ae023c7][af7b833f][74505389]
[d000a125][dc02335d][e6cbbcc8][0f3bdfb8][e84845ad][7931fc25]
+ Providing an API to spesh logs [84144c79][4e677f04][f91de3e2]
+ Providing an API to the MoarVM profiler logic [c4fdb642][e421e638]
[f7bcbb70][b51acee6][3910042a][28ce83a0][a70a82ea][51c6e585]
[19c74bd0][9e8da747][ef7f0408][8e49a86b][4b8eb734][6e3a4b93]
[ac698cd4][26a309b2][9203ef2e][a32ad594][29966a1a][e623265e]
[13d3f0d4][161d7eef]
+ Internal:
+ Refactored `$*KERNEL` internal use of uname [ec40933d]
+ Got rid of a hack involving early return in `Test.pm6` [84b0e380]
+ Fixed `.&fail` after better return handler tracking [90722780]
+ Exposed `newmixintype` via `Metamodel::Primitives` [4702c245]
+ Fixed subclassing of `Parameter` [d31fb270]
New in 2019.03.1:
+ Fixes:
+ Fixed issues with `$*KERNEL` on Windows [190a7148][2f9d69c2]
New in 2019.03:
+ Fixes:
+ Fixed uncaught processor floating point exception on
`Rat.round` [11da0fb4]
+ Fixed `$a=~$a` if `use isms <Perl5>` is active [df748ea7]
[af868f84]
+ Fixed `.WHICH` methods that did not return `ObjAt` types
[e50f4f2e][6b401dad][67cbd993][9df09621][0d29768a][ca8d8afc]
[4b91610e][537621e4]
+ Fixed missing redeclaration of bound outer error
[23663609]
+ Made `X::TypeCheck::Assignment` and `X::Trait::Unknown` more
resilient against strange values [a6d8858e][54fe8a1a]
+ [6.d] `$_` container is no longer `is dynamic` [33f79fef]
[3d581c8d][c2e272ef]
+ Fixed thread safety of some state variables [a5b9fc2d]
+ Fixed `.^compose` calls on types stored in a scalar [ab8052dd]
+ Fixed `Parameter.perl` for slurpy parameters [d8b7fabe]
+ Fixed `$*EXECUTABLE` path construction after a `chdir` [5c14916b]
+ Fixed `$*PROGRAM` path construction after a `chdir` [cebf0cb7]
+ Fixed `.^add_attribute` calls with `Attribute` object stored in
a scalar [bf0dbbe6]
+ Fixed hang in Channel `subscribe`/`close`/`drain` [9b77459b]
+ Fixed `Inline::Perl5` failing to load when installed through the
Staging repository [1c101a04]
+ Allowed parameterization of parent class in `class` declaration
[35ecfc8e]
+ Made `IO::Path.dir` on non-existent paths throw rather than
return a `Failure` [38f4b7b4]
+ Fixed line number accuracy in backtraces [5b231e09]
+ Made regex literals capture `$/` and `$!` [8ef7c15e][ee2238f7]
[4a2124a6]
+ Fixed `«=>»` crash if RHS is a List in a Scalar container
[df96fa0f]
+ Tweaked `Range.ACCEPTS` to work better with Junctions [46409c07]
[f3f7c5cb][d904b704]
+ Made `Baggy.ACCEPTS` signature the same as `Setty.ACCEPTS`
[37ce147c]
+ Fixed "No concretization found" on role-qualified method call with
inheritance [a6c8180f]
+ Fixed use of a role by its short name in some cases [b3eb3826]
[9d6e508d]
+ Made sure that `CArray` can be `STORE`d into `Buf`/`Blob`
[ada116ef][5e5c909d][30fc5146][84ed8548][bfadefaa][05b9aa0d]
[b394b63c]
+ Made CUR uninstall `.bat` wrapper scripts [121ca5fd]
+ Fixed a problem with adding/subtracting negative values from
`Date` [91ca8275]
+ Made sure hash slice auto-vivifies using infix metaop [616b757a]
[e68e38e0]
+ Many improvements to the JS backend [634633be][8f2d9ed0][fc39f5ff]
[9b20c476][822962da][e233f287][52de9657][6dd723a9][7b053d54]
[17a2bcca][f7ba400e][ada01420]
+ Various improvements to produced messages [e48712a3][59bafb83]
[6a8f08b9][89ca56af][8095cead][d499bd4b][7133b81e][f7704267]
+ Additions:
+ Added a candidates method to `CompUnit::Repository::FileSystem`
and `CompUnit::Repository::Installation`, which acts as the API
for module lookup. Internals were refactored to use this API for
module lookup, which fixes some issues as a side effect (i.e.
old bin scripts being invoked instead of a newer version)
[2d007bf4][07f62c60][bed3bbd0][a25d5fa4][29d74709][085fa19c]
[78de05eb][b378a157][d0a3fec9][d533d450][877e7dc0][270b355e]
[683df8bf][e1ef571e][077f88a5][22021fdd][603010be][27e141cc]
[ddb6abd0][c868ca9c][339ea850][3999d753][bfff01a5][d998c1ea]
[83f0fd6c][d39e2fc4][74ccb4c8][67cf829f][92ebc333]
+ Added `buf8`/`blob8` read-(u)bits / write-(u)bits methods for
reading/writing any number of **bits** [45a945b5]
+ Added `$?DISTRIBUTION` to give introspection and IO capabilities
to the current `Distribution` [32d480ab]
+ Added `addendum` to `X::Method::NotFound` so that we can give
better error messages for specific cases [04dd52f9][b6c8f5ed]
+ Added HLL interface for creating `Signature` and `Parameter`
objects [f329d6c6][3d3578b6][c4723cba][e116f3ad][3b9fd81d]
[e4635189][9cd42b1f][86557cfd][d6b1bd2a][9485dd2b][7be075eb]
[081b15ee][eb50d8ce]
+ Made `does X::Control` imply throwing to CONTROL [ca177e58]
+ Made `QuantHashes` parameterizable to limit the type of value that
can be put in them [0d9e9f34][4bb5c33c][e87b7afb][fe38bdba]
[bcc8054a][87b71c27][836c18ae][71a19c61]
+ Allowed `is Type` trait to handle parameterization like
`is Set[Int]` [2ed2f398]
+ Added a `dynamic-scope` lexical pragma [871cbefc][88c46676]
[9517c377]
+ Removals:
+ Removed `ComptUnit::Repository::Installation` and `Distribution`
compatibility shims for old versions of panda and zef [f430518f]
+ Renamed `Block/WhateverCode.pos` to `.POSITIONS` [ccf350e4]
+ Build system:
+ Added a `m-spectest5_precompile` to run tests in precompilation
mode [89fee86a][ec289a6c][bb36f04a]
+ Added create and remove JavaScript wrappers in
`ComptUnit::Repository::Installation` [83286e29]
+ Efficiency:
+ Made `postcircumfix:<[]>` for `CArray` more than 3x as fast
[f009cb4a]
+ Made `Rational.floor/ceiling/Int` about 1.1x as fast [cf0a6eaa]
+ Made `Rational.Num` about 1.05x as fast [236351ad]
+ Made stringification of `Rat`/`FatRat` 1.2x to 2.2x as fast
[5c0ac4db]
+ Made constraint check on `UInt` 1.15x as fast [922d41b3]
+ Made comparisons with `Rat`s 1.4x to 15x as fast [c11e7e6b]
[4fecb72a]
+ Made negation of `Rat`/`FatRat` about 3x as fast [d195e146]
+ Made coercion of `Int` to `Rat`/`FatRat` 4x as fast [92321beb]
+ Several other `Rat`/`FatRat` optimizations [29d7f709][6dad5caf]
[395d633d][e29554f5][91f67494]
+ Made `unival()` about 2x as fast [08ae9bfc][27332f04]
+ Made `Buf`/`Blob.gist` about 2.5x as fast [6d58e0b0]
+ Made `Map`/`Hash.sort` about 12x as fast [8ae4310e][edb53081]
+ Made `Str.trim-trailing` about 1.1x as fast [304feae9]
+ Several improvements to `Date`/`DateTime`/`Instant`/`Duration`
handling [467394b8][de933656][9f28a423][92956164][3488a65e]
+ Added return type signatures for more optimization opportunities
[ef565b2b][66f8ee0f][fb517b29][6af22bc3][30a534d1][2ce79561]
[7a68df2b][5cf65b57][01d2e11c][26c0e620][0368fe95][e0cd1d99]
[0797f93e][cbc3e72e][c45d2b82][bb84b66d][50f0bb2b][e58e3764]
+ Fixed a memory leak when a Callable has a definite return
signature but the actual returned value was Nil [7aa796a9]
+ More aggressive lexical lowering and block flattening [e73853a1]
[c28a0924][685f6cc3][b41e9f57][b0e7e375][5bbaabb9][42024539]
[2468dea7][cf9e1f59][053f929f][852a593d][871b6f54][401a3547]
[f741374c][64d08ad6][2a33bb1a][83c2070e][ab7f07db][91a4b3b1]
[6b44c581][eb3917c2][a4c994f5][31c8fda2][17bf7415][8aa73306]
[11884e03][87fcda81][6b078a05][19e4ace6][fcfd51be][541a4f16]
[d2df5b80][7fb098d7][c0f83788][623450d8][08d87f70][f71ca0de]
[c6053e6a]
+ Many small internal optimizations [6392634f][5540212c][7d3b7e11]
[2d704af4][1611795d][cf0a6eaa][236351ad][501231ee][a904d25a]
[87698317][93b5e2ef][f2ed3db7][485dec4d][64c88f91][839f28e7]
[b4d114a3][225d2f96][7dea20ab][df8c5780][50e1ec33][3eeb7276]
[5d707977][eb8561ba][f56e0756]
+ Internal:
+ Added `nqp::const(BINARY_)` constants [32c10e3c][420abcb9]
+ Added `Rakudo::Internals::ImplementationDetail` role to mark
internal functionality [d248d47e][588037f0]
+ Moved some constant return values in Num methods to their
signature [f02bceb7]
New in 2018.12:
+ Fixes:
+ Fixed infiniloops with some set operators [99d94db4][9f5cc8d1]
+ Fixed regression in handling of `"1"..9` [d92b155c]
+ Fixed use of `Proxy` in a class attribute using
the `Attribute`.`get_value`/`set_value` interface [a5411e45]
+ Fixed semantics of `minpairs`/`maxpairs` (ignore undefined values) [7bf7a2c6]
+ Fixed error on `@a > 2` if `@a` is a native array
+ Fixed error reporting on initializing shaped array with
improperly shaped data [fd216fec]
+ Negative indexes on native arrays are now checked properly [dd2af90c]
+ Fixed use of uninitialized value in `IO::Notification` [83d0056b]
+ Enums can now have private methods mixed in [3c2cfb22]
+ Fixed resource content lookup for `Distribution::Path` [370310b3]
+ Fixed precompilation when cwd gets changed at run time [e2e5cc53]
+ Shared library versions are now ignored on OpenBSD [5603128e]
+ Many improvements to the JS backend [1865db0d][fdd249a3][194c84b9]
[1dd59f10][52c2af5d][8b13655c][2869a48b][cf5432ae][758caa89]
[e0b943d0][a759f9d7]
+ Various improvements to produced messages [869b9e58][abfb9a40]
[79824db5][55d08c8f][24c8e172]
+ Additions:
+ Added `Endian` enum and implemented new methods in `blob8`/`buf8`
for reading/writing native values [46d4c9fe][011c6f11][f66861dc]
[f0279313][b781f8cc][543219c9][77182713][06156a7c]
+ Added `Kernel.endian` [2a761ca7][af43b159]
+ Implemented `Blob.readint` / `Buf.writeint` [4f14d713][fecfb22d]
[5cc0e02d][79dd1c8e][ceaf7218][631940c7][38afa2d6][e7b61aff]
+ Added `.native-descriptor` for async sockets [a4db9139][2fd90b1e]
+ Added `.Real` method to native arrays [dd3f91a2]
+ Implemented `last` and `LAST` in `whenever` blocks [890d628a]
+ Efficiency:
+ Made `<$rx>` interpolation 1.05x as fast [62243cd9]
+ Made simple regex matches 1.05x as fast [01c56b48]
+ Other minor optimizations [93ea7ed1][a0cb89a7][adb85609][6c2f3c83]
+ Internal:
+ Introduced a more generally usable `X::ArrayShapeMismatch` error [dd030145]
+ Internal micro-optimizations [38bc682b][f18432ea]
New in 2018.11:
+ SPECIAL NOTES:
+ 🎆❇️🔥 Default language version is now `v6.d` 🔥❇️🎆 [46ef0ea0]
+ Deprecations:
+ Deprecated `.path`/`.args` in `Proc::Async`, use `.command`
instead [45bbc946]
+ Fixes:
+ Fixed `$*PERL.version` to always report the right version [c9ecfb7a]
+ Consistified `:U.pairup` with `:D.pairup` to return a Seq [d73272e4]
+ Provided a stable `.WHICH` for `Map` [4e0a1c24][052067fd]
+ Made sure `DEPRECATED` reports location correctly when
using `:up` [8561d0ae]
+ Fixed literal `\` in `tr///` [85107ec0]
+ Fixed tap add/remove race in `Supplier` and `Supplier::Preserving`
[7ee1f3c5][68d79e70]
+ `QuantHash`es now properly report `.of` and `.keyof` [8b93ec9f]
+ Added type constraints to port numbers in `IO::Socket::Async` [547f28ba]
+ Fixed re-initialization on some types of arrays [f1fa5adf]
[7262b4e8][49f07abe]
+ Gave 6.d correct `is rw` Proxy semantics [7d37f9aa]
+ Fixed `Match.^roles` [becbdeb9]
+ Fixed missing path volume after `..` is resolved [8854bbd3]
+ The `.values` method can now be used to change values in
object hashes [a728bb2d]
+ Fixed shaped dynamic variables like `my %*a{Int}` [bcdf87a6]
+ Made `my @a is Blob / Buf = ...` work [762c708f]
+ Object hashes and `QuantHash`es can now be used with
metaops [Hyper refactor]
+ Many improvements to the JS backend [32b7c089][f35dd301][9457f7e5]
[ea69c0a0][0e4969fe][9df074ba][78389aa2][1ef62aca][f460ad1a][cbbe16ed]
+ Improved error message when using placeholders with methods [deae5bcd]
[0896c301][48093d0d][0bda7dc1][90103f6d][68b44e33][8549c4c1]
+ Various improvements to produced messages [15c16e35][e6758492]
+ Additions:
+ Implemented `X::Language::TooLate` [3365094f]
+ `$*COLLATION.set` is no longer experimental [20c41ca5]
+ Added dynamic variable `$*FOLDING` [cec1f511]
+ Removals:
+ Removed unspecced `.allowed` attribute in `Pod::Block::Code` [5aba3e96]
+ Set operators `(<+)`, `≼`, `(>+)`, `≽` now die when used [951303f9]
[7a1a1868][81474bf9][5598f37d]
+ `Associative >>op<< Iterable` now dies, as the results are indeterminate
due to random hash key order [Hyper refactor]
+ Build system:
+ Fixed `t/*/*.t` rule in generated Makefile [d2c7e327]
+ Made running timing based tests optional [72b896c8]
+ Efficiency:
+ Made `Int eqv Int` 3x and `int eqv int` 5x as fast [fb9a0454][94dd0a41]
+ Made `ObjAt` `eqv` `ObjAt` also faster [5120d3d2]
+ Made `Hash`/`Map` slices about 5x as fast [6fe27894][b83179f0]
[c4da4c7e][9a2c4b44]
+ Optimized various operations on `Date` and `DateTime` making
them up to 3x as fast [11cb4fac][b6292fe9][08fac045][98d07cf6]
[b463746d][bf3eb8ec][a11d599f]
+ Made metaops use the fast path for `&[+=]`-like ops [e7ce194a]
+ Hyper operator refactor makes many things like
`%h >>+>> 1` 1.3x to 8x as fast [bfe2ad63][130cc817][0bc72e05]
[75c9456a][ec2848c4][f06e8582][73eb297f][194daab7][a575effe]
[c50cf82a][1a2b39dc][307a98bd][843118ea][6208c266][9221c08d]
[c03e71d5][78f64203][63ae9dcc][fa5215b6][d5a751d9][674a0837]
[8fa72681][80edefcf][cf5c8a09][534d8f65][7fad12b0][800d8fbb]
[c3f03e67][1ed2b098][21434dda][234e298b][e8285c01][32ab0d30]
[90ac0940][f7007ac0][dc67ee75][cae9847e][481dbf92][c4445649]
[19f0c842][86ce4f4e][50f2207b][2e5be5b8][1b7253df][64a47d87]
[005261a4][10693d16]
+ Internal:
+ Changed CORE.d setting compilation to propagate indicator flags [4a6d9108]
+ Made sure we don't add object to serialization context more
than once [3995e423]
+ New QAST to mbc compiler [edc4c054][6aafe18d][f8be2fa0][656a8045][bb43acdb]
+ Added `Hash.STORE(\keys,\values)` [faa19ab9]
+ Introduced `R:I.AssociativeIterableKeys` [6fe27894]
+ Various internal optimizations [5f1a81e0][1766435a][8e858c8d][00eb7b85]
[0fa6988c][bf3575cc][18ded174]
New in 2018.10:
+ SPECIAL NOTES:
+ This is the first Rakudo release that comes with an additional
JS backend. See `6pad` project for running Perl 6 code directly
in your browser.
+ Deprecations:
+ Deprecated `gethostname()` in favor of `$*KERNEL.hostname` [f7fa5185]
+ Fixes:
+ Fixed/improved divide-by-zero errors in
`Rational.floor`/`.ceiling`/`.Str` [a639fa9c][6d70346c]
+ Fixed semantics of `[Nil]` [88e6de22]
+ Fixed issue with custom `bless` method [64137bd2]
+ Made nativecall's `postcircumfix:<[ ]>` return containers [be2d4cb4]
+ Fixed hash descriptor when doing `Hash[Int].new` [9acbf000][ea710414]
+ `Nil` is now allowed in initialization and assignment of hashes
[f61ba41a][605bcb39][7e86d4e3]
+ Fixed ContainerDescriptor for arrays with a dimension of three [a2e78ec8]
+ Fixed indexing of shaped arrays with a dimension higher than 3 [0307c366]
+ `.in-timezone`s value is now coerced to Int [c8438e6a]
+ Stub methods from roles are now verified [fd5d5bdf]
+ Fixed double-closing of handles in `IO::Handle.lines` when `:close` and
`$limit` are used [6edb142f]
+ Fixed closing of handles in `IO::Handle.lines` when `$limit`
is used [c1c75740]
+ Consistified Rat.base to fail instead of throw [a804ab57]
+ Fixed enforcing of return constraints on multi method stubs [abba67b2]
+ Various improvements to produced messages [cc2fcc9a][560e94ef]
[bf10f4c5][243a2f01][7d02b949][9894eda5][0243275d]
+ Additions:
+ [6.d] Constructs `$()`/`@()`/`%()` no longer have any `$/`-related
magic [bb88a032]
+ [6.d] DefiniteHOWs' (type smileys) default default is now the base
type [38b198c9]
+ Zero-Denominator Rationals are now normalized on creation [671c4115]
[75ec2248]
+ Made `my @a is List = 1,2,3,4` work [2bdf2b35]
+ Using `is Type` on `@` and `%` attributes is now allowed [b537ce2e]
+ Added a BOM on `open` for utf16 filehandles [959b89cf][479348f3]
+ Added initial support for Unicode 11.0 [5c272ee4]
+ Pluggable `MAIN` interface refactored, documented and tested
[f234b9af][35f3d83d][7c9b2955][33c24153][8c3a4131][fbfccfa2]][341190e2][24413b5f[2c43d2bf]
+ Usage message now limits itself to partially matching candidates
[0d1be77e]
+ Added additional dashed variants for utf16le and utf16be [4307996a]
+ Added `Parameter.coerce_type` method [0243275d]
+ Added `Code.cando` method to allow for `.cando` on all `Callable`s
[45eeab78][69533b50]
+ Removals:
+ Removed --encoding support [bea08ec6][31b19d09]
+ Efficiency:
+ Made Hash.push/append between 1.2x and 1.4x as fast [12cfde2a]
+ Made `"".ord` orders of magnitude faster [b22edce4]
+ Made `==` with Rationals up to 1.55x as fast [c5a2eb81]
+ Made Rational `===` Rational 2.47x as fast [97e8413b]
+ Made many cases of `for (range-like things)` up to 150x as fast
[2dd02751][645eeb52][dfd6450d][49baea70][89787028][2af789d7]
+ Made `[42]` not allocate anything anymore [8c4546bb]
+ Made `[@a]` and `[1,2,3]` about 1.4x as fast [e430813f]
+ Made `Array.List` coercion 1.5x as fast [3d405e89]
+ Made `.isa` about 2x as fast [4e8740c8]
+ Made `infix:<%%>` 10.42x as fast on natives [3d161a56]
+ Other minor optimizations [464a86b1][ab83b9d8][8cc3d5d7][b107cda5]
+ Internal:
+ Made `make` an only [369068ae]
+ Added skip-one method to appropriate `PredictiveIterator`s [e54885e5]
+ More things are now initialized at setting compile time
[06dfbf02][688cbac1][92735770]
+ Simplified initialization of `CompUnit::RepositoryRegistry`
[0425d927][8e1cd01a]
+ Introduced `IterationBuffer.List` [8c10da6a]
+ Use `nqp::create` for IterationBuffer instead of .new [84311b77]
+ Made sure `.STORE` only works on instances of mixy/baggy types [9daac683]
+ Added `$*INSIDE-EVAL` to mark that we're inside an `EVAL` [73b7c603]
New in 2018.09:
+ Fixes:
+ Made native arrays throw when storing a lazy Seq [fc8c7f84][bb963a25]
+ Fixed smartmatching of Seqs against Iterables [d3cac14e]
+ Made it possible to emit Mu [3f10e2d1][db3768e3]
+ Fixed setting of `$/` when matching NDF [cf1df1d7]
+ Fixed prefix calls with `.:< ... >` on integer literals [ec366c30]
[1835f280]
+ `.Array` on shaped arrays now returns a proper `Array` instead of
dying [efbd58c8]
+ Fixed `.keys` on one-dimensional native shaped arrays [5a9105ae]
+ Made `Parameter.twigil` also work on dynamic Parameters [39f2d68a]
+ Made sure the decoder is detached when closing handles [b07874e0]
+ Made sure `X` handles empty lists on RHS [6c93fde8]
+ Various improvements to produced messages [d419a313][c8db35e3]
+ Additions:
+ Added a `PredictiveIterator` role for `Iterator`s that can
determine how many values can still be generated, without
actually generating them [3ffacb9f][5cbbcc6e][842d4b32]
[78ae9028][000ac81e][c2c9df1c][cdf65305][ad64c757][eefbe6e1]
[da663afd][e717e21b][ca5825b4]
+ Added `use isms <C++>` and make `use isms` assume all available
"isms" (now 'Perl5' and 'C++') [57f89278][c6c2b6c4][528def48]
+ Partially implemented Pod `#` alias for `%config :numbered` [b4bf1660]
+ Added utf16 decodestream and file handle write support [8fcebb86]
[e8a7564d][0bf909bb][d275ea09]
+ Efficiency:
+ Made `Str.words` about 3x as fast [b8f37bfc]
+ Made `Str.lines` about 2x as fast [3dd09be3]
+ Made `IO::Handle.lines` about 1.2x as fast [874ec002][d198c1b7]
+ Made `IO::Path.lines` about 1.1x as fast [1905838c]
+ Made `Str.chop(N)` about 5x as fast [07089e89]
+ Made `Str.(r)index(needle,pos)` about 1.2x as fast [5d1d792a]
+ Improved `.elems` and `.Bool` on `Seq` by adding
`count-only`/`bool-only` methods [89055755][86468e1e][070780e0]
[64ddacab][9738dfbf][d1e80dfe][9ff17367][b1c645ed][bd832061]
[708ff624][5f3c2bfc][2a011a0e][faed3a9c][e73e3ecc][78bebc7a]
[d970c2b3][f5ebad98]
+ Internal:
+ Moved some iterators from Range to `R::Iterator` [fcd45ff8]
+ Streamlined quoted words handling [92951168][ae739adf]
+ Fixed a bug in the optimizer where optimizations were
improperly combining [e436f4e5]
+ Simplified `Map.kv` iterator [6977973d]
+ Replaced use of `p6bool` by `hllbool` and `hllboolfor` [672196cd]
[20feda70][170ffd40][7e69c640][3272207a][f1f6825b]
+ Removed obsolete p6settypes extop [de4e8225]
+ Standardized use of proto's on `.STORE` methods [ed9b48de]
+ Removed EmptySeq [a4db33e7]
New in 2018.08:
+ SPECIAL NOTES:
+ Changed filenames and permissions of many scripts in the repo
(e.g. install-dist.pl is now install-dist.p6) [07b4100c][9d8b6600]
[c5c4ea38][59a6f7d2][248ee79c][906bec8c][683ae67b]
+ Deprecations:
+ Deprecated RAKUDO_EXCEPTIONS_HANDLER [5e1df41b][d2116efd]
+ [6.d] Deprecated `undefine` [72bac670]
+ Fixes:
+ Fixed .assuming on subs with slurpies [93a8ec66]
+ Fixed auto-printing of low-level (non-`Mu`) objects in REPL [9ea427a3]
+ Made `Map.list` return a List instead of a Seq [60447c62]
+ Made internal safely_stringify routine safer [0e2a7d93]
+ Made .perl of `(|)` signature a bit more idiomatic [24467ed6]
+ Fixed coping with failures to open a directory in internal
`DIR-RECURSE` sub [e9351cba]
+ Fixed preservation of newlines in pod blocks [c6433838]
+ Fixed big int values in `BagHash` [fd779109]
+ Fixed several crashes and bugs involving meta assign operator [b9b0838d]
+ Fixed roundtripability of `QuantHash`es [84f60ada][ddf496c7]
+ Fixed `.comb` on allomorphs with leading 0's [f8d6a3f4][72ccd432]
+ Fixed crash when doing EVAL :lang<Perl5> from multiple threads [66683080]
+ Fixed potential race condition in EVAL [80bbfbb3]
+ Fixed `Test`'s `diag` to no longer die on `Junction`s [5ec2c96e]
+ Fixed Cool consistency in arguments of &round [e547811a]
+ Fixed &prompt to convert numeric data to allomorphs [38d7f2a0]
[0275ea29][07b032d0]
+ Many fixes and improvements to the contributors.p6 script
[7a87b7f5][8fee8d48][c5cfbc64][f6c8159d][1197c3f6][ade83c86]
+ Made `Routine.perl` more verbose / precise [d6c161ba]
+ Added some missing `is rw` [6caf86be][832ccd81]
+ Fixed problem in concatenation of 2 `Junction`s [4ef8433a]
+ Fixed failure to set up encoder/decoder in IO::Handle via
`.encoding` call in certain cases/encodings [86846ac5]
+ Made it impossible to assign to a Map [fffe89c5]
+ Fixed `Map.WHICH` to reflect subclasses correctly [199d276b]
+ Gave PseudoStash its own non-value based .WHICH [bb5db6a8]
+ Fixed `QuantHash`.hash/Hash return values [76298204]
+ Made `Proc.command` return an immutable List instead of Array [925c1134]
+ Fixed `loop` to always return Nil [aff96bae]
+ Made an uncomposed class type-check against roles that have been added
[38d046fa]
+ Fixed IO::Handle.encoding to check if$!decoder was set up [edf81bfe]
+ Fixed `is required($reason)` [7c349b7e]
+ Fixed `Range.roll(*)`/`roll(N)`/`pick(N)` with big ints [b30800c8]
+ Removed `<?before>` token in `term:sym<multi_declarator>` [51e41da8]
+ [6.d] Reserved `:sym` colonpair on names of routines [a68784a6]
+ Fixed a ThreadPoolScheduler memory leak whereby certain usage
patterns caused it to build up an ever-deeper call stack, due
to continuation mis-use [bf514c15]
+ Fixed misscoping of blocks in whatever curries [85495890]
+ Made sure that onlystar Routines cannot be optimized away when
wrapped [434ede49][1188f801]
+ Made it possible to use `Array::` as a top level namespace
in modules [a71e370b]
+ Fixed Distribution::Resource.^mro to not error [bb46381a]
+ [6.d] Changed `$*ARGFILES` to be based on `$*IN` inside sub MAIN
[84d45f07]
+ [6.d] Made `num` variables default to 0e0 [f045042d]
+ Made Rationals fully-immutable [5c429e4e]
+ Fixed problem in QuantHash.ACCEPTS [712d0f0f]
+ Slightly changed semantics of (+), (-), (&), (.), (^), (|) on QuantHashes
[3a6c1197][b826a07a][42595c27][f1693f26][64ab7179][8cedbbd1]
+ Fixed wrong math with largish Ints [fec1bd74][8e2c70fa][342c5a9c]
+ Fixed crash with attr + submethod TWEAK [d09756ae]
+ Removed sig from Routine.perl if it is empty [546d08c1]
+ Gave Routine its own .gist [6ad50d79]
+ Made sure `my ($a,$b)` does not have any runtime effect [90ef3061]
+ Prevented REPL from writing to filehandle when opening a file [07d00db1]
+ Fixed a couple of thinkos in Map.STORE [6587bf75]
+ Fixed Unicode Regional Indicators [80a7cff6]
+ Normalized the path portion of repo specs [aae0827f]
+ Gave Blob.subbuf the same feature set as Str.substr [26b49169]
+ Added support for Buf.subbuf(x,Any) [22f779a8]
+ Gave native arrays their own ACCEPTS [9726e644][6a481323]
+ Gave Buf/Blob their own ACCEPTS [9531455d]
+ Fixed occasional crashes in deprecation location handling code [0979b775]
+ Various improvements to produced messages [e2e42181][e2bbe3f0]
[35fec8e0][1956df25][21eb168c][7a7e5e96][e9e8cd55][2e90c660][03574546]
[4494a249][d60be5e4][9a45b2b8][2c7692fc][08b449e1][b5e92a55][ef61ce32]
+ Additions:
+ Added `X::ParametricConstant` exception [b6cd6122]
+ Added enforcement of type constraints on constants [1dea3034]
+ Improved auto-coercion of values to `@`- and `%`-sigilled constants
(the `%`- one requires use of `v6.d.PREVIEW` pragma) [1dea3034]
+ Added a warning on definition of anon sub in `sink` context
[d6c05395][08a54212]
+ Exposed host and port of IO::Async::Socket.listen via the Tap
[cb2ea932][2d16e12c]
+ Added ability to mixin roles on attrs, aka `has %.a does Foo` [3158ae7e]
+ Added Callable indexing candidate for CArray [541922a0]
[68ebe71e][2a803a39]
+ Added QuantHash.Setty|Baggy|Mixy coercer methods [3d9ea6eb][76e5f9c8]
+ Added proper handling of pod =defn block [6e8ca327]
+ Removals:
+ Use of syntax for parameterized constants now throws (such
constrains were never enforced) [1dea3034]
+ Removed unspecced/used pre-6.c jvm modules [e6c5e859]
+ Removed unused Universal role [2670236f]
+ Renamed `IO::Handle.*-internal` methods to their final names [03d79975]
+ Removed previously deprecated `$*INITTIME` dynamic variable [a37c6aa4]
+ Build system:
+ Bumped JVM memory limit to survive setting build [80dca6b7][8feb13cd]
+ Added passing of --execname to nqp so that nqp::execname() works
[359ac12d]
+ Efficiency:
+ Made `.first()` and `:first(:end)` without other parameters
about 2x as fast [e6e9daf1]
+ Made nested meta assign operators 3.9x as fast [b9b0838d]
+ Made `.?` 1.5x as fast by using a spesh plugin [708c1326][a167e6cc]
+ Marked `set()`, `bag()` and `mix()` as `is pure` [c37c3b59]
+ Made `Int != Int` about 4x as fast [b236faec]
+ Made native `int` array `.sum` between 2.2x and 36x as fast [88e913b6]
+ Made initialization of native `int` array from a `Range`
about 1.7x as fast [5682ee1f]
+ Made `Map` initialization logic 1.5x-4x as fast [ee800ada]
[8f090821][6850a64f][ae6058ce][9f524d0a]
+ Made `Map.WHICH` about 8x as fast [ac2fa03b]
+ Made the `for ^100` loop optimization about 1.02x as fast [f43f118a]
[7043559b][d69fd2f3][9b07e7bf]
+ Made Rational reduction 1.43x as fast [3d10a7f1]
+ Made argless Rational.round 5.7x as fast [097826ef]
+ Made creation of Rationals 1.19x as fast [db66a138]
+ Made `infix:<**>(Rational, Int)` more than 10x as fast
[d1729da2][f9963bbf]
+ Made `my @a = $string.comb` about 1.25x as fast [df5d82e8]
+ Made subbuf up to 8.5x as fast [4e56ce95]
+ Made Buf.subbuf up to 2.5x as fast [cd43c4f1][a50c0492]
+ Made @a[1,3] with literal indices 5.6x as fast [67a528f0]
[c1044bce][1978a2fc][a3a87125]
+ Made method LANG about 3.2x as fast [a6edf511]
+ Made string interpolation up to 2x as fast [3ae97e5f]
+ Simplified a lot of internal code [6e661e9e][0f1b36a7][bc2ca535]
[36d37cbc][81a5e4ba][9e71c22d][4da2f607][0601c43c][4eaff452]
[12bd328b][f0b705cd][9327f95b][934c3f9d][eee77141][1070fa0c]
[36841543][81bcc540][fc865a9a][7f1e41dd]
+ Other minor optimizations [8f807fc4][ecd899c9][c6033401]
[45df171a][327cae7c]
+ Many low level and other improvements [bd0a1f8b][aedf41ae]
[4f0b585c][6d271667][d3c5381b][8c0d9de8][3f832108][5e5c7870]
[c4076b70][bfe69474][397263e3][a7e3dce3][ea9cf08f][bdb9193a]
[593611ec][9ab3ad27][04b86ae0][1e825793][bfd9ee4e][3b40b1c7]
[40d19c75][a3c12486][a2208b0d][92026f54][35528c6c][52f1b89d]
[e9e89f88][ca2360a4][ebc6b124][27a7e9bb][4f4fb613][5b985f93]
[a30ae153][163e7759][beae9686][d1c755af][bff1bb83][7885f357]
[523ffae8][8d652761][59faed1d][5a6af277][0baeec02][d0aab741]
[05d7c39b][1b3dd35e][fa073679][ae25c4b0][8a76c00c][abfa1b15]
[980f692c][4766536b][8607f682][656b763d][0b1e6d54][99f7f4cc]
[1f65bf24][37c7e6e5][90f678f3][fa73bb48][fe5c8d49][db96cab3]
[f8be2a2d][bf9ab42e][a41c37c8][fd6164a1][9a5c538f][c60a347f]
[5559f4c9][ec7de841][8d8c755b][0b3fc077][574212ab][2b2f568a]
[66aa6892][06073c5b][34468f11]
\
More specifically:
+ Refactored Scalar and numerous container operations, resulting
in Scalar being one attribute smaller and paving the way for
a range of new optimizations
+ As part of the Scalar changes, also extensively refactored
auto-vivification to be cheaper and more optimizable
+ Implemented specializer plugin for type-check elimination for
assignments
+ Refactored the way return value handling is done, to generate a
shorter code sequence
+ Improved the code generated for signature binding so as not to
repeatedly decontainerize passed values, but rather to only do
this once
+ Avoided a number of exceptions that could be thrown and caught in
the optimizer, for a small performance win
+ Avoided a number of situations where parts of the compiler were
repossessed for serialization purposes, resulting in smaller
precompilation output
+ Tuned Map and Hash for better lookup and assignment
performance, as well as more compact code in numerous other
operations; this made it possible for single-element hash
access to be fully inlined
+ Tuned Array.AT-POS to enable it to be fully inlined
+ Tuned Array.ASSIGN-POS to do less work
+ Improved `p6bindattrinvres` code-gen quality, which is a slight
improvement for the many places in CORE.setting that use it
+ Made sure references to the Scalar type-objects compile into a
constant, not a lexical lookup
+ Internal:
+ Implemented `Perl6::World.lang-ver-before` for easier language
version check [4dcf5929]
+ Removed `Set`, `Bag`, `Mix` `.clone` special casing [7865bfa6]
+ Updated makeUNIPROP.pl6 with Unicode 10 property names [2ff46764]
+ Removed propname → propname mapping from Cool.pm6 [a9e844a8]
+ Made `infix:<!=>` for `Ints` consistent with other infix
operators [46e7640f]
+ Simplified `Hash` → `Map` coercion [c567af73]
+ `PseudoStash` "pseudoers" hash is now a native hash [8a8ce95e]
+ Various `Range` internal changes [6ad096c8][806752fb]
+ Tightened up some `trait_mod:<is>` signatures [f6209d73]
+ Renamed nqp::getstrfromname to nqp::strfromname [4522132d]
+ Changed install-dist.p6 to use and prefer full namespace for
builder identifier [0249afc2]
+ Turned p6reprname into a desugar [07cfbeb2]
New in 2018.06:
+ Fixes:
+ Fixed numeric values in Signal enum [aa622a95][852c1bd3][f2b50378]
[774ec5a0][189c5a8a][b19cc4bd][c661c03c][5603771f][bfcfa5da]
[7e5a862e][cd8d0445]
+ Fixed long class names being cut off in X::TypeCheck message [a79de429]
+ Many improvements to POD parsing [75430ac9][cb66dfcc][6f1b1cb6]
[e1e7e4c6][cc28ce37][e776ded7][54aa17c6]
+ Fixed code execution in elided duplicate argument pair values
[fc57f9f0][73297600]
+ Fixed `use isms <Perl5>` for `rand` [d1d31fd5]
+ Fixed miscompilation of chain ops [c10b1eec]
+ Fixed home path when setting up repositories [91b211ac][d06e70c3]
+ [JVM] Implemented canStore in RakudoContainerSpec [704b893c]
+ Additions:
+ Made `is DEPRECATED` work on attributes with auto-generated
accessors [7e3aa2f2]
+ Added `:api<something>` in preparation for full zef / ecosystem
support [affc218f]
+ Added .perl method to Distributions [18f9de61]
+ Removals:
+ Removed backwards compatibility with installers using the
old Distribution class [2acbe7fc]
+ Moved pack/unpack support to lib/experimental.pm6 [9472fdfd][edc6ac6b]
+ Renamed `use p5isms` to more general `use isms <Perl5>` [4109ce36]
[c80ea2f2][56dbd735][148d7c56][95aa77c9]
+ Efficiency:
+ Streamlined creation of HyperWorkBatchIterator [20bf96f9]
+ Made .minpairs/.maxpairs about 25% faster [788cda94]
+ Privatized a lot of methods for (now) better performance
[c940a0ed][ec5e51c8][7284a30f][c49bbc93][0ac5c4ff][09a9bbc0]
[caafcb38][0c265d49][48864774][0e835805][5621b262]
+ Added spesh plugin support [192083f6]
+ Made private method calls 6.6x faster (spesh plugin) [51ff83c7]
+ Made qualified method calls 12x faster (spesh plugin) [f6f43d58]
+ Internal:
+ Moved &DEPRECATED to Rakudo::Deprecations.DEPRECATED [472f6e48]
[89a4cf0d][afbbf8f8][2fa08d5e][874ead51]
+ Turned Hash.BIND-KEY into multis [1c1acbc2]
+ Various NQP ↔ Perl 6 fixes [e4ecf5e5][23af3491][7bc6e46f][cbb5ee5f]
New in 2018.05:
+ SPECIAL NOTES:
+ Corresponding MoarVM release introduces hash randomization to
prevent DoS attacks. Among other things, this may affect user
tests that expect keys or values returned from a Hash object to
be in the same order every run.
+ Fixes:
+ Made .assuming available in WhateverCodes [6e8dc6f1]
+ Fixed truncation of seconds in DateTime.later/.earlier [656ff77b]
+ Fixed spurious unhandled Failures caused by require [666eb3ab]
+ Made IO::Handle.seek to always return True [24a90774]
+ Made CallFrame skip over thunk-like things [0d216bef]
+ Fixed unwanted warnings in X::NYI when $.feature is omitted [a7c03101]
+ Fixed WHICH of non-reduced Rats [8cd70d1e]
+ Fixed smartmatch exception explosion [97d5d83e]
+ Made code detection in subsets more robust [ede507b7][febcb917]
+ Made build of BOOTSTRAP.moarvm reproducible [39227d54][56c03572][6ae0526f]
+ Simplified Signature.perl/gist for unnamed invocants [71159bed][f14dc6bd]
+ Made it possible to call .perl on uninitialized native strings [b12fba38]
+ Made .gist on native / non-native arrays similar [4e88fa15]
+ Fixed overzealous X::Syntax::NoSelf throwage [9b915f09]
+ Fixed smartmatching an Iterable type object [385308d3]
+ Fixed unexpected POD table failures [2cda7a19]
+ Made pass() and flunk() more consistent [82b3a894]
+ Fixed distribution path format on windows [4cacbf66]
+ Various fixes for the JVM backend [7d2940ee][cc57d06a][be35160d]
+ Various improvements to produced messages [7b336519][0de80523]
[b4973115][22d08069]
+ Additions:
+ Added shapes support for HAS scoped attributes [4c3807c5][7847768c]
+ Added NativeCall CArray.allocate method [a02131d5]
+ Added "use p5isms" pragma to stop complaints about Perl 5 traps [8ae82a55]
[8ccda189][7bde26fc]
+ Removals:
+ Removed some 5to6 error messages [3f350912][4ac9915e]
[5ce24929][cf35764d][44538f50]
+ Build system:
+ Fixed Configure script to not assume gmake location [abd88a94]
+ Efficiency:
+ Made Int.lsb 2x faster [9e2dacd4]
+ Made Int.msb 2x faster [775a42ee]
+ Made Range slices on native arrays about 23x faster [67a31600]
[f038e12d][09cbe679][c69179cc]
+ Made .splice on native arrays up to 2x faster [ee1ba153]
[4ab2f2cd][da646aa2][e0ad668e]
+ Made Rat / FatRat stringification up to 200x faster [e0dca0cc]
+ Made creation of regexes up to 30% faster [32a78996]
+ Made @a.splice(offset) about 20% faster [8d12d5b4][a5d46b42][8bde96d2]
+ Made module loading 10ms faster by avoiding IO::relative [849ba56d]
+ Other minor optimizations [d53fe90a][aa18140e][776ff354]
[ac6e26e8][073a7f50][54e390f5]
+ Internal:
+ Introduced nqp::slice op [090432bb]
New in 2018.04.1:
+ Fixes:
+ Fixed hang in parsing of nums with huge exponents [4e38bc1f]
+ Fixed denormals and precision issues in num parser [cc93bc9a]
New in 2018.04:
+ Fixes:
+ Fixed bug mapping windows1252/windows1251 without a dash [c9c5f341]
+ Made sure .encode and .decode accept the same encoding aliases [5298b7aa]
+ Fixed `infix:<o>` identity function [87e43c4a]
+ Made builds reproducible [16daf02f]
+ Made build of NQP modules reproducible [2c882d96]
+ Fixed explosion in List.combinations(Range) [624b3f0c]
+ Consistified &combinations/&permutations with method forms [29dcde10]
+ Made .produce/.reduce nodal [08eb465f]
+ Fixed Channel iterator failing if Nil was sent [bdd8143e]
+ Fixed value drift & precision issues in Num creation [8422d7b4][17446fc1]
+ Made sure that values of `once` blocks are deconted [f97398cf][53c02d85]
+ Made Supply.interval a serial Supply [7572983a]
+ Fixed bug with iteration of negative empty character classes [20495f09]
+ Fixed crash in loop + FIRST + LAST when it's wanted [cfc6b109][879b3340]
+ Fixed error for .native-descriptor on closed handle [5d554ba3][c6c25159]
+ Fixed QAST::Block migration in `with` + loop-comprehended `for` [fc192212]
+ Fixed `infix:<->($n)` to not negate [edbbc442]
+ Fixed crash in double-sink `for ... { Package::foo }` [4402839a]
+ Fixed thinko in CURR conditional [9bcc8e52]
+ Fixed crash with unknown column in RAKUDO_REPORT_COLUMNS [c015f08d]
+ Fixed substr to handle non-int arguments properly [f0c85125]
+ Fixed hang in IO::Socket::INET.lines [6e37c7f0]
+ Made Setty.perl consistent with Baggy/Mixy.perl [c0212af9]
+ Fixed set difference for Bag (-) List [344a64e9]
+ Fixed @a[]:v and @a[*]:v to filter out deleted elements [08b951c8]
+ Fixed precision/value drift with Complex literals [43026662]
+ Fixed crash in NativeCall when calling into a C++ library [db8b218f]
+ Fixed dispatch with IO::Socket::INET.new: :!listen [ceeb3a00]
+ Fixed unwanted consumption of Seqs [9e6ae276]
+ Fixed proto .arity/.count for all core multi subs [4b5d36f3]
[6a65ed02][d17f7535][859178b0]
+ Various improvements to produced messages [db7361a3][299dc6fc]
[54137e8b][6c2f2445][5fee5891][91fe6b63][6cdee60d][4b2512a2]
+ Additions:
+ Added support for "api" adverb when loading modules [32c5c83c]
+ Added strict, replacement options for IO::Handle, Str.encode
[6458811a][2760753d][37fc2883]
+ Added ShiftJIS decode/encode support [646f9211][f4863601]
+ Added a way to get child process ID via Proc::Async [1321917d]
+ Added Proc.pid [05816139][5ad102ea]
+ Added fails-like routine in Test.pm6 [4abfd4ca]
+ Added Array.grab [a0e5e880][a393ff69]
+ Added support for "const" marked return values in C++
functions (NativeCall) [9b3a0b6f]
+ Added gist methods to AbsolutePath, NQP and Perl6 repositories [8f3237c2]
+ Build system:
+ Added missing tools/build/check-nqp-version.pl [26518055]
+ Fixed build when using a different nqp than the one in $PATH [eb71edcc]
+ Fixed the Makefile on Solaris [affeaa79]
+ Fixed build system not noticing change to BOOTSTRAP.nqp [2ae3f484]
+ Efficiency:
+ Made HyperIteratorBatcher.produce-batch 3x faster [684a50d1]
+ Made .hyper.grep batch producer at least 23% faster [3e9b705e][1c4eebe5]
+ Made Iterator.push-exactly about 8% faster [9d784dd0]
+ Made `grep :kv .pull-one` 1.5x faster [c40f0254]
+ Made `grep :p .pull-one` 1.5x faster [5db9ebc4]
+ Made `squish :as .pull-one` 1.5x faster [d2c88bcc]
+ Made `squish() .pull-one` 1.6x faster [c41b79c0]
+ Made `grep :k .push-all` 1.5x faster [e3aef509]
+ Made Blob/Buf comparisons up to 30% faster [9ffb06b2]
+ Made Capture.FLATTENABLE_(LIST|HASH) 30% faster [768cf9f2]
+ Made List cmp 20x faster [0d7b42fb][126d8a84][082f8152]
+ Made ORDER() about 7% faster (affects `infix:<cmp>`) [32b3ddc7]
+ Made List.roll($n) 6% faster [c71ff664][7327a33a]
+ Micro-optimized the Awaitable role (up to 10% faster) [266f4a22]
+ Made List.pick about 30% faster [de68bfc1]
+ Made List.roll about 20x faster [c53fde3e]
+ Made Map/TypedHash.roll about 30% faster [6a6bb23d][5981f81b]
+ Made unwrapped `dispatch:<var>` curriable (`*.&uc` 7.6x faster) [f174d4b4]
+ Made `%h<a>:delete` and `%h<a>:exists` about 1.5x faster [d3eefa21]
+ Made `@a[1]:delete` and `@a[1]:exists` about 1.5x faster [6ad6dcbb]
+ Implemented optimized Iterator methods for `42 xx ...` [5f256bae]
+ Made copying native arrays about 9% faster [5ec4a5ab]
+ Made CurriedRoleHOW.accept_type 1% faster [8c265f9b]
+ Made `my int @a = ^100` about 40% faster [e8ec81db]
+ Made int(8|16|32|64)/num(32|64) array initialization 9x faster [40815d16]
+ Made `my @a = ^100; my int @b = @a` about 9x as fast [b5318e6e]
+ Made native array iterator about 1% faster [a2d8c96b][bd238a7c]
+ Made native array.splice up to 47x faster [d1b3809a]
+ Made native array.STORE(Seq) about 2x faster [72473bd0]
+ Made native array.splice(offset,size,Seq) about 13x faster [a39d382e]
+ Made %h.head 2x faster [91421874]
+ Made Complex.Str 5%-10% faster [5ef05612]
+ ThreadPoolScheduler optimizations [4ef28a7b][8f4a5a53][d4254216]
[d0fbe744][c71fa17d][3468f690][637147af][17ca56b4][5bab5865]
[aaacc5a4][ae91db88][f8c44164][924310c5][b22421e7][ac5cf2bb]
+ Other minor optimizations
[dc921b60][caacb2e4][67f91572][739fd9c9][f4255d5a][6f42d19e]
[828cd4a8][232197da][8ce20ae1][75b6651b][18252b60][31b072c6]
[ec265706][153e892d][0344925f][81dbe4cb][348e6f45][6a66b359]
[c2eae41c][9f8231c6][72dfddfa][24ddff73][eefccc18][0756076b]
[a3da6ac5][8e2ee64e][29b7f464][111f67a4][7c510611][82b19b1f]
[74b75599][850765f7][1f98b1bb][617624f5][a53811cd][d9869e53]
[7b5ccaa6][518f2c31][d393b828][12a38f1f]
+ Internal:
+ Many improvements to .hyper and .race [7d978fb2][22849592]
[34b294d2][ae0cbc30][7af3b648][9532e9c3][d75f4cfc]
+ Moved proto method splice: Mu -> Any [88d61bd9]
+ ±Inf/NaN are now treated as any other Num [e348b8f2]
+ Made sure native array splice won't splice from itself [28629905]
New in 2018.03:
+ SPECIAL NOTES:
+ Str.comb(Regex) was fixed to return a Seq instead of a List,
making Str.comb always return a Seq. Code relying on the
specifics of the previous behavior might require some tweaks.
+ Fixes:
+ Fixed various sleep() issues [e3c4db73]
+ Fixed <0/0> to be False [748d1a57]
+ Improved Test.pm6's like/unlike [7c1a6cac]
+ Fixed failure to sink last statements of `for` loops [4c5b81fe]
+ Removed unneeded candidates in &say and ¬e [3a0d53ce]
+ Made Str.comb(Regex) return a Seq [1da07530]
+ Fixed &say and ¬e to not auto-thread [b62e0eb7][355b2eb5]
+ Differentiated precomp NC sub setup markers [b27c548f][ec5edcae]
+ Moved chrs() logic to List.chrs and made chrs() the gateway [1894eace]
+ Moved ords() logic to Str.ords [61176475]
+ Fixed bug on ops with subclasses of Range [440fceac]
+ Fixed wrong assumption of Junction execution order [207313be]
[89f33bbe][e9cff795]
+ Fixed cases of mis-scoped QAST::Block of regexes [fb882d49]
+ Fixed .grep(Regex) on Hyper/Race Seqs [5e462e12]
+ Fixed &dd to not mark Failures as handled [7773c3d5][65874b15]
+ Enabled native-int candidates in bitshift operators [29fdb75a][3d735975]
+ Made Int:D (elem) Range:D be independent of size of Range [de30c162]
+ Straightened up `$/` handling in Str.subst[-mutate] [874fcdda]
+ Fixed Metamodel shortname assignments [ce08683f]
+ Fixed Pair.clone [5031dab3]
+ Improved Pod::To::Text to indent tables [57af8b84][dffbd68a]
+ Fixed precomp files of NativeCall users having absolute paths [51c4d4d8]
+ Made sure `samewith`-using routines aren't inlined [e12e305a]
+ Made sure MERGESORT-* don't leak low-level types [511bec0a]
+ Fixed code generation bug affecting private methods calls in roles
where the target private method used a role parameter [21997b62]
+ Various improvements to produced messages [a4f9090e][235d3f1c]
[3b350739][5ae1bbe1][52176c3c]
+ Additions:
+ Implemented IO::CatHandle.handles [d5baa036][eb064922][639c6da0]
+ Made signal handlers cancellable [db010b84][a31579c7]
+ “datagram”-oriented API for UDP sockets [67f36e36][b406b320][dd2c9019]
+ Added support for replacement and strict setting in Buf.decode [0d796fb0]
+ Added support to Encoding::Decoder to use replacements [ea92f550]
+ Removals:
+ Removed no longer used DELETEKEY helper sub [6f2cbcf7]
+ Removed Range.clone-with-op [440fceac]
+ Efficiency:
+ Optimized Uni.list to reify 15x faster (on 10000-char str) [8b7385d8]
+ Made Str.perl 43x faster for some chars [ba6b84bd]
+ Optimized Str.perl by making uniprop(Int, Str) 2.7x faster [6ac56cc0]
+ Made Rational.Str 28% faster [008b9279]
+ Made internal RETURN-LIST sub faster for common case [3a4056bf]
+ Made Num.Bool 9x faster [2a42cdbb]
+ Nano-optimized supervisor thread sleep [4617976d][85ad0eba]
+ Added special cases for 2-tuple infix:<,> that are 10% faster [b6e5d7fc]
[48c46fa7][90079357][ddf00078][d5a148c0]
+ Made Channel.receive/receive-nil-on-close 2.5% faster [4054ca68]
+ Reduced the number of DYNAMIC calls when hypering [598832cc]
+ Made Channel.poll 2x fast [eff92f94]
+ Made HyperIteratorBatcher.produce-batch 3.6x faster [8026cef8]
+ Many HyperToIterator speedups [0194ef46][6232d29e][34889beb]
+ Internal:
+ Turned many subs into multis [16b57af5][55bc053c][182b7ea5][63775474]
[c2d0d3ac][cdb45fa5][4f473867][bf5e3357][5210d702][b704a175][4c67498f]
[7d72387b][838782b7][abfbd1ab][6d6a69fd][c1d2a5bc][4da2418a][62fc3118]
[d3f50dba][b9f40fea][dfef8283][9a0a7bdd][32b08035][51fccdfe][474c512c]
[4f04698f][423e7cc0][ae4204c5][8cba0846][1b94ff6f][5490bacd][e1b711ae]
[a23684f3][804c009a][f5b23a55][4513c279]
+ Marked many subs as “only” [1be26afb][25bedf88]
+ Marked set ops as “pure” on their proto only [af353894]
+ Made Unicode operators aliases of corresponding ASCII subs [254f477e]
[aadd3c12][bc52fefa][a2100ec7][2e7a0e59]
+ Added nqp::getppid [fed92e3b]
+ Many profiler improvements, it now supports multi-threaded programs
[fed92e3b][a5a6c778][dd2c9019]
+ Made substr() just a front for Str.substr [7835652d][b688a6f3][15ccfd33]
+ Made substr-rw() just a front for Str.substr-rw [038837f8]
+ Moved substr/substr-rw catcher methods from Any to Cool [aad79f8a]
+ Remote debug support on MoarVM [ffeff74e][e32bda21]
New in 2018.02.1:
+ Fixes:
+ Fixed Whatever curry QAST::Block migration in stmt mods [5270471c]
New in 2018.02:
+ Fixes:
+ Fixed `no worries` pragma [f5b4d89f]
+ Fixed IO::Socket::Async losing :$scheduler in .print-to [7c451514]
+ Fixed postconstraints in `my (...)` being ignored [3745eff1]
+ Fixed optimizer crashes in `map` with certain args [f3efe5e6]
+ Fixed IO::Handle.get on TTYs blocking after EOF [359efef7][af4dfe82]
+ Fixed crash with colonpaired variable declaration [a35cd4e6]
+ Fixed crashes in degenerate .tail(Callable) [ba675971]
+ Fixed crash in `temp`/`let` with parameterized hashes [0a32e51b]
+ Fixed Hash.clone and Array.clone losing descriptor [0d7c4fe8][45560ac9]
+ Fixed `let`/`temp` on hashes losing Nils [8c4c979e]
+ Fixed crash in Any.skip(Callable) [8efba3a8]
+ Fixed crashes with native types in conditionals [d1a48efc]
+ Fixed many issues with block migration in thunk gen [1ee89b54][31ab8683]
+ Fixed "No such method 'prefix'" when there's no HOME directory [b6a7d7f6]
+ Fixed buf8 punning happening at INIT time instead of BEGIN [c6cc673d]
+ Fixed type constraint in Str.split's Seq [8afd791c]
+ Fixed Iterator.Rotor when cycle contains Whatever or Inf [ba7b4571]
+ Fixed crash with ENTER nested inside LEAVE [58de239c]
+ Fixed wrong error in REPL with none Junctions [2c36ab2e]
+ Fixed semantics of :b quoter tweak [deffe54b]
+ Fixed error when throwing error during setting compilation [c820e4be]
+ Fixed crashes with compile time evaluation of Whatever curry [7c1f0b41]
+ Fixed crash in Proxy.perl [902f45f5]
+ Fixed encoding of ›˜œžŸ™š with windows-1252 (Latin) encoding [4507a565]
+ Fixed state vars in `do`-ed loops [299e8526]
+ Fixed whatever curry with regexes [d80fc376]
+ Fixed crashes with compile time evaluation of `where` thunks [95f23a56]
+ Fixed broken 2-arity sort of 2-el list [2e65de29]
+ Fixed postfix whatever curry with another curry inside [e8c6c259]
+ Fixed empty compiler version when the git repo has no tags [382024e6]
+ Fixed migration of in-regex blocks [c0c7756f]
+ Fixed missing decont in `cmp` [114e3735][25c5c488]
+ Fixed drift when reusing lazy iterables for indexing [f330d7fc]
+ Fixed crash in parameterized constraints on attrs with .= [562edfc5]
+ Fixed REPL adding empty lines to the history file [24fab707]
+ Fixed Parameter.usage-name to omit leading * and ! [3c73099c]
+ Fixed Any.tail(Callable) violating Iterator protocol [2cc7b631]
+ Fixed .perl of handled Failures [b2a21fa9]
+ Unified List.roll/pick invocant specification [311ef07f]
+ Fixed multi-threaded precompilation [ac87ea2a]
+ Fixed issues in constant type declarations [f559c6d8]
+ Fixed `if` with slurpies on its block [ef1d22f4][dfb6d951][59556c70]
[4b7113fa][00af9ce2]
+ Improved SprintfHandler [d419afe4][4ac67e73][684b99ea][13406517]
+ Fixed unwanted curries with HyperWhatever type object [57a1aa7a]
+ Made Backtrace.gist more helpful [555db42a]
+ Fixed ($ = 42) vs ($ = "42").subst-mutate [e7af9a6a]
+ Fixed Cool.subst-mutate to only mutate if there's a match [61015526]
+ Made Str.subst-mutate always return a List on :g [77794a28]
+ Made Str.match(:x) consistently return a non-Slip List [829ea8e3]
+ Fixed return of multi-match options of Str.subst-mutate [e0d39321]
+ Fixed .Numeric/.Real on :U numerics and .Real on :D allomorphs [1dc1f038]
+ Various fixes for the JVM backend [a2499c90][1f223190][f2188e45]
+ Various improvements to produced messages [8ffbc43b][7f07f68f][34b3356f]
[de2d8296][1c894e41][d419afe4]
+ Additions:
+ Added windows-1251 (Cyrillic) encoding to the list of possible encodings
[c73cb78f][4507a565]
+ Added support for .= to init sigilless vars [8ba3c86e]
+ Added compile time LiteralType error for native vars [e930e253]
[63a1d25a][30b82b98]
+ Efficiency:
+ Made `$ where Type1|Type2|Type…` typecheck ~8x faster [43b9c829][264a1a27]
+ Many compunit speedups [5bd33669][6fa1e78f][c268f55c][5be174bb]
[b188cc82][838beab9][a9a9e1c9][00cde175][ed9b287c]
+ Made certain conditionals with natives 2.1x faster [d1a48efc]
+ Improved dynamic optimization of nativecast [3ed2fbd5]
+ Reduced startup overhead of file I/O and module loading [db1e067e]
+ Made `dispatch:<var>` call up to 43x faster [ff31f0a3]
+ Shaved off 10ms when loading a native library [86e926c7]
+ Made compilation up to 6% faster (for 3000-line files) [f4732164]
+ Made Whatever currier up to 2.2x faster [752bb8b3]
+ Made list assignment with roll up to 20% faster [65d6fe48]
+ Moved `$*PERL` initialization to BEGIN time to save runtime [bdb4d34d]
+ Made Version.new 82x faster [02d2e2ca]
+ Added native `num` post-inc/dec to pre- optimization [4a5cc2c2][13e6ed8c]
[888328ef][971d17c4]
+ Made `.=` up to 63x faster [abea3242][01237782][2ba7634c]
New in 2018.01:
+ Fixes:
+ Fixed IO::CatHandle.read switching handles too soon [dc800d89]
+ Ensured &await can handle flattenable Iterables [1a4df4e1]
+ Made Array.gist limit output to 100 elements [08539c43]
+ Fixed .[count|bool]-only of combinations/permutations [5eed2b00]
[cda4a4d7][2c27eeaa][d4f53ed5][19604c2d]
+ Made sure subclasses of List create consistent .WHICH [18557da9]
+ Fixed Range.pick/roll in light of degenerate Ranges [5c228333][55cb8f3d]
+ Fixed Whatever.ACCEPTS with Mu:U [89d85baa]
+ Fixed signatures that had Int when Int:D was meant [3e044dc7]
+ Guarded subbuf against negative ranges [24f4609e]
+ Fixed some export issues [38897d19]
+ Fixed Slip wrapping of quoteword with one word [ad684de3]
+ Fixed ±Inf/NaN Num to Rat conversions [042cb741][c91bcc2a]
+ Fixed USAGE with subsets/where and variables with quotes [27fbd7ab]
+ Fixed .gist dumping too much output in some cases [de21da30][53a85080]
+ Fixed crash in `eqv` with conted Versions [72ee58e2]
+ Fixed issues with smiley-ed coercers [a177fa99][8dcf9dac][3947a4c1][354a3848]
+ Made sure Rat calculation does not use type objects [9910b393][9adc58c3]
+ Fixed handling of type objects in Date.new [1d034df8][dfaa2282][038b1ea7]
+ Fixed CURFS/CURI .perl output [9cf2f998]
+ Made sure hashes are not interpolated in regexes [f719a471]
+ Fixed explosions when hypering over Buf [7ba50d86]
+ Made &dd more resilient to low-level stuff [99923747][d0be53a1]
+ Fixed .head/.tail to take any Callable [b4007070]
+ Fixed .skip with WhateverCode [d034cb58]
+ Fixed operator chaining with negated operators [ba111cfe][14c2cdb3]
+ Disallowed binding into a List [eed54cae]
+ Fixed `--optimize` flag propagation in EVAL code [e509c1a9]
+ Fixed RatStr .succ/.pred explosion [631875fc]
+ Fixed silent failure when binding to map keys [6a3db334]
+ Fixed R::I::Rotor calling .pull-one too many times [4a82b4b6]
+ Fixed `need` with versions [7537f899][0cdd82a2][0a73f19a][4d5e097a]
+ Fixed the lookup of many core symbols [efdbfeca]
+ Made .range consistently a Str in OutOfRange exceptions [90246e65]
+ Fixed superfluous parsing of ∞ [626991e0]
+ Fixed cf, sc, STerm, Upper, space and White_Space properties [49dce163]
+ Fixed many POD issues [14c28cae]
+ Various fixes for the JVM backend [4945dc40][4909430c][333efa0b]
[00b7832a][70c57c3a][1e8c9762]
+ Various improvements to useless use warnings [d30e5b1e][c6b7012a]
[64803b0a][ef2dc1b8][99da4a5a][00188757][e9c9dc46]
+ Various improvements to other produced messages [a04c6164][548dcf46]
[6d65cf4f][51e0aa09][82dbada3][e543c890][0444a2c3][e5b4f37f][900c1b59]
[96a3582c][5571d7f7][34160bf0][01ffd0f9][6a6470f9][e91159c5][5f7fdfdd]
[f02606ce][cad66b72][79600d69][2dc93ac3][4ec5936c][ad60b947][732a25c3]
[f8953ee8][ddbf07e8][fa136be2]
+ Additions:
+ Added Str.uniparse as an alias to Str.parse-names [2a8287cf]
+ Added Cool candidate for .is-prime [f01c50f1][23701966][b2b39bad][893d09ff]
+ Added compile time error for misplaced whenever in v6.d.PREVIEW [7672e34c]
[0ec8e088]
+ Removals:
+ Removed deprecation fudge for native type instantiations [e0af68a0]
+ Removed :$CWD param in IO::Path.dir [b3e73b64]
+ Removed :$buffer param in IO::Handle.open [f415d61e]
+ Removed MONKEY BUSINESS env var [ac2e50c8]
+ Removed UInt64 (not to be confused with uint64) [cf154355]
+ Build system:
+ Fetch tags too to avoid potential missing tags [d93f8053]
+ Efficiency:
+ Made adding integers to Rats 22% faster [418fc068]
+ Made Blob.subbuf 1.8x faster [5f48c069]
+ Made `else`-less `if`/`with` blocks 3.4x faster in some cases [1815c368]
+ Made DateTime creation about 1.6x faster [36d71a39]
+ Made Date.new about 1.6x faster [b7170f83]
+ Made use of faster typechecks (7.5x faster) [4c9b84f8][8f71b0e0][10cd405f]
+ Made operator chains up to 2.4x faster [b77d8756]
+ Made `infix:<x>` with bools up to 2x faster [f99943d3]
+ Made `infix:<xx>` with bools up to 16x faster [ca4fcaca]
+ Made |(1,2,3) xx 42 about 3x faster [014f1712]
+ Slightly speeded up adding of `whenever`s [7230b765]
+ Slightly optimized Array.ASSIGN-POS [6e13bfa2][86d91f2d]
+ Made `$a ~= "b"` 70% faster [5dd9ed10]
+ Made constraint checks Num/Int/Str literals 1.1x-10x faster [65d4876d]
+ Micro-opted exit_handler [0415bb5f][b5b6e23b][421504bd][21bc5916]
+ Performatized MetaAssign with MetaReverse [858b659f]
+ Made .sum on 2-element Lists about 30% faster [0af3f4d1]
+ Optimized `supply emit <arg>` [81fe7b82]
+ Optimized Supply internals [32fbefab][9086f4c4][2548c2c5]
+ Improved first touch of Array/Hash variables [eeb3cc72]
+ Optimized more cases of private method calls [b6a236b9]
+ Tuned Lock::Async code stucture [f36a1f4e]
+ Special-cased one top-level whenever supply/react [e5f412d6][2192ddd1]
[2dbc2bcb][e072474e]
+ Made Promise construction slightly faster [2ac1ceaa]
+ Assorted internal improvements to CPU/memory use [00797d07][2130c097]
[7a3d9ce6][9c0db1cd][fbf432f9][4804003a][229b03fd][163f275b]
[83a619ec][64de571b][773d2b9e][0dc4f731][cdb53afa]
+ Internal:
+ Introduced ValueObjAt, the .WHICH for value types [202459ce][4790587f]
+ Introduced Proc!set-status [7a4743be]
New in 2017.12:
+ Fixes:
+ Various POD-related fixes [41514235][11d90cac][061c36d6][2cd266fe]
[8ea7a46f][2c951798]
+ Fixed resolve of IO::Path for Windows [eed733e2]
+ Fixed ∖ op to do Hash→Mix conversion through Sets [eacf9b27]
+ Fixed incorrect attribute name in X::AdHoc.new [3166400d]
+ Fixed Supply.zip() to call `done` when some supply is `done` [1d0dae86]
+ Fixed Supply.throttle() when the source supply becomes `done` [c8370f21]
+ Fixed silent failures on invalid `is export` values [1668b4f0]
+ Fixed many cases of enum creation [d9021cf1][754664ed][65301756]
+ Fixed crash when using allomorphs as enum values [fc52143b]
+ Fixed <:Digit> to match digits correctly [0339b0f8]
+ Fixed some Telemetry.EXISTS-KEY issues [f3b1289f][91798547]
+ Fixed gut spillage in pseudopackages [cd24b1c5][a82e0e7d][1c7d15d7]
+ Fixed introspection on Mixins to Code:U objects [e31a414b]
+ Fixed let/temp to be able to take Mu [75229976]
+ Fixed autovivification container issues with `no strict` [e5b49ce3]
+ Fixed shaped array indexing to accept non-Ints [00632edb]
+ Fixed List.new to not create containers [d80df073]
+ Fixed incorrect .count-only/.bool-only implementation [af9812fa][0e228fab]
+ Made sure each Seq.skip gets a new Seq [854c10c2]
+ Moved attribute settage inside the lock [8df8ce09]
+ Made print/say/put/note handle junctions correctly [07616eff]
[9de4a60e][8155c4b8][3405001d]
+ Fixed WhateverCode curries losing `use fatal` [31db3acc]
+ Various improvements to produced messages [d85585ea][9fd5042b]
[c9699ab2][1da698ab]
+ Additions:
+ Implemented TR/// [f6958624][3d2fa915][8b27166f]
+ Implemented .toggle [694f534a][78caeb6b][ca7d0483][e7c0a644]
+ Consistified &[but] and &[does] with non-roles [575d31e2]
+ Added While/Until iterators [2c1a2860]
+ Added proper Supply.Seq method [aa3c2c5b]
+ Efficiency:
+ Made multi-needle split setup cheaper [5929887c]
+ Streamlined INDIRECT_NAME_LOOKUP a bit [76158136]
+ Made &[-]/&[+] with Rationals 30%-50% faster [6c299bf9]
+ Made DIVIDE-NUMBERS 6%-15% faster [78aeaf46]
+ Streamlined Hash.AT-KEY [6601da5c]
+ Streamlined Array.Slip.AT-POS like Hash.AT-KEY [fe8312b7]
+ Streamlined Array.AT-POS for better inlinability [af29a227]
+ Streamlined List.AT-POS a bit [9a2f5325]
+ Made Array.ASSIGN-POS about 1.7x faster [c5afc97e]
+ Made R:It:ReifiedArray 15% to 30% faster [a974de9b]
+ Streamlined Array.iterator.push-until-lazy a bit [ae02bc29]
+ Internal:
+ Abstracted prefix:<temp|let> logic into R:I [47f23fc6][126d7b55][6fb5c8c8]
+ Implemented Sequence.Numeric [6061f0bc]
+ Various improvements for the JVM backend [0a24efc3][f40c3818]
[fbf7beca][928ada08][74a13ae1]
+ Added tests for previously resolved issues [20d67a3d][831dab14]
[1b0be0f6][062c27f3][1101fea1][fed56be2][47552282][ced4af66]
[d4ad6fa9][eaf609ed][04eb1da6]
New in 2017.11:
+ SPECIAL NOTES:
+ Main development branch changed from “nom” to “master” [f40babb8]
+ Fixes:
+ Fixed Lock.protect to no longer leak Proxies [be9e19ef]
+ Fixed R:I:JSON to handle recursive Exceptions [3cba6204]
+ Fixed .perl output of an empty Set/SetHash [af3624d4]
+ Made some attribute defaults throw NYI instead of silently ignoring
[9f54bc98][0973b307][6dab5aad]
+ Fixed quote lang cache regression [ad16c6fb]
+ Improved stability by always setting up `$*PID` [a1866b7b]
+ Implemented hypered nodality for all methodcall variations [3c4041ea]
+ Fixed combinations with * endpoints [bdc73563]
+ Made Range.sum sensible for -∞/∞ endpoints [5eeb72a9][21efe96f]
+ Made multi sub(:@c is copy) { } work [be1e2879]
+ Ensured CLOSE phasers have correct outer chain [96557571]
+ Fixed segfault on Bag.new.pick(1) [fe1f8632]
+ Improved handling of %b spacing sprintf [b2fbf893]
+ Made .head and .tail only take WhateverCode [5a29a0ce]
+ Moved signal() handling to the timer worker queue [1bc9936a]
+ Fixed default Encoding::alternative-names [2f0da94c]
+ Various improvements to warnings and error reporting [142c1d65][fff43fd7]
[c9360203][497e0582][ad7c97df][88d67516]
+ Additions:
+ Channel can now be closed with sub close() [91543fe3][ef84aafc]
+ my %h is (Set|SetHash|Bag|BagHash|Mix|MixHash) now DWIM [1949a2bc]
[6ac2b15c][aab2b983][b6a4d5b5]
+ Implemented metamethod shorthand syntax [5c96d554]
+ Kernel.cpu-cores returning the number of CPU cores available [61af87bc]
+ Kernel.cpu-usage exposed basic CPU usage information [c4d373c5]
+ Telemetry module providing an easy interface to system state reporting
[cbd4f212][273168d7][3e175c83][7f154fe2][3dfaa2ae][59a59be8][52440486]
[b30916f3][b30916f3][f7d21b5d][ae1f0fda][f72ad227][4b4429cc][58249a52]
[f51a3efc][8a0eb7fa][bc00894f][e95b02f1][ccbfaaa0][2f963b14][c1867ba1]
[8e4d3248][0a809698][824a5dc2][dcf3e28c][0bdda086][a2ae00ed][86d541f4]
[474feb09][5e7dfe52][3b4f0c6c][7144dc29][73e1faaa][cf1742dc][91e00e68]
[96751ee8][7e00908c][d21c31e1][0dc4a0eb][c2baf95e][e1a1b8d8][b380230d]
[fccc7515][1c2c7d84][2f12bea1][4ed91ed6][fea5612c][360eb228][9344d35d]
[d5fc6cbb][3e4ef2e0][4d21ad67][0f2f0cd3][22939bc8][77142fdb][ab03b54c]
[fc9e7241][948a3fa4][f8e1a5fa][17db03eb][14e2016c][2dcefa1c][345fbf5a]
[b80d486c][3e4ccce9][86e9f44a][f87d8ef8][5f4b61b1][e5912337][de961b81]
[d6f1077d][ba49b343][1aa83a78][06cbe9c2][246f4101][d6a3a7a1][88a9cb25]
[9381ffbc]
+ Efficiency:
+ Made .sum on native num arrays 11x faster [b849622e]
+ Made INITTIME a bit faster [e00f705d]
+ Made interpolation of variables into regexes a bit faster [6bca84fa]
[c93dc9e6][fa8bc549]
+ Made Buf ~ Blob about 7x faster, Blob ~ Blob 1.8x faster [8b47adad]
+ OS thread exhaustion is now handled more gracefully [fe799a98][57374490]
[14fbb5e7][6d8ed287]
+ Other more general ThreadPoolScheduler improvements [e513f19d][6ac53e42]
[2cd568f9][6bf58921][6de66df7][6aa150db][09e038cd][a7972a0c][260e4a3a]
[a9b8854a][09492179][6959349e][697e4ecf][b386963a][5d0ccf73][bfcc43ec]
[87e87202][92543962]
+ Minor IterationBuffer improvements [c15e80de]
+ Internal:
+ ThreadPoolScheduler now keeping internal statistics, e.g. for Telemetry
[2c84f77e]
+ Thread now keeping internal statistics, e.g. for Telemetry [68b2891d]
[77048b6a][cb4d8b66]
+ Changed how Int.new gets rid of mixins [6cb7ebfb]
+ Normalized proto bodies [0edd0cc9][102fbd51]
+ Set no_inline when the dispatcher is needed [c1df0b1b][0ff32c7f]
+ Various JIT-related changes [3bd756f5][0a029db6]
+ Repository cleanup [028b7d22][5baede59][825a8b0d][6ec6f1eb]
+ Various improvements for the JVM backend [ac738b98][b2725c12][4849c733]
[d6cd0d2f][8b24bf5c][38f51db9][581edd58]
New in 2017.10:
+ SPECIAL NOTES:
+ This release includes fixes to || alternation in :ratchet
mode. Code that was unintentionally relying on buggy behavior
(backtracking in :ratchet mode) may now produce unwanted
results (namely will fail to match) [963a0f06]
+ Security:
+ Restricted dynamic lookup metasyntax in rx EVAL [1d63dfd2][2448195d]
+ Deprecations:
+ Deprecated .new on native types [9d9c7f9c][cc6c0558]
+ Deprecated :buffer `open` arg in favor of :out-buffer [f9c10c21]
+ Fixes:
+ Fixed Hash.perl to include Scalar indicators [47d6c66e]
+ Fixed :delete with lazy Arrays [0385b2aa]
+ Fixed sanitization of on-demand Supplies [93a66d75]
+ Fixed duplicate done/quit messages [9e179355]
+ Fixed non-blocking `react { await blah() }` [29863a0b]
+ Fixed issues with Int.new [dff7d9b2][0d2ca0d7][0834036d]
+ Fixed isa method on a subset [cee1be22]
+ Fixed Supply.zip to eager-shift its values [f9400d9a]
+ Fixed two utf8-c8 bugs [963a0f06]
+ Fixed infinite loop in .^roles of a class that does Rational [0961abe8]
+ Changed uniname to give better strings for non-unique names [9dba498f]
+ Fixed .push-all/.skip-all on SlippyIterators [41896b7b]
+ Fixed and improved `**` regex quantifier [681d6be9][4ca1fc3c]
+ Made cmp-ok to try harder to give useful description [8479a1ba]
+ Made List.ACCEPTS non-fatal for lazy iterables [1b9638e2]
+ Fixed some unspace parsing cases [11070e0f]
+ Fixed &chdir failing to respect :CWD attribute [4906a1de]
+ Fixed Blob.gist to trim its guts to 100 elements [ac8e5f43]
+ Improved .perl and .gist methods on Maps and Hashes [aad8991e]
[39461368][381c4c3b]
+ Fixed explosion in IO::CatHandle.nl-out [83008443]
+ Fixed .pick and .roll on object hashes [12fcece4]
+ Made cmp-ok take its arguments raw [3684384d]
+ Fixed `is default(Mu)` on attributes [54507ac9]
+ Made Array.List fill holes with Nil [e1351219]
+ Fixed BagHash.grab with large values [975fcf6c]
+ Fixed .tail with large values [43e7b893]
+ Improved .gist of nodal methods [b6982e68][bb1df2cb]
+ Fixed IO::Pipe.close not always returning the Proc [74328278]
+ Fixed handling of type objects in set operators [8a88d149]
+ Fixed location of errors coming from Channel [82a38c29]
+ Fixed lockup when scheduling with degenerate delays [df01ad97][031f8cf7]
+ Fixed segfault in getlexdyn [4f5fc520][4c370072]
+ Fixed poor error with some slurpies with defaults [a92950fb]
+ Fixed Int.new to properly give a new object [e4a5bb17]
+ Fixed .STORE leaving behind elements on native arrays [a85c8d48]
+ Various async improvements [633a15b8][ef4d16fe][f53d3963]
[26a9c313][9d903408][0d600a0c][54783920][e0e5e6fa][b16aba01]
[d8890a82][73aeee6c][2a826238][3deda842][f58ac999][40c2d0cd]
[c46de00f][e5c17462][6e42b37e][80f883bc][6af44f8d][e70969e3]
[30462d76][97b11edd]
+ Various fixes and improvements to hyper/race [cc2a0643][2352efe5]
[d43b3738][dfa230f7][1fdc84fe][cef4806f][ea51d19b][374ee3e2]
[ad0dd8e7][41729e93][d74ba041][83676112][2580a0a6][cf1673d9]
[7e9b9633][870eaa31][d37a19ea][da977785][270e7c8a][ee3f0f4f]
[a042fd92]
+ Various improvements to warnings and error reporting [38186fcd]
[cf95ce81][66c2d05f][a845ac3d][48a84d6a][bb45791c][279bae08]
[6542bb80][5747bc71][c7a82d45][fb7abf06][ac97a401][64b001a1]
[1ea3297b][56eef696][25c87d0d][5d3ebc09][de2b9ff7][084078e1]
[3acde358][b3bb8c40][e611978f][12774237][33e113a2][9554a97c]
+ Additions:
+ Improved .Capture semantics on all core types [4ba12ff1]
[bad9fefd][cd5864cf]
+ Added trim* subroutines taking Cool instance [5a19dffa]
[691f8b7b][e01e5bc3]
+ Added Lock::Async [53dd776c][4a8038c2][85bdd38a][38896402][6170cb9d]
+ Added atomic reference op support on JVM backend [32e4a1de][59c4117f]
+ Added $*USAGE [0b15f672]
+ Added :bin parameter to IO::Handle.slurp [e2ec569b]
+ Added support for Bufs in &EVAL/&EVALFILE [6c928d61]
+ Added warning on typical precedence errors with infix:<..> [26bdc95c]
+ Added --repl-mode command line option [9ce896d8][20518454]
[5c7bbea0][93e599db][de0533c4]
+ Implemented typed pointer increment and array dereference
[3ca6554f][bc5fbfcb][2fba0ba0]
+ Added X::Numeric::CannotConvert exception type [2e726528]
[b377de1c][f04bd1d6]
+ Added IO::Handle.out-buffer for controlling the buffer size
[f9c10c21][765dd694]
+ Added IO::Path.parent(Int) for getting up more than one level
[7bea3a2d][78d8d509]
+ Removals:
+ Removed $*MAIN-ALLOW-NAMED-ANYWHERE [9cb4b167]
+ Removed support for ornate parenthesis from quoting constructs [9ce896d8]
+ Renamed $*INITTIME to $*INIT-INSTANT according to the spec
[6bdb2dd3][bd6c6403]
+ Build system:
+ Reworked REPL tests [be4d57de][338a0972][7c8a2739][f8edb829][1ce3a36d]
+ Various changes related to v6.d prep [7d830d5c][6cb810d2][36bc8e2d]
[31cbdada][16f64182][50d2013d][f62950dc][dd8a6102]
[36122f15][2a512f0c][03b1febc][edce8f53][c6ff787a]
+ Efficiency:
+ Made startup time up to 5 ms faster [48406db6][a09f5f21][bb5583ae]
+ Made chained ops up to 36x faster [a92d0369]
+ Made ≥, ≤, and ≠ unicode ops as fast as ascii equivalents
[6ec21cb4][1af2a745][43c348a8][9ff2f98f][6ad06fad]
+ Made &infix:<cmp> with Version:Ds 7.2x faster [1d9553f0]
+ Made &DEPRECATED 27% faster when vfrom is too large [145e3156]
+ Made Blob.gist 26x faster [20a99fc3]
+ Made Hash.gist 24% faster [69af24c4]
+ Made @a[42..*] 4.2x faster [456358e3]
+ Various NativeCall speedups [a06ebaf2][269fe7db][80d6b425]
+ Significantly faster interpolation of variables into regexes
[1761540e][0a68a18f][d73d500b][1775259a][e8003c87]
[4d3ccd83][04b171bd][317ae16c][dd880cad][2262cc47]
+ Other small optimizations [9d4a833b][6902c590][fb4eb666]
[b9c98531][4fae0711][921db910][c91c4011][98fae3d8]
[a462d0a2][16c2a157][5f6896bd][397692ac][476741e7]
+ Internal:
+ New JIT [2724a851][ff063e7b]
+ Better scheduler [d2eb7423][80b49320][340d8ed3][c50d35a9][9af5607d]
[683037be][7c18112c][c285b489][b5605c2d][3b98fb9e][596611c8]
[6f6e62ea][176a6fae][43b7cfde][59bfa5ab][27590e8b][e95eb42c]
[2c4868b8]
+ Added RAKUDO_SCHEDULER_DEBUG_STATUS env var [de311f46]
+ Bumped libuv to the latest version [198b8497]
+ Reworked BUILDALL method autogeneration [9837687d][63cf246f]
[5ad2fffe][31a03a41][eb9c3d4d][346dfeff][70ca505a][af2ab751]
[5cd9197f][6824e192][7363f898][4959df3f][dd943ede][d3c48185]
[371befe8][4d0ead24][92f239b5][7fa707db][d76af6aa][e513b857]
[f80a8461][fcbd8adb][21788c89][e2f8a57d][b58bd8fb][0dd6af71]
[f946bd35][cef3bf3e][92e51c3d][5144216f][ebd6440c]
New in 2017.09:
+ Fixes:
+ Fixed NativeCall signature check for unsupported native types [4077842c]
+ Fixed .made called on a Match on which .make was never called [5db5b1db]
+ Fixed flattening of a typed hash [6cec6b72]
+ Fixed iterator on pairs with Mu's [a5014fd0]
+ Fixed Supply.batch with non-int elems and elems == 1 [98f9fffe][7d1ece80]
+ Improved error message on nameless postfix `.::` [5969f21e]
+ Fixed ::("GLOBAL") [1f6a782c]
+ Refined merging of one() junctions [79604a88]
+ Fixed error message with leaking variable name in FailGoal [ed4f6cc9]
+ Implemented missing Instant.Instant [51709e01]
+ Fixed thread safety issues with signal introspection [1f411693]
+ Fixed thread safety issues in the `signal` sub [13b6a33c]
+ Fixed thread safety of "foo{$x}bar" [59454b03]
+ Made Bool.enums consistent with Enumeration.enums [e7a58806]
+ Fixed doubled path issue in IO::Notification.watch-path [2362dfd6]
+ Disabled interactive REPL for non-TTY input [b6a60236]
+ Fix ignoremark and casechange operations of graphemes which begin with
Unicode Prepend characters [7f526c1e]
+ Suppress line number in X::Package::Stubbed [edac1d68][7ba9b7cd]
+ Fixed race condition in Channel awaiter [b30ac08a]
+ Fixed NYI compilation of NativeCall sigs with optional params [1818de98]
+ Fixed missing deconts in nqp::eqaddr() tests [880b33e2]
+ Fixed Enumeration:D === Enumeration:D [8d938461]
+ Fixed non-blocking await when holding locks [f26d1e24]
+ Fixed non-blocking await-all to respect Slip [a137c0de]
+ Additions:
+ Added support for Str operations with Junctions [753c9a5e][7cd153f4]
[95a70ca3][0b19baf0][d2f31bb7][e18291e2][8b5d283c]
+ Added support for Unicode 10 [64dd94c2]
+ Added complete Unicode Collation Algorithm implementation [9b42484a]
[5f335065][ec18efa0]
+ .collate/coll/unicmp operators are no longer experimental
(Note: $*COLLATION dynamic variable is still experimental) [5f335065]
+ Added Thread.is-initial-thread method [59a2056a]
+ Added output buffering for non-TTYs [44680029][4b02b8aa]
+ Made temp and let on a Failure throw it [80a3255b]
+ Made sure that open files are properly closed on exit [3c9cfdba]
[97853564][347da8e5][dd8d0d89]
+ Implement pred() and succ() for the Enumeration role [2645a1e9]
[8d442a52][8df53f34][43e41ec6][55aa7f28][f925c648][69dae1f3][2ad51a0f]
+ Added isa method to SubsetHOW [0704cd97]
+ Build system:
+ Made t/harness* use 6 TEST_JOBS by default [8019c15b]
+ Added --ignore-errors option to Configure.pl [0bc1c877][1da075f9]
+ Fixed `make test` without `make install` first [fb0b3eb5]
+ Made Configure.pl refuse to work without ExtUtils::Command [3f4a9ffa]
+ Fixed non-installed gdb/valgrind runners [4e3f0fca]
+ Efficiency:
+ Knuth-Morris-Pratt string search has been implemented for string
indexing operations (needles between 2 and 8192 in length) [593fa5f8]
+ 1.5-2x speedup of most string operations involving strands [5ebbc5ba]
+ 2.5x speedup for eq() for comparing two flat strings (1.7-2x for others)
+ 9x speedup when indexing with a needle one grapheme in length [8a215876]
+ Made `Any ~ Str` and `Str ~ Any` about 25% faster [815faa35]
+ Made index and eqat operations 2x faster [5ebbc5ba]
+ Made all(@a), none(@a), one(@a) about 9x faster [51c3d86c]
+ Various improvements to BUILDPLAN and BUILDALLPLAN [7da0c215][0ca5ffa4]
[760530a5][80e069a4][2574f883][b706b843][963b28d1][532f7092]
+ Made object creation 25% faster in some cases [62fd5093]
+ Internal:
+ Simplified setting up auto-threading [8a0f6ac1]
+ Streamlined Junction .defined, .Bool, .ACCEPTS [e8137b45]
+ Added --no-merge option to t/harness5 to pass through STDERR [4af1d95c]
[84b40cf5]
+ Various improvements to INTERPOLATE [215a5fa7][ea57cbec][c6aacafd]
[47439e69][4c25df74][fc632cd8]
+ Some minor cleanup on R:I.FirstNThenSinkAll [9dbc3c50]
+ Fixed --ll-exception to give full thread backtrace [0877278e]
+ Various heap analyzer API changes [bfee5a1e]
+ Streamlined exit / END phaser handling [1adacc72]
+ Made junction optimizer only look at candidates [4de858a5]
+ Assortment of low-level improvements [cbce6721][8a215876]
[9b42484a][a4ce97ca]
New in 2017.08:
+ Security:
+ Removed '.' and 'blib' from nqp's default module search paths [7e403724]
[a331c804][1eeb9434]
+ Fixes:
+ Fixed IO::Path.new with 0 allomorph [45cd1a97]
+ Fixed erroneous closing of standard handles in DESTROY [0e578c4f]
+ Fixed handling of already existing .moarvm files during install [02667bd8]
+ Fixed --ll-exception [559c9255]
+ Fixed native callbacks called from other threads [b81597bd][1d941643]
+ Fixes concat with combining codepoints and repetitions [1f7fa683]
+ Fixed TODO test handling inside TODOed subtests [5b77a8aa]
+ Fixed formatting of X::Numeric::DivideByZero [3f99d1d0]
+ Fixed potential concat issue [3028466c]
+ Fixed null handling in List.join [9b5cce0a]
+ Fixed handling of default values in Array [12d7d5b4][2fb8c725]
[0970ba33][ccaa0665]
+ Fixed error message for postcircumfix [ ] called with a type object [1a74a8c3]
+ Made .unique|repeated|squish return containers if applicable [51e59eeb]
+ Fixed string comparison issues [0564891e]
+ Fixed is-lazy of iterators created with R:I.FromIndexes [4db23064]
+ Fixed pull-one of iterators created with R:I.MonotonicIndexes [0c19f549]
+ Fixed compiler explosion with import statement [3e078d4d]
+ Fixed is default() trait on Attributes [a7d2ad1d][148ba7f2]
+ Made sure to stop socket reader on close [21359560]
+ Fixed missing tap closes in `whenever` [59f4123e]
+ Fixed missing tap closes in Supply [c59b9867]
+ Fixed potential memory leak of supply/react [5fcce673]
+ Fixed Mix.roll with fractional weights [a91ad2da]
+ Fixed reproducibility of RAKUDO_MODULE_DEBUG output [ec7bc25c]
+ Fixed Pair.WHICH [4f1322d0][c229022c]
+ Fixed ignoremark issues [7b81f0f9][a3b95749]
+ Fixed bad assumption about methods being closures [231cb3f5]
+ Stopped hllizing and sinking the result of .+, .* and .= method calls [2b8115f0]
+ Fixed native shaped array index to return l-value [61e1f4d5]
+ Fixed handling of test descriptions with new lines [9303a6e4]
+ Fixed wrongful escaping of `# SKIP` TAP instruction [eb529f14]
+ Fixed returned exit code when running a MAIN script with --help [fcf61f7b]
+ Various improvements to produced messages [9b31d1f5][998535ed]
[6d3ba60c][365a1d08][cff51ea1]
+ Additions:
+ Added Buf subbuf-rw method [d7af4aeb]
+ Added ACCEPTS method to Map to compare Maps [45ca084e]
+ Treat :ver<...> like a version instead of a string [247fc649]
+ Improved Version smart match with different lengths [01dbd874]
+ Added new peer/socket host/port values in async sockets [76af17a8]
+ Added .Complex coercion method to Cool [c9de2184]
+ Added atomic operations (⚛) [9b1e252a][92707fac][c67d7dd5][ca8aafc1]
+ Build system:
+ Added --libdir option to Configure.pl [e4d65ac9]
+ Fixed quotes for windows [90a0f2e0]
+ Added 'install' test target on appveyor [9c0d40ab]
+ Efficiency:
+ Made `$s (-) $s (-) $s` on a 26 elem set about 1.5x faster [d7fcb314]
+ Made .Str and .perl 2x faster, .gist 1.4x faster (on a ^100 .Set) [5b6cd406]
+ Made .Str 30% faster, .perl 2x faster (on a ^100 .Bag) [21b9a720]
+ Made string concatenation more efficient [1f7fa683]
+ Made Mixy.roll up to 2x faster [d3f260c9][e2ca1ffa]
+ Made Baggy.roll up to 1.5 faster [e548b743]
+ Made Baggy.roll(N) about 1.5x faster [752a3265]
+ Made List.roll(*) about 1.5x faster [b147217e]
+ Made .unique(:as) 3% faster [a636fa8f]
+ Made .unique(:with) about 4x faster [47d9bd9b]
+ Made .unique(:with(&[===])) about 20% faster [26789cc7]
+ Made .unique(:as,:with) about 12x faster [acf9f90d]
+ Made .repeated(:with) about 4x faster [d9056207][c3851aee]
+ Made .repeated(:as,:with) about 12x faster [a3a3d1a9][32ce4afd]
+ Made .pairup about 1.5x faster [8f73d77b]
+ Made .codes 350% faster for short strings [3c6277c7][e051dd2d][4eff4919]
+ Various improvements made by using `is default` on attributes [08f705b9]
[d0419a0f][9f5686ec][c8c5c712][40d5b27d][fb5db592][413b7116][fbdbe6fb]
+ Made Map eqv Map about 10% faster [15b2596e]
+ Decreased the cost of Supply block teardown [5d200f1e]
+ Saved 2 method calls per NativeCall call [aca4b941]
+ Speeded up NativeCall by replacing the subroutine code in setup [46ef1b5b][9a0afcbc]
+ Speeded up NativeCall subs by compiling specialized subroutine body [cd7dc4ce]
+ Internal:
+ Introduced Mixy!total-positive [f49c49bb][ccf6da9e]
+ Set debug_names of DefiniteHOW and CoercionHOW types [b22d189e][c040f1a6]
+ Simplified `infix:<(+)>(**@p)` and `infix:<(.)>(**@p)` [d82db18f][a0775e5e]
+ Ensured Scalar fetch can never return a NULL [2f5a6cd9]
+ Changed RAW-KEYS to create iterator early [710fa800]
+ Made sure Setty at least has a R:I:IterationSet type object [2dd5963c]
+ Made R:I:Mappy roles also take IterationSets [ab08bd04]
+ Made Setty.values use R:I.Mappy-values directly [250ae102]
+ Made R:I:Mappy* roles use a more abstract name for low-level hash [b7953d0d]
+ Retired R:Q:Quanty in favor of R:I:Mappy [d9055e80]
+ Introduced R:Q.RAW-VALUES-MAP [923c32e6]
+ Simplified the .Seq coercer [5d89cef9]
+ Changed Baggy to no longer use HLL hash internally [fb7ecb60]
+ Changed Supply implementation to use iteration, not recursion [ed87f998]
+ Added tests for native int as index to CArray [6cc858a0]
+ Simplified Hash creation for auto-vivification [84d052a0]
+ Various spesh, JIT, GC and other improvements [86cb1363][8bed4a67]
[9658dd98][c1e41f9f][f590863e][4561c269][947376e2][1455a03b]
+ Introduced R:I.TwoValues [20e93d89][50f0508f]
+ Fixed some issues with R:I.OneValue [3ad33469]
+ Streamlined the standard Seq methods on Pair [30584dac]
New in 2017.07:
+ Deprecations:
+ Deprecate `(<+)` ≼ `(>+)` ≽ in favor of `(<=)` ⊆ `(>=)` ⊇ [35cc7c0e]
+ Fixes:
+ Fixed perl6-debug-m debugger [6d4691fb]
+ Fixed finding proper %?RESOURCES for non-lib CURFS [71ffb164]
+ Fixed Mixy (-) Mixy behaviour for missing keys [4a37de7b]
+ Fixed Mixy.Setty coercion [b31b159c]
+ Fixed .perl of empty Bag and Mix [f72c97cb]
+ Fixed crash on dotless version literals given to `use` [fe7ea124]
+ Fixed various coercion related issues with (-) [19a1caa3]
+ Fixed Baggy/Mixy (-) Any/Iterable [a2133dbc]
+ Made sure we catch lazy lists on right of (-) and (|) [62d54c75][c16334e5]
+ Fixed mix() (-) `<a b c>.Mix` [c727462c]
+ Fixed multi-dispatch with numeric literals and native types [1c0ed61a]
+ Fixed enum.Real coercion [ad9ed1cb][c226b71a]
+ Fixed (:e).Bag|Mix coercion using a Bool as a weight instead of just Int [d765f186]
+ Fixed outstanding issues with coercions done by (+) [c7922f14]
+ Fixed a data race in Proc::Async [2a8d1e7c]
+ Fixed `(&)`'s handling of lazy lists [cb06ebac]
+ Made set ops properly handle lazy lists [04746490][3058ba0d]
+ Made sure unhandled failures don't coerce QuantHashy [43fc751b]
+ Fixed sprintf octal format with precision [d7e10466]
+ Fixed 'is export' on constants assigned to routines [d067abf4]
+ Fixed Deprecation.report case where "removed" is set and "from" isn't [1b6d048b][e20817fb]
+ Fixed crash in coercers used with sigilless vars [c76d9324]
+ Made sure IO::Socket passes a list to set-line-separators [a2090821]
+ Prioritized .pm6 extension over .pm when files with both extensions exist [e1e9091f]
+ Fixed SEGV in Proc::Async.new [f6d4fbd2]
+ Fixed a few edge cases of (^) wrt QuantHash type permutations [b3916926]
+ Fixed regression in Map intialized with `<...>` having writable containers [4894a75d]
+ Fixed overflow in uniprop lookups [4f5a1e20]
+ Made improvements to segmentation of Emoji w/ GCB=Other [4f5a1e20]
+ Fixed break after ZWJ for Emoji=True + GCB=Other [4f5a1e20]
+ Removed faulty Iterable (^) Iterable candidate [4c91b522]
+ Fixed faulty Map (^) Map candidate [8afbfe6f]
+ Fixed inconsistent semantics in `<a b>.Bag (<) <a b b>.Bag` [4b8bc617]
+ Fixed unwanted de-Bool during optimization of some constructs [83e15701]
+ Fixed handling of actions in .refine_slang [c40a2122]
+ Fixed baggy semantics of Mix `(<)` Mix [a526d839]
+ Fixed semantics of `mix() (^) (a=>-42).Mix` [8d5f3324]
+ Fixed precomp deps left open when up-to-date check failed [37250ed5]
+ Properly implemented Baggy semantics for `(<=)` and `(<)` [4101581d][c6cc1a7a]
+ Fixed handling of `[(^)]` with absentee keys and Mixies correctly [0c02f93e]
+ Fixed faulty dynamic cache invalidation in continuations [d74ebd82]
+ Fixed issues with calling `infix:<⊖>` with more than 2 params [aee4a46c]
+ Fixed Proc :merge [c86090e3]
+ Made sure we call done/quit on all taps [32b72cda]
+ Ensured empty string PERL6LIB var does not get interpreted as `.` [075ddefa]
+ Fixed floating point noise in denominator of Rat literals [f6e25b54]
+ Fixed .getc and .readchars reading too much at EOF [80bbfcdd][49f555a2][f6279c34]
+ Fixed SEGV and memory leak in MoarVM that impacted parameter destructuring [f6279c34]
+ Made `exit()` coerce its argument to Int [caa9ef81]
+ Made IO::Handle.new coerce `:path` to IO [fec90956]
+ Various improvements to warnings and error reporting [bde28209][06379113][d5d3bd27]
[d39f7b9a][1dda8622][d74ebd82][88acdbb7]
+ Additions:
+ Added full Unicode 9.0 and Emoji 4.0 text segmentation support [c40a2122]
+ Implemented tentative API for custom user encoder support [d0995f68][5ab4036e]
+ Implemented experimental buffering support in IO::Handle [86e7b2bd]
+ Collation object updated to work with new unicmp_s semantics [4da85879][47678077]
+ Allow getting native descriptor in Proc::Async [82301128]
+ Re-worked Proc so :in($p1.out) will plumb file descriptors [6dae179a][abfd7d95]
+ Added plumbing stdout/stderr to stdin in Proc::Async [11b02d2c]
+ Allow for "does Rational" and "does Rational[foo]" [41ed2c03]
+ Added `%*SUB-MAIN-OPTS` [40b0169d][da6c6584]
+ Implemented baggy semantics of `(<)` and `(<=)` [75797af3]
+ Added perl6-lldb-m for debugging MoarVM on the LLVM debugger [00dc4947]
+ Efficiency:
+ Made Baggy (-) Baggy about 100x faster [2a88c20c]
+ Made [(^)] Set, Set, Set about 35x times faster [0cdd6c25]
+ Made Setty (-) Setty at least 20x faster [10f840fc]
+ Made .BUILD/.TWEAK calls 15x faster when ther are no args to .new [43c1767b]
+ Made (Bag|Mix).WHICH about 8x faster [b2d2bf59][c585f370][d8c94353]
+ Made Map (+) Map between 3x and 6x faster [495fb5f8]
+ Made Baggy eqv Baggy upto 3.5x faster [49b1b03b]
+ Made Setty.ACCEPTS(Setty) about 3.5x faster [93d81d61][48c18f58][1ab4fd80]
+ Made Map.(Bag|Mix) 2.5x to 5x faster [72e5d614]
+ Made Setty eqv Setty between 2x and 3.5x faster [25047984]
+ Made Setty (-) Map between 2x and 3x faster [9936a3be]
+ Made Setty (-) Iterable about 3.5x faster [b66d8783]
+ Made Str.subst(Str,Str) upto 3x faster [327c8409]
+ Made Setty (+) Map about 2.5x faster [201a0bfb]
+ Made Any (-) Map|Iterable about 2x faster [e4f3358f]
+ Made Mix (+) Mix about 1.5x faster [d1838461]
+ Made Baggy (-) Baggy about 1.5x faster [36823ab1]
+ Made starting of installed scripts 46% faster [92f8abe0][4693ec86]
+ Made Baggy.keys about 40% faster [c65652d8]
+ Made Iterable (+) Iterable about 20% faster [38509227]
+ Made Setty (-) Setty about 20% faster [bacaa051]
+ Made internal nqp::index op used by many string operations 16% faster [4f5a1e20]
+ Made Setty.(Bag|Mix) about 5% faster [ae4c04ce]
+ Made Str:D (elem) Map 3%-10% faster [099a84b4]
+ Made Stash.AT-KEY a few percent faster [2ce5b678]
+ Gave Nil methods a much more efficient "take any args" signature [9a2127f2]
+ Made Exception messages created only when gisting [1a4d9493]
+ Made Any.tail() use iterator's .count-only if available [9c04dfc4]
+ Reduced cases when string concatenation needs renormalization [c40a2122]
+ Improve the speed of Unicode normalization [c40a2122]
+ Made all non-Texas set operators aliases where possible [f6025eb9]
+ Simplified `infix:<(|)>(**@)` candidate [46e009bf]
+ Fixed various VM errors in CallFrame. [e2ec7bdf]
+ Improved speed of `try` when exceptions are caught [1a4d9493]
+ Assorted internal improvements to CPU/memory use [3d2a521c][5a80412c][c4e14731][19be8722]
[f03a176c][fff43337][f71cbed4][79ce1a99][640404fc][b4561229][30619e8d][9d14a724][a2a0d5c6]
[66aef589][a95c70bd][d7e10466][73c3bcc6][7f109ed7][80b3e89b][05c255c1][2fb109f1][c0eeebde]
New in 2017.06:
+ Fixes:
+ Fixed incorrect auto-boxing to native candidates in multi dispatch [ccfa5e51]
+ `^Inf .elems` now fails instead of returning Inf [20310d7d]
+ Made IO::Handle.print/.put signature consistent [613bdcf8]
+ Made sure that Setty:U is treated like any type object [ad8fa552]
+ Fixed behaviour of set() `(<)` X.Set [e6506bfd]
+ Made sure VM.osname always returns lowercase string [122aca1c]
+ Fixed List.Capture with non-Str-key Pairs [5b25836f]
+ Fixed inconsistency in .Int on zero-denominator Rats [6dbe85ed]
+ Fixed crash in smartmatch of non-Numerics with Numeric [43b03fc6]
+ Fixed occasional Windows file permission issues with installation of modules [8ec4dc5b]
+ Fixed crash in `X` operator used with empty List [9494cbd3]
+ Fixed spurious warnings/crash with certain `=para` Pod blocks [5e339345][807d30c2]
+ Fixed output of `CArray[Pointer].^shortname` [1ed284e2]
+ Fixed crash in Test.pm6's bail-out when used before tests [cb827606]
+ Fixed object Hash -> Set coercion failing to consider values [160de7e6]
+ Fixed Seq.perl for containerized Seqs [b22383fe]
+ Fixed Proc::Async.new not slurping first positional [92c187d2]
+ Fixed Proc::Async.kill failing to kill sometimes [99421d4c]
+ Fixed hang in deepmap with Iterable type objects [252dbf3a]
+ Fixed crash when Junctioning empty array after .elems'ing it [aa368421]
+ Fixed crashes/LTA errors in Junction.new w/wrong args [61ecfd51]
+ Fixed `infix:<orelse>` calling .defined one too many times [77d3c546]
+ Made `fail` re-arm handled Failures given as arguments [64e898f9]
+ Fixed output of IO::Special.perl [7344a3d2]
+ Made IO::Handle.open with path '-'.IO properly handle non-default `$*OUT`/`$*ERR` [3755c0e7]
+ Fixed Promise.then to not lose dynamic variables [36bc4102]
+ Fixed allomorph smartmatching with Str values [8a0b7460]
+ Fixed IO::Path.extension with Range `:parts` when endpoints were excluded [8efffb1d]
+ Made coercion of lazy Iterable to Setty fail [211063c7]
+ Made Mixy/Baggy.new-from-pairs with a lazy Iterable fail [c9dfa840][e5719d6a]
+ Fixed byte.Range returning an incorrect range [af85d538]
+ Fixed edge-cases (e.g. Nan/Inf) in Mixy.roll [fb9e1a87]
+ Made sure that Mixy types only take Real values [7fa85682]
+ Fixed incorrect results in ignorecase+ignoremark regex matches [1ac7996a]
+ Fixed issues with `$*CWD` inside &indir when using relative paths [9151ebaa][326faed6]
+ Fixed crash with Seq:U.List [5c56e9e7]
+ Fixed various issues with Map `(<=)` Map [e1563a76]
+ Fixed various issues with Map `(<)` Map [b03d8044]
+ Fixed 4 cases of crashes with labeled `next` [3b67b4ac]
+ Made Proc.status/Numeric/Bool/exitcode/sink wait for Proc to be done [e4468c61]
+ Fixed Pair.perl with type-object components [c6b03c45]
+ Fixed bad shell quoting in Proc::Async on Windows [e9b30933]
+ Fixed crash when RAKUDO_MODULE_DEBUG was set to a non-numeric value [96e6b338]
+ Fixed Kernel.signals on OpenBSD [9435c14e]
+ Various improvements to warnings and error reporting [1c16bf2e][85bef661][e22508d4]
[b6694bd0][ec51e73f][f2fca0c8][f9403b3b][86fe766a][c81b7a4b][7cf01296][fb7dd8a4]
[7783fcab][9bf3ea3a][02614f64][e538cbc5][86c3d7aa][c2497234][b0a1b6c3][97298aca]
[69b1b6c8][5e037736][e824266f]
+ Additions:
+ Implemented IO::CatHandle [5227828a]
+ Implemented support for merged STDOUT/ERR output Proc and Proc::Async [ac31c5df][05d8b883]
+ Implemented Complex.cis [a243063c]
+ Implemented Failure.self [0a100825]
+ Implemented Any.Seq [5c56e9e7]
+ Improved consistently to have .Supply on a type object it as Supply [52d39576]
+ Slightly changed IO::Handle.encoding; Nil now means 'bin'
[95b4e5d5][27f09e9d][9c0362cb][51c73ba0]
+ Gave `(<=)` Baggy and Mixy semantics for Bags/Mixes [b1d83f9d]
+ Makde `use lib` accept IO::Path objects [3ff29d42]
+ Added IO::Socket.nl-out attribute [12d31e36]
+ Added Setty.pickpairs [e3695b16]
+ Added Str type constraints to IO::Spec::Win32 .join and .catpath [232cf190]
+ Made it possible to call &prompt with no args [0646d3fa]
+ Made IO::Socket::INET update localport if it binds on port 0 [bc98e671]
+ Improved support for Unicode properties `Prepend` and `Regional Indicator` [56e71d59]
+ Gave IO::Handle.read default value for size arg [b7150ae1][aa9516be]
+ Added default output for Mu.WHY [23d6d42d][cc4d9091]
+ Added support for binding to standard handles in Proc::Async [6b2967d7]
+ [JVM] Implemented Proc::Async [5154b620]
+ Removals:
+ Removed TAP.pm6 from core. Available as `TAP::Harness` in the ecosystem [ae891f93]
+ Removed all methods from IO::ArgFiles and made it a subclass of IO::CatHandle [f539a624]
+ Removed IO::Socket::INET.ins [75693b0b]
+ Removed NYI IO::Socket.poll method [cb404c43]
+ Efficiency:
+ Made Any (elem) Iterable:D between 1.3x and 110x faster [e65800a8]
+ Made `(<=)` and `(>=)` about 50x faster [32eb285f]
+ Made IO::Spec::Win32.catpath 47x faster [7d6fa739]
+ Made `(<)` and `(>)` about 40x faster [431ed4e3]
+ Made IO::Spec::Win32.join 26x faster [494659a1]
+ Made IO::Spec::Win32.splitdir 25x faster [2816ef71]
+ Made Map `(<=)` Map about 15x faster [0cb4df44]
+ Made Map `(<)` Map about 15x faster [f6f54dcf]
+ Made Str.subst(Str) without :g 14x faster [0331fb9d]
+ Made Setty.roll about 11x faster [e6192ca8]
+ Made IO::Spec::Unix.splitdir 7.7x faster [6ca702fa]
+ Made invocation of Proc.spawn and &run 4.6x faster [93524fb9]
+ Made SetHash.grab(N) about 3.5x faster [67292a1e]
+ Made SetHash.grabpairs(N) about 3.5x faster [0e9ee0d1]
+ Made invocation of Blob.decode() 2.7x faster [222b4083]
+ Made Baggy/Mixy.(hash|Hash) about 2.5x as fast (on a 26 elem Bag/Mix) [06cd0bc3]
+ Made Setty.roll(N) about 2x faster [18dd0741]
+ Made Setty.pick about 2x faster [10e9c8ba]
+ Made Set.new(@a) about 2x faster [b55a0f16]
+ Made Baggy.new(@a) about 2x faster [11f27a30]
+ Made SetHash.grab about 1.8x faster [d28540be]
+ Made Str:D (elem) Map:D 1.3x faster [b43303f2]
+ Made `$*KERNEL.signal` 64% faster, overall [79b8ab9d][01d948d2]
+ Made Iterable.Bag about 60% faster [f2876281]
+ Made Iterable.Mix(|Hash) about 40% faster [bba6de5f]
+ Made Setty.pick(N) about 30% faster [071c88cb]
+ Made StrDistance 25% faster [2e041b06][9185fa2c]
+ Made (Bag|Mix).AT-KEY about 10% faster [b43db636]
+ Made `infix:<∉>` about 10% faster [abfb52be]
+ Made Str.starts-with 8% faster [7ecb59dc]
+ Made .Set, .Bag, and .Mix coercers a few percent faster [8791b447][4139b96e][8c7e4e51]
+ Fixed lost optimization of for ^N {}; now its 3x faster [46b11f54]
+ Made &DYNAMIC about 1% faster [74242e55]
+ Made ^Inf marginally faster [446dc190]
+ Assorted internal improvements to CPU/memory use [2efd812c][07bff0e5][1369632f][2ac120ce]
[539415cf][5ebf307a][ed07b2c3][0104a439][a91a2e4d][bd292225][8ff980e7][7edf9da6][241d2925]
[7e8bac9b][3363c7b9][6f932687][e9b30933][51b63bf9][57553386][1171e67e]
+ Internal:
+ Refactored handle encoding. Non-binary read methods now throw when used
on handles in binary mode [41bb1372][b3cd299e]
+ Refactored socket encoding [8ee383e3]
+ Made syncronous IO to not use libuv [05f3e9a0]
+ Made syncronous sockets to not use libuv [6f202fbe]
+ Moved encoding and line ending bits to IO::Socket [d6fd2491]
+ Moved get and lines to IO::Socket role [9cec9408]
+ IO::Path.Int method removed; handled by Cool.Int now [d13d9c2e]
+ Re-implemented Proc in terms of Proc::Async [ac31c5df]
New in 2017.05:
+ Fixes:
+ Made Promise subclass-friendly [a61746fe][a7c23aa2]
+ Fixed unwanted warnings on Windows with `$*HOME` [4ae7c697]
+ Fixed handling of `<1` and NaN in Baggy.pick/.roll [40e4e132][e5d2c6f6]
+ Fixed NaN and empty Baggy handling with Baggy.pick/.(pick|grab)pairs
[abc0509c][22ba2317][22ba2317][44c89ed9]
+ Fixed SetHash.(iterator|values|kv) to have same semantics
as (Bag|Mix)Hashes [e5b5d346][e9ae0047]
+ Fixed off-by-one in `lines` routines when `:close` is given [bf399380]
+ Fixed `$*CWD` inside IO::Path.dir's :test Callable [b2a64a13]
+ Fixed regression with IO::Handle.close's value sunked in .slurp [84eb3599]
+ Made spaces and quotes escaped in MAIN() usage message [22bd2bbd]
+ Fixed dispatch hang in Str.match: Nil [1c21974d]
+ Made &slurp/&spurt/&get/&getc/&close `fail` instead of throwing [6fa4bbcb]
+ Made &lines/&words/&slurp/&spurt/&get/&getc/&close pass all of the
given arguments to the methods they use [6fa4bbcb][34b58d1b]
+ Fixed handling of 8 digit hex literals in 32-bit systems [01dd2138]
+ Fixed $?BITS on 32-bit systems [d057efdb]
+ Fixed time stamp check interfering with packaging modules [ff4a034d]
+ Made perl6 usage message print to STDERR instead of STDOUT when an
invalid cmd line option is used [2a6d3d1e]
+ Made sure Setty (^) Setty always returns a Set [4e37e7c5]
+ Fixed typed optional Array and Hash parameters [9f5c8e94][6231ecb0]
+ Made `$*HOME` default to Nil, not Any [7412184f]
+ Fixed crash on ^D to `$*IN` when reading with IO::ArgFiles [4b8fd4a4]
+ Fixed REPL crash when `$*HOME` is not set [1b0e41f9]
+ Fixed Test.pm6's &like crash when a non-Str is passed [ba3cf4e5]
+ Fixed Seq.perl for cached Seqs [54f50956]
+ Fixed crash in `eqv`, .iterator, .Slip, .join, .List, .list, .eager, .Array, .is-lazy,
and .sink on cached Seqs [400f4ec8][c13d89b3]
+ Fixed role mixins with native attrs with defaults [6179ab34]
+ Fixed `andthen`-`orelse` chaining [37316f82][e1994d94][1ed76a90]
+ Fixed issues when `Empty` passed as arg to `andthen`/`notandthen` or postfix `with`/`without`
[3c8822e8][e1994d94][1ed76a90][fdb2b2ab]
+ Fixed error in Iterable (+) Iterable if the Iterable contained Pairs [3d99321f]
+ Fixed .perl for IO::Path and subclasses [134efd83]
+ Fixed .IO on :U of IO::Path subclasses [69320e7f]
+ Fixed SetHash retaining the containers [551b8a69]
+ Fixed (Bag|Mix)Hash.values/.iterator/.pairs/.kv failing to check validity of assigned
values [c1bd844e][0e0ac2fb][0338ce46][14e09532][c61c7f88]
+ Fixed 'ambiguous call' error in `eqv` and `cmp` with mixed allomorphs [e5870c11]
+ Fixed IO::Path.copy/move when source/target are same [08a8075f]
+ Fixed premature deletion of bin wrappers [c7aef59a]
+ Fixed ghost elements remaining when popping off an Array [c776c087]
+ Fixed rotate on empty list [b5c14bd1]
+ Fixed hang in .join/.gist in certain cases of flat slurpy positional arg [5e6b3878]
+ Fixed Str.comb(Int, $limit) for `<1` combers [a9959666]
+ Fixed Str.comb with empty-string comber [aa711c14]
+ Fixed unwanted split on read-chunk-size boundaries in IO::Handle.comb/.split by
making them .slurp the entire file [973338a6]
+ Fixed crash in BagHash.pickpairs when given negative arguments [08b5c101]
+ Fixed incorrect results in `+>` for large negative numbers [ef29bb9f][66e8e72c]
+ Fixed is-deeply for Junction args [1c4d8451][dc5eece9]
+ Fixed crash in is-deeply when Seq type objects are given [f3f99b3a]
+ Fixed dispatch infiniloop in (elem) and (cont) [407bce1d]
+ Fixed issues with combiners on `/` in IO::Spec::Unix.is-absolute [f4309de9]
+ Fixed issues with combiners on `/` in IO::Spec::Win32.rel2abs [c96727aa]
+ Fixed crash when setting .nl-in/.encoding on unopened IO::Handle [06d8800e][70038855]
+ Made IO::Handle.open respect attribute values [95e49dcb]
+ Made IO::Path.parts a Map instead of Hash [9021a486]
+ Made IO::Spec::Unix.path consistently return a Seq in all cases [05479793]
+ Fixed IO::Spec::Win32.path failing to flatten resultant Seq [8992af13][816b2d4b]
+ Fixed IO::Handle.perl.EVAL round-trip [a282b8c8]
+ Made IO::Path.resolve set CWD to $!SPEC.dir-sep [a4127884]
+ Fixed unwanted padding Nils from Str.words($limit) [4bcf84a2]
+ Various improvements to warnings and error reporting
[9962d2b6][9ed89d94][d87de586][6d28d788][8511081f][4f9fa6b0][12cec7a7][d1a81b30]
[85c54db8][fc5698bd][1cf7ccba][0bd39de2][12c50b63]
+ Additions:
+ Made user grammars work more like real classes [db42d62f]
+ Loading deps no longer uses file timestamps [ca0a7439]
+ Changed type constraint on &slurp/&dir from Cool:D to IO() [6fa4bbcb][d0cd1372]
+ Added IO::Handle candidate for &spurt [6fa4bbcb]
+ Added Pair.Pair method [bd9e5730]
+ Added Seq.Capture method (makes it possible to unpack Seqs in signatures) [98e137b1]
+ Added QuantHash.Capture [5e74017d]
+ Made `(^)`, `(+)`, `(.)` multis [8b8f66c0][44893e6a][48ce8701]
+ Added primary and foreign key constraints and renamed some fields in
profiler's SQL output [c776c087]
+ Added WhateverCode candidates to Map.roll and (Bag|Mix)Hash.grabpairs [1e58925c][2bda2703]
+ Made Baggy.roll/.pick/.grab Int-ify their $count arguments [31be5128]
+ Added big int support for `+<` and `+>` ops [6409ee58][ef29bb9f][66e8e72c]
+ Made Date.clone take a formatter [a9a161ae]
+ Added `$*DISTRO` and `$*KERNEL` information to `perl6 -V` output [94c4e7bf][b6496eda]
+ Made `perl6 -V` sort its output [85230d06]
+ Added support for `$*KERNEL.archname` [0c46aff2]
+ Added `$*PERL.compiler.verbose-config` [85230d06][c3b47280]
+ Added typed exceptions to IO::Handle.flush [b43ed18f]
+ Added support for building the dist in install-dist.pl [4298dd5e]
+ Simplified getting osname from VM.config [7c8f8d3e][18706852]
+ Added VM.osname as a rough equivalent to Perl 5's `$^O` [e79d7498][505ee33d]
+ Now show `System::Info` information with -V if module is installed [5feb3906][541597b8]
+ Made IO::Handle.encoding settable via .new [7e9496dd]
+ Added Proc::Async.ready [d76206e7]
+ Implemented $limit arg for IO::Handle.words [84502dc2]
+ Removals:
+ Removed IO::Handle.iterator that existed for a couple of releases [eb8d006e]
+ Removed unspecced Seq.is-ready method [59f6f485]
+ Removed broken Exception.resumable method [f2af3db1]
+ Removed argument forwarding from Instant.DateTime coercer [6bb1b5b4]
+ Removed IO::Path.dir's :absolute and :Str arguments [aa72bdef]
+ Removed .tell info in IO::Handle.gist [276d4a7e]
+ Removed `:directory` from Map returned by `IO::Spec::*.split` [6ed14ef6]
+ Efficiency:
+ Made Mixy (^) Mixy about 150x faster [9f0b1218][bea8ac68]
+ Made Baggy (^) Baggy about 150x faster [ee459360]
+ Made IO::Spec::Win32.is-absolute about 63x faster [c6fd7361]
+ Made Map (^) Map about 50x faster [13924397]
+ Made Setty (+) Setty about 45x faster [14568496]
+ Made Baggy (+) Baggy about 50x faster [ab5cd11b]
+ Made Mixy (+) Mixy about 45x faster [92df7d5c]
+ Made Setty (.) Setty about 35x faster [1562da07]
+ Made Baggy (.) Baggy about 35x faster [3f97831d]
+ Made Mixy (.) Mixy about 35x faster [226cd8b6]
+ Made IO::Spec::Win32.path 26x faster [8992af13][816b2d4b]
+ Made IO::Spec::Cygwin.is-absolute 21x faster [48cf0e67]
+ Made Setty (^) Setty about 20x faster [d92a2123]
+ Made Iterable (+) Iterable about 18x faster [6de08933]
+ Made Map.pick()/roll() about 7x faster [2fb6872b]
+ Made Baggy.pickpairs about 5x faster [c0270c66]
+ Made IO::Spec::Unix.path 4.6x faster [05479793]
+ Made (Bag|Mix)Hash.grabpairs/.grabpairs(N) about 4x faster [911b43de][3670720a]
+ Made Str.words/.lines with $limit arg lazy and up to 3.6x faster [4bcf84a2]
+ Made Iterable (^) Iterable about 3.5x faster [b2332816]
+ Made Map.roll(N) up to 3x faster [c74d37ba]
+ Made Mixy.roll(N) about 3x faster [b9222061]
+ Made IO::Spec::Unix.rel2abs 2.9x faster [277b6e5b]
+ Made Map (+) Map about 2.5x faster [a85b654d]
+ Made Map (.) Map about 2.5x faster [9c9ebd0b]
+ Made Iterable (.) Iterable 2.5x faster [3d99321f]
+ Made Mix.roll() about 2.5x faster [a2602b9c]
+ Made `notandthen` and postfix `without` 2.5x faster [fdb2b2ab]
+ Made `andthen` and postfix `with` 2.5x faster [3c8822e8]
+ Made `orelse` 2.4x faster [37316f82]
+ Made IO::Path.is-relative about 2.1x faster [ff23416b]
+ Made Baggy.pickpairs(N) about 2x faster [0f21f511]
+ Made 1-arg IO::Handle.say up to 2x faster [76af5367]
+ Made BagHash.roll 1.7x faster [07feca67]
+ Made MixHash.total 1.4x faster [5e459bce][4c813666]
+ Made IO::Spec::Win32.split about 82% faster [894ba82d]
+ Made IO::Path.is-absolute about 80% faster [74680d44]
+ Made `&say(**@args)` up to 70% faster [204ea59b]
+ Made `&put(**@args)` up to 70% faster [6d7fc8e6]
+ Made `+>` about 55% faster [ef29bb9f]
+ Made `<+` about 12% faster [6409ee58]
+ Made IO::Spec::Unix.join about 40% faster [d2726676]
+ Made IO::Handle.put($x) about 5%-35% faster [50429b13]
+ Made BagHash.grab 30% faster [2df7060c]
+ Made IO::Path.dir up to 23% faster [aa72bdef]
+ Made Baggy.roll about 15% faster [9e7d0b36]
+ Made BagHash.grab(N) about 10% faster [87a95fc1]
+ Made Baggy.EXISTS-KEY about 8% faster [451a2380]
+ Made List.AT-POS about 5% faster for common path [736be4d4]
+ Made IO::Spec::Win32.rel2abs 6% faster [c96727aa]
+ Made Hash.EXISTS-KEY about 1% faster [eb1ce414]
+ Micro-optimized reg/init dynamic [1d6a0023]
+ Speeded up module loading a bit by persisting source checksum [3829488f]
+ Assorted internal improvements to CPU/memory use [89f2ae4f][3c7cd933][aa23a91f]
[7c531835][ccedd6b1][3dc08553][514124e3][146f3a39][9cb26c09][afd24a88][f2fc5674]
[6641df83][d6cf518c][f18d0dc0][1a920dcc][bdb5391b][b1fbd133][7404c706][762fd239]
[fec547a1][5ec8a464][8088f080][45305eca][e7087f29][f4017c32][3f7d1334][6ea2f12e]
[788e6de6][3fb3c27e][09506dc8]
New in 2017.04.3:
+ Fixes:
+ Fix REPL history file failure with Linoise on [6c66c1b88c]
+ Fix `)>` to work whenever .MATCH is called [2f143f476d][0150c7b8c5]
+ Fixed issues with false positive case-insensitive regex matches
when only start of string and end of string match [f756b4b54f][25048824c8]
New in 2017.04.2:
+ Fixes:
+ Fix "Cannot invoke this object (REPR: Null; VMNull)" [4a560aa]
+ Improve relations between %?RESOURCES and Native trait [647abfe]
+ Support all appropriate IO::Path methods on Distribution::Resources [f4f1c42]
New in 2017.04.1:
+ Fixes:
+ Removed unwanted debugging output [c9ebfc20]
+ Reverted 9d8e391 IO::Path.resolve fix for JVM, as it does not yet know
how to do utf8-c8 decode [88a6facc]
New in 2017.04
+ SPECIAL NOTES:
+ There are two Upgrade Notifications for this release:
- Part 1: http://rakudo.org/2017/04/02/upgrade
- Part 2: http://rakudo.org/2017/04/03/part-2
- Part 3: http://rakudo.org/2017/04/17/final-notes
+ Changes for Texas operators listed in this release also apply to their
fancy Unicode alternatives. https://docs.perl6.org/language/unicode_texas.html
+ Fixes:
+ Fixed infinite loop due to wrong args in many Cool methods [8c88b0c]
+ Fixed failure to distinguish rw args in Capture.WHICH [4605d52]
+ Fixed regression in .rotor with negative gaps [5917b81]
+ Fixed a 1-arg-no-phasers path in .map stopping after 1 value [86dc997]
+ Fixed containerization issues in listinfix metaops [16f950b]
+ Fixed Inline::Perl5 detection in t/harness6 [b15cd20]
+ Fixed incorrect number of tests run in t/harness6 [8766370]
+ Fixed t/harness5 incorrectly failing NOTESTS runs [f28c515]
+ Fixed crash in S/// and s/// for some combinations of adverbs [43e0902]
+ Fixed crash when doing EVAL from multiple threads [218f8c4]
+ Fixed errors in concatenations of Hangul script with \r\n in it [a123eb3]
+ Fixed case insensitive string compare with synthetics in haystack [e87179d]
+ Fixed case insensitive regex with synthetics [666ce35]
+ Fixed issues with foreign lang cursor without a name [ffeb896]
+ Fixed introspection of attributes with explicitly typed keys [a6ba994]
+ Fixed spurious warnings in define_slang [666ce35]
+ Fixed issues in :exists with multidimensional hash slice lookup [a758c0b]
+ Fixed unwanted overflow when too-large values were *assigned* to native attributes [666ce35]
+ Fixed failure to set $/ by matching routines when used in loops [a62b221]
+ Fixed handling of Baggy (|) Mixy, Mixy (|) Baggy in dispatch [48619f8]
+ Fixed Allocations tab in --profile output [c16cdb2c]
+ Made `is equiv` to not propagate operator's `assoc` value [f9f0883]
+ Made Code.ACCEPTS pass take its parameter `is raw` [c0eb9bd]
+ Fixed SEGV in IO::Pipe.t [3e275dd]
+ Made `dynamic` default to False instead of Nil on Scalar/Hash/Array [28a6e80]
+ [IO] Fixed wrong results in IO::Path.resolve for paths with combiners on `/` [9d8e391]
+ [IO] Fixed a crash when using Whatever limit in in IO::Pipe.lines [0c62815]
+ [IO] Fixed crash in smartmatch of Cool ~~ IO::Path for some Cools [c360ac2]
+ [IO] Made IO::Path:: subclasses instantiate a subclass, not IO::Path [a0b82ed]
+ [IO] Fixed crash when very large files were read with IO::Path.slurp [d0924f1]
+ [IO] Ensured IO::Handle.Str coerced .path to Str [1f689a9]
+ [IO] Fixed crash when binary slurping large files with &slurp/IO::Path.slurp [756877e]
+ [IO] Fixed occasional zero byte read when binary slurping files [756877e]
+ [IO] IO::Handle.symlink/.link now take name of the link as argument;
the invocant is the target [8c09c84]
+ Various improvements to warnings and error reporting [6a77cda][d90c6bf][f9968b3]
[27f5469][41ac4b4][75c3f29][87fe800][7ba2fc5][093bb89][d3c93ad][6ee71c2][490ffd1][7112a08]
+ Additions:
+ Gave `Thread` a numeric representation [e5528dd]
+ Made Any.maxpairs/.minpairs use `cmp` and return Seq [5927186]
+ Made `Parameter` object available in bind error [0f9f000]
+ Added typed exception for parameter constraint failure [f1cd8e3]
+ Allowed nativesize to be unset in NativeHOW, but still compose [af4aae2][932b59f]
+ Made sure that Baggy and Setty handle bare objects [7433947][e660a57]
+ Added experimental coverage reporter tool with MoarVM backend (so far works with
reports for core code; more work needed to expand for wider use) [932b59f][d0924f1]
+ Made it possible to assign to system dynamic vars on initialization [1b9d53c]
+ Broadened acceptance in `(<+)`/`(>+)`: all Quanthashes can be considered Settys
and all Baggys can be considered Mixys [1ebeeb3]
+ Implemented `skip-all` option in &plan in Test.pm [14b6d5f]
+ Made it possible to use `.head(*-N)` (all but last N) [1fea495]
+ Made it possible to use `.tail(*-N)` (all but first N) [188b7b1]
+ Allowed `*` and `Inf` args to Array|List.tail [1b34ea6]
+ Made .Set, .SetHash, .Mix, .MixHash, .Bag, and .BagHash nodal [189615c][3e412b9][7025050]
+ Made `infix:<(&)>` a multi and added basic candidates [e8cb9a2]
+ Made `(-)` a multi [495f970]
+ Added default descriptions for Test.pm's `like`, `unlike`, and `use-ok` [4b915f7]
+ Made `is rw` on optional params throw a typed exception instead of generic one [8370675]
+ Made it possible to pass IO::Path to `is native` trait [9984080]
+ Implemented bypass of dependency resolution in the Staging repo
via RAKUDO_RERESOLVE_DEPENDENCIES env var [5b862a3][d4d6a99][2a0a2d3]
+ Merged Cursor into Match; in preparation of for future removal of Cursor [b7c036c][cdd625b]
+ [IO] Added more powerful features to IO::Path.extension [b1e7a01][15a25da]
+ [IO] Added IO::Path.add [40217ed][0b5a41b]
+ [IO] Implemented IO::Path.sibling [8bacad8]
+ [IO] Implemented IO::Handle.lock [214198b]
+ [IO] Made IO::Path throw when path contains NUL byte [e681498]
+ [IO] Implemented `:completely` param in IO::Path.resolve [6a8d63d][51e4629]
+ [IO] Implemented IO::Handle.slurp [f1b4af7]
+ [IO] Made IO::Path.dir a `multi` method [fbe7ace]
+ [IO] `$*TMPDIR` now has a container, so it's possible to `temp` it [b62d1a7]
+ [IO] Allowed IO::Path.z to be called on directories, to mirror .s [b6838ee]
+ [IO] Implemented IO::Handle.spurt [a5800a1]
+ [IO] Implemented &indir [a0ef2ed][ca1acb7]
+ [IO] Implemented IO::Path.concat-with [966a7e3]
+ [IO] Made `&*chdir` return new `$*CWD` [5464b82]
+ [IO] Expanded accepted arguments from Cool to IO() in &spurt [099512b]
+ [IO] Implemented :parent in IO::Spec::Cygwin.canonpath [0c8bef5]
+ [IO] Made IO::Path.lines lazy again (reversal from last release) [90da80f]
+ [IO] Re-added :close param to IO::Handle.lines (reversal from last release) [90da80f]
+ [IO] IO::Handle.lines($limit, :close) now closes the handle when $limit is reached [90da80f]
+ [IO] Added IO::Pipe.path and .IO methods to return an IO::Path type object [d46e8df]
+ [IO] Made IO::Path.mkdir return invocant on success [c01ebea]
+ [IO] IO::Path now `does` role `IO`. This exists solely as a future compatibility feature with
`IO()` coercer type check and provides no new methods [87987c2][c95c4a7][fd503f8]
+ [IO] &chdir and IO::Path.chdir now support :r, :w, :d, :x args for
file tests and default to :d test only [a0ef2ed]
+ [IO] Changed coercers from Str() to IO() in `&*chdir`, &chdir, IO::Path.chdir, &rename, &move,
© to avoid limitations of IO::Path.Str and race conditions with `$*CWD`
[2483d68][a0ef2ed][ff97083]
+ [IO] Changed a Capture of remaining args to be passed to the delegate IO::Handle
methods, instead of the internal .open call in IO::Path .lines, .words, .comb,
.spurt, and .split [099512b][90da80f]
+ [IO] The following now return Failures instead of throwing: &chdir, `&*chdir`, &spurt,
IO::Path.spurt, IO::Handle.spurt, IO::Path.slurp, &symlink, &link, &rename, &move, ©
[a0ef2ed][2483d68][5464b82][c13480c][da1dea2][ff97083]
+ Removals:
+ Removed unused $.pid from Proc [5b8d4c2]
+ [IO] Removed &mkdir candidate that creates multiple dirs [0d9ecae]
+ [IO] Removed IO::Path.abspath [cb323d5][a432b3d]
+ [IO] Made IO::Path.new-from-absolute-path a private method [7f73f92]
+ [IO] Removed vestigial IO::Path.pipe [a01d679]
+ [IO] Removed unused Capture in signatures of some .IO coercers [0c7e4a0]
+ [IO] Removed IO.umask method [87987c2][fd503f8][c95c4a7]
+ [IO] Removed :bin argument in IO::Handle.Supply; now uses handle's mode instead [184d499]
+ [IO] IO::Handle and IO::Socket no longer `does` role `IO` [87987c2]
+ [IO] Removed .chmod, .e, .d, .f, .s, .l, .r, .w, .x, .modifies, .accessed,
.changed, .mode, and .watch methods from IO::Handle [36ad92a][50aea2b]
+ [IO] Removed &tmpdir and &homedir
+ [IO] :$test param on &chdir and IO::Path.chdir is now deprecated
and will be removed in 6.d language [a0ef2ed]
+ Efficiency:
+ Made .Set/.SetHash.clone about 250x faster [d673ea7]
+ Make Baggy (&) Baggy about 80x faster [e9a3075]
+ Made Mixy (&) Mixy about 60x faster [03ef4be]
+ Made Str (elem) Map / Map (cont) Str 50x faster [a8c6eca]
+ Made Setty (&) Setty about 40x faster [89b5d65]
+ Made Setty (-) Setty about 40x faster [49c0ab6]
+ Made Baggy (|) Baggy at least 40x faster [4facf10]
+ Made Mix.BagHash and Mix.Bag coercions about 28x faster [2d8ac1e][af50e06]
+ Made Setty `(<+)`/`(>+)` Setty at least 25x faster [224e40f]
+ Made Mix.MixHash coercion about 25x faster [de983bc]
+ Made Map (|) Map 15x to 20x faster [9470d1c]
+ Made Setty (|) Setty about 25x faster [49807eb]
+ Made Object Hash.Set(Hash) coercion 12x faster [fb5d726]
+ Made .invert about 10x faster [7ea0f66]
+ Made Baggy coercion to Set|SetHash 10x faster [f947a19]
+ Made @a.first(Foo) 6x-10x faster (also affects many set operators) [9671ffe]
+ Made Iterable (|) Iterable about 9x faster [80062b0]
+ Made Set.WHICH about 8x faster for 50 elem Sets [167a0ed]
+ Made Set.SetHash coercion 12x faster [2731087]
+ Made coercion of Map to Set(|Hash) about 8x faster [4683e83]
+ Made Setty coercion to (Bag|Mix)Hash 7x faster [6686abb]
+ Made Map (&) Map about 7x faster [605e9e9]
+ Made Baggy `(<+)`/`(>+)` Baggy at least 6x faster [928a406][0672082]
+ Made Mixy `(<+)`/`(>+)` Mixy at least 5x faster [38b341a][0672082]
+ Made (cont)/(elem) 25% to 5x faster for QuantHashes [5b7ef3e]
+ Made Setty.hash about 4x faster [10fe02a]
+ Made Setty.pick/SetHash.(grab|grabpairs) 4x faster [6c9f31b]
+ Made Iterable.Set(|Hash) about 4x faster [f849df3]
+ Made m:i// regex matching 1.8x-3.3x faster [3e275dd]
+ Made Enum.ACCEPTS(Enum) 2.9x faster [17d34cd]
+ Made Iterable (&) Iterable about 2x faster [0fc3751]
+ Made internal nqp::index 2x faster, affecting many methods that work with strings [f1fc879]
+ Made case-insensitive regex 2x faster [822566f]
+ Made Baggy.new-from-pairs 1.5x faster and use less memory [ff52b74]
+ Made concatenation with control chars at end 30% faster [027aa54]
+ Made Baggy.new, bag(), and mix() about 25% faster [ae3ff5c]
+ Made Iterable.flat about 20% faster (also affects `*@foo` slurpy params) [f532f81]
+ Made Numeric.ACCEPTS(Any) about 15% faster [89457f8][e0e0800]
+ Made Hash.Bag about 15% faster [e7e97c7]
+ Made generic handling of `(<+)` and `(>+)` about 15% faster [5ae4549]
+ Made Set.new(42) about 8% faster and use less memory [fb60621][1471527]
+ Made Set.new-from-pairs about 4% faster for Pairs [213a72c]
+ Made Any.unique a few percent faster [6060bd3]
+ Streamlined tai/epoch conversion / leap-second check [dcebce4]
+ Added fastpath for `infix:<(|)>` with empty list of args [e24980f]
+ Made multiple memory use reductions in internals in MoarVM [d0924f1]
+ Made Grammars pre-compute their NFAs during precompilation [064b585]
+ Improved FSA which gives better multithreading performance [20af51f]
+ [IO] Made IO::Spec::Unix.split 36x faster [4fdebc9]
+ [IO] Made IO::Spec::Unix.catpath 9x faster [55abc6d]
+ [IO] Made IO::Spec::Unix.join 8.5x faster [55abc6d]
+ [IO] Made IO::Spec::Unix.is-absolute about 4.4x faster [4eef6db]
+ [IO] Made IO::Spec::Unix.catdir 3.9x Faster [0111f10]
+ [IO] Made IO::Pipe.lines 3.2x faster [0c62815]
+ [IO] Made IO::Spec::Win32!canon-cat 2.3x faster [0e36bb2]
+ [IO] Made IO::Path.child 2.1x faster on `*nix` [55abc6d]
+ [IO] Made .IO.slurp about 2x as fast [b4d80c0]
+ [IO] Made IO::Handle.open 75% faster [4032953]
+ [IO] Made IO::Spec::Unix.rel2abs 35% faster [dcf1bb2]
+ [IO] Made IO::Path.slurp 12%-35% faster (for small files) [c13480c]
+ [IO] Made IO::Path.new 7% faster when creating from Str [ae5e510]
+ Assorted internal improvements to CPU/memory use [1132b1a][a123eb3][1bacc61][c3c849e]
[fa9aa47][666ce35][e7e97c7][213a72c][fab9f87][9671ffe][08a9735][8a4df162][b64f210][1277fb5]
[463898a][3f36508][65037c3][e408e47][6ef7b59][a4b30dc][7875eaf][d793e21][bf63719][9a2446c]
[0dbe451][1867099][2694f5d]
New in 2017.03
+ Fixes:
+ Made IO::Path.lines non-lazy so it can always close the file handle [0083c4f]
+ Fixed unwanted container re-use in `infix:<x>` [5b7b7fb]
+ Made Emoji_Modifier_Base return Bool instead of int with uniprop [2125d4d]
+ Fixed JIT rounding bug for negatives in nqp::div_i [deac603][f73d984]
+ Fixed failure in `\c[]` with non-ASCII names [deac603]
+ Fixed issues in `infix:<div>` optimization [deac603]
+ Fixed .split(...:skip-empty) not skipping with empty strings [fc86084]
+ Fixed duplicated .done/.quit on Channels in Proc::Async on exit [c4a4c84]
+ Fixed error handling when Proc::Async process failed to spawn [f73d984]
+ Made sure `infix:<xx>` always returns a Seq [1eb7b1f]
+ Partially fixed `infix:<xx>` being non-lazy [f190f24]
+ Fixed SC collision when loading identical modules from
different dists [254f76a]
+ Fixed CURI loading of modules with identical short-names [c1a0fa7]
+ Fixed SEGV in exception handler resolution in sub/INIT/return [b2eb115]
+ Fixed SEGV on `xx` with a huge repeat values [1cafc67]
+ Fixed SEGV on chars with a huge number of combiners [1cafc67]
+ Fixed SEGV when `Scalar` type object is processed by `unique` [cfe0e04]
+ Fixed .comb(Int) failing to work on Cool [a08e953]
+ Fixed hang in dispatch of .lines/.words when given wrong args [7425737]
+ Fixed cases of lack of panic upon with quantifiers in regexes [91a4ac5]
+ Fixed broken thunking of infix:<notandthen> [5e6f30a]
+ Fixed failure to thunk RHS on `or=`, `and=`, and `notandthen=` [3e88c41]
+ Fixed precision loss with `cmp` involving Rationals/Int [9e8ecb7]
+ Fixed crash in .Bool, .so, .not, .hash, and .elems on Baggy:U [e8af855]
+ Fixed crash in .Str on Bool:U [3de5fb2]
+ Fixed crash in IO::Special .WHICH/.Str [dd4dfb1]
+ Fixed install wrapper when no binaries are found [796b6a8]
+ Fixed crash when calling .sort on reified empty Array [8e250db][75e070f]
+ Fixed `Nil` being displayed as `Mu` in REPL [a274bdd][cd47e2a]
+ Fixed previous output silencing exceptions in REPL
[db70a1f][61a65ce][7f9235c]
+ Fixed loss of data when using a hash in assignment to itself [ae7bcf1]
+ Fixed IO::Path.e failing to detect changes on the filesystem [76f7187]
+ Fixed `infix:<eqv>` with Seq/List containing same elements [f9eb811]
+ Fixed CArray to pass NULL when for type object elements [26e6993]
+ Fixed GC deadlock when event loop worker thread was spawned [26e6993]
+ Fixed `:i` in regexes using lowercase instead of fold case [26e6993]
+ Fixed parsing issue with detached methods in `[…]` metaop [e1ebb50]
+ Fixed unwanted list flattening in triangle reduce [10f5f74]
+ Fixed Range.int-bounds for NaN and Inf end points [79f2681][16ef21c]
+ JVM backend fixes [b1def95][2f6d2c6][dc19892][cef41b2]
+ Various improvements to error reporting
[dc5fb20][d66c382][b11dc88][6cb9be2][3bf734f][26e6993]
[20fa14b][127338a][1934a56][27dc7b1][1e24666]
+ Additions:
+ Made symbol imports of `require`d modules lexical. For more information,
see http://rakudo.org/2017/03/18/lexical-require-upgrade-info/
[63cf5ca][3e86d0f][5b98caa][6771dee][9da6de4][4fce405][030c4c5]
+ Added ≤, ≥, ≠ as Unicode versions of <=, >=, and != [5c68ea6]
+ Made it possible to hyper ops that return a Seq [e2db7b8]
+ Made `infix:<∘>` keep RHS's .count and .arity and LHS's .of [032b283][cb149a8]
+ Made purity propagate up through meta-meta ASTs [68a40f7]
+ Made Proc::Async default to translating newlines [05add43][2973ccd]
+ Implemented Str.parse-names [5c1761a]
+ Added `$epsilon` argument to Complex.Rat/.FatRat [a4af702]
+ Fixed loss of precision in Instant.Rat [a4af702]
+ Implemented .FatRat coercer in Cool and Numeric [a4af702]
+ Added Mu candidate for `infix:<xx>` [e270a15]
+ Implemented Mu.iterator [81fcd1b]
+ Made sure Str.split always returns a Seq [f595733][8301a30]
+ Made List.reverse return a Seq [beda576]
+ [EXPERIMENTAL] Added support for Parameter.set_default [d6c95ea]
+ Implemented new internal braids API to make future optimizations easier.
This affects any slang modules that access `%*LANG`, `%*PRAGMAS`, and
`$*ACTIONS` internals using unofficial API.
+ Removals:
+ Removed IO::Path.Bridge [212cc8a]
+ Removed support for IO::Handle.lines(:close) agument [76a59cf]
+ Efficiency:
+ Made min/max/min=/max= about 3x faster [a9c5196]
+ Made .WHICH of numerous types about 1.8x faster [79bb179][65b0040]
+ Made case-insensitive regex match 20%-30% faster [5b6e0fb][f73d984]
+ Made triangle reduce right op with 2 params 2x faster [e114d52]
+ Made triangle reduce right op with 2+ params 1.5x faster [d04c47f]
+ Made IO::Handle.lines about 10% faster [9019a5b]
+ Made IO::Handle.getc about 3% faster [9019a5b]
+ Made reduce chain op about 5% faster [9cec31a]
+ Made IO::Handle.lines about 10% faster [9da50e3]
+ Made List.reverse 0%–30% faster and reduced memory pressure by up to 70%
[beda576]
+ Made loops/maps with NEXT phaser about 5% faster [80e0bce]
+ Made `infix:<%%>` about 14x faster for Int,Int case [755e25b]
+ Made `infix:<%>` about 8x faster for Int,Int case [5ec2517]
+ Made Junction creation about 20% faster [fafe663]
+ Made callframe() about 20% faster [7966dad][9a74cd0]
+ Made meta reduce with right-assoc. op 30%–200% faster [60a8f9e][2cf9b53]
+ REMOVED caching of IO::Path.e results to fix unwanted behaviour [76f7187]
+ Assorted internal improvements to CPU/memory use
[b2e0ac0][25a3cc5][b61b3c7][829762a][45b3af8][7010ae9][556db9d][9e9a4ad]
[8e8cd14][7556498][adb6f87][9a109c9][3de7b08][b283e52][0be7247][74573d0]
[79d5670][313e7b2][e723e00][5843ee6][7c279c3][318f8ee][4ef1e69][9d497e9]
[b597398][4bc826d][9da50e3][2a2e460][0633f03][d444f65][f94a2c7]
New in 2017.02
+ 6.d.PREVIEW changes:
+ It is now possible to use different language versions in different comp units.
Pragma `use v6.d.PREVIEW;` loads PREVIEW version of 6.d language [9044fca]
+ Made `await` non-blocking (i.e. not using a thread for waiting) [dd1cb5f]
+ Made `react` non-blocking [4aa8d70]
+ Various improvements to error reporting [ee7c1bb][a2d69a0][f22170f]
+ Fixes:
+ Fixed data race in NFA cache [8f53a6f]
+ Fixed handling of Unicode characters on Windows command line [8f53a6f]
+ Fixed overflow during full GC collection on 32-bit systems [8f53a6f]
+ Fixed GC problem in string repeat op [8f53a6f]
+ Fixed .perl.EVAL roundtripping for circular Arrays and
Hashes [67aeefa][673f06b]
+ Fixed instantiation of subclasses of classes that do Rational [7f245f7]
+ Fixed incorrect handling of precision flag in sprintf '%d' [a1c7d01]
+ Fixed `infix:<xx>(..., *)` for empty Slips [4e49ec1]
+ Fixed .pairs, .values, and .kv with native shaped arrays not having values
in writable containers [0fdb9e4][1181afe][e195e5f]
+ Changed Pair.AT-KEY on non-existent key to return Nil [9728c4a]
+ Fixed Slip.List not returning a Slip instead of a List [4d4822a]
+ Made Map.List and Hash.List always return a List [6dd542f]
+ Fixed crash when using `.=` to initialize attributes [700a077]
+ Fixed leak of asynchronous task handles [483e4fd]
+ Fixed issues in .skip-one in internal Mappy iterator [3a77cb5][e7ea4c2]
+ Fixed count-only on all Hash based .kv methods reporting only half of
actual value [aecbb3e]
+ Fixed crash in internal iterator used by .rotor and .batch [bcd902a]
+ Fixed LAST phaser called twice in sunk do for {} loops [3424465]
+ Fixed various discrepancies as a result of inlining non-native types [f8b3469]
+ Fixed leaks and an invalid read in synchronous sockets on errors [9ed4449]
+ Fixed NFA generation for the constructs `x ** 1..2` and `:i <[A..Z]>`,
and hardened NFA processing in MoarVM so as to not read out of bounds [9ed4449]
+ Fixed memory leaks on startup and module load with augmented types [9ed4449]
+ Fixed smartmatch of Complex against Ranges [f2894d3]
+ Fixed premature overflow of `div` on native int types [c98b3a5]
+ Fixed flat()/Iterable.flat not propagating `is-lazy` [51b0aba][ca102c5]
+ Fixed hang with `*@` slurpies when given infinite list [51b0aba]
+ Fixed abs() failing with negative zeros [f85978b]
+ Fixed List.perl of containerized empty lists [a148c70]
+ Fixed at-times incorrect result of Rational.ceiling [6372417][79553d0]
+ Fixed Rational.norm failing to normalize the Rational [aac9efc]
+ Fixed issues with close() and read() on closed async sockes [f16cf37]
+ Fixed occasional disordering of messages in Supplier::Preserving [cabf6fb]
+ Fixed a data race in NFA caching causing SEGV [62bd30b]
+ Fixed data races and over-sharing of %*ENV in precompilation [bab1c02]
+ Fixed data races in CompUnit::PrecompilationStore::File
[accc156][39c517e][917d473][a88da2e][6c374d5][2b1eb64]
+ Various improvements to error reporting [10bcec2][5822605][f230224][b51a550]
[8733aa5][483e4fd][f0b9234][e922275][51ebfb1][acae345][1b99196][301bcf9]
+ Additions:
+ Implemented Array.clone [dc69daf]
+ Implemented Mu:U.clone [11d005e][4b85db6]
+ Added experimental `infix:<unicmp>` [6f6f0cf][5870ef9][eb3356c][6990133]
+ Added experimental `infix:<coll>`, `Any.collate`, and `$*COLLATION`
[2061485][4efcc29][46313fa][1923878][5611425][6990133][f85978b]
+ Implemented Any.skip [8a6bfc6]
+ Implemented Supply.skip [d71bf1e][15753fd]
+ Implemented Any.batch [e0201f1][f6531d3]
+ Added Supply.rotor($batch) candidate [5694727]
+ Added support for all Nd characers in sprintf format strings [483e4fd]
+ Added support for more named Unicode sequences [3a77406]
+ Made named Unicode lookups (e.g. "\c[...]") case insensitive [3a77406]
+ Added support for Support East_Asian_Width Unicode property [9ed4449]
+ Made CompUnitHandle.globalish-package return the actual Stash [960a789]
+ Made Test.pm6's skip() only accept Int test counts [ae9d517]
+ Numerious fixes related to colonpair-extended names on subroutines [48abeee]
+ Made merging of Perl 5 symbols use the same mechanism as for Perl 6 [4e7ab20]
+ Included try-load in CompUnit::PrecompilationRepository's interface [d932355]
+ Made S/// set $/ to Match objects made during substitution and avoid
returning the result in $/ causing container-reuse in loops [97359ae]
+ Made CompUnit::Repository::Installation sort binaries by version [7c39bbf]
+ Made it possible to call IO::Path.s on a directory [25fd1ca]
+ Gave fakesignature a $/, $_, and $! to avoid unintended sharing [71a1283]
+ Implemented smartmatch of character Ranges [8477f3b]
+ Str ~~ Numeric no longer throws if Str cannot be coerced to Numeric [1615c83]
+ Efficiency:
+ Made SetHash.iterator|pairs|antipairs|kv|values about 20x faster [a2fbe20]
+ Made Int.WHICH about 1.7x faster [9841313]
+ Made Baggy.kv about 15% faster [e995107]
+ Made Baggy.kxxv about 30% faster [5db0b29]
+ Made Baggy.antipairs about 25% faster [2922ec4]
+ Sped up postincrement and postdecrement by about 5% [fd74c91]
+ Internal improvements for 1%+ faster parsing [dd514da][9493ffb][951a441]
+ Made `<ws>` parsing 5%+ faster [0bb7c20][d5262e6]
+ Generalized sink branch optimize logic improving performance for
sunk post increment [5401a1a]
+ Improved radix operations (50% faster with non-ASCII digits) [9ed4449][c98b3a5]
+ Made uniprop/unival/unimatch 1.1x to 2.1x faster [411782e]
+ Fixed performance loss on `infix:<x>` with very large number [8878af8]
+ Made Map.sort about 1.5x faster (also affecting its .perl/.gist/.Str) [0ee3b7d]
+ Made an improvement in candidate selection order of &sort [b7c6e73]
+ Made .skip of internal mappy iterator about 15% faster [54f647d]
+ Made List.keys on lazy lists a bit faster [0ad05ce]
+ Made Seq.InfiniteLoopIter about 6% faster [00e60d9]
+ Made do repeat while about 3%-11% faster [a832944][af49026]
+ Made `do while foo { bar }` loops about 20% faster [4932112]
+ Made `do repeat while foo { bar }` about 20% faster [3888b42]
+ Made `do loop ( init; while; next ) { }` loops about 6% faster [c2eb7fb]
+ Made `.map: -> $_ --> non-Slippy-Foo { ... }` maps about 2x faster [fdcf462]
+ Made firing of phasers about 25% faster [7e98504]
+ Made `my @a = do for @b { ...; PHASER foo }` about 1.5x faster [031efe0][3424465]
+ Made `for @b { ...; PHASER foo }` about 15% faster [031efe0]
+ Made `@b = @a.map: { }` 10% and `@b = do for @a { }` 20% faster [3e28b1e]
+ Made `for @a { ... }` about 1% faster [d69f375]
+ Made `my @b = @a.map: -> \a,\b { }` about 15% faster [9f15a4d]
+ Made `for @a -> \a, \b { }` about 2% faster [7384939]
+ Made .tail on reified List/Array about 8x as fast as `[*-1]` and .tail(N)
about 16x as fast as `[*-N .. *-1] [*-N .. *-1]` [833fe43]
+ Made improvements and refactoring of various internal iterators
[f2b97b0][18e6f0d][87f61d9][c069f45][ad90806][4ef37cf][54f647d][49e2d40a]
[7c26985][4d8fc05][b1afc13][072d959][9d5c3fd][6b6a0b4][b31c591][b9d9279]
[f799a03][98f9d8a]
+ Made improvements to performance of internals [ed4ef3b][f85978b]
New in 2017.01
+ Fixes:
+ Fixed importing globals nested in imported packages [85d8b14]
+ Fixed "Object of type A in QAST::Var value, but not in SC" [43d20eb]
+ Fixed use Foo::Bar; class Foo {my Foo::Bar $bar} not finding Foo::Bar [5c4db5e]
+ Fixed class Foo { use Foo::Bar; my Foo $foo; } not finding Foo [226cb36]
+ Fixed our scoped nested package swallowed by lexically scoped parent [85b9d8a]
+ Fixed imported nested enum colliding with symbols from outer scope [a962928]
+ Multiple methods that return listy things now throw instead of failing to
avoid accidental Failure silencing through 1-elem lists [99e33fc][bd4e1f4]
+ Made List.roll always return a Seq [bd4e1f4]
+ Fixed SEGVs and GC panics in certain deep recursions [58c79e2]
+ Fixed detection of runtime errors in threads [b8df3a6]
+ Made sure .sort on shaped arrays uses the leaves [a4bc51a]
+ Made U+2212 infix:<−> and prefix:<−> same as regular `-` for all types [91af128]
+ Made sub MAIN usage ignore anon *% param [38ec79c]
+ Fixed lack of warning on unitilized values in infix:<x> [c498d5b]
+ Fixed Distribution::Path bin/resources file format [393afcf]
+ Fixed spurious warnings in List.reduce [1ee24cc]
+ Sorting uninitialized List now returns a new list [005166e]
+ Made .sort always return a .Seq [434bf75]
+ Fixed combinations() incorrectly returning 1-item list in some cases [d86c419]
+ Made combinations() always return a Seq on succcess [db1836a]
+ Fixed useless "useless use" warnings in hypered ++ and -- [7193df1]
+ Fixed numerous bugs with $limit in lines() [19df358]
+ Fixed regression with mutability of .pairs on shaped arrays [dc7b688]
+ Fixed regression with infinite lists assignment to shaped arrays [aa35065]
+ Fixed regression with looping over uninitialized shaped array [696b1f4]
+ Fixed regression with regex match against NFC [8d35951]
+ Fixed infix:<cmp> with 0-denominator rationals [a567eb4]
+ Fixed crashes in X::OutOfRange reporting with 0-denominator rationals [b2332c2]
+ Fixed &infix:<==> on 0-denominator rationals [73182d4]
+ Fixed &infix:<===> on 0-denominator rationals [cb2476f]
+ Fixed incorrect .isNaN result for 0/0 rationals [7434a8f]
+ Fixed IO::Socket::INET.new not parsing IPv6 URLs
correctly [cb9ec03][df20d8b][fbd061b][8751f05]
+ Made IO::Socket::INET.new fail when invalid port or family is given [cb9ec03]
+ Fixed Range.AT-POS on int ranges failing for too-high indexes [c5e54ef]
+ Fixed (^) set operator on Baggies to take weights into account [a687d95]
+ Fixed incorrect dispatch in some cases of multi subs with where clauses [0c0dd82]
+ Fixed unwanted role punning due to attached Pod [d487657]
+ Made Routine.prec(key) return '' rather than Nil on fail [d7d76b7]
+ Moved .prec from Routine to Code [a7ccfc6]
+ Fixed an occasional heap profiler crash, and prevent heap profiler
from greatly reducing the number of full GC collections [e182deb]
+ Fixed specializer log slots keeping alive, and so leaking,
objects once specialized code has been produced [e182deb]
+ Fixed build under some versions of MSVC [e182deb]
+ Fixed code-gen bug in dispatch:<hyper> [3d86286][ba8a284]
+ Fixed `1,*,3 Z~ <a b c>` case using Whatever value for the rest of list [471f4ba]
+ Fixed threading issues in ||=, //=, and &&= [d1c2e76]
+ Fixed GC in spesh triggered by managed mutex use [25615c7]
+ Fixed bugs in interaction between inlining, GC, and threads [25615c7]
+ Fixed endpoint-exclusion on string ranges with non-alphanumeric chars [daf7e51]
+ Fixed fatality of Nil.chomp/chop (back to just a warning) [7c81bec]
+ Fixed infix:<eqv> on NaN and signed zeros [3f80e13]
+ Fixed crash in infix:<cmp> when comparing Real and RatStr [8ec54ba]
+ [TEST] Test.pm tests no longer backslash every backslash in descriptions [b183cab]
+ [TEST] Fixed TAP::Harness parsing of single backslashes in test descriptions [b120ac4]
+ [TEST] Fixed TAP::Harness failing to parse full-file skip directive [aee7af3]
+ [UNI] Fixed `ISO_Comment` property in uniprop [4ff2fb2]
+ [UNI] Fixed uniname() on "\x[80]", "\0" and other controls [8163113]
+ [UNI] Made unival() use full Unicode names for Numeric_Value_* [dbbf9dd]
+ [UNI] Fixed several aliases for Unicode characters [5ba982a][644cd34]
+ [UNI] Fixed number of characters reported for hundreds of Unicode Emoji [823f0f7]
+ [UNI] Fixed compilation of /:ignoremark \"/ to actually ignore marks [6188771]
+ [UNI] Fixed mismatched closers on U+298D/U+2990/U+298E/U+298F brackets [76283f6]
+ [UNI] Fixed return value of uniprop Bidi_Mirroring_Glyph if no BMG [48e8ccc]
+ [UNI] Fixed breaking after Prepend characters [7c8b705]
+ [JVM] Fixed build issues [7bba13a][adcfb8b][e6ccb47][29f487e]
[fb4f161][4320fdc][39bf63f]
+ Assorted improvements in error reporting
+ Additions:
+ Made importing globals from loaded modules lexical [4b529c8]
+ Added degenerate Any.match [3fe5893][cc0f836]
+ Added infix +/- for DateTime/Duration [6b850ba]
+ parse-base() now allows for omitted whole part [3282813]
+ Using a Bool:D literal as type constraint in signatures now warns [b01dfcd]
+ Made Bool.ACCEPTS work with Junctions [9fc616f]
+ Made Proc::Async sub-class friendly [a2cc58a][1dc0c01]
+ Implemented .clone for SetHash, BagHash, and MixHash [1ee9c82]
+ Implemented .List on shaped arrays [8568dd1]
+ Added own .perl method to Empty [ec0258a]
+ Made Inf and Whatever work as part of rotor()'s cycle [7ddc5f7]
+ Made it possible to use Inf and Whatever in .head and .tail [93b0ffa]
+ Implemented `next` in `whenever` blocks [f97d5c2]
+ [TEST] Test::is() now handles Mu types [268dc92]
+ [UNI] uniprop now handles Emoji properties [3baffe7]
+ [UNI] Implemented Bidi_Mirroring_Glyph as an integer property [7c8b705]
+ [UNI] Implemented Emoji grapheme breaking and other combined codes [7c8b705]
+ [UNI] Added Emoji Unicode properties [7c8b705]
+ [UNI] Added secondary and tertiary Unicode collation support [ee38721]
+ [UNI] Re-implemented UTF8-C8 streaming decode [7c8b705][ee38721][e182deb]
+ [UNI] Made all Nd chars accepted in ${} special variables [eba3fe0]
+ [UNI] Made all Nd chars accepted as regex quantifiers [e40a129]
+ Removals:
+ [UNI] Unicode 1 character names are now deprecated and issue a warning [e7c1d51]
+ Removed IO::Path:U.chdir candidate on account of it being a footgun [94df18c]
+ Efficiency:
+ [UNI] Made unival() slightly faster for repeated lookups [dbbf9dd]
+ [UNI] Made decoding UTF-8 text 14% faster [528ec53]
+ Made compilation of custom operators about 1.5x faster [c99fbc6]
+ Made improvements to memory management of various aspects of invocation records
(aka call frames), greatly reducing memory pressure in a number of cases,
especially in applications that produce and store a large number of closures.
Up to 20% improvement to CORE.setting build time and ~10% peak memory use
reduction observed [e182deb]
+ Made I/O memory buffers properly contribute to full collection criteria,
reducing memory overhead required [e182deb]
+ Made @a[*-1] 13% faster [b39c0d8][ab26b58]
+ Removed unnecessary caching on .elems in core code [ab26b58]
+ perl6 -ne '' <large file> is now about 40% faster [541d127]
+ Made IO::ArgFiles.lines about 10% faster [73797b7]
+ Made List.sort() about 4x faster [8d33b89]
+ Made native @a.sort() about 12x faster [4b2cea0]
+ Made Str.split(<a b c>) about 3x faster [f0398fb] and then 10%-40% faster
on top of that, based on length of string [2496963]
+ Made Any.sort(&by) about 40% faster [1374fcf][def5262]
+ Made List.sort(&by) about 5% faster on reified List/Array [1e54371]
+ Made .sort on 0- and 1-element lists 10%-40% faster [340bc90]
+ Made .sort on 2-element lists about 50% faster [4724bd6]
+ Made Supply.sort a multi for faster dispatch [54cc06b]
+ Made Cursor.MATCH about 10-15% faster [9eef565]
+ Made QuantHash.AT-POS and Baggy.new about 5%-8% faster [c13e67b]
+ Made is nodal check a bit faster [0f25d83][996ab6a]
+ Made Capture.Bool about 3x faster [516e527]
+ Made sorting of 0,1,2 element native arrays about 30% faster [4038c6c]
+ Made generating iterator after List.eager does not reify again [7a759d7]
+ Added Seq.join that's 25% faster than List.join [3c52aa0]
+ Make @a Z @a 5x faster [4ab020f][3d1d699]
+ Made slow-path in grep 10% faster [362f674]
+ Made fast-path in grep about 1.4x slower as a result of a bug fix [362f674]
+ Made internal improvements with Empty and SlippyIterator [ebe9147]
+ Streamlined .prec on operators [caba0d3]
+ Made zip(@a,@b,:with(&[+|~]) about 12x faster [62f7027]
+ Made zip(@a,@b,:with(&op)) about 7x faster [62f7027]
+ Made zip with generic listinfix ops (e.g. zip(@a,@a,:with(&[minmax]))
about 2x as fast [5c685f2]
+ Made zip(@a,@a,:with(&[=>])) about 5x faster [46cdf16]
+ Made generic right-assoc zip ops in zip(@a,@a,:with(...)) form
at least 2x faster [6703b4c]
+ Made Zop handling (except for non-LHS-thunky ops) 13x faster [f66d4b3]
+ Made List.from-iterator about 10% faster [8f3476d]
+ Streamlined Array.from-iterator, making it 30% faster in some cases [fab1a14]
+ Improved ||=, //=, and &&= by avoiding thunking and invocation [d1c2e76]
+ Made List.combinations(N) about 20% faster [1a54bba] and on top of that
made List.combinations() 1.5x, List.combinations(3..5) 2x faster [502fc77]
+ Made permutations() 2x to 24x faster [78edbbb][b5293c2][c64aeb3]
+ Made roundrobin() about 4x faster [73d0cec]
+ Made X and cross(...,:with) about 5x faster [8a3ff7b]
+ Made Xop about 7x faster [a26f513]
+ Made 1 X foo about 20% faster [d4a5b69]
+ Made List.rotor between 15x and 20x faster [d7b8214]
+ Made Range.excludes-(min|max|infinite|is-int) 2.5x as fast [99b186b]
+ Made reified List.Array about 3x faster [c9a9bc8]
+ Made List/Array.sum about 30% faster [017c6cf]
+ Made List/Array.fmt with no args about 60x faster [22e589a]
+ Made List/Array.fmt("%s") about 60x faster [7ef3682]
+ Made List/Array.join about 20% faster [ed482ec]
New in 2016.12
+ Fixes:
+ Fixed inability to autocurry superscript exponents properly [c35d562]
+ Fixed Match.prematch and Match.postmatch for zero-width matches [c04b8b5]
+ Fixed Match objects being erroneously treated as value types [7f26e8b]
+ Made U+2212 minus work in places it didn't [cb9df2b][01775b7][6cd2144]
+ prefix:<~> now calls .Str on Str types (helps with allomorphs) [e0a415f]
+ Fixed errors in `$*ARGFILES.lines` limit counter [bd42363]
+ Fixed bug with add history for Readline module in REPL [f544e4c]
+ sum and [+] metaop now correctly work on Junctions [8d04bec]
+ Fixed various scoping bugs with NEXT/LAST/QUIT [6bb8823]
+ Fixed issues in QUIT handlers running asynchronously [c027e6a]
+ Fixed occassional hangs in Proc::Async [e4d78c6]
+ Fixed operations still running after supply deactivation [f928a20]
+ Fixed Iterator.flat occasionally skipping inner iterables [61a18c0]
+ Fixed slurp not propagating :bin and :enc args on `$*ARGFILES` [15f51a5]
+ Fixed negative zero handling in many places
[f1263ab][e2587cd][a9654c0][085145f]
+ Synthetics in numbers in colonpairs in :42foo format now throw [4663d43]
+ Fixed hang in .subst with no arguments [0a874fb]
+ Fixed sleep() with huge values failing to sleep
[c797d3f][7c5ea31][2f72fa0]
+ Fixed attributive binding not looking outward for `self` [843a6be]
+ Fixed sprintf($format) without args issuing spurious warnings [35183f3]
+ Fixed infix:<===> failing when both sides are allomorphs [4a59ab4]
+ Fixed data race in Supply.interval [47ffdea]
+ Fixed data races in supply/whenever [33f7456]
+ Fixed memory corruption in Proc::Async [74eb6b9]
+ Fixed handling of time resolutions below 1ms in Supply.interval [c38f1ad]
+ Fixed issues with `-Inf` being a single term [ae614f9]
+ Fixed Signature.gist stripping sigils from anon typeless scalars [219f527]
+ Made permutations/combinations/grep die instead
of fail()ing [ab3a59c][bc13bb5]
+ Fixed spurious warnings on .trans with regex pair complements [2e1b82c]
+ Fixed premature frees in async sockets when errors occur [b2ac4e4]
+ Fixed handling of superscript powers larger than int [0428b79]
+ Fixed Proc::Async sending empty string to taps on program exit [7532297]
+ Fixed wrong results for .first on Numerics [8cb3e1b]
+ Fixed matcher-less .first not respecting its adverbs [ababb24]
+ Fixed `sink` statement prefix failing to explode Failures [345f6a7]
+ Fixed regression in S:g/// not returning original string [5476d60]
+ Reverted .match/.comb to return empty List instead of Empty when failing
to match [5476d60]
+ Fixed Mu.clone incorrectly marking all attributes as initialized [9a161fa]
+ Fixed cloned Baggy having an undefined .WHICH [9a161fa]
+ Fixed smartmatching against UInt type object [f9d34a9]
+ Fixed some Date constructors accepting invalid dates [aa27d5c]
+ Fixed .rotor on empty list returning an internal iterator object [5558710]
+ Fixed unimatch to check canonical short/alternate unicode props [b456471]
+ Fixed uniprop to return correct values for na, uc, tc, lc properties
[2a8ec40]
+ Fixed uniprop for 'Numeric_Value' not returning a numeric value [9ff5b7e]
+ Fixed crash with Rat Ranges constructed with Range ops [1d46004]
+ Fixed crash with tapping supplies supplied by thunked block [a980eb1]
+ Fixed .perl on parametarized Hashes with no items in them [003e654]
+ Fixed .perl for itemized Slips [8eef234]
+ Fixed chained `andthen`/`orelse` operators returning internals [287af6a]
+ Fixed ThreadPoolScheduler.cue not applying delays to all cues [b286048]
+ Fixed control exception propagation when thrown from within statements
handled by `without`, `with`, `andthen`, or `noandthen [9a3c350]
+ Fixed Rand.rand generating value equal to excluded end point [334d134]
+ Fixed `last` not working inside .grep's block [7021861][f775474]
+ Fixed .head not always returning a .Seq [69d808f]
+ Various fixes and improvements in error reporting
+ Additions:
+ Bare \b, \B, and \K in regexes now throw [08589d3][ee14067]
+ Added SQL as an output option for --profile-filename [f20b8b6]
+ Implemented native str Arrays [014d4cf][6d726f8]
+ sub MAIN now allows Enums as type constraints [546dbd9]
+ Count in .pick/pickpairs/grab/grabpairs can now be a Callable [e9487d6]
+ REPL with Readline module now loads `inputrc` files [573ed59]
+ REPL with Readline module now saves history [9043f58]
+ perl6 --doc=Text now shows signature parameter pod [6ea6563]
+ Generated sub MAIN usage message now shows original program name [b597b7c]
+ Added arity-1 infix:<~> for Blobs [77e9d4b]
+ Added IO::Handle.printf [8774f24][3c4ac3c]
+ Added ability to negate all numeric literals in signatures [5baa064]
+ Added .reverse/.rotate/.sum to shaped 1-dimmed arrays [a2ede36][4f4737d]
+ Added Mu.emit [4e76827]
+ Added --with-nqp Configure option for having NQP in
a different prefix [6f6e6db]
+ Added .gist, .perl, and .Str to BOOTSTRAPATTR [3dd2916]
+ Made .sum nodal [4fd6e94]
+ Implemented uniprops [f55ff82][0328422][05db996]
+ Added 5 new sets of matching brackets for available delimiters [8965145]
+ Removals:
+ Removed X::Syntax::Number::InvalidCharacter exception [a8ff3b9]
+ Efficiency:
+ Made indirect type lookup 3x as fast [939d273]
+ Made shaped(int|num|str)array.AT-POS at least 15% faster [bfe89a5]
+ Made shaped(int|num|str)array.ASSIGN-POS at least 10% faster [ecc202e]
+ Made shaped(int|num|str)array.EXISTS-POS at least 20% faster [bbbb2b6]
+ Made 1-dimmed native arrays at least 3x faster [4a711bc]
+ Made native shaped array creation about 1.5x faster [1b840f1]
+ Made native 1-dimmed array init at least 11x faster [b6de5e8]
+ Made native 1-dimmed array copying at least 25x faster [b6de5e8]
+ Made use of native 2-dimmed arrays 2.5x–4x faster [172898e]
+ Made use of native 3-dimmed arrays 2.5x–4x faster [64343d7]
+ Made copying 1+ dimmed native arrays up to 9x faster [e0c0ae5][331c2e2]
+ Made copying intX[2;2] to intY[2;2] native array just as fast as
copying intX[2;2] to intX[2;2] [79090b2]
+ Made native shaped array initialization 4x–6x faster [d704820]
+ Made iteration of 1-dimmed native arrays 17x faster [947422b]
+ Made iteration of >1 dimmed native arrays 11x faster [3e93ddd]
+ Made .(anti)pairs for native shaped arrays 7x faster [39261e7][471cea2]
+ Made .kv for native shaped arrays 16x faster [965fa4d][c1a3a3c]
+ Made native array.reverse|rotate about 20x faster [0ee6bc0]
+ Made @a[2;2] about 40% faster [b9e2ffa]
+ Optimized Int->int coercion [b2ac4e4]
+ Made infix:<..> on Nums 13x faster [a8ba26b]
+ Made uniprop with the default lookup 5x faster and other lookups 15% faster. [474ea33]
+ Made print, say and note 25% faster to stderr and stdout [e9ce28a]
New in 2016.11
+ Fixes:
+ Various improvements to warning/error-reporting
+ Fixed assigning values to shaped arrays through iterators [839c762]
+ Fixed Str.Int not failing on numerics with combining characters [d540fc8]
+ [JVM] Fixed <a b c>.antipairs breakage [dd7b055]
+ defined routine now correctly authothreads with Junctions [189cb23]
+ Fixed poor randomness when .pick()ing on ranges with >32-bit numbers [34e515d]
+ Fixed infix:<x> silencing Failures [2dd0ddb]
+ Fixed edge case in is-approx that triggers DivByZero exception [f7770ed]
+ (Windows) Fixed returning of an error even when succeeding in mkdir [208a4c2]
+ (Windows) Fixed precomp unable to rename a newly compiled file [44a4c75]
+ (Test.pm) Fixed indent of multi-line diag() and test failure messages [43dbc96]
+ Fixed a callframe crash due to boxing of NULL filenames [200364a]
+ ∞ ≅ ∞ now gives True [4f3681b]
+ Fixed oversharing with grammars used by multiple threads [7a456ff]
+ Fixed incorrect calculations performed by acotan(num) [8e9fd0a]
+ Fixed incorrect calculations performed by asinh(num)/acosh(num) [a7e801f]
+ Fixed acosh return values for large negative numbers [5fe8cf7]
+ asinh(-∞) now returns -∞ instead of NaN [74d0e36]
+ atanh(1) now returns ∞ instead of throwing [906719c][66726e8]
+ Fixed missing close in IO::Path.slurp(:bin) [697a0ae]
+ :U QuantHashes now auto-vivify to their correct type and not Hash [79bb867]
+ Mix/MixHash.Bag/BagHash coersion now ignores negative weights [87bba04]
+ arity-0 infix:<Z> now returns a Seq instead of a List [3fdae43]
+ Fix augment of a nested package [87880ca]
+ Smartmatch with Regex variable now returns a Match instead of Bool [5ac593e]
+ Empty ()[0] now returns Nil instead of False [f50e39b]
+ Failed IO::Socket::Async connection no longer produces unexpected crash [f50e39b]
+ Quitting Supplies with no QUIT phasers no longer unexpectedly crash [f50e39b]
+ Fixed NativeCall issues on big endian machines [627a77e]
+ Fixed broken handling of $/ in some uses of `.match` [ba152bd]
+ Fixed Lock.protect not releasing the lock on control exceptions [48c2af6]
+ MoarVM now builds on any version of macOS [b4dfed2]
+ Fixed concurrency crashes due to garbage collection [6dc5074]
+ Fixed race condition in EmptyIterator [ed2631c]
+ Fixed hang with multi-threaded long-running NativeCall calls [f99d958]
+ Made my @a[10] = ^Inf work [aedb8e7]
+ Fixed [;]:delete [3b9c4c9]
+ Fixed incorrect handling of negative weights in ∪ operator [e10f767]
+ duckmap now preserves types of Iterables [43cb55f]
+ Fixed premature overflow to Inf with large Num literals [729d7e3]
+ Fixed race condition in NativeCall callsite used by multiple threads [49fd825]
+ Fixed instabilities in programs launching many threads at startup [0134132]
+ Fixed crash when reporting X::Composition::NotComposable or
X::Inheritance::Unsupported exceptions [a822bcf]
+ Fixed clock_gettime issue on macOS [ee8ae92]
+ Fixed SEGV in multi-threaded programs with strings-as-strands [395f369]
+ `regex` TOP Grammar rule will now backtrack if needed [4ccb2f3]
+ Fixed .rotate/.reverse on 1-dimmed arrays assigning to self [2d56751]
+ Fixed exponentiation involving zeros for Complex numbers [7f32243]
+ Fixed Label.gist [29db214][53d7b72]
+ Fixed certain edge cases of incorrect stringification of Rationals
with .Str, .perl, and .base [b5aa3c5]
+ Additions:
+ Added TWEAK submethod for object construction [fdc90a2][9409d68]
+ Added DateTime.hh-mm-ss [bf51eca]
+ Added parse-base routine [7e21a24]
+ is-approx with no explicit tolerances now uses more complex algorithm to
choose a tolerance to use (same as old is_approx) [82432a4]
+ on failure, is-approx now displays actual values received [b4fe680]
+ Added Iterator.skip-one to skip a single value [71a01e9]
+ Added Iterator.skip-at-least to skip several values [8d357af]
+ Re-imagined Str.match [b7201a8]:
+ the family of :nth is now lazy will return whatever can find
+ non-monotonically increasing :nth iterator values will now die
+ Str.match/subst/subst-mutate now have :as adverb [1b95636][c9a24d9][aaec517]
+ &infix:<eqv> now works with Setty objects [d92e1ad]
+ :ov and :ex adverbs are now illegal in Str.subst [b90c741]
+ Made nextwith/samewith/nextsame/callwith to be real subroutines [70a367d]
+ Added CX::Emit and CX::Done control exceptions [07eeea8]
+ Setty.Mix/.MixHash coercers now use Int weights instead of Bool [7ba7eb4]
+ Implemented :kv,:p,:k,:v on 1-element multidim [;] [764cfcd]
+ .chrs can now also accepts codepoint numbers as Str [4ae3f23]
+ Added support for compilation of Rakudo on Solaris [a43b0c1]
+ IterationEnd.perl/gist/Str now returns text "IterationEnd" [59bb1b1]
+ Added X::Syntax::Number::InvalidCharacter exception [2faa55b]
+ .reverse/rotate on 1-dimmed arrays are now nodal [cd765e6]
+ .line and .file on core Code now references original source files [b068e3a]
+ .rethrow now works on unthrown exceptions [58a4826]
+ All Reals now accept `Whatever` as the second argument to .base() [c1d2599]
+ sub MAIN usage message shows possible Enum values if param is
named and is an Enum [a3be654]
+ Efficiency:
+ Made slip(@a) about 1.2x faster [37d0e46]
+ Made initialization of 2+dimmed array 10x to 16x faster [dfb58d4]
+ Str.match is now about 5% faster [4fc17df]
+ Str.match with :nth feature is now about 2x faster [41e2572]
+ my @a = Str.match(...) is now about 5% faster [e472420]
+ Str.comb(Regex) is now about 7x faster [1794328]
+ Simple Str.subst/subst-mutate is now about 30% faster [364e67b]
+ Match.Str|prematch|postmatch is now about 2x faster [e65d931]
+ Match.Bool is now about 1% faster (not much, but used a lot) [1fce095]
+ Made ~~ /foo/ faster: 2% for successful/6% for failed matches [05b65d0]
+ Made <foo bar baz> ~~ /foo/ about 2x faster [e4dc8b6]
+ Made %h ~~ /foo/ about 2x faster [33eeb32]
+ Frequent accesses of multiple adverbs (e.g. %h<a>:p:exists)
is now 2x faster [f22f894]
+ Made infix:<eqv> faster: Str: 14x, type: 10x, Range: 3.5x,
Int|Seq|Hash: 1.5x, Array: 1.2x [bc7fcc6]
+ IO::Spec::Unix.canonpath is now 7x to 50x faster [f3f00fb]
+ Baggy.roll/pick is now about 10% faster [fc47bbf]
+ Made copying shaped arrays 10x to 20x faster [a1d8e93][0cf7b36][d27ecfa]
+ Made setting up a shaped array 2x as fast [f06e4c3]
+ Made creation of typed shaped arrays 15% faster [f5bf6c1]
+ Made 2d/3d array accesses about 7x as fast [d3a0907]
+ Made AT-POS on 1,2,3dim arrays about 20x faster [feb7bcb]
+ Made creating a shaped array about 50% faster [1293188][576f3a1]
+ Made .AT-POS on 3+ dimmed arrays 20% faster [1bb5aad]
+ Made over-indexed .AT-POS on 1,2,3 dimmed arrays about 10% faster [1bb5aad]
+ Made multi-dimmed ASSIGN-POS about 30% faster [5b2bdeb]
+ Made .ASSIGN-POS for 1,2,3dimmed arrays about 40x faster [050cf72]
+ Made n-dimmed .EXISTS-POS about 1.5x faster [006f008]
+ Made .EXISTS-POS for 1,2,3dimmed arrays about 10x faster [b1c41b7]
+ Made n-dimmed DELETE-POS about 1.3x faster [6ccecb1]
+ Made .DELETE-POS for 1,2,3dimmed arrays about 20x faster [55b9e90]
+ Made n-dimmed BIND-POS about 1.3x faster [2827edb]
+ Made .BIND-POS for 1,2,3dimmed arrays about 20x faster [9f94525]
+ Made @a[10].STORE at least as fast as @a.STORE [8064ff1]
+ Made .kv on shaped Arrays about 4x faster [e42b68e]
+ Made .pairs/.antipairs on shaped Arrays about 2.8x faster [0f2566a][f608a33]
+ Made List.kv about 30% faster [7a2baf4]
+ for loops on 1-dimmed arrays are now 3x faster [ed36e60]
+ .kv on 1-dimmed arrays is now 7x faster [608de26]
+ .pairs/.antipairs on 1-dimmed arrays is now 3x faster [b7d9537][1c425f9]
+ postcircumfix[;] on 2/3 dimmed arrays is now 9x faster [0b97362]
+ Assignment to [;] for 2/3 dimmed arrays is now 10x faster [ce85ba3]
+ [;]:exists for 2/3 dimmed arrays is now 7x faster [e3e3fef]
+ [;]:delete for 2/3 dimmed arrays is now 10x faster [3b9c4c9]
+ [;] := foo for 2/3 dimmed arrays is now 10x faster [eaf4132]
+ .iterator and .values on shaped arrays are now about 4x faster [736ab11]
+ Fixed optimization of shaped arrays that gives 10% gain on simple `for`
loops and likely will give larger gains on bigger programs [b7e632e]
+ Made starting MappyIterator faster, affecting all Hash/Map/Baggy iterator
methods. 2-elem Hash iteration is 1.6x faster [97fb6c2]
+ Made starting a grepper faster: .grep on with no adverbs on 2-element list
is now 20% faster [077c8f0]
+ Made Date/DateTime creation 20% faster [0e7f480]
+ Hashes now use 4 (32-bit) or 8 (64-bit) bytes less memory per stored item [395f369]
+ Rational.Str is now about 40% faster [b5aa3c5]
+ Rational.base is now about 30% faster [b5aa3c5]
+ Various streamlining of code that's hard to measure the final impact of
New in 2016.10
+ Fixes:
+ Many fixes and additions improving JVM backend support
+ Several improvements to error messages
+ Fixed .tree([&first]) incorrectly calling .tree($count) candidate
+ Fixed unwanted errors when smartmatching objects against IO::Path
+ Fixed is-deeply with Seqs showing Seq.new-consumed() in failure text
+ Fixed concurrency race when setting up NativeCall routines
+ Fixed Match.list treating inner unmatched captures as end of list
+ .first now correctly handles Junction matchers
+ Fixed GLOBAL symbol clash re-compiling due to a repo change
+ Fixed Backtrace.map candidate being uncallable
+ Fixed multiple bugs in Hash/Baggy.classify-list/categorize-list
+ Fixed PERL6_TEST_DIE_ON_FAIL not exiting on failed subtests
+ Fixed autovification using Junctions as keys
+ Fixed infix:<^^>(Mu, Callable) candidate being uncallable
+ Fixed IO.l for dangling symlinks
+ Fixed infinite recursion in duckmap when mapper returned Any
+ Fixed .subst/.subst-mutate treating incorrect arguments as failed matches
+ Fixed .subst-mutate not returning all matches with :x
+ Fixed hang on smartmatching Promises against numerics
+ Fixed failure to smartmatch Numeric:U against Numeric:D
+ Fixed hang on incorrect .splice arguments
+ Fixed hang on incorrect .split offset
+ Fixed multi-argument WhateverCode not detected in double closures
+ Fixed Baggy:U ~~ Baggy:D emitting gut-referencing warnings
+ Fixed uncallable Dateish.IO
+ Fixed Exceptions::JSON for exceptions with no `message` method
+ Fixed Exceptions::JSON for exceptions with non-JSON-friendly attributes
+ Proc::Async decoding exceptions are now catchable
+ Prevented return handler being optimized out in `sub { 42.return }()`
+ Fixed error reporting when trying to invoke a native parameter
+ Fixed uncallable 0- and 1-arg candidates of infix:<xx>
+ Fixed Cool.match not setting $/
+ Fixed Cool:U.IO coercion emitting internal warnings
+ Fixed Nil.chrs failing when called
+ Num:U++ now returns a Num zero instead of an Int one
+ Removals:
+ Removed argument-taking Dateish candidates for is-leap-year,
days-in-month, and day-of-week [were never part of the spec]
+ Cool.IO no longer accepts any arguments
+ Overflow check has been removed from infix:<**>(int, int)
+ Additions:
+ Added basic Unicode 9 support (NFG changes for latest TR#29 still to do))
+ X::Proc::Unsuccessful now includes command that was run
+ IO::Handle.new now uses 'utf8' encoding by default
+ Bare `put` now requires parentheses to call as sub
+ .head/.tail with no arguments now return the item and not a 1-item List
+ Added basic native attribute parameter binding
+ Made nativecast and spurt multies
+ Added .^elems metamodel method to enums
+ Enums can now be used to declare array shapes
+ Added X::Invalid::ComputedValue exception
+ Throw when dereferencing a null pointer in NativeCall
+ It's now possible to refer to sigiless parameters inside `where` clauses
+ Added extra candidates to .splice to allow for all combinations of
Int|Whatever|Callable for both $start and $elems arguments
+ Made enums able to typecheck against the roles they do
+ Made Complex.new() return 0+0i
+ Int.new can now handle any value that can .Int
+ Added shortname() method to CurriedRoleHOW
+ Proc::Async new, stdout, and stderr methods now take :enc
+ IO::Socket::Async listen, connect, and Supply methods now take :enc
+ .Date and .DateTime are now supported on :U/:D Date/DateTime
+ Trailing empty cells can now be omitted in Pod tables
+ Mix/MixHash with non-Int weights can now be coerced to .Bag/.BagHash
+ Efficiency:
+ Made List.reverse about 5% faster
+ Made auto-threading about 10% faster
+ Made huge improvement to CUR::Filesystem.id performance
+ Made dir() about 20% faster
+ Made Regex.Bool about 2x as fast
+ Made Str.match about 3% faster
New in 2016.09
+ Fixes:
+ Various improvements to the content of error messages
+ Defaults on a slurpy params now throw instead of crashing at the VM level
+ Distribution::Path now handles native libraries correctly
+ Junctions now work in .classify
+ Control statements (e.g. `next`) in toplevel REPL now show useful error
+ IO::Handle.encoding now returns correct values
+ .comb/.split on binary handles now throws X::NYI
+ Fixed filehandle leak in precompilation
+ Regex in .grep and .first on Pairs now works correctly
+ Pod parser returns proper Bool instead of Int on passed config options
+ Fixed PERL6_TEST_DIE_ON_FAIL=1 exiting the test suite too soon
or dieing on failing tests inside TODOed subtests
+ Fixed failure to accept enums as types for optional arguments
+ Fixed blocking bug when using socket accept and threads
+ Fixed fatal bug when using Non-ASCII tokens in regex/grammars
+ Fixed missing adverbs and candidates in Cool.split; made same as Str.split
+ Fixed missing adverbs in Cool.trans; made same as Str.trans
+ Fixed NativeCall CArray hanging when created from empty list
+ Fixed various issues with reading chars from an async socket (uncatchable
exceptions on decode errors, and mis-handling of graphemes and multi-byte
sequences over packet boundaries)
+ Fixed "%%foo @@bar" interpolation trying to find %foo and @bar variables
+ Fixed mis-compilation and possible compiler crash when using a construct
like /$<cap>=@(1,2)/
+ Fixed a memory leak involving EVAL
+ Fixed a multi-dispatch cache unbounded growth bug involving calls
with many named arguments
+ Fixed warnings emitted when using hyper operators on two hashes
+ Channel.elems now returns a Failure rather than eating all values
+ Fixed type error ion IO::Path.rw
+ Fixed …, ???, and !!! yadas not working to stub classes
+ Fixed tab-completion issues with non-identifiers in REPL
+ Additions:
+ Coercions now work in return types
+ Added RAKUDO_EXCEPTIONS_HANDLER env var to control exceptions output
+ IO::Handle.slurp-rest now has :close flag
+ CompUnit::Repository::Installation now cleans up short-name
folders when empty
+ Added support for very large numbers in :42foo colon pairs
+ Added a .Map coercer for object hashes
+ All Unicode quotes can now be used as quoters inside qqww/qww
+ LEFT/RIGHT DOUBLE PARENTHESIS characters can now be used with q and others
+ Unicode digits can now be used with Match variables ($١), quote
pairs (:۳<12>), negative numbers (-١), and radix bases (:۳("22"))
+ Efficiency:
+ Numerous improvements in CUR, offering up to 10x faster module loading
+ Baggy.ACCEPTS(Baggy) is now about 25x faster
+ Baggy eqv Baggy is now at least 10x faster
+ Infix === now checks identicality, offering performance gains on large
objects, such as a Bag with 1000 elements
+ Many metaops are now about 10% faster
+ Made Junction.Bool|ACCEPTS about 2x faster
+ Improvement in performance of IO::Path::child
+ Made permutations() about 5x faster
+ Made List.permutations about 40x faster
+ Made combinations() about 1.8x faster
+ Made List.combinations about 7x faster
+ Made Unix's canonpath several times faster for simple paths
+ Made Buf|Blob.reverse 1.5x faster
+ Made .IO.lines about 10% faster on large files
+ Changed APIs:
+ The operator precedence configuration rule `O()` has been changed to be
more precompilation-friendly; rather than taking a string containing
colonpairs, it now takes named arguments directly. This is not
strictly a Perl 6 change, but rather a change in NQP, and thus only
applies if you're doing fairly involved hacking on the grammar. If the
sentences above made no sense to you, your code is not affected by
this change.
New in 2016.08.1
+ Fixes:
+ Updated NQP version to avoid broken tag
New in 2016.08
+ Fixes:
+ Numerous improvements to content of error messages and addition
of new previously-undetected warnings, such as on sinks and ... terms
+ Removed redeclaration error for anon subs
+ Concatenation/substr with strings constructed with repeat operator
no longer results in incorrect strings
+ Fixed error for unknown symbol in parametric type
+ Things that produce a Seq no longer get constant-folded, avoiding
bogus Seq exhaustion errors
+ where {} clause on unit sub MAIN no longer produces bogus errors
+ Fixed compilation and behaviour of :D on subsets
+ Assigning Nil to a :D variable now fails (unless its default is :D)
+ Fixed CURF's resolve generating the wrong repo-id
+ Fixed precomp file for Staging repo containing build path
+ Fixed merge global symbols failures when changing repositories
+ Fixed -Ilib and friends not overriding installed dependencies
+ Fixed <[a..z]> ranges breaking grapheme awareness
+ Fixed a race condition in Channel.Supply
+ Fixed an occasional deadlock when using the supply/react syntax
+ Fixed a race condition involving tearing down listening async sockets
+ start blocks now get their own fresh $! and $/
+ .squish, .unique, .repeated, and .grep now correctly pass on .is-lazy
+ Fixed segfault on "multi cross{}"
+ .sort stored in a Callable no longer incorrectly returns BOOTArray
+ Smartmatch with two signatures, only one of which has slurpy hash,
no longer produces spurious exception
+ @a.splice now returns array with correct descriptor
+ .rotor with negative gap that lands out of range now throws
+ Range.rotor with Rat arguments no longer crashes
+ .hash on Bag, Mix, BagHash, and MixHash types no longer stringifies keys
+ .abspath on filenames starting with '-' no longer results in empty string
+ generated setting file now has empty lines for those that were
skipped in the past, allowing to directly map the line in a setting
to the source code it was generated from
+ loop and repeat now properly self-sink
+ for { ... .map } now properly sinks
+ Backtrace::Frame.is-(hidden|routine) now returns Bool
+ Bool.Int now properly returns an Int
+ Starting the REPL with a module loading error, will now just exit
+ Names of phasers (such as BEGIN) will now be included in suggestions
+ Fixed loading of modules when a FileSystem repo doesn't actually exist
+ Fixed mis-scoping of blocks in s///
+ Closure clones are no longer double code-generated
+ Caller $/ is now propagated through deferral
+ Fixed inconsistent coersions to Bool
+ Fixed over-assuming optimization of R meta operator
+ Fixed endless recursion in Any::BIND-POS under certain conditions
+ Additions:
+ Str.samemark('') now returns self instead of failing
+ Test.pm now provides bail-out()
+ Implemented $?MODULE and ::?MODULE
+ Implemented CompUnit::Repository::Installation::installed
+ InstalledDistribution now gets returned where appropriate
+ returns in signatures of many builtins now marked as --> Nil
+ .min/.max can now be called on Hashes
+ Invocant marker (:) can now be used in bare signatures
+ Added X::Syntax::NonListAssociative exception type
+ Hash[Any].new.perl now roundtrips
+ Buf.push|append|unshift|prepend also allow Blob:D
+ .succ now increments additional 29 digit ranges, such as Thai digits
+ List.sum is now marked as nodal
+ Can now return Nil as a result of a Promise
+ Implemented :exists on multi-dim assoc subscript literals
+ Added PERL6_TEST_DIE_ON_FAIL env var in Test.pm6 to bail out of the
test suite on first failure
+ Efficiency:
+ Streamlined multiple internal code paths that may or may not
result in performance improvements in user code
+ Improved dynamic variable lookup (2x as fast)
+ Hash.AT-KEY is about 35% faster
+ Hash.ASSIGN-KEY about 2x as fast
+ Hash.DELETE-KEY about 2x as fast
+ Hash[Any,Any].AT-KEY about 20% faster
+ Hash[Any,Any].ASSIGN-KEY about 15% faster
+ Hash[Any,Any].BIND-KEY about 15% faster
+ Hash[Any,Any].EXISTS-KEY about 10% faster
+ Hash[Any,Any].DELETE-KEY 10% faster
+ Repeated calls on Bag.WHICH now 5x as fast
+ Backtrace creation 25% faster
+ .first/.first(:end) iteration is now about 10% faster
after testing 1000 elements
+ .minmax about 25% faster
+ .min/.max about 40% faster
+ min/max/minmax on native arrays is between 15x and 25x faster than
non-native equivalent
+ Array.splice() almost infinitely faster and is much easier on memory (no
longer copies anything but instead transplants internals)
+ Array.splice(offset,size) is now 20x to 40x faster for
small offsets and sizes
+ Array.splice(offset,size,@) is about 10x faster
+ 10% improvement to .map/for in special cases of one-argument block that
has a return signature that excludes Slips,
such as -> Int $_ --> Str { .Str }
+ Many Set/SetHash methods are now at least 5% faster
+ Coercing a MixHash/BagHash to a Mix/Bag is now 300x faster
+ Coercing a Bag/BagHash to Mix coercion is now 1000x faster
+ Coercing a SetHash to a Set is now 80x faster
New in 2016.07.1
+ Fixes:
+ `make DESTDIR` now correctly finds CompUnit::Repository::Staging
+ .polymod with a lazy list no longer loses mods if the list runs out
+ Output from Test.pm6's diag() is no longer lost in non-verbose prove output
when called at the start of the test file or during TODO tests
+ Bitwise operators that return int/Int no longer fail with candidate error
when given a native int argument
+ Additions:
+ Improved error message when IO::Path.new is given incorrect arguments
+ Improved error message when .polymod is given a zero as divisor
+ Efficiency:
+ Str.samecase is now 5x faster
+ Str.indices is 10% faster
+ Str.rindex is 30% faster
+ Str.index is 30% faster
New in 2016.07
+ Fixes:
+ Mu can now be the result of a Promise
+ samewith() now also works on non-multi's
+ Many fixes in the area of pre-compilation and installing modules
+ Maps now correctly identify themselves as value objects
+ BagHashes and MixHashes no longer identify themselves as value objects
+ count-only and bool-only now are optional methods in Iterators
(only to be implemented if they can work without generating anything)
+ Hash.Map now properly creates immutable Map
+ IO::ArgFiles.slurp / IO::ArgFiles.eof are fixed
+ Several wrapper file fixes
+ If a file is unknown in an error report, it is no longer shown
(This typically happens in the REPL, or when doing an EVAL)
+ REPL whitespace and error handling
+ CompUnit::Repository::Installation no longer considers `bin/xxx` and
`resources/bin/xxx` the same content address
+ Callable in a Signatures stringifies correctly
+ BEGIN time EVAL no longer negatively affects MAIN_CTX
+ Str.chop correctly works when given very large arguments
+ min/max on Failures throw instead of returning ±Inf
+ NativeCall's is mangled trait no longer ignored for CPPStruct
+ Additions:
+ The "is required" trait on Attributes can now take a Bool or a Str
+ Support for new leap-second at 31-12-2016 added
+ IO::[Path,Handle] gained a .mode method which returns the POSIX file permissions
+ Fixed LTA error message with Str.samemark when no pattern present
+ Distribution is now a role interface that enables encapsulating IO
used for distribution installation
+ CompUnit::Repository::Installation now uses the new Distribution interface
+ The original distribution META `provides` data is now preserved
+ Custom repository implementations now supported, including precompilation
+ List.BIND-POS now fails instead of throwing
+ RAKUDO_JDB_PORT and RAKUDO_PRECOMP_NESTED_JDB debug environmental
variables
+ Failures in Cool.Numeric and related coercers now get propagated
+ Improved warning message for literals with leading zeros
+ Improved error message for attempts to `use` core types
+ Efficiency:
+ The MMD cache accepts candidates with named parameters if it can.
(This made adverbed slices about 18x as fast)
+ Str.samemark is 50x faster
+ Str.contains is 6x faster
+ Baggy.pick(N)/pick()/roll()/grab() are 6x faster
+ Array.List is 5x faster
+ List.elems is 4.5x faster
+ for/map with 2 arguments is 4x faster (e.g. for @a.kv -> $i, $v { })
+ Str.substr-eq is 4x faster
+ List.Bool is 4x faster
+ Str.chop is about 3.5x faster, Str.chop(N) 20% faster
+ Map eqv Map is 3x faster
+ Make "for List.pairs {}" 2.5x faster
+ Array.pop is 2.5x faster
+ List.AT-POS/EXISTS-POS are 2.5x faster
+ Creating arrays with [] is 2.5x faster
+ Array.AT-POS/ASSIGN-POS/BIND-POS at least 2x faster for unreified elements
+ Array.DELETE-POS is 7x faster
+ Str.starts-with is 2x faster
+ Array.shift is 2x faster
+ Baggy.roll(*) is 2x faster
+ Blob/Buf.AT-POS is 2x faster (underlying method of e.g. "$buf[2]")
+ List.STORE is 2x faster (e.g. "my ($a,$b,$c) = (1,2,3)")
+ Make "for List.kv {}" 1.8x faster
+ Array.push/append is 40% faster
+ Str.comb 30% faster
+ Map/Hash initializations are now 30% faster
+ A slurpy taking a list is 30% faster ("sub a(*@a) { }; a(1,2,3,4)")
+ Str.ends-with is 25% faster.
+ Str.chomp is 20% faster
+ single element for/map in sink context without phasers, is 20% faster
+ Pair.new is 10% faster
+ val() is 5% faster
+ {}|[]:adverb is 2.5x faster
+ foo xx Int is 10% faster
+ Str.Int is 5% faster
+ Code.arity|count are 2x faster
New in 2016.06
+ Fixes:
+ Arrays with holes (e.g. from :delete) now correctly iterate/auto-vivify
+ Hash.keyof now correctly returns Str(Any)
+ Precompilation from a debug Perl 6 now uses "normal" Perl 6 executor
+ Inf,NaN,-Inf now can be coerced to Rat, and back to Num
+ Creating an Enum from a List/Range no longer warns
+ Precompilation on file systems with coarse timestamps no longer fails
+ An issue with reverse dependencies of installed modules was fixed
+ Fixed issue with comparing v6 and v6.c Version objects
+ Fixed ≅ ignoring the signs of compared numbers
+ Additions:
+ Add default for CompUnit::PrecompilationRepository.precompile(:source-name)
+ The "is-approx" sub from Test now allows for relative/absolute tolerance
+ The "cmp-ok" sub from Test now can take any infix as Str, even custom ones
+ A fail in a custom BUILD will now be returned, rather than thrown
+ use MONKEY-WRENCH and use MONKEY-BARS are now reserved names for future use
+ Efficiency:
+ .map between 10% and 30% faster
+ .unique, .repeated and .squish 10% to 20% faster
+ gather/take about 10% faster
+ Basic object creation (using either .new or .bless) now up to 3x faster
+ (+@a), (*@a) and (**@a) signature handling between 20% and 4x faster
+ Iterating List/Array now uses less memory and is faster
+ All routines now have less overhead, thanks to improved implementation of
return handlers (including those that do not use return)
+ return, next, last, and redo are now all faster
+ infix:<,> about 40% faster
+ numerous other smaller or edge-case speed improvements
+ Deprecations:
+ The "is_approx" sub (note underscore) from Test
New in 2016.05
+ Fixes:
+ Fix EVAL during precompilation
+ .substr fixes
+ many precompilation fixes
+ clean up error messages
+ Streamline some core classes
+ Harden Mu.Str against moving GC
+ JVM fixes
+ Simplify $*USER/$*GROUP initialization
+ Additions:
+ Ability to use a customer debugger module
+ $*MAIN-ALLOW-NAMED-ANYWHERE allows MAIN to be friendlier about where it accepts flags
+ Add richer set of comparison operators for Versions
+ Many improvements to precompilation - building OS packages with precomp'd code should now be possible!
+ Introduce .Map coercer
+ Implement alternate ways to call subtest
+ Efficiency:
+ Version comparisons are now 2x faster
+ List.minmax is about 3.5x faster
+ Num.perl is about 2.4x faster
+ Int division/modulus is about 1.5x faster
+ LoL accesses are about 3x faster
+ autothreader is about 2-3x faster
+ Make Any junction methods 14x faster
+ Make Junctions faster
+ Map.kv is about 10% faster
New in 2016.04
+ Fixes:
+ .combinations cleanup
+ "magic" inc/dec cleanup
+ utf8-c8 encoding crashes that occurred on random data
+ fix missing pre-comp store unlock
+ missing module error mentions line number
+ some JVM fixes
+ Additions:
+ Improved REPL
+ Add :kv to .first
+ Add provisional $*DEFAULT-READ-ELEMS
+ Efficiency:
+ Removed leaks associated with EVAL
+ Speed up .minpairs/.maxpairs
+ Speed up Object:D cmp Object:D
+ Speed up sort 3-15%
New in 2016.03
+ Fixes:
+ Buf.push|append|unshift|prepend now can take int arrays
+ Better error messages when trying to put illegal values into Blob|Buf
+ The REPL now allows statements spread over multiple lines
+ No longer show compilation error twice when loading module with errors
+ Only Bufs can now be specified as parameter to subbuf-rw
+ Values in %*ENV now have allomorphic semantics
+ Supply.Channel / Channel.Supply no longer lose exceptions
+ Calling .prepend on a native array no longer infiniloops
+ Blob.WHICH now indicates a value (immutable) type
+ Better error reporting for problems with sprintf()
+ Some obscure unicode codepoints causing segfaults no longer segfault
+ Directory listings now handle wrongly encoded data using utf8-c8
+ Additions:
+ Native str arrays (my str @a)
+ Buf.pop, Buf.shift and Buf.splice (similar to List.*)
+ Blob|Buf.allocate($elems, @init-pattern)
+ Buf.reallocate($elems) added
+ &*EXIT can be set to handle exit() statements (for embedding Perl 6)
+ Efficiency:
+ Auto-generated accessors/mutators use less memory and are faster
+ Most Blob|Buf related options use less memory and/or are (much) faster
+ Same for much of the native array support and IO reading operations
+ Many Parameter/Signature related options are much faster
+ Punning a role is much faster
+ Modules can now be shared between rakudo versions
+ Reordering "use lib" statements made NativeCall tests 3x as fast
New in 2016.02
+ Fixes:
+ Many memory leaks fixed in MoarVM
+ Fix several issues with "require"
+ .perl of an iterated Seq (RT #127492)
+ Set.hash now returns an object hash (RT #127402)
+ Use the order of arguments in usage display, rather than hash order
+ Exception.fail now dies reliably outside of a routine
+ fix problem with Str.split with multiple overlapping needles
+ Map.Hash now correctly separates from the Map
+ Fix roundtrip issues of Instants
+ Specifying ::a now gives proper compile time error (RT #127504)
+ Rakudo jars are now installed in the proper location
+ Enums with a type object now fail with an NYI error
+ .first(:end) on uncached iterators no longer fails
+ Additions:
+ Buf.unshift/Buf.prepend
+ DateTime.new(y,mo,d,h,mi,s) fully positional candidate
+ Can now uninstall distributions
+ Date/DateTime now fully subclassable
+ REPL now supports multi-line statements (experimental)
+ Efficiency:
+ Str.trans can now be up to 160x faster
+ @a.chrs noq 3x faster, chrs(@a) now 9x faster
+ Many Map/Hash related functions can be up to 2x as fast
+ Magic increment/decrement on strings 2x as fast
+ Some percentages improvement in object creation, phaser handling,
summing, creating failures.
+ Object hashes re-implemented using 1 internal hash, instead of 2.
This results in about 10% less memory usage, and a few % less in CPU
New in 2016.01
+ Fixes:
+ Chained .grep calls on Supply fixed (RT #127297)
+ Fixed interaction with perl6-debug and precompilation that resulted in an
endless loop
+ re-enabled warning when smart-matching against a True or False literal
+ Fixed internal error when reporting certain type errors (RT #127207)
+ Fixed rare "duplicate definition of symbol" errors (RT #127107)
+ Fixed interpolating of pairs with non-key strings into signatures
+ Fixed error when smart-matching Seq against a Set (RT #127166)
+ Improved error message when smart-matching against an S///-expression
+ Fixed bad interaction between EXPORTHOW and multiple declarations (RT #126566)
+ Fixed various issues regarding precompilation
+ Improved accuracy of Complex.sqrt
+ hyper now preserves order of results, as designed
+ Range.sum on an empty, numeric Range is now 0
+ Fixed Promise.allof() with an empty list of promises (RT #127101)
+ Improved message on premature virtual method call (RT #127097)
+ Better error message for module load failures of types that are part of
the setting
+ Support for Readline in addition to Linenoise
New in 2015.12:
+ Features
+ Fixed size and multi-dimensional typed and native arrays
+ Greatly overhauled module loading and installation, including handling
precompilation at module installation time in Rakudo
+ Automatic precompilation of modules
+ 'no precompilation' pragma to opt out of precompilation
+ Can now specify the backlog for listening sockets
+ NativeCall now knows the size_t and bool types
+ Give IO::Socket::INET connect/listen methods
+ while/until loops can now return lists of values
+ We now catch many more kinds of "Useless use of X in sink context"
+ On the flip side, the optimizer now has a much better idea of what is sunk
+ A number of convenient Unicode equivalents were introduced
+ Superscripts can now be used for integer powers
+ Non-digit unicode characters with a numeric value (½ and such) can now be
used for that numeric value
+ There is a new "approximately equal" operator
+ The .narrow method can narrow things that are approximate integer
+ Allow quoted words as input for Buf.unpack
+ Can now mix in to enums
+ Implement List.first()
+ Added Supply.head and Supply.share
+ Implement Range.rand
+ Add support for USAGE argument help
+ Provide tau constant (also: τ)
+ Can now use channels with supply/react/whenever
+ Implement %?RESOURCES
+ Allow for :every *and* :times in SCHEDULER.cue
+ Implement Promise.at
+ Add .Date/.DateTime coercers to Instant
+ Implement native-descriptor on handles/sockets
+ Add UDP support to IO::Socket::Async
+ Switch to doing newline translation at I/O boundaries
+ Add support for specifing the api/abi version to native (NC) routine
+ Greatly improved support for sized and unsigned native lexicals
+ Implement CLOSE phaser for supply blocks
+ Respect multi's sigs in role composition
+ Treat multis with equivalent sigs as collisions
+ New method $*VM.platform-library-name
+ Incompatible changes
+ Bool is now a proper enum
+ Supply.new replaced by Supplier.new
+ An exact arity match in multiple dispatch beats slurpy/optional
+ Supplies consistently treat list values as single arguments
+ Remove grep-index/first-index/last-index for attributes in grep/first
+ Remove support for Str.split(:all) (use :v instead)
+ Changed IO::Socket::Async reading API to .Supply method
+ Order Complex first on .re, then .im
+ Order ranges first on min, then on max
+ Use of EVAL now requires a declaration of 'use MONKEY-SEE-NO-EVAL'
+ Likewise regex interpolation is limited in the absence of the declaration
+ Empty loop modifiers must now use Nil to avoid "useless use" warning
+ Thunky operators now thunkify arguments even when used in metaoperators
+ SEQ() is renamed to STATEMENT_LIST() to avoid extra overloading of 'sequence'
+ Tweak attribute initializer semantics match assignment semantics
+ Make @a[^2] consistent with @a[0,1]
+ Make ::= a NYI, in light of 6.c
+ Promise.Supply is an on-demand Supply
+ Remove earliest syntax
+ Forbid argument-less Date.new
+ Forbid Instant.new
+ Remove IO::ArgFiles.nl
+ Move sub-byte native int types to experimental
+ Enforce return types in pointy block sigs
+ Kill off has-accessor; use has_accessor instead, consistent with MOP
+ Make X, Z, and roundrobin respect items
+ Fix loss of structure in xx
+ Enforce SSA on sigilless in `my (\x, \y) = 1, 2;`
+ Remove IO::Socket::Inet.input-line-separator
+ Remove IO::Socket::Async.(bytes|chars)-supply
+ Remove IO::Handle.(ins|nl)
+ Remove IO::Handle.seek(pos,Int:D whence)
+ Promise.[anyof|allof] no longer break
+ Make pack and unpack experimental
+ Fixes
+ Dynamic variables are now visible inside start { ... } blocks
+ Sparse array no longer acts empty on shift
+ Disallow positions < 0 on index/rindex
+ Make "require PACKAGE/STRING" return said PACKAGE/STRING
+ Fix BEGIN/CHECK block scoping precompilation bug
+ Fix bug in the scheduler that could swallow exceptions
+ Supply.from-list should follow 1-arg rule
+ Prevent data loss in various cases with async sockets and processes
+ Autoincrements on native ints are now faster than on Int
+ The ~~ operator can now chain with other comparisons in many circumstances
+ Imported operators no longer lose their precedence info
+ Various numeric operations now return overflow/underflow failures instead
of wrong value
+ The :ss, :ii, and :mm options to s/// now all work together
+ Ranges and complex are now ordered more consistently
+ Mixin Callable[$type] for all ways of declaring return type
+ Don't ignore return types when calling ACCEPTS with Signatures
+ Make MMD setup of sub print same as say/note/put
+ Fixed circular module loading detection
+ Cool.substr-eq should return a Bool
+ Fix some failures to catch return outside routine
+ Stop phaser loop swallowing loop exceptions
+ Fix FIRST in loop/while/until
+ Consistently return Nil for no value, not a typeobject
+ Import should reuse precedence of exported ops
+ Fix slurpy hashes in Signature ACCEPTS
+ Fix SomeRole.^roles
+ Make :transitive the default for .^roles.
+ fail should reliably die if outside of a routine
+ Make slicing with adverbs respect itemization
+ Fix return type of qqw{...}
+ Make (1,2,3)[2] = 4 and (1,2,3)[3] give same error
+ Show non-printables in IO::Path.perl
New in 2015.11:
+ Features
+ Initial shaped array support
+ \r\n (Carriage Return/LineFeed) is now a single (synthetic) grapheme
+ Unicode support adheres to Unicode Annex #29
+ New IO::Handle.nl-in now allows multiple line-endings to be set
+ New IO::Handle.nl-out allows you to set line-ending used in IO::Handle.say
+ New IO::Handle.split/comb, same feature set as Str.split/comb, but lazy
+ IO::Handle.seek now accepts new SeekType enum values as 2nd parameter
+ New $?NL contains the output new-line character(s) for the current system
+ New 'use newline' pragma allows setting of $?NL
+ New List.head/tail methods for easier getting first/last N elements
+ New List.repeated for only getting repeated values in a list
+ Str.encode now allows :replacement parameter for unencodable sequences
+ Str.split now accepts multiple strings to split on
+ Str.split now accepts :v, :k, :kv, :p, :skip-empty named params
+ Str.comb(Int:D $n) candidate allows for combing string per $n characters
+ New Range.int-bounds returns first/last value for integer ranges
+ EVAL now passes on named params, to allow for customised EVAL subs
+ Auto-generated meta-ops vivified by referring to them, instead of executing
+ Unicode quotes are now also allowed in regular expressions
+ Can now coerce to generic types in parameters
+ Can attach adverbs to variables
+ Illegal assignment of different Numeric values now caught at compile time
+ &nextcallee implemented, which returns the routine that nextsame would invoke
+ Deprecated
+ IO::Handle.nl should either be IO::Handle.nl-in or .nl-out
+ IO::Handle.seek with a numerical value for 2nd parameter
+ Str.split( ... :all) should be written as :v
+ Fixes
+ RT #74414: the multi dispatcher now treats "is rw" parameters as tighter matches
+ RT #125123: improved error message for type check failures in int-typed arrays
+ RT #126436: improved error message for missing required attributes
+ multi submethods aren't inherited to subclasses
+ leading escape sequences representing whitespaces aren't stripped anymore from heredocs
+ Speedups:
+ [+] and sum
+ Blob.subbuf
+ List.sort
+ List.roll
+ List.rotate
+ List.reverse
+ IO::Handle.getc
+ Build system
+ New options --sdkroot and --sysroot to Configure.pl to support cross builds
New in 2015.10:
+ Features
+ We are now officially in beta!
+ There is now an infix:<.> operator that does method calls with slightly
looser precedence than the postfix unary method call.
+ Definite return values are now allowed, and force final statement to sink
+ Types with type smilies (like 'Int:D' and 'Int:U') are now first class,
and supported in constraints for variables, for example
+ New pragmata 'use variables :D', 'use attributes :D' for defaulting type
constraints to ':D'
+ The 'constant' declarator now supports syntactic constructs, so you can
alias with 'my constant &infix:<plus> := &infix:<+>;'
+ New operator 'infix o' for function composition
+ New method 'produce' for triangle reduce
+ 'fc' for Unicode-correct case folding implemented
+ '<?same>' assertion in regexes implemented
+ Methods 'file' and 'line' in 'Code' point to the location of the
declaration
+ grep now accepts :k, :v, :kv, :p attributes
+ first now accepts :k, :v, :p attributes
+ first also accepts :end attribute to indicate searching from end of list
+ 'is equiv<+>' as shortcut for 'is equiv(&infix:<+>)'. Same for 'tighter'
and 'looser'.
+ 'Supply.throttle' for rate-limiting
+ 'Hash.append' added, now that Hash.push doesn't flatten
+ Internal methods ZEN-POS/ZEN-KEY added, for handling zen-slices
+ Promise.start now passes on any extra parameters to async block
+ Use of comma in sink context now distributes sink to its parts
+ Attribute containers may now have defaults
+ The new .self method is the identity method on anything
+ Negative integers are now allowed in the parameter slot
+ List associative operators can now be autoprimed, including Xop and Zop
+ Incompatible Changes
+ Array.push is now used for pushing one element (mostly); Array.append
exists for pushing multiple values. Same for 'unshift'/'prepend'
+ Basic arithmetic operations ('+', '*', '-', '/') on Range objects
that shift or scale the end points while maintaining exclusions
+ 'is rw' now only works on scalars (was a noop), and actually requires
a writable container. Parameters of the form '\x' enable the old
behavior
+ The v notation now allows alphabetic components: v1.2.beta. (Incompatible
because method calls on a version must be protected by \ or () now.)
+ 'use v6b+;' notation is now recognized and enforced
+ Many list functions no longer flatten, or use one-arg flattening only
+ The sequence operator no longer flattens sublists, so you must use slip
to get that effect
+ The precedence of infix:<.=> is now tighter to match new infix:<.>
+ Smartmatch with List now recursively uses smartmatch
+ Smartmatch with list now globs using '**' rather than '*'
+ callwith/nextwith no longer flatten
+ Speedups:
+ Many built-in methods that return iterables are now much faster
+ 'Bag' and 'Mix' are now faster
+ Rat addition/subtraction is now faster due to lazy reduction when
consistent denominators are used ("cents stay cents")
+ Fixes:
+ Better error messages when comparing version strings with numbers
+ Several error messages that were lacking line numbers now include them
+ Anonymous types now compare correctly under 'infix:<===>'
+ Fixed 'once' block semantics (RT #126293)
+ A dying 'LEAVE' block doesn't prevent other 'LEAVE' blocks from running
anymore
+ 'Str.tc' now does an actual Unicode title case operation
+ polymod had not been GLRified yet
+ List/Supply.squish did not properly handle single element lists/supplies
+ Several fixes to the REPL, e.g. with regards to completions
+ with/without now topicalize properly
+ Fix usage of match variable in replacement part of substitution
+ ».[1;1] (hyper on multidim subscript) now works
+ Methods map, push, pop, shift, unshift, append, prepend now properly
marked as nodal
+ Attempt to smartmatch with S/// now warns
+ grep { /foo/ } now dwims again
+ Operator names now canonicalize internally to legal Perl names
+ Reduction ops now generalize to N-ary functions
+ Extra list comma is now allowed before any statement modifier
+ Various multisubs now report .arity more accurately
+ Exceptions can now correctly report the Nil type
+ Deprecations:
+ grep-index() deprecated in favour of grep(:k)
+ first-index() deprecated in favour of first(:k)
+ last-index() deprecated in fevour of first(:end,:k)
New in 2015.09
+ Features
+ Great List Refactor
+ New slurpy parameter, +args or +@args, to allow for one-argument style binding
+ New with/orwith/without conditionals allow you to check for .defined but
topicalize to the actual value returned
+ New 'supply', 'whenever' and 'react' blocks for easy reactive programming
+ Mu.return implemented: allows for ".return with $foo"
+ Cool.indices/indices() expands on Cool.index/index() functionality
+ Callframes now allow easy introspection of associated Code object
+ Test.pm now has a 'does-ok' function for testing role conformance
+ '$¢' in grammars now refers to the current cursor
+ All Unicode digits can now be part of literal numbers
+ 'val()' and allomorphic types implemented
+ Most European quoting styles are now supported
+ The parser now detects and reports possible runaway quotes
+ New $[...] and ${...} constructs allow prefix itemization
+ 'dd' now displays variable type
+ Fixes:
+ Using a Range with an infinite .max now works on substr()/.substr
+ Parameter aliases are now handled in MAIN subroutines
+ Fixed typo about environment access in IO::Spec::Cygwin.tmpdir
+ Blocks like { .foo } are no longer considered to be a Hash constructor
+ Propagate ignorecase into subrules of regular expressions
+ eqv no longer defaults to === semantics, but snapshot (via .perl)
+ A constant declaration now pays more attention to its sigil
+ The .gist and .perl methods can now deal with self-referential structures
+ andthen and orelse are now topicalizers as specced
+ Fixed CompUnit.load, which is what use/require uses under the hood
+ Incompatible changes:
+ Creating constants with a ? twigil has become a NYI for now
+ No longer allowed to create dynamic constants with "my constant $*FOO"
+ Forbid to use the very same variable to init itself directly in declaration
+ Parcel is no longer a type, use List instead
+ 'is parcel' trait is now 'is raw'
+ .gist now puts brackets around lists and arrays
+ IO::Handle::lines no longer returns an empty last line
+ The 'Enum' type is gone; use 'Pair' instead.
+ Deprecations:
+ All Deprecations removed in preparation for Christmas release
+ NativeCall:
+ Added support for calling into C++ libraries and calling methods on
C++ classes
New in 2015.07
+ Features:
+ Cool.substr(-rw) and &substr(-rw) now also accept a Range
+ Added trait "is required" on class attributes
+ Parameters like :n($n) are presented as :$n in .gist
+ &?ROUTINE and &?BLOCK
+ Conversion forms now understand :16(':8<377>') and such
+ &words implemented (to completement .words)
+ Numeric comparison ops (== > etc) for DateTimes
+ Fixes:
+ ENTER phaser now can be used as an r-value
+ Allow %{Type} as a way to say Hash[Any,Type].new
+ Several issues with the use of ';;' in signatures
+ Issues with regexen throwing an exception (RT #62086 & #72440)
+ samewith() now also works in subs
+ Calling the .clone method with alternate values no longer changes original
+ Various fixes and optimizations on List.splice
+ .grep and &grep now consume multiple elements for many-param blocks
+ Issues with precedence limit checking in EXPR fixed
+ EVAL now pays attention to languages in the compiler registry
+ Incompatible changes:
+ my Type $a is default($value) is now compile-time checked
+ my $a is default(Nil) only works on untyped (Mu) variables
+ Can no longer (roulette) assign to Whatever slice of a hash
+ Emit warning when \$ \@ \% \& are used to create a Capture
+ Now illegal to use a contextual ($*c) before declaring it in a block
+ EVAL :lang<Perl5> instead of <perl5> for consistency with use :from<Perl5>
+ Deprecations:
+ $*PROGRAM_NAME in favor of $PROGRAM-NAME
+ $*EXECUTABLE_NAME in favor of $EXECUTABLE-NAME
+ pipe() in favor of shell() or run() with :in, :out or :err
New in 2015.06
+ Features:
+ Lexical pragma 'use trace' now outputs statements on STDERR
+ $=finish now contains text after first =finish/=for finish/=begin finish
+ __END__/__DATA__ now marked as obsolete Perl 5 features
+ Added :as named param to .classify / .categorize
+ EVALFILE added, for evalling source in a file
+ Implemented 'quietly' statement prefix to prevent warnings being issued
+ MinGW (Windows with gcc/gmake) is now also supported besides MSVC
+ Implemented 'has Type method'
+ Implemented Buf.push
+ Implemented S/// (returns the new string rather than in-place substitution)
+ Implemented X::StubCode for .../!!! code
+ Add :createonly to rename()
+ Fixes:
+ (10e6).pick/roll no longer build the whole list to pick a value
+ Regex.gist/perl return source of regex
+ start now takes a statement also, or a block (as before)
+ .push/.unshift on typed arrays now create the right type of container
+ Throwing a Failure counts as handling it
+ Incompatible changes:
+ DateTime default timezone format is now +HH:MM (used to be +HHMM)
+ "".IO / IO::Path.new("") no longer legal, use "." for current dir
+ next/last/redo don't allow expressions to be evaluated anymore
+ sign(NaN)/NaN.sign is now NaN
+ Stubbed-out code (via .../!!!) no longer results in X::AdHoc
+ Deprecations:
+ Using start as a sub with parentheses, e.g. start( { ... } )
+ open(:p)
New in 2015.05
+ Features:
+ NFG, NFC, NFD, Uni
+ Implemented unicode property pairs with explicit arguments, e.g.
<:NumericValue(0 .. 1)>, <:Name(/LATIN/)> etc (MoarVM only)
+ :m/:ignoremark implemented (now that we have NFG)
+ Implement <&foo: $arg>, <&foo($arg)> and my $a = "alpha"; /<::($a)>/
+ List/Supply.rotor expects a list of Pairs (elems|elems => gap)
+ Added much faster List.pick(*,:eager) variant
+ Implemented CLIENT:: (nearest CALLER:: from different package)
+ Normal stacktraces no longer include references to code in settings
+ RAKUDO_BACKTRACE_SETTING to *do* include code in settings
+ RAKUDO_VERBOSE_STACKFRAME environment variable shows source lines
+ Warnings now show file/line unless the end with a newline
+ Implemented "is nodal" for signalling behaviour under hypers
+ Rudimentary tab completion available via the Linenoise module
+ Incompatible changes:
+ The readline integration that existed on the VM level has been removed;
it now exists as a module. To restore readline operations in the REPL
(ex. history, line control), install the Linenoise module via Panda
+ "unit" declaration needed for blockless packages
+ Various API changes for the Great List Refactor, such as...
+ 'for' loops not longer flatten; use 'for flat' for that
+ .map no longer flattens, map as a listop does. Use .flatmap to get the
old behavior
+ Likewise other methods that used to flatten their invocant no longer do:
all, any, one, none, unique, squish, min, max, minmax, classify, and categorize
+ Nil no longer iterates like the empty List. Use () or Empty instead.
+ Hashes no longer maintain insert order on Moar (on JVM they never did)
+ @*INC now contains strings (again), rather than CUR objects
+ Item seperator in INC spec is now ","
+ Type / info seperator in INC spec is now "#"
+ .pick($n)/roll($n) now always return lists, even when $n == 1
+ $?FILE is now always an absolute path
+ Variable will init/post/compose throw NYI instead of silently doing nothing
+ The "is cached" trait no longer works on methods, throws a NYI instead
+ Deprecations:
+ Method .map should be used instead of .for
+ List/Supply.rotor now *must* have elems and gap specified
+ Test.pm functions are now kebab-cased (e.g. throws_like -> throws-like)
+ in regexes, avoid non-significant whitespace between alphanumerics
+ Unhandled Failure leaks are now warned about if detected by DESTROY
+ Fixes:
+ Many race conditions, specifically wrt to role specializations
+ Hashes use much less memory on Moar
+ my $a will begin/enter/leave/keep/undo/first/pre now set $_ properly
+ List.roll(Inf) now knows it's infinite, so is lazy
+ The REPL is strict by default now, that leaves only '-e' lines to be lax
+ Undeclared variable compile time error made clearer
+ IO::Handle.lines(:eager)/.words(:eager) now properly eager again
+ 'earliest' now handles remaining channels without specific handlers
+ Int/Rat ** -Int now generates a Rat if possible, else a Num
+ IO::Path.resolve now returns IO::Path as specced
+ CALLER now produces consistent results in the dynamic scope of implicit protos
+ A regex may now be used as the smartmatch of a sequence operator
+ Fix /a ~ (c) (b)/ capture order bug.
+ map <:alpha> in regexes etc to proper lookup on JVM
+ site/lib is now in the C library (.dll/.so/.dylib etc) search path
+ Fix scoping bugs with statement modifier for and given.
+ Make { 1 R=> 'a' } and { %*h } construct hashes.
+ Fix lexical context of regex interpolations
+ Various list ops now report .is-lazy correctly
+ Speedups:
+ generating backtraces is now lazy, improving the speed of e.g. warnings
+ Make List.pick about 3% faster, List.pick(*) about 7% faster
+ Implement new @*INC handling (about 30% faster startup time)
(bare startup time is now below 100 ms on some machines)
+ NativeCall:
+ Implemented CUnions which map to the union C type definition
+ Implemented HAS declarator for attributes to mark it embedded into the
CStruct or CUnion
New in 2015.04
+ Incompatible changes:
+ Installation directory layout changed: it now uses $PREFIX/share instead of
$PREFIX/languages
+ "0" (0 as a string) is now True, no special-casing anymore
+ an Int() coercion type in a multi now creates two candidates: Any and Int
+ Fixes:
+ try now implies "use fatal", so failures are not leaked
+ "use fatal" now only works in its scope, and not in deeper ones
+ don't constant-fold Failures
+ throws_like will EVAL code in context of caller
+ pragma's like "strict" can now also be called with -M on the CLI
+ once a List is infinite, it will stay infinite (fixes several hangs)
+ can now slice an Infinite list into a finite slice
+ can now slice a finite list into an infinite slice
+ adverbs are now allowed inside a ternary
+ auto-generated accessors will not show up in backtraces anymore
+ $_ now defaults to Any, rather than Nil
+ intuited iterators no longer bypass endpoint if no exact match
+ intuited iterators may also skip literal values if endpoint is lower
+ intuited iterators beginning/ending with same length now according to spec
+ say now observes the .nl setting
+ exceptions in BEGIN blocks and constant are now handled better
+ binding now works again in the REPL
+ various other REPL fixes
+ \foo variables work properly in EVAL
+ declarations like my (Str $ing, Int $eger) correctly enforce types
+ detect and complain about placeholders in attribute initializers
+ use of | prefix in the wrong place now complains at compile time
+ \(...) capture constuct handles nameds and | correctly
+ regex interpolation now uses cursors instead of scanning
+ correct line numbers are reported for faling tests
+ Deprecations:
+ the RC release in September will remove *all* deprecations
+ "use nqp" now required for silent use of nqp::ops
+ Features:
+ native arrays
+ 'bit' and 'byte' native types
+ starts-with/substr-eq/ends-with for comparing strings inside other strings
+ first steps towards generic lexical pragma's (e.g. soft, strict, nqp)
+ basic implementation of Uni, NFC, NFD, NFKC, and NFKD on Moar backend
+ Uni.Str coercion produces an NFG string
+ chop now takes optional number of characters argument
+ where constraints on variable and attribute declarations
+ dists are installed into a database-like way by default (via panda)
+ 'is rw' parameters implemented for native subs (they get passed as a pointer)
+ complex and rat literals now work inside of a <> quote
+ attempting to bind a Failure now tells you what was in the Failure
+ reduce() now pays attention to associativity (which is now part of the op)
+ can now reduce ([Z]) with list infixes over an arbitrary number of lists
+ use Foo:from<Perl5> supported when Inline::Perl5 is installed
+ EVAL $code, :lang<perl5> supported when Inline::Perl5 is installed
+ Speedups:
+ Str.codes/chars/uc/lc/tc/tclc/ord/flip about 25% faster
+ List.pick about 10% faster
+ Mu.clone about 8% faster
+ make xx about 1.8 times faster
+ several speedups in matching
+ numerous Num.Rat optimizations: 6.5x faster
New in 2015.03
+ Incompatible changes and deprecations:
Any code *calling* the old method names, will be given a deprecation warning,
and will continue to work. Any module that *implements* MMD candidates for
any of these methods with their old name, will probably break. Please start
using the new names as described below.
+ renamed internal hash/array/code/* methods:
- OLD NEW
- at_pos AT-POS
- exists_pos EXISTS-POS
- delete_pos DELETE-POS
- assign_pos ASSIGN-POS
- bind_pos BIND-POS
- at_key AT-KEY
- exists_key EXISTS-KEY
- delete_key DELETE-KEY
- assign_key ASSIGN-KEY
- bind_key BIND-KEY
- invoke CALL-ME
- Supply.on_demand Supply.on-demand
- Supply.schedule_on Supply.schedule-on
+ renamed traits
- hidden_from_backtrace hidden-from-backtrace
- hidden_from_USAGE hidden-from-USAGE
+ Deprecated use MONKEY_TYPING for use MONKEY-TYPING.
+ Incompatibility change: spaces are no longer allowed in operators.
+ Disallow redeclaring constants in the same scope
+ Throw redeclaration error for duplicate type capture
+ Deprecate IO::Handle.input-line-separator for .nl
+ Remove parrot support from Rakudo.
+ Don't print deprecation messages if RAKUDO_NO_DEPRECATIONS env var is set
+ Features
+ Allow Buf.AT-POS to return an l-value.
+ Implement method ^foo($) { ... } syntax.
+ Implemented PairMap (the simple case only, for now).
+ Implemented .antipairs (pairs with value => key).
+ Implemented .pairup for creating pairs from lists.
+ Implemented LEXICAL, OUTERS and CALLERS pseudo-packages
+ Implemented UInt (sub)type and coercer.
+ Add a array[T], usable for native int/num (MoarVM only for now)
+ Other native improvements, e.g. my int $a; $a++
+ Smart quotes (as in “foo”, ‘bar’, ‚baz’ and „zap”) now also supported.
+ Improve and test support for Listy types in JVM Interop.
+ Hyper-infixes (like »~») are faster and have more features.
+ Make token prefix properly compete with term in LTM
+ not() and so() are functions as well as prefixes.
+ substr-rw() now accepts the same range of parameters as substr()
+ keywords now require whitespace (unless shadowed), which allows:
my \if = 42; say (if) if if; # now says 42
+ Implement IO::Path.resolve on r-m/POSIX
+ Catch P5ish use of $/
+ Fixes
+ Catch wrong attribute usage in a regexes.
+ Fix compiler warnings on OS X / JVM backend
+ bare say now complains about no valid arg
+ Make <a b c>.invert no longer infiniloop
+ Make List.kv completely flatten its values
+ Update error message for $] to use $*PERL.version
+ Fix JVM runner generation on Windows.
+ fix $*KERNEL.arch for raspbian, ugexe++
+ Make $?TABSTOP immutable
+ Make CALLER::<&?ROUTINE> work
+ Errors like "expected Array[Str] but got Array[Str]" have been fixed.
+ Optimizations
+ Make my int/num @a = Range about 1000x faster
+ Make generic Str.subst between 5 - 10% faster
+ Make s/// up to 25% faster (for many changes)
+ Make Bool.pick and Bool.roll up to 2x faster
+ Make Bool.pick()/roll() another 10% faster
+ Make substr(-rw) about 10% faster
+ substr("foo",1) 2.5x faster
+ substr("foo",1,2) 6x faster
+ substr("foo",*-2) 1.5x faster
+ substr("foo",0,*-2) 1.5x faster
+ Make %h<a> = 42 about 10% faster
+ Test.pm changes
+ Several improvements in Test.is() wrt to handling type objects and whitespace.
+ Add simple use-ok implementation
+ NativeCall.pm changes
+ 'is native' will also accept Callables to allow runtime library detection
+ Implemented nativesizeof(T)
+ Add typed Pointer type as replacement for OpaquePointer
+ Throw exception for wrong arity in native subs
New in 2015.02
+ Overriding invoke/postcircumfix:<( )> for type coercions (ex. MyType(...))
now passes the function arguments as-is, rather than just passing a Capture
containing them
+ optimizations to slices with adverbs
+ improved error messages from sprintf and fmt
+ improved error message when trying to inherit from a class that isn't
composed (like a stub)
+ Proc::Async polished (improved error reporting, relaxed type constraints)
+ LoL assignment is now autovivifying
+ Semicolon/"rest of file" form of the MAIN sub implemented
+ Parsing for infixes like "$foo !and $bar" or "$foo !&& $bar" fixed
+ Coercion syntax for parameters: sub foo( Str(Any) $x ) { ... }
+ Str(Any) as a term now parses as a coercion type
+ Foo() works as a coercion type shortcut for Foo(Any)
+ Metaop "=" now respects the precedence of the op it's meta-ing
+ Enable term definitions via "my", e.g., "my \term:<∞> = Inf"
+ Added "polymod" method on numerical values
+ Made simple Str.trans / tr///, Str.subst about 20x faster
+ File test operators now follow symlinks on systems that support them
+ New method Rational.base-repeating, optional precision argument for Real.base
+ Blob.bytes now returns actualy byte size, even for non-byte blobs
+ "6;" at unit start is no longer a way to say "no strict;"
+ Anon variables in sink context warn now correctly
+ Buffer types can now be passed to C functions via NativeCall
+ C types like "long" that depend on the architecture are now handled correctly
+ NativeCall is now shipped with rakudo, because it is coupled too tightly
+ Allow "constant" and "has" declarations to be initialized with .=
+ Types constructed for mixins ("does" and "but") are now cached, giving a 10x
speedup on repeated mixins of the same role to the same type and cutting
CORE.setting size down (by 700KB on MoarVM, for example)
+ Made .^can(...) aware of submethods
+ Fixed a pre-compilation bug when a multi-method in a subclass was installed
in a cloned proto-method inherited from the base class, then called at BEGIN
time
New in 2015.01
+ New simple way of creating an object hash: :{}
+ Str.substr-rw was omitted before, it isn't anymore
+ The loop ^1000 optimization is working again
+ Pair.gist has been simplified (a => 42, rather than "a" => 42)
+ Exporting an Enum now also exports its values
+ Proper error handling for a placeholder that has already been used as
non-placeholder in the same scope
+ Sub form of 'unique' introduced, 'uniq' deprecated
+ Supply.for deprecated in favour of Supply.from-list
+ All deprecated features will be removed with 6.0.0 (sometime in 2015)
+ Startup on the JVM has improved by 20%
+ Many improvements to Java interop for the JVM backend
+ Several precomp issues have been solved
+ Better error messages for die(Failure)
+ Fixed CATCH/CONTROL blocks in the program mainline
+ Substitution now supports assignment meta-op, e.g. s[\d+] += 2
+ Many memory and CPU optimizations
New in 2014.12
+ Flakiness on OS X has been fixed
+ Support for Increase/Decrease, bless(*,...) removed, were deprecated 1+ year
+ Method FALLBACK implemented
+ $str ~~ s/// now returns a Match or list of Matches
+ Updated List smart-matching to latest design
+ $*DISTRO and $*KERNEL updated ($*DISTRO now actually report the Linux dist)
+ Most, if not all, signals are now supported everywhere (MoarVM only)
+ Configure.pl: Fixed check for outdated nqp-m; warn on missing --prefix
+ Optimizations of integer division and Rat construction
+ Added Metamodel::Primitives, to open up more meta-programming possibilities
(publishing method caches, completely custom meta-objects, etc.)
+ Support for closure parameter signatures
+ Implemented chained sequences
+ Implemented longest literal LTM tie-breaker
+ Calling "close" on a Supply will now close all of its taps
+ Added "extension" method to IO::Path
+ Fixed bare "slurp", it was broken in 2014.11 or before
New in 2014.11
+ using a constant negative subscript now dies at compile time
+ better wording for runtime negative index failure
+ force calling method for <.foo> even if sub foo exists
+ fix tie-breaking issues with longest literal matching
+ make List.last-index non-lazy (as the whole list needs to be reified anyway)
+ introduce IO::Handle.slurp-rest for slurping rest from handle
+ method 'for' as an alias for 'map'. Map will stop flattening the list eventually, 'for' remains as it is now.
+ method 'unique' as a successor for 'uniq'
+ warn about clashing enum aliases, and also poison these aliases
New in 2014.10
+ unstrict mode now default with -e
+ use strict / no strict implemented (but -Mstrict does not work)
+ Implemented Supply.lines/words
+ Implemented IO::Handle.words
+ Updated chdir() to spec
+ Implemented indir( $dir,:test<r w x>,{...} )
+ Implemented tmpdir($dir) and homedir($dir)
+ Implemented IO::Path.all: "foo".IO.all(<f r w>) is True for r/w file
+ IO::Path.modified|accessed|changed now return Instant, according to spec
+ Fixed ordering issue with IO::Socket::Async
+ Str.words is now lazy by default
+ Str.words no longer returns the word if there is only one word: this behaviour
was unspecced and apparently used internally only. This old behaviour is
still available by specifying the :autoderef named parameter.
+ method .exists/.delete have been removed after 1+ year of deprecation
+ performance improvements in Str.trans and tr///
+ fixed Str.trans and tr/// for anchored regexes
+ Bool.pick/roll (without parameter) now ~20x faster
+ Numeric.round (without parameter) now ~4x faster
+ Supply.more has been deprecated in favour of Supply.emit (as per spec)
+ Deprecations will now tell when they were introduced, and will give a
release version in which the deprecated feature will be removed.
New in 2014.09
+ ./perl6 --profile for MoarVM, generates HTML profile output, including
spesh/JIT info
+ Workaround OS X make bug for MoarVM
+ Make new LOLLY syntax the default
+ support for submethod DESTROY (MoarVM only)
+ optimizations to Str.words, Str.lines, IO.lines, chomp, and return
+ Str.lines and IO.lines take :eager for still faster performance
+ added experimental support for Proc::Async, MoarVM only for now
+ Promise.keep/break now default to True/False
+ support for S26-style declarative (#| and #=) comments
+ expectations are reported before result in test failures
+ bare 'say' is now a parse error
+ range *..* is now allowed (and means -Inf..Inf)
+ AST.Str now prints the correct source for operand ASTs
+ 'π' implemented as synonym for 'pi'
+ support for :temp/:let declarators in regexes
+ Reduced memory size of CORE.setting, improved startup time
+ startup (on Moar) 15% faster than p5 w/ Moose
+ fix issue with $*EXECUTABLE pointing to an non-existing interpreter on parrot
New in 2014.08
+ print file/line annotations for warnings also on moar and jvm
+ fixed reduce/infix function syntax [[&foo]] LIST and ITEM [&foo] ITEM
+ can now call exit() in END blocks without hanging or affecting END block execution
+ remove speed penalty of large ranges in character classes
+ make LF, FF, CR and NEL available as character names
+ fixed negated character lookup in regexes \C[...]
+ quote words syntax <a b c> splits on breakable space only
+ duplicates in character classes warn now, like in accidently quoted items <[ '/' ]>
+ fixed (s)printf regression with "+" and " " flags
+ allow a DateTime to smartmatch against a Date
+ fix %a{5}:delete anomaly, "as Str" is your friend
+ die / note now say "Died" / "Noted" when not given anything
+ ∅ is finally recognized as the empty set
+ more work under the hood to get in line with S11 / S22
+ Str.indent() now treats its arg as an Int where appropriate
+ Restructure the QAST classes
+ Add LoL candidates for postcircumfix:<[ ]> and postcircumfix:<{ }>
+ Pass --moar-options configuration to NQP's Configure
+ Add .new candidate for creating a Date from an Instant
+ Fail when a Boolean is used as the matcher for &grep, &grep-index, &first,
&first-index, &last-index, and the corresponding methods
+ Implement cmp_ok in Test.pm
+ Add HyperWhatever / **
+ Add method invoke as the preferred way to write what was method postcircumfix:<( )>
+ Warn when a Code object is coerced to Str
+ If the LOLLY envar is set, have (;;), [;;], etc., turn into LoLs. Otherwise, parsefail
+ Add SEQ(a; b) to emulate the old behavior of (a; b)
+ Make &infix:<xx> many times faster
+ NaN === NaN (but still NaN != NaN)
+ fix multi-dimensional slice assignment
+ Add .note() method to Mu
New in 2014.07
+ require and build parrot 6.6.0
+ Cool.eval and eval() are now removed
+ assigning a single itemized hash to a hash is now DEPRECATED (my %h = {...})
+ .hash now turns an itemized hash into a hash
+ added unpack directives "a" and "Z"
+ subbuf-rw specced and implemented
+ Supply.zip-latest specced and implemented
+ minute value is optional in Timezone offsets in DateTime.new(), also a colon
to delimit hours/minutes is now optional
+ file copy and creation operations on the MoarVM now give default file permissions of 0666
+ the tr/// operator is implemented and has the proper return value
+ improved string handling for MoarVM backend
+ fixed class A { my $.x = 42 } scoping on MoarVM
+ removed hack that kept (|)= & co from working
+ re-arranged infixish actions to support [[*]]= etc
+ optimized CompUnitRepo::Local::File
+ optimized takedispatcher to cleardispatcher
+ all backends now allow C pointer arithmetic and casting of pointers to Perl 6 types
(this functionality is exposed by NativeCall)
+ made block inlining a level 2 optimization
+ small optimizations to number parsing
+ fixed Label.gist
+ fixed 'fail' so it also prints a backtrace
+ fixed a repeat until code-gen bug
+ added CompUnit.name and fixed .perl
+ removed hack for $Inf/$NaN: constants Inf/NaN are exposed since a while
+ made initial/max threads introspectable
+ naive implementation of IO.umask
+ make .WHICH also work on type objects
+ throw a X::Subscript::FromEnd for @foo[-1]
+ throw X::TypeCheck::Binding on all backends (was MoarVM only)
New in 2014.06
+ say/note now a little faster for single Str (which is most common)
+ an initial implementation of S11 (Compilation Units) is now available
+ .IO.{d|s|z} are now about 40% faster and return Failure if path doesn't exist
+ $*DISTRO now works correctly on OS X (with name "macosx")
+ $*KERNEL now works correctly on OS X (with name "darwin")
+ initial implementation of $*USER and $*GROUP
+ initial implementation of Supply.zip-latest
+ implement dummy Lock (for $lock.protect( {...} ) ) on parrot
+ @*INC now only contains elements for actually existing paths
+ more work on allowing slangs transparently (such as "v5")
+ IO::Socket::Async now also works on JVM
+ can close tap to stop listening on a socket
+ implement Supply.on_demand, for making on-demand supplies
+ fix race condition in async socket reading
+ can now also bind to dynamic variables
+ LAST phaser used to fire when not actually iterating, now fixed
+ (Set|Bag|Mix).pairs now return immutable Enums
+ (Set|Bag|Mix)Hash.pairs no longer allow changes feeding back
+ optimize :a(:$b) and attributive binding
+ optimize IO::Path.contents
+ optimize push, unshift, and comb
+ assorted optimizations to Junction construction and dispatch
+ optimize no-args case of @foo>>.bar
+ implement :42nd colonpair syntax
+ include correct version information in perl6-debug
New in 2014.05
+ asynchronous timers on MoarVM backend
+ added or updated many Supply methods:
act, batch, categorize, Channel, classify, delay, elems, flat, grab, last,
live, max, min, minmax, merge, migrate, Promise, reduce, reverse, rotor,
sort, squish, stable, start, uniq, wait, zip
+ add list functionality to 'on', as with new S17 spec
+ added .Supply coercer
+ added IO::Notification.watch_path / IO::Path::watch which return a Supply
of file system changes
+ added signal() which returns a Supply of Signals (such as SIG_HUP)
+ added IO::Socket::Async.connect, returns a Promise with a IO::Socket::Async
+ added IO::Socket::Async.send, returns a Promise with success / failure
+ added IO::Socket::Async.chars_supply, returns a Supply with chunks
+ added first-index, last-index, grep-index subs/methods
+ Pair.key was erroneously implemented "is rw"
+ added "subtest code, desc" to Test.pm (inspired by P5's Test::More)
+ added "throws_like" to Test.pm (formerly of Test::Util)
+ Test::Tap::tap_ok and throws_like are now 1 test (using subtest)
+ BagHash<foo>-- on non-existing key no longer fails (as per S02 spec change)
+ (Set|Bag|Mix)(|Hash) now have a .fmt method
+ deprecate $*OS, $*OSVER, $*VM<name>, $*VM<config>, $*PERL<name>
$*PERL<compiler>...
+ added $*KERNEL, $*DISTRO, $*VM, $*PERL as full blown objects
+ .delta (by recent spec change) in Date/DateTime now instead spelled
.later and .earlier
+ TimeUnit enum removed; string named and positional arguments used instead
+ optimized grep,grep-index,first,first-index,last-index with seperate
candidates for Regex and Callable.
+ "use v5" is no longer a noop, but actually tries to load the "v5" module
(soon available as part of Rakudo*)
+ implemented labeled loops and throwing of labels as payload
+ added various optimizations, like optimizing out %_ when unused
New in 2014.04
+ significant performance enhancement for MoarVM, spectest running 20%+ faster
+ S17 (concurrency) now in MoarVM (except timing related features)
+ winner { more @channels { ... } } now works
+ fixed pb with Parcelness of single element array slices with adverbs
+ implemented univals(), .unival and .univals (on MoarVM)
+ make .pick/.roll behave sanely on Enums
+ fixed Str.samespace and ss//
+ added .minpairs/.maxpairs on (Set|Bag|Mix)Hash
+ added Bag.kxxv
+ Capture.WHICH implemented so that identical Captures have the same .WHICH
+ Naive implementation of "is cached" trait on Routines
+ Hash.perl now randomizes key order, while Hash.gist sorts
+ NativeCall passes all its tests on all backends
New in 2014.03
+ Fix suggestions for unknown routines when specified with '&'
+ Match sigil in suggestions for unknown routines depending on specification
+ Improve suggestions for 'length' and 'bytes' being banned in Perl 6
+ fixed for-loops to be properly lazy
+ Zop= now works
+ numerous Pod parsing and formatting improvements
+ uniname, uniprop, and unival implemented on MoarVM backend
+ @<c> as shortcut for @$<c>, %<c> as shortcut for %$<c>
+ improved "unable to deduce sequence" error message
+ duckmap, deepmap implemented
+ list infix reductions no longer flatten
+ X and Z meta ops treat [] as items
+ unary hyper subscripts (@array>>.[0]) now work
+ fixed problem with .=uniq and .=squish
New in 2014.02
+ $*INITTIME implemented
+ improved code generation for loops on the JVM backend
+ eager and lazy statement prefixes
+ statementlist-level for-loops are now assumed to be in sink context
+ improved unspace parsing
+ don't itemize make's ast argument
+ allow definition of custom postcircumfix operators
+ :allow in pod code blocks works now
+ Configure: git protocol is now configurable
+ smartmatching against an IO::Path does the right thing now
+ perl6-debug-* is now installed by rakudo; the user interface is still a
module available from the ecosystem
+ lots of improvements for moarvm, such as client and server socket support
and opening pipes/subprocesses
+ finished NativeCall support on the JVM
New in 2014.01
+ Use .narrow on Numeric to coerce to narrowest Type possible
+ Can now supply blocks with multiple arguments as sequence endpoints
+ <prior> rule no longer exists
+ The eval sub and method are now spelled EVAL
+ Method calls and hash/list access on Nil give Nil
+ No longer need to separate adverbs with comma in argument lists
+ div on parrot will now always round towards -Inf
+ Added support for MoarVM; passes >99% of the spectests that Rakudo JVM does
+ Fixed gather/take stack overflow bug in JVM backend
+ Fixed closure in regex bug on JVM
+ Fixed some line number reporting bugs on JVM
+ Optimized Enum($value) coercion
+ Regexes: Aliased assertions now properly create sub-captures
+ Regexes: Improved detection/reporting of null patterns
+ Implemented IO::Async::File.spurt (JVM only)
+ Implemented Setty.kv and Baggy.kv
+ Use a global ByteClassLoader rather than one per class. (JVM only)
+ Implement more parts of NativeCall for the JVM
New in 2013.12
+ The Whatever Star now works inside chain operators like comparisons
+ Private attributes from roles are now visible in the classes they apply to
+ Use invokedynamic in some places on the JVM.
+ Memory improvements in ListIter
+ Faster method List.combinations
+ Simple lookahead assertions in regexes are optimized
+ Regexes do less superfluous scanning
New in 2013.11
+ Many concurrency primitives harmonized with new S17, but still pretty fluid
+ Refactored build system that allows building rakudo on both backends in the same place
+ Order::Increase/Decrease are deprecated. Please use Order::Less/More.
+ Leading whitespace is ignored for :sigspace
+ Better null pattern detection in regexes
+ The "gethostname" function implemented
+ Warn when private attributes are a marked rw or readonly
+ "is DEPRECATED" trait now produces report when process finished
+ Parcel.rotate implemented
+ Performance optimization: unfold junctions in 'when' clauses
+ capitalize/.capitalize have been removed, as per docs/deprecations
+ improved run()/shell(), these return Proc::Status-objects now
+ The ... range operator can now be chained: 1,2,3 ... 10,15,20 ... 100
+ various other bug fixes, optimisations and additional tests
New in 2013.10
+ postcircumfix {} and [] are now implemented as multi subs rather than multi methods. This should allow for better optimization in the future.
+ Add support for "is DEPRECATED", making it easy for early adopters to stay current.
+ Track multiple spec changes for various container classes.
+ Greatly reduce object creation during Regex parsing.
+ Various portability fixes.
+ qx// and run() now auto-quote correctly
+ Allow #`[...]-style comments in regexes
+ unlink() behaves like P5's, it deletes write-protected files on windows
New in 2013.09
+ candidate argument to bless removed (per spec change)
+ @a.VAR.name and %h.VAR.name implemented
+ The $var.++ and $var.() syntaxes work
+ Lots of improvements on the Set and Bag types
+ [op]() with relational operators vacuously return True
+ tr/// implemented
+ Sockets on JVM implemented
+ sleep(), sleep-time() and sleep-till() updated to spec
New in 2013.08
+ "is default" traits on variables, $/, $!, $_ are default Nil
+ "is dynamic" traits on variables, $/, $!, $_ are dynamic
+ "of TypeObject" trait on variables
+ .VAR.default/dynamic/of return the state of these traits
+ Assigning Nil, calling undefine() restores the default value
+ .WHAT more accurately returns a type object for specifically typed cases
+ Option --gen-nqp for ConfigureJVM.pl
+ Include file name in parser errors
+ Parse labels, tr/// (both don't do anything useful under the hood yet)
+ CALLER::<$var> now only works on dynamic variables, as per spec.
+ Improvements to Threads, including Channel and KeyReducer (JVM only)
+ Asynchronous file reading (JVM only)
+ Improved JVM interop, including 'use :from<java>' (JVM only)
+ Fixed subroutine inlining on JVM
+ Fixed %*CUSTOM_LIB on JVM
* Fixed sink context handling on JVM
+ Reimplementation of Buf as a role
+ Implemented Blob role
+ Implemented sized/encoded Buf/Blob types (buf8, blob8, utf8, etc.)
+ Str.encode now returns most specific appropriate type
+ "once" phaser fully implemented
+ Named parameters "with" and "as" on uniq/squish
+ "samewith()" for calling method on same dispatcher again
+ "will" variable trait partially implemented ($_ not set yet)
+ Interpolating strings into heredocs now dedents properly
+ Solved a slowdown when declaring custom operators
+ Improved P5-regexes (backslash sequences, code blocks)
+ Make type objects appear as Nil in non-scalar contexts
+ Placeholder variables $^A .. $^Z no longer allowed, as per spec
+ printf %d now supports bigints also on Parrot
+ my and our scoped methods no longer go into the method table
+ Implemented keybag(), KeyBag.push, KeyBag.categorize
+ Re-implemented hash iteration for a performance win
+ Various optimizations, code cleanups and error message enhancements
New in 2013.07
+ Huge progress in JVM backend (feature-wise almost on par with Parrot)
+ List.first is now lazy
+ unspace before argument lists is now supported
+ fixed handling of indented heredocs
+ basic support for threads and promises (JVM only)
+ improved sprintf and other formatting routines
+ keyof method for typed hashes to get key type
+ Hash.perl nows works for typed hashes
+ 'is parcel' and 'is default' traits (work in progress)
+ Parcel.new now works
+ slight optimization to join of many items
+ implemented canonpath for Win32 IO::Spec
+ implemented squish
+ made []:(kv|p|k|v) work according to spec
+ properly parse Pod formatting codes with brackets other than <...>
+ the POD_TO_TEXT_ANSI environment variable now leads to some formatting
being applied by Pod::To::Text
+ declaration of multiple operators in a scope now generates much smaller
serialized output
+ Int.round method now takes a scale argument
+ implemented Complex.ceiling, Complex.floor, Complex.round
New in 2013.06
+ JVM backend added - passes initial sanity tests
+ type captures in signature binder implemented
+ IO::Spec::Unix.canonpath made more efficient
+ IO::Handle methods gist, perl, path added
+ Int.msb and Int.lsb implemented
+ dir() is now lazy
+ lines($limit) now doesn't read an extra line
+ .^mro methods added to a few role metaclasses
+ $/ and $! now visible in eval/REPL
+ IO::Handle.copy moved to IO::Path.copy
+ .{} adverb combinations all implemented
+ :$<foo> colonpair syntax implemented
+ 'my &foo; multi foo() { }' gives better error message
+ reduce() more aware of fiddliness
+ &first now returns Nil instead of failing
+ $*CWD and $*TMPDIR now contain IO::Path objects
+ REPL bug fixed when same line issued twice
+ pick/pop/push/roll/reverse/rotate/sort/classify/categorize
now fail immediately if the list is infinite
+ categorize now returns a Hash, not a Parcel of Pairs
+ "undef" warning now refers to Any, not Mu
+ improved error messages for hash shapes
+ Hash.(classify|categorize) implemented
+ IO::Path.chmod implemented
+ IO::Path.succ and .pred implemented
+ syntax parser now allows a dot before hyper postfix
+ Str.succ added for codepoints \x2581..\x2588
+ Cool.path implemented
+ sequences between 1-codepoint strings implemented
+ div and / fail with X::Numeric::DivisionByZero (rather than dying)
+ doing .perl on Rat with denominator 0 doesn't go into an infinite loop anymore
+ Capture.exists implemented
New in 2013.05
+ IO::Spec, a port of Perl 5's File::Spec
+ support for exporting things form EXPORT subroutine
+ ?-quantifier in regexes doesn't create arrays in the Match object anymore
+ speedup of repeated shifts of large lists and arrays by 70%+
+ implemented Cool.lines
+ renamed IO to IO::Handle; IO is now a tag role, as per spec
+ simplify timezone handling
+ .Set and .Bag methods for List and Parcel
+ regex special characters can be used as delimiters
+ allow slice with :exists adverb on hashes …
+ .hash now accepts optional :type and :of named parameters
+ Make :exists and :delete up to spec …
+ fix for autoviv Typed hash problem
+ constant-fold infix:<~>
+ make decl and init of our-scoped arrays/hashes work
+ fix regex interpolation slowdown
+ fix exporting of subroutines
+ fix slurpy is-rw array-parameters
+ failed regex matches return Nil
+ add support for IO::Path::<os subclasses>
+ fix reporting of errors in gather/take.
+ added 125 extra opening/closing bracket-pairs
+ fix build failure on SPARC and PowerPC
+ underlying nqp layer supports parrot and JVM as backend, in preparation
for JVM support in a future Rakudo release
> more than 100 not listed changes
New in 2013.04
+ add Capture.Bool()
+ optimize getting size of numeric Range
+ for loops are eager again
+ improvements to DUMP()
+ wrap NQP objects in ForeignCode, allowing perl6 OO calls on them
+ improve some messages on parsefail.
+ add link and symlink to IO
+ reduce compile-time autothreading to avoid issues with !==
+ improve optimizer - caching, constants
+ fix List.ACCEPTS() for Whatever special case
+ bring 'require' closer to spec, esp. by taking paths
+ bring 'IO::Path' closer to spec
+ remove parrot dynops already provided as nqp ops
+ translate a dynop to nqp code
+ update from pir:: calls to nqp::
New in 2013.03
+ Type names now gist as (Any) rather than Any()
+ Warn when pure expressions are used in sink context
+ Cool.substr(...) now correctly accepts whatever-star closures
+ Fix character class subtraction bugs
+ Correctly detect undeclared variables in regex assertions
+ :i now respected in character classes
+ Improved output of Rat.perl
+ Implemented shellwords postcircumfix (%h<< $x 'foo bar' >>)
+ User-defined circumfixes now parse a semilist rather than just an expression
and handle whitespace correctly
+ Forbid null operators
+ Warn about leading 0 not indicating octal in Perl 6
+ Fix some automatic end of statement on "}" parse bugs
+ Better error message on for(...) {} being interpreted as a function call
+ Array interpolations now properly do LTM
+ Respect :i in constructs like /:i <$var>/
+ Autothread "none" and "all" junctions before "any" and "one"
+ Helpful error if you write "else if"/"elif" instead of "elsif"
+ Throw exception if a Range is used as a Range endpoint
+ Corrected argument order in IO.seek
+ Multi-dispatch now mostly implemented in NQP, not C
+ Fixed LEAVE (and thus UNDO/KEEP/temp) not firing in multis or upon 'next'
in a for loop
New in 2013.02
+ "Did you mean ..." suggestions for symbol-not-found errors
+ Compile-time optimization of some cases of junctions in boolean context
+ Date and DateTime now support a .delta method
+ IO::Socket.get now works again with non-Unicode characters
+ $() now takes $/.ast into account
+ proper return value for smartmatching against a substitution
+ better error reporting when a parent class does not exist
+ constant folding for routines marked as 'is pure'
+ natively typed variables now work in the REPL
+ better error reporting in the REPL
+ writable $_ in -p and -e one-liner
+ speed up eqv-comparison of Bufs
+ warnings for useless use of (some) literals, variables and constant
expressions in sink context
+ /../ and rx/.../ literals match against $_ in sink context
+ array variable interpolation into regexes
New in 2013.01
+ sink context; for-loops are now lazy by default
+ first mentioning a variable from outer scope and then redeclaring it
in the same scope (my $a; { $a; my $a }) is now an error.
+ the long-deprecated "SAFE" setting has been removed
+ 'require' now works with indirect module names
+ restored socket read semantics to returning the requested number of bytes
+ $obj.Some::Role::meth() now passes the correct $obj
+ try/CATCH now returns Nil when the CATCH is triggered, rather than the
exception; this brings it in line with try without a CATCH
+ whatever-star cases of splice now implemented
+ sequences with Junction endpoints now work
+ corrected precedence of various set operators
+ fixed binding of non-Any things into hashes and arrays
+ can now import multis with the same name from different modules,
provided all dispatchers are onlystar
New in 2012.12
+ ~/.perl6/lib is gone from the default include path
+ fixed indent method's handling of empty lines
+ fixed .indent(*)
+ parse errors now formatted like in STD, with color
+ location of parse error now indicated with context
+ highwater algorithm implemented, greatly improving accuracy of parse error
line numbers and locations in a range of cases
+ some parse errors now report what the parser was looking for at the time the
parse failed
+ better errors for unmatched closing brackets and two terms in a row
+ uniq now has === semantics as specified, not eq semantics
+ junction auto-threader optimized and is an order of magnitude faster
+ implemented sub term:<foo>
+ implemented texas versions of the Set and Bag operators
+ good error for use of . to concatenate strings
+ flattening large lists of Parcels now happens in about half the time
+ adopted STD panic/sorry/worry model, meaning that we now keep parsing
further and can report multiple issues in a range of cases
+ we now catch and complain about post-declared type names
+ variable redeclarations are now just a warning, not an error
+ a mention of an &foo that is never defined is now an error
+ fixed .perl output for a Pair with a Pair key
+ interpolation of undeclared arrays, hashes and functions now detected
+ { a => $_ } now correctly considered a block, not a hash as before
New in 2012.11
+ user-defined operators only affect the parser in the scope they are declared in
+ fixed pre-compilation of modules containing user-defined operators
+ implemented precedence related traits (equiv, looser, tighter, assoc)
+ Perl 6 grammar NFAs are pre-computed, saving some work on each invocation; this
shaved around 10% off the time needed to run the spectests
+ redeclaring a class as a role now gives a better error
+ the < foo bar > syntax in regexes now respects :i
+ << ... >> now interpolates, respecting quoting and pairs
+ fix error reporting for not-found dynamic variables
+ many protos now have much narrower signatures
+ quote parsing implementation aligned with the approach STD uses
+ regexes and quotes have better support for user-selected delimiters
+ quote adverbs
+ heredocs
+ carry out IO::Path.dir deprecation
+ implement infix:<andthen>
+ macro arguments now carry their lexical environment properly
+ postfix operators of the form '.FOO' take precedence over method calls
+ version control markers detected and gracefully complained over
+ INIT phasers now work as r-values
+ our ($x, $y) style declarations fixed
+ take and take-rw now evaluate to the taken value
+ implemented cando method on Routine
+ FIRST/NEXT/LAST can now be used in all types of loop (previously limited to for)
+ implemented operator adverbs
+ implemented :exists and :delete subscript adverbs and on hashes
+ implemented :p, :k, :v and :kv subscript adverbs on arrays and hashes
+ fixed shell words post-processing like << foo "bar $baz" >>
+ byte-order mark at the beginning of a file is now ignored
+ fixed bug that could lead to disappearing symbols when loading pre-compiled modules
+ Configure no longer passes --optimize to Parrot if --parrot-option is specified
+ deprecated current &foo semantics
+ fixed #`foo and friends at start of statementlist
+ simplify setting line number of compile-time exceptions
+ made :($a, $b) := \(1, 2) update $a and $b
New in 2012.10
+ :60[24, 59, 59] radix form
+ delegation to methods using the handles trait
+ fixed serialization of Buf
+ improved handling of :P5 regexes (more features, less bugs)
+ determining that an object lacks a method is usually now much faster
+ reduced memory usage of Match objects and optimized their construction a little
+ some code-generation improvements related to void context
+ implemented :dba('...') modifier in regexes
+ various error messages improved through use of :dba('...') in the Perl 6 grammar
+ implemented 'x' in pack
+ added $*CUSTOM-LIB
+ eval in a method can now see self, attributes and $?PACKAGE
+ each REPL line no longer implies a fresh GLOBAL
+ fixed some Pod parsing issues with Windows newlines
+ fixed interaction of :i and LTM (alternations and protoregexes now respect it)
+ import of custom meta-objects only affects the scope they are imported into
+ made <-> lambdas work
+ can now parse nested pairs of quote delimeters, like q{ foo q{ bar } baz }
New in 2012.09.1
+ is-prime and expmod
+ smart matching against Signature literals
+ binding to signatures in declarators
+ the is hidden and base traits
+ ability to set encoding on sockets temporarily removed (reverts to 2012.08 behavior)
New in 2012.09
+ class Iterable does not inherit from class Cool anymore
+ basic macro unquoting
+ basic support for m:P5/.../ regexes
+ support for indirect type names in routine and type declarations
+ compiler now built with QAST-based NQP, which generates better code, thus
making the compiler a little faster
+ support for "is export" traits on constants
+ implemented Str.wordcase
+ can now write more complex proto subs and methods, using {*} to enter the
dispatcher
+ tie-breaking with constraints now picks the first matching one rather than
demanding they be mutually exclusive
New in 2012.08
+ tclc implemented
+ --> ReturnType in signatures and prefix type constraints of routine return
types are honored
+ reduced memory usage at build time by around 35% - 40%
+ the argument to IO::Socket.recv is now interpreted as a number of characters
+ enum lists and arguments to parametric roles are now evaluated at compile time
+ switched to new internal AST and backend representations (QAST and PIRT)
+ removed deprecated routines Str.bytes and Str.lcfirst/&lcfirst
+ errors from traits now contain file name and line number
+ IO::File and IO::Dir have been removed
+ inliner has been improved and can inline a wider range of routines
+ simple implementation of the 'soft' pragma
+ fixed over-eager treatment of numeric literals as int rather than Int in cases
where they appeared each side of an infix operator
+ detect circularities in module loading
+ sigilless variables in signatures when proeceed by | or \
+ prevented blocks that declare variables turning into hash constructors
+ made pre-compilation complain if dependencies are not pre-compiled yet
+ fixed interpolation of double-quoted strings in regexes
+ fixed issue with Num.new not being friendly to subclassing
+ implemented handling of complex numbers in Str.Numeric
New in 2012.07
+ Deprecated SAFE.setting in favor of RESTRICTED.setting
+ Ranges can now interpolate in argument lists
+ The built-in meta-objects (such as Metamodel::ClassHOW) now inherit from Any
+ &open now supports :enc/:encoding
+ Exception.fail, .resumable and .resume
+ Changed &dir to return IO::Path objects, not strings
+ Deprecated .bytes, .ucfirst, and .lcfirst
+ &slurp now supports :bin
+ &spurt implemented
+ cleaned up Version implementation
+ fixed :s file test
+ recognize obosolete rand() and rand(N) forms at compile time
+ anonymous subset types 'subset :: of Int where { $_ > 0 }'
New in 2012.06
+ Rakudo is now compiled with the same regex engine as user-space regexes use
+ transitive longest-token matching in protoregexes
+ changed the output of Match.gist
+ string to number conversion now fails for non-numbers
+ string to number conversion now recognizes radix notation
+ string incrementation is now aware of more scripts
+ <|w> word boundary in regexes implemented
+ more errors from within the meta model now contain line number and file name
+ &push and &unshift functions can now autovivify
+ user-defined operators properly participate in LTM
+ Rakudo's C code is now compiled with optimization switches turned on
+ basic module loading tracing with the RAKUDO_MODULE_DEBUG=1 env variable
+ longest token matching with alternations
+ require with argument list
+ compile time errors in loaded modules now show a module loading backtrace
+ improved list and .map handling
+ can now use | to flatten a pair into an argument list as a named argument
New in 2012.05
+ meta ops //=, ||= and &&= now short-circuit properly
+ Failure objects don't blow up the REPL anymore
+ allow case insensitive regex matches without ICU in limited cases
+ %*ENV now propagates into subprocesses
+ RAKUDOLIB env variable supported in addition to PERL6LIB
+ -I and -M command line options
+ $?LINE and $?FILE variables
+ warnings now include line number from program, not from CORE.setting
+ reduction meta-operator on list-associative ops now has correct semantics
+ now have :th alias for :nth in Str.match
+ import collisions now report the name of the module that is to blame
+ ms// fixed
+ <$x> in regexes caches the compiled regex, which can be a big performance win
+ implemented temp and let
+ 'use' can now import by tag name
+ 'use' with positional arguments
+ lib.pm
+ updated calling conventions for traits
+ implemented fff flip-flop operator; improvements to ff form also
+ removed current directory from default library search path
+ 'import' works
+ symbols installed in EXPORT in all nested packages, not just UNIT::EXPORT
+ enumeration types can be used as roles
+ END phasers now run when program ends with exit or an exception
+ fix Rat.floor and .ceiling to work for large numbers
+ improved Rat stringification
+ Real is now a role, as it should be
+ implemented < foo bar baz > syntax for alternations in regexes
+ implemented <( and )> syntax for setting from/to of match in regexes
+ support for non-Int enums
+ basic support for Version literals
+ chmod now available as a function
+ roundrobin implemented
+ fixed a bug in precompilation of modules that use roles from other modules
+ basic implementation of pack and unpack
+ implemented substr-rw, which provides an l-value (assignable) substring
+ implemented <~~> (recursive call into self) syntax in regexes
+ 'LAZY' statement prefix
New in 2012.04.1
+ autvivification for arrays and hashes
+ more robust module precompilation
+ improved infrastructure for calling C code
+ $.foo style calls now contextualize correctly
+ &infix:<cmp> now return members of the Order enum in all cases
+ --doc=format now loads Pod::To::format and uses it for rendering
+ 'lib/' is no longer in the default include path
+ improved Parameter.perl
+ add .changed, .modified and .accessed methods to IO
+ improved --help output
+ install precompiled test module for speedup
+ fixed printing of backtraces when regexes are in the call chain
+ case insensitive regex matches now also work for interpolated variables
New in 2012.04
+ 'defined' is now a listop instead of a prefix op
+ fixed :16('0d...')
+ implemented simple interpolation in names in type declarations (class ::(const) { })
+ $=POD renamed to $=pod
+ fixed slicing of non-lists with infinite ranges
+ fixed accidental over-serialization, cutting ~300KB off each pre-compiled module
+ scalar positionals no longer treated as slices
+ implemented Routine.package
+ join will now always reify at least 4 elements of a list if possible
+ warnings now have line numbers
+ brought back Str.indent
+ ban declaring pseudo-packages, with a helpful error
+ a name followed by :: now returns .WHO, so Foo::<&bar> style lookups work
+ Exception.Bool now returns true
+ avoided re-parsing of longname, which speeds up the parse a bit overall
+ implemented MY, CALLER, OUTER, UNIT, CORE, SETTING and DYNAMIC pseudo-packages
+ implemented ::<$x> and ::{'$x'} style lookups
+ some small optimizations to various Str built-ins and MapIter
+ improved --doc output
+ added $*PERL
+ implemented IO::ArgFiles.slurp
New in 2012.03
+ updated to dyncall 0.7
+ infix:<eqv> now autothreads over junctions
+ more typed exceptions
+ pre-compiled modules/settings are now serialized, not re-built on load
+ startup time is now about 25% of what it once was
+ significant memory and time reduction (~40%) when pre-compiling modules/settings
+ BEGIN and CHECK now work in r-value context
+ constant declarator now works with non-literals on the RHS
+ implemented Set, Bag, KeySet and KeyBag types
+ implemented :exhaustive and :nth match adverbs
+ implemented ENTER, LEAVE, KEEP and UNDO phasers
+ implemented FIRST, NEXT and LAST phasers in for loops
+ implemented START phaser, including use of it in r-value context
+ implemented also syntax for adding traits inside a block/package
+ implemented macro declarations and quasi quotes (sans placeholders)
+ implemented anonymous enums
+ 'our multi' now dies (used to ignore the 'our')
+ implemented PRE and POST phasers
+ ~25% performance improvement to array indexing
New in 2012.02
+ catch duplicate accessor generation required of "has $.x; has @.x;"
+ many more typed exceptions thrown
+ undeclared attributes mentioned in signatures now caught at compile time
+ empty Buf is now False in boolean context
+ implemented <prior>
+ implemented /<Foo::Bar::baz>/ syntax
+ /<x>/ can call a predeclared lexical regex x
+ conjugate is now called conj
+ enumeration values .gist to just the key, not the full name
+ <!> in regexes fixed
+ implemented Match.make(...) method
+ better error reporting for improper use of nextsame and friends
+ initializers now parsed as part of a variable declarator
+ trailing whitespace now removed from Pod declarator blocks
+ List.tree made more useful
+ implemented rename and copy functions
+ ().pick and ().roll now return Nil
+ default MAIN usage message includes .WHY of the candidates
+ X::Base eliminated in favor of Exception
+ various range iteration fixes; Num ranges now produce Num lists
+ LHS of the xx operator is now thunked
+ can now declare state/constant/our in regexes (before, only :my worked)
+ improved backtraces
+ catch constructs that require an invocant but don't have one
+ catch uses of virtual method calls in submethods and attribute initializers
+ improved parsing and performance of reduction meta operators
+ Rat arithmetic now properly defaults to Num if the denominator is too big
+ FatRat implemented
+ implemented long forms of regex adverbs (e.g. "ignorecase" maps to "i")
+ fixed "but True" and "but False"
+ object hashes, with the my %h{SomeObjectType} syntax
+ implemented Int($x) style coercions
+ implemented Capture.perl
New in 2012.01
+ -c command line option re-implemented
+ take flattening bug fixed
+ duplicate named parameter names detected
+ fixed clone being too shallow with regard to containers
+ fixed negative modulo for bigint
+ better Routine.perl
+ .DEFINITE macro implemented
+ .^methods, .^attributes and .^parents now support :excl (the new default) and :all
+ Array.delete implemented
+ restored basic -n and -p functionality
+ improved parameter introspection
+ fixed operations on bigints when the first operand had been mixed in to
+ fixed multi-dispatch narrowness calculation for native types
+ binding to array and hash elements
+ added Order enumeration, and updated cmp and <=> to use it
+ adding various missing magicals, such as &?ROUTINE and ::?ROLE
+ accessor generation for my $.x and our $.x cases
+ fixed @x>>.() (hyper-invocation)
+ updated Complex.Str to match current spec
+ fixed eval to see GLOBAL properly
+ implemented 0 but Answer(42) style mix-ins
+ fixed various issues in scoping/handling of $/
+ fixed usage of make in a regex (previously, only worked in action methods)
+ optimized Range.roll and Range.pick for large ranges
+ fixed non-numeric, no-Str ranges
+ fixed build on Cygwin
+ fixed regex backtracking into subrules and captures
New in 2011.12
+ improved protoregex support, including NFA caching
+ <before ...> and <after ...> (lookahead and lookbehind)
+ backslash sequences in character classes
+ fixed quantified captures and :r interaction bug
+ optimized match object construction, ListIter, substr and chomp
+ improved performance of send/get on sockets
+ optimizer detects missing private methods and simplifies calls (level 3 only)
+ fixed some issues when an array was assigned to itself, maybe using .=
+ implemented .wrap and .unwrap, plus wrap handles with a .restore method
+ implemented .trans on strings
+ unicode properties can be matched against in regexes
+ binding to @, % and & sigils now checks for the appropriate role
+ assignments to variables declared with the & sigil now checked for Callable
+ typed hashes, partial support for typed arrays
+ some parametric role fixes
+ can now use but operator with a type object
+ smartmatching of regexes against arrays and hashes
+ socket IO now implements .write and custom input line separators
+ implemented getc
+ implemented .WALK
+ implemented ff, ^ff, ff^ and ^ff^
+ implemented .REPR macro
+ implemented Proxy class
+ some typed errors are now thrown from within the compiler
+ stubbed methods from roles now require those methods to be implemented
+ updated docs/ROADMAP
+ .WHICH now returns ObjAt objects
+ defining new operators
New in 2011.11
+ CATCH blocks are now much closer to spec
+ big integer support
+ basic protoregex support with NFA-driven LTM for some declarative constructs
+ correct default values for natively typed variables
+ fixed initialization of state variables
+ improved support for natively typed variables
+ catch more uses of undeclared variables
+ splice() is now implemented
+ uniq() is now implemented
+ several runtime errors now throw properly typed error objects
+ various performance improvements, for example to the X meta op and Str.succ
+ improved support for MAIN argument parsing
+ fixed lexicals/recursion bug
+ IO.copy is now implemented
New in 2011.10
+ operators and functions with native type arguments
+ detection of call to undefined routines at CHECK time
+ various optimizations: inlining of operators, CHECK time dispatch decisions
+ performance improvements of MapIter
+ support @$foo style derefencing/coercion
+ Exception.backtrace
+ eval() has stopped to catch exceptions
New in 2011.09
+ Rewritten meta object protocol and object storage
+ many speedups
+ Int, Num and Str are now far more lightweight
+ much more robust handling of infinite list
+ basic LoL (List of Lists) support
+ :U and :D type modifiers
+ protos and multis now conform to the new spec
+ improved enum support
+ basic 'constant' declarator
+ .WHAT and friends as macros
+ chrs sub and method
+ support for .gist
+ run() has been renamed to shell() to conform to current spec
+ hyper methods now descend into nested data structures
+ basic safe mode (through --seting=SAFE)
+ recording and reporting of test timings (tools/test_summary.pl)
+ Pod parsing and --pod=text option
+ basic support for .WHY
+ greatly improved BEGIN-time support
+ traits applied at BEGIN time for packages, routines and attributes
+ parametric roles reify types properly, fixing many bugs
+ better handling of type variables
+ support $?CLASS, which is generic in roles
+ support import/export of custom meta-objects for built in package declarators
+ custom meta-objects can override method dispatch
+ faster, allocation-free multi-dispatch cache
+ a custom BUILD does not suppress default values
+ undeclared attributes detected and reported at compile time
+ basic support for native int/num types on lexical variables
+ int/num as attributes are stored compactly in the object body
New in 2011.07
+ fractional powers of negative numbers now result in Complex numbers
+ obtain spectests from a specific branch of the 'roast' repo
+ fix bug that prevented build on systems with little RAM
New in 2011.06
+ added take-rw built-in
+ numerous build system improvements
+ assignment now evaluates arguments right-to-left
New in 2011.05 release
+ added a call counter for builtins in Perl 6-level subroutines
+ gcd (greatest common divisor) and lcm (largest common multiple) operators
+ build system improvements
+ added --ignore-parrot-rev option to Configure.pl
+ Configure.pl now creates "config.status" file
+ fixed relational operators when used with NaN
+ implemented Int.base
+ speedup smart-matching against numbers and Str.comb with default arguments
+ added RAKUDO_SUBLOG environment var for tracking subroutine calls
+ overall performance speedups
New in 2011.04 release
+ implemented Str.indent
+ A new, much simpler API and implemention of IO::Socket::INET
+ Unified error messages to use "Cannot"
New in 2011.03 release
+ improved error message on type check failure in assignment
+ -n and -p command line options
+ Test.pm's skip() now has argument ordering consistent with todo()
+ implemented complex conjugation
+ more IO methods related to stat
New in 2011.02 release
+ IPv6 support
+ more robust numeric exponentation
+ --ll-backtrace command line option for PIR level stack traces
+ future-proof for upcoming generational garbage collector in parrot
+ various constructs now return Nil
+ infix:<orelse> implemented
+ infix:<^^> and infix:<xor> improved
+ negation metaoperator is now restricted to operators that return Bool
New in 2011.01 release
+ faster subroutine calls (type cache)
+ 'handles RoleName' now works
+ Test.pm: s/done_testing/done/
+ non-spec debugging pragma Devel::Trace
+ improved parsing of keyword boundaries
+ sped up .comb
New in 2010.12 release
+ new .trans algorithm
+ fixed $*PID on MacOS X
+ don't register names of anon types
+ configuration improvements
+ updated Any functions
+ fix $*IN_DECL leakage
+ implemented Hash.hash
+ Temporal updates
+ Buf.decode fixed
+ open() fixed for binary flag
New in 2010.11 release
+ now works with parrot on git
+ implemented qw//
+ 5x speedup of .trans
+ various improvements to Set
+ don't use deprecated charset ops anymore
+ Bool.Bool and Bool.so now return False
+ implemented &elems
+ improved error for Date.new(Str)
+ improvement on hyperoperators
+ indexings like .[0 .. *-1] work now
New in 2010.10 release
+ True and False now stringify according to the specification
+ basic form of 'require' for run time module loading
+ warnings from the setting now produce line numbers in the users' program
+ local time zone available as $*TZ
+ more consistent line numbers from warnings
+ getting and setting attributes via introspection
+ implement samespace, ms// and ss///
+ hyper operator invoving = can now modify their arguments
+ speed up Str.flip by over a factor of 100
New in 2010.09 release
+ new methods on IO concerning the modify and access time of files
+ S32::Temporal now completely implemented
+ Instants and Durations
+ speedup for slurp() and .reverse built-ins
+ various improvements to the Set type
+ revamp of series operator code, and adaption to new spec
+ implement ...^ up-to-but-excluding-series operator
+ allow :r and :ratchet modifiers on regex quoting constructs
+ Bool.pick
+ significantly improved enum implementation
New in 2010.08 release
+ syntactic adverbs on substitutions, rx quotes and m//, e.g. '$x ~~ s:2nd/a/b/'
+ updated ROADMAP
+ speedups for integer operations
+ the Match class's .perl method now produces useful, roundtrippable Perl code
+ the MAIN subroutine can now parse short arguments
+ the cmp and <=> operators now work on more numeric types
+ the Buf class now has .pack and .unpack methods with partial functionality
+ numeric bitshift operators now have the correct precedence
+ smartmatch against True or False is now an error
New in 2010.07 release
+ support for delegation via 'handles'
+ implemented binding with := and read-only binding with ::=
+ implement OS related built-ins like mkdir, cwd
+ improved diagnostics in Test.pm
+ basic binary IO, buffer encoding and decoding
+ magic $*ARGFILE file handle
+ more robust closures
+ multi-level Array and Hash element autovivification
+ perl6 --version now identifies the exact git sha1 and parrot version
+ implemented 'is rw' trait on classes
+ file tests now work through IO, ie. 'README'.IO ~~ :e
+ generic, multi-level Whatever-currying (eg grep !(* % 2), @list)
+ improved error reporting in many cases, especially multi-method dispatch
+ implemented backtracking into capturing groups and subrules
+ phasers refactored, they can now return results and see the setting
+ custom circumfix operators
+ basic .wrap and .unwrap implementation
+ weighted Hash.pick
+ .perl on custom classes now dumps attributes
+ Basic implementation of the ==> and <== feed operators
+ Int ~~ Num is no longer true, as per spec; use Numeric instead
+ Improvements to enumerations
New in 2010.06 release
+ new list model with immutable iterators, lots of fixes to lists and arrays
+ variable interpolation into regexes
+ compile time Whatever currying for infix, prefix and postfix operators
+ autoprinting in the REPL shell
+ in @*INC, the current directory '.' now comes at the end, as in Perl 5
+ basic Buf implementation: Str.encode/Buf.decode work for UTF-8
+ proper Perl 6 match objects
+ Backtraces with Perl 6 subroutine names and line numbers
+ MAIN and USAGE subs
+ basic version of Str.trans
+ mix-ins with non-roles (5 but 'string')
+ @*ARGS is now read-write
+ IO::Socket::INET again works in CORE
+ hash and array slices have been greatly improved
+ basic support for callframe() and CallFrame type
New in 2010.05 release
+ implemented lexical and anonymous classes and roles
+ manual pages are now installed
+ the .match method now understand the adverbs :c; :p, :nth, :x, :g, :ov
+ test reports with tools/test_summary.pl now record detailed timing information
+ many improvements to numeric handling
+ implemented S (sequential) meta operator
+ fixed placeholder parameters ($^a, $^b)
+ basic enum implementation
+ implemented List.classify
+ turned on an additional 47 test files
+ further improved error messages
+ implement zero-argument versions of many binary operators
+ basic interoperation with Perl 5 through the external Blizkost project
New in 2010.04 release
+ interpolation of expression ending in postcircumfixes into double-quoted
strings (for example "cards: @cards.sort()")
+ prefix and postfix hyper operators
+ multi subs now work properly when lexically scoped
+ implemented item assignment with tighter precedence than the comma operator
+ loading of .pm6 modules
+ Basic implementation of Numeric and Real roles
+ implementation of DateTime and Date built-in types
+ named regexes can be declared outside of grammars again
+ support for numbers with arbitrary radix, including fractional numbers (:16<DEAD.BEEF>)
+ implemented fmt(), printf() note() and IO.getc built-in routines
+ infix meta operators now inherit the precedence of the modified operator
+ &[+] short name for infix operators
+ hash slices
+ signature literals
+ smart-matching against signatures
+ more consistent implementation of prefix:<|> for interpolating things into
signatures
+ better error message on accidental usa of Perl 5 features such as << as
bit shift operators, and catch many perl 5 magic variables
+ implemented type Cool
+ implemented anonymous classes and roles
+ implemented $*PID
+ method introspection works again
+ better error message for calling non-existent routine in a namespace
+ now run programs with the setting as an outer lexical scope, as per spec
New in 2010.03 release
+ The trigonometric functions and the Rat class have received numerous
updates, making them faster and more complete
+ .^parent now works again
+ The invocation logic has received various speedups
+ Hash creation has been optimized
+ Various improvement related to constant internal strings have led to
slight speedups
+ .pick, .sort, .keys, .values, .kv, sprintf were reimplemented, ported
from the old 'alpha' branch
+ The statement modifier for loop works again
+ Various parsing bugs have been sorted out; one having to do with
closing curly braces at the end of a line not terminating the statement
+ .CREATE, .BUILDALL and .can in the OO system have received attention,
some of it leading to mild speedups
+ $*PROGRAM_NAME and @*ARGS now work
+ Deferral works again (nextsame/nextwith/callsame/callwith)
+ Array.delete works again
+ Fixed .?, .+ and .* along with matching latest spec on .?
+ Switch untyped variables to default to Any instead of Mu
+ &foo lookup syntax works again (including for operators)
+ Various cases of eqv operator implemented
+ Make overriding postcircumfix:<( )> work again, this time per spec
+ Make junctions of code objects invokable again
+ Lazy implementation of the Z operator
+ Added back @*INC
+ Read-only %*ENV support
+ Grammars work again
+ Implemented regexes taking parameters
+ Implemented proto-regex declarations
+ Initial work on getting subset types working again
+ Add back many of the file test methods
+ Added docs/S11-Modules-proposal.pod documenting how we intend to handle
modules through Rakudo *
+ First cut of locating and loading modules with a given version and/or
authority, and in absence of a requirement selection of the latest
version by default if multiple are available.
+ Many improvements to the series operator
+ Implemented 'need' and a first cut of 'import'; 'use' works in terms
of them
+ Import is now into the lexical scope by default, as per spec
+ Removed requirement to hand-pre-compile .pm to .pir for use with 'use'
+ Improved multi-dispatch candidate not found errors to include details of
the available candidates
+ Implemented 'use MONKEY_TYPING'
+ Many cases of smart-match work again
+ $x.Foo::bar() and $x.$y() work again
+ $.foo(1,2,3) works again
+ !, R, X and Z meta-operators work, albeit with some caveats
+ s/foo/bar/ and s[foo] = 'bar' substitution syntax implemented
+ Array.rotate added back
+ User defined operators (prefix, postfix, infix) working again
+ Many more small but important improvements to built-in types and functions
+ Various other bug fixes
+ ROADMAP updates
New in 2010.02 release
+ The branch formerly known as 'ng' becomes the new master branch
+ The previous master branch is now Rakudo/alpha
+ NQP-RX replaces NQP in the Parrot Compiler Toolkit, enabling the
source code of the compiler to be written in a subset of Perl 6 that
is much more powerful, most importantly with regexes, as the name
suggests
+ The revised Perl6/Grammar.pm is much closer to the canonical STD.pm
+ Regexes may declare contextual and lexical variables
+ Lazy lists and arrays are partly implemented
+ The object metamodel is largely written in NQP-RX instead of PIR
+ The name of the root of the object hierarchy is now Mu
+ The term 'undef' is gone, replaced by Nil, Mu or *.notdef depending on
context
+ Builtin classes derive from Cool which derives from Any
+ The refactored source code is more compact and more easily extended
+ The number of spectests passed has reduced from a peak of 32731 in
alpha to 24221, because porting the functionality to the new master
is still ongoing
+ Release numbering changes from 'dash' to 'dot' delimiter to get on
better with various package management systems
New in 2010-01 release
+ Added method form of eval.
+ Implemented :s and :l file operators
+ Added functions for logarithms using $base
+ Refactored subroutine calls to use new Context structures in Parrot 2.0.0
New in 2009-12 release
+ Only minor maintenance was done because all attention was being given
to the Rakudo/ng branch, bringing in the new nqp-rx bootstrap compiler
New in 2009-11 release
+ Rakudo now uses Parrot's updated calling convention features
+ support unpacking of arrays, hashes and objects in signatures
+ changed .pick to use :replace instead of :repl
+ many core setting optimizations and bugfixes
+ IO::Socket.recv() has been extended to accept a parameter specifying the
number of bytes which will be received
+ Rakudo now looks up %INC in the right namespace when loading libraries for
foreign languages
New in 2009-10 release
+ smolder reports for spectest runs
+ more Complex trig functions
+ pure Perl 6 implementation of the Complex type
+ some variants of the new series operator
+ correct construction of twigilled colonpairs
+ infix:<eqv>, .pred and .succ for the Rat type
+ when configuring with --gen-parrot, pass --optimize to parrot's Configure.pl
+ moved more operators to the setting and thus made them overloadable
+ { %hash } now correctly constructs a hash, not a closure
+ new, faster low level Signature type
+ improved Signature introspection
+ new, much faster signature binder
+ improved various error messages related to signature binding
+ signature literals now supported
+ binding of named arguments to positional parameters
+ attributive parameters implemented
+ package blocks now run as immediate blocks, as per the spec
+ lexical variables declared outside of packages now visible inside them
New in 2009-09 release
+ updates to numeric operators: infix</>(Int, Int) creates a Rat
+ Rat (rational) numbers
+ overloadable builtin operators
+ contextual variables
+ setting values in %*ENV now works
+ partial support for trigonometric functions of complex numbers
+ better handling of custom traits, many builtin traits moved to core setting
+ improved type dispatch for builtin operators, type coercions
New in 2009-08 release
+ Rakudo must now be built from an installed parrot, and can be installed
itself
+ separate Perl 6 meta class
+ introspection on roles
+ declaration of methods in the meta class by writing method ^newmethod($obj)
+ :tree options for parent class, attribute and role introspection
+ allow some custom postcircumfix:<( )> methods
+ moved more built-ins into the setting
+ implement operators infix:<!%> (divisibility test) and prefix [||] and [//]
+ updated ROADMAP in preparation for the Rakudo Star release
+ instead of throwing nasty parse errors, Rakudo now informs you that feed
operators are not yet implemented
+ improved testing: planless testing with done_testing(); better diagnostic
output from is()
+ the syntax for embedded comments has changed
+ embedded Pod comments are now recognized
+ support for defining traits and applying them to routines, classes and roles
+ "hides" trait (class A hides B { ... }), and "is hidden"
+ better handling of slurpy and optional in multi-dispatch
+ use of .?, .+ and .* with indirect calling form ($obj.+@cands)
+ .can improved; now returns something usable as an iterator
+ lastcall implemented
New in 2009-07 release
+ extensive refactor of the multi dispatch code to get closer to the spec
+ better handling of named arguments in multi dispatch
+ operators and traits can be defined in the setting
+ basic implementation of the series and eqv operators
+ refatored trait code to match updated specification
+ implemented more cases of smartmatching against hashes
+ fixed state variables to work with //= and ||= initialization
+ improved testing: when Rakudo dies with 'Null PMC Access' it is never
considered a success
+ implemented the :all flag to split which keeps captures
+ added List.rotate builtin
+ nextwith and callwith now also work properly with methods
+ take() without outer gather now merely warns
+ introspection of roles and attributes
New in 2009-06 release
+ refactored and corrected object initialization (BUILD/CREATE)
+ attributes initilizations can now use attributes defined earlier
+ method calls are now faster
+ basic safe mode that forbids IO and execution of external programs
+ implemented meta operators for user defined operators
+ initial implementation of Temporal (date/time related objects)
+ type checking of implicit return values
+ improved introspection methods
+ cleaned up IO methods
+ improved "is export" handling for modules and setting
+ automatically transcode to iso-8859-1 for faster parsing when possible
+ refactored and corrected assignment, .succ, .pred, C<++>, C<-->,
postcircumfix:<[ ]>, Whatever
+ "module Foo;" now allows statements before it
+ improved Unicode string handling
+ better support for Str increment/decrement in Unicode ranges
+ many performance improvements
New in 2009-05 release
+ updated docs/ROADMAP
+ basic support for custom operators
+ operators can now be referenced as &infix:<+>
+ meta operator support for custom operators
+ cross-language library loading
+ stack traces now include source file name and line number
+ implemented Regex type
+ .WALK (parent classes in configurable order)
+ .name method on routines
+ refactored enums, thereby fixing many enum related bugs
+ fixed namespace of eval()ed code
+ implemented parallel dispatch (@objects>>.methods)
+ initial support for «...» quotes
+ text files now default to utf8 encoding
+ fixes to Match.perl and Match.chunks
+ implemented 'constant name = $value'
+ documented build dependencies
+ grep() accepts general matcher, things like @list.grep(Int) work
+ trigonometric functions (sin, cos, ...) now available via 'use Num :Trig'
+ qx{} quotes now work (except on Windows)
+ hyper-operators on hashes now work (%a >>+<< %b)
+ initial implementation of $foo.@bar
+ refactored wrap and unwrap to work with candidate lists; fixes some bugs
+ refactored/improved callsame and callwith, and added nextsame and nextwith
(only work for dispatches of the form $foo.@bar and with wrap so far)
+ partial implementation of .^parents and .^methods
+ can initialize attributes in terms of others
+ many other bug fixes and performance enhancements
New in 2009-04 release (#16, "Bratislava")
+ wrap and unwrap for subroutines
+ calling a method on a Whatever star generates a closure
+ 1+*, *+1 and others generate closures (*-1 missing)
+ Associative, Positional and Callable are now parametric roles
+ typed arrays and hashes
+ parametric role subtyping (R[T1] ~~ R[T2] where T1 ~~ T2)
+ .invert and .push on Hashes
+ enforce return types of subroutines (partial implementation)
+ parallel testing
+ Configure.pl now supports passing options to parrot's Configure
+ support for lexical subroutines and multis
+ implemented \c[character name] in double quoted strings and regexes
+ implemented Perl 5 regexes
+ rx/.../ regex quoting
+ sockets support has been added (IO::Socket)
+ regex patterns may now be quantified by a separator regex
+ moved many methods to the setting
+ exporting and importing by tags, support :DEFAULT export tag
+ implemented START blocks
+ implemented roots builtin
+ implemented .ast on Match objects
+ added Match.caps and Match.chunks
+ split() now supports limits in all cases
+ prefix:<=> and the "fish operator" ( =<> ) are now gone
+ .readline is now .get
+ roles are now punned on any method call on the role
+ many other bug fixes
New in 2009-03 release (#15, "Oslo")
+ implemented $*PROGRAM_NAME magical variable
+ outer lexicals are now visible in eval()
+ next, last etc. work in grep()
+ added R metaoperator
+ add an initial draft of Match.perl
+ refactor Grammar and Match class hierarchy
+ fix if/unless/while/until/for/... on line after close curlies
+ add Q quoting, including Q:PIR
+ added "state" variables
+ //= fixed to short-circuit, and added short-circuiting &&= and ||=
+ multi-subs now have the Multi type and have a .candidates method
+ multi-method dispatch now looks up the class hierarchy
+ various fixes to using roles as type constraints
+ support bare sigils in signatures
+ more methods and functions moved to (Perl 6) setting
+ many other bug fixes
New in 2009-02 release (#14, "Vienna")
+ first release independent of Parrot releases
+ passing 7076 spectests (+796 since 2009-01 release)
+ build and use fakecutable (perl6.exe) by default
+ redesigned build, configuration, and test subsystems
+ add settings/ directory for builtins written in Perl 6 (was "prelude")
+ improve diagnostics in Test.pm
+ allow anonymous classes via C<::>
+ re-use existing parameterized roles instead of creating new ones
+ roles now pun classes when .new is called on them
+ 'proto' now marks all same-named routines as 'multi'
+ XopX is now Xop
+ implement <-> (rw) pointy blocks
+ added min= and max= metaoperators
+ many many bugfixes
+ publish release schedule
+ documentation improvements
|