The unpac monorepo manager self-hosting as a monorepo using unpac
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge commit '8afe2db3c6bdf06d2596ddba95cb889991196fc5' into parallel_minor_gc_4_09

+5060 -4985
+2681 -2681
.depend
··· 63 63 utils/misc.cmx \ 64 64 utils/identifiable.cmi 65 65 utils/identifiable.cmi : 66 + utils/int_replace_polymorphic_compare.cmo : \ 67 + utils/int_replace_polymorphic_compare.cmi 68 + utils/int_replace_polymorphic_compare.cmx : \ 69 + utils/int_replace_polymorphic_compare.cmi 70 + utils/int_replace_polymorphic_compare.cmi : 66 71 utils/load_path.cmo : \ 67 72 utils/misc.cmi \ 68 73 utils/load_path.cmi ··· 242 247 parsing/parsetree.cmi \ 243 248 utils/misc.cmi \ 244 249 parsing/location.cmi 245 - parsing/camlinternalMenhirLib.cmo : \ 246 - parsing/camlinternalMenhirLib.cmi 247 - parsing/camlinternalMenhirLib.cmx : \ 248 - parsing/camlinternalMenhirLib.cmi 249 - parsing/camlinternalMenhirLib.cmi : 250 + parsing/camlinternalMenhirLib.cmo : 251 + parsing/camlinternalMenhirLib.cmx : 250 252 parsing/depend.cmo : \ 251 253 parsing/parsetree.cmi \ 252 254 utils/misc.cmi \ ··· 347 349 parsing/location.cmi \ 348 350 parsing/docstrings.cmi \ 349 351 utils/clflags.cmi \ 350 - parsing/camlinternalMenhirLib.cmi \ 352 + parsing/camlinternalMenhirLib.cmo \ 351 353 parsing/asttypes.cmi \ 352 354 parsing/ast_helper.cmi \ 353 355 parsing/parser.cmi ··· 366 368 parsing/parsetree.cmi \ 367 369 parsing/location.cmi \ 368 370 parsing/docstrings.cmi \ 369 - parsing/camlinternalMenhirLib.cmi 371 + parsing/camlinternalMenhirLib.cmo 370 372 parsing/parsetree.cmi : \ 371 373 parsing/longident.cmi \ 372 374 parsing/location.cmi \ ··· 436 438 typing/types.cmi \ 437 439 typing/path.cmi \ 438 440 parsing/asttypes.cmi 439 - typing/cmi_format.cmo : \ 440 - typing/types.cmi \ 441 - utils/misc.cmi \ 442 - parsing/location.cmi \ 443 - utils/config.cmi \ 444 - typing/cmi_format.cmi 445 - typing/cmi_format.cmx : \ 446 - typing/types.cmx \ 447 - utils/misc.cmx \ 448 - parsing/location.cmx \ 449 - utils/config.cmx \ 450 - typing/cmi_format.cmi 451 - typing/cmi_format.cmi : \ 452 - typing/types.cmi \ 453 - utils/misc.cmi 454 - typing/cmt_format.cmo : \ 455 - typing/types.cmi \ 456 - typing/typedtree.cmi \ 457 - typing/tast_mapper.cmi \ 458 - utils/misc.cmi \ 459 - parsing/location.cmi \ 460 - utils/load_path.cmi \ 461 - parsing/lexer.cmi \ 462 - typing/env.cmi \ 463 - utils/config.cmi \ 464 - typing/cmi_format.cmi \ 465 - utils/clflags.cmi \ 466 - typing/cmt_format.cmi 467 - typing/cmt_format.cmx : \ 468 - typing/types.cmx \ 469 - typing/typedtree.cmx \ 470 - typing/tast_mapper.cmx \ 471 - utils/misc.cmx \ 472 - parsing/location.cmx \ 473 - utils/load_path.cmx \ 474 - parsing/lexer.cmx \ 475 - typing/env.cmx \ 476 - utils/config.cmx \ 477 - typing/cmi_format.cmx \ 478 - utils/clflags.cmx \ 479 - typing/cmt_format.cmi 480 - typing/cmt_format.cmi : \ 481 - typing/types.cmi \ 482 - typing/typedtree.cmi \ 483 - utils/misc.cmi \ 484 - parsing/location.cmi \ 485 - typing/env.cmi \ 486 - typing/cmi_format.cmi 487 441 typing/ctype.cmo : \ 488 442 typing/types.cmi \ 489 443 typing/subst.cmi \ ··· 552 506 utils/load_path.cmi \ 553 507 typing/ident.cmi \ 554 508 typing/datarepr.cmi \ 555 - typing/cmi_format.cmi \ 509 + file_formats/cmi_format.cmi \ 556 510 utils/clflags.cmi \ 557 511 parsing/builtin_attributes.cmi \ 558 512 typing/btype.cmi \ ··· 571 525 utils/load_path.cmx \ 572 526 typing/ident.cmx \ 573 527 typing/datarepr.cmx \ 574 - typing/cmi_format.cmx \ 528 + file_formats/cmi_format.cmx \ 575 529 utils/clflags.cmx \ 576 530 parsing/builtin_attributes.cmx \ 577 531 typing/btype.cmx \ ··· 587 541 parsing/location.cmi \ 588 542 utils/load_path.cmi \ 589 543 typing/ident.cmi \ 590 - typing/cmi_format.cmi \ 544 + file_formats/cmi_format.cmi \ 591 545 parsing/asttypes.cmi 592 546 typing/envaux.cmo : \ 593 547 typing/subst.cmi \ ··· 684 638 typing/ident.cmi \ 685 639 typing/env.cmi \ 686 640 typing/ctype.cmi \ 687 - typing/cmt_format.cmi \ 641 + file_formats/cmt_format.cmi \ 688 642 utils/clflags.cmi \ 689 643 parsing/builtin_attributes.cmi \ 690 644 typing/btype.cmi \ ··· 705 659 typing/ident.cmx \ 706 660 typing/env.cmx \ 707 661 typing/ctype.cmx \ 708 - typing/cmt_format.cmx \ 662 + file_formats/cmt_format.cmx \ 709 663 utils/clflags.cmx \ 710 664 parsing/builtin_attributes.cmx \ 711 665 typing/btype.cmx \ ··· 830 784 utils/load_path.cmi \ 831 785 utils/consistbl.cmi \ 832 786 utils/config.cmi \ 833 - typing/cmi_format.cmi \ 787 + file_formats/cmi_format.cmi \ 834 788 utils/clflags.cmi \ 835 789 typing/persistent_env.cmi 836 790 typing/persistent_env.cmx : \ ··· 840 794 utils/load_path.cmx \ 841 795 utils/consistbl.cmx \ 842 796 utils/config.cmx \ 843 - typing/cmi_format.cmx \ 797 + file_formats/cmi_format.cmx \ 844 798 utils/clflags.cmx \ 845 799 typing/persistent_env.cmi 846 800 typing/persistent_env.cmi : \ ··· 848 802 utils/misc.cmi \ 849 803 parsing/location.cmi \ 850 804 utils/consistbl.cmi \ 851 - typing/cmi_format.cmi 805 + file_formats/cmi_format.cmi 852 806 typing/predef.cmo : \ 853 807 typing/types.cmi \ 854 808 typing/path.cmi \ ··· 988 942 typing/typedtree.cmi \ 989 943 typing/primitive.cmi \ 990 944 typing/path.cmi \ 991 - bytecomp/lambda.cmi \ 945 + lambda/lambda.cmi \ 992 946 typing/ident.cmi \ 993 947 parsing/asttypes.cmi \ 994 948 typing/rec_check.cmi ··· 998 952 typing/typedtree.cmx \ 999 953 typing/primitive.cmx \ 1000 954 typing/path.cmx \ 1001 - bytecomp/lambda.cmx \ 955 + lambda/lambda.cmx \ 1002 956 typing/ident.cmx \ 1003 957 parsing/asttypes.cmi \ 1004 958 typing/rec_check.cmi ··· 1101 1055 typing/ident.cmi \ 1102 1056 typing/env.cmi \ 1103 1057 typing/ctype.cmi \ 1104 - typing/cmt_format.cmi \ 1058 + file_formats/cmt_format.cmi \ 1105 1059 utils/clflags.cmi \ 1106 1060 parsing/builtin_attributes.cmi \ 1107 1061 typing/btype.cmi \ ··· 1130 1084 typing/ident.cmx \ 1131 1085 typing/env.cmx \ 1132 1086 typing/ctype.cmx \ 1133 - typing/cmt_format.cmx \ 1087 + file_formats/cmt_format.cmx \ 1134 1088 utils/clflags.cmx \ 1135 1089 parsing/builtin_attributes.cmx \ 1136 1090 typing/btype.cmx \ ··· 1172 1126 typing/ident.cmi \ 1173 1127 typing/env.cmi \ 1174 1128 typing/ctype.cmi \ 1175 - typing/cmt_format.cmi \ 1129 + file_formats/cmt_format.cmi \ 1176 1130 utils/clflags.cmi \ 1177 1131 parsing/builtin_attributes.cmi \ 1178 1132 typing/btype.cmi \ ··· 1205 1159 typing/ident.cmx \ 1206 1160 typing/env.cmx \ 1207 1161 typing/ctype.cmx \ 1208 - typing/cmt_format.cmx \ 1162 + file_formats/cmt_format.cmx \ 1209 1163 utils/clflags.cmx \ 1210 1164 parsing/builtin_attributes.cmx \ 1211 1165 typing/btype.cmx \ ··· 1446 1400 typing/env.cmi \ 1447 1401 typing/ctype.cmi \ 1448 1402 utils/config.cmi \ 1449 - typing/cmt_format.cmi \ 1450 - typing/cmi_format.cmi \ 1403 + file_formats/cmt_format.cmi \ 1404 + file_formats/cmi_format.cmi \ 1451 1405 utils/clflags.cmi \ 1452 1406 parsing/builtin_attributes.cmi \ 1453 1407 typing/btype.cmi \ ··· 1478 1432 typing/env.cmx \ 1479 1433 typing/ctype.cmx \ 1480 1434 utils/config.cmx \ 1481 - typing/cmt_format.cmx \ 1482 - typing/cmi_format.cmx \ 1435 + file_formats/cmt_format.cmx \ 1436 + file_formats/cmi_format.cmx \ 1483 1437 utils/clflags.cmx \ 1484 1438 parsing/builtin_attributes.cmx \ 1485 1439 typing/btype.cmx \ ··· 1498 1452 typing/includemod.cmi \ 1499 1453 typing/ident.cmi \ 1500 1454 typing/env.cmi \ 1501 - typing/cmi_format.cmi 1455 + file_formats/cmi_format.cmi 1502 1456 typing/typeopt.cmo : \ 1503 1457 typing/types.cmi \ 1504 1458 typing/typedtree.cmi \ 1505 1459 typing/typedecl.cmi \ 1506 1460 typing/predef.cmi \ 1507 1461 typing/path.cmi \ 1508 - bytecomp/lambda.cmi \ 1462 + lambda/lambda.cmi \ 1509 1463 typing/ident.cmi \ 1510 1464 typing/env.cmi \ 1511 1465 typing/ctype.cmi \ ··· 1518 1472 typing/typedecl.cmx \ 1519 1473 typing/predef.cmx \ 1520 1474 typing/path.cmx \ 1521 - bytecomp/lambda.cmx \ 1475 + lambda/lambda.cmx \ 1522 1476 typing/ident.cmx \ 1523 1477 typing/env.cmx \ 1524 1478 typing/ctype.cmx \ ··· 1529 1483 typing/types.cmi \ 1530 1484 typing/typedtree.cmi \ 1531 1485 typing/path.cmi \ 1532 - bytecomp/lambda.cmi \ 1486 + lambda/lambda.cmi \ 1533 1487 typing/env.cmi 1534 1488 typing/types.cmo : \ 1535 1489 typing/primitive.cmi \ ··· 1645 1599 parsing/asttypes.cmi 1646 1600 bytecomp/bytegen.cmo : \ 1647 1601 typing/types.cmi \ 1648 - bytecomp/switch.cmi \ 1602 + lambda/switch.cmi \ 1649 1603 typing/subst.cmi \ 1650 1604 typing/primitive.cmi \ 1651 1605 utils/misc.cmi \ 1652 - bytecomp/matching.cmi \ 1653 - bytecomp/lambda.cmi \ 1606 + lambda/matching.cmi \ 1607 + lambda/lambda.cmi \ 1654 1608 bytecomp/instruct.cmi \ 1655 1609 typing/ident.cmi \ 1656 1610 typing/env.cmi \ ··· 1659 1613 bytecomp/bytegen.cmi 1660 1614 bytecomp/bytegen.cmx : \ 1661 1615 typing/types.cmx \ 1662 - bytecomp/switch.cmx \ 1616 + lambda/switch.cmx \ 1663 1617 typing/subst.cmx \ 1664 1618 typing/primitive.cmx \ 1665 1619 utils/misc.cmx \ 1666 - bytecomp/matching.cmx \ 1667 - bytecomp/lambda.cmx \ 1620 + lambda/matching.cmx \ 1621 + lambda/lambda.cmx \ 1668 1622 bytecomp/instruct.cmx \ 1669 1623 typing/ident.cmx \ 1670 1624 typing/env.cmx \ ··· 1672 1626 parsing/asttypes.cmi \ 1673 1627 bytecomp/bytegen.cmi 1674 1628 bytecomp/bytegen.cmi : \ 1675 - bytecomp/lambda.cmi \ 1629 + lambda/lambda.cmi \ 1676 1630 bytecomp/instruct.cmi 1677 1631 bytecomp/bytelibrarian.cmo : \ 1678 1632 utils/misc.cmi \ ··· 1680 1634 utils/load_path.cmi \ 1681 1635 bytecomp/emitcode.cmi \ 1682 1636 utils/config.cmi \ 1683 - bytecomp/cmo_format.cmi \ 1637 + file_formats/cmo_format.cmi \ 1684 1638 utils/clflags.cmi \ 1685 1639 bytecomp/bytelink.cmi \ 1686 1640 bytecomp/bytelibrarian.cmi ··· 1690 1644 utils/load_path.cmx \ 1691 1645 bytecomp/emitcode.cmx \ 1692 1646 utils/config.cmx \ 1693 - bytecomp/cmo_format.cmi \ 1647 + file_formats/cmo_format.cmi \ 1694 1648 utils/clflags.cmx \ 1695 1649 bytecomp/bytelink.cmx \ 1696 1650 bytecomp/bytelibrarian.cmi ··· 1708 1662 bytecomp/dll.cmi \ 1709 1663 utils/consistbl.cmi \ 1710 1664 utils/config.cmi \ 1711 - bytecomp/cmo_format.cmi \ 1665 + file_formats/cmo_format.cmi \ 1712 1666 utils/clflags.cmi \ 1713 1667 utils/ccomp.cmi \ 1714 1668 bytecomp/bytesections.cmi \ ··· 1726 1680 bytecomp/dll.cmx \ 1727 1681 utils/consistbl.cmx \ 1728 1682 utils/config.cmx \ 1729 - bytecomp/cmo_format.cmi \ 1683 + file_formats/cmo_format.cmi \ 1730 1684 utils/clflags.cmx \ 1731 1685 utils/ccomp.cmx \ 1732 1686 bytecomp/bytesections.cmx \ ··· 1734 1688 bytecomp/bytelink.cmi : \ 1735 1689 bytecomp/symtable.cmi \ 1736 1690 utils/misc.cmi \ 1737 - bytecomp/cmo_format.cmi 1691 + file_formats/cmo_format.cmi 1738 1692 bytecomp/bytepackager.cmo : \ 1739 1693 typing/typemod.cmi \ 1740 - bytecomp/translmod.cmi \ 1694 + lambda/translmod.cmi \ 1741 1695 typing/subst.cmi \ 1742 - bytecomp/printlambda.cmi \ 1696 + lambda/printlambda.cmi \ 1743 1697 typing/path.cmi \ 1744 1698 utils/misc.cmi \ 1745 1699 parsing/location.cmi \ ··· 1749 1703 typing/env.cmi \ 1750 1704 bytecomp/emitcode.cmi \ 1751 1705 utils/config.cmi \ 1752 - bytecomp/cmo_format.cmi \ 1706 + file_formats/cmo_format.cmi \ 1753 1707 utils/clflags.cmi \ 1754 1708 bytecomp/bytelink.cmi \ 1755 1709 bytecomp/bytegen.cmi \ 1756 1710 bytecomp/bytepackager.cmi 1757 1711 bytecomp/bytepackager.cmx : \ 1758 1712 typing/typemod.cmx \ 1759 - bytecomp/translmod.cmx \ 1713 + lambda/translmod.cmx \ 1760 1714 typing/subst.cmx \ 1761 - bytecomp/printlambda.cmx \ 1715 + lambda/printlambda.cmx \ 1762 1716 typing/path.cmx \ 1763 1717 utils/misc.cmx \ 1764 1718 parsing/location.cmx \ ··· 1768 1722 typing/env.cmx \ 1769 1723 bytecomp/emitcode.cmx \ 1770 1724 utils/config.cmx \ 1771 - bytecomp/cmo_format.cmi \ 1725 + file_formats/cmo_format.cmi \ 1772 1726 utils/clflags.cmx \ 1773 1727 bytecomp/bytelink.cmx \ 1774 1728 bytecomp/bytegen.cmx \ ··· 1783 1737 utils/config.cmx \ 1784 1738 bytecomp/bytesections.cmi 1785 1739 bytecomp/bytesections.cmi : 1786 - bytecomp/cmo_format.cmi : \ 1787 - utils/misc.cmi \ 1788 - bytecomp/lambda.cmi \ 1789 - typing/ident.cmi 1790 1740 bytecomp/dll.cmo : \ 1791 1741 utils/misc.cmi \ 1792 1742 utils/config.cmi \ ··· 1797 1747 bytecomp/dll.cmi 1798 1748 bytecomp/dll.cmi : 1799 1749 bytecomp/emitcode.cmo : \ 1800 - bytecomp/translmod.cmi \ 1750 + lambda/translmod.cmi \ 1801 1751 typing/primitive.cmi \ 1802 1752 bytecomp/opcodes.cmi \ 1803 1753 utils/misc.cmi \ 1804 1754 parsing/location.cmi \ 1805 - bytecomp/lambda.cmi \ 1755 + lambda/lambda.cmi \ 1806 1756 bytecomp/instruct.cmi \ 1807 1757 typing/ident.cmi \ 1808 1758 typing/env.cmi \ 1809 1759 utils/config.cmi \ 1810 - bytecomp/cmo_format.cmi \ 1760 + file_formats/cmo_format.cmi \ 1811 1761 utils/clflags.cmi \ 1812 1762 bytecomp/bytegen.cmi \ 1813 1763 typing/btype.cmi \ 1814 1764 parsing/asttypes.cmi \ 1815 1765 bytecomp/emitcode.cmi 1816 1766 bytecomp/emitcode.cmx : \ 1817 - bytecomp/translmod.cmx \ 1767 + lambda/translmod.cmx \ 1818 1768 typing/primitive.cmx \ 1819 1769 bytecomp/opcodes.cmx \ 1820 1770 utils/misc.cmx \ 1821 1771 parsing/location.cmx \ 1822 - bytecomp/lambda.cmx \ 1772 + lambda/lambda.cmx \ 1823 1773 bytecomp/instruct.cmx \ 1824 1774 typing/ident.cmx \ 1825 1775 typing/env.cmx \ 1826 1776 utils/config.cmx \ 1827 - bytecomp/cmo_format.cmi \ 1777 + file_formats/cmo_format.cmi \ 1828 1778 utils/clflags.cmx \ 1829 1779 bytecomp/bytegen.cmx \ 1830 1780 typing/btype.cmx \ ··· 1834 1784 utils/misc.cmi \ 1835 1785 bytecomp/instruct.cmi \ 1836 1786 typing/ident.cmi \ 1837 - bytecomp/cmo_format.cmi 1787 + file_formats/cmo_format.cmi 1838 1788 bytecomp/instruct.cmo : \ 1839 1789 typing/types.cmi \ 1840 1790 typing/subst.cmi \ 1841 1791 parsing/location.cmi \ 1842 - bytecomp/lambda.cmi \ 1792 + lambda/lambda.cmi \ 1843 1793 typing/ident.cmi \ 1844 1794 typing/env.cmi \ 1845 1795 bytecomp/instruct.cmi ··· 1847 1797 typing/types.cmx \ 1848 1798 typing/subst.cmx \ 1849 1799 parsing/location.cmx \ 1850 - bytecomp/lambda.cmx \ 1800 + lambda/lambda.cmx \ 1851 1801 typing/ident.cmx \ 1852 1802 typing/env.cmx \ 1853 1803 bytecomp/instruct.cmi ··· 1855 1805 typing/types.cmi \ 1856 1806 typing/subst.cmi \ 1857 1807 parsing/location.cmi \ 1858 - bytecomp/lambda.cmi \ 1808 + lambda/lambda.cmi \ 1859 1809 typing/ident.cmi \ 1860 1810 typing/env.cmi 1861 - bytecomp/lambda.cmo : \ 1862 - typing/types.cmi \ 1863 - typing/primitive.cmi \ 1864 - typing/path.cmi \ 1865 - utils/misc.cmi \ 1866 - parsing/longident.cmi \ 1867 - parsing/location.cmi \ 1868 - typing/ident.cmi \ 1869 - typing/env.cmi \ 1870 - parsing/asttypes.cmi \ 1871 - bytecomp/lambda.cmi 1872 - bytecomp/lambda.cmx : \ 1873 - typing/types.cmx \ 1874 - typing/primitive.cmx \ 1875 - typing/path.cmx \ 1876 - utils/misc.cmx \ 1877 - parsing/longident.cmx \ 1878 - parsing/location.cmx \ 1879 - typing/ident.cmx \ 1880 - typing/env.cmx \ 1881 - parsing/asttypes.cmi \ 1882 - bytecomp/lambda.cmi 1883 - bytecomp/lambda.cmi : \ 1884 - typing/types.cmi \ 1885 - typing/primitive.cmi \ 1886 - typing/path.cmi \ 1887 - parsing/location.cmi \ 1888 - typing/ident.cmi \ 1889 - typing/env.cmi \ 1890 - parsing/asttypes.cmi 1891 - bytecomp/matching.cmo : \ 1892 - typing/types.cmi \ 1893 - typing/typeopt.cmi \ 1894 - typing/typedtree.cmi \ 1895 - bytecomp/switch.cmi \ 1896 - typing/printpat.cmi \ 1897 - bytecomp/printlambda.cmi \ 1898 - typing/primitive.cmi \ 1899 - typing/predef.cmi \ 1900 - typing/parmatch.cmi \ 1901 - utils/misc.cmi \ 1902 - parsing/longident.cmi \ 1903 - parsing/location.cmi \ 1904 - bytecomp/lambda.cmi \ 1905 - typing/ident.cmi \ 1906 - typing/env.cmi \ 1907 - utils/clflags.cmi \ 1908 - typing/btype.cmi \ 1909 - parsing/asttypes.cmi \ 1910 - bytecomp/matching.cmi 1911 - bytecomp/matching.cmx : \ 1912 - typing/types.cmx \ 1913 - typing/typeopt.cmx \ 1914 - typing/typedtree.cmx \ 1915 - bytecomp/switch.cmx \ 1916 - typing/printpat.cmx \ 1917 - bytecomp/printlambda.cmx \ 1918 - typing/primitive.cmx \ 1919 - typing/predef.cmx \ 1920 - typing/parmatch.cmx \ 1921 - utils/misc.cmx \ 1922 - parsing/longident.cmx \ 1923 - parsing/location.cmx \ 1924 - bytecomp/lambda.cmx \ 1925 - typing/ident.cmx \ 1926 - typing/env.cmx \ 1927 - utils/clflags.cmx \ 1928 - typing/btype.cmx \ 1929 - parsing/asttypes.cmi \ 1930 - bytecomp/matching.cmi 1931 - bytecomp/matching.cmi : \ 1932 - typing/typedtree.cmi \ 1933 - parsing/location.cmi \ 1934 - bytecomp/lambda.cmi \ 1935 - typing/ident.cmi 1936 1811 bytecomp/meta.cmo : \ 1937 1812 bytecomp/instruct.cmi \ 1938 1813 bytecomp/meta.cmi ··· 1947 1822 bytecomp/opcodes.cmi 1948 1823 bytecomp/opcodes.cmi : 1949 1824 bytecomp/printinstr.cmo : \ 1950 - bytecomp/printlambda.cmi \ 1825 + lambda/printlambda.cmi \ 1951 1826 parsing/location.cmi \ 1952 - bytecomp/lambda.cmi \ 1827 + lambda/lambda.cmi \ 1953 1828 bytecomp/instruct.cmi \ 1954 1829 typing/ident.cmi \ 1955 1830 bytecomp/printinstr.cmi 1956 1831 bytecomp/printinstr.cmx : \ 1957 - bytecomp/printlambda.cmx \ 1832 + lambda/printlambda.cmx \ 1958 1833 parsing/location.cmx \ 1959 - bytecomp/lambda.cmx \ 1834 + lambda/lambda.cmx \ 1960 1835 bytecomp/instruct.cmx \ 1961 1836 typing/ident.cmx \ 1962 1837 bytecomp/printinstr.cmi 1963 1838 bytecomp/printinstr.cmi : \ 1964 1839 bytecomp/instruct.cmi 1965 - bytecomp/printlambda.cmo : \ 1966 - typing/types.cmi \ 1967 - typing/printtyp.cmi \ 1968 - typing/primitive.cmi \ 1969 - parsing/location.cmi \ 1970 - bytecomp/lambda.cmi \ 1971 - typing/ident.cmi \ 1972 - parsing/asttypes.cmi \ 1973 - bytecomp/printlambda.cmi 1974 - bytecomp/printlambda.cmx : \ 1975 - typing/types.cmx \ 1976 - typing/printtyp.cmx \ 1977 - typing/primitive.cmx \ 1978 - parsing/location.cmx \ 1979 - bytecomp/lambda.cmx \ 1980 - typing/ident.cmx \ 1981 - parsing/asttypes.cmi \ 1982 - bytecomp/printlambda.cmi 1983 - bytecomp/printlambda.cmi : \ 1984 - typing/types.cmi \ 1985 - bytecomp/lambda.cmi 1986 - bytecomp/runtimedef.cmo : \ 1987 - bytecomp/runtimedef.cmi 1988 - bytecomp/runtimedef.cmx : \ 1989 - bytecomp/runtimedef.cmi 1990 - bytecomp/runtimedef.cmi : 1991 - bytecomp/simplif.cmo : \ 1992 - utils/warnings.cmi \ 1993 - typing/stypes.cmi \ 1994 - typing/primitive.cmi \ 1995 - utils/misc.cmi \ 1996 - parsing/location.cmi \ 1997 - bytecomp/lambda.cmi \ 1998 - typing/ident.cmi \ 1999 - utils/clflags.cmi \ 2000 - parsing/asttypes.cmi \ 2001 - typing/annot.cmi \ 2002 - bytecomp/simplif.cmi 2003 - bytecomp/simplif.cmx : \ 2004 - utils/warnings.cmx \ 2005 - typing/stypes.cmx \ 2006 - typing/primitive.cmx \ 2007 - utils/misc.cmx \ 2008 - parsing/location.cmx \ 2009 - bytecomp/lambda.cmx \ 2010 - typing/ident.cmx \ 2011 - utils/clflags.cmx \ 2012 - parsing/asttypes.cmi \ 2013 - typing/annot.cmi \ 2014 - bytecomp/simplif.cmi 2015 - bytecomp/simplif.cmi : \ 2016 - parsing/location.cmi \ 2017 - bytecomp/lambda.cmi \ 2018 - typing/ident.cmi 2019 - bytecomp/switch.cmo : \ 2020 - parsing/location.cmi \ 2021 - bytecomp/switch.cmi 2022 - bytecomp/switch.cmx : \ 2023 - parsing/location.cmx \ 2024 - bytecomp/switch.cmi 2025 - bytecomp/switch.cmi : \ 2026 - parsing/location.cmi 1840 + bytecomp/runtimedef.cmo : 1841 + bytecomp/runtimedef.cmx : 2027 1842 bytecomp/symtable.cmo : \ 2028 - bytecomp/runtimedef.cmi \ 1843 + lambda/runtimedef.cmi \ 2029 1844 typing/predef.cmi \ 2030 1845 utils/misc.cmi \ 2031 1846 bytecomp/meta.cmi \ 2032 1847 parsing/location.cmi \ 2033 - bytecomp/lambda.cmi \ 1848 + lambda/lambda.cmi \ 2034 1849 typing/ident.cmi \ 2035 1850 bytecomp/dll.cmi \ 2036 1851 utils/config.cmi \ 2037 - bytecomp/cmo_format.cmi \ 1852 + file_formats/cmo_format.cmi \ 2038 1853 utils/clflags.cmi \ 2039 1854 bytecomp/bytesections.cmi \ 2040 1855 parsing/asttypes.cmi \ 2041 1856 bytecomp/symtable.cmi 2042 1857 bytecomp/symtable.cmx : \ 2043 - bytecomp/runtimedef.cmx \ 1858 + lambda/runtimedef.cmx \ 2044 1859 typing/predef.cmx \ 2045 1860 utils/misc.cmx \ 2046 1861 bytecomp/meta.cmx \ 2047 1862 parsing/location.cmx \ 2048 - bytecomp/lambda.cmx \ 1863 + lambda/lambda.cmx \ 2049 1864 typing/ident.cmx \ 2050 1865 bytecomp/dll.cmx \ 2051 1866 utils/config.cmx \ 2052 - bytecomp/cmo_format.cmi \ 1867 + file_formats/cmo_format.cmi \ 2053 1868 utils/clflags.cmx \ 2054 1869 bytecomp/bytesections.cmx \ 2055 1870 parsing/asttypes.cmi \ 2056 1871 bytecomp/symtable.cmi 2057 1872 bytecomp/symtable.cmi : \ 2058 1873 utils/misc.cmi \ 2059 - bytecomp/lambda.cmi \ 1874 + lambda/lambda.cmi \ 2060 1875 typing/ident.cmi \ 2061 - bytecomp/cmo_format.cmi 2062 - bytecomp/translattribute.cmo : \ 2063 - utils/warnings.cmi \ 2064 - typing/typedtree.cmi \ 2065 - parsing/parsetree.cmi \ 2066 - utils/misc.cmi \ 2067 - parsing/longident.cmi \ 2068 - parsing/location.cmi \ 2069 - bytecomp/lambda.cmi \ 2070 - utils/config.cmi \ 2071 - bytecomp/translattribute.cmi 2072 - bytecomp/translattribute.cmx : \ 2073 - utils/warnings.cmx \ 2074 - typing/typedtree.cmx \ 2075 - parsing/parsetree.cmi \ 2076 - utils/misc.cmx \ 2077 - parsing/longident.cmx \ 2078 - parsing/location.cmx \ 2079 - bytecomp/lambda.cmx \ 2080 - utils/config.cmx \ 2081 - bytecomp/translattribute.cmi 2082 - bytecomp/translattribute.cmi : \ 2083 - typing/typedtree.cmi \ 2084 - parsing/parsetree.cmi \ 2085 - parsing/location.cmi \ 2086 - bytecomp/lambda.cmi 2087 - bytecomp/translclass.cmo : \ 2088 - typing/types.cmi \ 2089 - typing/typeopt.cmi \ 2090 - typing/typedtree.cmi \ 2091 - bytecomp/translobj.cmi \ 2092 - bytecomp/translcore.cmi \ 2093 - typing/path.cmi \ 2094 - bytecomp/matching.cmi \ 2095 - parsing/location.cmi \ 2096 - bytecomp/lambda.cmi \ 2097 - typing/ident.cmi \ 2098 - typing/env.cmi \ 2099 - utils/clflags.cmi \ 2100 - typing/btype.cmi \ 2101 - parsing/asttypes.cmi \ 2102 - bytecomp/translclass.cmi 2103 - bytecomp/translclass.cmx : \ 2104 - typing/types.cmx \ 2105 - typing/typeopt.cmx \ 2106 - typing/typedtree.cmx \ 2107 - bytecomp/translobj.cmx \ 2108 - bytecomp/translcore.cmx \ 2109 - typing/path.cmx \ 2110 - bytecomp/matching.cmx \ 2111 - parsing/location.cmx \ 2112 - bytecomp/lambda.cmx \ 2113 - typing/ident.cmx \ 2114 - typing/env.cmx \ 2115 - utils/clflags.cmx \ 2116 - typing/btype.cmx \ 2117 - parsing/asttypes.cmi \ 2118 - bytecomp/translclass.cmi 2119 - bytecomp/translclass.cmi : \ 2120 - typing/typedtree.cmi \ 2121 - parsing/location.cmi \ 2122 - bytecomp/lambda.cmi \ 2123 - typing/ident.cmi \ 2124 - parsing/asttypes.cmi 2125 - bytecomp/translcore.cmo : \ 2126 - typing/types.cmi \ 2127 - typing/typeopt.cmi \ 2128 - typing/typedtree.cmi \ 2129 - typing/typecore.cmi \ 2130 - bytecomp/translprim.cmi \ 2131 - bytecomp/translobj.cmi \ 2132 - bytecomp/translattribute.cmi \ 2133 - typing/printtyp.cmi \ 2134 - typing/primitive.cmi \ 2135 - typing/predef.cmi \ 2136 - typing/path.cmi \ 2137 - parsing/parsetree.cmi \ 2138 - typing/parmatch.cmi \ 2139 - utils/misc.cmi \ 2140 - bytecomp/matching.cmi \ 2141 - parsing/longident.cmi \ 2142 - parsing/location.cmi \ 2143 - bytecomp/lambda.cmi \ 2144 - typing/ident.cmi \ 2145 - typing/env.cmi \ 2146 - utils/config.cmi \ 2147 - utils/clflags.cmi \ 2148 - typing/btype.cmi \ 2149 - parsing/asttypes.cmi \ 2150 - bytecomp/translcore.cmi 2151 - bytecomp/translcore.cmx : \ 2152 - typing/types.cmx \ 2153 - typing/typeopt.cmx \ 2154 - typing/typedtree.cmx \ 2155 - typing/typecore.cmx \ 2156 - bytecomp/translprim.cmx \ 2157 - bytecomp/translobj.cmx \ 2158 - bytecomp/translattribute.cmx \ 2159 - typing/printtyp.cmx \ 2160 - typing/primitive.cmx \ 2161 - typing/predef.cmx \ 2162 - typing/path.cmx \ 2163 - parsing/parsetree.cmi \ 2164 - typing/parmatch.cmx \ 2165 - utils/misc.cmx \ 2166 - bytecomp/matching.cmx \ 2167 - parsing/longident.cmx \ 2168 - parsing/location.cmx \ 2169 - bytecomp/lambda.cmx \ 2170 - typing/ident.cmx \ 2171 - typing/env.cmx \ 2172 - utils/config.cmx \ 2173 - utils/clflags.cmx \ 2174 - typing/btype.cmx \ 2175 - parsing/asttypes.cmi \ 2176 - bytecomp/translcore.cmi 2177 - bytecomp/translcore.cmi : \ 2178 - typing/typedtree.cmi \ 2179 - typing/path.cmi \ 2180 - parsing/location.cmi \ 2181 - bytecomp/lambda.cmi \ 2182 - typing/ident.cmi \ 2183 - typing/env.cmi \ 2184 - parsing/asttypes.cmi 2185 - bytecomp/translmod.cmo : \ 2186 - typing/types.cmi \ 2187 - typing/typedtree.cmi \ 2188 - bytecomp/translprim.cmi \ 2189 - bytecomp/translobj.cmi \ 2190 - bytecomp/translcore.cmi \ 2191 - bytecomp/translclass.cmi \ 2192 - bytecomp/translattribute.cmi \ 2193 - typing/primitive.cmi \ 2194 - typing/predef.cmi \ 2195 - typing/path.cmi \ 2196 - typing/mtype.cmi \ 2197 - utils/misc.cmi \ 2198 - parsing/location.cmi \ 2199 - bytecomp/lambda.cmi \ 2200 - typing/ident.cmi \ 2201 - typing/env.cmi \ 2202 - typing/ctype.cmi \ 2203 - utils/clflags.cmi \ 2204 - parsing/asttypes.cmi \ 2205 - bytecomp/translmod.cmi 2206 - bytecomp/translmod.cmx : \ 2207 - typing/types.cmx \ 2208 - typing/typedtree.cmx \ 2209 - bytecomp/translprim.cmx \ 2210 - bytecomp/translobj.cmx \ 2211 - bytecomp/translcore.cmx \ 2212 - bytecomp/translclass.cmx \ 2213 - bytecomp/translattribute.cmx \ 2214 - typing/primitive.cmx \ 2215 - typing/predef.cmx \ 2216 - typing/path.cmx \ 2217 - typing/mtype.cmx \ 2218 - utils/misc.cmx \ 2219 - parsing/location.cmx \ 2220 - bytecomp/lambda.cmx \ 2221 - typing/ident.cmx \ 2222 - typing/env.cmx \ 2223 - typing/ctype.cmx \ 2224 - utils/clflags.cmx \ 2225 - parsing/asttypes.cmi \ 2226 - bytecomp/translmod.cmi 2227 - bytecomp/translmod.cmi : \ 2228 - typing/typedtree.cmi \ 2229 - typing/primitive.cmi \ 2230 - parsing/location.cmi \ 2231 - bytecomp/lambda.cmi \ 2232 - typing/ident.cmi 2233 - bytecomp/translobj.cmo : \ 2234 - typing/primitive.cmi \ 2235 - utils/misc.cmi \ 2236 - parsing/location.cmi \ 2237 - bytecomp/lambda.cmi \ 2238 - typing/ident.cmi \ 2239 - typing/env.cmi \ 2240 - utils/config.cmi \ 2241 - utils/clflags.cmi \ 2242 - typing/btype.cmi \ 2243 - parsing/asttypes.cmi \ 2244 - bytecomp/translobj.cmi 2245 - bytecomp/translobj.cmx : \ 2246 - typing/primitive.cmx \ 2247 - utils/misc.cmx \ 2248 - parsing/location.cmx \ 2249 - bytecomp/lambda.cmx \ 2250 - typing/ident.cmx \ 2251 - typing/env.cmx \ 2252 - utils/config.cmx \ 2253 - utils/clflags.cmx \ 2254 - typing/btype.cmx \ 2255 - parsing/asttypes.cmi \ 2256 - bytecomp/translobj.cmi 2257 - bytecomp/translobj.cmi : \ 2258 - bytecomp/lambda.cmi \ 2259 - typing/ident.cmi \ 2260 - typing/env.cmi 2261 - bytecomp/translprim.cmo : \ 2262 - typing/types.cmi \ 2263 - typing/typeopt.cmi \ 2264 - typing/typedtree.cmi \ 2265 - typing/primitive.cmi \ 2266 - typing/predef.cmi \ 2267 - typing/path.cmi \ 2268 - utils/misc.cmi \ 2269 - bytecomp/matching.cmi \ 2270 - parsing/location.cmi \ 2271 - bytecomp/lambda.cmi \ 2272 - typing/ident.cmi \ 2273 - typing/env.cmi \ 2274 - utils/config.cmi \ 2275 - utils/clflags.cmi \ 2276 - parsing/asttypes.cmi \ 2277 - bytecomp/translprim.cmi 2278 - bytecomp/translprim.cmx : \ 2279 - typing/types.cmx \ 2280 - typing/typeopt.cmx \ 2281 - typing/typedtree.cmx \ 2282 - typing/primitive.cmx \ 2283 - typing/predef.cmx \ 2284 - typing/path.cmx \ 2285 - utils/misc.cmx \ 2286 - bytecomp/matching.cmx \ 2287 - parsing/location.cmx \ 2288 - bytecomp/lambda.cmx \ 2289 - typing/ident.cmx \ 2290 - typing/env.cmx \ 2291 - utils/config.cmx \ 2292 - utils/clflags.cmx \ 2293 - parsing/asttypes.cmi \ 2294 - bytecomp/translprim.cmi 2295 - bytecomp/translprim.cmi : \ 2296 - typing/types.cmi \ 2297 - typing/typedtree.cmi \ 2298 - typing/primitive.cmi \ 2299 - typing/path.cmi \ 2300 - parsing/location.cmi \ 2301 - bytecomp/lambda.cmi \ 2302 - typing/ident.cmi \ 2303 - typing/env.cmi 1876 + file_formats/cmo_format.cmi 2304 1877 asmcomp/CSE.cmo : \ 2305 1878 asmcomp/mach.cmi \ 2306 1879 asmcomp/CSEgen.cmi \ ··· 2324 1897 asmcomp/CSEgen.cmi : \ 2325 1898 asmcomp/mach.cmi 2326 1899 asmcomp/afl_instrument.cmo : \ 2327 - bytecomp/lambda.cmi \ 1900 + lambda/lambda.cmi \ 2328 1901 asmcomp/cmm.cmi \ 2329 1902 utils/clflags.cmi \ 2330 - asmcomp/backend_var.cmi \ 1903 + middle_end/backend_var.cmi \ 2331 1904 parsing/asttypes.cmi \ 2332 1905 asmcomp/afl_instrument.cmi 2333 1906 asmcomp/afl_instrument.cmx : \ 2334 - bytecomp/lambda.cmx \ 1907 + lambda/lambda.cmx \ 2335 1908 asmcomp/cmm.cmx \ 2336 1909 utils/clflags.cmx \ 2337 - asmcomp/backend_var.cmx \ 1910 + middle_end/backend_var.cmx \ 2338 1911 parsing/asttypes.cmi \ 2339 1912 asmcomp/afl_instrument.cmi 2340 1913 asmcomp/afl_instrument.cmi : \ 2341 - middle_end/debuginfo.cmi \ 1914 + lambda/debuginfo.cmi \ 2342 1915 asmcomp/cmm.cmi 2343 1916 asmcomp/arch.cmo : \ 2344 1917 utils/config.cmi \ ··· 2347 1920 utils/config.cmx \ 2348 1921 utils/clflags.cmx 2349 1922 asmcomp/asmgen.cmo : \ 2350 - asmcomp/un_anf.cmi \ 2351 - bytecomp/translmod.cmi \ 2352 - middle_end/base_types/symbol.cmi \ 1923 + middle_end/flambda/un_anf.cmi \ 1924 + lambda/translmod.cmi \ 1925 + middle_end/symbol.cmi \ 2353 1926 asmcomp/split.cmi \ 2354 1927 asmcomp/spill.cmi \ 2355 1928 asmcomp/selection.cmi \ ··· 2361 1934 asmcomp/printmach.cmi \ 2362 1935 asmcomp/printlinear.cmi \ 2363 1936 asmcomp/printcmm.cmi \ 2364 - asmcomp/printclambda.cmi \ 1937 + middle_end/printclambda.cmi \ 2365 1938 typing/primitive.cmi \ 2366 1939 asmcomp/polling.cmi \ 2367 1940 typing/path.cmi \ ··· 2370 1943 parsing/location.cmi \ 2371 1944 asmcomp/liveness.cmi \ 2372 1945 asmcomp/linscan.cmi \ 2373 - middle_end/base_types/linkage_name.cmi \ 1946 + middle_end/linkage_name.cmi \ 2374 1947 asmcomp/linearize.cmi \ 2375 - bytecomp/lambda.cmi \ 1948 + lambda/lambda.cmi \ 2376 1949 asmcomp/interval.cmi \ 2377 1950 asmcomp/interf.cmi \ 2378 1951 typing/ident.cmi \ 2379 - asmcomp/flambda_to_clambda.cmi \ 2380 - middle_end/flambda.cmi \ 1952 + middle_end/flambda/flambda_to_clambda.cmi \ 1953 + middle_end/flambda/flambda.cmi \ 2381 1954 asmcomp/emitaux.cmi \ 2382 1955 asmcomp/emit.cmi \ 2383 1956 asmcomp/deadcode.cmi \ 2384 1957 utils/config.cmi \ 2385 - asmcomp/compilenv.cmi \ 1958 + middle_end/compilenv.cmi \ 2386 1959 asmcomp/comballoc.cmi \ 2387 1960 asmcomp/coloring.cmi \ 2388 1961 asmcomp/cmmgen.cmi \ 2389 1962 asmcomp/cmm.cmi \ 2390 - asmcomp/closure.cmi \ 1963 + middle_end/closure/closure.cmi \ 2391 1964 utils/clflags.cmi \ 2392 - asmcomp/clambda.cmi \ 1965 + middle_end/clambda.cmi \ 2393 1966 asmcomp/CSE.cmo \ 2394 - asmcomp/build_export_info.cmi \ 1967 + middle_end/flambda/build_export_info.cmi \ 2395 1968 asmcomp/debug/available_regs.cmi \ 2396 1969 asmcomp/asmgen.cmi 2397 1970 asmcomp/asmgen.cmx : \ 2398 - asmcomp/un_anf.cmx \ 2399 - bytecomp/translmod.cmx \ 2400 - middle_end/base_types/symbol.cmx \ 1971 + middle_end/flambda/un_anf.cmx \ 1972 + lambda/translmod.cmx \ 1973 + middle_end/symbol.cmx \ 2401 1974 asmcomp/split.cmx \ 2402 1975 asmcomp/spill.cmx \ 2403 1976 asmcomp/selection.cmx \ ··· 2409 1982 asmcomp/printmach.cmx \ 2410 1983 asmcomp/printlinear.cmx \ 2411 1984 asmcomp/printcmm.cmx \ 2412 - asmcomp/printclambda.cmx \ 1985 + middle_end/printclambda.cmx \ 2413 1986 typing/primitive.cmx \ 2414 1987 asmcomp/polling.cmx \ 2415 1988 typing/path.cmx \ ··· 2418 1991 parsing/location.cmx \ 2419 1992 asmcomp/liveness.cmx \ 2420 1993 asmcomp/linscan.cmx \ 2421 - middle_end/base_types/linkage_name.cmx \ 1994 + middle_end/linkage_name.cmx \ 2422 1995 asmcomp/linearize.cmx \ 2423 - bytecomp/lambda.cmx \ 1996 + lambda/lambda.cmx \ 2424 1997 asmcomp/interval.cmx \ 2425 1998 asmcomp/interf.cmx \ 2426 1999 typing/ident.cmx \ 2427 - asmcomp/flambda_to_clambda.cmx \ 2428 - middle_end/flambda.cmx \ 2000 + middle_end/flambda/flambda_to_clambda.cmx \ 2001 + middle_end/flambda/flambda.cmx \ 2429 2002 asmcomp/emitaux.cmx \ 2430 2003 asmcomp/emit.cmx \ 2431 2004 asmcomp/deadcode.cmx \ 2432 2005 utils/config.cmx \ 2433 - asmcomp/compilenv.cmx \ 2006 + middle_end/compilenv.cmx \ 2434 2007 asmcomp/comballoc.cmx \ 2435 2008 asmcomp/coloring.cmx \ 2436 2009 asmcomp/cmmgen.cmx \ 2437 2010 asmcomp/cmm.cmx \ 2438 - asmcomp/closure.cmx \ 2011 + middle_end/closure/closure.cmx \ 2439 2012 utils/clflags.cmx \ 2440 - asmcomp/clambda.cmx \ 2013 + middle_end/clambda.cmx \ 2441 2014 asmcomp/CSE.cmx \ 2442 - asmcomp/build_export_info.cmx \ 2015 + middle_end/flambda/build_export_info.cmx \ 2443 2016 asmcomp/debug/available_regs.cmx \ 2444 2017 asmcomp/asmgen.cmi 2445 2018 asmcomp/asmgen.cmi : \ 2446 - bytecomp/lambda.cmi \ 2019 + lambda/lambda.cmi \ 2447 2020 typing/ident.cmi \ 2448 - middle_end/flambda.cmi \ 2021 + middle_end/flambda/flambda.cmi \ 2449 2022 asmcomp/cmm.cmi \ 2450 2023 middle_end/backend_intf.cmi 2451 2024 asmcomp/asmlibrarian.cmo : \ 2452 2025 utils/misc.cmi \ 2453 2026 parsing/location.cmi \ 2454 2027 utils/load_path.cmi \ 2455 - asmcomp/export_info.cmi \ 2028 + middle_end/flambda/export_info.cmi \ 2456 2029 utils/config.cmi \ 2457 - asmcomp/compilenv.cmi \ 2458 - asmcomp/cmx_format.cmi \ 2030 + middle_end/compilenv.cmi \ 2031 + file_formats/cmx_format.cmi \ 2459 2032 utils/clflags.cmi \ 2460 - asmcomp/clambda.cmi \ 2033 + middle_end/clambda.cmi \ 2461 2034 utils/ccomp.cmi \ 2462 2035 asmcomp/asmlink.cmi \ 2463 2036 asmcomp/asmlibrarian.cmi ··· 2465 2038 utils/misc.cmx \ 2466 2039 parsing/location.cmx \ 2467 2040 utils/load_path.cmx \ 2468 - asmcomp/export_info.cmx \ 2041 + middle_end/flambda/export_info.cmx \ 2469 2042 utils/config.cmx \ 2470 - asmcomp/compilenv.cmx \ 2471 - asmcomp/cmx_format.cmi \ 2043 + middle_end/compilenv.cmx \ 2044 + file_formats/cmx_format.cmi \ 2472 2045 utils/clflags.cmx \ 2473 - asmcomp/clambda.cmx \ 2046 + middle_end/clambda.cmx \ 2474 2047 utils/ccomp.cmx \ 2475 2048 asmcomp/asmlink.cmx \ 2476 2049 asmcomp/asmlibrarian.cmi 2477 2050 asmcomp/asmlibrarian.cmi : 2478 2051 asmcomp/asmlink.cmo : \ 2479 - bytecomp/runtimedef.cmi \ 2052 + lambda/runtimedef.cmi \ 2480 2053 utils/profile.cmi \ 2481 2054 utils/misc.cmi \ 2482 2055 parsing/location.cmi \ ··· 2485 2058 asmcomp/emit.cmi \ 2486 2059 utils/consistbl.cmi \ 2487 2060 utils/config.cmi \ 2488 - asmcomp/compilenv.cmi \ 2489 - asmcomp/cmx_format.cmi \ 2061 + middle_end/compilenv.cmi \ 2062 + file_formats/cmx_format.cmi \ 2490 2063 asmcomp/cmmgen.cmi \ 2491 2064 asmcomp/cmm.cmi \ 2492 2065 utils/clflags.cmi \ ··· 2494 2067 asmcomp/asmgen.cmi \ 2495 2068 asmcomp/asmlink.cmi 2496 2069 asmcomp/asmlink.cmx : \ 2497 - bytecomp/runtimedef.cmx \ 2070 + lambda/runtimedef.cmx \ 2498 2071 utils/profile.cmx \ 2499 2072 utils/misc.cmx \ 2500 2073 parsing/location.cmx \ ··· 2503 2076 asmcomp/emit.cmx \ 2504 2077 utils/consistbl.cmx \ 2505 2078 utils/config.cmx \ 2506 - asmcomp/compilenv.cmx \ 2507 - asmcomp/cmx_format.cmi \ 2079 + middle_end/compilenv.cmx \ 2080 + file_formats/cmx_format.cmi \ 2508 2081 asmcomp/cmmgen.cmx \ 2509 2082 asmcomp/cmm.cmx \ 2510 2083 utils/clflags.cmx \ ··· 2513 2086 asmcomp/asmlink.cmi 2514 2087 asmcomp/asmlink.cmi : \ 2515 2088 utils/misc.cmi \ 2516 - asmcomp/cmx_format.cmi 2089 + file_formats/cmx_format.cmi 2517 2090 asmcomp/asmpackager.cmo : \ 2518 2091 typing/typemod.cmi \ 2519 - bytecomp/translmod.cmi \ 2092 + lambda/translmod.cmi \ 2520 2093 utils/profile.cmi \ 2521 2094 utils/misc.cmi \ 2522 - middle_end/middle_end.cmi \ 2523 2095 parsing/location.cmi \ 2524 2096 utils/load_path.cmi \ 2525 - bytecomp/lambda.cmi \ 2097 + lambda/lambda.cmi \ 2526 2098 typing/ident.cmi \ 2527 - asmcomp/export_info_for_pack.cmi \ 2528 - asmcomp/export_info.cmi \ 2099 + middle_end/flambda/flambda_middle_end.cmi \ 2100 + middle_end/flambda/export_info_for_pack.cmi \ 2101 + middle_end/flambda/export_info.cmi \ 2529 2102 typing/env.cmi \ 2530 2103 utils/config.cmi \ 2531 - asmcomp/compilenv.cmi \ 2532 - middle_end/base_types/compilation_unit.cmi \ 2533 - asmcomp/cmx_format.cmi \ 2104 + middle_end/compilenv.cmi \ 2105 + middle_end/compilation_unit.cmi \ 2106 + file_formats/cmx_format.cmi \ 2534 2107 utils/clflags.cmi \ 2535 2108 utils/ccomp.cmi \ 2536 2109 asmcomp/asmlink.cmi \ ··· 2538 2111 asmcomp/asmpackager.cmi 2539 2112 asmcomp/asmpackager.cmx : \ 2540 2113 typing/typemod.cmx \ 2541 - bytecomp/translmod.cmx \ 2114 + lambda/translmod.cmx \ 2542 2115 utils/profile.cmx \ 2543 2116 utils/misc.cmx \ 2544 - middle_end/middle_end.cmx \ 2545 2117 parsing/location.cmx \ 2546 2118 utils/load_path.cmx \ 2547 - bytecomp/lambda.cmx \ 2119 + lambda/lambda.cmx \ 2548 2120 typing/ident.cmx \ 2549 - asmcomp/export_info_for_pack.cmx \ 2550 - asmcomp/export_info.cmx \ 2121 + middle_end/flambda/flambda_middle_end.cmx \ 2122 + middle_end/flambda/export_info_for_pack.cmx \ 2123 + middle_end/flambda/export_info.cmx \ 2551 2124 typing/env.cmx \ 2552 2125 utils/config.cmx \ 2553 - asmcomp/compilenv.cmx \ 2554 - middle_end/base_types/compilation_unit.cmx \ 2555 - asmcomp/cmx_format.cmi \ 2126 + middle_end/compilenv.cmx \ 2127 + middle_end/compilation_unit.cmx \ 2128 + file_formats/cmx_format.cmi \ 2556 2129 utils/clflags.cmx \ 2557 2130 utils/ccomp.cmx \ 2558 2131 asmcomp/asmlink.cmx \ ··· 2561 2134 asmcomp/asmpackager.cmi : \ 2562 2135 typing/env.cmi \ 2563 2136 middle_end/backend_intf.cmi 2564 - asmcomp/backend_var.cmo : \ 2565 - typing/path.cmi \ 2566 - typing/ident.cmi \ 2567 - middle_end/debuginfo.cmi \ 2568 - asmcomp/backend_var.cmi 2569 - asmcomp/backend_var.cmx : \ 2570 - typing/path.cmx \ 2571 - typing/ident.cmx \ 2572 - middle_end/debuginfo.cmx \ 2573 - asmcomp/backend_var.cmi 2574 - asmcomp/backend_var.cmi : \ 2575 - typing/path.cmi \ 2576 - typing/ident.cmi \ 2577 - middle_end/debuginfo.cmi 2578 2137 asmcomp/branch_relaxation.cmo : \ 2579 2138 utils/misc.cmi \ 2580 2139 asmcomp/mach.cmi \ ··· 2600 2159 asmcomp/linearize.cmx \ 2601 2160 asmcomp/cmm.cmx \ 2602 2161 asmcomp/arch.cmx 2603 - asmcomp/build_export_info.cmo : \ 2604 - middle_end/base_types/variable.cmi \ 2605 - middle_end/base_types/var_within_closure.cmi \ 2606 - asmcomp/traverse_for_exported_symbols.cmi \ 2607 - middle_end/base_types/tag.cmi \ 2608 - middle_end/base_types/symbol.cmi \ 2609 - middle_end/simple_value_approx.cmi \ 2610 - middle_end/base_types/set_of_closures_id.cmi \ 2611 - utils/misc.cmi \ 2612 - middle_end/invariant_params.cmi \ 2613 - middle_end/inline_and_simplify_aux.cmi \ 2614 - middle_end/flambda_utils.cmi \ 2615 - middle_end/flambda.cmi \ 2616 - middle_end/find_recursive_functions.cmi \ 2617 - asmcomp/export_info.cmi \ 2618 - middle_end/base_types/export_id.cmi \ 2619 - asmcomp/compilenv.cmi \ 2620 - middle_end/base_types/compilation_unit.cmi \ 2621 - middle_end/base_types/closure_id.cmi \ 2622 - utils/clflags.cmi \ 2623 - middle_end/backend_intf.cmi \ 2624 - middle_end/allocated_const.cmi \ 2625 - asmcomp/build_export_info.cmi 2626 - asmcomp/build_export_info.cmx : \ 2627 - middle_end/base_types/variable.cmx \ 2628 - middle_end/base_types/var_within_closure.cmx \ 2629 - asmcomp/traverse_for_exported_symbols.cmx \ 2630 - middle_end/base_types/tag.cmx \ 2631 - middle_end/base_types/symbol.cmx \ 2632 - middle_end/simple_value_approx.cmx \ 2633 - middle_end/base_types/set_of_closures_id.cmx \ 2634 - utils/misc.cmx \ 2635 - middle_end/invariant_params.cmx \ 2636 - middle_end/inline_and_simplify_aux.cmx \ 2637 - middle_end/flambda_utils.cmx \ 2638 - middle_end/flambda.cmx \ 2639 - middle_end/find_recursive_functions.cmx \ 2640 - asmcomp/export_info.cmx \ 2641 - middle_end/base_types/export_id.cmx \ 2642 - asmcomp/compilenv.cmx \ 2643 - middle_end/base_types/compilation_unit.cmx \ 2644 - middle_end/base_types/closure_id.cmx \ 2645 - utils/clflags.cmx \ 2646 - middle_end/backend_intf.cmi \ 2647 - middle_end/allocated_const.cmx \ 2648 - asmcomp/build_export_info.cmi 2649 - asmcomp/build_export_info.cmi : \ 2650 - middle_end/flambda.cmi \ 2651 - asmcomp/export_info.cmi \ 2652 - middle_end/backend_intf.cmi 2653 - asmcomp/clambda.cmo : \ 2654 - typing/path.cmi \ 2655 - bytecomp/lambda.cmi \ 2656 - typing/ident.cmi \ 2657 - middle_end/debuginfo.cmi \ 2658 - asmcomp/clambda_primitives.cmi \ 2659 - asmcomp/backend_var.cmi \ 2660 - parsing/asttypes.cmi \ 2661 - asmcomp/clambda.cmi 2662 - asmcomp/clambda.cmx : \ 2663 - typing/path.cmx \ 2664 - bytecomp/lambda.cmx \ 2665 - typing/ident.cmx \ 2666 - middle_end/debuginfo.cmx \ 2667 - asmcomp/clambda_primitives.cmx \ 2668 - asmcomp/backend_var.cmx \ 2669 - parsing/asttypes.cmi \ 2670 - asmcomp/clambda.cmi 2671 - asmcomp/clambda.cmi : \ 2672 - typing/path.cmi \ 2673 - bytecomp/lambda.cmi \ 2674 - typing/ident.cmi \ 2675 - middle_end/debuginfo.cmi \ 2676 - asmcomp/clambda_primitives.cmi \ 2677 - asmcomp/backend_var.cmi \ 2678 - parsing/asttypes.cmi 2679 - asmcomp/clambda_primitives.cmo : \ 2680 - typing/types.cmi \ 2681 - typing/primitive.cmi \ 2682 - bytecomp/lambda.cmi \ 2683 - parsing/asttypes.cmi \ 2684 - asmcomp/clambda_primitives.cmi 2685 - asmcomp/clambda_primitives.cmx : \ 2686 - typing/types.cmx \ 2687 - typing/primitive.cmx \ 2688 - bytecomp/lambda.cmx \ 2689 - parsing/asttypes.cmi \ 2690 - asmcomp/clambda_primitives.cmi 2691 - asmcomp/clambda_primitives.cmi : \ 2692 - typing/types.cmi \ 2693 - typing/primitive.cmi \ 2694 - bytecomp/lambda.cmi \ 2695 - parsing/asttypes.cmi 2696 - asmcomp/closure.cmo : \ 2697 - utils/warnings.cmi \ 2698 - bytecomp/switch.cmi \ 2699 - bytecomp/simplif.cmi \ 2700 - asmcomp/semantics_of_primitives.cmi \ 2701 - typing/primitive.cmi \ 2702 - utils/numbers.cmi \ 2703 - utils/misc.cmi \ 2704 - parsing/location.cmi \ 2705 - bytecomp/lambda.cmi \ 2706 - typing/ident.cmi \ 2707 - typing/env.cmi \ 2708 - middle_end/debuginfo.cmi \ 2709 - asmcomp/convert_primitives.cmi \ 2710 - utils/config.cmi \ 2711 - asmcomp/compilenv.cmi \ 2712 - utils/clflags.cmi \ 2713 - asmcomp/clambda_primitives.cmi \ 2714 - asmcomp/clambda.cmi \ 2715 - asmcomp/backend_var.cmi \ 2716 - parsing/asttypes.cmi \ 2717 - asmcomp/arch.cmo \ 2718 - asmcomp/closure.cmi 2719 - asmcomp/closure.cmx : \ 2720 - utils/warnings.cmx \ 2721 - bytecomp/switch.cmx \ 2722 - bytecomp/simplif.cmx \ 2723 - asmcomp/semantics_of_primitives.cmx \ 2724 - typing/primitive.cmx \ 2725 - utils/numbers.cmx \ 2726 - utils/misc.cmx \ 2727 - parsing/location.cmx \ 2728 - bytecomp/lambda.cmx \ 2729 - typing/ident.cmx \ 2730 - typing/env.cmx \ 2731 - middle_end/debuginfo.cmx \ 2732 - asmcomp/convert_primitives.cmx \ 2733 - utils/config.cmx \ 2734 - asmcomp/compilenv.cmx \ 2735 - utils/clflags.cmx \ 2736 - asmcomp/clambda_primitives.cmx \ 2737 - asmcomp/clambda.cmx \ 2738 - asmcomp/backend_var.cmx \ 2739 - parsing/asttypes.cmi \ 2740 - asmcomp/arch.cmx \ 2741 - asmcomp/closure.cmi 2742 - asmcomp/closure.cmi : \ 2743 - bytecomp/lambda.cmi \ 2744 - asmcomp/clambda.cmi 2745 - asmcomp/closure_offsets.cmo : \ 2746 - middle_end/base_types/variable.cmi \ 2747 - middle_end/base_types/var_within_closure.cmi \ 2748 - utils/misc.cmi \ 2749 - middle_end/flambda_utils.cmi \ 2750 - middle_end/flambda.cmi \ 2751 - middle_end/base_types/closure_id.cmi \ 2752 - asmcomp/closure_offsets.cmi 2753 - asmcomp/closure_offsets.cmx : \ 2754 - middle_end/base_types/variable.cmx \ 2755 - middle_end/base_types/var_within_closure.cmx \ 2756 - utils/misc.cmx \ 2757 - middle_end/flambda_utils.cmx \ 2758 - middle_end/flambda.cmx \ 2759 - middle_end/base_types/closure_id.cmx \ 2760 - asmcomp/closure_offsets.cmi 2761 - asmcomp/closure_offsets.cmi : \ 2762 - middle_end/base_types/var_within_closure.cmi \ 2763 - middle_end/flambda.cmi \ 2764 - middle_end/base_types/closure_id.cmi 2765 2162 asmcomp/cmm.cmo : \ 2766 2163 utils/targetint.cmi \ 2767 - bytecomp/lambda.cmi \ 2768 - middle_end/debuginfo.cmi \ 2769 - asmcomp/backend_var.cmi \ 2164 + lambda/lambda.cmi \ 2165 + lambda/debuginfo.cmi \ 2166 + middle_end/backend_var.cmi \ 2770 2167 parsing/asttypes.cmi \ 2771 2168 asmcomp/arch.cmo \ 2772 2169 asmcomp/cmm.cmi 2773 2170 asmcomp/cmm.cmx : \ 2774 2171 utils/targetint.cmx \ 2775 - bytecomp/lambda.cmx \ 2776 - middle_end/debuginfo.cmx \ 2777 - asmcomp/backend_var.cmx \ 2172 + lambda/lambda.cmx \ 2173 + lambda/debuginfo.cmx \ 2174 + middle_end/backend_var.cmx \ 2778 2175 parsing/asttypes.cmi \ 2779 2176 asmcomp/arch.cmx \ 2780 2177 asmcomp/cmm.cmi 2781 2178 asmcomp/cmm.cmi : \ 2782 2179 utils/targetint.cmi \ 2783 - bytecomp/lambda.cmi \ 2784 - middle_end/debuginfo.cmi \ 2785 - asmcomp/backend_var.cmi \ 2180 + lambda/lambda.cmi \ 2181 + lambda/debuginfo.cmi \ 2182 + middle_end/backend_var.cmi \ 2786 2183 parsing/asttypes.cmi 2787 2184 asmcomp/cmmgen.cmo : \ 2788 - asmcomp/un_anf.cmi \ 2185 + middle_end/flambda/un_anf.cmi \ 2789 2186 typing/types.cmi \ 2790 2187 utils/targetint.cmi \ 2791 - bytecomp/switch.cmi \ 2188 + lambda/switch.cmi \ 2792 2189 asmcomp/strmatch.cmi \ 2793 2190 asmcomp/proc.cmi \ 2794 - asmcomp/printclambda_primitives.cmi \ 2191 + middle_end/printclambda_primitives.cmi \ 2795 2192 typing/primitive.cmi \ 2796 2193 utils/numbers.cmi \ 2797 2194 utils/misc.cmi \ 2798 - bytecomp/lambda.cmi \ 2799 - middle_end/debuginfo.cmi \ 2195 + lambda/lambda.cmi \ 2196 + lambda/debuginfo.cmi \ 2800 2197 utils/config.cmi \ 2801 - asmcomp/compilenv.cmi \ 2802 - asmcomp/cmxs_format.cmi \ 2803 - asmcomp/cmx_format.cmi \ 2198 + middle_end/compilenv.cmi \ 2199 + file_formats/cmxs_format.cmi \ 2200 + file_formats/cmx_format.cmi \ 2804 2201 asmcomp/cmmgen_state.cmi \ 2805 2202 asmcomp/cmm.cmi \ 2806 2203 utils/clflags.cmi \ 2807 - asmcomp/clambda_primitives.cmi \ 2808 - asmcomp/clambda.cmi \ 2809 - asmcomp/backend_var.cmi \ 2204 + middle_end/clambda_primitives.cmi \ 2205 + middle_end/clambda.cmi \ 2206 + middle_end/backend_var.cmi \ 2810 2207 parsing/asttypes.cmi \ 2811 2208 asmcomp/arch.cmo \ 2812 2209 asmcomp/afl_instrument.cmi \ 2813 2210 asmcomp/cmmgen.cmi 2814 2211 asmcomp/cmmgen.cmx : \ 2815 - asmcomp/un_anf.cmx \ 2212 + middle_end/flambda/un_anf.cmx \ 2816 2213 typing/types.cmx \ 2817 2214 utils/targetint.cmx \ 2818 - bytecomp/switch.cmx \ 2215 + lambda/switch.cmx \ 2819 2216 asmcomp/strmatch.cmx \ 2820 2217 asmcomp/proc.cmx \ 2821 - asmcomp/printclambda_primitives.cmx \ 2218 + middle_end/printclambda_primitives.cmx \ 2822 2219 typing/primitive.cmx \ 2823 2220 utils/numbers.cmx \ 2824 2221 utils/misc.cmx \ 2825 - bytecomp/lambda.cmx \ 2826 - middle_end/debuginfo.cmx \ 2222 + lambda/lambda.cmx \ 2223 + lambda/debuginfo.cmx \ 2827 2224 utils/config.cmx \ 2828 - asmcomp/compilenv.cmx \ 2829 - asmcomp/cmxs_format.cmi \ 2830 - asmcomp/cmx_format.cmi \ 2225 + middle_end/compilenv.cmx \ 2226 + file_formats/cmxs_format.cmi \ 2227 + file_formats/cmx_format.cmi \ 2831 2228 asmcomp/cmmgen_state.cmx \ 2832 2229 asmcomp/cmm.cmx \ 2833 2230 utils/clflags.cmx \ 2834 - asmcomp/clambda_primitives.cmx \ 2835 - asmcomp/clambda.cmx \ 2836 - asmcomp/backend_var.cmx \ 2231 + middle_end/clambda_primitives.cmx \ 2232 + middle_end/clambda.cmx \ 2233 + middle_end/backend_var.cmx \ 2837 2234 parsing/asttypes.cmi \ 2838 2235 asmcomp/arch.cmx \ 2839 2236 asmcomp/afl_instrument.cmx \ 2840 2237 asmcomp/cmmgen.cmi 2841 2238 asmcomp/cmmgen.cmi : \ 2842 - asmcomp/cmx_format.cmi \ 2239 + file_formats/cmx_format.cmi \ 2843 2240 asmcomp/cmm.cmi \ 2844 - asmcomp/clambda.cmi 2241 + middle_end/clambda.cmi 2845 2242 asmcomp/cmmgen_state.cmo : \ 2846 2243 utils/misc.cmi \ 2847 2244 asmcomp/cmm.cmi \ 2848 - asmcomp/clambda.cmi \ 2245 + middle_end/clambda.cmi \ 2849 2246 asmcomp/cmmgen_state.cmi 2850 2247 asmcomp/cmmgen_state.cmx : \ 2851 2248 utils/misc.cmx \ 2852 2249 asmcomp/cmm.cmx \ 2853 - asmcomp/clambda.cmx \ 2250 + middle_end/clambda.cmx \ 2854 2251 asmcomp/cmmgen_state.cmi 2855 2252 asmcomp/cmmgen_state.cmi : \ 2856 2253 utils/misc.cmi \ 2857 2254 asmcomp/cmm.cmi \ 2858 - asmcomp/clambda.cmi 2859 - asmcomp/cmx_format.cmi : \ 2860 - utils/misc.cmi \ 2861 - asmcomp/export_info.cmi \ 2862 - asmcomp/clambda.cmi 2863 - asmcomp/cmxs_format.cmi : \ 2864 - utils/misc.cmi 2255 + middle_end/clambda.cmi 2865 2256 asmcomp/coloring.cmo : \ 2866 2257 asmcomp/reg.cmi \ 2867 2258 asmcomp/proc.cmi \ ··· 2885 2276 asmcomp/comballoc.cmi 2886 2277 asmcomp/comballoc.cmi : \ 2887 2278 asmcomp/mach.cmi 2888 - asmcomp/compilenv.cmo : \ 2889 - utils/warnings.cmi \ 2890 - middle_end/base_types/symbol.cmi \ 2891 - middle_end/simple_value_approx.cmi \ 2892 - middle_end/base_types/set_of_closures_id.cmi \ 2893 - typing/path.cmi \ 2894 - utils/misc.cmi \ 2895 - parsing/location.cmi \ 2896 - utils/load_path.cmi \ 2897 - middle_end/base_types/linkage_name.cmi \ 2898 - typing/ident.cmi \ 2899 - asmcomp/export_info.cmi \ 2900 - typing/env.cmi \ 2901 - utils/config.cmi \ 2902 - middle_end/base_types/compilation_unit.cmi \ 2903 - asmcomp/cmx_format.cmi \ 2904 - middle_end/base_types/closure_id.cmi \ 2905 - utils/clflags.cmi \ 2906 - asmcomp/clambda.cmi \ 2907 - asmcomp/compilenv.cmi 2908 - asmcomp/compilenv.cmx : \ 2909 - utils/warnings.cmx \ 2910 - middle_end/base_types/symbol.cmx \ 2911 - middle_end/simple_value_approx.cmx \ 2912 - middle_end/base_types/set_of_closures_id.cmx \ 2913 - typing/path.cmx \ 2914 - utils/misc.cmx \ 2915 - parsing/location.cmx \ 2916 - utils/load_path.cmx \ 2917 - middle_end/base_types/linkage_name.cmx \ 2918 - typing/ident.cmx \ 2919 - asmcomp/export_info.cmx \ 2920 - typing/env.cmx \ 2921 - utils/config.cmx \ 2922 - middle_end/base_types/compilation_unit.cmx \ 2923 - asmcomp/cmx_format.cmi \ 2924 - middle_end/base_types/closure_id.cmx \ 2925 - utils/clflags.cmx \ 2926 - asmcomp/clambda.cmx \ 2927 - asmcomp/compilenv.cmi 2928 - asmcomp/compilenv.cmi : \ 2929 - middle_end/base_types/symbol.cmi \ 2930 - middle_end/simple_value_approx.cmi \ 2931 - middle_end/base_types/set_of_closures_id.cmi \ 2932 - middle_end/base_types/linkage_name.cmi \ 2933 - typing/ident.cmi \ 2934 - asmcomp/export_info.cmi \ 2935 - middle_end/base_types/compilation_unit.cmi \ 2936 - asmcomp/cmx_format.cmi \ 2937 - middle_end/base_types/closure_id.cmi \ 2938 - asmcomp/clambda.cmi 2939 - asmcomp/convert_primitives.cmo : \ 2940 - bytecomp/printlambda.cmi \ 2941 - utils/misc.cmi \ 2942 - bytecomp/lambda.cmi \ 2943 - asmcomp/clambda_primitives.cmi \ 2944 - asmcomp/convert_primitives.cmi 2945 - asmcomp/convert_primitives.cmx : \ 2946 - bytecomp/printlambda.cmx \ 2947 - utils/misc.cmx \ 2948 - bytecomp/lambda.cmx \ 2949 - asmcomp/clambda_primitives.cmx \ 2950 - asmcomp/convert_primitives.cmi 2951 - asmcomp/convert_primitives.cmi : \ 2952 - bytecomp/lambda.cmi \ 2953 - asmcomp/clambda_primitives.cmi 2954 2279 asmcomp/deadcode.cmo : \ 2955 2280 asmcomp/reg.cmi \ 2956 2281 asmcomp/proc.cmi \ ··· 2976 2301 utils/misc.cmi \ 2977 2302 asmcomp/mach.cmi \ 2978 2303 asmcomp/linearize.cmi \ 2979 - bytecomp/lambda.cmi \ 2304 + lambda/lambda.cmi \ 2980 2305 asmcomp/emitaux.cmi \ 2981 2306 utils/domainstate.cmi \ 2982 - middle_end/debuginfo.cmi \ 2307 + lambda/debuginfo.cmi \ 2983 2308 utils/config.cmi \ 2984 - asmcomp/compilenv.cmi \ 2309 + middle_end/compilenv.cmi \ 2985 2310 asmcomp/cmm.cmi \ 2986 2311 utils/clflags.cmi \ 2987 2312 asmcomp/branch_relaxation.cmi \ ··· 2998 2323 utils/misc.cmx \ 2999 2324 asmcomp/mach.cmx \ 3000 2325 asmcomp/linearize.cmx \ 3001 - bytecomp/lambda.cmx \ 2326 + lambda/lambda.cmx \ 3002 2327 asmcomp/emitaux.cmx \ 3003 2328 utils/domainstate.cmx \ 3004 - middle_end/debuginfo.cmx \ 2329 + lambda/debuginfo.cmx \ 3005 2330 utils/config.cmx \ 3006 - asmcomp/compilenv.cmx \ 2331 + middle_end/compilenv.cmx \ 3007 2332 asmcomp/cmm.cmx \ 3008 2333 utils/clflags.cmx \ 3009 2334 asmcomp/branch_relaxation.cmx \ ··· 3013 2338 asmcomp/linearize.cmi \ 3014 2339 asmcomp/cmm.cmi 3015 2340 asmcomp/emitaux.cmo : \ 3016 - middle_end/debuginfo.cmi \ 2341 + lambda/debuginfo.cmi \ 3017 2342 utils/config.cmi \ 3018 2343 asmcomp/cmm.cmi \ 3019 2344 utils/clflags.cmi \ 3020 2345 asmcomp/arch.cmo \ 3021 2346 asmcomp/emitaux.cmi 3022 2347 asmcomp/emitaux.cmx : \ 3023 - middle_end/debuginfo.cmx \ 2348 + lambda/debuginfo.cmx \ 3024 2349 utils/config.cmx \ 3025 2350 asmcomp/cmm.cmx \ 3026 2351 utils/clflags.cmx \ 3027 2352 asmcomp/arch.cmx \ 3028 2353 asmcomp/emitaux.cmi 3029 2354 asmcomp/emitaux.cmi : \ 3030 - middle_end/debuginfo.cmi 3031 - asmcomp/export_info.cmo : \ 3032 - middle_end/base_types/variable.cmi \ 3033 - middle_end/base_types/var_within_closure.cmi \ 3034 - middle_end/base_types/tag.cmi \ 3035 - middle_end/base_types/symbol.cmi \ 3036 - middle_end/simple_value_approx.cmi \ 3037 - middle_end/base_types/set_of_closures_id.cmi \ 3038 - middle_end/flambda.cmi \ 3039 - middle_end/base_types/export_id.cmi \ 3040 - middle_end/base_types/compilation_unit.cmi \ 3041 - middle_end/base_types/closure_id.cmi \ 3042 - asmcomp/export_info.cmi 3043 - asmcomp/export_info.cmx : \ 3044 - middle_end/base_types/variable.cmx \ 3045 - middle_end/base_types/var_within_closure.cmx \ 3046 - middle_end/base_types/tag.cmx \ 3047 - middle_end/base_types/symbol.cmx \ 3048 - middle_end/simple_value_approx.cmx \ 3049 - middle_end/base_types/set_of_closures_id.cmx \ 3050 - middle_end/flambda.cmx \ 3051 - middle_end/base_types/export_id.cmx \ 3052 - middle_end/base_types/compilation_unit.cmx \ 3053 - middle_end/base_types/closure_id.cmx \ 3054 - asmcomp/export_info.cmi 3055 - asmcomp/export_info.cmi : \ 3056 - middle_end/base_types/variable.cmi \ 3057 - middle_end/base_types/var_within_closure.cmi \ 3058 - middle_end/base_types/tag.cmi \ 3059 - middle_end/base_types/symbol.cmi \ 3060 - middle_end/simple_value_approx.cmi \ 3061 - middle_end/base_types/set_of_closures_id.cmi \ 3062 - middle_end/flambda.cmi \ 3063 - middle_end/base_types/export_id.cmi \ 3064 - middle_end/base_types/compilation_unit.cmi \ 3065 - middle_end/base_types/closure_id.cmi 3066 - asmcomp/export_info_for_pack.cmo : \ 3067 - middle_end/base_types/variable.cmi \ 3068 - middle_end/base_types/var_within_closure.cmi \ 3069 - middle_end/base_types/symbol.cmi \ 3070 - middle_end/simple_value_approx.cmi \ 3071 - middle_end/base_types/set_of_closures_origin.cmi \ 3072 - middle_end/base_types/set_of_closures_id.cmi \ 3073 - utils/misc.cmi \ 3074 - middle_end/flambda_iterators.cmi \ 3075 - middle_end/flambda.cmi \ 3076 - asmcomp/export_info.cmi \ 3077 - middle_end/base_types/export_id.cmi \ 3078 - middle_end/base_types/compilation_unit.cmi \ 3079 - middle_end/base_types/closure_id.cmi \ 3080 - asmcomp/export_info_for_pack.cmi 3081 - asmcomp/export_info_for_pack.cmx : \ 3082 - middle_end/base_types/variable.cmx \ 3083 - middle_end/base_types/var_within_closure.cmx \ 3084 - middle_end/base_types/symbol.cmx \ 3085 - middle_end/simple_value_approx.cmx \ 3086 - middle_end/base_types/set_of_closures_origin.cmx \ 3087 - middle_end/base_types/set_of_closures_id.cmx \ 3088 - utils/misc.cmx \ 3089 - middle_end/flambda_iterators.cmx \ 3090 - middle_end/flambda.cmx \ 3091 - asmcomp/export_info.cmx \ 3092 - middle_end/base_types/export_id.cmx \ 3093 - middle_end/base_types/compilation_unit.cmx \ 3094 - middle_end/base_types/closure_id.cmx \ 3095 - asmcomp/export_info_for_pack.cmi 3096 - asmcomp/export_info_for_pack.cmi : \ 3097 - asmcomp/export_info.cmi \ 3098 - middle_end/base_types/compilation_unit.cmi 3099 - asmcomp/flambda_to_clambda.cmo : \ 3100 - middle_end/base_types/variable.cmi \ 3101 - middle_end/base_types/var_within_closure.cmi \ 3102 - middle_end/base_types/tag.cmi \ 3103 - middle_end/base_types/symbol.cmi \ 3104 - middle_end/base_types/static_exception.cmi \ 3105 - middle_end/simple_value_approx.cmi \ 3106 - middle_end/base_types/set_of_closures_id.cmi \ 3107 - typing/primitive.cmi \ 3108 - middle_end/parameter.cmi \ 3109 - utils/numbers.cmi \ 3110 - middle_end/base_types/mutable_variable.cmi \ 3111 - utils/misc.cmi \ 3112 - middle_end/base_types/linkage_name.cmi \ 3113 - bytecomp/lambda.cmi \ 3114 - middle_end/initialize_symbol_to_let_symbol.cmi \ 3115 - middle_end/flambda_utils.cmi \ 3116 - middle_end/flambda.cmi \ 3117 - asmcomp/export_info.cmi \ 3118 - middle_end/debuginfo.cmi \ 3119 - asmcomp/compilenv.cmi \ 3120 - asmcomp/closure_offsets.cmi \ 3121 - middle_end/base_types/closure_id.cmi \ 3122 - utils/clflags.cmi \ 3123 - asmcomp/clambda.cmi \ 3124 - asmcomp/backend_var.cmi \ 3125 - middle_end/allocated_const.cmi \ 3126 - asmcomp/flambda_to_clambda.cmi 3127 - asmcomp/flambda_to_clambda.cmx : \ 3128 - middle_end/base_types/variable.cmx \ 3129 - middle_end/base_types/var_within_closure.cmx \ 3130 - middle_end/base_types/tag.cmx \ 3131 - middle_end/base_types/symbol.cmx \ 3132 - middle_end/base_types/static_exception.cmx \ 3133 - middle_end/simple_value_approx.cmx \ 3134 - middle_end/base_types/set_of_closures_id.cmx \ 3135 - typing/primitive.cmx \ 3136 - middle_end/parameter.cmx \ 3137 - utils/numbers.cmx \ 3138 - middle_end/base_types/mutable_variable.cmx \ 3139 - utils/misc.cmx \ 3140 - middle_end/base_types/linkage_name.cmx \ 3141 - bytecomp/lambda.cmx \ 3142 - middle_end/initialize_symbol_to_let_symbol.cmx \ 3143 - middle_end/flambda_utils.cmx \ 3144 - middle_end/flambda.cmx \ 3145 - asmcomp/export_info.cmx \ 3146 - middle_end/debuginfo.cmx \ 3147 - asmcomp/compilenv.cmx \ 3148 - asmcomp/closure_offsets.cmx \ 3149 - middle_end/base_types/closure_id.cmx \ 3150 - utils/clflags.cmx \ 3151 - asmcomp/clambda.cmx \ 3152 - asmcomp/backend_var.cmx \ 3153 - middle_end/allocated_const.cmx \ 3154 - asmcomp/flambda_to_clambda.cmi 3155 - asmcomp/flambda_to_clambda.cmi : \ 3156 - middle_end/base_types/symbol.cmi \ 3157 - middle_end/flambda.cmi \ 3158 - asmcomp/export_info.cmi \ 3159 - asmcomp/clambda.cmi 3160 - asmcomp/import_approx.cmo : \ 3161 - middle_end/base_types/variable.cmi \ 3162 - middle_end/base_types/var_within_closure.cmi \ 3163 - middle_end/base_types/symbol.cmi \ 3164 - middle_end/simple_value_approx.cmi \ 3165 - middle_end/base_types/set_of_closures_id.cmi \ 3166 - utils/misc.cmi \ 3167 - middle_end/freshening.cmi \ 3168 - middle_end/flambda_iterators.cmi \ 3169 - middle_end/flambda.cmi \ 3170 - asmcomp/export_info.cmi \ 3171 - middle_end/base_types/export_id.cmi \ 3172 - asmcomp/compilenv.cmi \ 3173 - middle_end/base_types/compilation_unit.cmi \ 3174 - middle_end/base_types/closure_id.cmi \ 3175 - asmcomp/import_approx.cmi 3176 - asmcomp/import_approx.cmx : \ 3177 - middle_end/base_types/variable.cmx \ 3178 - middle_end/base_types/var_within_closure.cmx \ 3179 - middle_end/base_types/symbol.cmx \ 3180 - middle_end/simple_value_approx.cmx \ 3181 - middle_end/base_types/set_of_closures_id.cmx \ 3182 - utils/misc.cmx \ 3183 - middle_end/freshening.cmx \ 3184 - middle_end/flambda_iterators.cmx \ 3185 - middle_end/flambda.cmx \ 3186 - asmcomp/export_info.cmx \ 3187 - middle_end/base_types/export_id.cmx \ 3188 - asmcomp/compilenv.cmx \ 3189 - middle_end/base_types/compilation_unit.cmx \ 3190 - middle_end/base_types/closure_id.cmx \ 3191 - asmcomp/import_approx.cmi 3192 - asmcomp/import_approx.cmi : \ 3193 - middle_end/base_types/symbol.cmi \ 3194 - middle_end/simple_value_approx.cmi 2355 + lambda/debuginfo.cmi 3195 2356 asmcomp/interf.cmo : \ 3196 2357 asmcomp/reg.cmi \ 3197 2358 asmcomp/proc.cmi \ ··· 3224 2385 asmcomp/proc.cmi \ 3225 2386 utils/misc.cmi \ 3226 2387 asmcomp/mach.cmi \ 3227 - bytecomp/lambda.cmi \ 3228 - middle_end/debuginfo.cmi \ 2388 + lambda/lambda.cmi \ 2389 + lambda/debuginfo.cmi \ 3229 2390 utils/config.cmi \ 3230 2391 asmcomp/cmm.cmi \ 3231 2392 asmcomp/linearize.cmi ··· 3234 2395 asmcomp/proc.cmx \ 3235 2396 utils/misc.cmx \ 3236 2397 asmcomp/mach.cmx \ 3237 - bytecomp/lambda.cmx \ 3238 - middle_end/debuginfo.cmx \ 2398 + lambda/lambda.cmx \ 2399 + lambda/debuginfo.cmx \ 3239 2400 utils/config.cmx \ 3240 2401 asmcomp/cmm.cmx \ 3241 2402 asmcomp/linearize.cmi 3242 2403 asmcomp/linearize.cmi : \ 3243 2404 asmcomp/reg.cmi \ 3244 2405 asmcomp/mach.cmi \ 3245 - bytecomp/lambda.cmi \ 3246 - middle_end/debuginfo.cmi \ 2406 + lambda/lambda.cmi \ 2407 + lambda/debuginfo.cmi \ 3247 2408 asmcomp/cmm.cmi 3248 2409 asmcomp/linscan.cmo : \ 3249 2410 asmcomp/reg.cmi \ ··· 3280 2441 asmcomp/debug/reg_with_debug_info.cmi \ 3281 2442 asmcomp/debug/reg_availability_set.cmi \ 3282 2443 asmcomp/reg.cmi \ 3283 - bytecomp/lambda.cmi \ 3284 - middle_end/debuginfo.cmi \ 2444 + lambda/lambda.cmi \ 2445 + lambda/debuginfo.cmi \ 3285 2446 asmcomp/cmm.cmi \ 3286 - asmcomp/backend_var.cmi \ 2447 + middle_end/backend_var.cmi \ 3287 2448 asmcomp/arch.cmo \ 3288 2449 asmcomp/mach.cmi 3289 2450 asmcomp/mach.cmx : \ 3290 2451 asmcomp/debug/reg_with_debug_info.cmx \ 3291 2452 asmcomp/debug/reg_availability_set.cmx \ 3292 2453 asmcomp/reg.cmx \ 3293 - bytecomp/lambda.cmx \ 3294 - middle_end/debuginfo.cmx \ 2454 + lambda/lambda.cmx \ 2455 + lambda/debuginfo.cmx \ 3295 2456 asmcomp/cmm.cmx \ 3296 - asmcomp/backend_var.cmx \ 2457 + middle_end/backend_var.cmx \ 3297 2458 asmcomp/arch.cmx \ 3298 2459 asmcomp/mach.cmi 3299 2460 asmcomp/mach.cmi : \ 3300 2461 asmcomp/debug/reg_availability_set.cmi \ 3301 2462 asmcomp/reg.cmi \ 3302 - bytecomp/lambda.cmi \ 3303 - middle_end/debuginfo.cmi \ 2463 + lambda/lambda.cmi \ 2464 + lambda/debuginfo.cmi \ 3304 2465 asmcomp/cmm.cmi \ 3305 - asmcomp/backend_var.cmi \ 2466 + middle_end/backend_var.cmi \ 3306 2467 asmcomp/arch.cmo 3307 2468 asmcomp/polling.cmo : \ 3308 2469 asmcomp/reg.cmi \ 3309 2470 asmcomp/mach.cmi \ 3310 - middle_end/debuginfo.cmi \ 2471 + lambda/debuginfo.cmi \ 3311 2472 asmcomp/cmm.cmi \ 3312 2473 asmcomp/polling.cmi 3313 2474 asmcomp/polling.cmx : \ 3314 2475 asmcomp/reg.cmx \ 3315 2476 asmcomp/mach.cmx \ 3316 - middle_end/debuginfo.cmx \ 2477 + lambda/debuginfo.cmx \ 3317 2478 asmcomp/cmm.cmx \ 3318 2479 asmcomp/polling.cmi 3319 2480 asmcomp/polling.cmi : \ 3320 2481 asmcomp/mach.cmi 3321 - asmcomp/printclambda.cmo : \ 3322 - bytecomp/printlambda.cmi \ 3323 - asmcomp/printclambda_primitives.cmi \ 3324 - bytecomp/lambda.cmi \ 3325 - typing/ident.cmi \ 3326 - asmcomp/clambda.cmi \ 3327 - asmcomp/backend_var.cmi \ 3328 - parsing/asttypes.cmi \ 3329 - asmcomp/printclambda.cmi 3330 - asmcomp/printclambda.cmx : \ 3331 - bytecomp/printlambda.cmx \ 3332 - asmcomp/printclambda_primitives.cmx \ 3333 - bytecomp/lambda.cmx \ 3334 - typing/ident.cmx \ 3335 - asmcomp/clambda.cmx \ 3336 - asmcomp/backend_var.cmx \ 3337 - parsing/asttypes.cmi \ 3338 - asmcomp/printclambda.cmi 3339 - asmcomp/printclambda.cmi : \ 3340 - asmcomp/clambda.cmi 3341 - asmcomp/printclambda_primitives.cmo : \ 3342 - bytecomp/printlambda.cmi \ 3343 - typing/primitive.cmi \ 3344 - bytecomp/lambda.cmi \ 3345 - asmcomp/clambda_primitives.cmi \ 3346 - parsing/asttypes.cmi \ 3347 - asmcomp/printclambda_primitives.cmi 3348 - asmcomp/printclambda_primitives.cmx : \ 3349 - bytecomp/printlambda.cmx \ 3350 - typing/primitive.cmx \ 3351 - bytecomp/lambda.cmx \ 3352 - asmcomp/clambda_primitives.cmx \ 3353 - parsing/asttypes.cmi \ 3354 - asmcomp/printclambda_primitives.cmi 3355 - asmcomp/printclambda_primitives.cmi : \ 3356 - asmcomp/clambda_primitives.cmi 3357 2482 asmcomp/printcmm.cmo : \ 3358 2483 utils/targetint.cmi \ 3359 - bytecomp/lambda.cmi \ 3360 - middle_end/debuginfo.cmi \ 2484 + lambda/lambda.cmi \ 2485 + lambda/debuginfo.cmi \ 3361 2486 asmcomp/cmm.cmi \ 3362 - asmcomp/backend_var.cmi \ 2487 + middle_end/backend_var.cmi \ 3363 2488 parsing/asttypes.cmi \ 3364 2489 asmcomp/printcmm.cmi 3365 2490 asmcomp/printcmm.cmx : \ 3366 2491 utils/targetint.cmx \ 3367 - bytecomp/lambda.cmx \ 3368 - middle_end/debuginfo.cmx \ 2492 + lambda/lambda.cmx \ 2493 + lambda/debuginfo.cmx \ 3369 2494 asmcomp/cmm.cmx \ 3370 - asmcomp/backend_var.cmx \ 2495 + middle_end/backend_var.cmx \ 3371 2496 parsing/asttypes.cmi \ 3372 2497 asmcomp/printcmm.cmi 3373 2498 asmcomp/printcmm.cmi : \ 3374 - middle_end/debuginfo.cmi \ 2499 + lambda/debuginfo.cmi \ 3375 2500 asmcomp/cmm.cmi 3376 2501 asmcomp/printlinear.cmo : \ 3377 2502 asmcomp/printmach.cmi \ 3378 2503 asmcomp/mach.cmi \ 3379 2504 asmcomp/linearize.cmi \ 3380 - bytecomp/lambda.cmi \ 3381 - middle_end/debuginfo.cmi \ 2505 + lambda/lambda.cmi \ 2506 + lambda/debuginfo.cmi \ 3382 2507 asmcomp/printlinear.cmi 3383 2508 asmcomp/printlinear.cmx : \ 3384 2509 asmcomp/printmach.cmx \ 3385 2510 asmcomp/mach.cmx \ 3386 2511 asmcomp/linearize.cmx \ 3387 - bytecomp/lambda.cmx \ 3388 - middle_end/debuginfo.cmx \ 2512 + lambda/lambda.cmx \ 2513 + lambda/debuginfo.cmx \ 3389 2514 asmcomp/printlinear.cmi 3390 2515 asmcomp/printlinear.cmi : \ 3391 2516 asmcomp/linearize.cmi ··· 3395 2520 asmcomp/proc.cmi \ 3396 2521 asmcomp/printcmm.cmi \ 3397 2522 asmcomp/mach.cmi \ 3398 - bytecomp/lambda.cmi \ 2523 + lambda/lambda.cmi \ 3399 2524 asmcomp/interval.cmi \ 3400 - middle_end/debuginfo.cmi \ 2525 + lambda/debuginfo.cmi \ 3401 2526 utils/config.cmi \ 3402 2527 asmcomp/cmm.cmi \ 3403 2528 utils/clflags.cmi \ 3404 - asmcomp/backend_var.cmi \ 2529 + middle_end/backend_var.cmi \ 3405 2530 asmcomp/arch.cmo \ 3406 2531 asmcomp/printmach.cmi 3407 2532 asmcomp/printmach.cmx : \ ··· 3410 2535 asmcomp/proc.cmx \ 3411 2536 asmcomp/printcmm.cmx \ 3412 2537 asmcomp/mach.cmx \ 3413 - bytecomp/lambda.cmx \ 2538 + lambda/lambda.cmx \ 3414 2539 asmcomp/interval.cmx \ 3415 - middle_end/debuginfo.cmx \ 2540 + lambda/debuginfo.cmx \ 3416 2541 utils/config.cmx \ 3417 2542 asmcomp/cmm.cmx \ 3418 2543 utils/clflags.cmx \ 3419 - asmcomp/backend_var.cmx \ 2544 + middle_end/backend_var.cmx \ 3420 2545 asmcomp/arch.cmx \ 3421 2546 asmcomp/printmach.cmi 3422 2547 asmcomp/printmach.cmi : \ ··· 3445 2570 asmcomp/mach.cmi 3446 2571 asmcomp/reg.cmo : \ 3447 2572 asmcomp/cmm.cmi \ 3448 - asmcomp/backend_var.cmi \ 2573 + middle_end/backend_var.cmi \ 3449 2574 asmcomp/reg.cmi 3450 2575 asmcomp/reg.cmx : \ 3451 2576 asmcomp/cmm.cmx \ 3452 - asmcomp/backend_var.cmx \ 2577 + middle_end/backend_var.cmx \ 3453 2578 asmcomp/reg.cmi 3454 2579 asmcomp/reg.cmi : \ 3455 2580 asmcomp/cmm.cmi \ 3456 - asmcomp/backend_var.cmi 2581 + middle_end/backend_var.cmi 3457 2582 asmcomp/reload.cmo : \ 3458 2583 asmcomp/reloadgen.cmi \ 3459 2584 asmcomp/reg.cmi \ ··· 3515 2640 asmcomp/scheduling.cmi : \ 3516 2641 asmcomp/linearize.cmi 3517 2642 asmcomp/selectgen.cmo : \ 3518 - bytecomp/simplif.cmi \ 2643 + lambda/simplif.cmi \ 3519 2644 asmcomp/reg.cmi \ 3520 2645 asmcomp/proc.cmi \ 3521 2646 utils/numbers.cmi \ 3522 2647 utils/misc.cmi \ 3523 2648 asmcomp/mach.cmi \ 3524 - bytecomp/lambda.cmi \ 3525 - middle_end/debuginfo.cmi \ 2649 + lambda/lambda.cmi \ 2650 + lambda/debuginfo.cmi \ 3526 2651 utils/config.cmi \ 3527 2652 asmcomp/cmm.cmi \ 3528 - asmcomp/backend_var.cmi \ 2653 + middle_end/backend_var.cmi \ 3529 2654 parsing/asttypes.cmi \ 3530 2655 asmcomp/arch.cmo \ 3531 2656 asmcomp/selectgen.cmi 3532 2657 asmcomp/selectgen.cmx : \ 3533 - bytecomp/simplif.cmx \ 2658 + lambda/simplif.cmx \ 3534 2659 asmcomp/reg.cmx \ 3535 2660 asmcomp/proc.cmx \ 3536 2661 utils/numbers.cmx \ 3537 2662 utils/misc.cmx \ 3538 2663 asmcomp/mach.cmx \ 3539 - bytecomp/lambda.cmx \ 3540 - middle_end/debuginfo.cmx \ 2664 + lambda/lambda.cmx \ 2665 + lambda/debuginfo.cmx \ 3541 2666 utils/config.cmx \ 3542 2667 asmcomp/cmm.cmx \ 3543 - asmcomp/backend_var.cmx \ 2668 + middle_end/backend_var.cmx \ 3544 2669 parsing/asttypes.cmi \ 3545 2670 asmcomp/arch.cmx \ 3546 2671 asmcomp/selectgen.cmi 3547 2672 asmcomp/selectgen.cmi : \ 3548 2673 asmcomp/reg.cmi \ 3549 2674 asmcomp/mach.cmi \ 3550 - middle_end/debuginfo.cmi \ 2675 + lambda/debuginfo.cmi \ 3551 2676 asmcomp/cmm.cmi \ 3552 - asmcomp/backend_var.cmi \ 2677 + middle_end/backend_var.cmi \ 3553 2678 asmcomp/arch.cmo 3554 2679 asmcomp/selection.cmo : \ 3555 2680 asmcomp/spacetime_profiling.cmi \ ··· 3574 2699 asmcomp/selection.cmi : \ 3575 2700 asmcomp/mach.cmi \ 3576 2701 asmcomp/cmm.cmi 3577 - asmcomp/semantics_of_primitives.cmo : \ 3578 - asmcomp/clambda_primitives.cmi \ 3579 - asmcomp/semantics_of_primitives.cmi 3580 - asmcomp/semantics_of_primitives.cmx : \ 3581 - asmcomp/clambda_primitives.cmx \ 3582 - asmcomp/semantics_of_primitives.cmi 3583 - asmcomp/semantics_of_primitives.cmi : \ 3584 - asmcomp/clambda_primitives.cmi 3585 2702 asmcomp/spacetime_profiling.cmo : \ 3586 2703 asmcomp/selectgen.cmi \ 3587 2704 asmcomp/proc.cmi \ 3588 2705 utils/misc.cmi \ 3589 2706 asmcomp/mach.cmi \ 3590 - bytecomp/lambda.cmi \ 3591 - middle_end/debuginfo.cmi \ 2707 + lambda/lambda.cmi \ 2708 + lambda/debuginfo.cmi \ 3592 2709 utils/config.cmi \ 3593 2710 asmcomp/cmm.cmi \ 3594 - asmcomp/backend_var.cmi \ 2711 + middle_end/backend_var.cmi \ 3595 2712 parsing/asttypes.cmi \ 3596 2713 asmcomp/arch.cmo \ 3597 2714 asmcomp/spacetime_profiling.cmi ··· 3600 2717 asmcomp/proc.cmx \ 3601 2718 utils/misc.cmx \ 3602 2719 asmcomp/mach.cmx \ 3603 - bytecomp/lambda.cmx \ 3604 - middle_end/debuginfo.cmx \ 2720 + lambda/lambda.cmx \ 2721 + lambda/debuginfo.cmx \ 3605 2722 utils/config.cmx \ 3606 2723 asmcomp/cmm.cmx \ 3607 - asmcomp/backend_var.cmx \ 2724 + middle_end/backend_var.cmx \ 3608 2725 parsing/asttypes.cmi \ 3609 2726 asmcomp/arch.cmx \ 3610 2727 asmcomp/spacetime_profiling.cmi ··· 3642 2759 asmcomp/mach.cmi 3643 2760 asmcomp/strmatch.cmo : \ 3644 2761 parsing/location.cmi \ 3645 - bytecomp/lambda.cmi \ 3646 - middle_end/debuginfo.cmi \ 2762 + lambda/lambda.cmi \ 2763 + lambda/debuginfo.cmi \ 3647 2764 asmcomp/cmm.cmi \ 3648 - asmcomp/backend_var.cmi \ 2765 + middle_end/backend_var.cmi \ 3649 2766 parsing/asttypes.cmi \ 3650 2767 asmcomp/arch.cmo \ 3651 2768 asmcomp/strmatch.cmi 3652 2769 asmcomp/strmatch.cmx : \ 3653 2770 parsing/location.cmx \ 3654 - bytecomp/lambda.cmx \ 3655 - middle_end/debuginfo.cmx \ 2771 + lambda/lambda.cmx \ 2772 + lambda/debuginfo.cmx \ 3656 2773 asmcomp/cmm.cmx \ 3657 - asmcomp/backend_var.cmx \ 2774 + middle_end/backend_var.cmx \ 3658 2775 parsing/asttypes.cmi \ 3659 2776 asmcomp/arch.cmx \ 3660 2777 asmcomp/strmatch.cmi 3661 2778 asmcomp/strmatch.cmi : \ 3662 2779 parsing/location.cmi \ 3663 - middle_end/debuginfo.cmi \ 2780 + lambda/debuginfo.cmi \ 3664 2781 asmcomp/cmm.cmi 3665 - asmcomp/traverse_for_exported_symbols.cmo : \ 3666 - middle_end/base_types/variable.cmi \ 3667 - middle_end/base_types/var_within_closure.cmi \ 3668 - middle_end/base_types/symbol.cmi \ 3669 - middle_end/simple_value_approx.cmi \ 3670 - middle_end/base_types/set_of_closures_id.cmi \ 3671 - utils/misc.cmi \ 3672 - middle_end/flambda_iterators.cmi \ 3673 - middle_end/flambda.cmi \ 3674 - asmcomp/export_info.cmi \ 3675 - middle_end/base_types/export_id.cmi \ 3676 - middle_end/base_types/compilation_unit.cmi \ 3677 - middle_end/base_types/closure_id.cmi \ 3678 - asmcomp/traverse_for_exported_symbols.cmi 3679 - asmcomp/traverse_for_exported_symbols.cmx : \ 3680 - middle_end/base_types/variable.cmx \ 3681 - middle_end/base_types/var_within_closure.cmx \ 3682 - middle_end/base_types/symbol.cmx \ 3683 - middle_end/simple_value_approx.cmx \ 3684 - middle_end/base_types/set_of_closures_id.cmx \ 3685 - utils/misc.cmx \ 3686 - middle_end/flambda_iterators.cmx \ 3687 - middle_end/flambda.cmx \ 3688 - asmcomp/export_info.cmx \ 3689 - middle_end/base_types/export_id.cmx \ 3690 - middle_end/base_types/compilation_unit.cmx \ 3691 - middle_end/base_types/closure_id.cmx \ 3692 - asmcomp/traverse_for_exported_symbols.cmi 3693 - asmcomp/traverse_for_exported_symbols.cmi : \ 3694 - middle_end/base_types/var_within_closure.cmi \ 3695 - middle_end/base_types/symbol.cmi \ 3696 - middle_end/simple_value_approx.cmi \ 3697 - middle_end/base_types/set_of_closures_id.cmi \ 3698 - middle_end/flambda.cmi \ 3699 - asmcomp/export_info.cmi \ 3700 - middle_end/base_types/export_id.cmi \ 3701 - middle_end/base_types/closure_id.cmi 3702 - asmcomp/un_anf.cmo : \ 3703 - asmcomp/semantics_of_primitives.cmi \ 3704 - asmcomp/printclambda.cmi \ 3705 - utils/misc.cmi \ 3706 - bytecomp/lambda.cmi \ 3707 - middle_end/debuginfo.cmi \ 3708 - utils/clflags.cmi \ 3709 - asmcomp/clambda_primitives.cmi \ 3710 - asmcomp/clambda.cmi \ 3711 - asmcomp/backend_var.cmi \ 3712 - parsing/asttypes.cmi \ 3713 - asmcomp/un_anf.cmi 3714 - asmcomp/un_anf.cmx : \ 3715 - asmcomp/semantics_of_primitives.cmx \ 3716 - asmcomp/printclambda.cmx \ 3717 - utils/misc.cmx \ 3718 - bytecomp/lambda.cmx \ 3719 - middle_end/debuginfo.cmx \ 3720 - utils/clflags.cmx \ 3721 - asmcomp/clambda_primitives.cmx \ 3722 - asmcomp/clambda.cmx \ 3723 - asmcomp/backend_var.cmx \ 3724 - parsing/asttypes.cmi \ 3725 - asmcomp/un_anf.cmi 3726 - asmcomp/un_anf.cmi : \ 3727 - asmcomp/clambda.cmi 3728 2782 asmcomp/x86_ast.cmi : 3729 2783 asmcomp/x86_dsl.cmo : \ 3730 2784 asmcomp/x86_proc.cmi \ ··· 3774 2828 asmcomp/x86_proc.cmi 3775 2829 asmcomp/x86_proc.cmi : \ 3776 2830 asmcomp/x86_ast.cmi 3777 - middle_end/alias_analysis.cmo : \ 3778 - middle_end/base_types/variable.cmi \ 3779 - middle_end/base_types/var_within_closure.cmi \ 3780 - middle_end/base_types/tag.cmi \ 3781 - middle_end/base_types/symbol.cmi \ 2831 + middle_end/backend_intf.cmi : \ 2832 + middle_end/symbol.cmi \ 2833 + middle_end/flambda/simple_value_approx.cmi \ 2834 + typing/ident.cmi \ 2835 + middle_end/flambda/base_types/closure_id.cmi 2836 + middle_end/backend_var.cmo : \ 2837 + typing/path.cmi \ 2838 + typing/ident.cmi \ 2839 + lambda/debuginfo.cmi \ 2840 + middle_end/backend_var.cmi 2841 + middle_end/backend_var.cmx : \ 2842 + typing/path.cmx \ 2843 + typing/ident.cmx \ 2844 + lambda/debuginfo.cmx \ 2845 + middle_end/backend_var.cmi 2846 + middle_end/backend_var.cmi : \ 2847 + typing/path.cmi \ 2848 + typing/ident.cmi \ 2849 + lambda/debuginfo.cmi 2850 + middle_end/clambda.cmo : \ 2851 + typing/path.cmi \ 2852 + lambda/lambda.cmi \ 2853 + typing/ident.cmi \ 2854 + lambda/debuginfo.cmi \ 2855 + middle_end/clambda_primitives.cmi \ 2856 + middle_end/backend_var.cmi \ 2857 + parsing/asttypes.cmi \ 2858 + middle_end/clambda.cmi 2859 + middle_end/clambda.cmx : \ 2860 + typing/path.cmx \ 2861 + lambda/lambda.cmx \ 2862 + typing/ident.cmx \ 2863 + lambda/debuginfo.cmx \ 2864 + middle_end/clambda_primitives.cmx \ 2865 + middle_end/backend_var.cmx \ 2866 + parsing/asttypes.cmi \ 2867 + middle_end/clambda.cmi 2868 + middle_end/clambda.cmi : \ 2869 + typing/path.cmi \ 2870 + lambda/lambda.cmi \ 2871 + typing/ident.cmi \ 2872 + lambda/debuginfo.cmi \ 2873 + middle_end/clambda_primitives.cmi \ 2874 + middle_end/backend_var.cmi \ 2875 + parsing/asttypes.cmi 2876 + middle_end/clambda_primitives.cmo : \ 2877 + typing/types.cmi \ 2878 + typing/primitive.cmi \ 2879 + lambda/lambda.cmi \ 2880 + parsing/asttypes.cmi \ 2881 + middle_end/clambda_primitives.cmi 2882 + middle_end/clambda_primitives.cmx : \ 2883 + typing/types.cmx \ 2884 + typing/primitive.cmx \ 2885 + lambda/lambda.cmx \ 2886 + parsing/asttypes.cmi \ 2887 + middle_end/clambda_primitives.cmi 2888 + middle_end/clambda_primitives.cmi : \ 2889 + typing/types.cmi \ 2890 + typing/primitive.cmi \ 2891 + lambda/lambda.cmi \ 2892 + parsing/asttypes.cmi 2893 + middle_end/compilation_unit.cmo : \ 2894 + utils/misc.cmi \ 2895 + middle_end/linkage_name.cmi \ 2896 + utils/int_replace_polymorphic_compare.cmi \ 2897 + utils/identifiable.cmi \ 2898 + typing/ident.cmi \ 2899 + middle_end/compilation_unit.cmi 2900 + middle_end/compilation_unit.cmx : \ 2901 + utils/misc.cmx \ 2902 + middle_end/linkage_name.cmx \ 2903 + utils/int_replace_polymorphic_compare.cmx \ 2904 + utils/identifiable.cmx \ 2905 + typing/ident.cmx \ 2906 + middle_end/compilation_unit.cmi 2907 + middle_end/compilation_unit.cmi : \ 2908 + middle_end/linkage_name.cmi \ 2909 + utils/identifiable.cmi \ 2910 + typing/ident.cmi 2911 + middle_end/compilenv.cmo : \ 2912 + utils/warnings.cmi \ 2913 + middle_end/symbol.cmi \ 2914 + middle_end/flambda/simple_value_approx.cmi \ 2915 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 2916 + typing/path.cmi \ 3782 2917 utils/misc.cmi \ 3783 - bytecomp/lambda.cmi \ 3784 - middle_end/int_replace_polymorphic_compare.cmi \ 3785 - middle_end/flambda.cmi \ 2918 + parsing/location.cmi \ 2919 + utils/load_path.cmi \ 2920 + middle_end/linkage_name.cmi \ 2921 + typing/ident.cmi \ 2922 + middle_end/flambda/export_info.cmi \ 2923 + typing/env.cmi \ 2924 + utils/config.cmi \ 2925 + middle_end/compilation_unit.cmi \ 2926 + file_formats/cmx_format.cmi \ 2927 + middle_end/flambda/base_types/closure_id.cmi \ 2928 + utils/clflags.cmi \ 2929 + middle_end/clambda.cmi \ 2930 + middle_end/compilenv.cmi 2931 + middle_end/compilenv.cmx : \ 2932 + utils/warnings.cmx \ 2933 + middle_end/symbol.cmx \ 2934 + middle_end/flambda/simple_value_approx.cmx \ 2935 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 2936 + typing/path.cmx \ 2937 + utils/misc.cmx \ 2938 + parsing/location.cmx \ 2939 + utils/load_path.cmx \ 2940 + middle_end/linkage_name.cmx \ 2941 + typing/ident.cmx \ 2942 + middle_end/flambda/export_info.cmx \ 2943 + typing/env.cmx \ 2944 + utils/config.cmx \ 2945 + middle_end/compilation_unit.cmx \ 2946 + file_formats/cmx_format.cmi \ 2947 + middle_end/flambda/base_types/closure_id.cmx \ 2948 + utils/clflags.cmx \ 2949 + middle_end/clambda.cmx \ 2950 + middle_end/compilenv.cmi 2951 + middle_end/compilenv.cmi : \ 2952 + middle_end/symbol.cmi \ 2953 + middle_end/flambda/simple_value_approx.cmi \ 2954 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 2955 + middle_end/linkage_name.cmi \ 2956 + typing/ident.cmi \ 2957 + middle_end/flambda/export_info.cmi \ 2958 + middle_end/compilation_unit.cmi \ 2959 + file_formats/cmx_format.cmi \ 2960 + middle_end/flambda/base_types/closure_id.cmi \ 2961 + middle_end/clambda.cmi 2962 + middle_end/convert_primitives.cmo : \ 2963 + lambda/printlambda.cmi \ 2964 + utils/misc.cmi \ 2965 + lambda/lambda.cmi \ 2966 + middle_end/clambda_primitives.cmi \ 2967 + middle_end/convert_primitives.cmi 2968 + middle_end/convert_primitives.cmx : \ 2969 + lambda/printlambda.cmx \ 2970 + utils/misc.cmx \ 2971 + lambda/lambda.cmx \ 2972 + middle_end/clambda_primitives.cmx \ 2973 + middle_end/convert_primitives.cmi 2974 + middle_end/convert_primitives.cmi : \ 2975 + lambda/lambda.cmi \ 2976 + middle_end/clambda_primitives.cmi 2977 + middle_end/internal_variable_names.cmo : \ 2978 + parsing/location.cmi \ 2979 + lambda/lambda.cmi \ 2980 + utils/int_replace_polymorphic_compare.cmi \ 2981 + middle_end/internal_variable_names.cmi 2982 + middle_end/internal_variable_names.cmx : \ 2983 + parsing/location.cmx \ 2984 + lambda/lambda.cmx \ 2985 + utils/int_replace_polymorphic_compare.cmx \ 2986 + middle_end/internal_variable_names.cmi 2987 + middle_end/internal_variable_names.cmi : \ 2988 + parsing/location.cmi \ 2989 + lambda/lambda.cmi 2990 + middle_end/linkage_name.cmo : \ 2991 + utils/int_replace_polymorphic_compare.cmi \ 2992 + utils/identifiable.cmi \ 2993 + middle_end/linkage_name.cmi 2994 + middle_end/linkage_name.cmx : \ 2995 + utils/int_replace_polymorphic_compare.cmx \ 2996 + utils/identifiable.cmx \ 2997 + middle_end/linkage_name.cmi 2998 + middle_end/linkage_name.cmi : \ 2999 + utils/identifiable.cmi 3000 + middle_end/printclambda.cmo : \ 3001 + lambda/printlambda.cmi \ 3002 + middle_end/printclambda_primitives.cmi \ 3003 + lambda/lambda.cmi \ 3004 + typing/ident.cmi \ 3005 + middle_end/clambda.cmi \ 3006 + middle_end/backend_var.cmi \ 3786 3007 parsing/asttypes.cmi \ 3787 - middle_end/allocated_const.cmi \ 3788 - middle_end/alias_analysis.cmi 3789 - middle_end/alias_analysis.cmx : \ 3790 - middle_end/base_types/variable.cmx \ 3791 - middle_end/base_types/var_within_closure.cmx \ 3792 - middle_end/base_types/tag.cmx \ 3793 - middle_end/base_types/symbol.cmx \ 3008 + middle_end/printclambda.cmi 3009 + middle_end/printclambda.cmx : \ 3010 + lambda/printlambda.cmx \ 3011 + middle_end/printclambda_primitives.cmx \ 3012 + lambda/lambda.cmx \ 3013 + typing/ident.cmx \ 3014 + middle_end/clambda.cmx \ 3015 + middle_end/backend_var.cmx \ 3016 + parsing/asttypes.cmi \ 3017 + middle_end/printclambda.cmi 3018 + middle_end/printclambda.cmi : \ 3019 + middle_end/clambda.cmi 3020 + middle_end/printclambda_primitives.cmo : \ 3021 + lambda/printlambda.cmi \ 3022 + typing/primitive.cmi \ 3023 + lambda/lambda.cmi \ 3024 + middle_end/clambda_primitives.cmi \ 3025 + parsing/asttypes.cmi \ 3026 + middle_end/printclambda_primitives.cmi 3027 + middle_end/printclambda_primitives.cmx : \ 3028 + lambda/printlambda.cmx \ 3029 + typing/primitive.cmx \ 3030 + lambda/lambda.cmx \ 3031 + middle_end/clambda_primitives.cmx \ 3032 + parsing/asttypes.cmi \ 3033 + middle_end/printclambda_primitives.cmi 3034 + middle_end/printclambda_primitives.cmi : \ 3035 + middle_end/clambda_primitives.cmi 3036 + middle_end/semantics_of_primitives.cmo : \ 3037 + middle_end/clambda_primitives.cmi \ 3038 + middle_end/semantics_of_primitives.cmi 3039 + middle_end/semantics_of_primitives.cmx : \ 3040 + middle_end/clambda_primitives.cmx \ 3041 + middle_end/semantics_of_primitives.cmi 3042 + middle_end/semantics_of_primitives.cmi : \ 3043 + middle_end/clambda_primitives.cmi 3044 + middle_end/symbol.cmo : \ 3045 + middle_end/variable.cmi \ 3046 + utils/misc.cmi \ 3047 + middle_end/linkage_name.cmi \ 3048 + utils/int_replace_polymorphic_compare.cmi \ 3049 + utils/identifiable.cmi \ 3050 + middle_end/compilation_unit.cmi \ 3051 + middle_end/symbol.cmi 3052 + middle_end/symbol.cmx : \ 3053 + middle_end/variable.cmx \ 3794 3054 utils/misc.cmx \ 3795 - bytecomp/lambda.cmx \ 3796 - middle_end/int_replace_polymorphic_compare.cmx \ 3797 - middle_end/flambda.cmx \ 3055 + middle_end/linkage_name.cmx \ 3056 + utils/int_replace_polymorphic_compare.cmx \ 3057 + utils/identifiable.cmx \ 3058 + middle_end/compilation_unit.cmx \ 3059 + middle_end/symbol.cmi 3060 + middle_end/symbol.cmi : \ 3061 + middle_end/variable.cmi \ 3062 + middle_end/linkage_name.cmi \ 3063 + utils/identifiable.cmi \ 3064 + middle_end/compilation_unit.cmi 3065 + middle_end/variable.cmo : \ 3066 + utils/misc.cmi \ 3067 + middle_end/internal_variable_names.cmi \ 3068 + utils/int_replace_polymorphic_compare.cmi \ 3069 + utils/identifiable.cmi \ 3070 + typing/ident.cmi \ 3071 + middle_end/compilation_unit.cmi \ 3072 + middle_end/variable.cmi 3073 + middle_end/variable.cmx : \ 3074 + utils/misc.cmx \ 3075 + middle_end/internal_variable_names.cmx \ 3076 + utils/int_replace_polymorphic_compare.cmx \ 3077 + utils/identifiable.cmx \ 3078 + typing/ident.cmx \ 3079 + middle_end/compilation_unit.cmx \ 3080 + middle_end/variable.cmi 3081 + middle_end/variable.cmi : \ 3082 + middle_end/internal_variable_names.cmi \ 3083 + utils/identifiable.cmi \ 3084 + typing/ident.cmi \ 3085 + middle_end/compilation_unit.cmi 3086 + lambda/debuginfo.cmo : \ 3087 + parsing/location.cmi \ 3088 + utils/int_replace_polymorphic_compare.cmi \ 3089 + lambda/debuginfo.cmi 3090 + lambda/debuginfo.cmx : \ 3091 + parsing/location.cmx \ 3092 + utils/int_replace_polymorphic_compare.cmx \ 3093 + lambda/debuginfo.cmi 3094 + lambda/debuginfo.cmi : \ 3095 + parsing/location.cmi 3096 + lambda/lambda.cmo : \ 3097 + typing/types.cmi \ 3098 + typing/primitive.cmi \ 3099 + typing/path.cmi \ 3100 + utils/misc.cmi \ 3101 + parsing/longident.cmi \ 3102 + parsing/location.cmi \ 3103 + typing/ident.cmi \ 3104 + typing/env.cmi \ 3798 3105 parsing/asttypes.cmi \ 3799 - middle_end/allocated_const.cmx \ 3800 - middle_end/alias_analysis.cmi 3801 - middle_end/alias_analysis.cmi : \ 3802 - middle_end/base_types/variable.cmi \ 3803 - middle_end/base_types/tag.cmi \ 3804 - middle_end/base_types/symbol.cmi \ 3805 - bytecomp/lambda.cmi \ 3806 - middle_end/flambda.cmi \ 3106 + lambda/lambda.cmi 3107 + lambda/lambda.cmx : \ 3108 + typing/types.cmx \ 3109 + typing/primitive.cmx \ 3110 + typing/path.cmx \ 3111 + utils/misc.cmx \ 3112 + parsing/longident.cmx \ 3113 + parsing/location.cmx \ 3114 + typing/ident.cmx \ 3115 + typing/env.cmx \ 3116 + parsing/asttypes.cmi \ 3117 + lambda/lambda.cmi 3118 + lambda/lambda.cmi : \ 3119 + typing/types.cmi \ 3120 + typing/primitive.cmi \ 3121 + typing/path.cmi \ 3122 + parsing/location.cmi \ 3123 + typing/ident.cmi \ 3124 + typing/env.cmi \ 3125 + parsing/asttypes.cmi 3126 + lambda/matching.cmo : \ 3127 + typing/types.cmi \ 3128 + typing/typeopt.cmi \ 3129 + typing/typedtree.cmi \ 3130 + lambda/switch.cmi \ 3131 + typing/printpat.cmi \ 3132 + lambda/printlambda.cmi \ 3133 + typing/primitive.cmi \ 3134 + typing/predef.cmi \ 3135 + typing/parmatch.cmi \ 3136 + utils/misc.cmi \ 3137 + parsing/longident.cmi \ 3138 + parsing/location.cmi \ 3139 + lambda/lambda.cmi \ 3140 + typing/ident.cmi \ 3141 + typing/env.cmi \ 3142 + utils/clflags.cmi \ 3143 + typing/btype.cmi \ 3144 + parsing/asttypes.cmi \ 3145 + lambda/matching.cmi 3146 + lambda/matching.cmx : \ 3147 + typing/types.cmx \ 3148 + typing/typeopt.cmx \ 3149 + typing/typedtree.cmx \ 3150 + lambda/switch.cmx \ 3151 + typing/printpat.cmx \ 3152 + lambda/printlambda.cmx \ 3153 + typing/primitive.cmx \ 3154 + typing/predef.cmx \ 3155 + typing/parmatch.cmx \ 3156 + utils/misc.cmx \ 3157 + parsing/longident.cmx \ 3158 + parsing/location.cmx \ 3159 + lambda/lambda.cmx \ 3160 + typing/ident.cmx \ 3161 + typing/env.cmx \ 3162 + utils/clflags.cmx \ 3163 + typing/btype.cmx \ 3164 + parsing/asttypes.cmi \ 3165 + lambda/matching.cmi 3166 + lambda/matching.cmi : \ 3167 + typing/typedtree.cmi \ 3168 + parsing/location.cmi \ 3169 + lambda/lambda.cmi \ 3170 + typing/ident.cmi 3171 + lambda/printlambda.cmo : \ 3172 + typing/types.cmi \ 3173 + typing/printtyp.cmi \ 3174 + typing/primitive.cmi \ 3175 + parsing/location.cmi \ 3176 + lambda/lambda.cmi \ 3177 + typing/ident.cmi \ 3178 + parsing/asttypes.cmi \ 3179 + lambda/printlambda.cmi 3180 + lambda/printlambda.cmx : \ 3181 + typing/types.cmx \ 3182 + typing/printtyp.cmx \ 3183 + typing/primitive.cmx \ 3184 + parsing/location.cmx \ 3185 + lambda/lambda.cmx \ 3186 + typing/ident.cmx \ 3187 + parsing/asttypes.cmi \ 3188 + lambda/printlambda.cmi 3189 + lambda/printlambda.cmi : \ 3190 + typing/types.cmi \ 3191 + lambda/lambda.cmi 3192 + lambda/runtimedef.cmo : \ 3193 + lambda/runtimedef.cmi 3194 + lambda/runtimedef.cmx : \ 3195 + lambda/runtimedef.cmi 3196 + lambda/runtimedef.cmi : 3197 + lambda/simplif.cmo : \ 3198 + utils/warnings.cmi \ 3199 + typing/stypes.cmi \ 3200 + typing/primitive.cmi \ 3201 + utils/misc.cmi \ 3202 + parsing/location.cmi \ 3203 + lambda/lambda.cmi \ 3204 + typing/ident.cmi \ 3205 + utils/clflags.cmi \ 3206 + parsing/asttypes.cmi \ 3207 + typing/annot.cmi \ 3208 + lambda/simplif.cmi 3209 + lambda/simplif.cmx : \ 3210 + utils/warnings.cmx \ 3211 + typing/stypes.cmx \ 3212 + typing/primitive.cmx \ 3213 + utils/misc.cmx \ 3214 + parsing/location.cmx \ 3215 + lambda/lambda.cmx \ 3216 + typing/ident.cmx \ 3217 + utils/clflags.cmx \ 3218 + parsing/asttypes.cmi \ 3219 + typing/annot.cmi \ 3220 + lambda/simplif.cmi 3221 + lambda/simplif.cmi : \ 3222 + parsing/location.cmi \ 3223 + lambda/lambda.cmi \ 3224 + typing/ident.cmi 3225 + lambda/switch.cmo : \ 3226 + parsing/location.cmi \ 3227 + lambda/switch.cmi 3228 + lambda/switch.cmx : \ 3229 + parsing/location.cmx \ 3230 + lambda/switch.cmi 3231 + lambda/switch.cmi : \ 3232 + parsing/location.cmi 3233 + lambda/translattribute.cmo : \ 3234 + utils/warnings.cmi \ 3235 + typing/typedtree.cmi \ 3236 + parsing/parsetree.cmi \ 3237 + utils/misc.cmi \ 3238 + parsing/longident.cmi \ 3239 + parsing/location.cmi \ 3240 + lambda/lambda.cmi \ 3241 + utils/config.cmi \ 3242 + lambda/translattribute.cmi 3243 + lambda/translattribute.cmx : \ 3244 + utils/warnings.cmx \ 3245 + typing/typedtree.cmx \ 3246 + parsing/parsetree.cmi \ 3247 + utils/misc.cmx \ 3248 + parsing/longident.cmx \ 3249 + parsing/location.cmx \ 3250 + lambda/lambda.cmx \ 3251 + utils/config.cmx \ 3252 + lambda/translattribute.cmi 3253 + lambda/translattribute.cmi : \ 3254 + typing/typedtree.cmi \ 3255 + parsing/parsetree.cmi \ 3256 + parsing/location.cmi \ 3257 + lambda/lambda.cmi 3258 + lambda/translclass.cmo : \ 3259 + typing/types.cmi \ 3260 + typing/typeopt.cmi \ 3261 + typing/typedtree.cmi \ 3262 + lambda/translobj.cmi \ 3263 + lambda/translcore.cmi \ 3264 + typing/path.cmi \ 3265 + lambda/matching.cmi \ 3266 + parsing/location.cmi \ 3267 + lambda/lambda.cmi \ 3268 + typing/ident.cmi \ 3269 + typing/env.cmi \ 3270 + utils/clflags.cmi \ 3271 + typing/btype.cmi \ 3272 + parsing/asttypes.cmi \ 3273 + lambda/translclass.cmi 3274 + lambda/translclass.cmx : \ 3275 + typing/types.cmx \ 3276 + typing/typeopt.cmx \ 3277 + typing/typedtree.cmx \ 3278 + lambda/translobj.cmx \ 3279 + lambda/translcore.cmx \ 3280 + typing/path.cmx \ 3281 + lambda/matching.cmx \ 3282 + parsing/location.cmx \ 3283 + lambda/lambda.cmx \ 3284 + typing/ident.cmx \ 3285 + typing/env.cmx \ 3286 + utils/clflags.cmx \ 3287 + typing/btype.cmx \ 3288 + parsing/asttypes.cmi \ 3289 + lambda/translclass.cmi 3290 + lambda/translclass.cmi : \ 3291 + typing/typedtree.cmi \ 3292 + parsing/location.cmi \ 3293 + lambda/lambda.cmi \ 3294 + typing/ident.cmi \ 3295 + parsing/asttypes.cmi 3296 + lambda/translcore.cmo : \ 3297 + typing/types.cmi \ 3298 + typing/typeopt.cmi \ 3299 + typing/typedtree.cmi \ 3300 + typing/typecore.cmi \ 3301 + lambda/translprim.cmi \ 3302 + lambda/translobj.cmi \ 3303 + lambda/translattribute.cmi \ 3304 + typing/printtyp.cmi \ 3305 + typing/primitive.cmi \ 3306 + typing/predef.cmi \ 3307 + typing/path.cmi \ 3308 + parsing/parsetree.cmi \ 3309 + typing/parmatch.cmi \ 3310 + utils/misc.cmi \ 3311 + lambda/matching.cmi \ 3312 + parsing/longident.cmi \ 3313 + parsing/location.cmi \ 3314 + lambda/lambda.cmi \ 3315 + typing/ident.cmi \ 3316 + typing/env.cmi \ 3317 + utils/config.cmi \ 3318 + utils/clflags.cmi \ 3319 + typing/btype.cmi \ 3807 3320 parsing/asttypes.cmi \ 3808 - middle_end/allocated_const.cmi 3809 - middle_end/allocated_const.cmo : \ 3810 - middle_end/int_replace_polymorphic_compare.cmi \ 3811 - middle_end/allocated_const.cmi 3812 - middle_end/allocated_const.cmx : \ 3813 - middle_end/int_replace_polymorphic_compare.cmx \ 3814 - middle_end/allocated_const.cmi 3815 - middle_end/allocated_const.cmi : 3816 - middle_end/augment_specialised_args.cmo : \ 3817 - middle_end/base_types/variable.cmi \ 3818 - middle_end/projection.cmi \ 3819 - middle_end/pass_wrapper.cmi \ 3820 - middle_end/parameter.cmi \ 3321 + lambda/translcore.cmi 3322 + lambda/translcore.cmx : \ 3323 + typing/types.cmx \ 3324 + typing/typeopt.cmx \ 3325 + typing/typedtree.cmx \ 3326 + typing/typecore.cmx \ 3327 + lambda/translprim.cmx \ 3328 + lambda/translobj.cmx \ 3329 + lambda/translattribute.cmx \ 3330 + typing/printtyp.cmx \ 3331 + typing/primitive.cmx \ 3332 + typing/predef.cmx \ 3333 + typing/path.cmx \ 3334 + parsing/parsetree.cmi \ 3335 + typing/parmatch.cmx \ 3336 + utils/misc.cmx \ 3337 + lambda/matching.cmx \ 3338 + parsing/longident.cmx \ 3339 + parsing/location.cmx \ 3340 + lambda/lambda.cmx \ 3341 + typing/ident.cmx \ 3342 + typing/env.cmx \ 3343 + utils/config.cmx \ 3344 + utils/clflags.cmx \ 3345 + typing/btype.cmx \ 3346 + parsing/asttypes.cmi \ 3347 + lambda/translcore.cmi 3348 + lambda/translcore.cmi : \ 3349 + typing/typedtree.cmi \ 3350 + typing/path.cmi \ 3351 + parsing/location.cmi \ 3352 + lambda/lambda.cmi \ 3353 + typing/ident.cmi \ 3354 + typing/env.cmi \ 3355 + parsing/asttypes.cmi 3356 + lambda/translmod.cmo : \ 3357 + typing/types.cmi \ 3358 + typing/typedtree.cmi \ 3359 + lambda/translprim.cmi \ 3360 + lambda/translobj.cmi \ 3361 + lambda/translcore.cmi \ 3362 + lambda/translclass.cmi \ 3363 + lambda/translattribute.cmi \ 3364 + typing/primitive.cmi \ 3365 + typing/predef.cmi \ 3366 + typing/path.cmi \ 3367 + typing/mtype.cmi \ 3368 + utils/misc.cmi \ 3369 + parsing/location.cmi \ 3370 + lambda/lambda.cmi \ 3371 + typing/ident.cmi \ 3372 + typing/env.cmi \ 3373 + typing/ctype.cmi \ 3374 + utils/clflags.cmi \ 3375 + parsing/asttypes.cmi \ 3376 + lambda/translmod.cmi 3377 + lambda/translmod.cmx : \ 3378 + typing/types.cmx \ 3379 + typing/typedtree.cmx \ 3380 + lambda/translprim.cmx \ 3381 + lambda/translobj.cmx \ 3382 + lambda/translcore.cmx \ 3383 + lambda/translclass.cmx \ 3384 + lambda/translattribute.cmx \ 3385 + typing/primitive.cmx \ 3386 + typing/predef.cmx \ 3387 + typing/path.cmx \ 3388 + typing/mtype.cmx \ 3389 + utils/misc.cmx \ 3390 + parsing/location.cmx \ 3391 + lambda/lambda.cmx \ 3392 + typing/ident.cmx \ 3393 + typing/env.cmx \ 3394 + typing/ctype.cmx \ 3395 + utils/clflags.cmx \ 3396 + parsing/asttypes.cmi \ 3397 + lambda/translmod.cmi 3398 + lambda/translmod.cmi : \ 3399 + typing/typedtree.cmi \ 3400 + typing/primitive.cmi \ 3401 + parsing/location.cmi \ 3402 + lambda/lambda.cmi \ 3403 + typing/ident.cmi 3404 + lambda/translobj.cmo : \ 3405 + typing/primitive.cmi \ 3406 + utils/misc.cmi \ 3407 + parsing/location.cmi \ 3408 + lambda/lambda.cmi \ 3409 + typing/ident.cmi \ 3410 + typing/env.cmi \ 3411 + utils/config.cmi \ 3412 + utils/clflags.cmi \ 3413 + typing/btype.cmi \ 3414 + parsing/asttypes.cmi \ 3415 + lambda/translobj.cmi 3416 + lambda/translobj.cmx : \ 3417 + typing/primitive.cmx \ 3418 + utils/misc.cmx \ 3419 + parsing/location.cmx \ 3420 + lambda/lambda.cmx \ 3421 + typing/ident.cmx \ 3422 + typing/env.cmx \ 3423 + utils/config.cmx \ 3424 + utils/clflags.cmx \ 3425 + typing/btype.cmx \ 3426 + parsing/asttypes.cmi \ 3427 + lambda/translobj.cmi 3428 + lambda/translobj.cmi : \ 3429 + lambda/lambda.cmi \ 3430 + typing/ident.cmi \ 3431 + typing/env.cmi 3432 + lambda/translprim.cmo : \ 3433 + typing/types.cmi \ 3434 + typing/typeopt.cmi \ 3435 + typing/typedtree.cmi \ 3436 + typing/primitive.cmi \ 3437 + typing/predef.cmi \ 3438 + typing/path.cmi \ 3439 + utils/misc.cmi \ 3440 + lambda/matching.cmi \ 3441 + parsing/location.cmi \ 3442 + lambda/lambda.cmi \ 3443 + typing/ident.cmi \ 3444 + typing/env.cmi \ 3445 + utils/config.cmi \ 3446 + utils/clflags.cmi \ 3447 + parsing/asttypes.cmi \ 3448 + lambda/translprim.cmi 3449 + lambda/translprim.cmx : \ 3450 + typing/types.cmx \ 3451 + typing/typeopt.cmx \ 3452 + typing/typedtree.cmx \ 3453 + typing/primitive.cmx \ 3454 + typing/predef.cmx \ 3455 + typing/path.cmx \ 3456 + utils/misc.cmx \ 3457 + lambda/matching.cmx \ 3458 + parsing/location.cmx \ 3459 + lambda/lambda.cmx \ 3460 + typing/ident.cmx \ 3461 + typing/env.cmx \ 3462 + utils/config.cmx \ 3463 + utils/clflags.cmx \ 3464 + parsing/asttypes.cmi \ 3465 + lambda/translprim.cmi 3466 + lambda/translprim.cmi : \ 3467 + typing/types.cmi \ 3468 + typing/typedtree.cmi \ 3469 + typing/primitive.cmi \ 3470 + typing/path.cmi \ 3471 + parsing/location.cmi \ 3472 + lambda/lambda.cmi \ 3473 + typing/ident.cmi \ 3474 + typing/env.cmi 3475 + file_formats/cmi_format.cmo : \ 3476 + typing/types.cmi \ 3477 + utils/misc.cmi \ 3478 + parsing/location.cmi \ 3479 + utils/config.cmi \ 3480 + file_formats/cmi_format.cmi 3481 + file_formats/cmi_format.cmx : \ 3482 + typing/types.cmx \ 3483 + utils/misc.cmx \ 3484 + parsing/location.cmx \ 3485 + utils/config.cmx \ 3486 + file_formats/cmi_format.cmi 3487 + file_formats/cmi_format.cmi : \ 3488 + typing/types.cmi \ 3489 + utils/misc.cmi 3490 + file_formats/cmo_format.cmi : \ 3491 + utils/misc.cmi \ 3492 + lambda/lambda.cmi \ 3493 + typing/ident.cmi 3494 + file_formats/cmt_format.cmo : \ 3495 + typing/types.cmi \ 3496 + typing/typedtree.cmi \ 3497 + typing/tast_mapper.cmi \ 3498 + utils/misc.cmi \ 3499 + parsing/location.cmi \ 3500 + utils/load_path.cmi \ 3501 + parsing/lexer.cmi \ 3502 + typing/env.cmi \ 3503 + utils/config.cmi \ 3504 + file_formats/cmi_format.cmi \ 3505 + utils/clflags.cmi \ 3506 + file_formats/cmt_format.cmi 3507 + file_formats/cmt_format.cmx : \ 3508 + typing/types.cmx \ 3509 + typing/typedtree.cmx \ 3510 + typing/tast_mapper.cmx \ 3511 + utils/misc.cmx \ 3512 + parsing/location.cmx \ 3513 + utils/load_path.cmx \ 3514 + parsing/lexer.cmx \ 3515 + typing/env.cmx \ 3516 + utils/config.cmx \ 3517 + file_formats/cmi_format.cmx \ 3518 + utils/clflags.cmx \ 3519 + file_formats/cmt_format.cmi 3520 + file_formats/cmt_format.cmi : \ 3521 + typing/types.cmi \ 3522 + typing/typedtree.cmi \ 3523 + utils/misc.cmi \ 3524 + parsing/location.cmi \ 3525 + typing/env.cmi \ 3526 + file_formats/cmi_format.cmi 3527 + file_formats/cmx_format.cmi : \ 3528 + utils/misc.cmi \ 3529 + middle_end/flambda/export_info.cmi \ 3530 + middle_end/clambda.cmi 3531 + file_formats/cmxs_format.cmi : \ 3532 + utils/misc.cmi 3533 + middle_end/closure/closure.cmo : \ 3534 + utils/warnings.cmi \ 3535 + lambda/switch.cmi \ 3536 + lambda/simplif.cmi \ 3537 + middle_end/semantics_of_primitives.cmi \ 3538 + typing/primitive.cmi \ 3539 + utils/numbers.cmi \ 3540 + utils/misc.cmi \ 3541 + parsing/location.cmi \ 3542 + lambda/lambda.cmi \ 3543 + typing/ident.cmi \ 3544 + typing/env.cmi \ 3545 + lambda/debuginfo.cmi \ 3546 + middle_end/convert_primitives.cmi \ 3547 + utils/config.cmi \ 3548 + middle_end/compilenv.cmi \ 3549 + utils/clflags.cmi \ 3550 + middle_end/clambda_primitives.cmi \ 3551 + middle_end/clambda.cmi \ 3552 + middle_end/backend_var.cmi \ 3553 + middle_end/backend_intf.cmi \ 3554 + parsing/asttypes.cmi \ 3555 + middle_end/closure/closure.cmi 3556 + middle_end/closure/closure.cmx : \ 3557 + utils/warnings.cmx \ 3558 + lambda/switch.cmx \ 3559 + lambda/simplif.cmx \ 3560 + middle_end/semantics_of_primitives.cmx \ 3561 + typing/primitive.cmx \ 3562 + utils/numbers.cmx \ 3563 + utils/misc.cmx \ 3564 + parsing/location.cmx \ 3565 + lambda/lambda.cmx \ 3566 + typing/ident.cmx \ 3567 + typing/env.cmx \ 3568 + lambda/debuginfo.cmx \ 3569 + middle_end/convert_primitives.cmx \ 3570 + utils/config.cmx \ 3571 + middle_end/compilenv.cmx \ 3572 + utils/clflags.cmx \ 3573 + middle_end/clambda_primitives.cmx \ 3574 + middle_end/clambda.cmx \ 3575 + middle_end/backend_var.cmx \ 3576 + middle_end/backend_intf.cmi \ 3577 + parsing/asttypes.cmi \ 3578 + middle_end/closure/closure.cmi 3579 + middle_end/closure/closure.cmi : \ 3580 + lambda/lambda.cmi \ 3581 + middle_end/clambda.cmi \ 3582 + middle_end/backend_intf.cmi 3583 + middle_end/flambda/alias_analysis.cmo : \ 3584 + middle_end/variable.cmi \ 3585 + middle_end/flambda/base_types/var_within_closure.cmi \ 3586 + middle_end/flambda/base_types/tag.cmi \ 3587 + middle_end/symbol.cmi \ 3588 + utils/misc.cmi \ 3589 + lambda/lambda.cmi \ 3590 + utils/int_replace_polymorphic_compare.cmi \ 3591 + middle_end/flambda/flambda.cmi \ 3592 + parsing/asttypes.cmi \ 3593 + middle_end/flambda/allocated_const.cmi \ 3594 + middle_end/flambda/alias_analysis.cmi 3595 + middle_end/flambda/alias_analysis.cmx : \ 3596 + middle_end/variable.cmx \ 3597 + middle_end/flambda/base_types/var_within_closure.cmx \ 3598 + middle_end/flambda/base_types/tag.cmx \ 3599 + middle_end/symbol.cmx \ 3600 + utils/misc.cmx \ 3601 + lambda/lambda.cmx \ 3602 + utils/int_replace_polymorphic_compare.cmx \ 3603 + middle_end/flambda/flambda.cmx \ 3604 + parsing/asttypes.cmi \ 3605 + middle_end/flambda/allocated_const.cmx \ 3606 + middle_end/flambda/alias_analysis.cmi 3607 + middle_end/flambda/alias_analysis.cmi : \ 3608 + middle_end/variable.cmi \ 3609 + middle_end/flambda/base_types/tag.cmi \ 3610 + middle_end/symbol.cmi \ 3611 + lambda/lambda.cmi \ 3612 + middle_end/flambda/flambda.cmi \ 3613 + parsing/asttypes.cmi \ 3614 + middle_end/flambda/allocated_const.cmi 3615 + middle_end/flambda/allocated_const.cmo : \ 3616 + utils/int_replace_polymorphic_compare.cmi \ 3617 + middle_end/flambda/allocated_const.cmi 3618 + middle_end/flambda/allocated_const.cmx : \ 3619 + utils/int_replace_polymorphic_compare.cmx \ 3620 + middle_end/flambda/allocated_const.cmi 3621 + middle_end/flambda/allocated_const.cmi : 3622 + middle_end/flambda/augment_specialised_args.cmo : \ 3623 + middle_end/variable.cmi \ 3624 + middle_end/flambda/projection.cmi \ 3625 + middle_end/flambda/pass_wrapper.cmi \ 3626 + middle_end/flambda/parameter.cmi \ 3821 3627 utils/misc.cmi \ 3822 3628 middle_end/internal_variable_names.cmi \ 3823 - middle_end/int_replace_polymorphic_compare.cmi \ 3824 - middle_end/inlining_cost.cmi \ 3825 - middle_end/inline_and_simplify_aux.cmi \ 3629 + utils/int_replace_polymorphic_compare.cmi \ 3630 + middle_end/flambda/inlining_cost.cmi \ 3631 + middle_end/flambda/inline_and_simplify_aux.cmi \ 3826 3632 utils/identifiable.cmi \ 3827 - middle_end/flambda_utils.cmi \ 3828 - middle_end/flambda.cmi \ 3829 - middle_end/debuginfo.cmi \ 3830 - middle_end/base_types/closure_origin.cmi \ 3831 - middle_end/base_types/closure_id.cmi \ 3633 + middle_end/flambda/flambda_utils.cmi \ 3634 + middle_end/flambda/flambda.cmi \ 3635 + lambda/debuginfo.cmi \ 3636 + middle_end/flambda/base_types/closure_origin.cmi \ 3637 + middle_end/flambda/base_types/closure_id.cmi \ 3832 3638 utils/clflags.cmi \ 3833 3639 middle_end/backend_intf.cmi \ 3834 - middle_end/augment_specialised_args.cmi 3835 - middle_end/augment_specialised_args.cmx : \ 3836 - middle_end/base_types/variable.cmx \ 3837 - middle_end/projection.cmx \ 3838 - middle_end/pass_wrapper.cmx \ 3839 - middle_end/parameter.cmx \ 3640 + middle_end/flambda/augment_specialised_args.cmi 3641 + middle_end/flambda/augment_specialised_args.cmx : \ 3642 + middle_end/variable.cmx \ 3643 + middle_end/flambda/projection.cmx \ 3644 + middle_end/flambda/pass_wrapper.cmx \ 3645 + middle_end/flambda/parameter.cmx \ 3840 3646 utils/misc.cmx \ 3841 3647 middle_end/internal_variable_names.cmx \ 3842 - middle_end/int_replace_polymorphic_compare.cmx \ 3843 - middle_end/inlining_cost.cmx \ 3844 - middle_end/inline_and_simplify_aux.cmx \ 3648 + utils/int_replace_polymorphic_compare.cmx \ 3649 + middle_end/flambda/inlining_cost.cmx \ 3650 + middle_end/flambda/inline_and_simplify_aux.cmx \ 3845 3651 utils/identifiable.cmx \ 3846 - middle_end/flambda_utils.cmx \ 3847 - middle_end/flambda.cmx \ 3848 - middle_end/debuginfo.cmx \ 3849 - middle_end/base_types/closure_origin.cmx \ 3850 - middle_end/base_types/closure_id.cmx \ 3652 + middle_end/flambda/flambda_utils.cmx \ 3653 + middle_end/flambda/flambda.cmx \ 3654 + lambda/debuginfo.cmx \ 3655 + middle_end/flambda/base_types/closure_origin.cmx \ 3656 + middle_end/flambda/base_types/closure_id.cmx \ 3851 3657 utils/clflags.cmx \ 3852 3658 middle_end/backend_intf.cmi \ 3853 - middle_end/augment_specialised_args.cmi 3854 - middle_end/augment_specialised_args.cmi : \ 3855 - middle_end/base_types/variable.cmi \ 3856 - middle_end/projection.cmi \ 3857 - middle_end/inlining_cost.cmi \ 3858 - middle_end/inline_and_simplify_aux.cmi \ 3859 - middle_end/flambda.cmi 3860 - middle_end/backend_intf.cmi : \ 3861 - middle_end/base_types/symbol.cmi \ 3862 - middle_end/simple_value_approx.cmi \ 3863 - typing/ident.cmi \ 3864 - middle_end/base_types/closure_id.cmi 3865 - middle_end/closure_conversion.cmo : \ 3866 - middle_end/base_types/variable.cmi \ 3867 - middle_end/base_types/tag.cmi \ 3868 - middle_end/base_types/symbol.cmi \ 3869 - middle_end/base_types/static_exception.cmi \ 3870 - bytecomp/simplif.cmi \ 3659 + middle_end/flambda/augment_specialised_args.cmi 3660 + middle_end/flambda/augment_specialised_args.cmi : \ 3661 + middle_end/variable.cmi \ 3662 + middle_end/flambda/projection.cmi \ 3663 + middle_end/flambda/inlining_cost.cmi \ 3664 + middle_end/flambda/inline_and_simplify_aux.cmi \ 3665 + middle_end/flambda/flambda.cmi 3666 + middle_end/flambda/build_export_info.cmo : \ 3667 + middle_end/variable.cmi \ 3668 + middle_end/flambda/base_types/var_within_closure.cmi \ 3669 + middle_end/flambda/traverse_for_exported_symbols.cmi \ 3670 + middle_end/flambda/base_types/tag.cmi \ 3671 + middle_end/symbol.cmi \ 3672 + middle_end/flambda/simple_value_approx.cmi \ 3673 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 3674 + utils/misc.cmi \ 3675 + middle_end/flambda/invariant_params.cmi \ 3676 + middle_end/flambda/inline_and_simplify_aux.cmi \ 3677 + middle_end/flambda/flambda_utils.cmi \ 3678 + middle_end/flambda/flambda.cmi \ 3679 + middle_end/flambda/find_recursive_functions.cmi \ 3680 + middle_end/flambda/export_info.cmi \ 3681 + middle_end/flambda/base_types/export_id.cmi \ 3682 + middle_end/compilenv.cmi \ 3683 + middle_end/compilation_unit.cmi \ 3684 + middle_end/flambda/base_types/closure_id.cmi \ 3685 + utils/clflags.cmi \ 3686 + middle_end/backend_intf.cmi \ 3687 + middle_end/flambda/allocated_const.cmi \ 3688 + middle_end/flambda/build_export_info.cmi 3689 + middle_end/flambda/build_export_info.cmx : \ 3690 + middle_end/variable.cmx \ 3691 + middle_end/flambda/base_types/var_within_closure.cmx \ 3692 + middle_end/flambda/traverse_for_exported_symbols.cmx \ 3693 + middle_end/flambda/base_types/tag.cmx \ 3694 + middle_end/symbol.cmx \ 3695 + middle_end/flambda/simple_value_approx.cmx \ 3696 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 3697 + utils/misc.cmx \ 3698 + middle_end/flambda/invariant_params.cmx \ 3699 + middle_end/flambda/inline_and_simplify_aux.cmx \ 3700 + middle_end/flambda/flambda_utils.cmx \ 3701 + middle_end/flambda/flambda.cmx \ 3702 + middle_end/flambda/find_recursive_functions.cmx \ 3703 + middle_end/flambda/export_info.cmx \ 3704 + middle_end/flambda/base_types/export_id.cmx \ 3705 + middle_end/compilenv.cmx \ 3706 + middle_end/compilation_unit.cmx \ 3707 + middle_end/flambda/base_types/closure_id.cmx \ 3708 + utils/clflags.cmx \ 3709 + middle_end/backend_intf.cmi \ 3710 + middle_end/flambda/allocated_const.cmx \ 3711 + middle_end/flambda/build_export_info.cmi 3712 + middle_end/flambda/build_export_info.cmi : \ 3713 + middle_end/flambda/flambda.cmi \ 3714 + middle_end/flambda/export_info.cmi \ 3715 + middle_end/backend_intf.cmi 3716 + middle_end/flambda/closure_conversion.cmo : \ 3717 + middle_end/variable.cmi \ 3718 + middle_end/flambda/base_types/tag.cmi \ 3719 + middle_end/symbol.cmi \ 3720 + middle_end/flambda/base_types/static_exception.cmi \ 3721 + lambda/simplif.cmi \ 3871 3722 typing/predef.cmi \ 3872 - middle_end/parameter.cmi \ 3723 + middle_end/flambda/parameter.cmi \ 3873 3724 utils/numbers.cmi \ 3874 - middle_end/base_types/mutable_variable.cmi \ 3725 + middle_end/flambda/base_types/mutable_variable.cmi \ 3875 3726 utils/misc.cmi \ 3876 - middle_end/lift_code.cmi \ 3877 - bytecomp/lambda.cmi \ 3727 + middle_end/flambda/lift_code.cmi \ 3728 + lambda/lambda.cmi \ 3878 3729 middle_end/internal_variable_names.cmi \ 3879 - middle_end/int_replace_polymorphic_compare.cmi \ 3730 + utils/int_replace_polymorphic_compare.cmi \ 3880 3731 typing/ident.cmi \ 3881 - middle_end/flambda_utils.cmi \ 3882 - middle_end/flambda.cmi \ 3883 - middle_end/debuginfo.cmi \ 3884 - asmcomp/convert_primitives.cmi \ 3732 + middle_end/flambda/flambda_utils.cmi \ 3733 + middle_end/flambda/flambda.cmi \ 3734 + lambda/debuginfo.cmi \ 3735 + middle_end/convert_primitives.cmi \ 3885 3736 utils/config.cmi \ 3886 - middle_end/base_types/compilation_unit.cmi \ 3887 - middle_end/base_types/closure_origin.cmi \ 3888 - middle_end/base_types/closure_id.cmi \ 3889 - middle_end/closure_conversion_aux.cmi \ 3737 + middle_end/compilation_unit.cmi \ 3738 + middle_end/flambda/base_types/closure_origin.cmi \ 3739 + middle_end/flambda/base_types/closure_id.cmi \ 3740 + middle_end/flambda/closure_conversion_aux.cmi \ 3890 3741 utils/clflags.cmi \ 3891 - asmcomp/clambda_primitives.cmi \ 3742 + middle_end/clambda_primitives.cmi \ 3892 3743 middle_end/backend_intf.cmi \ 3893 - middle_end/closure_conversion.cmi 3894 - middle_end/closure_conversion.cmx : \ 3895 - middle_end/base_types/variable.cmx \ 3896 - middle_end/base_types/tag.cmx \ 3897 - middle_end/base_types/symbol.cmx \ 3898 - middle_end/base_types/static_exception.cmx \ 3899 - bytecomp/simplif.cmx \ 3744 + middle_end/flambda/closure_conversion.cmi 3745 + middle_end/flambda/closure_conversion.cmx : \ 3746 + middle_end/variable.cmx \ 3747 + middle_end/flambda/base_types/tag.cmx \ 3748 + middle_end/symbol.cmx \ 3749 + middle_end/flambda/base_types/static_exception.cmx \ 3750 + lambda/simplif.cmx \ 3900 3751 typing/predef.cmx \ 3901 - middle_end/parameter.cmx \ 3752 + middle_end/flambda/parameter.cmx \ 3902 3753 utils/numbers.cmx \ 3903 - middle_end/base_types/mutable_variable.cmx \ 3754 + middle_end/flambda/base_types/mutable_variable.cmx \ 3904 3755 utils/misc.cmx \ 3905 - middle_end/lift_code.cmx \ 3906 - bytecomp/lambda.cmx \ 3756 + middle_end/flambda/lift_code.cmx \ 3757 + lambda/lambda.cmx \ 3907 3758 middle_end/internal_variable_names.cmx \ 3908 - middle_end/int_replace_polymorphic_compare.cmx \ 3759 + utils/int_replace_polymorphic_compare.cmx \ 3909 3760 typing/ident.cmx \ 3910 - middle_end/flambda_utils.cmx \ 3911 - middle_end/flambda.cmx \ 3912 - middle_end/debuginfo.cmx \ 3913 - asmcomp/convert_primitives.cmx \ 3761 + middle_end/flambda/flambda_utils.cmx \ 3762 + middle_end/flambda/flambda.cmx \ 3763 + lambda/debuginfo.cmx \ 3764 + middle_end/convert_primitives.cmx \ 3914 3765 utils/config.cmx \ 3915 - middle_end/base_types/compilation_unit.cmx \ 3916 - middle_end/base_types/closure_origin.cmx \ 3917 - middle_end/base_types/closure_id.cmx \ 3918 - middle_end/closure_conversion_aux.cmx \ 3766 + middle_end/compilation_unit.cmx \ 3767 + middle_end/flambda/base_types/closure_origin.cmx \ 3768 + middle_end/flambda/base_types/closure_id.cmx \ 3769 + middle_end/flambda/closure_conversion_aux.cmx \ 3919 3770 utils/clflags.cmx \ 3920 - asmcomp/clambda_primitives.cmx \ 3771 + middle_end/clambda_primitives.cmx \ 3921 3772 middle_end/backend_intf.cmi \ 3922 - middle_end/closure_conversion.cmi 3923 - middle_end/closure_conversion.cmi : \ 3924 - bytecomp/lambda.cmi \ 3773 + middle_end/flambda/closure_conversion.cmi 3774 + middle_end/flambda/closure_conversion.cmi : \ 3775 + lambda/lambda.cmi \ 3925 3776 typing/ident.cmi \ 3926 - middle_end/flambda.cmi \ 3777 + middle_end/flambda/flambda.cmi \ 3927 3778 middle_end/backend_intf.cmi 3928 - middle_end/closure_conversion_aux.cmo : \ 3929 - middle_end/base_types/variable.cmi \ 3930 - middle_end/base_types/symbol.cmi \ 3931 - middle_end/base_types/static_exception.cmi \ 3779 + middle_end/flambda/closure_conversion_aux.cmo : \ 3780 + middle_end/variable.cmi \ 3781 + middle_end/symbol.cmi \ 3782 + middle_end/flambda/base_types/static_exception.cmi \ 3932 3783 utils/numbers.cmi \ 3933 - middle_end/base_types/mutable_variable.cmi \ 3784 + middle_end/flambda/base_types/mutable_variable.cmi \ 3934 3785 utils/misc.cmi \ 3935 3786 parsing/location.cmi \ 3936 - bytecomp/lambda.cmi \ 3937 - middle_end/int_replace_polymorphic_compare.cmi \ 3787 + lambda/lambda.cmi \ 3788 + utils/int_replace_polymorphic_compare.cmi \ 3938 3789 typing/ident.cmi \ 3939 - middle_end/closure_conversion_aux.cmi 3940 - middle_end/closure_conversion_aux.cmx : \ 3941 - middle_end/base_types/variable.cmx \ 3942 - middle_end/base_types/symbol.cmx \ 3943 - middle_end/base_types/static_exception.cmx \ 3790 + middle_end/flambda/closure_conversion_aux.cmi 3791 + middle_end/flambda/closure_conversion_aux.cmx : \ 3792 + middle_end/variable.cmx \ 3793 + middle_end/symbol.cmx \ 3794 + middle_end/flambda/base_types/static_exception.cmx \ 3944 3795 utils/numbers.cmx \ 3945 - middle_end/base_types/mutable_variable.cmx \ 3796 + middle_end/flambda/base_types/mutable_variable.cmx \ 3946 3797 utils/misc.cmx \ 3947 3798 parsing/location.cmx \ 3948 - bytecomp/lambda.cmx \ 3949 - middle_end/int_replace_polymorphic_compare.cmx \ 3799 + lambda/lambda.cmx \ 3800 + utils/int_replace_polymorphic_compare.cmx \ 3950 3801 typing/ident.cmx \ 3951 - middle_end/closure_conversion_aux.cmi 3952 - middle_end/closure_conversion_aux.cmi : \ 3953 - middle_end/base_types/variable.cmi \ 3954 - middle_end/base_types/symbol.cmi \ 3955 - middle_end/base_types/static_exception.cmi \ 3956 - middle_end/base_types/mutable_variable.cmi \ 3802 + middle_end/flambda/closure_conversion_aux.cmi 3803 + middle_end/flambda/closure_conversion_aux.cmi : \ 3804 + middle_end/variable.cmi \ 3805 + middle_end/symbol.cmi \ 3806 + middle_end/flambda/base_types/static_exception.cmi \ 3807 + middle_end/flambda/base_types/mutable_variable.cmi \ 3957 3808 parsing/location.cmi \ 3958 - bytecomp/lambda.cmi \ 3809 + lambda/lambda.cmi \ 3959 3810 typing/ident.cmi 3960 - middle_end/debuginfo.cmo : \ 3961 - parsing/location.cmi \ 3962 - middle_end/int_replace_polymorphic_compare.cmi \ 3963 - middle_end/debuginfo.cmi 3964 - middle_end/debuginfo.cmx : \ 3965 - parsing/location.cmx \ 3966 - middle_end/int_replace_polymorphic_compare.cmx \ 3967 - middle_end/debuginfo.cmi 3968 - middle_end/debuginfo.cmi : \ 3969 - parsing/location.cmi 3970 - middle_end/effect_analysis.cmo : \ 3971 - asmcomp/semantics_of_primitives.cmi \ 3811 + middle_end/flambda/closure_offsets.cmo : \ 3812 + middle_end/variable.cmi \ 3813 + middle_end/flambda/base_types/var_within_closure.cmi \ 3814 + utils/misc.cmi \ 3815 + middle_end/flambda/flambda_utils.cmi \ 3816 + middle_end/flambda/flambda.cmi \ 3817 + middle_end/flambda/base_types/closure_id.cmi \ 3818 + middle_end/flambda/closure_offsets.cmi 3819 + middle_end/flambda/closure_offsets.cmx : \ 3820 + middle_end/variable.cmx \ 3821 + middle_end/flambda/base_types/var_within_closure.cmx \ 3822 + utils/misc.cmx \ 3823 + middle_end/flambda/flambda_utils.cmx \ 3824 + middle_end/flambda/flambda.cmx \ 3825 + middle_end/flambda/base_types/closure_id.cmx \ 3826 + middle_end/flambda/closure_offsets.cmi 3827 + middle_end/flambda/closure_offsets.cmi : \ 3828 + middle_end/flambda/base_types/var_within_closure.cmi \ 3829 + middle_end/flambda/flambda.cmi \ 3830 + middle_end/flambda/base_types/closure_id.cmi 3831 + middle_end/flambda/effect_analysis.cmo : \ 3832 + middle_end/semantics_of_primitives.cmi \ 3972 3833 utils/misc.cmi \ 3973 - middle_end/int_replace_polymorphic_compare.cmi \ 3974 - middle_end/flambda.cmi \ 3975 - asmcomp/clambda_primitives.cmi \ 3976 - middle_end/effect_analysis.cmi 3977 - middle_end/effect_analysis.cmx : \ 3978 - asmcomp/semantics_of_primitives.cmx \ 3834 + utils/int_replace_polymorphic_compare.cmi \ 3835 + middle_end/flambda/flambda.cmi \ 3836 + middle_end/clambda_primitives.cmi \ 3837 + middle_end/flambda/effect_analysis.cmi 3838 + middle_end/flambda/effect_analysis.cmx : \ 3839 + middle_end/semantics_of_primitives.cmx \ 3840 + utils/misc.cmx \ 3841 + utils/int_replace_polymorphic_compare.cmx \ 3842 + middle_end/flambda/flambda.cmx \ 3843 + middle_end/clambda_primitives.cmx \ 3844 + middle_end/flambda/effect_analysis.cmi 3845 + middle_end/flambda/effect_analysis.cmi : \ 3846 + middle_end/flambda/flambda.cmi 3847 + middle_end/flambda/export_info.cmo : \ 3848 + middle_end/variable.cmi \ 3849 + middle_end/flambda/base_types/var_within_closure.cmi \ 3850 + middle_end/flambda/base_types/tag.cmi \ 3851 + middle_end/symbol.cmi \ 3852 + middle_end/flambda/simple_value_approx.cmi \ 3853 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 3854 + middle_end/flambda/flambda.cmi \ 3855 + middle_end/flambda/base_types/export_id.cmi \ 3856 + middle_end/compilation_unit.cmi \ 3857 + middle_end/flambda/base_types/closure_id.cmi \ 3858 + middle_end/flambda/export_info.cmi 3859 + middle_end/flambda/export_info.cmx : \ 3860 + middle_end/variable.cmx \ 3861 + middle_end/flambda/base_types/var_within_closure.cmx \ 3862 + middle_end/flambda/base_types/tag.cmx \ 3863 + middle_end/symbol.cmx \ 3864 + middle_end/flambda/simple_value_approx.cmx \ 3865 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 3866 + middle_end/flambda/flambda.cmx \ 3867 + middle_end/flambda/base_types/export_id.cmx \ 3868 + middle_end/compilation_unit.cmx \ 3869 + middle_end/flambda/base_types/closure_id.cmx \ 3870 + middle_end/flambda/export_info.cmi 3871 + middle_end/flambda/export_info.cmi : \ 3872 + middle_end/variable.cmi \ 3873 + middle_end/flambda/base_types/var_within_closure.cmi \ 3874 + middle_end/flambda/base_types/tag.cmi \ 3875 + middle_end/symbol.cmi \ 3876 + middle_end/flambda/simple_value_approx.cmi \ 3877 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 3878 + middle_end/flambda/flambda.cmi \ 3879 + middle_end/flambda/base_types/export_id.cmi \ 3880 + middle_end/compilation_unit.cmi \ 3881 + middle_end/flambda/base_types/closure_id.cmi 3882 + middle_end/flambda/export_info_for_pack.cmo : \ 3883 + middle_end/variable.cmi \ 3884 + middle_end/flambda/base_types/var_within_closure.cmi \ 3885 + middle_end/symbol.cmi \ 3886 + middle_end/flambda/simple_value_approx.cmi \ 3887 + middle_end/flambda/base_types/set_of_closures_origin.cmi \ 3888 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 3889 + utils/misc.cmi \ 3890 + middle_end/flambda/flambda_iterators.cmi \ 3891 + middle_end/flambda/flambda.cmi \ 3892 + middle_end/flambda/export_info.cmi \ 3893 + middle_end/flambda/base_types/export_id.cmi \ 3894 + middle_end/compilation_unit.cmi \ 3895 + middle_end/flambda/base_types/closure_id.cmi \ 3896 + middle_end/flambda/export_info_for_pack.cmi 3897 + middle_end/flambda/export_info_for_pack.cmx : \ 3898 + middle_end/variable.cmx \ 3899 + middle_end/flambda/base_types/var_within_closure.cmx \ 3900 + middle_end/symbol.cmx \ 3901 + middle_end/flambda/simple_value_approx.cmx \ 3902 + middle_end/flambda/base_types/set_of_closures_origin.cmx \ 3903 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 3979 3904 utils/misc.cmx \ 3980 - middle_end/int_replace_polymorphic_compare.cmx \ 3981 - middle_end/flambda.cmx \ 3982 - asmcomp/clambda_primitives.cmx \ 3983 - middle_end/effect_analysis.cmi 3984 - middle_end/effect_analysis.cmi : \ 3985 - middle_end/flambda.cmi 3986 - middle_end/extract_projections.cmo : \ 3987 - middle_end/base_types/variable.cmi \ 3988 - middle_end/base_types/var_within_closure.cmi \ 3989 - middle_end/simple_value_approx.cmi \ 3990 - middle_end/projection.cmi \ 3991 - middle_end/int_replace_polymorphic_compare.cmi \ 3992 - middle_end/inline_and_simplify_aux.cmi \ 3993 - middle_end/freshening.cmi \ 3994 - middle_end/flambda_iterators.cmi \ 3995 - middle_end/flambda.cmi \ 3996 - middle_end/base_types/closure_id.cmi \ 3997 - middle_end/extract_projections.cmi 3998 - middle_end/extract_projections.cmx : \ 3999 - middle_end/base_types/variable.cmx \ 4000 - middle_end/base_types/var_within_closure.cmx \ 4001 - middle_end/simple_value_approx.cmx \ 4002 - middle_end/projection.cmx \ 4003 - middle_end/int_replace_polymorphic_compare.cmx \ 4004 - middle_end/inline_and_simplify_aux.cmx \ 4005 - middle_end/freshening.cmx \ 4006 - middle_end/flambda_iterators.cmx \ 4007 - middle_end/flambda.cmx \ 4008 - middle_end/base_types/closure_id.cmx \ 4009 - middle_end/extract_projections.cmi 4010 - middle_end/extract_projections.cmi : \ 4011 - middle_end/base_types/variable.cmi \ 4012 - middle_end/projection.cmi \ 4013 - middle_end/inline_and_simplify_aux.cmi \ 4014 - middle_end/flambda.cmi 4015 - middle_end/find_recursive_functions.cmo : \ 4016 - middle_end/base_types/variable.cmi \ 3905 + middle_end/flambda/flambda_iterators.cmx \ 3906 + middle_end/flambda/flambda.cmx \ 3907 + middle_end/flambda/export_info.cmx \ 3908 + middle_end/flambda/base_types/export_id.cmx \ 3909 + middle_end/compilation_unit.cmx \ 3910 + middle_end/flambda/base_types/closure_id.cmx \ 3911 + middle_end/flambda/export_info_for_pack.cmi 3912 + middle_end/flambda/export_info_for_pack.cmi : \ 3913 + middle_end/flambda/export_info.cmi \ 3914 + middle_end/compilation_unit.cmi 3915 + middle_end/flambda/extract_projections.cmo : \ 3916 + middle_end/variable.cmi \ 3917 + middle_end/flambda/base_types/var_within_closure.cmi \ 3918 + middle_end/flambda/simple_value_approx.cmi \ 3919 + middle_end/flambda/projection.cmi \ 3920 + utils/int_replace_polymorphic_compare.cmi \ 3921 + middle_end/flambda/inline_and_simplify_aux.cmi \ 3922 + middle_end/flambda/freshening.cmi \ 3923 + middle_end/flambda/flambda_iterators.cmi \ 3924 + middle_end/flambda/flambda.cmi \ 3925 + middle_end/flambda/base_types/closure_id.cmi \ 3926 + middle_end/flambda/extract_projections.cmi 3927 + middle_end/flambda/extract_projections.cmx : \ 3928 + middle_end/variable.cmx \ 3929 + middle_end/flambda/base_types/var_within_closure.cmx \ 3930 + middle_end/flambda/simple_value_approx.cmx \ 3931 + middle_end/flambda/projection.cmx \ 3932 + utils/int_replace_polymorphic_compare.cmx \ 3933 + middle_end/flambda/inline_and_simplify_aux.cmx \ 3934 + middle_end/flambda/freshening.cmx \ 3935 + middle_end/flambda/flambda_iterators.cmx \ 3936 + middle_end/flambda/flambda.cmx \ 3937 + middle_end/flambda/base_types/closure_id.cmx \ 3938 + middle_end/flambda/extract_projections.cmi 3939 + middle_end/flambda/extract_projections.cmi : \ 3940 + middle_end/variable.cmi \ 3941 + middle_end/flambda/projection.cmi \ 3942 + middle_end/flambda/inline_and_simplify_aux.cmi \ 3943 + middle_end/flambda/flambda.cmi 3944 + middle_end/flambda/find_recursive_functions.cmo : \ 3945 + middle_end/variable.cmi \ 4017 3946 utils/strongly_connected_components.cmi \ 4018 - middle_end/int_replace_polymorphic_compare.cmi \ 4019 - middle_end/flambda_utils.cmi \ 4020 - middle_end/flambda.cmi \ 3947 + utils/int_replace_polymorphic_compare.cmi \ 3948 + middle_end/flambda/flambda_utils.cmi \ 3949 + middle_end/flambda/flambda.cmi \ 4021 3950 middle_end/backend_intf.cmi \ 4022 - middle_end/find_recursive_functions.cmi 4023 - middle_end/find_recursive_functions.cmx : \ 4024 - middle_end/base_types/variable.cmx \ 3951 + middle_end/flambda/find_recursive_functions.cmi 3952 + middle_end/flambda/find_recursive_functions.cmx : \ 3953 + middle_end/variable.cmx \ 4025 3954 utils/strongly_connected_components.cmx \ 4026 - middle_end/int_replace_polymorphic_compare.cmx \ 4027 - middle_end/flambda_utils.cmx \ 4028 - middle_end/flambda.cmx \ 3955 + utils/int_replace_polymorphic_compare.cmx \ 3956 + middle_end/flambda/flambda_utils.cmx \ 3957 + middle_end/flambda/flambda.cmx \ 4029 3958 middle_end/backend_intf.cmi \ 4030 - middle_end/find_recursive_functions.cmi 4031 - middle_end/find_recursive_functions.cmi : \ 4032 - middle_end/base_types/variable.cmi \ 4033 - middle_end/flambda.cmi \ 3959 + middle_end/flambda/find_recursive_functions.cmi 3960 + middle_end/flambda/find_recursive_functions.cmi : \ 3961 + middle_end/variable.cmi \ 3962 + middle_end/flambda/flambda.cmi \ 4034 3963 middle_end/backend_intf.cmi 4035 - middle_end/flambda.cmo : \ 4036 - middle_end/base_types/variable.cmi \ 4037 - middle_end/base_types/tag.cmi \ 4038 - middle_end/base_types/symbol.cmi \ 4039 - middle_end/base_types/static_exception.cmi \ 4040 - middle_end/base_types/set_of_closures_origin.cmi \ 4041 - middle_end/base_types/set_of_closures_id.cmi \ 4042 - middle_end/projection.cmi \ 4043 - bytecomp/printlambda.cmi \ 4044 - asmcomp/printclambda_primitives.cmi \ 4045 - middle_end/parameter.cmi \ 3964 + middle_end/flambda/flambda.cmo : \ 3965 + middle_end/variable.cmi \ 3966 + middle_end/flambda/base_types/tag.cmi \ 3967 + middle_end/symbol.cmi \ 3968 + middle_end/flambda/base_types/static_exception.cmi \ 3969 + middle_end/flambda/base_types/set_of_closures_origin.cmi \ 3970 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 3971 + middle_end/flambda/projection.cmi \ 3972 + lambda/printlambda.cmi \ 3973 + middle_end/printclambda_primitives.cmi \ 3974 + middle_end/flambda/parameter.cmi \ 4046 3975 utils/numbers.cmi \ 4047 - middle_end/base_types/mutable_variable.cmi \ 3976 + middle_end/flambda/base_types/mutable_variable.cmi \ 4048 3977 utils/misc.cmi \ 4049 - bytecomp/lambda.cmi \ 4050 - middle_end/int_replace_polymorphic_compare.cmi \ 3978 + lambda/lambda.cmi \ 3979 + utils/int_replace_polymorphic_compare.cmi \ 4051 3980 utils/identifiable.cmi \ 4052 - middle_end/debuginfo.cmi \ 4053 - middle_end/base_types/compilation_unit.cmi \ 4054 - middle_end/base_types/closure_origin.cmi \ 4055 - middle_end/base_types/closure_id.cmi \ 3981 + lambda/debuginfo.cmi \ 3982 + middle_end/compilation_unit.cmi \ 3983 + middle_end/flambda/base_types/closure_origin.cmi \ 3984 + middle_end/flambda/base_types/closure_id.cmi \ 4056 3985 utils/clflags.cmi \ 4057 - asmcomp/clambda_primitives.cmi \ 3986 + middle_end/clambda_primitives.cmi \ 4058 3987 parsing/asttypes.cmi \ 4059 - middle_end/allocated_const.cmi \ 4060 - middle_end/flambda.cmi 4061 - middle_end/flambda.cmx : \ 4062 - middle_end/base_types/variable.cmx \ 4063 - middle_end/base_types/tag.cmx \ 4064 - middle_end/base_types/symbol.cmx \ 4065 - middle_end/base_types/static_exception.cmx \ 4066 - middle_end/base_types/set_of_closures_origin.cmx \ 4067 - middle_end/base_types/set_of_closures_id.cmx \ 4068 - middle_end/projection.cmx \ 4069 - bytecomp/printlambda.cmx \ 4070 - asmcomp/printclambda_primitives.cmx \ 4071 - middle_end/parameter.cmx \ 3988 + middle_end/flambda/allocated_const.cmi \ 3989 + middle_end/flambda/flambda.cmi 3990 + middle_end/flambda/flambda.cmx : \ 3991 + middle_end/variable.cmx \ 3992 + middle_end/flambda/base_types/tag.cmx \ 3993 + middle_end/symbol.cmx \ 3994 + middle_end/flambda/base_types/static_exception.cmx \ 3995 + middle_end/flambda/base_types/set_of_closures_origin.cmx \ 3996 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 3997 + middle_end/flambda/projection.cmx \ 3998 + lambda/printlambda.cmx \ 3999 + middle_end/printclambda_primitives.cmx \ 4000 + middle_end/flambda/parameter.cmx \ 4072 4001 utils/numbers.cmx \ 4073 - middle_end/base_types/mutable_variable.cmx \ 4002 + middle_end/flambda/base_types/mutable_variable.cmx \ 4074 4003 utils/misc.cmx \ 4075 - bytecomp/lambda.cmx \ 4076 - middle_end/int_replace_polymorphic_compare.cmx \ 4004 + lambda/lambda.cmx \ 4005 + utils/int_replace_polymorphic_compare.cmx \ 4077 4006 utils/identifiable.cmx \ 4078 - middle_end/debuginfo.cmx \ 4079 - middle_end/base_types/compilation_unit.cmx \ 4080 - middle_end/base_types/closure_origin.cmx \ 4081 - middle_end/base_types/closure_id.cmx \ 4007 + lambda/debuginfo.cmx \ 4008 + middle_end/compilation_unit.cmx \ 4009 + middle_end/flambda/base_types/closure_origin.cmx \ 4010 + middle_end/flambda/base_types/closure_id.cmx \ 4082 4011 utils/clflags.cmx \ 4083 - asmcomp/clambda_primitives.cmx \ 4012 + middle_end/clambda_primitives.cmx \ 4084 4013 parsing/asttypes.cmi \ 4085 - middle_end/allocated_const.cmx \ 4086 - middle_end/flambda.cmi 4087 - middle_end/flambda.cmi : \ 4088 - middle_end/base_types/variable.cmi \ 4089 - middle_end/base_types/tag.cmi \ 4090 - middle_end/base_types/symbol.cmi \ 4091 - middle_end/base_types/static_exception.cmi \ 4092 - middle_end/base_types/set_of_closures_origin.cmi \ 4093 - middle_end/base_types/set_of_closures_id.cmi \ 4094 - middle_end/projection.cmi \ 4095 - middle_end/parameter.cmi \ 4014 + middle_end/flambda/allocated_const.cmx \ 4015 + middle_end/flambda/flambda.cmi 4016 + middle_end/flambda/flambda.cmi : \ 4017 + middle_end/variable.cmi \ 4018 + middle_end/flambda/base_types/tag.cmi \ 4019 + middle_end/symbol.cmi \ 4020 + middle_end/flambda/base_types/static_exception.cmi \ 4021 + middle_end/flambda/base_types/set_of_closures_origin.cmi \ 4022 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 4023 + middle_end/flambda/projection.cmi \ 4024 + middle_end/flambda/parameter.cmi \ 4096 4025 utils/numbers.cmi \ 4097 - middle_end/base_types/mutable_variable.cmi \ 4098 - bytecomp/lambda.cmi \ 4026 + middle_end/flambda/base_types/mutable_variable.cmi \ 4027 + lambda/lambda.cmi \ 4099 4028 utils/identifiable.cmi \ 4100 - middle_end/debuginfo.cmi \ 4101 - middle_end/base_types/closure_origin.cmi \ 4102 - middle_end/base_types/closure_id.cmi \ 4103 - asmcomp/clambda_primitives.cmi \ 4029 + lambda/debuginfo.cmi \ 4030 + middle_end/flambda/base_types/closure_origin.cmi \ 4031 + middle_end/flambda/base_types/closure_id.cmi \ 4032 + middle_end/clambda_primitives.cmi \ 4104 4033 parsing/asttypes.cmi \ 4105 - middle_end/allocated_const.cmi 4106 - middle_end/flambda_invariants.cmo : \ 4107 - middle_end/base_types/variable.cmi \ 4108 - middle_end/base_types/var_within_closure.cmi \ 4109 - middle_end/base_types/tag.cmi \ 4110 - middle_end/base_types/symbol.cmi \ 4111 - middle_end/base_types/static_exception.cmi \ 4112 - middle_end/base_types/set_of_closures_origin.cmi \ 4113 - middle_end/base_types/set_of_closures_id.cmi \ 4114 - middle_end/projection.cmi \ 4115 - asmcomp/printclambda_primitives.cmi \ 4116 - middle_end/parameter.cmi \ 4034 + middle_end/flambda/allocated_const.cmi 4035 + middle_end/flambda/flambda_invariants.cmo : \ 4036 + middle_end/variable.cmi \ 4037 + middle_end/flambda/base_types/var_within_closure.cmi \ 4038 + middle_end/flambda/base_types/tag.cmi \ 4039 + middle_end/symbol.cmi \ 4040 + middle_end/flambda/base_types/static_exception.cmi \ 4041 + middle_end/flambda/base_types/set_of_closures_origin.cmi \ 4042 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 4043 + middle_end/flambda/projection.cmi \ 4044 + middle_end/printclambda_primitives.cmi \ 4045 + middle_end/flambda/parameter.cmi \ 4117 4046 utils/numbers.cmi \ 4118 - middle_end/base_types/mutable_variable.cmi \ 4047 + middle_end/flambda/base_types/mutable_variable.cmi \ 4119 4048 utils/misc.cmi \ 4120 - bytecomp/lambda.cmi \ 4121 - middle_end/int_replace_polymorphic_compare.cmi \ 4122 - middle_end/flambda_iterators.cmi \ 4123 - middle_end/flambda.cmi \ 4124 - middle_end/debuginfo.cmi \ 4125 - middle_end/base_types/compilation_unit.cmi \ 4126 - middle_end/base_types/closure_id.cmi \ 4127 - asmcomp/clambda_primitives.cmi \ 4049 + lambda/lambda.cmi \ 4050 + utils/int_replace_polymorphic_compare.cmi \ 4051 + middle_end/flambda/flambda_iterators.cmi \ 4052 + middle_end/flambda/flambda.cmi \ 4053 + lambda/debuginfo.cmi \ 4054 + middle_end/compilation_unit.cmi \ 4055 + middle_end/flambda/base_types/closure_id.cmi \ 4056 + middle_end/clambda_primitives.cmi \ 4128 4057 parsing/asttypes.cmi \ 4129 - middle_end/allocated_const.cmi \ 4130 - middle_end/flambda_invariants.cmi 4131 - middle_end/flambda_invariants.cmx : \ 4132 - middle_end/base_types/variable.cmx \ 4133 - middle_end/base_types/var_within_closure.cmx \ 4134 - middle_end/base_types/tag.cmx \ 4135 - middle_end/base_types/symbol.cmx \ 4136 - middle_end/base_types/static_exception.cmx \ 4137 - middle_end/base_types/set_of_closures_origin.cmx \ 4138 - middle_end/base_types/set_of_closures_id.cmx \ 4139 - middle_end/projection.cmx \ 4140 - asmcomp/printclambda_primitives.cmx \ 4141 - middle_end/parameter.cmx \ 4058 + middle_end/flambda/allocated_const.cmi \ 4059 + middle_end/flambda/flambda_invariants.cmi 4060 + middle_end/flambda/flambda_invariants.cmx : \ 4061 + middle_end/variable.cmx \ 4062 + middle_end/flambda/base_types/var_within_closure.cmx \ 4063 + middle_end/flambda/base_types/tag.cmx \ 4064 + middle_end/symbol.cmx \ 4065 + middle_end/flambda/base_types/static_exception.cmx \ 4066 + middle_end/flambda/base_types/set_of_closures_origin.cmx \ 4067 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 4068 + middle_end/flambda/projection.cmx \ 4069 + middle_end/printclambda_primitives.cmx \ 4070 + middle_end/flambda/parameter.cmx \ 4142 4071 utils/numbers.cmx \ 4143 - middle_end/base_types/mutable_variable.cmx \ 4072 + middle_end/flambda/base_types/mutable_variable.cmx \ 4144 4073 utils/misc.cmx \ 4145 - bytecomp/lambda.cmx \ 4146 - middle_end/int_replace_polymorphic_compare.cmx \ 4147 - middle_end/flambda_iterators.cmx \ 4148 - middle_end/flambda.cmx \ 4149 - middle_end/debuginfo.cmx \ 4150 - middle_end/base_types/compilation_unit.cmx \ 4151 - middle_end/base_types/closure_id.cmx \ 4152 - asmcomp/clambda_primitives.cmx \ 4074 + lambda/lambda.cmx \ 4075 + utils/int_replace_polymorphic_compare.cmx \ 4076 + middle_end/flambda/flambda_iterators.cmx \ 4077 + middle_end/flambda/flambda.cmx \ 4078 + lambda/debuginfo.cmx \ 4079 + middle_end/compilation_unit.cmx \ 4080 + middle_end/flambda/base_types/closure_id.cmx \ 4081 + middle_end/clambda_primitives.cmx \ 4153 4082 parsing/asttypes.cmi \ 4154 - middle_end/allocated_const.cmx \ 4155 - middle_end/flambda_invariants.cmi 4156 - middle_end/flambda_invariants.cmi : \ 4157 - middle_end/flambda.cmi 4158 - middle_end/flambda_iterators.cmo : \ 4159 - middle_end/base_types/variable.cmi \ 4083 + middle_end/flambda/allocated_const.cmx \ 4084 + middle_end/flambda/flambda_invariants.cmi 4085 + middle_end/flambda/flambda_invariants.cmi : \ 4086 + middle_end/flambda/flambda.cmi 4087 + middle_end/flambda/flambda_iterators.cmo : \ 4088 + middle_end/variable.cmi \ 4160 4089 utils/misc.cmi \ 4161 - middle_end/int_replace_polymorphic_compare.cmi \ 4162 - middle_end/flambda.cmi \ 4163 - middle_end/flambda_iterators.cmi 4164 - middle_end/flambda_iterators.cmx : \ 4165 - middle_end/base_types/variable.cmx \ 4090 + utils/int_replace_polymorphic_compare.cmi \ 4091 + middle_end/flambda/flambda.cmi \ 4092 + middle_end/flambda/flambda_iterators.cmi 4093 + middle_end/flambda/flambda_iterators.cmx : \ 4094 + middle_end/variable.cmx \ 4095 + utils/misc.cmx \ 4096 + utils/int_replace_polymorphic_compare.cmx \ 4097 + middle_end/flambda/flambda.cmx \ 4098 + middle_end/flambda/flambda_iterators.cmi 4099 + middle_end/flambda/flambda_iterators.cmi : \ 4100 + middle_end/variable.cmi \ 4101 + middle_end/symbol.cmi \ 4102 + middle_end/flambda/flambda.cmi 4103 + middle_end/flambda/flambda_middle_end.cmo : \ 4104 + utils/warnings.cmi \ 4105 + middle_end/variable.cmi \ 4106 + middle_end/symbol.cmi \ 4107 + middle_end/flambda/share_constants.cmi \ 4108 + middle_end/flambda/remove_unused_program_constructs.cmi \ 4109 + middle_end/flambda/remove_unused_closure_vars.cmi \ 4110 + middle_end/flambda/ref_to_variables.cmi \ 4111 + utils/profile.cmi \ 4112 + utils/misc.cmi \ 4113 + parsing/location.cmi \ 4114 + middle_end/flambda/lift_let_to_initialize_symbol.cmi \ 4115 + middle_end/flambda/lift_constants.cmi \ 4116 + middle_end/flambda/lift_code.cmi \ 4117 + utils/int_replace_polymorphic_compare.cmi \ 4118 + middle_end/flambda/inlining_cost.cmi \ 4119 + middle_end/flambda/inline_and_simplify.cmi \ 4120 + middle_end/flambda/initialize_symbol_to_let_symbol.cmi \ 4121 + middle_end/flambda/flambda_iterators.cmi \ 4122 + middle_end/flambda/flambda_invariants.cmi \ 4123 + middle_end/flambda/flambda.cmi \ 4124 + lambda/debuginfo.cmi \ 4125 + middle_end/flambda/base_types/closure_id.cmi \ 4126 + middle_end/flambda/closure_conversion.cmi \ 4127 + utils/clflags.cmi \ 4128 + middle_end/backend_intf.cmi \ 4129 + middle_end/flambda/flambda_middle_end.cmi 4130 + middle_end/flambda/flambda_middle_end.cmx : \ 4131 + utils/warnings.cmx \ 4132 + middle_end/variable.cmx \ 4133 + middle_end/symbol.cmx \ 4134 + middle_end/flambda/share_constants.cmx \ 4135 + middle_end/flambda/remove_unused_program_constructs.cmx \ 4136 + middle_end/flambda/remove_unused_closure_vars.cmx \ 4137 + middle_end/flambda/ref_to_variables.cmx \ 4138 + utils/profile.cmx \ 4139 + utils/misc.cmx \ 4140 + parsing/location.cmx \ 4141 + middle_end/flambda/lift_let_to_initialize_symbol.cmx \ 4142 + middle_end/flambda/lift_constants.cmx \ 4143 + middle_end/flambda/lift_code.cmx \ 4144 + utils/int_replace_polymorphic_compare.cmx \ 4145 + middle_end/flambda/inlining_cost.cmx \ 4146 + middle_end/flambda/inline_and_simplify.cmx \ 4147 + middle_end/flambda/initialize_symbol_to_let_symbol.cmx \ 4148 + middle_end/flambda/flambda_iterators.cmx \ 4149 + middle_end/flambda/flambda_invariants.cmx \ 4150 + middle_end/flambda/flambda.cmx \ 4151 + lambda/debuginfo.cmx \ 4152 + middle_end/flambda/base_types/closure_id.cmx \ 4153 + middle_end/flambda/closure_conversion.cmx \ 4154 + utils/clflags.cmx \ 4155 + middle_end/backend_intf.cmi \ 4156 + middle_end/flambda/flambda_middle_end.cmi 4157 + middle_end/flambda/flambda_middle_end.cmi : \ 4158 + lambda/lambda.cmi \ 4159 + typing/ident.cmi \ 4160 + middle_end/flambda/flambda.cmi \ 4161 + middle_end/backend_intf.cmi 4162 + middle_end/flambda/flambda_to_clambda.cmo : \ 4163 + middle_end/variable.cmi \ 4164 + middle_end/flambda/base_types/var_within_closure.cmi \ 4165 + middle_end/flambda/base_types/tag.cmi \ 4166 + middle_end/symbol.cmi \ 4167 + middle_end/flambda/base_types/static_exception.cmi \ 4168 + middle_end/flambda/simple_value_approx.cmi \ 4169 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 4170 + typing/primitive.cmi \ 4171 + middle_end/flambda/parameter.cmi \ 4172 + utils/numbers.cmi \ 4173 + middle_end/flambda/base_types/mutable_variable.cmi \ 4174 + utils/misc.cmi \ 4175 + middle_end/linkage_name.cmi \ 4176 + lambda/lambda.cmi \ 4177 + middle_end/flambda/initialize_symbol_to_let_symbol.cmi \ 4178 + middle_end/flambda/flambda_utils.cmi \ 4179 + middle_end/flambda/flambda.cmi \ 4180 + middle_end/flambda/export_info.cmi \ 4181 + lambda/debuginfo.cmi \ 4182 + middle_end/compilenv.cmi \ 4183 + middle_end/flambda/closure_offsets.cmi \ 4184 + middle_end/flambda/base_types/closure_id.cmi \ 4185 + utils/clflags.cmi \ 4186 + middle_end/clambda.cmi \ 4187 + middle_end/backend_var.cmi \ 4188 + middle_end/flambda/allocated_const.cmi \ 4189 + middle_end/flambda/flambda_to_clambda.cmi 4190 + middle_end/flambda/flambda_to_clambda.cmx : \ 4191 + middle_end/variable.cmx \ 4192 + middle_end/flambda/base_types/var_within_closure.cmx \ 4193 + middle_end/flambda/base_types/tag.cmx \ 4194 + middle_end/symbol.cmx \ 4195 + middle_end/flambda/base_types/static_exception.cmx \ 4196 + middle_end/flambda/simple_value_approx.cmx \ 4197 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 4198 + typing/primitive.cmx \ 4199 + middle_end/flambda/parameter.cmx \ 4200 + utils/numbers.cmx \ 4201 + middle_end/flambda/base_types/mutable_variable.cmx \ 4166 4202 utils/misc.cmx \ 4167 - middle_end/int_replace_polymorphic_compare.cmx \ 4168 - middle_end/flambda.cmx \ 4169 - middle_end/flambda_iterators.cmi 4170 - middle_end/flambda_iterators.cmi : \ 4171 - middle_end/base_types/variable.cmi \ 4172 - middle_end/base_types/symbol.cmi \ 4173 - middle_end/flambda.cmi 4174 - middle_end/flambda_utils.cmo : \ 4175 - middle_end/base_types/variable.cmi \ 4176 - middle_end/base_types/var_within_closure.cmi \ 4177 - middle_end/base_types/symbol.cmi \ 4178 - bytecomp/switch.cmi \ 4179 - middle_end/base_types/static_exception.cmi \ 4180 - middle_end/base_types/set_of_closures_id.cmi \ 4181 - middle_end/projection.cmi \ 4182 - middle_end/parameter.cmi \ 4203 + middle_end/linkage_name.cmx \ 4204 + lambda/lambda.cmx \ 4205 + middle_end/flambda/initialize_symbol_to_let_symbol.cmx \ 4206 + middle_end/flambda/flambda_utils.cmx \ 4207 + middle_end/flambda/flambda.cmx \ 4208 + middle_end/flambda/export_info.cmx \ 4209 + lambda/debuginfo.cmx \ 4210 + middle_end/compilenv.cmx \ 4211 + middle_end/flambda/closure_offsets.cmx \ 4212 + middle_end/flambda/base_types/closure_id.cmx \ 4213 + utils/clflags.cmx \ 4214 + middle_end/clambda.cmx \ 4215 + middle_end/backend_var.cmx \ 4216 + middle_end/flambda/allocated_const.cmx \ 4217 + middle_end/flambda/flambda_to_clambda.cmi 4218 + middle_end/flambda/flambda_to_clambda.cmi : \ 4219 + middle_end/symbol.cmi \ 4220 + middle_end/flambda/flambda.cmi \ 4221 + middle_end/flambda/export_info.cmi \ 4222 + middle_end/clambda.cmi 4223 + middle_end/flambda/flambda_utils.cmo : \ 4224 + middle_end/variable.cmi \ 4225 + middle_end/flambda/base_types/var_within_closure.cmi \ 4226 + middle_end/symbol.cmi \ 4227 + lambda/switch.cmi \ 4228 + middle_end/flambda/base_types/static_exception.cmi \ 4229 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 4230 + middle_end/flambda/projection.cmi \ 4231 + middle_end/flambda/parameter.cmi \ 4183 4232 utils/numbers.cmi \ 4184 - middle_end/base_types/mutable_variable.cmi \ 4233 + middle_end/flambda/base_types/mutable_variable.cmi \ 4185 4234 utils/misc.cmi \ 4186 - bytecomp/lambda.cmi \ 4235 + lambda/lambda.cmi \ 4187 4236 middle_end/internal_variable_names.cmi \ 4188 - middle_end/int_replace_polymorphic_compare.cmi \ 4189 - middle_end/flambda_iterators.cmi \ 4190 - middle_end/flambda.cmi \ 4191 - middle_end/debuginfo.cmi \ 4192 - middle_end/base_types/compilation_unit.cmi \ 4193 - middle_end/base_types/closure_origin.cmi \ 4194 - middle_end/base_types/closure_id.cmi \ 4195 - asmcomp/clambda_primitives.cmi \ 4237 + utils/int_replace_polymorphic_compare.cmi \ 4238 + middle_end/flambda/flambda_iterators.cmi \ 4239 + middle_end/flambda/flambda.cmi \ 4240 + lambda/debuginfo.cmi \ 4241 + middle_end/compilation_unit.cmi \ 4242 + middle_end/flambda/base_types/closure_origin.cmi \ 4243 + middle_end/flambda/base_types/closure_id.cmi \ 4244 + middle_end/clambda_primitives.cmi \ 4196 4245 parsing/asttypes.cmi \ 4197 - middle_end/allocated_const.cmi \ 4198 - middle_end/flambda_utils.cmi 4199 - middle_end/flambda_utils.cmx : \ 4200 - middle_end/base_types/variable.cmx \ 4201 - middle_end/base_types/var_within_closure.cmx \ 4202 - middle_end/base_types/symbol.cmx \ 4203 - bytecomp/switch.cmx \ 4204 - middle_end/base_types/static_exception.cmx \ 4205 - middle_end/base_types/set_of_closures_id.cmx \ 4206 - middle_end/projection.cmx \ 4207 - middle_end/parameter.cmx \ 4246 + middle_end/flambda/allocated_const.cmi \ 4247 + middle_end/flambda/flambda_utils.cmi 4248 + middle_end/flambda/flambda_utils.cmx : \ 4249 + middle_end/variable.cmx \ 4250 + middle_end/flambda/base_types/var_within_closure.cmx \ 4251 + middle_end/symbol.cmx \ 4252 + lambda/switch.cmx \ 4253 + middle_end/flambda/base_types/static_exception.cmx \ 4254 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 4255 + middle_end/flambda/projection.cmx \ 4256 + middle_end/flambda/parameter.cmx \ 4208 4257 utils/numbers.cmx \ 4209 - middle_end/base_types/mutable_variable.cmx \ 4258 + middle_end/flambda/base_types/mutable_variable.cmx \ 4210 4259 utils/misc.cmx \ 4211 - bytecomp/lambda.cmx \ 4260 + lambda/lambda.cmx \ 4212 4261 middle_end/internal_variable_names.cmx \ 4213 - middle_end/int_replace_polymorphic_compare.cmx \ 4214 - middle_end/flambda_iterators.cmx \ 4215 - middle_end/flambda.cmx \ 4216 - middle_end/debuginfo.cmx \ 4217 - middle_end/base_types/compilation_unit.cmx \ 4218 - middle_end/base_types/closure_origin.cmx \ 4219 - middle_end/base_types/closure_id.cmx \ 4220 - asmcomp/clambda_primitives.cmx \ 4262 + utils/int_replace_polymorphic_compare.cmx \ 4263 + middle_end/flambda/flambda_iterators.cmx \ 4264 + middle_end/flambda/flambda.cmx \ 4265 + lambda/debuginfo.cmx \ 4266 + middle_end/compilation_unit.cmx \ 4267 + middle_end/flambda/base_types/closure_origin.cmx \ 4268 + middle_end/flambda/base_types/closure_id.cmx \ 4269 + middle_end/clambda_primitives.cmx \ 4221 4270 parsing/asttypes.cmi \ 4222 - middle_end/allocated_const.cmx \ 4223 - middle_end/flambda_utils.cmi 4224 - middle_end/flambda_utils.cmi : \ 4225 - middle_end/base_types/variable.cmi \ 4226 - middle_end/base_types/var_within_closure.cmi \ 4227 - middle_end/base_types/tag.cmi \ 4228 - middle_end/base_types/symbol.cmi \ 4229 - bytecomp/switch.cmi \ 4230 - middle_end/base_types/static_exception.cmi \ 4231 - middle_end/base_types/set_of_closures_id.cmi \ 4232 - middle_end/projection.cmi \ 4233 - middle_end/parameter.cmi \ 4271 + middle_end/flambda/allocated_const.cmx \ 4272 + middle_end/flambda/flambda_utils.cmi 4273 + middle_end/flambda/flambda_utils.cmi : \ 4274 + middle_end/variable.cmi \ 4275 + middle_end/flambda/base_types/var_within_closure.cmi \ 4276 + middle_end/flambda/base_types/tag.cmi \ 4277 + middle_end/symbol.cmi \ 4278 + lambda/switch.cmi \ 4279 + middle_end/flambda/base_types/static_exception.cmi \ 4280 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 4281 + middle_end/flambda/projection.cmi \ 4282 + middle_end/flambda/parameter.cmi \ 4234 4283 middle_end/internal_variable_names.cmi \ 4235 - middle_end/flambda.cmi \ 4236 - middle_end/base_types/closure_id.cmi 4237 - middle_end/freshening.cmo : \ 4238 - middle_end/base_types/variable.cmi \ 4239 - middle_end/base_types/var_within_closure.cmi \ 4240 - middle_end/base_types/symbol.cmi \ 4241 - middle_end/base_types/static_exception.cmi \ 4242 - middle_end/projection.cmi \ 4243 - middle_end/parameter.cmi \ 4244 - middle_end/base_types/mutable_variable.cmi \ 4284 + middle_end/flambda/flambda.cmi \ 4285 + middle_end/flambda/base_types/closure_id.cmi 4286 + middle_end/flambda/freshening.cmo : \ 4287 + middle_end/variable.cmi \ 4288 + middle_end/flambda/base_types/var_within_closure.cmi \ 4289 + middle_end/symbol.cmi \ 4290 + middle_end/flambda/base_types/static_exception.cmi \ 4291 + middle_end/flambda/projection.cmi \ 4292 + middle_end/flambda/parameter.cmi \ 4293 + middle_end/flambda/base_types/mutable_variable.cmi \ 4245 4294 utils/misc.cmi \ 4246 - middle_end/int_replace_polymorphic_compare.cmi \ 4295 + utils/int_replace_polymorphic_compare.cmi \ 4247 4296 utils/identifiable.cmi \ 4248 - middle_end/flambda_utils.cmi \ 4249 - middle_end/flambda_iterators.cmi \ 4250 - middle_end/flambda.cmi \ 4251 - middle_end/base_types/closure_id.cmi \ 4252 - middle_end/freshening.cmi 4253 - middle_end/freshening.cmx : \ 4254 - middle_end/base_types/variable.cmx \ 4255 - middle_end/base_types/var_within_closure.cmx \ 4256 - middle_end/base_types/symbol.cmx \ 4257 - middle_end/base_types/static_exception.cmx \ 4258 - middle_end/projection.cmx \ 4259 - middle_end/parameter.cmx \ 4260 - middle_end/base_types/mutable_variable.cmx \ 4297 + middle_end/flambda/flambda_utils.cmi \ 4298 + middle_end/flambda/flambda_iterators.cmi \ 4299 + middle_end/flambda/flambda.cmi \ 4300 + middle_end/flambda/base_types/closure_id.cmi \ 4301 + middle_end/flambda/freshening.cmi 4302 + middle_end/flambda/freshening.cmx : \ 4303 + middle_end/variable.cmx \ 4304 + middle_end/flambda/base_types/var_within_closure.cmx \ 4305 + middle_end/symbol.cmx \ 4306 + middle_end/flambda/base_types/static_exception.cmx \ 4307 + middle_end/flambda/projection.cmx \ 4308 + middle_end/flambda/parameter.cmx \ 4309 + middle_end/flambda/base_types/mutable_variable.cmx \ 4261 4310 utils/misc.cmx \ 4262 - middle_end/int_replace_polymorphic_compare.cmx \ 4311 + utils/int_replace_polymorphic_compare.cmx \ 4263 4312 utils/identifiable.cmx \ 4264 - middle_end/flambda_utils.cmx \ 4265 - middle_end/flambda_iterators.cmx \ 4266 - middle_end/flambda.cmx \ 4267 - middle_end/base_types/closure_id.cmx \ 4268 - middle_end/freshening.cmi 4269 - middle_end/freshening.cmi : \ 4270 - middle_end/base_types/variable.cmi \ 4271 - middle_end/base_types/var_within_closure.cmi \ 4272 - middle_end/base_types/symbol.cmi \ 4273 - middle_end/base_types/static_exception.cmi \ 4274 - middle_end/base_types/mutable_variable.cmi \ 4275 - middle_end/flambda.cmi \ 4276 - middle_end/base_types/closure_id.cmi 4277 - middle_end/inconstant_idents.cmo : \ 4278 - middle_end/base_types/variable.cmi \ 4279 - middle_end/base_types/symbol.cmi \ 4280 - middle_end/base_types/set_of_closures_id.cmi \ 4281 - middle_end/parameter.cmi \ 4313 + middle_end/flambda/flambda_utils.cmx \ 4314 + middle_end/flambda/flambda_iterators.cmx \ 4315 + middle_end/flambda/flambda.cmx \ 4316 + middle_end/flambda/base_types/closure_id.cmx \ 4317 + middle_end/flambda/freshening.cmi 4318 + middle_end/flambda/freshening.cmi : \ 4319 + middle_end/variable.cmi \ 4320 + middle_end/flambda/base_types/var_within_closure.cmi \ 4321 + middle_end/symbol.cmi \ 4322 + middle_end/flambda/base_types/static_exception.cmi \ 4323 + middle_end/flambda/base_types/mutable_variable.cmi \ 4324 + middle_end/flambda/flambda.cmi \ 4325 + middle_end/flambda/base_types/closure_id.cmi 4326 + middle_end/flambda/import_approx.cmo : \ 4327 + middle_end/variable.cmi \ 4328 + middle_end/flambda/base_types/var_within_closure.cmi \ 4329 + middle_end/symbol.cmi \ 4330 + middle_end/flambda/simple_value_approx.cmi \ 4331 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 4332 + utils/misc.cmi \ 4333 + middle_end/flambda/freshening.cmi \ 4334 + middle_end/flambda/flambda_iterators.cmi \ 4335 + middle_end/flambda/flambda.cmi \ 4336 + middle_end/flambda/export_info.cmi \ 4337 + middle_end/flambda/base_types/export_id.cmi \ 4338 + middle_end/compilenv.cmi \ 4339 + middle_end/compilation_unit.cmi \ 4340 + middle_end/flambda/base_types/closure_id.cmi \ 4341 + middle_end/flambda/import_approx.cmi 4342 + middle_end/flambda/import_approx.cmx : \ 4343 + middle_end/variable.cmx \ 4344 + middle_end/flambda/base_types/var_within_closure.cmx \ 4345 + middle_end/symbol.cmx \ 4346 + middle_end/flambda/simple_value_approx.cmx \ 4347 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 4348 + utils/misc.cmx \ 4349 + middle_end/flambda/freshening.cmx \ 4350 + middle_end/flambda/flambda_iterators.cmx \ 4351 + middle_end/flambda/flambda.cmx \ 4352 + middle_end/flambda/export_info.cmx \ 4353 + middle_end/flambda/base_types/export_id.cmx \ 4354 + middle_end/compilenv.cmx \ 4355 + middle_end/compilation_unit.cmx \ 4356 + middle_end/flambda/base_types/closure_id.cmx \ 4357 + middle_end/flambda/import_approx.cmi 4358 + middle_end/flambda/import_approx.cmi : \ 4359 + middle_end/symbol.cmi \ 4360 + middle_end/flambda/simple_value_approx.cmi 4361 + middle_end/flambda/inconstant_idents.cmo : \ 4362 + middle_end/variable.cmi \ 4363 + middle_end/symbol.cmi \ 4364 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 4365 + middle_end/flambda/parameter.cmi \ 4282 4366 utils/numbers.cmi \ 4283 4367 utils/misc.cmi \ 4284 - middle_end/int_replace_polymorphic_compare.cmi \ 4368 + utils/int_replace_polymorphic_compare.cmi \ 4285 4369 utils/identifiable.cmi \ 4286 - middle_end/flambda_utils.cmi \ 4287 - middle_end/flambda.cmi \ 4288 - middle_end/base_types/compilation_unit.cmi \ 4289 - middle_end/base_types/closure_id.cmi \ 4370 + middle_end/flambda/flambda_utils.cmi \ 4371 + middle_end/flambda/flambda.cmi \ 4372 + middle_end/compilation_unit.cmi \ 4373 + middle_end/flambda/base_types/closure_id.cmi \ 4290 4374 middle_end/backend_intf.cmi \ 4291 4375 parsing/asttypes.cmi \ 4292 - middle_end/inconstant_idents.cmi 4293 - middle_end/inconstant_idents.cmx : \ 4294 - middle_end/base_types/variable.cmx \ 4295 - middle_end/base_types/symbol.cmx \ 4296 - middle_end/base_types/set_of_closures_id.cmx \ 4297 - middle_end/parameter.cmx \ 4376 + middle_end/flambda/inconstant_idents.cmi 4377 + middle_end/flambda/inconstant_idents.cmx : \ 4378 + middle_end/variable.cmx \ 4379 + middle_end/symbol.cmx \ 4380 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 4381 + middle_end/flambda/parameter.cmx \ 4298 4382 utils/numbers.cmx \ 4299 4383 utils/misc.cmx \ 4300 - middle_end/int_replace_polymorphic_compare.cmx \ 4384 + utils/int_replace_polymorphic_compare.cmx \ 4301 4385 utils/identifiable.cmx \ 4302 - middle_end/flambda_utils.cmx \ 4303 - middle_end/flambda.cmx \ 4304 - middle_end/base_types/compilation_unit.cmx \ 4305 - middle_end/base_types/closure_id.cmx \ 4386 + middle_end/flambda/flambda_utils.cmx \ 4387 + middle_end/flambda/flambda.cmx \ 4388 + middle_end/compilation_unit.cmx \ 4389 + middle_end/flambda/base_types/closure_id.cmx \ 4306 4390 middle_end/backend_intf.cmi \ 4307 4391 parsing/asttypes.cmi \ 4308 - middle_end/inconstant_idents.cmi 4309 - middle_end/inconstant_idents.cmi : \ 4310 - middle_end/base_types/variable.cmi \ 4311 - middle_end/base_types/set_of_closures_id.cmi \ 4312 - middle_end/flambda.cmi \ 4313 - middle_end/base_types/compilation_unit.cmi \ 4392 + middle_end/flambda/inconstant_idents.cmi 4393 + middle_end/flambda/inconstant_idents.cmi : \ 4394 + middle_end/variable.cmi \ 4395 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 4396 + middle_end/flambda/flambda.cmi \ 4397 + middle_end/compilation_unit.cmi \ 4314 4398 middle_end/backend_intf.cmi 4315 - middle_end/initialize_symbol_to_let_symbol.cmo : \ 4316 - middle_end/base_types/variable.cmi \ 4399 + middle_end/flambda/initialize_symbol_to_let_symbol.cmo : \ 4400 + middle_end/variable.cmi \ 4317 4401 utils/misc.cmi \ 4318 - middle_end/int_replace_polymorphic_compare.cmi \ 4319 - middle_end/flambda.cmi \ 4320 - middle_end/initialize_symbol_to_let_symbol.cmi 4321 - middle_end/initialize_symbol_to_let_symbol.cmx : \ 4322 - middle_end/base_types/variable.cmx \ 4402 + utils/int_replace_polymorphic_compare.cmi \ 4403 + middle_end/flambda/flambda.cmi \ 4404 + middle_end/flambda/initialize_symbol_to_let_symbol.cmi 4405 + middle_end/flambda/initialize_symbol_to_let_symbol.cmx : \ 4406 + middle_end/variable.cmx \ 4323 4407 utils/misc.cmx \ 4324 - middle_end/int_replace_polymorphic_compare.cmx \ 4325 - middle_end/flambda.cmx \ 4326 - middle_end/initialize_symbol_to_let_symbol.cmi 4327 - middle_end/initialize_symbol_to_let_symbol.cmi : \ 4328 - middle_end/flambda.cmi 4329 - middle_end/inline_and_simplify.cmo : \ 4408 + utils/int_replace_polymorphic_compare.cmx \ 4409 + middle_end/flambda/flambda.cmx \ 4410 + middle_end/flambda/initialize_symbol_to_let_symbol.cmi 4411 + middle_end/flambda/initialize_symbol_to_let_symbol.cmi : \ 4412 + middle_end/flambda/flambda.cmi 4413 + middle_end/flambda/inline_and_simplify.cmo : \ 4330 4414 utils/warnings.cmi \ 4331 - middle_end/base_types/variable.cmi \ 4332 - middle_end/base_types/var_within_closure.cmi \ 4333 - middle_end/unbox_specialised_args.cmi \ 4334 - middle_end/unbox_free_vars_of_closures.cmi \ 4335 - middle_end/unbox_closures.cmi \ 4336 - middle_end/base_types/tag.cmi \ 4337 - middle_end/base_types/symbol.cmi \ 4338 - middle_end/base_types/static_exception.cmi \ 4339 - middle_end/simplify_primitives.cmi \ 4340 - middle_end/simple_value_approx.cmi \ 4341 - middle_end/remove_unused_arguments.cmi \ 4342 - middle_end/remove_free_vars_equal_to_args.cmi \ 4343 - middle_end/projection.cmi \ 4415 + middle_end/variable.cmi \ 4416 + middle_end/flambda/base_types/var_within_closure.cmi \ 4417 + middle_end/flambda/unbox_specialised_args.cmi \ 4418 + middle_end/flambda/unbox_free_vars_of_closures.cmi \ 4419 + middle_end/flambda/unbox_closures.cmi \ 4420 + middle_end/flambda/base_types/tag.cmi \ 4421 + middle_end/symbol.cmi \ 4422 + middle_end/flambda/base_types/static_exception.cmi \ 4423 + middle_end/flambda/simplify_primitives.cmi \ 4424 + middle_end/flambda/simple_value_approx.cmi \ 4425 + middle_end/flambda/remove_unused_arguments.cmi \ 4426 + middle_end/flambda/remove_free_vars_equal_to_args.cmi \ 4427 + middle_end/flambda/projection.cmi \ 4344 4428 typing/predef.cmi \ 4345 - middle_end/parameter.cmi \ 4429 + middle_end/flambda/parameter.cmi \ 4346 4430 utils/misc.cmi \ 4347 4431 parsing/location.cmi \ 4348 - middle_end/lift_code.cmi \ 4349 - bytecomp/lambda.cmi \ 4350 - middle_end/invariant_params.cmi \ 4432 + middle_end/flambda/lift_code.cmi \ 4433 + lambda/lambda.cmi \ 4434 + middle_end/flambda/invariant_params.cmi \ 4351 4435 middle_end/internal_variable_names.cmi \ 4352 - middle_end/int_replace_polymorphic_compare.cmi \ 4353 - middle_end/inlining_stats.cmi \ 4354 - middle_end/inlining_decision.cmi \ 4355 - middle_end/inlining_cost.cmi \ 4356 - middle_end/inline_and_simplify_aux.cmi \ 4436 + utils/int_replace_polymorphic_compare.cmi \ 4437 + middle_end/flambda/inlining_stats.cmi \ 4438 + middle_end/flambda/inlining_decision.cmi \ 4439 + middle_end/flambda/inlining_cost.cmi \ 4440 + middle_end/flambda/inline_and_simplify_aux.cmi \ 4357 4441 typing/ident.cmi \ 4358 - middle_end/freshening.cmi \ 4359 - middle_end/flambda_utils.cmi \ 4360 - middle_end/flambda.cmi \ 4361 - middle_end/find_recursive_functions.cmi \ 4362 - middle_end/effect_analysis.cmi \ 4363 - middle_end/debuginfo.cmi \ 4442 + middle_end/flambda/freshening.cmi \ 4443 + middle_end/flambda/flambda_utils.cmi \ 4444 + middle_end/flambda/flambda.cmi \ 4445 + middle_end/flambda/find_recursive_functions.cmi \ 4446 + middle_end/flambda/effect_analysis.cmi \ 4447 + lambda/debuginfo.cmi \ 4364 4448 utils/config.cmi \ 4365 - middle_end/base_types/closure_origin.cmi \ 4366 - middle_end/base_types/closure_id.cmi \ 4449 + middle_end/flambda/base_types/closure_origin.cmi \ 4450 + middle_end/flambda/base_types/closure_id.cmi \ 4367 4451 utils/clflags.cmi \ 4368 - asmcomp/clambda_primitives.cmi \ 4452 + middle_end/clambda_primitives.cmi \ 4369 4453 middle_end/backend_intf.cmi \ 4370 - middle_end/allocated_const.cmi \ 4371 - middle_end/inline_and_simplify.cmi 4372 - middle_end/inline_and_simplify.cmx : \ 4454 + middle_end/flambda/allocated_const.cmi \ 4455 + middle_end/flambda/inline_and_simplify.cmi 4456 + middle_end/flambda/inline_and_simplify.cmx : \ 4373 4457 utils/warnings.cmx \ 4374 - middle_end/base_types/variable.cmx \ 4375 - middle_end/base_types/var_within_closure.cmx \ 4376 - middle_end/unbox_specialised_args.cmx \ 4377 - middle_end/unbox_free_vars_of_closures.cmx \ 4378 - middle_end/unbox_closures.cmx \ 4379 - middle_end/base_types/tag.cmx \ 4380 - middle_end/base_types/symbol.cmx \ 4381 - middle_end/base_types/static_exception.cmx \ 4382 - middle_end/simplify_primitives.cmx \ 4383 - middle_end/simple_value_approx.cmx \ 4384 - middle_end/remove_unused_arguments.cmx \ 4385 - middle_end/remove_free_vars_equal_to_args.cmx \ 4386 - middle_end/projection.cmx \ 4458 + middle_end/variable.cmx \ 4459 + middle_end/flambda/base_types/var_within_closure.cmx \ 4460 + middle_end/flambda/unbox_specialised_args.cmx \ 4461 + middle_end/flambda/unbox_free_vars_of_closures.cmx \ 4462 + middle_end/flambda/unbox_closures.cmx \ 4463 + middle_end/flambda/base_types/tag.cmx \ 4464 + middle_end/symbol.cmx \ 4465 + middle_end/flambda/base_types/static_exception.cmx \ 4466 + middle_end/flambda/simplify_primitives.cmx \ 4467 + middle_end/flambda/simple_value_approx.cmx \ 4468 + middle_end/flambda/remove_unused_arguments.cmx \ 4469 + middle_end/flambda/remove_free_vars_equal_to_args.cmx \ 4470 + middle_end/flambda/projection.cmx \ 4387 4471 typing/predef.cmx \ 4388 - middle_end/parameter.cmx \ 4472 + middle_end/flambda/parameter.cmx \ 4389 4473 utils/misc.cmx \ 4390 4474 parsing/location.cmx \ 4391 - middle_end/lift_code.cmx \ 4392 - bytecomp/lambda.cmx \ 4393 - middle_end/invariant_params.cmx \ 4475 + middle_end/flambda/lift_code.cmx \ 4476 + lambda/lambda.cmx \ 4477 + middle_end/flambda/invariant_params.cmx \ 4394 4478 middle_end/internal_variable_names.cmx \ 4395 - middle_end/int_replace_polymorphic_compare.cmx \ 4396 - middle_end/inlining_stats.cmx \ 4397 - middle_end/inlining_decision.cmx \ 4398 - middle_end/inlining_cost.cmx \ 4399 - middle_end/inline_and_simplify_aux.cmx \ 4479 + utils/int_replace_polymorphic_compare.cmx \ 4480 + middle_end/flambda/inlining_stats.cmx \ 4481 + middle_end/flambda/inlining_decision.cmx \ 4482 + middle_end/flambda/inlining_cost.cmx \ 4483 + middle_end/flambda/inline_and_simplify_aux.cmx \ 4400 4484 typing/ident.cmx \ 4401 - middle_end/freshening.cmx \ 4402 - middle_end/flambda_utils.cmx \ 4403 - middle_end/flambda.cmx \ 4404 - middle_end/find_recursive_functions.cmx \ 4405 - middle_end/effect_analysis.cmx \ 4406 - middle_end/debuginfo.cmx \ 4485 + middle_end/flambda/freshening.cmx \ 4486 + middle_end/flambda/flambda_utils.cmx \ 4487 + middle_end/flambda/flambda.cmx \ 4488 + middle_end/flambda/find_recursive_functions.cmx \ 4489 + middle_end/flambda/effect_analysis.cmx \ 4490 + lambda/debuginfo.cmx \ 4407 4491 utils/config.cmx \ 4408 - middle_end/base_types/closure_origin.cmx \ 4409 - middle_end/base_types/closure_id.cmx \ 4492 + middle_end/flambda/base_types/closure_origin.cmx \ 4493 + middle_end/flambda/base_types/closure_id.cmx \ 4410 4494 utils/clflags.cmx \ 4411 - asmcomp/clambda_primitives.cmx \ 4495 + middle_end/clambda_primitives.cmx \ 4412 4496 middle_end/backend_intf.cmi \ 4413 - middle_end/allocated_const.cmx \ 4414 - middle_end/inline_and_simplify.cmi 4415 - middle_end/inline_and_simplify.cmi : \ 4416 - middle_end/base_types/variable.cmi \ 4417 - middle_end/inline_and_simplify_aux.cmi \ 4418 - middle_end/flambda.cmi \ 4497 + middle_end/flambda/allocated_const.cmx \ 4498 + middle_end/flambda/inline_and_simplify.cmi 4499 + middle_end/flambda/inline_and_simplify.cmi : \ 4500 + middle_end/variable.cmi \ 4501 + middle_end/flambda/inline_and_simplify_aux.cmi \ 4502 + middle_end/flambda/flambda.cmi \ 4419 4503 middle_end/backend_intf.cmi 4420 - middle_end/inline_and_simplify_aux.cmo : \ 4421 - middle_end/base_types/variable.cmi \ 4422 - middle_end/base_types/var_within_closure.cmi \ 4423 - middle_end/base_types/symbol.cmi \ 4424 - middle_end/base_types/static_exception.cmi \ 4425 - middle_end/simple_value_approx.cmi \ 4426 - middle_end/base_types/set_of_closures_origin.cmi \ 4427 - middle_end/projection.cmi \ 4428 - middle_end/parameter.cmi \ 4429 - middle_end/base_types/mutable_variable.cmi \ 4504 + middle_end/flambda/inline_and_simplify_aux.cmo : \ 4505 + middle_end/variable.cmi \ 4506 + middle_end/flambda/base_types/var_within_closure.cmi \ 4507 + middle_end/symbol.cmi \ 4508 + middle_end/flambda/base_types/static_exception.cmi \ 4509 + middle_end/flambda/simple_value_approx.cmi \ 4510 + middle_end/flambda/base_types/set_of_closures_origin.cmi \ 4511 + middle_end/flambda/projection.cmi \ 4512 + middle_end/flambda/parameter.cmi \ 4513 + middle_end/flambda/base_types/mutable_variable.cmi \ 4430 4514 utils/misc.cmi \ 4431 - middle_end/int_replace_polymorphic_compare.cmi \ 4432 - middle_end/inlining_stats.cmi \ 4433 - middle_end/inlining_cost.cmi \ 4434 - middle_end/freshening.cmi \ 4435 - middle_end/flambda_utils.cmi \ 4436 - middle_end/flambda.cmi \ 4437 - middle_end/debuginfo.cmi \ 4438 - middle_end/base_types/compilation_unit.cmi \ 4439 - middle_end/base_types/closure_origin.cmi \ 4440 - middle_end/base_types/closure_id.cmi \ 4515 + utils/int_replace_polymorphic_compare.cmi \ 4516 + middle_end/flambda/inlining_stats.cmi \ 4517 + middle_end/flambda/inlining_cost.cmi \ 4518 + middle_end/flambda/freshening.cmi \ 4519 + middle_end/flambda/flambda_utils.cmi \ 4520 + middle_end/flambda/flambda.cmi \ 4521 + lambda/debuginfo.cmi \ 4522 + middle_end/compilation_unit.cmi \ 4523 + middle_end/flambda/base_types/closure_origin.cmi \ 4524 + middle_end/flambda/base_types/closure_id.cmi \ 4441 4525 utils/clflags.cmi \ 4442 4526 middle_end/backend_intf.cmi \ 4443 - middle_end/inline_and_simplify_aux.cmi 4444 - middle_end/inline_and_simplify_aux.cmx : \ 4445 - middle_end/base_types/variable.cmx \ 4446 - middle_end/base_types/var_within_closure.cmx \ 4447 - middle_end/base_types/symbol.cmx \ 4448 - middle_end/base_types/static_exception.cmx \ 4449 - middle_end/simple_value_approx.cmx \ 4450 - middle_end/base_types/set_of_closures_origin.cmx \ 4451 - middle_end/projection.cmx \ 4452 - middle_end/parameter.cmx \ 4453 - middle_end/base_types/mutable_variable.cmx \ 4527 + middle_end/flambda/inline_and_simplify_aux.cmi 4528 + middle_end/flambda/inline_and_simplify_aux.cmx : \ 4529 + middle_end/variable.cmx \ 4530 + middle_end/flambda/base_types/var_within_closure.cmx \ 4531 + middle_end/symbol.cmx \ 4532 + middle_end/flambda/base_types/static_exception.cmx \ 4533 + middle_end/flambda/simple_value_approx.cmx \ 4534 + middle_end/flambda/base_types/set_of_closures_origin.cmx \ 4535 + middle_end/flambda/projection.cmx \ 4536 + middle_end/flambda/parameter.cmx \ 4537 + middle_end/flambda/base_types/mutable_variable.cmx \ 4454 4538 utils/misc.cmx \ 4455 - middle_end/int_replace_polymorphic_compare.cmx \ 4456 - middle_end/inlining_stats.cmx \ 4457 - middle_end/inlining_cost.cmx \ 4458 - middle_end/freshening.cmx \ 4459 - middle_end/flambda_utils.cmx \ 4460 - middle_end/flambda.cmx \ 4461 - middle_end/debuginfo.cmx \ 4462 - middle_end/base_types/compilation_unit.cmx \ 4463 - middle_end/base_types/closure_origin.cmx \ 4464 - middle_end/base_types/closure_id.cmx \ 4539 + utils/int_replace_polymorphic_compare.cmx \ 4540 + middle_end/flambda/inlining_stats.cmx \ 4541 + middle_end/flambda/inlining_cost.cmx \ 4542 + middle_end/flambda/freshening.cmx \ 4543 + middle_end/flambda/flambda_utils.cmx \ 4544 + middle_end/flambda/flambda.cmx \ 4545 + lambda/debuginfo.cmx \ 4546 + middle_end/compilation_unit.cmx \ 4547 + middle_end/flambda/base_types/closure_origin.cmx \ 4548 + middle_end/flambda/base_types/closure_id.cmx \ 4465 4549 utils/clflags.cmx \ 4466 4550 middle_end/backend_intf.cmi \ 4467 - middle_end/inline_and_simplify_aux.cmi 4468 - middle_end/inline_and_simplify_aux.cmi : \ 4469 - middle_end/base_types/variable.cmi \ 4470 - middle_end/base_types/symbol.cmi \ 4471 - middle_end/base_types/static_exception.cmi \ 4472 - middle_end/simple_value_approx.cmi \ 4473 - middle_end/base_types/set_of_closures_origin.cmi \ 4474 - middle_end/projection.cmi \ 4475 - middle_end/base_types/mutable_variable.cmi \ 4476 - middle_end/inlining_stats_types.cmi \ 4477 - middle_end/inlining_cost.cmi \ 4478 - middle_end/freshening.cmi \ 4479 - middle_end/flambda.cmi \ 4480 - middle_end/debuginfo.cmi \ 4481 - middle_end/base_types/closure_origin.cmi \ 4482 - middle_end/base_types/closure_id.cmi \ 4551 + middle_end/flambda/inline_and_simplify_aux.cmi 4552 + middle_end/flambda/inline_and_simplify_aux.cmi : \ 4553 + middle_end/variable.cmi \ 4554 + middle_end/symbol.cmi \ 4555 + middle_end/flambda/base_types/static_exception.cmi \ 4556 + middle_end/flambda/simple_value_approx.cmi \ 4557 + middle_end/flambda/base_types/set_of_closures_origin.cmi \ 4558 + middle_end/flambda/projection.cmi \ 4559 + middle_end/flambda/base_types/mutable_variable.cmi \ 4560 + middle_end/flambda/inlining_stats_types.cmi \ 4561 + middle_end/flambda/inlining_cost.cmi \ 4562 + middle_end/flambda/freshening.cmi \ 4563 + middle_end/flambda/flambda.cmi \ 4564 + lambda/debuginfo.cmi \ 4565 + middle_end/flambda/base_types/closure_origin.cmi \ 4566 + middle_end/flambda/base_types/closure_id.cmi \ 4483 4567 middle_end/backend_intf.cmi 4484 - middle_end/inlining_cost.cmo : \ 4485 - middle_end/base_types/variable.cmi \ 4486 - middle_end/projection.cmi \ 4568 + middle_end/flambda/inlining_cost.cmo : \ 4569 + middle_end/variable.cmi \ 4570 + middle_end/flambda/projection.cmi \ 4487 4571 typing/primitive.cmi \ 4488 4572 utils/misc.cmi \ 4489 - middle_end/int_replace_polymorphic_compare.cmi \ 4490 - middle_end/flambda_iterators.cmi \ 4491 - middle_end/flambda.cmi \ 4573 + utils/int_replace_polymorphic_compare.cmi \ 4574 + middle_end/flambda/flambda_iterators.cmi \ 4575 + middle_end/flambda/flambda.cmi \ 4492 4576 utils/clflags.cmi \ 4493 - asmcomp/clambda_primitives.cmi \ 4494 - middle_end/inlining_cost.cmi 4495 - middle_end/inlining_cost.cmx : \ 4496 - middle_end/base_types/variable.cmx \ 4497 - middle_end/projection.cmx \ 4577 + middle_end/clambda_primitives.cmi \ 4578 + middle_end/flambda/inlining_cost.cmi 4579 + middle_end/flambda/inlining_cost.cmx : \ 4580 + middle_end/variable.cmx \ 4581 + middle_end/flambda/projection.cmx \ 4498 4582 typing/primitive.cmx \ 4499 4583 utils/misc.cmx \ 4500 - middle_end/int_replace_polymorphic_compare.cmx \ 4501 - middle_end/flambda_iterators.cmx \ 4502 - middle_end/flambda.cmx \ 4584 + utils/int_replace_polymorphic_compare.cmx \ 4585 + middle_end/flambda/flambda_iterators.cmx \ 4586 + middle_end/flambda/flambda.cmx \ 4503 4587 utils/clflags.cmx \ 4504 - asmcomp/clambda_primitives.cmx \ 4505 - middle_end/inlining_cost.cmi 4506 - middle_end/inlining_cost.cmi : \ 4507 - middle_end/projection.cmi \ 4508 - middle_end/flambda.cmi 4509 - middle_end/inlining_decision.cmo : \ 4510 - middle_end/base_types/variable.cmi \ 4511 - middle_end/base_types/var_within_closure.cmi \ 4512 - middle_end/simple_value_approx.cmi \ 4513 - middle_end/parameter.cmi \ 4588 + middle_end/clambda_primitives.cmx \ 4589 + middle_end/flambda/inlining_cost.cmi 4590 + middle_end/flambda/inlining_cost.cmi : \ 4591 + middle_end/flambda/projection.cmi \ 4592 + middle_end/flambda/flambda.cmi 4593 + middle_end/flambda/inlining_decision.cmo : \ 4594 + middle_end/variable.cmi \ 4595 + middle_end/flambda/base_types/var_within_closure.cmi \ 4596 + middle_end/flambda/simple_value_approx.cmi \ 4597 + middle_end/flambda/parameter.cmi \ 4514 4598 utils/misc.cmi \ 4515 - bytecomp/lambda.cmi \ 4516 - middle_end/int_replace_polymorphic_compare.cmi \ 4517 - middle_end/inlining_transforms.cmi \ 4518 - middle_end/inlining_stats_types.cmi \ 4519 - middle_end/inlining_cost.cmi \ 4520 - middle_end/inline_and_simplify_aux.cmi \ 4521 - middle_end/flambda.cmi \ 4522 - middle_end/base_types/closure_id.cmi \ 4599 + lambda/lambda.cmi \ 4600 + utils/int_replace_polymorphic_compare.cmi \ 4601 + middle_end/flambda/inlining_transforms.cmi \ 4602 + middle_end/flambda/inlining_stats_types.cmi \ 4603 + middle_end/flambda/inlining_cost.cmi \ 4604 + middle_end/flambda/inline_and_simplify_aux.cmi \ 4605 + middle_end/flambda/flambda.cmi \ 4606 + middle_end/flambda/base_types/closure_id.cmi \ 4523 4607 utils/clflags.cmi \ 4524 - middle_end/inlining_decision.cmi 4525 - middle_end/inlining_decision.cmx : \ 4526 - middle_end/base_types/variable.cmx \ 4527 - middle_end/base_types/var_within_closure.cmx \ 4528 - middle_end/simple_value_approx.cmx \ 4529 - middle_end/parameter.cmx \ 4608 + middle_end/flambda/inlining_decision.cmi 4609 + middle_end/flambda/inlining_decision.cmx : \ 4610 + middle_end/variable.cmx \ 4611 + middle_end/flambda/base_types/var_within_closure.cmx \ 4612 + middle_end/flambda/simple_value_approx.cmx \ 4613 + middle_end/flambda/parameter.cmx \ 4530 4614 utils/misc.cmx \ 4531 - bytecomp/lambda.cmx \ 4532 - middle_end/int_replace_polymorphic_compare.cmx \ 4533 - middle_end/inlining_transforms.cmx \ 4534 - middle_end/inlining_stats_types.cmx \ 4535 - middle_end/inlining_cost.cmx \ 4536 - middle_end/inline_and_simplify_aux.cmx \ 4537 - middle_end/flambda.cmx \ 4538 - middle_end/base_types/closure_id.cmx \ 4615 + lambda/lambda.cmx \ 4616 + utils/int_replace_polymorphic_compare.cmx \ 4617 + middle_end/flambda/inlining_transforms.cmx \ 4618 + middle_end/flambda/inlining_stats_types.cmx \ 4619 + middle_end/flambda/inlining_cost.cmx \ 4620 + middle_end/flambda/inline_and_simplify_aux.cmx \ 4621 + middle_end/flambda/flambda.cmx \ 4622 + middle_end/flambda/base_types/closure_id.cmx \ 4539 4623 utils/clflags.cmx \ 4540 - middle_end/inlining_decision.cmi 4541 - middle_end/inlining_decision.cmi : \ 4542 - middle_end/base_types/variable.cmi \ 4543 - middle_end/simple_value_approx.cmi \ 4544 - bytecomp/lambda.cmi \ 4545 - middle_end/inlining_decision_intf.cmi \ 4546 - middle_end/inline_and_simplify_aux.cmi \ 4547 - middle_end/flambda.cmi \ 4548 - middle_end/debuginfo.cmi \ 4549 - middle_end/base_types/closure_id.cmi 4550 - middle_end/inlining_decision_intf.cmi : \ 4551 - middle_end/base_types/variable.cmi \ 4552 - middle_end/simple_value_approx.cmi \ 4553 - middle_end/inline_and_simplify_aux.cmi \ 4554 - middle_end/flambda.cmi \ 4555 - middle_end/debuginfo.cmi \ 4556 - middle_end/base_types/closure_id.cmi 4557 - middle_end/inlining_stats.cmo : \ 4624 + middle_end/flambda/inlining_decision.cmi 4625 + middle_end/flambda/inlining_decision.cmi : \ 4626 + middle_end/variable.cmi \ 4627 + middle_end/flambda/simple_value_approx.cmi \ 4628 + lambda/lambda.cmi \ 4629 + middle_end/flambda/inlining_decision_intf.cmi \ 4630 + middle_end/flambda/inline_and_simplify_aux.cmi \ 4631 + middle_end/flambda/flambda.cmi \ 4632 + lambda/debuginfo.cmi \ 4633 + middle_end/flambda/base_types/closure_id.cmi 4634 + middle_end/flambda/inlining_decision_intf.cmi : \ 4635 + middle_end/variable.cmi \ 4636 + middle_end/flambda/simple_value_approx.cmi \ 4637 + middle_end/flambda/inline_and_simplify_aux.cmi \ 4638 + middle_end/flambda/flambda.cmi \ 4639 + lambda/debuginfo.cmi \ 4640 + middle_end/flambda/base_types/closure_id.cmi 4641 + middle_end/flambda/inlining_stats.cmo : \ 4558 4642 utils/misc.cmi \ 4559 - middle_end/int_replace_polymorphic_compare.cmi \ 4560 - middle_end/inlining_stats_types.cmi \ 4561 - middle_end/debuginfo.cmi \ 4562 - middle_end/base_types/closure_id.cmi \ 4643 + utils/int_replace_polymorphic_compare.cmi \ 4644 + middle_end/flambda/inlining_stats_types.cmi \ 4645 + lambda/debuginfo.cmi \ 4646 + middle_end/flambda/base_types/closure_id.cmi \ 4563 4647 utils/clflags.cmi \ 4564 - middle_end/inlining_stats.cmi 4565 - middle_end/inlining_stats.cmx : \ 4648 + middle_end/flambda/inlining_stats.cmi 4649 + middle_end/flambda/inlining_stats.cmx : \ 4566 4650 utils/misc.cmx \ 4567 - middle_end/int_replace_polymorphic_compare.cmx \ 4568 - middle_end/inlining_stats_types.cmx \ 4569 - middle_end/debuginfo.cmx \ 4570 - middle_end/base_types/closure_id.cmx \ 4651 + utils/int_replace_polymorphic_compare.cmx \ 4652 + middle_end/flambda/inlining_stats_types.cmx \ 4653 + lambda/debuginfo.cmx \ 4654 + middle_end/flambda/base_types/closure_id.cmx \ 4571 4655 utils/clflags.cmx \ 4572 - middle_end/inlining_stats.cmi 4573 - middle_end/inlining_stats.cmi : \ 4574 - middle_end/inlining_stats_types.cmi \ 4575 - middle_end/debuginfo.cmi \ 4576 - middle_end/base_types/closure_id.cmi 4577 - middle_end/inlining_stats_types.cmo : \ 4578 - middle_end/int_replace_polymorphic_compare.cmi \ 4579 - middle_end/inlining_cost.cmi \ 4580 - middle_end/inlining_stats_types.cmi 4581 - middle_end/inlining_stats_types.cmx : \ 4582 - middle_end/int_replace_polymorphic_compare.cmx \ 4583 - middle_end/inlining_cost.cmx \ 4584 - middle_end/inlining_stats_types.cmi 4585 - middle_end/inlining_stats_types.cmi : \ 4586 - middle_end/inlining_cost.cmi 4587 - middle_end/inlining_transforms.cmo : \ 4588 - middle_end/base_types/variable.cmi \ 4589 - middle_end/base_types/var_within_closure.cmi \ 4590 - middle_end/simple_value_approx.cmi \ 4591 - middle_end/projection.cmi \ 4592 - middle_end/parameter.cmi \ 4593 - bytecomp/lambda.cmi \ 4656 + middle_end/flambda/inlining_stats.cmi 4657 + middle_end/flambda/inlining_stats.cmi : \ 4658 + middle_end/flambda/inlining_stats_types.cmi \ 4659 + lambda/debuginfo.cmi \ 4660 + middle_end/flambda/base_types/closure_id.cmi 4661 + middle_end/flambda/inlining_stats_types.cmo : \ 4662 + utils/int_replace_polymorphic_compare.cmi \ 4663 + middle_end/flambda/inlining_cost.cmi \ 4664 + middle_end/flambda/inlining_stats_types.cmi 4665 + middle_end/flambda/inlining_stats_types.cmx : \ 4666 + utils/int_replace_polymorphic_compare.cmx \ 4667 + middle_end/flambda/inlining_cost.cmx \ 4668 + middle_end/flambda/inlining_stats_types.cmi 4669 + middle_end/flambda/inlining_stats_types.cmi : \ 4670 + middle_end/flambda/inlining_cost.cmi 4671 + middle_end/flambda/inlining_transforms.cmo : \ 4672 + middle_end/variable.cmi \ 4673 + middle_end/flambda/base_types/var_within_closure.cmi \ 4674 + middle_end/flambda/simple_value_approx.cmi \ 4675 + middle_end/flambda/projection.cmi \ 4676 + middle_end/flambda/parameter.cmi \ 4677 + lambda/lambda.cmi \ 4594 4678 middle_end/internal_variable_names.cmi \ 4595 - middle_end/int_replace_polymorphic_compare.cmi \ 4596 - middle_end/inlining_decision_intf.cmi \ 4597 - middle_end/inlining_cost.cmi \ 4598 - middle_end/inline_and_simplify_aux.cmi \ 4599 - middle_end/flambda_utils.cmi \ 4600 - middle_end/flambda_iterators.cmi \ 4601 - middle_end/flambda.cmi \ 4602 - middle_end/debuginfo.cmi \ 4603 - middle_end/base_types/compilation_unit.cmi \ 4604 - middle_end/base_types/closure_origin.cmi \ 4605 - middle_end/base_types/closure_id.cmi \ 4606 - middle_end/inlining_transforms.cmi 4607 - middle_end/inlining_transforms.cmx : \ 4608 - middle_end/base_types/variable.cmx \ 4609 - middle_end/base_types/var_within_closure.cmx \ 4610 - middle_end/simple_value_approx.cmx \ 4611 - middle_end/projection.cmx \ 4612 - middle_end/parameter.cmx \ 4613 - bytecomp/lambda.cmx \ 4679 + utils/int_replace_polymorphic_compare.cmi \ 4680 + middle_end/flambda/inlining_decision_intf.cmi \ 4681 + middle_end/flambda/inlining_cost.cmi \ 4682 + middle_end/flambda/inline_and_simplify_aux.cmi \ 4683 + middle_end/flambda/flambda_utils.cmi \ 4684 + middle_end/flambda/flambda_iterators.cmi \ 4685 + middle_end/flambda/flambda.cmi \ 4686 + lambda/debuginfo.cmi \ 4687 + middle_end/compilation_unit.cmi \ 4688 + middle_end/flambda/base_types/closure_origin.cmi \ 4689 + middle_end/flambda/base_types/closure_id.cmi \ 4690 + middle_end/flambda/inlining_transforms.cmi 4691 + middle_end/flambda/inlining_transforms.cmx : \ 4692 + middle_end/variable.cmx \ 4693 + middle_end/flambda/base_types/var_within_closure.cmx \ 4694 + middle_end/flambda/simple_value_approx.cmx \ 4695 + middle_end/flambda/projection.cmx \ 4696 + middle_end/flambda/parameter.cmx \ 4697 + lambda/lambda.cmx \ 4614 4698 middle_end/internal_variable_names.cmx \ 4615 - middle_end/int_replace_polymorphic_compare.cmx \ 4616 - middle_end/inlining_decision_intf.cmi \ 4617 - middle_end/inlining_cost.cmx \ 4618 - middle_end/inline_and_simplify_aux.cmx \ 4619 - middle_end/flambda_utils.cmx \ 4620 - middle_end/flambda_iterators.cmx \ 4621 - middle_end/flambda.cmx \ 4622 - middle_end/debuginfo.cmx \ 4623 - middle_end/base_types/compilation_unit.cmx \ 4624 - middle_end/base_types/closure_origin.cmx \ 4625 - middle_end/base_types/closure_id.cmx \ 4626 - middle_end/inlining_transforms.cmi 4627 - middle_end/inlining_transforms.cmi : \ 4628 - middle_end/base_types/variable.cmi \ 4629 - middle_end/simple_value_approx.cmi \ 4630 - bytecomp/lambda.cmi \ 4631 - middle_end/inlining_decision_intf.cmi \ 4632 - middle_end/inline_and_simplify_aux.cmi \ 4633 - middle_end/flambda.cmi \ 4634 - middle_end/debuginfo.cmi \ 4635 - middle_end/base_types/closure_id.cmi 4636 - middle_end/int_replace_polymorphic_compare.cmo : \ 4637 - middle_end/int_replace_polymorphic_compare.cmi 4638 - middle_end/int_replace_polymorphic_compare.cmx : \ 4639 - middle_end/int_replace_polymorphic_compare.cmi 4640 - middle_end/int_replace_polymorphic_compare.cmi : 4641 - middle_end/internal_variable_names.cmo : \ 4642 - parsing/location.cmi \ 4643 - bytecomp/lambda.cmi \ 4644 - middle_end/int_replace_polymorphic_compare.cmi \ 4645 - middle_end/internal_variable_names.cmi 4646 - middle_end/internal_variable_names.cmx : \ 4647 - parsing/location.cmx \ 4648 - bytecomp/lambda.cmx \ 4649 - middle_end/int_replace_polymorphic_compare.cmx \ 4650 - middle_end/internal_variable_names.cmi 4651 - middle_end/internal_variable_names.cmi : \ 4652 - parsing/location.cmi \ 4653 - bytecomp/lambda.cmi 4654 - middle_end/invariant_params.cmo : \ 4655 - middle_end/base_types/variable.cmi \ 4656 - middle_end/base_types/symbol.cmi \ 4657 - middle_end/parameter.cmi \ 4658 - middle_end/int_replace_polymorphic_compare.cmi \ 4659 - middle_end/flambda_utils.cmi \ 4660 - middle_end/flambda_iterators.cmi \ 4661 - middle_end/flambda.cmi \ 4662 - middle_end/base_types/closure_id.cmi \ 4699 + utils/int_replace_polymorphic_compare.cmx \ 4700 + middle_end/flambda/inlining_decision_intf.cmi \ 4701 + middle_end/flambda/inlining_cost.cmx \ 4702 + middle_end/flambda/inline_and_simplify_aux.cmx \ 4703 + middle_end/flambda/flambda_utils.cmx \ 4704 + middle_end/flambda/flambda_iterators.cmx \ 4705 + middle_end/flambda/flambda.cmx \ 4706 + lambda/debuginfo.cmx \ 4707 + middle_end/compilation_unit.cmx \ 4708 + middle_end/flambda/base_types/closure_origin.cmx \ 4709 + middle_end/flambda/base_types/closure_id.cmx \ 4710 + middle_end/flambda/inlining_transforms.cmi 4711 + middle_end/flambda/inlining_transforms.cmi : \ 4712 + middle_end/variable.cmi \ 4713 + middle_end/flambda/simple_value_approx.cmi \ 4714 + lambda/lambda.cmi \ 4715 + middle_end/flambda/inlining_decision_intf.cmi \ 4716 + middle_end/flambda/inline_and_simplify_aux.cmi \ 4717 + middle_end/flambda/flambda.cmi \ 4718 + lambda/debuginfo.cmi \ 4719 + middle_end/flambda/base_types/closure_id.cmi 4720 + middle_end/flambda/invariant_params.cmo : \ 4721 + middle_end/variable.cmi \ 4722 + middle_end/symbol.cmi \ 4723 + middle_end/flambda/parameter.cmi \ 4724 + utils/int_replace_polymorphic_compare.cmi \ 4725 + middle_end/flambda/flambda_utils.cmi \ 4726 + middle_end/flambda/flambda_iterators.cmi \ 4727 + middle_end/flambda/flambda.cmi \ 4728 + middle_end/flambda/base_types/closure_id.cmi \ 4663 4729 utils/clflags.cmi \ 4664 4730 middle_end/backend_intf.cmi \ 4665 - middle_end/invariant_params.cmi 4666 - middle_end/invariant_params.cmx : \ 4667 - middle_end/base_types/variable.cmx \ 4668 - middle_end/base_types/symbol.cmx \ 4669 - middle_end/parameter.cmx \ 4670 - middle_end/int_replace_polymorphic_compare.cmx \ 4671 - middle_end/flambda_utils.cmx \ 4672 - middle_end/flambda_iterators.cmx \ 4673 - middle_end/flambda.cmx \ 4674 - middle_end/base_types/closure_id.cmx \ 4731 + middle_end/flambda/invariant_params.cmi 4732 + middle_end/flambda/invariant_params.cmx : \ 4733 + middle_end/variable.cmx \ 4734 + middle_end/symbol.cmx \ 4735 + middle_end/flambda/parameter.cmx \ 4736 + utils/int_replace_polymorphic_compare.cmx \ 4737 + middle_end/flambda/flambda_utils.cmx \ 4738 + middle_end/flambda/flambda_iterators.cmx \ 4739 + middle_end/flambda/flambda.cmx \ 4740 + middle_end/flambda/base_types/closure_id.cmx \ 4675 4741 utils/clflags.cmx \ 4676 4742 middle_end/backend_intf.cmi \ 4677 - middle_end/invariant_params.cmi 4678 - middle_end/invariant_params.cmi : \ 4679 - middle_end/base_types/variable.cmi \ 4680 - middle_end/flambda.cmi \ 4743 + middle_end/flambda/invariant_params.cmi 4744 + middle_end/flambda/invariant_params.cmi : \ 4745 + middle_end/variable.cmi \ 4746 + middle_end/flambda/flambda.cmi \ 4681 4747 middle_end/backend_intf.cmi 4682 - middle_end/lift_code.cmo : \ 4683 - middle_end/base_types/variable.cmi \ 4748 + middle_end/flambda/lift_code.cmo : \ 4749 + middle_end/variable.cmi \ 4684 4750 utils/strongly_connected_components.cmi \ 4685 - middle_end/int_replace_polymorphic_compare.cmi \ 4686 - middle_end/flambda_iterators.cmi \ 4687 - middle_end/flambda.cmi \ 4688 - middle_end/base_types/compilation_unit.cmi \ 4689 - middle_end/lift_code.cmi 4690 - middle_end/lift_code.cmx : \ 4691 - middle_end/base_types/variable.cmx \ 4751 + utils/int_replace_polymorphic_compare.cmi \ 4752 + middle_end/flambda/flambda_iterators.cmi \ 4753 + middle_end/flambda/flambda.cmi \ 4754 + middle_end/compilation_unit.cmi \ 4755 + middle_end/flambda/lift_code.cmi 4756 + middle_end/flambda/lift_code.cmx : \ 4757 + middle_end/variable.cmx \ 4692 4758 utils/strongly_connected_components.cmx \ 4693 - middle_end/int_replace_polymorphic_compare.cmx \ 4694 - middle_end/flambda_iterators.cmx \ 4695 - middle_end/flambda.cmx \ 4696 - middle_end/base_types/compilation_unit.cmx \ 4697 - middle_end/lift_code.cmi 4698 - middle_end/lift_code.cmi : \ 4699 - middle_end/base_types/variable.cmi \ 4759 + utils/int_replace_polymorphic_compare.cmx \ 4760 + middle_end/flambda/flambda_iterators.cmx \ 4761 + middle_end/flambda/flambda.cmx \ 4762 + middle_end/compilation_unit.cmx \ 4763 + middle_end/flambda/lift_code.cmi 4764 + middle_end/flambda/lift_code.cmi : \ 4765 + middle_end/variable.cmi \ 4700 4766 middle_end/internal_variable_names.cmi \ 4701 - middle_end/flambda.cmi 4702 - middle_end/lift_constants.cmo : \ 4703 - middle_end/base_types/variable.cmi \ 4704 - middle_end/base_types/var_within_closure.cmi \ 4705 - middle_end/base_types/tag.cmi \ 4706 - middle_end/base_types/symbol.cmi \ 4767 + middle_end/flambda/flambda.cmi 4768 + middle_end/flambda/lift_constants.cmo : \ 4769 + middle_end/variable.cmi \ 4770 + middle_end/flambda/base_types/var_within_closure.cmi \ 4771 + middle_end/flambda/base_types/tag.cmi \ 4772 + middle_end/symbol.cmi \ 4707 4773 utils/strongly_connected_components.cmi \ 4708 - middle_end/simple_value_approx.cmi \ 4774 + middle_end/flambda/simple_value_approx.cmi \ 4709 4775 utils/misc.cmi \ 4710 4776 middle_end/internal_variable_names.cmi \ 4711 - middle_end/int_replace_polymorphic_compare.cmi \ 4712 - middle_end/inconstant_idents.cmi \ 4713 - middle_end/flambda_utils.cmi \ 4714 - middle_end/flambda_iterators.cmi \ 4715 - middle_end/flambda.cmi \ 4716 - middle_end/base_types/compilation_unit.cmi \ 4717 - middle_end/base_types/closure_id.cmi \ 4777 + utils/int_replace_polymorphic_compare.cmi \ 4778 + middle_end/flambda/inconstant_idents.cmi \ 4779 + middle_end/flambda/flambda_utils.cmi \ 4780 + middle_end/flambda/flambda_iterators.cmi \ 4781 + middle_end/flambda/flambda.cmi \ 4782 + middle_end/compilation_unit.cmi \ 4783 + middle_end/flambda/base_types/closure_id.cmi \ 4718 4784 middle_end/backend_intf.cmi \ 4719 4785 parsing/asttypes.cmi \ 4720 - middle_end/allocated_const.cmi \ 4721 - middle_end/alias_analysis.cmi \ 4722 - middle_end/lift_constants.cmi 4723 - middle_end/lift_constants.cmx : \ 4724 - middle_end/base_types/variable.cmx \ 4725 - middle_end/base_types/var_within_closure.cmx \ 4726 - middle_end/base_types/tag.cmx \ 4727 - middle_end/base_types/symbol.cmx \ 4786 + middle_end/flambda/allocated_const.cmi \ 4787 + middle_end/flambda/alias_analysis.cmi \ 4788 + middle_end/flambda/lift_constants.cmi 4789 + middle_end/flambda/lift_constants.cmx : \ 4790 + middle_end/variable.cmx \ 4791 + middle_end/flambda/base_types/var_within_closure.cmx \ 4792 + middle_end/flambda/base_types/tag.cmx \ 4793 + middle_end/symbol.cmx \ 4728 4794 utils/strongly_connected_components.cmx \ 4729 - middle_end/simple_value_approx.cmx \ 4795 + middle_end/flambda/simple_value_approx.cmx \ 4730 4796 utils/misc.cmx \ 4731 4797 middle_end/internal_variable_names.cmx \ 4732 - middle_end/int_replace_polymorphic_compare.cmx \ 4733 - middle_end/inconstant_idents.cmx \ 4734 - middle_end/flambda_utils.cmx \ 4735 - middle_end/flambda_iterators.cmx \ 4736 - middle_end/flambda.cmx \ 4737 - middle_end/base_types/compilation_unit.cmx \ 4738 - middle_end/base_types/closure_id.cmx \ 4798 + utils/int_replace_polymorphic_compare.cmx \ 4799 + middle_end/flambda/inconstant_idents.cmx \ 4800 + middle_end/flambda/flambda_utils.cmx \ 4801 + middle_end/flambda/flambda_iterators.cmx \ 4802 + middle_end/flambda/flambda.cmx \ 4803 + middle_end/compilation_unit.cmx \ 4804 + middle_end/flambda/base_types/closure_id.cmx \ 4739 4805 middle_end/backend_intf.cmi \ 4740 4806 parsing/asttypes.cmi \ 4741 - middle_end/allocated_const.cmx \ 4742 - middle_end/alias_analysis.cmx \ 4743 - middle_end/lift_constants.cmi 4744 - middle_end/lift_constants.cmi : \ 4745 - middle_end/flambda.cmi \ 4807 + middle_end/flambda/allocated_const.cmx \ 4808 + middle_end/flambda/alias_analysis.cmx \ 4809 + middle_end/flambda/lift_constants.cmi 4810 + middle_end/flambda/lift_constants.cmi : \ 4811 + middle_end/flambda/flambda.cmi \ 4746 4812 middle_end/backend_intf.cmi 4747 - middle_end/lift_let_to_initialize_symbol.cmo : \ 4748 - middle_end/base_types/variable.cmi \ 4749 - middle_end/base_types/tag.cmi \ 4750 - middle_end/base_types/symbol.cmi \ 4813 + middle_end/flambda/lift_let_to_initialize_symbol.cmo : \ 4814 + middle_end/variable.cmi \ 4815 + middle_end/flambda/base_types/tag.cmi \ 4816 + middle_end/symbol.cmi \ 4751 4817 middle_end/internal_variable_names.cmi \ 4752 - middle_end/int_replace_polymorphic_compare.cmi \ 4753 - middle_end/flambda_utils.cmi \ 4754 - middle_end/flambda.cmi \ 4755 - middle_end/debuginfo.cmi \ 4818 + utils/int_replace_polymorphic_compare.cmi \ 4819 + middle_end/flambda/flambda_utils.cmi \ 4820 + middle_end/flambda/flambda.cmi \ 4821 + lambda/debuginfo.cmi \ 4756 4822 parsing/asttypes.cmi \ 4757 - middle_end/lift_let_to_initialize_symbol.cmi 4758 - middle_end/lift_let_to_initialize_symbol.cmx : \ 4759 - middle_end/base_types/variable.cmx \ 4760 - middle_end/base_types/tag.cmx \ 4761 - middle_end/base_types/symbol.cmx \ 4823 + middle_end/flambda/lift_let_to_initialize_symbol.cmi 4824 + middle_end/flambda/lift_let_to_initialize_symbol.cmx : \ 4825 + middle_end/variable.cmx \ 4826 + middle_end/flambda/base_types/tag.cmx \ 4827 + middle_end/symbol.cmx \ 4762 4828 middle_end/internal_variable_names.cmx \ 4763 - middle_end/int_replace_polymorphic_compare.cmx \ 4764 - middle_end/flambda_utils.cmx \ 4765 - middle_end/flambda.cmx \ 4766 - middle_end/debuginfo.cmx \ 4829 + utils/int_replace_polymorphic_compare.cmx \ 4830 + middle_end/flambda/flambda_utils.cmx \ 4831 + middle_end/flambda/flambda.cmx \ 4832 + lambda/debuginfo.cmx \ 4767 4833 parsing/asttypes.cmi \ 4768 - middle_end/lift_let_to_initialize_symbol.cmi 4769 - middle_end/lift_let_to_initialize_symbol.cmi : \ 4770 - middle_end/flambda.cmi \ 4771 - middle_end/backend_intf.cmi 4772 - middle_end/middle_end.cmo : \ 4773 - utils/warnings.cmi \ 4774 - middle_end/base_types/variable.cmi \ 4775 - middle_end/base_types/symbol.cmi \ 4776 - middle_end/share_constants.cmi \ 4777 - middle_end/remove_unused_program_constructs.cmi \ 4778 - middle_end/remove_unused_closure_vars.cmi \ 4779 - middle_end/ref_to_variables.cmi \ 4780 - utils/profile.cmi \ 4781 - utils/misc.cmi \ 4782 - parsing/location.cmi \ 4783 - middle_end/lift_let_to_initialize_symbol.cmi \ 4784 - middle_end/lift_constants.cmi \ 4785 - middle_end/lift_code.cmi \ 4786 - middle_end/int_replace_polymorphic_compare.cmi \ 4787 - middle_end/inlining_cost.cmi \ 4788 - middle_end/inline_and_simplify.cmi \ 4789 - middle_end/initialize_symbol_to_let_symbol.cmi \ 4790 - middle_end/flambda_iterators.cmi \ 4791 - middle_end/flambda_invariants.cmi \ 4792 - middle_end/flambda.cmi \ 4793 - middle_end/debuginfo.cmi \ 4794 - middle_end/base_types/closure_id.cmi \ 4795 - middle_end/closure_conversion.cmi \ 4796 - utils/clflags.cmi \ 4797 - middle_end/backend_intf.cmi \ 4798 - middle_end/middle_end.cmi 4799 - middle_end/middle_end.cmx : \ 4800 - utils/warnings.cmx \ 4801 - middle_end/base_types/variable.cmx \ 4802 - middle_end/base_types/symbol.cmx \ 4803 - middle_end/share_constants.cmx \ 4804 - middle_end/remove_unused_program_constructs.cmx \ 4805 - middle_end/remove_unused_closure_vars.cmx \ 4806 - middle_end/ref_to_variables.cmx \ 4807 - utils/profile.cmx \ 4808 - utils/misc.cmx \ 4809 - parsing/location.cmx \ 4810 - middle_end/lift_let_to_initialize_symbol.cmx \ 4811 - middle_end/lift_constants.cmx \ 4812 - middle_end/lift_code.cmx \ 4813 - middle_end/int_replace_polymorphic_compare.cmx \ 4814 - middle_end/inlining_cost.cmx \ 4815 - middle_end/inline_and_simplify.cmx \ 4816 - middle_end/initialize_symbol_to_let_symbol.cmx \ 4817 - middle_end/flambda_iterators.cmx \ 4818 - middle_end/flambda_invariants.cmx \ 4819 - middle_end/flambda.cmx \ 4820 - middle_end/debuginfo.cmx \ 4821 - middle_end/base_types/closure_id.cmx \ 4822 - middle_end/closure_conversion.cmx \ 4823 - utils/clflags.cmx \ 4824 - middle_end/backend_intf.cmi \ 4825 - middle_end/middle_end.cmi 4826 - middle_end/middle_end.cmi : \ 4827 - bytecomp/lambda.cmi \ 4828 - typing/ident.cmi \ 4829 - middle_end/flambda.cmi \ 4834 + middle_end/flambda/lift_let_to_initialize_symbol.cmi 4835 + middle_end/flambda/lift_let_to_initialize_symbol.cmi : \ 4836 + middle_end/flambda/flambda.cmi \ 4830 4837 middle_end/backend_intf.cmi 4831 - middle_end/parameter.cmo : \ 4832 - middle_end/base_types/variable.cmi \ 4833 - middle_end/int_replace_polymorphic_compare.cmi \ 4838 + middle_end/flambda/parameter.cmo : \ 4839 + middle_end/variable.cmi \ 4840 + utils/int_replace_polymorphic_compare.cmi \ 4834 4841 utils/identifiable.cmi \ 4835 - middle_end/parameter.cmi 4836 - middle_end/parameter.cmx : \ 4837 - middle_end/base_types/variable.cmx \ 4838 - middle_end/int_replace_polymorphic_compare.cmx \ 4842 + middle_end/flambda/parameter.cmi 4843 + middle_end/flambda/parameter.cmx : \ 4844 + middle_end/variable.cmx \ 4845 + utils/int_replace_polymorphic_compare.cmx \ 4839 4846 utils/identifiable.cmx \ 4840 - middle_end/parameter.cmi 4841 - middle_end/parameter.cmi : \ 4842 - middle_end/base_types/variable.cmi \ 4847 + middle_end/flambda/parameter.cmi 4848 + middle_end/flambda/parameter.cmi : \ 4849 + middle_end/variable.cmi \ 4843 4850 utils/identifiable.cmi \ 4844 - middle_end/base_types/compilation_unit.cmi 4845 - middle_end/pass_wrapper.cmo : \ 4846 - middle_end/int_replace_polymorphic_compare.cmi \ 4851 + middle_end/compilation_unit.cmi 4852 + middle_end/flambda/pass_wrapper.cmo : \ 4853 + utils/int_replace_polymorphic_compare.cmi \ 4847 4854 utils/clflags.cmi \ 4848 - middle_end/pass_wrapper.cmi 4849 - middle_end/pass_wrapper.cmx : \ 4850 - middle_end/int_replace_polymorphic_compare.cmx \ 4855 + middle_end/flambda/pass_wrapper.cmi 4856 + middle_end/flambda/pass_wrapper.cmx : \ 4857 + utils/int_replace_polymorphic_compare.cmx \ 4851 4858 utils/clflags.cmx \ 4852 - middle_end/pass_wrapper.cmi 4853 - middle_end/pass_wrapper.cmi : 4854 - middle_end/projection.cmo : \ 4855 - middle_end/base_types/variable.cmi \ 4856 - middle_end/base_types/var_within_closure.cmi \ 4857 - middle_end/int_replace_polymorphic_compare.cmi \ 4859 + middle_end/flambda/pass_wrapper.cmi 4860 + middle_end/flambda/pass_wrapper.cmi : 4861 + middle_end/flambda/projection.cmo : \ 4862 + middle_end/variable.cmi \ 4863 + middle_end/flambda/base_types/var_within_closure.cmi \ 4864 + utils/int_replace_polymorphic_compare.cmi \ 4858 4865 utils/identifiable.cmi \ 4859 - middle_end/base_types/closure_id.cmi \ 4860 - middle_end/projection.cmi 4861 - middle_end/projection.cmx : \ 4862 - middle_end/base_types/variable.cmx \ 4863 - middle_end/base_types/var_within_closure.cmx \ 4864 - middle_end/int_replace_polymorphic_compare.cmx \ 4866 + middle_end/flambda/base_types/closure_id.cmi \ 4867 + middle_end/flambda/projection.cmi 4868 + middle_end/flambda/projection.cmx : \ 4869 + middle_end/variable.cmx \ 4870 + middle_end/flambda/base_types/var_within_closure.cmx \ 4871 + utils/int_replace_polymorphic_compare.cmx \ 4865 4872 utils/identifiable.cmx \ 4866 - middle_end/base_types/closure_id.cmx \ 4867 - middle_end/projection.cmi 4868 - middle_end/projection.cmi : \ 4869 - middle_end/base_types/variable.cmi \ 4870 - middle_end/base_types/var_within_closure.cmi \ 4873 + middle_end/flambda/base_types/closure_id.cmx \ 4874 + middle_end/flambda/projection.cmi 4875 + middle_end/flambda/projection.cmi : \ 4876 + middle_end/variable.cmi \ 4877 + middle_end/flambda/base_types/var_within_closure.cmi \ 4871 4878 utils/identifiable.cmi \ 4872 - middle_end/base_types/closure_id.cmi 4873 - middle_end/ref_to_variables.cmo : \ 4874 - middle_end/base_types/variable.cmi \ 4875 - middle_end/base_types/mutable_variable.cmi \ 4879 + middle_end/flambda/base_types/closure_id.cmi 4880 + middle_end/flambda/ref_to_variables.cmo : \ 4881 + middle_end/variable.cmi \ 4882 + middle_end/flambda/base_types/mutable_variable.cmi \ 4876 4883 utils/misc.cmi \ 4877 - bytecomp/lambda.cmi \ 4884 + lambda/lambda.cmi \ 4878 4885 middle_end/internal_variable_names.cmi \ 4879 - middle_end/int_replace_polymorphic_compare.cmi \ 4880 - middle_end/flambda_iterators.cmi \ 4881 - middle_end/flambda.cmi \ 4886 + utils/int_replace_polymorphic_compare.cmi \ 4887 + middle_end/flambda/flambda_iterators.cmi \ 4888 + middle_end/flambda/flambda.cmi \ 4882 4889 parsing/asttypes.cmi \ 4883 - middle_end/ref_to_variables.cmi 4884 - middle_end/ref_to_variables.cmx : \ 4885 - middle_end/base_types/variable.cmx \ 4886 - middle_end/base_types/mutable_variable.cmx \ 4890 + middle_end/flambda/ref_to_variables.cmi 4891 + middle_end/flambda/ref_to_variables.cmx : \ 4892 + middle_end/variable.cmx \ 4893 + middle_end/flambda/base_types/mutable_variable.cmx \ 4887 4894 utils/misc.cmx \ 4888 - bytecomp/lambda.cmx \ 4895 + lambda/lambda.cmx \ 4889 4896 middle_end/internal_variable_names.cmx \ 4890 - middle_end/int_replace_polymorphic_compare.cmx \ 4891 - middle_end/flambda_iterators.cmx \ 4892 - middle_end/flambda.cmx \ 4897 + utils/int_replace_polymorphic_compare.cmx \ 4898 + middle_end/flambda/flambda_iterators.cmx \ 4899 + middle_end/flambda/flambda.cmx \ 4893 4900 parsing/asttypes.cmi \ 4894 - middle_end/ref_to_variables.cmi 4895 - middle_end/ref_to_variables.cmi : \ 4896 - middle_end/flambda.cmi 4897 - middle_end/remove_free_vars_equal_to_args.cmo : \ 4898 - middle_end/base_types/variable.cmi \ 4899 - middle_end/pass_wrapper.cmi \ 4900 - middle_end/parameter.cmi \ 4901 - middle_end/int_replace_polymorphic_compare.cmi \ 4902 - middle_end/flambda_utils.cmi \ 4903 - middle_end/flambda.cmi \ 4904 - middle_end/remove_free_vars_equal_to_args.cmi 4905 - middle_end/remove_free_vars_equal_to_args.cmx : \ 4906 - middle_end/base_types/variable.cmx \ 4907 - middle_end/pass_wrapper.cmx \ 4908 - middle_end/parameter.cmx \ 4909 - middle_end/int_replace_polymorphic_compare.cmx \ 4910 - middle_end/flambda_utils.cmx \ 4911 - middle_end/flambda.cmx \ 4912 - middle_end/remove_free_vars_equal_to_args.cmi 4913 - middle_end/remove_free_vars_equal_to_args.cmi : \ 4914 - middle_end/flambda.cmi 4915 - middle_end/remove_unused_arguments.cmo : \ 4916 - middle_end/base_types/variable.cmi \ 4917 - middle_end/projection.cmi \ 4918 - middle_end/parameter.cmi \ 4919 - middle_end/invariant_params.cmi \ 4920 - middle_end/int_replace_polymorphic_compare.cmi \ 4921 - middle_end/flambda_utils.cmi \ 4922 - middle_end/flambda_iterators.cmi \ 4923 - middle_end/flambda.cmi \ 4924 - middle_end/find_recursive_functions.cmi \ 4925 - middle_end/base_types/compilation_unit.cmi \ 4926 - middle_end/base_types/closure_origin.cmi \ 4927 - middle_end/base_types/closure_id.cmi \ 4901 + middle_end/flambda/ref_to_variables.cmi 4902 + middle_end/flambda/ref_to_variables.cmi : \ 4903 + middle_end/flambda/flambda.cmi 4904 + middle_end/flambda/remove_free_vars_equal_to_args.cmo : \ 4905 + middle_end/variable.cmi \ 4906 + middle_end/flambda/pass_wrapper.cmi \ 4907 + middle_end/flambda/parameter.cmi \ 4908 + utils/int_replace_polymorphic_compare.cmi \ 4909 + middle_end/flambda/flambda_utils.cmi \ 4910 + middle_end/flambda/flambda.cmi \ 4911 + middle_end/flambda/remove_free_vars_equal_to_args.cmi 4912 + middle_end/flambda/remove_free_vars_equal_to_args.cmx : \ 4913 + middle_end/variable.cmx \ 4914 + middle_end/flambda/pass_wrapper.cmx \ 4915 + middle_end/flambda/parameter.cmx \ 4916 + utils/int_replace_polymorphic_compare.cmx \ 4917 + middle_end/flambda/flambda_utils.cmx \ 4918 + middle_end/flambda/flambda.cmx \ 4919 + middle_end/flambda/remove_free_vars_equal_to_args.cmi 4920 + middle_end/flambda/remove_free_vars_equal_to_args.cmi : \ 4921 + middle_end/flambda/flambda.cmi 4922 + middle_end/flambda/remove_unused_arguments.cmo : \ 4923 + middle_end/variable.cmi \ 4924 + middle_end/flambda/projection.cmi \ 4925 + middle_end/flambda/parameter.cmi \ 4926 + middle_end/flambda/invariant_params.cmi \ 4927 + utils/int_replace_polymorphic_compare.cmi \ 4928 + middle_end/flambda/flambda_utils.cmi \ 4929 + middle_end/flambda/flambda_iterators.cmi \ 4930 + middle_end/flambda/flambda.cmi \ 4931 + middle_end/flambda/find_recursive_functions.cmi \ 4932 + middle_end/compilation_unit.cmi \ 4933 + middle_end/flambda/base_types/closure_origin.cmi \ 4934 + middle_end/flambda/base_types/closure_id.cmi \ 4928 4935 utils/clflags.cmi \ 4929 - middle_end/remove_unused_arguments.cmi 4930 - middle_end/remove_unused_arguments.cmx : \ 4931 - middle_end/base_types/variable.cmx \ 4932 - middle_end/projection.cmx \ 4933 - middle_end/parameter.cmx \ 4934 - middle_end/invariant_params.cmx \ 4935 - middle_end/int_replace_polymorphic_compare.cmx \ 4936 - middle_end/flambda_utils.cmx \ 4937 - middle_end/flambda_iterators.cmx \ 4938 - middle_end/flambda.cmx \ 4939 - middle_end/find_recursive_functions.cmx \ 4940 - middle_end/base_types/compilation_unit.cmx \ 4941 - middle_end/base_types/closure_origin.cmx \ 4942 - middle_end/base_types/closure_id.cmx \ 4936 + middle_end/flambda/remove_unused_arguments.cmi 4937 + middle_end/flambda/remove_unused_arguments.cmx : \ 4938 + middle_end/variable.cmx \ 4939 + middle_end/flambda/projection.cmx \ 4940 + middle_end/flambda/parameter.cmx \ 4941 + middle_end/flambda/invariant_params.cmx \ 4942 + utils/int_replace_polymorphic_compare.cmx \ 4943 + middle_end/flambda/flambda_utils.cmx \ 4944 + middle_end/flambda/flambda_iterators.cmx \ 4945 + middle_end/flambda/flambda.cmx \ 4946 + middle_end/flambda/find_recursive_functions.cmx \ 4947 + middle_end/compilation_unit.cmx \ 4948 + middle_end/flambda/base_types/closure_origin.cmx \ 4949 + middle_end/flambda/base_types/closure_id.cmx \ 4943 4950 utils/clflags.cmx \ 4944 - middle_end/remove_unused_arguments.cmi 4945 - middle_end/remove_unused_arguments.cmi : \ 4946 - middle_end/flambda.cmi \ 4951 + middle_end/flambda/remove_unused_arguments.cmi 4952 + middle_end/flambda/remove_unused_arguments.cmi : \ 4953 + middle_end/flambda/flambda.cmi \ 4947 4954 middle_end/backend_intf.cmi 4948 - middle_end/remove_unused_closure_vars.cmo : \ 4949 - middle_end/base_types/variable.cmi \ 4950 - middle_end/base_types/var_within_closure.cmi \ 4951 - middle_end/parameter.cmi \ 4952 - middle_end/int_replace_polymorphic_compare.cmi \ 4953 - middle_end/flambda_utils.cmi \ 4954 - middle_end/flambda_iterators.cmi \ 4955 - middle_end/flambda.cmi \ 4956 - middle_end/base_types/closure_id.cmi \ 4957 - middle_end/remove_unused_closure_vars.cmi 4958 - middle_end/remove_unused_closure_vars.cmx : \ 4959 - middle_end/base_types/variable.cmx \ 4960 - middle_end/base_types/var_within_closure.cmx \ 4961 - middle_end/parameter.cmx \ 4962 - middle_end/int_replace_polymorphic_compare.cmx \ 4963 - middle_end/flambda_utils.cmx \ 4964 - middle_end/flambda_iterators.cmx \ 4965 - middle_end/flambda.cmx \ 4966 - middle_end/base_types/closure_id.cmx \ 4967 - middle_end/remove_unused_closure_vars.cmi 4968 - middle_end/remove_unused_closure_vars.cmi : \ 4969 - middle_end/flambda.cmi 4970 - middle_end/remove_unused_program_constructs.cmo : \ 4971 - middle_end/base_types/symbol.cmi \ 4972 - middle_end/int_replace_polymorphic_compare.cmi \ 4973 - middle_end/flambda.cmi \ 4974 - middle_end/effect_analysis.cmi \ 4975 - middle_end/remove_unused_program_constructs.cmi 4976 - middle_end/remove_unused_program_constructs.cmx : \ 4977 - middle_end/base_types/symbol.cmx \ 4978 - middle_end/int_replace_polymorphic_compare.cmx \ 4979 - middle_end/flambda.cmx \ 4980 - middle_end/effect_analysis.cmx \ 4981 - middle_end/remove_unused_program_constructs.cmi 4982 - middle_end/remove_unused_program_constructs.cmi : \ 4983 - middle_end/flambda.cmi 4984 - middle_end/share_constants.cmo : \ 4985 - middle_end/base_types/symbol.cmi \ 4986 - middle_end/int_replace_polymorphic_compare.cmi \ 4987 - middle_end/flambda_iterators.cmi \ 4988 - middle_end/flambda.cmi \ 4989 - middle_end/share_constants.cmi 4990 - middle_end/share_constants.cmx : \ 4991 - middle_end/base_types/symbol.cmx \ 4992 - middle_end/int_replace_polymorphic_compare.cmx \ 4993 - middle_end/flambda_iterators.cmx \ 4994 - middle_end/flambda.cmx \ 4995 - middle_end/share_constants.cmi 4996 - middle_end/share_constants.cmi : \ 4997 - middle_end/flambda.cmi 4998 - middle_end/simple_value_approx.cmo : \ 4999 - middle_end/base_types/variable.cmi \ 5000 - middle_end/base_types/var_within_closure.cmi \ 5001 - middle_end/base_types/tag.cmi \ 5002 - middle_end/base_types/symbol.cmi \ 5003 - middle_end/base_types/set_of_closures_origin.cmi \ 5004 - middle_end/base_types/set_of_closures_id.cmi \ 5005 - middle_end/parameter.cmi \ 4955 + middle_end/flambda/remove_unused_closure_vars.cmo : \ 4956 + middle_end/variable.cmi \ 4957 + middle_end/flambda/base_types/var_within_closure.cmi \ 4958 + middle_end/flambda/parameter.cmi \ 4959 + utils/int_replace_polymorphic_compare.cmi \ 4960 + middle_end/flambda/flambda_utils.cmi \ 4961 + middle_end/flambda/flambda_iterators.cmi \ 4962 + middle_end/flambda/flambda.cmi \ 4963 + middle_end/flambda/base_types/closure_id.cmi \ 4964 + middle_end/flambda/remove_unused_closure_vars.cmi 4965 + middle_end/flambda/remove_unused_closure_vars.cmx : \ 4966 + middle_end/variable.cmx \ 4967 + middle_end/flambda/base_types/var_within_closure.cmx \ 4968 + middle_end/flambda/parameter.cmx \ 4969 + utils/int_replace_polymorphic_compare.cmx \ 4970 + middle_end/flambda/flambda_utils.cmx \ 4971 + middle_end/flambda/flambda_iterators.cmx \ 4972 + middle_end/flambda/flambda.cmx \ 4973 + middle_end/flambda/base_types/closure_id.cmx \ 4974 + middle_end/flambda/remove_unused_closure_vars.cmi 4975 + middle_end/flambda/remove_unused_closure_vars.cmi : \ 4976 + middle_end/flambda/flambda.cmi 4977 + middle_end/flambda/remove_unused_program_constructs.cmo : \ 4978 + middle_end/symbol.cmi \ 4979 + utils/int_replace_polymorphic_compare.cmi \ 4980 + middle_end/flambda/flambda.cmi \ 4981 + middle_end/flambda/effect_analysis.cmi \ 4982 + middle_end/flambda/remove_unused_program_constructs.cmi 4983 + middle_end/flambda/remove_unused_program_constructs.cmx : \ 4984 + middle_end/symbol.cmx \ 4985 + utils/int_replace_polymorphic_compare.cmx \ 4986 + middle_end/flambda/flambda.cmx \ 4987 + middle_end/flambda/effect_analysis.cmx \ 4988 + middle_end/flambda/remove_unused_program_constructs.cmi 4989 + middle_end/flambda/remove_unused_program_constructs.cmi : \ 4990 + middle_end/flambda/flambda.cmi 4991 + middle_end/flambda/share_constants.cmo : \ 4992 + middle_end/symbol.cmi \ 4993 + utils/int_replace_polymorphic_compare.cmi \ 4994 + middle_end/flambda/flambda_iterators.cmi \ 4995 + middle_end/flambda/flambda.cmi \ 4996 + middle_end/flambda/share_constants.cmi 4997 + middle_end/flambda/share_constants.cmx : \ 4998 + middle_end/symbol.cmx \ 4999 + utils/int_replace_polymorphic_compare.cmx \ 5000 + middle_end/flambda/flambda_iterators.cmx \ 5001 + middle_end/flambda/flambda.cmx \ 5002 + middle_end/flambda/share_constants.cmi 5003 + middle_end/flambda/share_constants.cmi : \ 5004 + middle_end/flambda/flambda.cmi 5005 + middle_end/flambda/simple_value_approx.cmo : \ 5006 + middle_end/variable.cmi \ 5007 + middle_end/flambda/base_types/var_within_closure.cmi \ 5008 + middle_end/flambda/base_types/tag.cmi \ 5009 + middle_end/symbol.cmi \ 5010 + middle_end/flambda/base_types/set_of_closures_origin.cmi \ 5011 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 5012 + middle_end/flambda/parameter.cmi \ 5006 5013 utils/misc.cmi \ 5007 - bytecomp/lambda.cmi \ 5014 + lambda/lambda.cmi \ 5008 5015 middle_end/internal_variable_names.cmi \ 5009 - middle_end/int_replace_polymorphic_compare.cmi \ 5010 - middle_end/inlining_cost.cmi \ 5011 - middle_end/freshening.cmi \ 5012 - middle_end/flambda_utils.cmi \ 5013 - middle_end/flambda.cmi \ 5014 - middle_end/base_types/export_id.cmi \ 5015 - middle_end/effect_analysis.cmi \ 5016 - middle_end/debuginfo.cmi \ 5017 - middle_end/base_types/compilation_unit.cmi \ 5018 - middle_end/base_types/closure_origin.cmi \ 5019 - middle_end/base_types/closure_id.cmi \ 5020 - middle_end/allocated_const.cmi \ 5021 - middle_end/simple_value_approx.cmi 5022 - middle_end/simple_value_approx.cmx : \ 5023 - middle_end/base_types/variable.cmx \ 5024 - middle_end/base_types/var_within_closure.cmx \ 5025 - middle_end/base_types/tag.cmx \ 5026 - middle_end/base_types/symbol.cmx \ 5027 - middle_end/base_types/set_of_closures_origin.cmx \ 5028 - middle_end/base_types/set_of_closures_id.cmx \ 5029 - middle_end/parameter.cmx \ 5016 + utils/int_replace_polymorphic_compare.cmi \ 5017 + middle_end/flambda/inlining_cost.cmi \ 5018 + middle_end/flambda/freshening.cmi \ 5019 + middle_end/flambda/flambda_utils.cmi \ 5020 + middle_end/flambda/flambda.cmi \ 5021 + middle_end/flambda/base_types/export_id.cmi \ 5022 + middle_end/flambda/effect_analysis.cmi \ 5023 + lambda/debuginfo.cmi \ 5024 + middle_end/compilation_unit.cmi \ 5025 + middle_end/flambda/base_types/closure_origin.cmi \ 5026 + middle_end/flambda/base_types/closure_id.cmi \ 5027 + middle_end/flambda/allocated_const.cmi \ 5028 + middle_end/flambda/simple_value_approx.cmi 5029 + middle_end/flambda/simple_value_approx.cmx : \ 5030 + middle_end/variable.cmx \ 5031 + middle_end/flambda/base_types/var_within_closure.cmx \ 5032 + middle_end/flambda/base_types/tag.cmx \ 5033 + middle_end/symbol.cmx \ 5034 + middle_end/flambda/base_types/set_of_closures_origin.cmx \ 5035 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 5036 + middle_end/flambda/parameter.cmx \ 5030 5037 utils/misc.cmx \ 5031 - bytecomp/lambda.cmx \ 5038 + lambda/lambda.cmx \ 5032 5039 middle_end/internal_variable_names.cmx \ 5033 - middle_end/int_replace_polymorphic_compare.cmx \ 5034 - middle_end/inlining_cost.cmx \ 5035 - middle_end/freshening.cmx \ 5036 - middle_end/flambda_utils.cmx \ 5037 - middle_end/flambda.cmx \ 5038 - middle_end/base_types/export_id.cmx \ 5039 - middle_end/effect_analysis.cmx \ 5040 - middle_end/debuginfo.cmx \ 5041 - middle_end/base_types/compilation_unit.cmx \ 5042 - middle_end/base_types/closure_origin.cmx \ 5043 - middle_end/base_types/closure_id.cmx \ 5044 - middle_end/allocated_const.cmx \ 5045 - middle_end/simple_value_approx.cmi 5046 - middle_end/simple_value_approx.cmi : \ 5047 - middle_end/base_types/variable.cmi \ 5048 - middle_end/base_types/var_within_closure.cmi \ 5049 - middle_end/base_types/tag.cmi \ 5050 - middle_end/base_types/symbol.cmi \ 5051 - middle_end/base_types/set_of_closures_origin.cmi \ 5052 - middle_end/base_types/set_of_closures_id.cmi \ 5053 - middle_end/parameter.cmi \ 5054 - bytecomp/lambda.cmi \ 5055 - middle_end/freshening.cmi \ 5056 - middle_end/flambda.cmi \ 5057 - middle_end/base_types/export_id.cmi \ 5058 - middle_end/debuginfo.cmi \ 5059 - middle_end/base_types/closure_origin.cmi \ 5060 - middle_end/base_types/closure_id.cmi 5061 - middle_end/simplify_boxed_integer_ops.cmo : \ 5062 - middle_end/simplify_common.cmi \ 5063 - middle_end/simplify_boxed_integer_ops_intf.cmi \ 5064 - middle_end/simple_value_approx.cmi \ 5065 - bytecomp/lambda.cmi \ 5066 - middle_end/int_replace_polymorphic_compare.cmi \ 5067 - middle_end/inlining_cost.cmi \ 5068 - asmcomp/clambda_primitives.cmi \ 5069 - middle_end/simplify_boxed_integer_ops.cmi 5070 - middle_end/simplify_boxed_integer_ops.cmx : \ 5071 - middle_end/simplify_common.cmx \ 5072 - middle_end/simplify_boxed_integer_ops_intf.cmi \ 5073 - middle_end/simple_value_approx.cmx \ 5074 - bytecomp/lambda.cmx \ 5075 - middle_end/int_replace_polymorphic_compare.cmx \ 5076 - middle_end/inlining_cost.cmx \ 5077 - asmcomp/clambda_primitives.cmx \ 5078 - middle_end/simplify_boxed_integer_ops.cmi 5079 - middle_end/simplify_boxed_integer_ops.cmi : \ 5080 - middle_end/simplify_boxed_integer_ops_intf.cmi 5081 - middle_end/simplify_boxed_integer_ops_intf.cmi : \ 5082 - middle_end/simple_value_approx.cmi \ 5083 - middle_end/inlining_cost.cmi \ 5084 - middle_end/flambda.cmi \ 5085 - asmcomp/clambda_primitives.cmi 5086 - middle_end/simplify_common.cmo : \ 5087 - middle_end/simple_value_approx.cmi \ 5088 - bytecomp/lambda.cmi \ 5089 - middle_end/int_replace_polymorphic_compare.cmi \ 5090 - middle_end/inlining_cost.cmi \ 5091 - middle_end/effect_analysis.cmi \ 5092 - middle_end/simplify_common.cmi 5093 - middle_end/simplify_common.cmx : \ 5094 - middle_end/simple_value_approx.cmx \ 5095 - bytecomp/lambda.cmx \ 5096 - middle_end/int_replace_polymorphic_compare.cmx \ 5097 - middle_end/inlining_cost.cmx \ 5098 - middle_end/effect_analysis.cmx \ 5099 - middle_end/simplify_common.cmi 5100 - middle_end/simplify_common.cmi : \ 5101 - middle_end/simple_value_approx.cmi \ 5102 - bytecomp/lambda.cmi \ 5103 - middle_end/inlining_cost.cmi \ 5104 - middle_end/flambda.cmi 5105 - middle_end/simplify_primitives.cmo : \ 5106 - middle_end/base_types/tag.cmi \ 5107 - middle_end/base_types/symbol.cmi \ 5108 - middle_end/simplify_common.cmi \ 5109 - middle_end/simplify_boxed_integer_ops.cmi \ 5110 - middle_end/simple_value_approx.cmi \ 5111 - asmcomp/semantics_of_primitives.cmi \ 5040 + utils/int_replace_polymorphic_compare.cmx \ 5041 + middle_end/flambda/inlining_cost.cmx \ 5042 + middle_end/flambda/freshening.cmx \ 5043 + middle_end/flambda/flambda_utils.cmx \ 5044 + middle_end/flambda/flambda.cmx \ 5045 + middle_end/flambda/base_types/export_id.cmx \ 5046 + middle_end/flambda/effect_analysis.cmx \ 5047 + lambda/debuginfo.cmx \ 5048 + middle_end/compilation_unit.cmx \ 5049 + middle_end/flambda/base_types/closure_origin.cmx \ 5050 + middle_end/flambda/base_types/closure_id.cmx \ 5051 + middle_end/flambda/allocated_const.cmx \ 5052 + middle_end/flambda/simple_value_approx.cmi 5053 + middle_end/flambda/simple_value_approx.cmi : \ 5054 + middle_end/variable.cmi \ 5055 + middle_end/flambda/base_types/var_within_closure.cmi \ 5056 + middle_end/flambda/base_types/tag.cmi \ 5057 + middle_end/symbol.cmi \ 5058 + middle_end/flambda/base_types/set_of_closures_origin.cmi \ 5059 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 5060 + middle_end/flambda/parameter.cmi \ 5061 + lambda/lambda.cmi \ 5062 + middle_end/flambda/freshening.cmi \ 5063 + middle_end/flambda/flambda.cmi \ 5064 + middle_end/flambda/base_types/export_id.cmi \ 5065 + lambda/debuginfo.cmi \ 5066 + middle_end/flambda/base_types/closure_origin.cmi \ 5067 + middle_end/flambda/base_types/closure_id.cmi 5068 + middle_end/flambda/simplify_boxed_integer_ops.cmo : \ 5069 + middle_end/flambda/simplify_common.cmi \ 5070 + middle_end/flambda/simplify_boxed_integer_ops_intf.cmi \ 5071 + middle_end/flambda/simple_value_approx.cmi \ 5072 + lambda/lambda.cmi \ 5073 + utils/int_replace_polymorphic_compare.cmi \ 5074 + middle_end/flambda/inlining_cost.cmi \ 5075 + middle_end/clambda_primitives.cmi \ 5076 + middle_end/flambda/simplify_boxed_integer_ops.cmi 5077 + middle_end/flambda/simplify_boxed_integer_ops.cmx : \ 5078 + middle_end/flambda/simplify_common.cmx \ 5079 + middle_end/flambda/simplify_boxed_integer_ops_intf.cmi \ 5080 + middle_end/flambda/simple_value_approx.cmx \ 5081 + lambda/lambda.cmx \ 5082 + utils/int_replace_polymorphic_compare.cmx \ 5083 + middle_end/flambda/inlining_cost.cmx \ 5084 + middle_end/clambda_primitives.cmx \ 5085 + middle_end/flambda/simplify_boxed_integer_ops.cmi 5086 + middle_end/flambda/simplify_boxed_integer_ops.cmi : \ 5087 + middle_end/flambda/simplify_boxed_integer_ops_intf.cmi 5088 + middle_end/flambda/simplify_boxed_integer_ops_intf.cmi : \ 5089 + middle_end/flambda/simple_value_approx.cmi \ 5090 + middle_end/flambda/inlining_cost.cmi \ 5091 + middle_end/flambda/flambda.cmi \ 5092 + middle_end/clambda_primitives.cmi 5093 + middle_end/flambda/simplify_common.cmo : \ 5094 + middle_end/flambda/simple_value_approx.cmi \ 5095 + lambda/lambda.cmi \ 5096 + utils/int_replace_polymorphic_compare.cmi \ 5097 + middle_end/flambda/inlining_cost.cmi \ 5098 + middle_end/flambda/effect_analysis.cmi \ 5099 + middle_end/flambda/simplify_common.cmi 5100 + middle_end/flambda/simplify_common.cmx : \ 5101 + middle_end/flambda/simple_value_approx.cmx \ 5102 + lambda/lambda.cmx \ 5103 + utils/int_replace_polymorphic_compare.cmx \ 5104 + middle_end/flambda/inlining_cost.cmx \ 5105 + middle_end/flambda/effect_analysis.cmx \ 5106 + middle_end/flambda/simplify_common.cmi 5107 + middle_end/flambda/simplify_common.cmi : \ 5108 + middle_end/flambda/simple_value_approx.cmi \ 5109 + lambda/lambda.cmi \ 5110 + middle_end/flambda/inlining_cost.cmi \ 5111 + middle_end/flambda/flambda.cmi 5112 + middle_end/flambda/simplify_primitives.cmo : \ 5113 + middle_end/flambda/base_types/tag.cmi \ 5114 + middle_end/symbol.cmi \ 5115 + middle_end/flambda/simplify_common.cmi \ 5116 + middle_end/flambda/simplify_boxed_integer_ops.cmi \ 5117 + middle_end/flambda/simple_value_approx.cmi \ 5118 + middle_end/semantics_of_primitives.cmi \ 5112 5119 utils/misc.cmi \ 5113 - bytecomp/lambda.cmi \ 5114 - middle_end/int_replace_polymorphic_compare.cmi \ 5115 - middle_end/inlining_cost.cmi \ 5116 - middle_end/flambda.cmi \ 5120 + lambda/lambda.cmi \ 5121 + utils/int_replace_polymorphic_compare.cmi \ 5122 + middle_end/flambda/inlining_cost.cmi \ 5123 + middle_end/flambda/flambda.cmi \ 5117 5124 utils/clflags.cmi \ 5118 - asmcomp/clambda_primitives.cmi \ 5125 + middle_end/clambda_primitives.cmi \ 5119 5126 parsing/asttypes.cmi \ 5120 - middle_end/simplify_primitives.cmi 5121 - middle_end/simplify_primitives.cmx : \ 5122 - middle_end/base_types/tag.cmx \ 5123 - middle_end/base_types/symbol.cmx \ 5124 - middle_end/simplify_common.cmx \ 5125 - middle_end/simplify_boxed_integer_ops.cmx \ 5126 - middle_end/simple_value_approx.cmx \ 5127 - asmcomp/semantics_of_primitives.cmx \ 5127 + middle_end/flambda/simplify_primitives.cmi 5128 + middle_end/flambda/simplify_primitives.cmx : \ 5129 + middle_end/flambda/base_types/tag.cmx \ 5130 + middle_end/symbol.cmx \ 5131 + middle_end/flambda/simplify_common.cmx \ 5132 + middle_end/flambda/simplify_boxed_integer_ops.cmx \ 5133 + middle_end/flambda/simple_value_approx.cmx \ 5134 + middle_end/semantics_of_primitives.cmx \ 5128 5135 utils/misc.cmx \ 5129 - bytecomp/lambda.cmx \ 5130 - middle_end/int_replace_polymorphic_compare.cmx \ 5131 - middle_end/inlining_cost.cmx \ 5132 - middle_end/flambda.cmx \ 5136 + lambda/lambda.cmx \ 5137 + utils/int_replace_polymorphic_compare.cmx \ 5138 + middle_end/flambda/inlining_cost.cmx \ 5139 + middle_end/flambda/flambda.cmx \ 5133 5140 utils/clflags.cmx \ 5134 - asmcomp/clambda_primitives.cmx \ 5141 + middle_end/clambda_primitives.cmx \ 5135 5142 parsing/asttypes.cmi \ 5136 - middle_end/simplify_primitives.cmi 5137 - middle_end/simplify_primitives.cmi : \ 5138 - middle_end/base_types/variable.cmi \ 5139 - middle_end/simple_value_approx.cmi \ 5140 - middle_end/inlining_cost.cmi \ 5141 - middle_end/flambda.cmi \ 5142 - middle_end/debuginfo.cmi \ 5143 - asmcomp/clambda_primitives.cmi 5144 - middle_end/unbox_closures.cmo : \ 5145 - middle_end/base_types/variable.cmi \ 5146 - middle_end/int_replace_polymorphic_compare.cmi \ 5147 - middle_end/inlining_cost.cmi \ 5148 - middle_end/inline_and_simplify_aux.cmi \ 5149 - middle_end/flambda_utils.cmi \ 5150 - middle_end/flambda_iterators.cmi \ 5151 - middle_end/flambda.cmi \ 5152 - middle_end/base_types/closure_id.cmi \ 5143 + middle_end/flambda/simplify_primitives.cmi 5144 + middle_end/flambda/simplify_primitives.cmi : \ 5145 + middle_end/variable.cmi \ 5146 + middle_end/flambda/simple_value_approx.cmi \ 5147 + middle_end/flambda/inlining_cost.cmi \ 5148 + middle_end/flambda/flambda.cmi \ 5149 + lambda/debuginfo.cmi \ 5150 + middle_end/clambda_primitives.cmi 5151 + middle_end/flambda/traverse_for_exported_symbols.cmo : \ 5152 + middle_end/variable.cmi \ 5153 + middle_end/flambda/base_types/var_within_closure.cmi \ 5154 + middle_end/symbol.cmi \ 5155 + middle_end/flambda/simple_value_approx.cmi \ 5156 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 5157 + utils/misc.cmi \ 5158 + middle_end/flambda/flambda_iterators.cmi \ 5159 + middle_end/flambda/flambda.cmi \ 5160 + middle_end/flambda/export_info.cmi \ 5161 + middle_end/flambda/base_types/export_id.cmi \ 5162 + middle_end/compilation_unit.cmi \ 5163 + middle_end/flambda/base_types/closure_id.cmi \ 5164 + middle_end/flambda/traverse_for_exported_symbols.cmi 5165 + middle_end/flambda/traverse_for_exported_symbols.cmx : \ 5166 + middle_end/variable.cmx \ 5167 + middle_end/flambda/base_types/var_within_closure.cmx \ 5168 + middle_end/symbol.cmx \ 5169 + middle_end/flambda/simple_value_approx.cmx \ 5170 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 5171 + utils/misc.cmx \ 5172 + middle_end/flambda/flambda_iterators.cmx \ 5173 + middle_end/flambda/flambda.cmx \ 5174 + middle_end/flambda/export_info.cmx \ 5175 + middle_end/flambda/base_types/export_id.cmx \ 5176 + middle_end/compilation_unit.cmx \ 5177 + middle_end/flambda/base_types/closure_id.cmx \ 5178 + middle_end/flambda/traverse_for_exported_symbols.cmi 5179 + middle_end/flambda/traverse_for_exported_symbols.cmi : \ 5180 + middle_end/flambda/base_types/var_within_closure.cmi \ 5181 + middle_end/symbol.cmi \ 5182 + middle_end/flambda/simple_value_approx.cmi \ 5183 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 5184 + middle_end/flambda/flambda.cmi \ 5185 + middle_end/flambda/export_info.cmi \ 5186 + middle_end/flambda/base_types/export_id.cmi \ 5187 + middle_end/flambda/base_types/closure_id.cmi 5188 + middle_end/flambda/un_anf.cmo : \ 5189 + middle_end/semantics_of_primitives.cmi \ 5190 + middle_end/printclambda.cmi \ 5191 + utils/misc.cmi \ 5192 + lambda/lambda.cmi \ 5193 + lambda/debuginfo.cmi \ 5153 5194 utils/clflags.cmi \ 5154 - middle_end/augment_specialised_args.cmi \ 5155 - middle_end/unbox_closures.cmi 5156 - middle_end/unbox_closures.cmx : \ 5157 - middle_end/base_types/variable.cmx \ 5158 - middle_end/int_replace_polymorphic_compare.cmx \ 5159 - middle_end/inlining_cost.cmx \ 5160 - middle_end/inline_and_simplify_aux.cmx \ 5161 - middle_end/flambda_utils.cmx \ 5162 - middle_end/flambda_iterators.cmx \ 5163 - middle_end/flambda.cmx \ 5164 - middle_end/base_types/closure_id.cmx \ 5195 + middle_end/clambda_primitives.cmi \ 5196 + middle_end/clambda.cmi \ 5197 + middle_end/backend_var.cmi \ 5198 + parsing/asttypes.cmi \ 5199 + middle_end/flambda/un_anf.cmi 5200 + middle_end/flambda/un_anf.cmx : \ 5201 + middle_end/semantics_of_primitives.cmx \ 5202 + middle_end/printclambda.cmx \ 5203 + utils/misc.cmx \ 5204 + lambda/lambda.cmx \ 5205 + lambda/debuginfo.cmx \ 5165 5206 utils/clflags.cmx \ 5166 - middle_end/augment_specialised_args.cmx \ 5167 - middle_end/unbox_closures.cmi 5168 - middle_end/unbox_closures.cmi : \ 5169 - middle_end/base_types/variable.cmi \ 5170 - middle_end/inlining_cost.cmi \ 5171 - middle_end/inline_and_simplify_aux.cmi \ 5172 - middle_end/flambda.cmi 5173 - middle_end/unbox_free_vars_of_closures.cmo : \ 5174 - middle_end/base_types/variable.cmi \ 5175 - middle_end/projection.cmi \ 5176 - middle_end/pass_wrapper.cmi \ 5207 + middle_end/clambda_primitives.cmx \ 5208 + middle_end/clambda.cmx \ 5209 + middle_end/backend_var.cmx \ 5210 + parsing/asttypes.cmi \ 5211 + middle_end/flambda/un_anf.cmi 5212 + middle_end/flambda/un_anf.cmi : \ 5213 + middle_end/clambda.cmi 5214 + middle_end/flambda/unbox_closures.cmo : \ 5215 + middle_end/variable.cmi \ 5216 + utils/int_replace_polymorphic_compare.cmi \ 5217 + middle_end/flambda/inlining_cost.cmi \ 5218 + middle_end/flambda/inline_and_simplify_aux.cmi \ 5219 + middle_end/flambda/flambda_utils.cmi \ 5220 + middle_end/flambda/flambda_iterators.cmi \ 5221 + middle_end/flambda/flambda.cmi \ 5222 + middle_end/flambda/base_types/closure_id.cmi \ 5223 + utils/clflags.cmi \ 5224 + middle_end/flambda/augment_specialised_args.cmi \ 5225 + middle_end/flambda/unbox_closures.cmi 5226 + middle_end/flambda/unbox_closures.cmx : \ 5227 + middle_end/variable.cmx \ 5228 + utils/int_replace_polymorphic_compare.cmx \ 5229 + middle_end/flambda/inlining_cost.cmx \ 5230 + middle_end/flambda/inline_and_simplify_aux.cmx \ 5231 + middle_end/flambda/flambda_utils.cmx \ 5232 + middle_end/flambda/flambda_iterators.cmx \ 5233 + middle_end/flambda/flambda.cmx \ 5234 + middle_end/flambda/base_types/closure_id.cmx \ 5235 + utils/clflags.cmx \ 5236 + middle_end/flambda/augment_specialised_args.cmx \ 5237 + middle_end/flambda/unbox_closures.cmi 5238 + middle_end/flambda/unbox_closures.cmi : \ 5239 + middle_end/variable.cmi \ 5240 + middle_end/flambda/inlining_cost.cmi \ 5241 + middle_end/flambda/inline_and_simplify_aux.cmi \ 5242 + middle_end/flambda/flambda.cmi 5243 + middle_end/flambda/unbox_free_vars_of_closures.cmo : \ 5244 + middle_end/variable.cmi \ 5245 + middle_end/flambda/projection.cmi \ 5246 + middle_end/flambda/pass_wrapper.cmi \ 5177 5247 utils/misc.cmi \ 5178 5248 middle_end/internal_variable_names.cmi \ 5179 - middle_end/int_replace_polymorphic_compare.cmi \ 5180 - middle_end/inlining_cost.cmi \ 5181 - middle_end/inline_and_simplify_aux.cmi \ 5182 - middle_end/flambda_utils.cmi \ 5183 - middle_end/flambda_iterators.cmi \ 5184 - middle_end/flambda.cmi \ 5185 - middle_end/extract_projections.cmi \ 5249 + utils/int_replace_polymorphic_compare.cmi \ 5250 + middle_end/flambda/inlining_cost.cmi \ 5251 + middle_end/flambda/inline_and_simplify_aux.cmi \ 5252 + middle_end/flambda/flambda_utils.cmi \ 5253 + middle_end/flambda/flambda_iterators.cmi \ 5254 + middle_end/flambda/flambda.cmi \ 5255 + middle_end/flambda/extract_projections.cmi \ 5186 5256 utils/clflags.cmi \ 5187 - middle_end/unbox_free_vars_of_closures.cmi 5188 - middle_end/unbox_free_vars_of_closures.cmx : \ 5189 - middle_end/base_types/variable.cmx \ 5190 - middle_end/projection.cmx \ 5191 - middle_end/pass_wrapper.cmx \ 5257 + middle_end/flambda/unbox_free_vars_of_closures.cmi 5258 + middle_end/flambda/unbox_free_vars_of_closures.cmx : \ 5259 + middle_end/variable.cmx \ 5260 + middle_end/flambda/projection.cmx \ 5261 + middle_end/flambda/pass_wrapper.cmx \ 5192 5262 utils/misc.cmx \ 5193 5263 middle_end/internal_variable_names.cmx \ 5194 - middle_end/int_replace_polymorphic_compare.cmx \ 5195 - middle_end/inlining_cost.cmx \ 5196 - middle_end/inline_and_simplify_aux.cmx \ 5197 - middle_end/flambda_utils.cmx \ 5198 - middle_end/flambda_iterators.cmx \ 5199 - middle_end/flambda.cmx \ 5200 - middle_end/extract_projections.cmx \ 5264 + utils/int_replace_polymorphic_compare.cmx \ 5265 + middle_end/flambda/inlining_cost.cmx \ 5266 + middle_end/flambda/inline_and_simplify_aux.cmx \ 5267 + middle_end/flambda/flambda_utils.cmx \ 5268 + middle_end/flambda/flambda_iterators.cmx \ 5269 + middle_end/flambda/flambda.cmx \ 5270 + middle_end/flambda/extract_projections.cmx \ 5201 5271 utils/clflags.cmx \ 5202 - middle_end/unbox_free_vars_of_closures.cmi 5203 - middle_end/unbox_free_vars_of_closures.cmi : \ 5204 - middle_end/inlining_cost.cmi \ 5205 - middle_end/inline_and_simplify_aux.cmi \ 5206 - middle_end/flambda.cmi 5207 - middle_end/unbox_specialised_args.cmo : \ 5208 - middle_end/base_types/variable.cmi \ 5209 - middle_end/projection.cmi \ 5210 - middle_end/invariant_params.cmi \ 5211 - middle_end/int_replace_polymorphic_compare.cmi \ 5212 - middle_end/inline_and_simplify_aux.cmi \ 5213 - middle_end/flambda.cmi \ 5214 - middle_end/extract_projections.cmi \ 5272 + middle_end/flambda/unbox_free_vars_of_closures.cmi 5273 + middle_end/flambda/unbox_free_vars_of_closures.cmi : \ 5274 + middle_end/flambda/inlining_cost.cmi \ 5275 + middle_end/flambda/inline_and_simplify_aux.cmi \ 5276 + middle_end/flambda/flambda.cmi 5277 + middle_end/flambda/unbox_specialised_args.cmo : \ 5278 + middle_end/variable.cmi \ 5279 + middle_end/flambda/projection.cmi \ 5280 + middle_end/flambda/invariant_params.cmi \ 5281 + utils/int_replace_polymorphic_compare.cmi \ 5282 + middle_end/flambda/inline_and_simplify_aux.cmi \ 5283 + middle_end/flambda/flambda.cmi \ 5284 + middle_end/flambda/extract_projections.cmi \ 5215 5285 utils/clflags.cmi \ 5216 - middle_end/augment_specialised_args.cmi \ 5217 - middle_end/unbox_specialised_args.cmi 5218 - middle_end/unbox_specialised_args.cmx : \ 5219 - middle_end/base_types/variable.cmx \ 5220 - middle_end/projection.cmx \ 5221 - middle_end/invariant_params.cmx \ 5222 - middle_end/int_replace_polymorphic_compare.cmx \ 5223 - middle_end/inline_and_simplify_aux.cmx \ 5224 - middle_end/flambda.cmx \ 5225 - middle_end/extract_projections.cmx \ 5286 + middle_end/flambda/augment_specialised_args.cmi \ 5287 + middle_end/flambda/unbox_specialised_args.cmi 5288 + middle_end/flambda/unbox_specialised_args.cmx : \ 5289 + middle_end/variable.cmx \ 5290 + middle_end/flambda/projection.cmx \ 5291 + middle_end/flambda/invariant_params.cmx \ 5292 + utils/int_replace_polymorphic_compare.cmx \ 5293 + middle_end/flambda/inline_and_simplify_aux.cmx \ 5294 + middle_end/flambda/flambda.cmx \ 5295 + middle_end/flambda/extract_projections.cmx \ 5226 5296 utils/clflags.cmx \ 5227 - middle_end/augment_specialised_args.cmx \ 5228 - middle_end/unbox_specialised_args.cmi 5229 - middle_end/unbox_specialised_args.cmi : \ 5230 - middle_end/base_types/variable.cmi \ 5231 - middle_end/inlining_cost.cmi \ 5232 - middle_end/inline_and_simplify_aux.cmi \ 5233 - middle_end/flambda.cmi 5234 - middle_end/base_types/closure_element.cmo : \ 5235 - middle_end/base_types/variable.cmi \ 5236 - middle_end/int_replace_polymorphic_compare.cmi \ 5237 - middle_end/base_types/closure_element.cmi 5238 - middle_end/base_types/closure_element.cmx : \ 5239 - middle_end/base_types/variable.cmx \ 5240 - middle_end/int_replace_polymorphic_compare.cmx \ 5241 - middle_end/base_types/closure_element.cmi 5242 - middle_end/base_types/closure_element.cmi : \ 5243 - middle_end/base_types/variable.cmi \ 5297 + middle_end/flambda/augment_specialised_args.cmx \ 5298 + middle_end/flambda/unbox_specialised_args.cmi 5299 + middle_end/flambda/unbox_specialised_args.cmi : \ 5300 + middle_end/variable.cmi \ 5301 + middle_end/flambda/inlining_cost.cmi \ 5302 + middle_end/flambda/inline_and_simplify_aux.cmi \ 5303 + middle_end/flambda/flambda.cmi 5304 + middle_end/flambda/base_types/closure_element.cmo : \ 5305 + middle_end/variable.cmi \ 5306 + utils/int_replace_polymorphic_compare.cmi \ 5307 + middle_end/flambda/base_types/closure_element.cmi 5308 + middle_end/flambda/base_types/closure_element.cmx : \ 5309 + middle_end/variable.cmx \ 5310 + utils/int_replace_polymorphic_compare.cmx \ 5311 + middle_end/flambda/base_types/closure_element.cmi 5312 + middle_end/flambda/base_types/closure_element.cmi : \ 5313 + middle_end/variable.cmi \ 5244 5314 utils/identifiable.cmi \ 5245 - middle_end/base_types/compilation_unit.cmi 5246 - middle_end/base_types/closure_id.cmo : \ 5247 - middle_end/int_replace_polymorphic_compare.cmi \ 5248 - middle_end/base_types/closure_element.cmi \ 5249 - middle_end/base_types/closure_id.cmi 5250 - middle_end/base_types/closure_id.cmx : \ 5251 - middle_end/int_replace_polymorphic_compare.cmx \ 5252 - middle_end/base_types/closure_element.cmx \ 5253 - middle_end/base_types/closure_id.cmi 5254 - middle_end/base_types/closure_id.cmi : \ 5255 - middle_end/base_types/closure_element.cmi 5256 - middle_end/base_types/closure_origin.cmo : \ 5257 - middle_end/int_replace_polymorphic_compare.cmi \ 5258 - middle_end/base_types/closure_id.cmi \ 5259 - middle_end/base_types/closure_origin.cmi 5260 - middle_end/base_types/closure_origin.cmx : \ 5261 - middle_end/int_replace_polymorphic_compare.cmx \ 5262 - middle_end/base_types/closure_id.cmx \ 5263 - middle_end/base_types/closure_origin.cmi 5264 - middle_end/base_types/closure_origin.cmi : \ 5265 - utils/identifiable.cmi \ 5266 - middle_end/base_types/compilation_unit.cmi \ 5267 - middle_end/base_types/closure_id.cmi 5268 - middle_end/base_types/compilation_unit.cmo : \ 5269 - utils/misc.cmi \ 5270 - middle_end/base_types/linkage_name.cmi \ 5271 - middle_end/int_replace_polymorphic_compare.cmi \ 5272 - utils/identifiable.cmi \ 5273 - typing/ident.cmi \ 5274 - middle_end/base_types/compilation_unit.cmi 5275 - middle_end/base_types/compilation_unit.cmx : \ 5276 - utils/misc.cmx \ 5277 - middle_end/base_types/linkage_name.cmx \ 5278 - middle_end/int_replace_polymorphic_compare.cmx \ 5279 - utils/identifiable.cmx \ 5280 - typing/ident.cmx \ 5281 - middle_end/base_types/compilation_unit.cmi 5282 - middle_end/base_types/compilation_unit.cmi : \ 5283 - middle_end/base_types/linkage_name.cmi \ 5315 + middle_end/compilation_unit.cmi 5316 + middle_end/flambda/base_types/closure_id.cmo : \ 5317 + utils/int_replace_polymorphic_compare.cmi \ 5318 + middle_end/flambda/base_types/closure_element.cmi \ 5319 + middle_end/flambda/base_types/closure_id.cmi 5320 + middle_end/flambda/base_types/closure_id.cmx : \ 5321 + utils/int_replace_polymorphic_compare.cmx \ 5322 + middle_end/flambda/base_types/closure_element.cmx \ 5323 + middle_end/flambda/base_types/closure_id.cmi 5324 + middle_end/flambda/base_types/closure_id.cmi : \ 5325 + middle_end/flambda/base_types/closure_element.cmi 5326 + middle_end/flambda/base_types/closure_origin.cmo : \ 5327 + utils/int_replace_polymorphic_compare.cmi \ 5328 + middle_end/flambda/base_types/closure_id.cmi \ 5329 + middle_end/flambda/base_types/closure_origin.cmi 5330 + middle_end/flambda/base_types/closure_origin.cmx : \ 5331 + utils/int_replace_polymorphic_compare.cmx \ 5332 + middle_end/flambda/base_types/closure_id.cmx \ 5333 + middle_end/flambda/base_types/closure_origin.cmi 5334 + middle_end/flambda/base_types/closure_origin.cmi : \ 5284 5335 utils/identifiable.cmi \ 5285 - typing/ident.cmi 5286 - middle_end/base_types/export_id.cmo : \ 5287 - middle_end/int_replace_polymorphic_compare.cmi \ 5336 + middle_end/compilation_unit.cmi \ 5337 + middle_end/flambda/base_types/closure_id.cmi 5338 + middle_end/flambda/base_types/export_id.cmo : \ 5339 + utils/int_replace_polymorphic_compare.cmi \ 5288 5340 utils/identifiable.cmi \ 5289 - middle_end/base_types/id_types.cmi \ 5290 - middle_end/base_types/compilation_unit.cmi \ 5291 - middle_end/base_types/export_id.cmi 5292 - middle_end/base_types/export_id.cmx : \ 5293 - middle_end/int_replace_polymorphic_compare.cmx \ 5341 + middle_end/flambda/base_types/id_types.cmi \ 5342 + middle_end/compilation_unit.cmi \ 5343 + middle_end/flambda/base_types/export_id.cmi 5344 + middle_end/flambda/base_types/export_id.cmx : \ 5345 + utils/int_replace_polymorphic_compare.cmx \ 5294 5346 utils/identifiable.cmx \ 5295 - middle_end/base_types/id_types.cmx \ 5296 - middle_end/base_types/compilation_unit.cmx \ 5297 - middle_end/base_types/export_id.cmi 5298 - middle_end/base_types/export_id.cmi : \ 5347 + middle_end/flambda/base_types/id_types.cmx \ 5348 + middle_end/compilation_unit.cmx \ 5349 + middle_end/flambda/base_types/export_id.cmi 5350 + middle_end/flambda/base_types/export_id.cmi : \ 5299 5351 utils/identifiable.cmi \ 5300 - middle_end/base_types/compilation_unit.cmi 5301 - middle_end/base_types/id_types.cmo : \ 5302 - middle_end/int_replace_polymorphic_compare.cmi \ 5303 - utils/identifiable.cmi \ 5304 - middle_end/base_types/id_types.cmi 5305 - middle_end/base_types/id_types.cmx : \ 5306 - middle_end/int_replace_polymorphic_compare.cmx \ 5307 - utils/identifiable.cmx \ 5308 - middle_end/base_types/id_types.cmi 5309 - middle_end/base_types/id_types.cmi : \ 5310 - utils/identifiable.cmi 5311 - middle_end/base_types/linkage_name.cmo : \ 5312 - middle_end/int_replace_polymorphic_compare.cmi \ 5352 + middle_end/compilation_unit.cmi 5353 + middle_end/flambda/base_types/id_types.cmo : \ 5354 + utils/int_replace_polymorphic_compare.cmi \ 5313 5355 utils/identifiable.cmi \ 5314 - middle_end/base_types/linkage_name.cmi 5315 - middle_end/base_types/linkage_name.cmx : \ 5316 - middle_end/int_replace_polymorphic_compare.cmx \ 5356 + middle_end/flambda/base_types/id_types.cmi 5357 + middle_end/flambda/base_types/id_types.cmx : \ 5358 + utils/int_replace_polymorphic_compare.cmx \ 5317 5359 utils/identifiable.cmx \ 5318 - middle_end/base_types/linkage_name.cmi 5319 - middle_end/base_types/linkage_name.cmi : \ 5360 + middle_end/flambda/base_types/id_types.cmi 5361 + middle_end/flambda/base_types/id_types.cmi : \ 5320 5362 utils/identifiable.cmi 5321 - middle_end/base_types/mutable_variable.cmo : \ 5322 - middle_end/base_types/variable.cmi \ 5323 - middle_end/int_replace_polymorphic_compare.cmi \ 5324 - middle_end/base_types/mutable_variable.cmi 5325 - middle_end/base_types/mutable_variable.cmx : \ 5326 - middle_end/base_types/variable.cmx \ 5327 - middle_end/int_replace_polymorphic_compare.cmx \ 5328 - middle_end/base_types/mutable_variable.cmi 5329 - middle_end/base_types/mutable_variable.cmi : \ 5330 - middle_end/base_types/variable.cmi \ 5363 + middle_end/flambda/base_types/mutable_variable.cmo : \ 5364 + middle_end/variable.cmi \ 5365 + utils/int_replace_polymorphic_compare.cmi \ 5366 + middle_end/flambda/base_types/mutable_variable.cmi 5367 + middle_end/flambda/base_types/mutable_variable.cmx : \ 5368 + middle_end/variable.cmx \ 5369 + utils/int_replace_polymorphic_compare.cmx \ 5370 + middle_end/flambda/base_types/mutable_variable.cmi 5371 + middle_end/flambda/base_types/mutable_variable.cmi : \ 5372 + middle_end/variable.cmi \ 5331 5373 middle_end/internal_variable_names.cmi \ 5332 5374 utils/identifiable.cmi \ 5333 5375 typing/ident.cmi \ 5334 - middle_end/base_types/compilation_unit.cmi 5335 - middle_end/base_types/set_of_closures_id.cmo : \ 5336 - middle_end/int_replace_polymorphic_compare.cmi \ 5376 + middle_end/compilation_unit.cmi 5377 + middle_end/flambda/base_types/set_of_closures_id.cmo : \ 5378 + utils/int_replace_polymorphic_compare.cmi \ 5337 5379 utils/identifiable.cmi \ 5338 - middle_end/base_types/id_types.cmi \ 5339 - middle_end/base_types/compilation_unit.cmi \ 5340 - middle_end/base_types/set_of_closures_id.cmi 5341 - middle_end/base_types/set_of_closures_id.cmx : \ 5342 - middle_end/int_replace_polymorphic_compare.cmx \ 5380 + middle_end/flambda/base_types/id_types.cmi \ 5381 + middle_end/compilation_unit.cmi \ 5382 + middle_end/flambda/base_types/set_of_closures_id.cmi 5383 + middle_end/flambda/base_types/set_of_closures_id.cmx : \ 5384 + utils/int_replace_polymorphic_compare.cmx \ 5343 5385 utils/identifiable.cmx \ 5344 - middle_end/base_types/id_types.cmx \ 5345 - middle_end/base_types/compilation_unit.cmx \ 5346 - middle_end/base_types/set_of_closures_id.cmi 5347 - middle_end/base_types/set_of_closures_id.cmi : \ 5386 + middle_end/flambda/base_types/id_types.cmx \ 5387 + middle_end/compilation_unit.cmx \ 5388 + middle_end/flambda/base_types/set_of_closures_id.cmi 5389 + middle_end/flambda/base_types/set_of_closures_id.cmi : \ 5348 5390 utils/identifiable.cmi \ 5349 - middle_end/base_types/compilation_unit.cmi 5350 - middle_end/base_types/set_of_closures_origin.cmo : \ 5351 - middle_end/base_types/set_of_closures_id.cmi \ 5352 - middle_end/int_replace_polymorphic_compare.cmi \ 5353 - middle_end/base_types/set_of_closures_origin.cmi 5354 - middle_end/base_types/set_of_closures_origin.cmx : \ 5355 - middle_end/base_types/set_of_closures_id.cmx \ 5356 - middle_end/int_replace_polymorphic_compare.cmx \ 5357 - middle_end/base_types/set_of_closures_origin.cmi 5358 - middle_end/base_types/set_of_closures_origin.cmi : \ 5359 - middle_end/base_types/set_of_closures_id.cmi \ 5391 + middle_end/compilation_unit.cmi 5392 + middle_end/flambda/base_types/set_of_closures_origin.cmo : \ 5393 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 5394 + utils/int_replace_polymorphic_compare.cmi \ 5395 + middle_end/flambda/base_types/set_of_closures_origin.cmi 5396 + middle_end/flambda/base_types/set_of_closures_origin.cmx : \ 5397 + middle_end/flambda/base_types/set_of_closures_id.cmx \ 5398 + utils/int_replace_polymorphic_compare.cmx \ 5399 + middle_end/flambda/base_types/set_of_closures_origin.cmi 5400 + middle_end/flambda/base_types/set_of_closures_origin.cmi : \ 5401 + middle_end/flambda/base_types/set_of_closures_id.cmi \ 5360 5402 utils/identifiable.cmi \ 5361 - middle_end/base_types/compilation_unit.cmi 5362 - middle_end/base_types/static_exception.cmo : \ 5403 + middle_end/compilation_unit.cmi 5404 + middle_end/flambda/base_types/static_exception.cmo : \ 5363 5405 utils/numbers.cmi \ 5364 - bytecomp/lambda.cmi \ 5365 - middle_end/int_replace_polymorphic_compare.cmi \ 5366 - middle_end/base_types/static_exception.cmi 5367 - middle_end/base_types/static_exception.cmx : \ 5406 + lambda/lambda.cmi \ 5407 + utils/int_replace_polymorphic_compare.cmi \ 5408 + middle_end/flambda/base_types/static_exception.cmi 5409 + middle_end/flambda/base_types/static_exception.cmx : \ 5368 5410 utils/numbers.cmx \ 5369 - bytecomp/lambda.cmx \ 5370 - middle_end/int_replace_polymorphic_compare.cmx \ 5371 - middle_end/base_types/static_exception.cmi 5372 - middle_end/base_types/static_exception.cmi : \ 5411 + lambda/lambda.cmx \ 5412 + utils/int_replace_polymorphic_compare.cmx \ 5413 + middle_end/flambda/base_types/static_exception.cmi 5414 + middle_end/flambda/base_types/static_exception.cmi : \ 5373 5415 utils/identifiable.cmi 5374 - middle_end/base_types/symbol.cmo : \ 5375 - middle_end/base_types/variable.cmi \ 5376 - utils/misc.cmi \ 5377 - middle_end/base_types/linkage_name.cmi \ 5378 - middle_end/int_replace_polymorphic_compare.cmi \ 5379 - utils/identifiable.cmi \ 5380 - middle_end/base_types/compilation_unit.cmi \ 5381 - middle_end/base_types/symbol.cmi 5382 - middle_end/base_types/symbol.cmx : \ 5383 - middle_end/base_types/variable.cmx \ 5384 - utils/misc.cmx \ 5385 - middle_end/base_types/linkage_name.cmx \ 5386 - middle_end/int_replace_polymorphic_compare.cmx \ 5387 - utils/identifiable.cmx \ 5388 - middle_end/base_types/compilation_unit.cmx \ 5389 - middle_end/base_types/symbol.cmi 5390 - middle_end/base_types/symbol.cmi : \ 5391 - middle_end/base_types/variable.cmi \ 5392 - middle_end/base_types/linkage_name.cmi \ 5393 - utils/identifiable.cmi \ 5394 - middle_end/base_types/compilation_unit.cmi 5395 - middle_end/base_types/tag.cmo : \ 5416 + middle_end/flambda/base_types/tag.cmo : \ 5396 5417 utils/numbers.cmi \ 5397 5418 utils/misc.cmi \ 5398 - middle_end/int_replace_polymorphic_compare.cmi \ 5419 + utils/int_replace_polymorphic_compare.cmi \ 5399 5420 utils/identifiable.cmi \ 5400 - middle_end/base_types/tag.cmi 5401 - middle_end/base_types/tag.cmx : \ 5421 + middle_end/flambda/base_types/tag.cmi 5422 + middle_end/flambda/base_types/tag.cmx : \ 5402 5423 utils/numbers.cmx \ 5403 5424 utils/misc.cmx \ 5404 - middle_end/int_replace_polymorphic_compare.cmx \ 5425 + utils/int_replace_polymorphic_compare.cmx \ 5405 5426 utils/identifiable.cmx \ 5406 - middle_end/base_types/tag.cmi 5407 - middle_end/base_types/tag.cmi : \ 5427 + middle_end/flambda/base_types/tag.cmi 5428 + middle_end/flambda/base_types/tag.cmi : \ 5408 5429 utils/identifiable.cmi 5409 - middle_end/base_types/var_within_closure.cmo : \ 5410 - middle_end/int_replace_polymorphic_compare.cmi \ 5411 - middle_end/base_types/closure_element.cmi \ 5412 - middle_end/base_types/var_within_closure.cmi 5413 - middle_end/base_types/var_within_closure.cmx : \ 5414 - middle_end/int_replace_polymorphic_compare.cmx \ 5415 - middle_end/base_types/closure_element.cmx \ 5416 - middle_end/base_types/var_within_closure.cmi 5417 - middle_end/base_types/var_within_closure.cmi : \ 5418 - middle_end/base_types/closure_element.cmi 5419 - middle_end/base_types/variable.cmo : \ 5420 - utils/misc.cmi \ 5421 - middle_end/internal_variable_names.cmi \ 5422 - middle_end/int_replace_polymorphic_compare.cmi \ 5423 - utils/identifiable.cmi \ 5424 - typing/ident.cmi \ 5425 - middle_end/base_types/compilation_unit.cmi \ 5426 - middle_end/base_types/variable.cmi 5427 - middle_end/base_types/variable.cmx : \ 5428 - utils/misc.cmx \ 5429 - middle_end/internal_variable_names.cmx \ 5430 - middle_end/int_replace_polymorphic_compare.cmx \ 5431 - utils/identifiable.cmx \ 5432 - typing/ident.cmx \ 5433 - middle_end/base_types/compilation_unit.cmx \ 5434 - middle_end/base_types/variable.cmi 5435 - middle_end/base_types/variable.cmi : \ 5436 - middle_end/internal_variable_names.cmi \ 5437 - utils/identifiable.cmi \ 5438 - typing/ident.cmi \ 5439 - middle_end/base_types/compilation_unit.cmi 5430 + middle_end/flambda/base_types/var_within_closure.cmo : \ 5431 + utils/int_replace_polymorphic_compare.cmi \ 5432 + middle_end/flambda/base_types/closure_element.cmi \ 5433 + middle_end/flambda/base_types/var_within_closure.cmi 5434 + middle_end/flambda/base_types/var_within_closure.cmx : \ 5435 + utils/int_replace_polymorphic_compare.cmx \ 5436 + middle_end/flambda/base_types/closure_element.cmx \ 5437 + middle_end/flambda/base_types/var_within_closure.cmi 5438 + middle_end/flambda/base_types/var_within_closure.cmi : \ 5439 + middle_end/flambda/base_types/closure_element.cmi 5440 5440 asmcomp/debug/available_regs.cmo : \ 5441 5441 asmcomp/debug/reg_with_debug_info.cmi \ 5442 5442 asmcomp/debug/reg_availability_set.cmi \ ··· 5446 5446 utils/misc.cmi \ 5447 5447 asmcomp/mach.cmi \ 5448 5448 utils/clflags.cmi \ 5449 - asmcomp/backend_var.cmi \ 5449 + middle_end/backend_var.cmi \ 5450 5450 asmcomp/debug/available_regs.cmi 5451 5451 asmcomp/debug/available_regs.cmx : \ 5452 5452 asmcomp/debug/reg_with_debug_info.cmx \ ··· 5457 5457 utils/misc.cmx \ 5458 5458 asmcomp/mach.cmx \ 5459 5459 utils/clflags.cmx \ 5460 - asmcomp/backend_var.cmx \ 5460 + middle_end/backend_var.cmx \ 5461 5461 asmcomp/debug/available_regs.cmi 5462 5462 asmcomp/debug/available_regs.cmi : \ 5463 5463 asmcomp/mach.cmi ··· 5466 5466 utils/numbers.cmi \ 5467 5467 utils/misc.cmi \ 5468 5468 asmcomp/linearize.cmi \ 5469 - middle_end/int_replace_polymorphic_compare.cmi \ 5469 + utils/int_replace_polymorphic_compare.cmi \ 5470 5470 asmcomp/debug/compute_ranges_intf.cmo \ 5471 5471 asmcomp/cmm.cmi \ 5472 5472 asmcomp/debug/compute_ranges.cmi ··· 5475 5475 utils/numbers.cmx \ 5476 5476 utils/misc.cmx \ 5477 5477 asmcomp/linearize.cmx \ 5478 - middle_end/int_replace_polymorphic_compare.cmx \ 5478 + utils/int_replace_polymorphic_compare.cmx \ 5479 5479 asmcomp/debug/compute_ranges_intf.cmx \ 5480 5480 asmcomp/cmm.cmx \ 5481 5481 asmcomp/debug/compute_ranges.cmi ··· 5491 5491 utils/identifiable.cmx 5492 5492 asmcomp/debug/reg_availability_set.cmo : \ 5493 5493 asmcomp/debug/reg_with_debug_info.cmi \ 5494 - asmcomp/backend_var.cmi \ 5494 + middle_end/backend_var.cmi \ 5495 5495 asmcomp/debug/reg_availability_set.cmi 5496 5496 asmcomp/debug/reg_availability_set.cmx : \ 5497 5497 asmcomp/debug/reg_with_debug_info.cmx \ 5498 - asmcomp/backend_var.cmx \ 5498 + middle_end/backend_var.cmx \ 5499 5499 asmcomp/debug/reg_availability_set.cmi 5500 5500 asmcomp/debug/reg_availability_set.cmi : \ 5501 5501 asmcomp/debug/reg_with_debug_info.cmi \ 5502 5502 asmcomp/reg.cmi 5503 5503 asmcomp/debug/reg_with_debug_info.cmo : \ 5504 5504 asmcomp/reg.cmi \ 5505 - asmcomp/backend_var.cmi \ 5505 + middle_end/backend_var.cmi \ 5506 5506 asmcomp/debug/reg_with_debug_info.cmi 5507 5507 asmcomp/debug/reg_with_debug_info.cmx : \ 5508 5508 asmcomp/reg.cmx \ 5509 - asmcomp/backend_var.cmx \ 5509 + middle_end/backend_var.cmx \ 5510 5510 asmcomp/debug/reg_with_debug_info.cmi 5511 5511 asmcomp/debug/reg_with_debug_info.cmi : \ 5512 5512 asmcomp/reg.cmi \ 5513 - asmcomp/backend_var.cmi 5513 + middle_end/backend_var.cmi 5514 5514 driver/compenv.cmo : \ 5515 5515 utils/warnings.cmi \ 5516 5516 utils/profile.cmi \ ··· 5531 5531 driver/compenv.cmi 5532 5532 driver/compenv.cmi : 5533 5533 driver/compile.cmo : \ 5534 - bytecomp/translmod.cmi \ 5535 - bytecomp/simplif.cmi \ 5534 + lambda/translmod.cmi \ 5535 + lambda/simplif.cmi \ 5536 5536 utils/profile.cmi \ 5537 - bytecomp/printlambda.cmi \ 5537 + lambda/printlambda.cmi \ 5538 5538 bytecomp/printinstr.cmi \ 5539 5539 utils/misc.cmi \ 5540 - bytecomp/lambda.cmi \ 5540 + lambda/lambda.cmi \ 5541 5541 bytecomp/emitcode.cmi \ 5542 5542 driver/compile_common.cmi \ 5543 5543 utils/clflags.cmi \ 5544 5544 bytecomp/bytegen.cmi \ 5545 5545 driver/compile.cmi 5546 5546 driver/compile.cmx : \ 5547 - bytecomp/translmod.cmx \ 5548 - bytecomp/simplif.cmx \ 5547 + lambda/translmod.cmx \ 5548 + lambda/simplif.cmx \ 5549 5549 utils/profile.cmx \ 5550 - bytecomp/printlambda.cmx \ 5550 + lambda/printlambda.cmx \ 5551 5551 bytecomp/printinstr.cmx \ 5552 5552 utils/misc.cmx \ 5553 - bytecomp/lambda.cmx \ 5553 + lambda/lambda.cmx \ 5554 5554 bytecomp/emitcode.cmx \ 5555 5555 driver/compile_common.cmx \ 5556 5556 utils/clflags.cmx \ ··· 5717 5717 driver/makedepend.cmi 5718 5718 driver/makedepend.cmi : 5719 5719 driver/optcompile.cmo : \ 5720 - bytecomp/translmod.cmi \ 5721 - bytecomp/simplif.cmi \ 5720 + lambda/translmod.cmi \ 5721 + lambda/simplif.cmi \ 5722 5722 utils/profile.cmi \ 5723 - bytecomp/printlambda.cmi \ 5723 + lambda/printlambda.cmi \ 5724 5724 utils/misc.cmi \ 5725 - middle_end/middle_end.cmi \ 5726 - bytecomp/lambda.cmi \ 5725 + lambda/lambda.cmi \ 5726 + middle_end/flambda/flambda_middle_end.cmi \ 5727 5727 utils/config.cmi \ 5728 - asmcomp/compilenv.cmi \ 5728 + middle_end/compilenv.cmi \ 5729 5729 driver/compile_common.cmi \ 5730 5730 utils/clflags.cmi \ 5731 5731 asmcomp/asmgen.cmi \ 5732 5732 driver/optcompile.cmi 5733 5733 driver/optcompile.cmx : \ 5734 - bytecomp/translmod.cmx \ 5735 - bytecomp/simplif.cmx \ 5734 + lambda/translmod.cmx \ 5735 + lambda/simplif.cmx \ 5736 5736 utils/profile.cmx \ 5737 - bytecomp/printlambda.cmx \ 5737 + lambda/printlambda.cmx \ 5738 5738 utils/misc.cmx \ 5739 - middle_end/middle_end.cmx \ 5740 - bytecomp/lambda.cmx \ 5739 + lambda/lambda.cmx \ 5740 + middle_end/flambda/flambda_middle_end.cmx \ 5741 5741 utils/config.cmx \ 5742 - asmcomp/compilenv.cmx \ 5742 + middle_end/compilenv.cmx \ 5743 5743 driver/compile_common.cmx \ 5744 5744 utils/clflags.cmx \ 5745 5745 asmcomp/asmgen.cmx \ ··· 5765 5765 driver/makedepend.cmi \ 5766 5766 driver/main_args.cmi \ 5767 5767 parsing/location.cmi \ 5768 - asmcomp/import_approx.cmi \ 5768 + middle_end/flambda/import_approx.cmi \ 5769 5769 utils/config.cmi \ 5770 5770 driver/compmisc.cmi \ 5771 - asmcomp/compilenv.cmi \ 5771 + middle_end/compilenv.cmi \ 5772 5772 driver/compenv.cmi \ 5773 5773 utils/clflags.cmi \ 5774 5774 middle_end/backend_intf.cmi \ ··· 5787 5787 driver/makedepend.cmx \ 5788 5788 driver/main_args.cmx \ 5789 5789 parsing/location.cmx \ 5790 - asmcomp/import_approx.cmx \ 5790 + middle_end/flambda/import_approx.cmx \ 5791 5791 utils/config.cmx \ 5792 5792 driver/compmisc.cmx \ 5793 - asmcomp/compilenv.cmx \ 5793 + middle_end/compilenv.cmx \ 5794 5794 driver/compenv.cmx \ 5795 5795 utils/clflags.cmx \ 5796 5796 middle_end/backend_intf.cmi \ ··· 5830 5830 parsing/parsetree.cmi 5831 5831 toplevel/expunge.cmo : \ 5832 5832 bytecomp/symtable.cmi \ 5833 - bytecomp/runtimedef.cmi \ 5833 + lambda/runtimedef.cmi \ 5834 5834 utils/misc.cmi \ 5835 5835 typing/ident.cmi \ 5836 5836 bytecomp/bytesections.cmi 5837 5837 toplevel/expunge.cmx : \ 5838 5838 bytecomp/symtable.cmx \ 5839 - bytecomp/runtimedef.cmx \ 5839 + lambda/runtimedef.cmx \ 5840 5840 utils/misc.cmx \ 5841 5841 typing/ident.cmx \ 5842 5842 bytecomp/bytesections.cmx ··· 5913 5913 typing/typemod.cmi \ 5914 5914 typing/typedtree.cmi \ 5915 5915 typing/typecore.cmi \ 5916 - bytecomp/translmod.cmi \ 5917 - bytecomp/simplif.cmi \ 5916 + lambda/translmod.cmi \ 5917 + lambda/simplif.cmi \ 5918 5918 asmcomp/proc.cmi \ 5919 5919 typing/printtyped.cmi \ 5920 5920 typing/printtyp.cmi \ 5921 - bytecomp/printlambda.cmi \ 5921 + lambda/printlambda.cmi \ 5922 5922 parsing/printast.cmi \ 5923 5923 typing/predef.cmi \ 5924 5924 parsing/pprintast.cmi \ ··· 5929 5929 typing/outcometree.cmi \ 5930 5930 typing/oprint.cmi \ 5931 5931 utils/misc.cmi \ 5932 - middle_end/middle_end.cmi \ 5933 5932 parsing/longident.cmi \ 5934 5933 parsing/location.cmi \ 5935 5934 utils/load_path.cmi \ 5936 5935 parsing/lexer.cmi \ 5937 - bytecomp/lambda.cmi \ 5936 + lambda/lambda.cmi \ 5938 5937 typing/includemod.cmi \ 5939 - asmcomp/import_approx.cmi \ 5938 + middle_end/flambda/import_approx.cmi \ 5940 5939 typing/ident.cmi \ 5941 5940 toplevel/genprintval.cmi \ 5941 + middle_end/flambda/flambda_middle_end.cmi \ 5942 5942 typing/env.cmi \ 5943 5943 utils/config.cmi \ 5944 5944 driver/compmisc.cmi \ 5945 - asmcomp/compilenv.cmi \ 5945 + middle_end/compilenv.cmi \ 5946 5946 driver/compenv.cmi \ 5947 5947 utils/clflags.cmi \ 5948 5948 typing/btype.cmi \ ··· 5959 5959 typing/typemod.cmx \ 5960 5960 typing/typedtree.cmx \ 5961 5961 typing/typecore.cmx \ 5962 - bytecomp/translmod.cmx \ 5963 - bytecomp/simplif.cmx \ 5962 + lambda/translmod.cmx \ 5963 + lambda/simplif.cmx \ 5964 5964 asmcomp/proc.cmx \ 5965 5965 typing/printtyped.cmx \ 5966 5966 typing/printtyp.cmx \ 5967 - bytecomp/printlambda.cmx \ 5967 + lambda/printlambda.cmx \ 5968 5968 parsing/printast.cmx \ 5969 5969 typing/predef.cmx \ 5970 5970 parsing/pprintast.cmx \ ··· 5975 5975 typing/outcometree.cmi \ 5976 5976 typing/oprint.cmx \ 5977 5977 utils/misc.cmx \ 5978 - middle_end/middle_end.cmx \ 5979 5978 parsing/longident.cmx \ 5980 5979 parsing/location.cmx \ 5981 5980 utils/load_path.cmx \ 5982 5981 parsing/lexer.cmx \ 5983 - bytecomp/lambda.cmx \ 5982 + lambda/lambda.cmx \ 5984 5983 typing/includemod.cmx \ 5985 - asmcomp/import_approx.cmx \ 5984 + middle_end/flambda/import_approx.cmx \ 5986 5985 typing/ident.cmx \ 5987 5986 toplevel/genprintval.cmx \ 5987 + middle_end/flambda/flambda_middle_end.cmx \ 5988 5988 typing/env.cmx \ 5989 5989 utils/config.cmx \ 5990 5990 driver/compmisc.cmx \ 5991 - asmcomp/compilenv.cmx \ 5991 + middle_end/compilenv.cmx \ 5992 5992 driver/compenv.cmx \ 5993 5993 utils/clflags.cmx \ 5994 5994 typing/btype.cmx \ ··· 6060 6060 bytecomp/dll.cmi \ 6061 6061 typing/ctype.cmi \ 6062 6062 utils/config.cmi \ 6063 - bytecomp/cmo_format.cmi \ 6063 + file_formats/cmo_format.cmi \ 6064 6064 utils/clflags.cmi \ 6065 6065 typing/btype.cmi \ 6066 6066 parsing/asttypes.cmi \ ··· 6089 6089 bytecomp/dll.cmx \ 6090 6090 typing/ctype.cmx \ 6091 6091 utils/config.cmx \ 6092 - bytecomp/cmo_format.cmi \ 6092 + file_formats/cmo_format.cmi \ 6093 6093 utils/clflags.cmx \ 6094 6094 typing/btype.cmx \ 6095 6095 parsing/asttypes.cmi \ ··· 6104 6104 typing/typemod.cmi \ 6105 6105 typing/typedtree.cmi \ 6106 6106 typing/typecore.cmi \ 6107 - bytecomp/translmod.cmi \ 6107 + lambda/translmod.cmi \ 6108 6108 bytecomp/symtable.cmi \ 6109 - bytecomp/simplif.cmi \ 6109 + lambda/simplif.cmi \ 6110 6110 typing/printtyped.cmi \ 6111 6111 typing/printtyp.cmi \ 6112 - bytecomp/printlambda.cmi \ 6112 + lambda/printlambda.cmi \ 6113 6113 bytecomp/printinstr.cmi \ 6114 6114 parsing/printast.cmi \ 6115 6115 typing/predef.cmi \ ··· 6148 6148 typing/typemod.cmx \ 6149 6149 typing/typedtree.cmx \ 6150 6150 typing/typecore.cmx \ 6151 - bytecomp/translmod.cmx \ 6151 + lambda/translmod.cmx \ 6152 6152 bytecomp/symtable.cmx \ 6153 - bytecomp/simplif.cmx \ 6153 + lambda/simplif.cmx \ 6154 6154 typing/printtyped.cmx \ 6155 6155 typing/printtyp.cmx \ 6156 - bytecomp/printlambda.cmx \ 6156 + lambda/printlambda.cmx \ 6157 6157 bytecomp/printinstr.cmx \ 6158 6158 parsing/printast.cmx \ 6159 6159 typing/predef.cmx \
+5 -3
.gitattributes
··· 27 27 *.png binary 28 28 *.tfm binary 29 29 30 - # Tell GitHub not to show diffs for autogenerated files 31 - *.depend linguist-generated 30 + # configure is declared as binary so that it doesn't get included in diffs. 31 + # This also means it will have the correct Unix line-endings, even on Windows. 32 + /configure binary 32 33 33 34 # 'union' merge driver just unions textual content in case of conflict 34 35 # http://krlmlr.github.io/using-gitattributes-to-avoid-merge-conflicts/ ··· 81 82 82 83 # configure is generated so do not check it 83 84 configure typo.prune 85 + 86 + ocaml-variants.opam typo.prune 84 87 85 88 emacs/*.el typo.long-line=may 86 89 emacs/caml.el typo.long-line=may typo.missing-header ··· 139 142 140 143 /tools/ci/appveyor/appveyor_build.cmd text eol=crlf 141 144 142 - configure text eol=lf 143 145 configure.ac text eol=lf 144 146 autogen text eol=lf 145 147 build-aux/compile text eol=lf
+2
.gitignore
··· 82 82 /emacs/ocamltags 83 83 /emacs/*.elc 84 84 85 + /lambda/runtimedef.ml 86 + 85 87 /lex/parser.ml 86 88 /lex/parser.mli 87 89 /lex/lexer.ml
+1
.travis.yml
··· 13 13 #* * 14 14 #************************************************************************** 15 15 16 + dist: xenial 16 17 sudo: false 17 18 language: c 18 19 git:
+72 -13
Changes
··· 21 21 (Greg V, review by Sébastien Hinderer, Stephen Dolan, Damien Doligez 22 22 and Xavier Leroy) 23 23 24 + - GPR#8547: Optimize matches that are an affine function of the input. 25 + (Stefan Muenzel, review by Alain Frisch, Gabriel Scherer) 26 + 24 27 ### Compiler user-interface and warnings: 25 28 26 29 * #2276: Remove support for compiler plugins and hooks (also adds 27 30 [Dynlink.unsafe_get_global_value]) 28 31 (Mark Shinwell, Xavier Clerc, review by Nicolás Ojeda Bär, 29 32 Florian Angeletti, David Allsopp and Xavier Leroy) 33 + 34 + - #2301: Hint on type error on int literal 35 + (Jules Aguillon, review by Nicolás Ojeda Bär , Florian Angeletti, 36 + Gabriel Scherer and Armaël Guéneau) 37 + 38 + - #2307: Hint on type error on int's operators 39 + (Jules Aguillon, with help from Armaël Guéneau, 40 + review by Gabriel Scherer and Florian Angeletti) 30 41 31 42 - #2314: Remove support for gprof profiling. 32 43 (Mark Shinwell, review by Xavier Clerc and Stephen Dolan) ··· 34 45 - #3819, #8546 more explanations and tests for illegal permutation 35 46 (Florian Angeletti, review by Gabriel Scherer) 36 47 48 + - #8541: Correctly print multi-lines locations 49 + (Louis Roché, review by Gabriel Scherer) 50 + 51 + - #8579: Better error message for private constructors 52 + of an extensible variant type 53 + (Guillaume Bury, review by many fine eyes) 54 + 37 55 ### Compiler distribution build system: 56 + 57 + - #2267: merge generation of header programs, also fixing parallel build on 58 + Cygwin. 59 + (David Allsopp, review by Sébastien Hinderer) 38 60 39 61 - #8514: Use boot/ocamlc.opt for building, if available. 40 62 (Stephen Dolan, review by Gabriel Scherer) ··· 50 72 - #1973: fix compilation of catches with multiple handlers 51 73 (Vincent Laviron) 52 74 75 + - #2190: fix pretty printing (using Pprintast) of "lazy ..." patterns and 76 + "fun (type t) -> ..." expressions. 77 + (Nicolás Ojeda Bär, review by Gabriel Scherer) 78 + 53 79 - #2228, #8545: refactoring the handling of .cmi files 54 80 by moving the logic from Env to a new module Persistent_env 55 81 (Gabriel Scherer, review by Jérémie Dimino and Thomas Refis) ··· 57 83 - #2229: Env: remove prefix_idents cache 58 84 (Thomas Refis, review by Frédéric Bour and Gabriel Scherer) 59 85 60 - - #2237: Reorder linearisation of Trywith to avoid a call instruction 61 - (Vincent Laviron and Greta Yorsh, additional review by Mark Shinwell) 86 + - #2237, #8582: Reorder linearisation of Trywith to avoid a call instruction 87 + (Vincent Laviron and Greta Yorsh, additional review by Mark Shinwell; 88 + fix in #8582 by Mark Shinwell, Xavier Leroy and Anil Madhavapeddy) 62 89 63 90 - #2265: Add bytecomp/opcodes.mli 64 91 (Mark Shinwell, review by Nicolas Ojeda Bar) ··· 73 100 - #2280: Don't make more Clambda constants after starting Cmmgen 74 101 (Mark Shinwell, review by Vincent Laviron) 75 102 103 + - #2281: Move some middle-end files around 104 + (Mark Shinwell) 105 + 76 106 - #2283: Add [is_prefix] and [find_and_chop_longest_common_prefix] to 77 107 [Misc.Stdlib.List] 78 108 (Mark Shinwell, review by Alain Frisch and Stephen Dolan) ··· 97 127 98 128 - #7878, #8542: Replaced TypedtreeIter with tast_iterator 99 129 (Isaac "Izzy" Avram, review by Gabriel Scherer and Nicolás Ojeda Bär) 130 + 131 + - #8598: Replace "not is_nonexpansive" by "maybe_expansive". 132 + (Thomas Refis, review by David Allsopp, Florian Angeletti, Gabriel Radanne, 133 + Gabriel Scherer and Xavier Leroy) 100 134 101 135 ### Runtime system: 102 136 103 137 - #1725, #2279: Deprecate Obj.set_tag and Obj.truncate 104 138 (Stephen Dolan, review by Gabriel Scherer, Damien Doligez and Xavier Leroy) 105 139 140 + - #2075, #7729: rename _T macro used to support Unicode in the (Windows) runtime 141 + in order to avoid compiler warning 142 + (Nicolás Ojeda Bär, review by Gabriel Scherer and David Allsopp) 143 + 106 144 * #2240: Constify "identifier" in struct custom_operations 107 145 (Cedric Cellier, review by Xavier Leroy) 108 146 ··· 118 156 in printf %F 119 157 (Pierre Roux, review by Gabriel Scherer) 120 158 159 + - #6148, #8596: optimize some buffer operations 160 + (Damien Doligez, reports by John Whitington and Alain Frisch, 161 + review by Jeremy Yallop and Gabriel Scherer) 162 + 121 163 ### Other libraries: 122 164 123 165 - #7903, #2306: Make Thread.delay interruptible by signals again ··· 136 178 (Jérémie Dimino, review by Nicolas Ojeda Bar, Xavier Leroy and 137 179 Sébastien Hinderer) 138 180 139 - ### Compiler user-interface and warnings: 181 + ### Manual and documentation: 140 182 141 - - #2301: Hint on type error on int literal 142 - (Jules Aguillon, review by Nicolás Ojeda Bär , Florian Angeletti, 143 - Gabriel Scherer and Armaël Guéneau) 144 - 145 - - #2307: Hint on type error on int's operators 146 - (Jules Aguillon, with help from Armaël Guéneau, 147 - review by Gabriel Scherer and Florian Angeletti) 148 - 149 - ### Manual and documentation: 183 + - #7584, #8538: Document .cmt* files in the "overview" of ocaml{c,opt} 184 + (Oxana Kostikova, rewiew by Florian Angeletti) 150 185 151 186 - #8515: manual, precise constraints on reexported types 152 187 (Florian Angeletti, review by Gabriel Scherer) ··· 158 193 - #7937, #2287: fix uncaught Unify exception when looking for type 159 194 declaration 160 195 (Florian Angeletti, review by Jacques Garrigue) 196 + 197 + - GPR#2296: Fix parsing of hexadecimal floats with underscores in the exponent. 198 + (Hugo Heuzard and Xavier Leroy, review by Gabriel Scherer) 161 199 162 200 OCaml 4.08.0 163 201 ------------ ··· 548 586 549 587 ### Runtime system: 550 588 551 - - #7198, #7750, #1738: add a function (caml_custom_alloc_mem) 589 + - #7198, #7750, #1738: add a function (caml_alloc_custom_mem) 552 590 and three GC parameters to give the user better control of the 553 591 out-of-heap memory retained by custom values; use the function to 554 592 allocate bigarrays and I/O channels. ··· 578 616 no-naked-pointers 579 617 (Sam Goldman, review by Gabriel Scherer, David Allsopp, Stephen Dolan) 580 618 619 + - #7829, #8585: Fix pointer comparisons in freelist.c (for 32-bit platforms) 620 + (David Allsopp and Damien Doligez) 621 + 622 + - #8567, #8569: on ARM64, use 32-bit loads to access caml_backtrace_active 623 + (Xavier Leroy, review by Mark Shinwell and Greta Yorsh) 624 + 625 + - #8568: Fix a memory leak in mmapped bigarrays 626 + (Damien Doligez, review by Xavier Leroy and Jérémie Dimino) 627 + 581 628 ### Tools 582 629 583 630 - #2182: Split Emacs caml-mode as an independent project. ··· 613 660 - #2189: change ocamldep Makefile-output to print each dependency 614 661 on a new line, for more readable diffs of versioned dependencies. 615 662 (Gabriel Scherer, review by Nicolás Ojeda Bär) 663 + 664 + - #2221: ocamldep will now correctly allow a .ml file in an include directory 665 + that appears first in the search order to shadow a .mli appearing in a later 666 + include directory. 667 + (Nicolás Ojeda Bär, review by Florian Angeletti) 616 668 617 669 - #2223: ocamltest: fix the "bsd" and "not-bsd" built-in actions to 618 670 recognize all BSD variants ··· 753 805 754 806 * #8533: Remove some unused configure tests 755 807 (Stephen Dolan, review by David Allsopp and Sébastien Hinderer) 808 + 809 + - GPR#2207,#8604: Add opam files to allow pinning 810 + (Leo White, Greta Yorsh, review by Gabriel Radanne) 756 811 757 812 ### Internal/compiler-libs changes: 758 813 ··· 1016 1071 - #7929, #2261: Subst.signature: call cleanup_types exactly once 1017 1072 (Thomas Refis, review by Gabriel Scherer and Jacques Garrigue, 1018 1073 report by Daniel Bünzli and Jon Ludlam) 1074 + 1075 + - #8550, #8552: Soundness issue with class generalization 1076 + (Jacques Garrigue, review by Leo White and Thomas Refis, 1077 + report by Jeremy Yallop) 1019 1078 1020 1079 OCaml 4.07.1 (4 October 2018) 1021 1080 -----------------------------
+8
HACKING.adoc
··· 43 43 ---- 44 44 opam compiler-conf install 45 45 ---- 46 + + 47 + With opam 2, create a local opam switch with the compiler installed from 48 + the current source directory: 49 + + 50 + ---- 51 + opam switch create . --empty 52 + opam install . 53 + ---- 46 54 47 55 6. You did it, Well done! Consult link:CONTRIBUTING.md[] to send your contribution upstream. 48 56
+156 -118
Makefile
··· 46 46 CAMLC=$(BOOT_OCAMLC) -g -nostdlib -I boot -use-prims runtime/primitives 47 47 CAMLOPT=$(CAMLRUN) ./ocamlopt -g -nostdlib -I stdlib -I otherlibs/dynlink 48 48 ARCHES=amd64 i386 arm arm64 power s390x 49 - INCLUDES=-I utils -I parsing -I typing -I bytecomp -I middle_end \ 50 - -I middle_end/base_types -I asmcomp -I asmcomp/debug \ 49 + INCLUDES=-I utils -I parsing -I typing -I bytecomp -I file_formats \ 50 + -I lambda -I middle_end -I middle_end/closure \ 51 + -I middle_end/flambda -I middle_end/flambda/base_types \ 52 + -I asmcomp -I asmcomp/debug \ 51 53 -I driver -I toplevel 52 54 53 55 COMPFLAGS=-strict-sequence -principal -absname -w +a-4-9-41-42-44-45-48-66 \ ··· 76 78 utils/terminfo.cmo utils/ccomp.cmo utils/warnings.cmo \ 77 79 utils/consistbl.cmo \ 78 80 utils/strongly_connected_components.cmo \ 79 - utils/targetint.cmo utils/domainstate.cmo \ 80 - utils/build_path_prefix_map.cmo \ 81 - utils/targetint.cmo 81 + utils/targetint.cmo \ 82 + utils/domainstate.cmo \ 83 + utils/int_replace_polymorphic_compare.cmo 82 84 83 85 PARSING=parsing/location.cmo parsing/longident.cmo \ 84 86 parsing/docstrings.cmo parsing/syntaxerr.cmo \ ··· 93 95 typing/primitive.cmo typing/types.cmo \ 94 96 typing/btype.cmo typing/oprint.cmo \ 95 97 typing/subst.cmo typing/predef.cmo \ 96 - typing/datarepr.cmo typing/cmi_format.cmo \ 97 - typing/persistent_env.cmo \ 98 - typing/env.cmo \ 98 + typing/datarepr.cmo file_formats/cmi_format.cmo \ 99 + typing/persistent_env.cmo typing/env.cmo \ 99 100 typing/typedtree.cmo typing/printtyped.cmo typing/ctype.cmo \ 100 101 typing/printtyp.cmo typing/includeclass.cmo \ 101 102 typing/mtype.cmo typing/envaux.cmo typing/includecore.cmo \ 102 103 typing/tast_iterator.cmo typing/tast_mapper.cmo \ 103 - typing/cmt_format.cmo typing/untypeast.cmo \ 104 + file_formats/cmt_format.cmo typing/untypeast.cmo \ 104 105 typing/includemod.cmo typing/typetexp.cmo typing/printpat.cmo \ 105 106 typing/parmatch.cmo typing/stypes.cmo \ 106 107 typing/typedecl_properties.cmo typing/typedecl_variance.cmo \ ··· 109 110 typing/rec_check.cmo typing/typecore.cmo typing/typeclass.cmo \ 110 111 typing/typemod.cmo 111 112 112 - COMP=bytecomp/lambda.cmo bytecomp/printlambda.cmo \ 113 - bytecomp/switch.cmo bytecomp/matching.cmo \ 114 - bytecomp/translobj.cmo bytecomp/translattribute.cmo \ 115 - bytecomp/translprim.cmo bytecomp/translcore.cmo \ 116 - bytecomp/translclass.cmo bytecomp/translmod.cmo \ 117 - bytecomp/simplif.cmo bytecomp/runtimedef.cmo \ 113 + LAMBDA=lambda/debuginfo.cmo \ 114 + lambda/lambda.cmo lambda/printlambda.cmo \ 115 + lambda/switch.cmo lambda/matching.cmo \ 116 + lambda/translobj.cmo lambda/translattribute.cmo \ 117 + lambda/translprim.cmo lambda/translcore.cmo \ 118 + lambda/translclass.cmo lambda/translmod.cmo \ 119 + lambda/simplif.cmo lambda/runtimedef.cmo 120 + 121 + COMP=\ 118 122 bytecomp/meta.cmo bytecomp/opcodes.cmo \ 119 123 bytecomp/bytesections.cmo bytecomp/dll.cmo \ 120 124 bytecomp/symtable.cmo \ ··· 123 127 driver/makedepend.cmo \ 124 128 driver/compile_common.cmo 125 129 126 - 127 - COMMON=$(UTILS) $(PARSING) $(TYPING) $(COMP) 130 + COMMON=$(UTILS) $(PARSING) $(TYPING) $(LAMBDA) $(COMP) 128 131 129 132 BYTECOMP=bytecomp/instruct.cmo bytecomp/bytegen.cmo \ 130 133 bytecomp/printinstr.cmo bytecomp/emitcode.cmo \ ··· 152 155 ASMCOMP=\ 153 156 $(ARCH_SPECIFIC_ASMCOMP) \ 154 157 asmcomp/arch.cmo \ 155 - asmcomp/backend_var.cmo \ 156 158 asmcomp/cmm.cmo asmcomp/printcmm.cmo \ 157 159 asmcomp/reg.cmo asmcomp/debug/reg_with_debug_info.cmo \ 158 160 asmcomp/debug/reg_availability_set.cmo \ 159 161 asmcomp/mach.cmo asmcomp/proc.cmo \ 160 - asmcomp/clambda.cmo asmcomp/printclambda.cmo \ 161 - asmcomp/export_info.cmo \ 162 - asmcomp/export_info_for_pack.cmo \ 163 - asmcomp/compilenv.cmo \ 164 - asmcomp/closure.cmo \ 165 - asmcomp/traverse_for_exported_symbols.cmo \ 166 - asmcomp/build_export_info.cmo \ 167 - asmcomp/closure_offsets.cmo \ 168 - asmcomp/flambda_to_clambda.cmo \ 169 - asmcomp/import_approx.cmo \ 170 - asmcomp/un_anf.cmo \ 171 162 asmcomp/afl_instrument.cmo \ 172 163 asmcomp/strmatch.cmo \ 173 164 asmcomp/cmmgen_state.cmo \ ··· 195 186 asmcomp/asmlink.cmo asmcomp/asmlibrarian.cmo asmcomp/asmpackager.cmo \ 196 187 driver/opterrors.cmo driver/optcompile.cmo 197 188 189 + # Files under middle_end/ are not to reference files under asmcomp/. 190 + # This ensures that the middle end can be linked (e.g. for objinfo) even when 191 + # the native code compiler is not present for some particular target. 192 + 193 + MIDDLE_END_CLOSURE=\ 194 + middle_end/closure/closure.cmo 195 + 196 + # Owing to dependencies through [Compilenv], which would be 197 + # difficult to remove, some of the lower parts of Flambda (anything that is 198 + # saved in a .cmx file) have to be included in the [MIDDLE_END] stanza, below. 199 + MIDDLE_END_FLAMBDA=\ 200 + middle_end/flambda/import_approx.cmo \ 201 + middle_end/flambda/lift_code.cmo \ 202 + middle_end/flambda/closure_conversion_aux.cmo \ 203 + middle_end/flambda/closure_conversion.cmo \ 204 + middle_end/flambda/initialize_symbol_to_let_symbol.cmo \ 205 + middle_end/flambda/lift_let_to_initialize_symbol.cmo \ 206 + middle_end/flambda/find_recursive_functions.cmo \ 207 + middle_end/flambda/invariant_params.cmo \ 208 + middle_end/flambda/inconstant_idents.cmo \ 209 + middle_end/flambda/alias_analysis.cmo \ 210 + middle_end/flambda/lift_constants.cmo \ 211 + middle_end/flambda/share_constants.cmo \ 212 + middle_end/flambda/simplify_common.cmo \ 213 + middle_end/flambda/remove_unused_arguments.cmo \ 214 + middle_end/flambda/remove_unused_closure_vars.cmo \ 215 + middle_end/flambda/remove_unused_program_constructs.cmo \ 216 + middle_end/flambda/simplify_boxed_integer_ops.cmo \ 217 + middle_end/flambda/simplify_primitives.cmo \ 218 + middle_end/flambda/inlining_stats_types.cmo \ 219 + middle_end/flambda/inlining_stats.cmo \ 220 + middle_end/flambda/inline_and_simplify_aux.cmo \ 221 + middle_end/flambda/remove_free_vars_equal_to_args.cmo \ 222 + middle_end/flambda/extract_projections.cmo \ 223 + middle_end/flambda/augment_specialised_args.cmo \ 224 + middle_end/flambda/unbox_free_vars_of_closures.cmo \ 225 + middle_end/flambda/unbox_specialised_args.cmo \ 226 + middle_end/flambda/unbox_closures.cmo \ 227 + middle_end/flambda/inlining_transforms.cmo \ 228 + middle_end/flambda/inlining_decision.cmo \ 229 + middle_end/flambda/inline_and_simplify.cmo \ 230 + middle_end/flambda/ref_to_variables.cmo \ 231 + middle_end/flambda/flambda_invariants.cmo \ 232 + middle_end/flambda/traverse_for_exported_symbols.cmo \ 233 + middle_end/flambda/build_export_info.cmo \ 234 + middle_end/flambda/closure_offsets.cmo \ 235 + middle_end/flambda/un_anf.cmo \ 236 + middle_end/flambda/flambda_to_clambda.cmo \ 237 + middle_end/flambda/flambda_middle_end.cmo 238 + 198 239 MIDDLE_END=\ 199 - middle_end/int_replace_polymorphic_compare.cmo \ 200 - middle_end/debuginfo.cmo \ 201 - asmcomp/clambda_primitives.cmo \ 202 - asmcomp/semantics_of_primitives.cmo \ 203 - asmcomp/convert_primitives.cmo \ 204 - asmcomp/printclambda_primitives.cmo \ 205 - middle_end/base_types/tag.cmo \ 206 - middle_end/base_types/linkage_name.cmo \ 207 - middle_end/base_types/compilation_unit.cmo \ 208 240 middle_end/internal_variable_names.cmo \ 209 - middle_end/base_types/variable.cmo \ 210 - middle_end/base_types/mutable_variable.cmo \ 211 - middle_end/base_types/id_types.cmo \ 212 - middle_end/base_types/set_of_closures_id.cmo \ 213 - middle_end/base_types/set_of_closures_origin.cmo \ 214 - middle_end/base_types/closure_element.cmo \ 215 - middle_end/base_types/closure_id.cmo \ 216 - middle_end/base_types/closure_origin.cmo \ 217 - middle_end/base_types/var_within_closure.cmo \ 218 - middle_end/base_types/static_exception.cmo \ 219 - middle_end/base_types/export_id.cmo \ 220 - middle_end/base_types/symbol.cmo \ 221 - middle_end/pass_wrapper.cmo \ 222 - middle_end/allocated_const.cmo \ 223 - middle_end/parameter.cmo \ 224 - middle_end/projection.cmo \ 225 - middle_end/flambda.cmo \ 226 - middle_end/flambda_iterators.cmo \ 227 - middle_end/flambda_utils.cmo \ 228 - middle_end/inlining_cost.cmo \ 229 - middle_end/effect_analysis.cmo \ 230 - middle_end/freshening.cmo \ 231 - middle_end/simple_value_approx.cmo \ 232 - middle_end/lift_code.cmo \ 233 - middle_end/closure_conversion_aux.cmo \ 234 - middle_end/closure_conversion.cmo \ 235 - middle_end/initialize_symbol_to_let_symbol.cmo \ 236 - middle_end/lift_let_to_initialize_symbol.cmo \ 237 - middle_end/find_recursive_functions.cmo \ 238 - middle_end/invariant_params.cmo \ 239 - middle_end/inconstant_idents.cmo \ 240 - middle_end/alias_analysis.cmo \ 241 - middle_end/lift_constants.cmo \ 242 - middle_end/share_constants.cmo \ 243 - middle_end/simplify_common.cmo \ 244 - middle_end/remove_unused_arguments.cmo \ 245 - middle_end/remove_unused_closure_vars.cmo \ 246 - middle_end/remove_unused_program_constructs.cmo \ 247 - middle_end/simplify_boxed_integer_ops.cmo \ 248 - middle_end/simplify_primitives.cmo \ 249 - middle_end/inlining_stats_types.cmo \ 250 - middle_end/inlining_stats.cmo \ 251 - middle_end/inline_and_simplify_aux.cmo \ 252 - middle_end/remove_free_vars_equal_to_args.cmo \ 253 - middle_end/extract_projections.cmo \ 254 - middle_end/augment_specialised_args.cmo \ 255 - middle_end/unbox_free_vars_of_closures.cmo \ 256 - middle_end/unbox_specialised_args.cmo \ 257 - middle_end/unbox_closures.cmo \ 258 - middle_end/inlining_transforms.cmo \ 259 - middle_end/inlining_decision.cmo \ 260 - middle_end/inline_and_simplify.cmo \ 261 - middle_end/ref_to_variables.cmo \ 262 - middle_end/flambda_invariants.cmo \ 263 - middle_end/middle_end.cmo 241 + middle_end/linkage_name.cmo \ 242 + middle_end/compilation_unit.cmo \ 243 + middle_end/variable.cmo \ 244 + middle_end/flambda/base_types/closure_element.cmo \ 245 + middle_end/flambda/base_types/closure_id.cmo \ 246 + middle_end/symbol.cmo \ 247 + middle_end/backend_var.cmo \ 248 + middle_end/clambda_primitives.cmo \ 249 + middle_end/printclambda_primitives.cmo \ 250 + middle_end/clambda.cmo \ 251 + middle_end/printclambda.cmo \ 252 + middle_end/semantics_of_primitives.cmo \ 253 + middle_end/convert_primitives.cmo \ 254 + middle_end/flambda/base_types/id_types.cmo \ 255 + middle_end/flambda/base_types/export_id.cmo \ 256 + middle_end/flambda/base_types/tag.cmo \ 257 + middle_end/flambda/base_types/mutable_variable.cmo \ 258 + middle_end/flambda/base_types/set_of_closures_id.cmo \ 259 + middle_end/flambda/base_types/set_of_closures_origin.cmo \ 260 + middle_end/flambda/base_types/closure_origin.cmo \ 261 + middle_end/flambda/base_types/var_within_closure.cmo \ 262 + middle_end/flambda/base_types/static_exception.cmo \ 263 + middle_end/flambda/pass_wrapper.cmo \ 264 + middle_end/flambda/allocated_const.cmo \ 265 + middle_end/flambda/parameter.cmo \ 266 + middle_end/flambda/projection.cmo \ 267 + middle_end/flambda/flambda.cmo \ 268 + middle_end/flambda/flambda_iterators.cmo \ 269 + middle_end/flambda/flambda_utils.cmo \ 270 + middle_end/flambda/freshening.cmo \ 271 + middle_end/flambda/effect_analysis.cmo \ 272 + middle_end/flambda/inlining_cost.cmo \ 273 + middle_end/flambda/simple_value_approx.cmo \ 274 + middle_end/flambda/export_info.cmo \ 275 + middle_end/flambda/export_info_for_pack.cmo \ 276 + middle_end/compilenv.cmo \ 277 + $(MIDDLE_END_CLOSURE) \ 278 + $(MIDDLE_END_FLAMBDA) 264 279 265 280 OPTCOMP=$(MIDDLE_END) $(ASMCOMP) 266 281 ··· 569 584 parsing/*.cmi \ 570 585 typing/*.cmi \ 571 586 bytecomp/*.cmi \ 587 + file_formats/*.cmi \ 588 + lambda/*.cmi \ 572 589 driver/*.cmi \ 573 590 toplevel/*.cmi \ 574 591 "$(INSTALL_COMPLIBDIR)" ··· 577 594 utils/*.cmt utils/*.cmti utils/*.mli \ 578 595 parsing/*.cmt parsing/*.cmti parsing/*.mli \ 579 596 typing/*.cmt typing/*.cmti typing/*.mli \ 597 + file_formats/*.cmt file_formats/*.cmti file_formats/*.mli \ 598 + lambda/*.cmt lambda/*.cmti lambda/*.mli \ 580 599 bytecomp/*.cmt bytecomp/*.cmti bytecomp/*.mli \ 581 600 driver/*.cmt driver/*.cmti driver/*.mli \ 582 601 toplevel/*.cmt toplevel/*.cmti toplevel/*.mli \ ··· 642 661 middle_end/*.cmi \ 643 662 "$(INSTALL_COMPLIBDIR)" 644 663 $(INSTALL_DATA) \ 645 - middle_end/base_types/*.cmi \ 664 + middle_end/closure/*.cmi \ 665 + "$(INSTALL_COMPLIBDIR)" 666 + $(INSTALL_DATA) \ 667 + middle_end/flambda/*.cmi \ 668 + "$(INSTALL_COMPLIBDIR)" 669 + $(INSTALL_DATA) \ 670 + middle_end/flambda/base_types/*.cmi \ 646 671 "$(INSTALL_COMPLIBDIR)" 647 672 $(INSTALL_DATA) \ 648 673 asmcomp/*.cmi \ ··· 653 678 middle_end/*.mli \ 654 679 "$(INSTALL_COMPLIBDIR)" 655 680 $(INSTALL_DATA) \ 656 - middle_end/base_types/*.cmt middle_end/base_types/*.cmti \ 657 - middle_end/base_types/*.mli \ 681 + middle_end/closure/*.cmt middle_end/closure/*.cmti \ 682 + middle_end/closure/*.mli \ 683 + "$(INSTALL_COMPLIBDIR)" 684 + $(INSTALL_DATA) \ 685 + middle_end/flambda/*.cmt middle_end/flambda/*.cmti \ 686 + middle_end/flambda/*.mli \ 687 + "$(INSTALL_COMPLIBDIR)" 688 + $(INSTALL_DATA) \ 689 + middle_end/flambda/base_types/*.cmt \ 690 + middle_end/flambda/base_types/*.cmti \ 691 + middle_end/flambda/base_types/*.mli \ 658 692 "$(INSTALL_COMPLIBDIR)" 659 693 $(INSTALL_DATA) \ 660 694 asmcomp/*.cmt asmcomp/*.cmti \ ··· 698 732 $(LN) ocamllex.opt$(EXE) ocamllex$(EXE) 699 733 $(INSTALL_DATA) \ 700 734 utils/*.cmx parsing/*.cmx typing/*.cmx bytecomp/*.cmx \ 735 + file_formats/*.cmx \ 736 + lambda/*.cmx \ 701 737 driver/*.cmx asmcomp/*.cmx middle_end/*.cmx \ 702 - middle_end/base_types/*.cmx "$(INSTALL_COMPLIBDIR)" 738 + middle_end/closure/*.cmx \ 739 + middle_end/flambda/*.cmx \ 740 + middle_end/flambda/base_types/*.cmx \ 741 + "$(INSTALL_COMPLIBDIR)" 703 742 $(INSTALL_DATA) \ 704 743 compilerlibs/ocamlcommon.cmxa compilerlibs/ocamlcommon.$(A) \ 705 744 compilerlibs/ocamlbytecomp.cmxa compilerlibs/ocamlbytecomp.$(A) \ ··· 728 767 ifeq "$(INSTALL_SOURCE_ARTIFACTS)" "true" 729 768 $(INSTALL_DATA) \ 730 769 utils/*.ml parsing/*.ml typing/*.ml bytecomp/*.ml driver/*.ml \ 731 - toplevel/*.ml middle_end/*.ml middle_end/base_types/*.ml \ 770 + file_formats/*.ml \ 771 + lambda/*.ml \ 772 + toplevel/*.ml middle_end/*.ml middle_end/closure/*.ml \ 773 + middle_end/flambda/*.ml middle_end/flambda/base_types/*.ml \ 732 774 asmcomp/*.ml \ 733 775 "$(INSTALL_COMPLIBDIR)" 734 776 endif ··· 885 927 runtime/primitives: 886 928 $(MAKE) -C runtime primitives 887 929 888 - bytecomp/runtimedef.ml: bytecomp/generate_runtimedef.sh runtime/caml/fail.h \ 930 + lambda/runtimedef.ml: lambda/generate_runtimedef.sh runtime/caml/fail.h \ 889 931 runtime/primitives 890 932 $^ > $@ 891 933 892 934 partialclean:: 893 - rm -f bytecomp/runtimedef.ml 935 + rm -f lambda/runtimedef.ml 894 936 895 - beforedepend:: bytecomp/runtimedef.ml 937 + beforedepend:: lambda/runtimedef.ml 896 938 897 939 # Choose the right machine-dependent files 898 940 ··· 1137 1179 grep -Ev internal\|obj\|spacetime\|stdLabels\|moreLabels |\ 1138 1180 tools/lintapidiff.opt $(VERSIONS) 1139 1181 1140 - # The middle end (whose .cma library is currently only used for linking 1141 - # the "ocamlobjinfo" program, since we cannot depend on the whole native code 1142 - # compiler for "make world" and the list of dependencies for 1143 - # asmcomp/export_info.cmo is long). 1182 + # The middle end. 1144 1183 1145 1184 compilerlibs/ocamlmiddleend.cma: $(MIDDLE_END) 1146 1185 $(CAMLC) -a -o $@ $^ ··· 1154 1193 # Tools 1155 1194 1156 1195 .PHONY: ocamltools 1157 - ocamltools: ocamlc ocamllex asmcomp/cmx_format.cmi \ 1158 - asmcomp/printclambda.cmo compilerlibs/ocamlmiddleend.cma \ 1159 - asmcomp/export_info.cmo 1196 + ocamltools: ocamlc ocamllex compilerlibs/ocamlmiddleend.cma 1160 1197 $(MAKE) -C tools all 1161 1198 1162 1199 .PHONY: ocamltoolsopt ··· 1164 1201 $(MAKE) -C tools opt 1165 1202 1166 1203 .PHONY: ocamltoolsopt.opt 1167 - ocamltoolsopt.opt: ocamlc.opt ocamllex.opt asmcomp/cmx_format.cmi \ 1168 - asmcomp/printclambda.cmx compilerlibs/ocamlmiddleend.cmxa \ 1169 - asmcomp/export_info.cmx 1204 + ocamltoolsopt.opt: ocamlc.opt ocamllex.opt compilerlibs/ocamlmiddleend.cmxa 1170 1205 $(MAKE) -C tools opt.opt 1171 1206 1172 1207 partialclean:: ··· 1289 1324 $(CAMLOPT) $(COMPFLAGS) -c $< 1290 1325 1291 1326 partialclean:: 1292 - for d in utils parsing typing bytecomp asmcomp middle_end \ 1293 - middle_end/base_types asmcomp/debug driver toplevel tools; do \ 1327 + for d in utils parsing typing bytecomp asmcomp middle_end file_formats \ 1328 + lambda middle_end/closure middle_end/flambda \ 1329 + middle_end/flambda/base_types asmcomp/debug \ 1330 + driver toplevel tools; do \ 1294 1331 rm -f $$d/*.cm[ioxt] $$d/*.cmti $$d/*.annot $$d/*.$(S) \ 1295 - $$d/*.$(O) $$d/*.$(SO) $$d/*~; \ 1332 + $$d/*.$(O) $$d/*.$(SO); \ 1296 1333 done 1297 - rm -f *~ 1298 1334 1299 1335 .PHONY: depend 1300 1336 depend: beforedepend 1301 1337 (for d in utils parsing typing bytecomp asmcomp middle_end \ 1302 - middle_end/base_types asmcomp/debug driver toplevel; \ 1303 - do $(CAMLDEP) $(DEPFLAGS) $(DEPINCLUDES) $$d/*.mli $$d/*.ml || exit; \ 1304 - done) > .depend 1338 + lambda file_formats middle_end/closure middle_end/flambda \ 1339 + middle_end/flambda/base_types asmcomp/debug \ 1340 + driver toplevel; \ 1341 + do $(CAMLDEP) $(DEPFLAGS) $(DEPINCLUDES) $$d/*.mli $$d/*.ml || exit; \ 1342 + done) > .depend 1305 1343 1306 1344 .PHONY: distclean 1307 1345 distclean: clean
+13 -14
Makefile.config.in
··· 231 231 FLAT_FLOAT_ARRAY=@flat_float_array@ 232 232 AWK=@AWK@ 233 233 234 + 235 + ### Native command to build ocamlrun.exe 236 + 237 + ifeq "$(TOOLCHAIN)" "msvc" 238 + MERGEMANIFESTEXE=test ! -f $(1).manifest \ 239 + || mt -nologo -outputresource:$(1) -manifest $(1).manifest \ 240 + && rm -f $(1).manifest 241 + MKEXE_BOOT=$(CC) $(OC_CFLAGS) $(OUTPUTEXE)$(1) $(2) \ 242 + /link /subsystem:console $(OC_LDFLAGS) && ($(MERGEMANIFESTEXE)) 243 + else 244 + MKEXE_BOOT=$(CC) $(OC_CFLAGS) $(OC_LDFLAGS) $(OUTPUTEXE)$(1) $(2) 245 + endif # ifeq "$(TOOLCHAIN)" "msvc" 246 + 234 247 # The following variables were defined only in the config/Makefile.* files. 235 248 # They were not defined by the configure script used on Unix systems, 236 249 # so we also make sure to provide them only under Windows ··· 253 266 # (see ocamlmklibconfig.ml in tools/Makefile) 254 267 FLEXLINK_FLAGS=@flexlink_flags@ 255 268 FLEXLINK=$(FLEXLINK_CMD) $(FLEXLINK_FLAGS) 256 - 257 - ### Native command to build ocamlrun.exe 258 - 259 - ifeq "$(TOOLCHAIN)" "mingw" 260 - MKEXE_BOOT=$(CC) $(OC_CFLAGS) $(OC_LDFLAGS) $(OUTPUTEXE)$(1) $(2) 261 - endif # ifeq "$(TOOLCHAIN)" "mingw" 262 - 263 - ifeq "$(TOOLCHAIN)" "msvc" 264 - MERGEMANIFESTEXE=test ! -f $(1).manifest \ 265 - || mt -nologo -outputresource:$(1) -manifest $(1).manifest \ 266 - && rm -f $(1).manifest 267 - MKEXE_BOOT=$(CC) $(OC_CFLAGS) $(OUTPUTEXE)$(1) $(2) \ 268 - /link /subsystem:console $(OC_LDFLAGS) && ($(MERGEMANIFESTEXE)) 269 - endif # ifeq "$(TOOLCHAIN)" "msvc" 270 269 endif # ifeq "$(UNIX_OR_WIN32)" "win32"
+21 -30
README.adoc
··· 1 1 |===== 2 - | Branch `trunk` | Branch `4.07` | Branch `4.06` | Branch `4.05` | Branch `4.04` 2 + | Branch `trunk` | Branch `4.08` | Branch `4.07` | Branch `4.06` | Branch `4.05` 3 3 4 4 | image:https://travis-ci.org/ocaml/ocaml.svg?branch=trunk["TravisCI Build Status (trunk branch)", 5 5 link="https://travis-ci.org/ocaml/ocaml"] 6 6 image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=trunk&svg=true["AppVeyor Build Status (trunk branch)", 7 + link="https://ci.appveyor.com/project/avsm/ocaml"] 8 + | image:https://travis-ci.org/ocaml/ocaml.svg?branch=4.08["TravisCI Build Status (4.08 branch)", 9 + link="https://travis-ci.org/ocaml/ocaml"] 10 + image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=4.08&svg=true["AppVeyor Build Status (4.08 branch)", 7 11 link="https://ci.appveyor.com/project/avsm/ocaml"] 8 12 | image:https://travis-ci.org/ocaml/ocaml.svg?branch=4.07["TravisCI Build Status (4.07 branch)", 9 13 link="https://travis-ci.org/ocaml/ocaml"] ··· 17 21 link="https://travis-ci.org/ocaml/ocaml"] 18 22 image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=4.05&svg=true["AppVeyor Build Status (4.05 branch)", 19 23 link="https://ci.appveyor.com/project/avsm/ocaml"] 20 - | image:https://travis-ci.org/ocaml/ocaml.svg?branch=4.04["TravisCI Build Status (4.04 branch)", 21 - link="https://travis-ci.org/ocaml/ocaml"] 22 - image:https://ci.appveyor.com/api/projects/status/github/ocaml/ocaml?branch=4.04&svg=true["AppVeyor Build Status (4.04 branch)", 23 - link="https://ci.appveyor.com/project/avsm/ocaml"] 24 - 25 24 |===== 26 25 27 26 = README = ··· 46 45 moderate memory requirements of the bytecode compiler. The native-code 47 46 compiler currently runs on the following platforms: 48 47 49 - Tier 1 (actively used and maintained by the core OCaml team): 48 + |==== 49 + | | Tier 1 (actively maintained) | Tier 2 (maintained when possible) 50 50 51 - AMD64 (Opteron):: Linux, OS X, MS Windows 52 - IA32 (Pentium):: Linux, FreeBSD, MS Windows 53 - PowerPC:: Linux, OS X 54 - ARM:: Linux 55 - 56 - Tier 2 (maintained when possible, with help from users): 57 - 58 - AMD64:: FreeBSD, OpenBSD, NetBSD 59 - IA32 (Pentium):: NetBSD, OpenBSD, Solaris 9 60 - PowerPC:: NetBSD 61 - ARM:: NetBSD 51 + | x86 64 bits | Linux, macOS, Windows, FreeBSD | NetBSD, OpenBSD 52 + | x86 32 bits | Linux, Windows | FreeBSD, NetBSD, OpenBSD 53 + | ARM 64 bits | Linux | FreeBSD 54 + | ARM 32 bits | Linux | FreeBSD, NetBSD, OpenBSD 55 + | Power 64 bits | Linux | 56 + | Power 32 bits | | Linux 57 + | IBM Z (s390x) | Linux | 58 + |==== 62 59 63 60 Other operating systems for the processors above have not been tested, but 64 61 the compiler may work under other operating systems with little work. 65 62 66 - Before the introduction of objects, OCaml was known as Caml Special Light. 67 - OCaml is almost upwards compatible with Caml Special Light, except for a few 68 - additional reserved keywords that have forced some renaming of standard 69 - library functions. 70 63 71 64 == Copyright 72 65 73 66 All files marked "Copyright INRIA" in this distribution are copyright 1996, 74 67 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 75 - 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Institut National de 76 - Recherche en Informatique et en Automatique (INRIA) and distributed under 77 - the conditions stated in file LICENSE. 68 + 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 69 + Institut National de Recherche en Informatique et en Automatique (INRIA) 70 + and distributed under the conditions stated in file LICENSE. 78 71 79 72 == Installation 80 73 ··· 84 77 85 78 == Documentation 86 79 87 - The OCaml manual is distributed in HTML, PDF, Postscript, DVI, and Emacs 80 + The OCaml manual is distributed in HTML, PDF, and Emacs 88 81 Info files. It is available at 89 82 90 83 http://caml.inria.fr/pub/docs/manual-ocaml/ ··· 121 114 122 115 == Bug Reports and User Feedback 123 116 124 - Please report bugs using the Web interface to the bug-tracking system at 125 - http://caml.inria.fr/bin/caml-bugs 117 + Please report bugs using the issue tracker at 118 + https://github.com/ocaml/ocaml/issues 126 119 127 120 To be effective, bug reports should include a complete program (preferably 128 121 small) that exhibits the unexpected behavior, and the configuration you are 129 122 using (machine type, etc). 130 - 131 - You can also contact the implementors directly at mailto:caml@inria.fr[]. 132 123 133 124 For information on contributing to OCaml, see link:HACKING.adoc[] and 134 125 link:CONTRIBUTING.md[].
+1
asmcomp/amd64/emit.mlp
··· 33 33 emit.mlp files for certain other targets; the reference here ensures 34 34 that when releases are being prepared the .depend files are correct 35 35 for all targets. *) 36 + [@@@ocaml.warning "-66"] 36 37 open! Branch_relaxation 37 38 38 39 let _label s = D.label ~typ:QWORD s
+5 -2
asmcomp/arm/emit.mlp
··· 354 354 end; 355 355 if !offset_literals <> [] then begin 356 356 (* Additions using the pc register read a value 4 or 8 bytes greater than 357 - the instruction's address, depending on the thumb setting *) 358 - let offset = if !thumb then 4 else 8 in 357 + the instruction's address, depending on the Thumb setting. However in 358 + Thumb mode we must follow interworking conventions and ensure that the 359 + bottom bit of the pc value is set when reloaded from the trap frame. 360 + Hence "3" not "4". *) 361 + let offset = if !thumb then 3 else 8 in 359 362 ` .align 2\n`; 360 363 List.iter 361 364 (fun { lbl; dst; src; } ->
+6 -4
asmcomp/asmgen.ml
··· 222 222 end_gen_implementation ?toplevel ~ppf_dump 223 223 (clambda, preallocated, constants) 224 224 225 - let lambda_gen_implementation ?toplevel ~ppf_dump 225 + let lambda_gen_implementation ?toplevel ~backend ~ppf_dump 226 226 (lambda:Lambda.program) = 227 - let clambda = Closure.intro lambda.main_module_block_size lambda.code in 227 + let clambda = 228 + Closure.intro ~backend ~size:lambda.main_module_block_size lambda.code 229 + in 228 230 let provenance : Clambda.usymbol_provenance = 229 231 { original_idents = []; 230 232 module_path = ··· 260 262 gen_implementation ?toplevel ~ppf_dump program) 261 263 262 264 let compile_implementation_clambda ?toplevel prefixname 263 - ~ppf_dump (program:Lambda.program) = 265 + ~backend ~ppf_dump (program:Lambda.program) = 264 266 compile_implementation_gen ?toplevel prefixname 265 267 ~required_globals:program.Lambda.required_globals 266 - ~ppf_dump lambda_gen_implementation program 268 + ~ppf_dump (lambda_gen_implementation ~backend) program 267 269 268 270 let compile_implementation_flambda ?toplevel prefixname 269 271 ~required_globals ~backend ~ppf_dump (program:Flambda.program) =
+1
asmcomp/asmgen.mli
··· 25 25 val compile_implementation_clambda : 26 26 ?toplevel:(string -> bool) -> 27 27 string -> 28 + backend:(module Backend_intf.S) -> 28 29 ppf_dump:Format.formatter -> Lambda.program -> unit 29 30 30 31 val compile_phrase :
+2 -2
asmcomp/asmpackager.ml
··· 102 102 if Config.flambda then begin 103 103 let size, lam = Translmod.transl_package_flambda components coercion in 104 104 let flam = 105 - Middle_end.middle_end ~ppf_dump 105 + Flambda_middle_end.middle_end ~ppf_dump 106 106 ~prefixname 107 107 ~backend 108 108 ~size ··· 117 117 Translmod.transl_store_package 118 118 components (Ident.create_persistent targetname) coercion in 119 119 Asmgen.compile_implementation_clambda 120 - prefixname ~ppf_dump { Lambda.code; main_module_block_size; 120 + prefixname ~backend ~ppf_dump { Lambda.code; main_module_block_size; 121 121 module_ident; required_globals = Ident.Set.empty } 122 122 end; 123 123 let objfiles =
asmcomp/backend_var.ml middle_end/backend_var.ml
asmcomp/backend_var.mli middle_end/backend_var.mli
asmcomp/build_export_info.ml middle_end/flambda/build_export_info.ml
asmcomp/build_export_info.mli middle_end/flambda/build_export_info.mli
asmcomp/clambda.ml middle_end/clambda.ml
asmcomp/clambda.mli middle_end/clambda.mli
asmcomp/clambda_primitives.ml middle_end/clambda_primitives.ml
asmcomp/clambda_primitives.mli middle_end/clambda_primitives.mli
+154 -135
asmcomp/closure.ml middle_end/closure/closure.ml
··· 36 36 module V = Backend_var 37 37 module VP = Backend_var.With_provenance 38 38 39 + (* The current backend *) 40 + 39 41 let no_phantom_lets () = 40 42 Misc.fatal_error "Closure does not support phantom let generation" 41 43 ··· 276 278 (* The [fpc] parameter is true if constant propagation of 277 279 floating-point computations is allowed *) 278 280 279 - let simplif_arith_prim_pure fpc p (args, approxs) dbg = 281 + let simplif_arith_prim_pure ~backend fpc p (args, approxs) dbg = 282 + let module B = (val backend : Backend_intf.S) in 280 283 let open Clambda_primitives in 281 284 let default = (Uprim(p, args, dbg), Value_unknown) in 282 285 match approxs with ··· 308 311 | Pandint -> make_const_int (n1 land n2) 309 312 | Porint -> make_const_int (n1 lor n2) 310 313 | Pxorint -> make_const_int (n1 lxor n2) 311 - | Plslint when 0 <= n2 && n2 < 8 * Arch.size_int -> 314 + | Plslint when 0 <= n2 && n2 < 8 * B.size_int -> 312 315 make_const_int (n1 lsl n2) 313 - | Plsrint when 0 <= n2 && n2 < 8 * Arch.size_int -> 316 + | Plsrint when 0 <= n2 && n2 < 8 * B.size_int -> 314 317 make_const_int (n1 lsr n2) 315 - | Pasrint when 0 <= n2 && n2 < 8 * Arch.size_int -> 318 + | Pasrint when 0 <= n2 && n2 < 8 * B.size_int -> 316 319 make_const_int (n1 asr n2) 317 320 | Pintcomp c -> make_integer_comparison c n1 n2 318 321 | _ -> default ··· 366 369 | [Value_const(Uconst_ref(_, Some (Uconst_nativeint n1))); 367 370 Value_const(Uconst_int n2)] -> 368 371 begin match p with 369 - | Plslbint Pnativeint when 0 <= n2 && n2 < 8 * Arch.size_int -> 372 + | Plslbint Pnativeint when 0 <= n2 && n2 < 8 * B.size_int -> 370 373 make_const_natint (Nativeint.shift_left n1 n2) 371 - | Plsrbint Pnativeint when 0 <= n2 && n2 < 8 * Arch.size_int -> 374 + | Plsrbint Pnativeint when 0 <= n2 && n2 < 8 * B.size_int -> 372 375 make_const_natint (Nativeint.shift_right_logical n1 n2) 373 - | Pasrbint Pnativeint when 0 <= n2 && n2 < 8 * Arch.size_int -> 376 + | Pasrbint Pnativeint when 0 <= n2 && n2 < 8 * B.size_int -> 374 377 make_const_natint (Nativeint.shift_right n1 n2) 375 378 | _ -> default 376 379 end ··· 462 465 Value_const (List.nth l n) 463 466 | _ -> Value_unknown 464 467 465 - let simplif_prim_pure fpc p (args, approxs) dbg = 468 + let simplif_prim_pure ~backend fpc p (args, approxs) dbg = 466 469 let open Clambda_primitives in 467 470 match p, args, approxs with 468 471 (* Block construction *) ··· 502 505 end 503 506 (* Catch-all *) 504 507 | _ -> 505 - simplif_arith_prim_pure fpc p (args, approxs) dbg 508 + simplif_arith_prim_pure ~backend fpc p (args, approxs) dbg 506 509 507 - let simplif_prim fpc p (args, approxs as args_approxs) dbg = 510 + let simplif_prim ~backend fpc p (args, approxs as args_approxs) dbg = 508 511 if List.for_all is_pure args 509 - then simplif_prim_pure fpc p args_approxs dbg 512 + then simplif_prim_pure ~backend fpc p args_approxs dbg 510 513 else 511 514 (* XXX : always return the same approxs as simplif_prim_pure? *) 512 515 let approx = ··· 547 550 else 548 551 dbg 549 552 550 - let rec substitute loc fpc sb rn ulam = 553 + let rec substitute loc ((backend, fpc) as st) sb rn ulam = 551 554 match ulam with 552 555 Uvar v -> 553 556 begin try V.Map.find v sb with Not_found -> ulam end 554 557 | Uconst _ -> ulam 555 558 | Udirect_apply(lbl, args, dbg) -> 556 559 let dbg = subst_debuginfo loc dbg in 557 - Udirect_apply(lbl, List.map (substitute loc fpc sb rn) args, dbg) 560 + Udirect_apply(lbl, List.map (substitute loc st sb rn) args, dbg) 558 561 | Ugeneric_apply(fn, args, dbg) -> 559 562 let dbg = subst_debuginfo loc dbg in 560 - Ugeneric_apply(substitute loc fpc sb rn fn, 561 - List.map (substitute loc fpc sb rn) args, dbg) 563 + Ugeneric_apply(substitute loc st sb rn fn, 564 + List.map (substitute loc st sb rn) args, dbg) 562 565 | Uclosure(defs, env) -> 563 566 (* Question: should we rename function labels as well? Otherwise, 564 567 there is a risk that function labels are not globally unique. ··· 568 571 - When we substitute offsets for idents bound by let rec 569 572 in [close], case [Lletrec], we discard the original 570 573 let rec body and use only the substituted term. *) 571 - Uclosure(defs, List.map (substitute loc fpc sb rn) env) 572 - | Uoffset(u, ofs) -> Uoffset(substitute loc fpc sb rn u, ofs) 574 + Uclosure(defs, List.map (substitute loc st sb rn) env) 575 + | Uoffset(u, ofs) -> Uoffset(substitute loc st sb rn u, ofs) 573 576 | Ulet(str, kind, id, u1, u2) -> 574 577 let id' = VP.rename id in 575 - Ulet(str, kind, id', substitute loc fpc sb rn u1, 576 - substitute loc fpc 578 + Ulet(str, kind, id', substitute loc st sb rn u1, 579 + substitute loc st 577 580 (V.Map.add (VP.var id) (Uvar (VP.var id')) sb) rn u2) 578 581 | Uphantom_let _ -> no_phantom_lets () 579 582 | Uletrec(bindings, body) -> ··· 588 591 in 589 592 Uletrec( 590 593 List.map 591 - (fun (_id, id', rhs) -> (id', substitute loc fpc sb' rn rhs)) 594 + (fun (_id, id', rhs) -> (id', substitute loc st sb' rn rhs)) 592 595 bindings1, 593 - substitute loc fpc sb' rn body) 596 + substitute loc st sb' rn body) 594 597 | Uprim(p, args, dbg) -> 595 - let sargs = List.map (substitute loc fpc sb rn) args in 598 + let sargs = List.map (substitute loc st sb rn) args in 596 599 let dbg = subst_debuginfo loc dbg in 597 600 let (res, _) = 598 - simplif_prim fpc p (sargs, List.map approx_ulam sargs) dbg in 601 + simplif_prim ~backend fpc p (sargs, List.map approx_ulam sargs) dbg in 599 602 res 600 603 | Uswitch(arg, sw, dbg) -> 601 - let sarg = substitute loc fpc sb rn arg in 604 + let sarg = substitute loc st sb rn arg in 602 605 let action = 603 606 (* Unfortunately, we cannot easily deal with the 604 607 case of a constructed block (makeblock) bound to a local ··· 614 617 | _ -> None 615 618 in 616 619 begin match action with 617 - | Some u -> substitute loc fpc sb rn u 620 + | Some u -> substitute loc st sb rn u 618 621 | None -> 619 622 Uswitch(sarg, 620 623 { sw with 621 624 us_actions_consts = 622 - Array.map (substitute loc fpc sb rn) sw.us_actions_consts; 625 + Array.map (substitute loc st sb rn) sw.us_actions_consts; 623 626 us_actions_blocks = 624 - Array.map (substitute loc fpc sb rn) sw.us_actions_blocks; 627 + Array.map (substitute loc st sb rn) sw.us_actions_blocks; 625 628 }, 626 629 dbg) 627 630 end 628 631 | Ustringswitch(arg,sw,d) -> 629 632 Ustringswitch 630 - (substitute loc fpc sb rn arg, 631 - List.map (fun (s,act) -> s,substitute loc fpc sb rn act) sw, 632 - Misc.may_map (substitute loc fpc sb rn) d) 633 + (substitute loc st sb rn arg, 634 + List.map (fun (s,act) -> s,substitute loc st sb rn act) sw, 635 + Misc.may_map (substitute loc st sb rn) d) 633 636 | Ustaticfail (nfail, args) -> 634 637 let nfail = 635 638 match rn with ··· 640 643 fatal_errorf "Closure.split_list: invalid nfail (%d)" nfail 641 644 end 642 645 | None -> nfail in 643 - Ustaticfail (nfail, List.map (substitute loc fpc sb rn) args) 646 + Ustaticfail (nfail, List.map (substitute loc st sb rn) args) 644 647 | Ucatch(nfail, ids, u1, u2) -> 645 648 let nfail, rn = 646 649 match rn with ··· 656 659 ) 657 660 ids ids' sb 658 661 in 659 - Ucatch(nfail, ids', substitute loc fpc sb rn u1, 660 - substitute loc fpc sb' rn u2) 662 + Ucatch(nfail, ids', substitute loc st sb rn u1, 663 + substitute loc st sb' rn u2) 661 664 | Utrywith(u1, id, u2) -> 662 665 let id' = VP.rename id in 663 - Utrywith(substitute loc fpc sb rn u1, id', 664 - substitute loc fpc 666 + Utrywith(substitute loc st sb rn u1, id', 667 + substitute loc st 665 668 (V.Map.add (VP.var id) (Uvar (VP.var id')) sb) rn u2) 666 669 | Uifthenelse(u1, u2, u3) -> 667 - begin match substitute loc fpc sb rn u1 with 670 + begin match substitute loc st sb rn u1 with 668 671 Uconst (Uconst_ptr n) -> 669 672 if n <> 0 then 670 - substitute loc fpc sb rn u2 673 + substitute loc st sb rn u2 671 674 else 672 - substitute loc fpc sb rn u3 675 + substitute loc st sb rn u3 673 676 | Uprim(P.Pmakeblock _, _, _) -> 674 - substitute loc fpc sb rn u2 677 + substitute loc st sb rn u2 675 678 | su1 -> 676 - Uifthenelse(su1, substitute loc fpc sb rn u2, 677 - substitute loc fpc sb rn u3) 679 + Uifthenelse(su1, substitute loc st sb rn u2, 680 + substitute loc st sb rn u3) 678 681 end 679 682 | Usequence(u1, u2) -> 680 - Usequence(substitute loc fpc sb rn u1, substitute loc fpc sb rn u2) 683 + Usequence(substitute loc st sb rn u1, substitute loc st sb rn u2) 681 684 | Uwhile(u1, u2) -> 682 - Uwhile(substitute loc fpc sb rn u1, substitute loc fpc sb rn u2) 685 + Uwhile(substitute loc st sb rn u1, substitute loc st sb rn u2) 683 686 | Ufor(id, u1, u2, dir, u3) -> 684 687 let id' = VP.rename id in 685 - Ufor(id', substitute loc fpc sb rn u1, substitute loc fpc sb rn u2, dir, 686 - substitute loc fpc 688 + Ufor(id', substitute loc st sb rn u1, substitute loc st sb rn u2, dir, 689 + substitute loc st 687 690 (V.Map.add (VP.var id) (Uvar (VP.var id')) sb) rn u3) 688 691 | Uassign(id, u) -> 689 692 let id' = ··· 691 694 match V.Map.find id sb with Uvar i -> i | _ -> assert false 692 695 with Not_found -> 693 696 id in 694 - Uassign(id', substitute loc fpc sb rn u) 697 + Uassign(id', substitute loc st sb rn u) 695 698 | Usend(k, u1, u2, ul, dbg) -> 696 699 let dbg = subst_debuginfo loc dbg in 697 - Usend(k, substitute loc fpc sb rn u1, substitute loc fpc sb rn u2, 698 - List.map (substitute loc fpc sb rn) ul, dbg) 700 + Usend(k, substitute loc st sb rn u1, substitute loc st sb rn u2, 701 + List.map (substitute loc st sb rn) ul, dbg) 699 702 | Uunreachable -> 700 703 Uunreachable 701 704 ··· 751 754 752 755 (* Generate a direct application *) 753 756 754 - let direct_apply fundesc ufunct uargs ~loc ~attribute = 757 + let direct_apply ~backend fundesc ufunct uargs ~loc ~attribute = 755 758 let app_args = 756 759 if fundesc.fun_closed then uargs else uargs @ [ufunct] in 757 760 let app = ··· 762 765 "Function information unavailable"; 763 766 Udirect_apply(fundesc.fun_label, app_args, dbg) 764 767 | Some(params, body), _ -> 765 - bind_params loc fundesc.fun_float_const_prop params app_args body 768 + bind_params loc (backend, fundesc.fun_float_const_prop) params app_args 769 + body 766 770 in 767 771 (* If ufunct can contain side-effects or function definitions, 768 772 we must make sure that it is evaluated exactly once. ··· 823 827 824 828 exception NotClosed 825 829 826 - let close_approx_var fenv cenv id = 830 + type env = { 831 + backend : (module Backend_intf.S); 832 + cenv : ulambda V.Map.t; 833 + fenv : value_approximation V.Map.t; 834 + } 835 + 836 + let close_approx_var { fenv; cenv } id = 827 837 let approx = try V.Map.find id fenv with Not_found -> Value_unknown in 828 838 match approx with 829 839 Value_const c -> make_const c ··· 831 841 let subst = try V.Map.find id cenv with Not_found -> Uvar id in 832 842 (subst, approx) 833 843 834 - let close_var fenv cenv id = 835 - let (ulam, _app) = close_approx_var fenv cenv id in ulam 844 + let close_var env id = 845 + let (ulam, _app) = close_approx_var env id in ulam 836 846 837 - let rec close fenv cenv = function 838 - Lvar id -> 839 - close_approx_var fenv cenv id 847 + let rec close ({ backend; fenv; cenv } as env) lam = 848 + let module B = (val backend : Backend_intf.S) in 849 + match lam with 850 + | Lvar id -> 851 + close_approx_var env id 840 852 | Lconst cst -> 841 853 let str ?(shared = true) cst = 842 854 let name = ··· 870 882 in 871 883 make_const (transl cst) 872 884 | Lfunction _ as funct -> 873 - close_one_function fenv cenv (Ident.create_local "fun") funct 885 + close_one_function env (Ident.create_local "fun") funct 874 886 875 887 (* We convert [f a] to [let a' = a in let f' = f in fun b c -> f' a' b c] 876 888 when fun_arity > nargs *) 877 889 | Lapply{ap_func = funct; ap_args = args; ap_loc = loc; 878 890 ap_inlined = attribute} -> 879 891 let nargs = List.length args in 880 - begin match (close fenv cenv funct, close_list fenv cenv args) with 892 + begin match (close env funct, close_list env args) with 881 893 ((ufunct, Value_closure(fundesc, approx_res)), 882 894 [Uprim(P.Pmakeblock _, uargs, _)]) 883 895 when List.length uargs = - fundesc.fun_arity -> 884 896 let app = 885 - direct_apply ~loc ~attribute fundesc ufunct uargs in 897 + direct_apply ~backend ~loc ~attribute fundesc ufunct uargs in 886 898 (app, strengthen_approx app approx_res) 887 899 | ((ufunct, Value_closure(fundesc, approx_res)), uargs) 888 900 when nargs = fundesc.fun_arity -> 889 901 let app = 890 - direct_apply ~loc ~attribute fundesc ufunct uargs in 902 + direct_apply ~backend ~loc ~attribute fundesc ufunct uargs in 891 903 (app, strengthen_approx app approx_res) 892 904 893 905 | ((ufunct, (Value_closure(fundesc, _) as fapprox)), uargs) ··· 910 922 in 911 923 let funct_var = V.create_local "funct" in 912 924 let fenv = V.Map.add funct_var fapprox fenv in 913 - let (new_fun, approx) = close fenv cenv 925 + let (new_fun, approx) = close { backend; fenv; cenv } 914 926 (Lfunction{ 915 927 kind = Curried; 916 928 return = Pgenval; ··· 940 952 let dbg = Debuginfo.from_location loc in 941 953 warning_if_forced_inline ~loc ~attribute "Over-application"; 942 954 let body = 943 - Ugeneric_apply(direct_apply ~loc ~attribute 955 + Ugeneric_apply(direct_apply ~backend ~loc ~attribute 944 956 fundesc ufunct first_args, 945 957 rem_args, dbg) 946 958 in ··· 957 969 (Ugeneric_apply(ufunct, uargs, dbg), Value_unknown) 958 970 end 959 971 | Lsend(kind, met, obj, args, loc) -> 960 - let (umet, _) = close fenv cenv met in 961 - let (uobj, _) = close fenv cenv obj in 972 + let (umet, _) = close env met in 973 + let (uobj, _) = close env obj in 962 974 let dbg = Debuginfo.from_location loc in 963 - (Usend(kind, umet, uobj, close_list fenv cenv args, dbg), 975 + (Usend(kind, umet, uobj, close_list env args, dbg), 964 976 Value_unknown) 965 977 | Llet(str, kind, id, lam, body) -> 966 - let (ulam, alam) = close_named fenv cenv id lam in 978 + let (ulam, alam) = close_named env id lam in 967 979 begin match (str, alam) with 968 980 (Variable, _) -> 969 - let (ubody, abody) = close fenv cenv body in 981 + let (ubody, abody) = close env body in 970 982 (Ulet(Mutable, kind, VP.create id, ulam, ubody), abody) 971 983 | (_, Value_const _) 972 984 when str = Alias || is_pure ulam -> 973 - close (V.Map.add id alam fenv) cenv body 985 + close { backend; fenv = (V.Map.add id alam fenv); cenv } body 974 986 | (_, _) -> 975 - let (ubody, abody) = close (V.Map.add id alam fenv) cenv body in 987 + let (ubody, abody) = 988 + close { backend; fenv = (V.Map.add id alam fenv); cenv } body 989 + in 976 990 (Ulet(Immutable, kind, VP.create id, ulam, ubody), abody) 977 991 end 978 992 | Lletrec(defs, body) -> ··· 981 995 defs 982 996 then begin 983 997 (* Simple case: only function definitions *) 984 - let (clos, infos) = close_functions fenv cenv defs in 998 + let (clos, infos) = close_functions env defs in 985 999 let clos_ident = V.create_local "clos" in 986 1000 let fenv_body = 987 1001 List.fold_right 988 1002 (fun (id, _pos, approx) fenv -> V.Map.add id approx fenv) 989 1003 infos fenv in 990 - let (ubody, approx) = close fenv_body cenv body in 1004 + let (ubody, approx) = close { backend; fenv = fenv_body; cenv } body in 991 1005 let sb = 992 1006 List.fold_right 993 1007 (fun (id, pos, _approx) sb -> 994 1008 V.Map.add id (Uoffset(Uvar clos_ident, pos)) sb) 995 1009 infos V.Map.empty in 996 1010 (Ulet(Immutable, Pgenval, VP.create clos_ident, clos, 997 - substitute Location.none !Clflags.float_const_prop sb None ubody), 1011 + substitute Location.none (backend, !Clflags.float_const_prop) sb 1012 + None ubody), 998 1013 approx) 999 1014 end else begin 1000 1015 (* General case: recursive definition of values *) ··· 1002 1017 [] -> ([], fenv) 1003 1018 | (id, lam) :: rem -> 1004 1019 let (udefs, fenv_body) = clos_defs rem in 1005 - let (ulam, approx) = close_named fenv cenv id lam in 1020 + let (ulam, approx) = close_named env id lam in 1006 1021 ((VP.create id, ulam) :: udefs, V.Map.add id approx fenv_body) in 1007 1022 let (udefs, fenv_body) = clos_defs defs in 1008 - let (ubody, approx) = close fenv_body cenv body in 1023 + let (ubody, approx) = close { backend; fenv = fenv_body; cenv } body in 1009 1024 (Uletrec(udefs, ubody), approx) 1010 1025 end 1011 1026 (* Compile-time constants *) 1012 1027 | Lprim(Pctconst c, [arg], _loc) -> 1013 1028 let cst, approx = 1014 1029 match c with 1015 - | Big_endian -> make_const_bool Arch.big_endian 1016 - | Word_size -> make_const_int (8*Arch.size_int) 1017 - | Int_size -> make_const_int (8*Arch.size_int - 1) 1018 - | Max_wosize -> make_const_int ((1 lsl ((8*Arch.size_int) - 10)) - 1 ) 1030 + | Big_endian -> make_const_bool B.big_endian 1031 + | Word_size -> make_const_int (8*B.size_int) 1032 + | Int_size -> make_const_int (8*B.size_int - 1) 1033 + | Max_wosize -> make_const_int ((1 lsl ((8*B.size_int) - 10)) - 1 ) 1019 1034 | Ostype_unix -> make_const_bool (Sys.os_type = "Unix") 1020 1035 | Ostype_win32 -> make_const_bool (Sys.os_type = "Win32") 1021 1036 | Ostype_cygwin -> make_const_bool (Sys.os_type = "Cygwin") 1022 1037 | Backend_type -> 1023 1038 make_const_ptr 0 (* tag 0 is the same as Native here *) 1024 1039 in 1025 - let arg, _approx = close fenv cenv arg in 1040 + let arg, _approx = close env arg in 1026 1041 let id = Ident.create_local "dummy" in 1027 1042 Ulet(Immutable, Pgenval, VP.create id, arg, cst), approx 1028 1043 | Lprim(Pignore, [arg], _loc) -> 1029 1044 let expr, approx = make_const_ptr 0 in 1030 - Usequence(fst (close fenv cenv arg), expr), approx 1045 + Usequence(fst (close env arg), expr), approx 1031 1046 | Lprim((Pidentity | Pbytes_to_string | Pbytes_of_string), [arg], _loc) -> 1032 - close fenv cenv arg 1047 + close env arg 1033 1048 | Lprim(Pdirapply,[funct;arg], loc) 1034 1049 | Lprim(Prevapply,[arg;funct], loc) -> 1035 - close fenv cenv (Lapply{ap_should_be_tailcall=false; 1050 + close env (Lapply{ap_should_be_tailcall=false; 1036 1051 ap_loc=loc; 1037 1052 ap_func=funct; 1038 1053 ap_args=[arg]; ··· 1043 1058 check_constant_result (getglobal dbg id) 1044 1059 (Compilenv.global_approx id) 1045 1060 | Lprim(Pfield (n, ptr, mut), [lam], loc) -> 1046 - let (ulam, approx) = close fenv cenv lam in 1061 + let (ulam, approx) = close env lam in 1047 1062 let dbg = Debuginfo.from_location loc in 1048 1063 check_constant_result (Uprim(P.Pfield (n, ptr, mut), [ulam], dbg)) 1049 1064 (field_approx n approx) 1050 1065 | Lprim(Psetfield(n, is_ptr, init), [Lprim(Pgetglobal id, [], _); lam], loc)-> 1051 - let (ulam, approx) = close fenv cenv lam in 1066 + let (ulam, approx) = close env lam in 1052 1067 if approx <> Value_unknown then 1053 1068 (!global_approx).(n) <- approx; 1054 1069 let dbg = Debuginfo.from_location loc in 1055 1070 (Uprim(P.Psetfield(n, is_ptr, init), [getglobal dbg id; ulam], dbg), 1056 1071 Value_unknown) 1057 1072 | Lprim(Praise k, [arg], loc) -> 1058 - let (ulam, _approx) = close fenv cenv arg in 1073 + let (ulam, _approx) = close env arg in 1059 1074 let dbg = Debuginfo.from_location loc in 1060 1075 (Uprim(P.Praise k, [ulam], dbg), 1061 1076 Value_unknown) 1062 1077 | Lprim(Pperform, [arg], loc) -> 1063 - let (arg, _approx) = close fenv cenv arg in 1078 + let (arg, _approx) = close env arg in 1064 1079 let dbg = Debuginfo.from_location loc in 1065 1080 let alloc_cont = Uprim(P.Pmakeblock(Obj.cont_tag, Mutable, None), 1066 1081 [Uconst (Uconst_int 0)], 1067 1082 dbg) in 1068 1083 (Udirect_apply ("caml_perform", [arg; alloc_cont], dbg), Value_unknown) 1069 1084 | Lprim(Presume, args, loc) -> 1070 - let args = close_list fenv cenv args in 1085 + let args = close_list env args in 1071 1086 let dbg = Debuginfo.from_location loc in 1072 1087 (Udirect_apply ("caml_resume", args, dbg), Value_unknown) 1073 1088 | Lprim(Prunstack, args, loc) -> 1074 - let args = close_list fenv cenv args in 1089 + let args = close_list env args in 1075 1090 let dbg = Debuginfo.from_location loc in 1076 1091 (Udirect_apply ("caml_runstack", args, dbg), Value_unknown) 1077 1092 | Lprim(Preperform, args, loc) -> 1078 - let args = close_list fenv cenv args in 1093 + let args = close_list env args in 1079 1094 let dbg = Debuginfo.from_location loc in 1080 1095 (Udirect_apply ("caml_reperform", args, dbg), Value_unknown) 1081 1096 | Lprim (Pmakearray _, [], _loc) -> make_const_ref (Uconst_block (0, [])) 1082 1097 | Lprim(p, args, loc) -> 1083 1098 let p = Convert_primitives.convert p in 1084 1099 let dbg = Debuginfo.from_location loc in 1085 - simplif_prim !Clflags.float_const_prop 1086 - p (close_list_approx fenv cenv args) dbg 1100 + simplif_prim ~backend !Clflags.float_const_prop 1101 + p (close_list_approx env args) dbg 1087 1102 | Lswitch(arg, sw, dbg) -> 1088 1103 let fn fail = 1089 - let (uarg, _) = close fenv cenv arg in 1104 + let (uarg, _) = close env arg in 1090 1105 let const_index, const_actions, fconst = 1091 - close_switch fenv cenv sw.sw_consts sw.sw_numconsts fail 1106 + close_switch env sw.sw_consts sw.sw_numconsts fail 1092 1107 and block_index, block_actions, fblock = 1093 - close_switch fenv cenv sw.sw_blocks sw.sw_numblocks fail in 1108 + close_switch env sw.sw_blocks sw.sw_numblocks fail in 1094 1109 let ulam = 1095 1110 Uswitch 1096 1111 (uarg, ··· 1112 1127 then 1113 1128 let i = next_raise_count () in 1114 1129 let ubody,_ = fn (Some (Lstaticraise (i,[]))) 1115 - and uhandler,_ = close fenv cenv lamfail in 1130 + and uhandler,_ = close env lamfail in 1116 1131 Ucatch (i,[],ubody,uhandler),Value_unknown 1117 1132 else fn fail 1118 1133 end 1119 1134 | Lstringswitch(arg,sw,d,_) -> 1120 - let uarg,_ = close fenv cenv arg in 1135 + let uarg,_ = close env arg in 1121 1136 let usw = 1122 1137 List.map 1123 1138 (fun (s,act) -> 1124 - let uact,_ = close fenv cenv act in 1139 + let uact,_ = close env act in 1125 1140 s,uact) 1126 1141 sw in 1127 1142 let ud = 1128 1143 Misc.may_map 1129 1144 (fun d -> 1130 - let ud,_ = close fenv cenv d in 1145 + let ud,_ = close env d in 1131 1146 ud) d in 1132 1147 Ustringswitch (uarg,usw,ud),Value_unknown 1133 1148 | Lstaticraise (i, args) -> 1134 - (Ustaticfail (i, close_list fenv cenv args), Value_unknown) 1149 + (Ustaticfail (i, close_list env args), Value_unknown) 1135 1150 | Lstaticcatch(body, (i, vars), handler) -> 1136 - let (ubody, _) = close fenv cenv body in 1137 - let (uhandler, _) = close fenv cenv handler in 1151 + let (ubody, _) = close env body in 1152 + let (uhandler, _) = close env handler in 1138 1153 let vars = List.map (fun (var, k) -> VP.create var, k) vars in 1139 1154 (Ucatch(i, vars, ubody, uhandler), Value_unknown) 1140 1155 | Ltrywith(body, id, handler) -> 1141 - let (ubody, _) = close fenv cenv body in 1142 - let (uhandler, _) = close fenv cenv handler in 1156 + let (ubody, _) = close env body in 1157 + let (uhandler, _) = close env handler in 1143 1158 (Utrywith(ubody, VP.create id, uhandler), Value_unknown) 1144 1159 | Lifthenelse(arg, ifso, ifnot) -> 1145 - begin match close fenv cenv arg with 1160 + begin match close env arg with 1146 1161 (uarg, Value_const (Uconst_ptr n)) -> 1147 1162 sequence_constant_expr uarg 1148 - (close fenv cenv (if n = 0 then ifnot else ifso)) 1163 + (close env (if n = 0 then ifnot else ifso)) 1149 1164 | (uarg, _ ) -> 1150 - let (uifso, _) = close fenv cenv ifso in 1151 - let (uifnot, _) = close fenv cenv ifnot in 1165 + let (uifso, _) = close env ifso in 1166 + let (uifnot, _) = close env ifnot in 1152 1167 (Uifthenelse(uarg, uifso, uifnot), Value_unknown) 1153 1168 end 1154 1169 | Lsequence(lam1, lam2) -> 1155 - let (ulam1, _) = close fenv cenv lam1 in 1156 - let (ulam2, approx) = close fenv cenv lam2 in 1170 + let (ulam1, _) = close env lam1 in 1171 + let (ulam2, approx) = close env lam2 in 1157 1172 (Usequence(ulam1, ulam2), approx) 1158 1173 | Lwhile(cond, body) -> 1159 - let (ucond, _) = close fenv cenv cond in 1160 - let (ubody, _) = close fenv cenv body in 1174 + let (ucond, _) = close env cond in 1175 + let (ubody, _) = close env body in 1161 1176 (Uwhile(ucond, ubody), Value_unknown) 1162 1177 | Lfor(id, lo, hi, dir, body) -> 1163 - let (ulo, _) = close fenv cenv lo in 1164 - let (uhi, _) = close fenv cenv hi in 1165 - let (ubody, _) = close fenv cenv body in 1178 + let (ulo, _) = close env lo in 1179 + let (uhi, _) = close env hi in 1180 + let (ubody, _) = close env body in 1166 1181 (Ufor(VP.create id, ulo, uhi, dir, ubody), Value_unknown) 1167 1182 | Lassign(id, lam) -> 1168 - let (ulam, _) = close fenv cenv lam in 1183 + let (ulam, _) = close env lam in 1169 1184 (Uassign(id, ulam), Value_unknown) 1170 1185 | Levent(lam, _) -> 1171 - close fenv cenv lam 1186 + close env lam 1172 1187 | Lifused _ -> 1173 1188 assert false 1174 1189 1175 - and close_list fenv cenv = function 1190 + and close_list env = function 1176 1191 [] -> [] 1177 1192 | lam :: rem -> 1178 - let (ulam, _) = close fenv cenv lam in 1179 - ulam :: close_list fenv cenv rem 1193 + let (ulam, _) = close env lam in 1194 + ulam :: close_list env rem 1180 1195 1181 - and close_list_approx fenv cenv = function 1196 + and close_list_approx env = function 1182 1197 [] -> ([], []) 1183 1198 | lam :: rem -> 1184 - let (ulam, approx) = close fenv cenv lam in 1185 - let (ulams, approxs) = close_list_approx fenv cenv rem in 1199 + let (ulam, approx) = close env lam in 1200 + let (ulams, approxs) = close_list_approx env rem in 1186 1201 (ulam :: ulams, approx :: approxs) 1187 1202 1188 - and close_named fenv cenv id = function 1203 + and close_named env id = function 1189 1204 Lfunction _ as funct -> 1190 - close_one_function fenv cenv id funct 1205 + close_one_function env id funct 1191 1206 | lam -> 1192 - close fenv cenv lam 1207 + close env lam 1193 1208 1194 1209 (* Build a shared closure for a set of mutually recursive functions *) 1195 1210 1196 - and close_functions fenv cenv fun_defs = 1211 + and close_functions { backend; fenv; cenv } fun_defs = 1197 1212 let fun_defs = 1198 1213 List.flatten 1199 1214 (List.map ··· 1264 1279 (fun (id, _params, _return, _body, _fundesc, _dbg) pos env -> 1265 1280 V.Map.add id (Uoffset(Uvar env_param, pos - env_pos)) env) 1266 1281 uncurried_defs clos_offsets cenv_fv in 1267 - let (ubody, approx) = close fenv_rec cenv_body body in 1282 + let (ubody, approx) = 1283 + close { backend; fenv = fenv_rec; cenv = cenv_body } body 1284 + in 1268 1285 if !useless_env && occurs_var env_param ubody then raise NotClosed; 1269 1286 let fun_params = 1270 1287 if !useless_env ··· 1335 1352 with offsets and approximations. *) 1336 1353 let (clos, infos) = List.split clos_info_list in 1337 1354 let fv = if !useless_env then [] else fv in 1338 - (Uclosure(clos, List.map (close_var fenv cenv) fv), infos) 1355 + (Uclosure(clos, List.map (close_var { backend; fenv; cenv }) fv), infos) 1339 1356 1340 1357 (* Same, for one non-recursive function *) 1341 1358 1342 - and close_one_function fenv cenv id funct = 1343 - match close_functions fenv cenv [id, funct] with 1359 + and close_one_function env id funct = 1360 + match close_functions env [id, funct] with 1344 1361 | (clos, (i, _, approx) :: _) when id = i -> (clos, approx) 1345 1362 | _ -> fatal_error "Closure.close_one_function" 1346 1363 1347 1364 (* Close a switch *) 1348 1365 1349 - and close_switch fenv cenv cases num_keys default = 1366 + and close_switch env cases num_keys default = 1350 1367 let ncases = List.length cases in 1351 1368 let index = Array.make num_keys 0 1352 1369 and store = Storer.mk_store () in ··· 1373 1390 Array.map 1374 1391 (function 1375 1392 | Single lam|Shared (Lstaticraise (_,[]) as lam) -> 1376 - let ulam,_ = close fenv cenv lam in 1393 + let ulam,_ = close env lam in 1377 1394 ulam 1378 1395 | Shared lam -> 1379 - let ulam,_ = close fenv cenv lam in 1396 + let ulam,_ = close env lam in 1380 1397 let i = next_raise_count () in 1381 1398 (* 1382 1399 let string_of_lambda e = ··· 1460 1477 1461 1478 (* The entry point *) 1462 1479 1463 - let intro size lam = 1480 + let intro ~backend ~size lam = 1464 1481 reset (); 1465 1482 let id = Compilenv.make_symbol None in 1466 1483 global_approx := Array.init size (fun i -> Value_global_field (id, i)); 1467 1484 Compilenv.set_global_approx(Value_tuple !global_approx); 1468 - let (ulam, _approx) = close V.Map.empty V.Map.empty lam in 1485 + let (ulam, _approx) = 1486 + close { backend; fenv = V.Map.empty; cenv = V.Map.empty } lam 1487 + in 1469 1488 let opaque = 1470 1489 !Clflags.opaque 1471 1490 || Env.is_imported_opaque (Compilenv.current_unit_name ())
+6 -1
asmcomp/closure.mli middle_end/closure/closure.mli
··· 15 15 16 16 (* Introduction of closures, uncurrying, recognition of direct calls *) 17 17 18 - val intro: int -> Lambda.lambda -> Clambda.ulambda 18 + val intro 19 + : backend:(module Backend_intf.S) 20 + -> size:int 21 + -> Lambda.lambda 22 + -> Clambda.ulambda 23 + 19 24 val reset : unit -> unit
asmcomp/closure_offsets.ml middle_end/flambda/closure_offsets.ml
asmcomp/closure_offsets.mli middle_end/flambda/closure_offsets.mli
+57 -19
asmcomp/cmmgen.ml
··· 140 140 else Cconst_natint 141 141 (Nativeint.add (Nativeint.shift_left (Nativeint.of_int n) 1) 1n, dbg) 142 142 143 + let natint_const_untagged dbg n = 144 + if n > Nativeint.of_int max_int 145 + || n < Nativeint.of_int min_int 146 + then Cconst_natint (n,dbg) 147 + else Cconst_int (Nativeint.to_int n, dbg) 148 + 143 149 let cint_const n = 144 150 Cint(Nativeint.add (Nativeint.shift_left (Nativeint.of_int n) 1) 1n) 145 151 ··· 1632 1638 (* Build an actual switch (ie jump table) *) 1633 1639 1634 1640 let make_switch arg cases actions dbg = 1635 - let is_const = function 1641 + let extract_uconstant = 1642 + function 1636 1643 (* Constant integers loaded from a table should end in 1, 1637 1644 so that Cload never produces untagged integers *) 1638 - | Cconst_int (n, _) 1639 - | Cconst_pointer (n, _) -> (n land 1) = 1 1640 - | Cconst_natint (n, _) 1641 - | Cconst_natpointer (n, _) -> (Nativeint.(to_int (logand n one) = 1)) 1642 - | Cconst_symbol _ -> true 1643 - | _ -> false in 1644 - if Array.for_all (fun (expr, _dbg) -> is_const expr) actions then 1645 - let to_data_item (expr, _dbg) = 1646 - match expr with 1647 - | Cconst_int (n, _) 1648 - | Cconst_pointer (n, _) -> Cint (Nativeint.of_int n) 1649 - | Cconst_natint (n, _) 1650 - | Cconst_natpointer (n, _) -> Cint n 1651 - | Cconst_symbol (s, _) -> Csymbol_address s 1652 - | _ -> assert false in 1653 - let const_actions = Array.map to_data_item actions in 1645 + | Cconst_int (n, _), _dbg 1646 + | Cconst_pointer (n, _), _dbg when (n land 1) = 1 -> 1647 + Some (Cint (Nativeint.of_int n)) 1648 + | Cconst_natint (n, _), _dbg 1649 + | Cconst_natpointer (n, _), _dbg 1650 + when Nativeint.(to_int (logand n one) = 1) -> 1651 + Some (Cint n) 1652 + | Cconst_symbol (s,_), _dbg -> 1653 + Some (Csymbol_address s) 1654 + | _ -> None 1655 + in 1656 + let extract_affine ~cases ~const_actions = 1657 + let length = Array.length cases in 1658 + if length >= 2 1659 + then begin 1660 + match const_actions.(cases.(0)), const_actions.(cases.(1)) with 1661 + | Cint v0, Cint v1 -> 1662 + let slope = Nativeint.sub v1 v0 in 1663 + let check i = function 1664 + | Cint v -> v = Nativeint.(add (mul (of_int i) slope) v0) 1665 + | _ -> false 1666 + in 1667 + if Misc.Stdlib.Array.for_alli 1668 + (fun i idx -> check i const_actions.(idx)) cases 1669 + then Some (v0, slope) 1670 + else None 1671 + | _, _ -> 1672 + None 1673 + end 1674 + else None 1675 + in 1676 + let make_table_lookup ~cases ~const_actions arg dbg = 1654 1677 let table = Compilenv.new_const_symbol () in 1655 1678 Cmmgen_state.add_constant table (Const_table (Local, 1656 1679 Array.to_list (Array.map (fun act -> 1657 1680 const_actions.(act)) cases))); 1658 1681 addr_array_ref (Cconst_symbol (table, dbg)) (tag_int arg dbg) dbg 1659 - else 1660 - Cswitch (arg,cases,actions,dbg) 1682 + in 1683 + let make_affine_computation ~offset ~slope arg dbg = 1684 + (* In case the resulting integers are an affine function of the index, we 1685 + don't emit a table, and just compute the result directly *) 1686 + add_int 1687 + (mul_int arg (natint_const_untagged dbg slope) dbg) 1688 + (natint_const_untagged dbg offset) 1689 + dbg 1690 + in 1691 + match Misc.Stdlib.Array.all_somes (Array.map extract_uconstant actions) with 1692 + | None -> 1693 + Cswitch (arg,cases,actions,dbg) 1694 + | Some const_actions -> 1695 + match extract_affine ~cases ~const_actions with 1696 + | Some (offset, slope) -> 1697 + make_affine_computation ~offset ~slope arg dbg 1698 + | None -> make_table_lookup ~cases ~const_actions arg dbg 1661 1699 1662 1700 module SArgBlocks = 1663 1701 struct
asmcomp/cmx_format.mli file_formats/cmx_format.mli
asmcomp/cmxs_format.mli file_formats/cmxs_format.mli
asmcomp/compilenv.ml middle_end/compilenv.ml
asmcomp/compilenv.mli middle_end/compilenv.mli
asmcomp/convert_primitives.ml middle_end/convert_primitives.ml
asmcomp/convert_primitives.mli middle_end/convert_primitives.mli
asmcomp/export_info.ml middle_end/flambda/export_info.ml
asmcomp/export_info.mli middle_end/flambda/export_info.mli
asmcomp/export_info_for_pack.ml middle_end/flambda/export_info_for_pack.ml
asmcomp/export_info_for_pack.mli middle_end/flambda/export_info_for_pack.mli
asmcomp/flambda_to_clambda.ml middle_end/flambda/flambda_to_clambda.ml
asmcomp/flambda_to_clambda.mli middle_end/flambda/flambda_to_clambda.mli
asmcomp/import_approx.ml middle_end/flambda/import_approx.ml
asmcomp/import_approx.mli middle_end/flambda/import_approx.mli
asmcomp/printclambda.ml middle_end/printclambda.ml
asmcomp/printclambda.mli middle_end/printclambda.mli
asmcomp/printclambda_primitives.ml middle_end/printclambda_primitives.ml
asmcomp/printclambda_primitives.mli middle_end/printclambda_primitives.mli
asmcomp/semantics_of_primitives.ml middle_end/semantics_of_primitives.ml
asmcomp/semantics_of_primitives.mli middle_end/semantics_of_primitives.mli
asmcomp/traverse_for_exported_symbols.ml middle_end/flambda/traverse_for_exported_symbols.ml
asmcomp/traverse_for_exported_symbols.mli middle_end/flambda/traverse_for_exported_symbols.mli
asmcomp/un_anf.ml middle_end/flambda/un_anf.ml
asmcomp/un_anf.mli middle_end/flambda/un_anf.mli
+26 -1
autogen
··· 1 1 #!/bin/sh 2 - autoconf -W all,error 2 + #************************************************************************** 3 + #* * 4 + #* OCaml * 5 + #* * 6 + #* David Allsopp, MetaStack Solutions Ltd. * 7 + #* * 8 + #* Copyright 2019 MetaStack Solutions Ltd. * 9 + #* * 10 + #* All rights reserved. This file is distributed under the terms of * 11 + #* the GNU Lesser General Public License version 2.1, with the * 12 + #* special exception on linking described in the file LICENSE. * 13 + #* * 14 + #************************************************************************** 15 + 16 + version=$(autoconf --version | sed -ne 's/^autoconf .* \([0-9][^ ]*\)$/\1/p') 17 + if [ "$version" != '2.69' ] ; then 18 + echo "autoconf 2.69 is required" >&2 19 + exit 1 20 + else 21 + autoconf -W all,error 22 + # Some distros have this 2013 patch to autoconf, some don't... 23 + sed -i -e '/^runstatedir/d' \ 24 + -e '/-runstatedir /,+8d' \ 25 + -e '/--runstatedir=DIR/d' \ 26 + -e 's/ runstatedir//' configure 27 + fi
bytecomp/cmo_format.mli file_formats/cmo_format.mli
-8
bytecomp/dune
··· 18 18 (deps (:instr (file ../runtime/caml/instruct.h))) 19 19 (action 20 20 (bash "%{dep:../tools/make_opcodes.exe} -opcodes < %{instr} > %{targets}"))) 21 - 22 - (rule 23 - (targets runtimedef.ml) 24 - (mode fallback) 25 - (deps (:fail (file ../runtime/caml/fail.h)) 26 - (:prim (file ../runtime/primitives))) 27 - (action (with-stdout-to %{targets} 28 - (run ./generate_runtimedef.sh %{fail} %{prim}))))
bytecomp/generate_runtimedef.sh lambda/generate_runtimedef.sh
bytecomp/lambda.ml lambda/lambda.ml
bytecomp/lambda.mli lambda/lambda.mli
bytecomp/matching.ml lambda/matching.ml
bytecomp/matching.mli lambda/matching.mli
bytecomp/printlambda.ml lambda/printlambda.ml
bytecomp/printlambda.mli lambda/printlambda.mli
bytecomp/runtimedef.mli lambda/runtimedef.mli
bytecomp/simplif.ml lambda/simplif.ml
bytecomp/simplif.mli lambda/simplif.mli
bytecomp/switch.ml lambda/switch.ml
bytecomp/switch.mli lambda/switch.mli
bytecomp/translattribute.ml lambda/translattribute.ml
bytecomp/translattribute.mli lambda/translattribute.mli
bytecomp/translclass.ml lambda/translclass.ml
bytecomp/translclass.mli lambda/translclass.mli
bytecomp/translcore.ml lambda/translcore.ml
bytecomp/translcore.mli lambda/translcore.mli
bytecomp/translmod.ml lambda/translmod.ml
bytecomp/translmod.mli lambda/translmod.mli
bytecomp/translobj.ml lambda/translobj.ml
bytecomp/translobj.mli lambda/translobj.mli
bytecomp/translprim.ml lambda/translprim.ml
bytecomp/translprim.mli lambda/translprim.mli
+4 -4
debugger/.depend
··· 286 286 question.cmi \ 287 287 program_management.cmi \ 288 288 primitives.cmi \ 289 + ../typing/persistent_env.cmi \ 289 290 parameters.cmi \ 290 291 ../utils/misc.cmi \ 291 292 loadprinter.cmi \ ··· 293 294 input_handling.cmi \ 294 295 frames.cmi \ 295 296 exec.cmi \ 296 - ../typing/env.cmi \ 297 297 debugger_config.cmi \ 298 298 ../utils/config.cmi \ 299 299 command_line.cmi \ 300 - ../typing/cmi_format.cmi \ 300 + ../file_formats/cmi_format.cmi \ 301 301 ../utils/clflags.cmi \ 302 302 checkpoints.cmi 303 303 main.cmx : \ ··· 308 308 question.cmx \ 309 309 program_management.cmx \ 310 310 primitives.cmx \ 311 + ../typing/persistent_env.cmx \ 311 312 parameters.cmx \ 312 313 ../utils/misc.cmx \ 313 314 loadprinter.cmx \ ··· 315 316 input_handling.cmx \ 316 317 frames.cmx \ 317 318 exec.cmx \ 318 - ../typing/env.cmx \ 319 319 debugger_config.cmx \ 320 320 ../utils/config.cmx \ 321 321 command_line.cmx \ 322 - ../typing/cmi_format.cmx \ 322 + ../file_formats/cmi_format.cmx \ 323 323 ../utils/clflags.cmx \ 324 324 checkpoints.cmx 325 325 parameters.cmo : \
+12 -5
debugger/Makefile
··· 34 34 DEPINCLUDES=$(INCLUDES) 35 35 36 36 DIRECTORIES=$(UNIXDIR) $(DYNLINKDIR) $(addprefix $(ROOTDIR)/,\ 37 - utils parsing typing bytecomp toplevel) 37 + utils parsing typing bytecomp toplevel driver file_formats lambda) 38 38 39 39 INCLUDES=$(addprefix -I ,$(DIRECTORIES)) 40 40 ··· 48 48 49 49 typing_modules := $(addprefix typing/,\ 50 50 ident path types btype primitive typedtree subst predef datarepr \ 51 - cmi_format persistent_env env oprint ctype printtyp mtype envaux) 51 + persistent_env env oprint ctype printtyp mtype envaux) 52 + 53 + file_formats_modules := $(addprefix file_formats/,\ 54 + cmi_format) 55 + 56 + lambda_modules := $(addprefix lambda/,\ 57 + runtimedef) 52 58 53 59 bytecomp_modules := $(addprefix bytecomp/,\ 54 - runtimedef bytesections dll meta symtable opcodes) 60 + bytesections dll meta symtable opcodes) 55 61 56 62 other_compiler_modules := toplevel/genprintval 57 63 58 64 compiler_modules := $(addprefix $(ROOTDIR)/,\ 59 - $(utils_modules) $(parsing_modules) $(typing_modules) \ 60 - $(bytecomp_modules) $(other_compiler_modules)) 65 + $(utils_modules) $(parsing_modules) $(file_formats_modules) \ 66 + $(lambda_modules) \ 67 + $(typing_modules) $(bytecomp_modules) $(other_compiler_modules)) 61 68 62 69 debugger_modules := \ 63 70 int64ops primitives unix_tools debugger_config parameters lexer \
+12 -10
debugger/dune
··· 12 12 ;* * 13 13 ;************************************************************************** 14 14 15 - (ocamllex lexer) 16 - (ocamlyacc parser) 15 + ; mshinwell: Disabled for now -- otherlibs/dynlink/dune needs fixing first. 17 16 18 - (executable 19 - (name main) 20 - (modes byte) 21 - (flags (:standard -w -9)) 22 - (modules_without_implementation parser_aux) 23 - (libraries ocamlcommon ocamltoplevel runtime stdlib unix)) 24 - 25 - (rule (copy main.exe ocamldebug.byte)) 17 + ;(ocamllex lexer) 18 + ;(ocamlyacc parser) 19 + ; 20 + ;(executable 21 + ; (name main) 22 + ; (modes byte) 23 + ; (flags (:standard -w -9)) 24 + ; (modules_without_implementation parser_aux) 25 + ; (libraries ocamlcommon ocamltoplevel runtime stdlib unix)) 26 + ; 27 + ;(rule (copy main.exe ocamldebug.byte))
+41 -43
driver/makedepend.ml
··· 87 87 end 88 88 89 89 (* Find file 'name' (capitalized) in search path *) 90 - let find_file name = 91 - let uname = String.uncapitalize_ascii name in 90 + let find_module_in_load_path name = 91 + let names = List.map (fun ext -> name ^ ext) (!mli_synonyms @ !ml_synonyms) in 92 + let unames = 93 + let uname = String.uncapitalize_ascii name in 94 + List.map (fun ext -> uname ^ ext) (!mli_synonyms @ !ml_synonyms) 95 + in 92 96 let rec find_in_array a pos = 93 97 if pos >= Array.length a then None else begin 94 98 let s = a.(pos) in 95 - if s = name || s = uname then Some s else find_in_array a (pos + 1) 99 + if List.mem s names || List.mem s unames then 100 + Some s 101 + else 102 + find_in_array a (pos + 1) 96 103 end in 97 104 let rec find_in_path = function 98 105 [] -> raise Not_found ··· 103 110 | None -> find_in_path rem in 104 111 find_in_path !load_path 105 112 106 - let rec find_file_in_list = function 107 - [] -> raise Not_found 108 - | x :: rem -> try find_file x with Not_found -> find_file_in_list rem 109 - 110 - 111 113 let find_dependency target_kind modname (byt_deps, opt_deps) = 112 114 try 113 - let candidates = List.map ((^) modname) !mli_synonyms in 114 - let filename = find_file_in_list candidates in 115 + let filename = find_module_in_load_path modname in 115 116 let basename = Filename.chop_extension filename in 116 117 let cmi_file = basename ^ ".cmi" in 117 118 let cmx_file = basename ^ ".cmx" in 119 + let mli_exists = 120 + List.exists (fun ext -> Sys.file_exists (basename ^ ext)) !mli_synonyms in 118 121 let ml_exists = 119 122 List.exists (fun ext -> Sys.file_exists (basename ^ ext)) !ml_synonyms in 120 - let new_opt_dep = 121 - if !all_dependencies then 122 - match target_kind with 123 - | MLI -> [ cmi_file ] 124 - | ML -> 125 - cmi_file :: (if ml_exists then [ cmx_file ] else []) 126 - else 123 + if mli_exists then 124 + let new_opt_dep = 125 + if !all_dependencies then 126 + match target_kind with 127 + | MLI -> [ cmi_file ] 128 + | ML -> 129 + cmi_file :: (if ml_exists then [ cmx_file ] else []) 130 + else 127 131 (* this is a make-specific hack that makes .cmx to be a 'proxy' 128 132 target that would force the dependency on .cmi via transitivity *) 129 133 if ml_exists 130 134 then [ cmx_file ] 131 135 else [ cmi_file ] 132 - in 133 - ( cmi_file :: byt_deps, new_opt_dep @ opt_deps) 134 - with Not_found -> 135 - try 136 - (* "just .ml" case *) 137 - let candidates = List.map ((^) modname) !ml_synonyms in 138 - let filename = find_file_in_list candidates in 139 - let basename = Filename.chop_extension filename in 140 - let cmi_file = basename ^ ".cmi" in 141 - let cmx_file = basename ^ ".cmx" in 142 - let bytenames = 143 - if !all_dependencies then 144 - match target_kind with 145 - | MLI -> [ cmi_file ] 146 - | ML -> [ cmi_file ] 147 - else 148 - (* again, make-specific hack *) 149 - [basename ^ (if !native_only then ".cmx" else ".cmo")] in 150 - let optnames = 151 - if !all_dependencies 152 - then match target_kind with 153 - | MLI -> [ cmi_file ] 154 - | ML -> [ cmi_file; cmx_file ] 155 - else [ cmx_file ] 156 - in 157 - (bytenames @ byt_deps, optnames @ opt_deps) 136 + in 137 + ( cmi_file :: byt_deps, new_opt_dep @ opt_deps) 138 + else 139 + (* "just .ml" case *) 140 + let bytenames = 141 + if !all_dependencies then 142 + match target_kind with 143 + | MLI -> [ cmi_file ] 144 + | ML -> [ cmi_file ] 145 + else 146 + (* again, make-specific hack *) 147 + [basename ^ (if !native_only then ".cmx" else ".cmo")] in 148 + let optnames = 149 + if !all_dependencies 150 + then match target_kind with 151 + | MLI -> [ cmi_file ] 152 + | ML -> [ cmi_file; cmx_file ] 153 + else [ cmx_file ] 154 + in 155 + (bytenames @ byt_deps, optnames @ opt_deps) 158 156 with Not_found -> 159 157 (byt_deps, opt_deps) 160 158
+4 -4
driver/optcompile.ml
··· 49 49 |>> Simplif.simplify_lambda 50 50 |>> print_if i.ppf_dump Clflags.dump_lambda Printlambda.lambda 51 51 |> (fun ((module_ident, size), lam) -> 52 - Middle_end.middle_end 52 + Flambda_middle_end.middle_end 53 53 ~ppf_dump:i.ppf_dump 54 54 ~prefixname:i.output_prefix 55 55 ~size ··· 61 61 i.output_prefix ~required_globals ~backend ~ppf_dump:i.ppf_dump; 62 62 Compilenv.save_unit_info (cmx i)) 63 63 64 - let clambda i typed = 64 + let clambda i backend typed = 65 65 Clflags.use_inlining_arguments_set Clflags.classic_arguments; 66 66 typed 67 67 |> Profile.(record transl) ··· 73 73 { program with Lambda.code } 74 74 |> print_if i.ppf_dump Clflags.dump_lambda Printlambda.program 75 75 |> Asmgen.compile_implementation_clambda 76 - i.output_prefix ~ppf_dump:i.ppf_dump; 76 + i.output_prefix ~backend ~ppf_dump:i.ppf_dump; 77 77 Compilenv.save_unit_info (cmx i)) 78 78 79 79 let implementation ~backend ~source_file ~output_prefix = ··· 81 81 Compilenv.reset ?packname:!Clflags.for_package info.module_name; 82 82 if Config.flambda 83 83 then flambda info backend typed 84 - else clambda info typed 84 + else clambda info backend typed 85 85 in 86 86 with_info ~source_file ~output_prefix ~dump_ext:"cmx" @@ fun info -> 87 87 Compile_common.implementation info ~backend
+1
driver/optcompile.mli
··· 25 25 26 26 val clambda : 27 27 Compile_common.info -> 28 + (module Backend_intf.S) -> 28 29 Typedtree.structure * Typedtree.module_coercion -> unit 29 30 (** [clambda info typed] applies the regular compilation pipeline to the 30 31 given typechecked implementation and outputs the resulting files.
+84 -54
dune
··· 27 27 (copy_files# driver/*.ml{,i}) 28 28 (copy_files# asmcomp/*.ml{,i}) 29 29 (copy_files# asmcomp/debug/*.ml{,i}) 30 + (copy_files# file_formats/*.ml{,i}) 31 + (copy_files# lambda/*.ml{,i}) 30 32 (copy_files# middle_end/*.ml{,i}) 31 - (copy_files# middle_end/base_types/*.ml{,i}) 33 + (copy_files# middle_end/closure/*.ml{,i}) 34 + (copy_files# middle_end/flambda/*.ml{,i}) 35 + (copy_files# middle_end/flambda/base_types/*.ml{,i}) 32 36 33 37 (library 34 38 (name ocamlcommon) ··· 41 45 ;; UTILS 42 46 config build_path_prefix_map misc identifiable numbers arg_helper clflags 43 47 profile terminfo ccomp warnings consistbl strongly_connected_components 44 - targetint load_path 48 + targetint load_path int_replace_polymorphic_compare 45 49 46 50 ;; PARSING 47 51 location longident docstrings syntaxerr ast_helper camlinternalMenhirLib ··· 61 65 ; manual update: mli only files 62 66 annot outcometree 63 67 64 - ;; COMP 65 - lambda printlambda semantics_of_primitives switch matching translobj 66 - translattribute translprim translcore translclass translmod simplif 67 - runtimedef meta opcodes bytesections dll symtable pparse main_args compenv 68 - compmisc makedepend compile_common clambda_primitives 69 - printclambda_primitives 68 + ;; lambda/ 69 + debuginfo lambda matching printlambda runtimedef simplif switch 70 + translattribute translclass translcore translmod translobj translprim 71 + 72 + ;; bytecomp/ 73 + meta opcodes bytesections dll symtable 74 + 75 + ;; some of COMP 76 + pparse main_args compenv compmisc makedepend compile_common 70 77 ; manual update: mli only files 71 78 cmo_format 72 79 ; manual update: this is required. 73 80 instruct 74 - )) 81 + )) 75 82 76 83 (library 77 84 (name ocamlbytecomp) ··· 79 86 (flags (:standard -principal -nostdlib)) 80 87 (libraries stdlib ocamlcommon) 81 88 (modules 82 - bytegen printinstr emitcode bytelink bytelibrarian bytepackager errors 83 - compile)) 89 + ;; bytecomp/ 90 + bytegen bytelibrarian bytelink bytepackager emitcode printinstr 91 + 92 + ;; driver/ 93 + errors compile 94 + )) 84 95 85 96 (library 86 - (name ocamloptcomp) 97 + (name ocamlmiddleend) 87 98 (wrapped false) 88 99 (flags (:standard -principal -nostdlib)) 89 100 (libraries stdlib ocamlcommon) 90 101 (modules_without_implementation 91 - cmxs_format cmx_format x86_ast backend_intf inlining_decision_intf 102 + cmx_format cmxs_format backend_intf inlining_decision_intf 92 103 simplify_boxed_integer_ops_intf) 93 104 (modules 94 - ;; ASMCOMP 95 - arch backend_var cmm printcmm reg reg_with_debug_info reg_availability_set 96 - mach proc clambda printclambda export_info export_info_for_pack compilenv 97 - closure traverse_for_exported_symbols build_export_info closure_offsets 98 - flambda_to_clambda import_approx un_anf afl_instrument strmatch cmmgen_state 99 - cmmgen interval printmach selectgen spacetime_profiling selection comballoc 100 - CSEgen CSE liveness spill split interf coloring linscan reloadgen reload 101 - deadcode printlinear linearize available_regs schedgen scheduling 102 - branch_relaxation_intf branch_relaxation emitaux emit asmgen asmlink 103 - asmlibrarian asmpackager opterrors optcompile 104 - ; manual update: mli only files 105 - cmxs_format cmx_format 105 + ;; file_formats/ 106 + cmx_format cmxs_format 106 107 107 - ; arch specific files: we always include them even though depending on the 108 - ; target architecture they might not be used. 109 - x86_ast 110 - x86_proc 111 - x86_dsl 112 - x86_gas 113 - x86_masm 108 + ;; middle_end/ 109 + backend_intf backend_var backend_var clambda clambda_primitives 110 + compilation_unit compilenv convert_primitives internal_variable_names 111 + linkage_name printclambda printclambda_primitives semantics_of_primitives 112 + symbol variable 114 113 115 - ;; MIDDLE_END 116 - int_replace_polymorphic_compare debuginfo tag linkage_name compilation_unit 117 - internal_variable_names variable mutable_variable id_types set_of_closures_id 118 - set_of_closures_origin closure_element closure_id closure_origin 119 - var_within_closure static_exception export_id symbol pass_wrapper 120 - allocated_const parameter projection flambda flambda_iterators flambda_utils 121 - inlining_cost effect_analysis freshening simple_value_approx lift_code 122 - closure_conversion_aux closure_conversion initialize_symbol_to_let_symbol 123 - lift_let_to_initialize_symbol find_recursive_functions invariant_params 124 - inconstant_idents alias_analysis lift_constants share_constants 125 - simplify_common remove_unused_arguments remove_unused_closure_vars 126 - remove_unused_program_constructs simplify_boxed_integer_ops 127 - simplify_primitives inlining_stats_types inlining_stats 128 - inline_and_simplify_aux remove_free_vars_equal_to_args extract_projections 129 - augment_specialised_args unbox_free_vars_of_closures unbox_specialised_args 130 - unbox_closures inlining_transforms inlining_decision inline_and_simplify 131 - ref_to_variables flambda_invariants middle_end convert_primitives 132 - ; manual update: mli only files 133 - backend_intf inlining_decision_intf simplify_boxed_integer_ops_intf 114 + ;; middle_end/closure/ 115 + closure 116 + 117 + ;; middle_end/flambda/base_types/ 118 + closure_element closure_id closure_origin export_id id_types mutable_variable 119 + set_of_closures_id set_of_closures_origin static_exception tag 120 + var_within_closure 121 + 122 + ;; middle_end/flambda/ 123 + alias_analysis allocated_const augment_specialised_args build_export_info 124 + closure_conversion closure_conversion_aux closure_offsets effect_analysis 125 + export_info export_info_for_pack extract_projections find_recursive_functions 126 + flambda flambda_invariants flambda_iterators flambda_middle_end 127 + flambda_to_clambda flambda_utils freshening import_approx inconstant_idents 128 + initialize_symbol_to_let_symbol inline_and_simplify inline_and_simplify_aux 129 + inlining_cost inlining_decision inlining_decision_intf inlining_stats 130 + inlining_stats_types inlining_transforms invariant_params lift_code 131 + lift_constants lift_let_to_initialize_symbol parameter pass_wrapper 132 + projection ref_to_variables remove_free_vars_equal_to_args 133 + remove_unused_arguments remove_unused_closure_vars 134 + remove_unused_program_constructs share_constants simple_value_approx 135 + simplify_boxed_integer_ops simplify_boxed_integer_ops_intf simplify_common 136 + simplify_primitives traverse_for_exported_symbols un_anf unbox_closures 137 + unbox_free_vars_of_closures unbox_specialised_args 138 + ) 139 + ) 140 + 141 + (library 142 + (name ocamloptcomp) 143 + (wrapped false) 144 + (flags (:standard -principal -nostdlib)) 145 + (libraries stdlib ocamlcommon ocamlmiddleend) 146 + (modules_without_implementation x86_ast) 147 + (modules 148 + ;; asmcomp/ 149 + afl_instrument arch asmgen asmlibrarian asmlink asmpackager branch_relaxation 150 + branch_relaxation_intf cmm cmmgen cmmgen_state coloring comballoc CSE CSEgen 151 + deadcode emit emitaux interf interval linearize linscan liveness mach 152 + printcmm printlinear printmach proc reg reload reloadgen schedgen scheduling 153 + selectgen selection spacetime_profiling spill split strmatch x86_ast 154 + x86_dsl x86_gas x86_masm x86_proc 155 + 156 + ;; asmcomp/debug/ 157 + reg_availability_set compute_ranges_intf available_regs reg_with_debug_info 158 + compute_ranges 159 + 160 + ;; driver/ 161 + optcompile opterrors 134 162 ) 135 163 ) 136 164 ··· 156 184 (name optmain) 157 185 (modes byte) 158 186 (flags (:standard -principal -nostdlib)) 159 - (libraries ocamloptcomp ocamlcommon runtime stdlib) 187 + (libraries ocamloptcomp ocamlmiddleend ocamlcommon runtime stdlib) 160 188 (modules optmain)) 161 189 162 190 (rule ··· 166 194 ;;; aliases ;;; 167 195 ;;;;;;;;;;;;;;; 168 196 197 + ; mshinwell: The debugger and ocamldoc are currently disabled as Dynlink is 198 + ; not built correctly. 169 199 (alias 170 200 (name world) 171 201 (deps ocamlc.byte 172 202 ocamlopt.byte 173 - debugger/ocamldebug.byte 174 - ocamldoc/ocamldoc.byte 203 + ; debugger/ocamldebug.byte 204 + ; ocamldoc/ocamldoc.byte 175 205 ocamltest/ocamltest.byte 176 206 toplevel/ocaml.byte 177 207 toplevel/expunge.exe
+21
lambda/dune
··· 1 + ;************************************************************************** 2 + ;* * 3 + ;* OCaml * 4 + ;* * 5 + ;* Thomas Refis, Jane Street Europe * 6 + ;* * 7 + ;* Copyright 2018 Jane Street Group LLC * 8 + ;* * 9 + ;* All rights reserved. This file is distributed under the terms of * 10 + ;* the GNU Lesser General Public License version 2.1, with the * 11 + ;* special exception on linking described in the file LICENSE. * 12 + ;* * 13 + ;************************************************************************** 14 + 15 + (rule 16 + (targets runtimedef.ml) 17 + (mode fallback) 18 + (deps (:fail (file ../runtime/caml/fail.h)) 19 + (:prim (file ../runtime/primitives))) 20 + (action (with-stdout-to %{targets} 21 + (run ./generate_runtimedef.sh %{fail} %{prim}))))
+1 -1
lex/Makefile
··· 50 50 51 51 clean:: 52 52 rm -f ocamllex ocamllex.opt 53 - rm -f *.cmo *.cmi *.cmx *.cmt *.cmti *.$(O) *~ 53 + rm -f *.cmo *.cmi *.cmx *.cmt *.cmti *.$(O) 54 54 55 55 parser.ml parser.mli: parser.mly 56 56 $(CAMLYACC) $(YACCFLAGS) parser.mly
+1 -1
manual/README.md
··· 94 94 and `top.etex`. If you need to update this list of options, the top comment 95 95 of `unified-options.etex` contains the relevant information. 96 96 97 - - Part IV, The OCaml library: 'libref' 97 + - Part IV, The OCaml library: 'library' 98 98 This parts contains an brief presentation of all libraries bundled with the 99 99 compilers and the api documentation generated for these libraries. 100 100 - The core library: `core.etex`
+12 -1
manual/manual/cmds/comp.etex
··· 100 100 The produced file has the executable bit set, and it manages to launch 101 101 the bytecode interpreter by itself. 102 102 103 + The compiler is able to emit some information on its internal stages. 104 + It can output ".cmt" files for the implementation of the compilation unit 105 + and ".cmti" for signatures if the option "-bin-annot" is passed to it (see the 106 + description of "-bin-annot" below). 107 + Each such file contains a typed abstract syntax tree (AST), that is produced 108 + during the type checking procedure. This tree contains all available information 109 + about the location and the specific type of each term in the source file. 110 + The AST is partial if type checking was unsuccessful. 111 + 112 + These ".cmt" and ".cmti" files are typically useful for code inspection tools. 113 + 103 114 \section{Options}\label{s:comp-options} 104 115 105 116 The following command-line options are recognized by "ocamlc". ··· 361 372 after the addition of new fields to a record type. 362 373 363 374 \begin{verbatim} 364 - type 'a point = {x='a ;y='a} 375 + type 'a point = {x : 'a; y : 'a} 365 376 let dx { x } = x (* implicit field elision: trigger warning 9 *) 366 377 let dy { y; _ } = y (* explicit field elision: do not trigger warning 9 *) 367 378 \end{verbatim}
+13 -1
manual/manual/cmds/native.etex
··· 86 86 The output of the linking phase is a regular Unix or Windows 87 87 executable file. It does not need "ocamlrun" to run. 88 88 89 + % The following two paragraphs are a duplicate from the description of the batch compiler. 90 + 91 + The compiler is able to emit some information on its internal stages. 92 + It can output ".cmt" files for the implementation of the compilation unit 93 + and ".cmti" for signatures if the option "-bin-annot" is passed to it (see the 94 + description of "-bin-annot" below). 95 + Each such file contains a typed abstract syntax tree (AST), that is produced 96 + during the type checking procedure. This tree contains all available information 97 + about the location and the specific type of each term in the source file. 98 + The AST is partial if type checking was unsuccessful. 99 + 100 + These ".cmt" and ".cmti" files are typically useful for code inspection tools. 101 + 89 102 \section{Options} 90 103 91 104 The following command-line options are recognized by "ocamlopt". ··· 227 240 "Sys" standard library module. 228 241 229 242 \end{itemize} 230 -
+1 -1
manual/tests/Makefile
··· 20 20 -auxfile $(MANUAL)/texstuff/manual.aux \ 21 21 $(TOPDIR)/utils/warnings.ml \ 22 22 $(TOPDIR)/driver/main_args.ml \ 23 - $(TOPDIR)/bytecomp/translmod.ml 23 + $(TOPDIR)/lambda/translmod.ml 24 24 25 25 .PHONY: check-stdlib 26 26 check-stdlib:
middle_end/alias_analysis.ml middle_end/flambda/alias_analysis.ml
middle_end/alias_analysis.mli middle_end/flambda/alias_analysis.mli
middle_end/allocated_const.ml middle_end/flambda/allocated_const.ml
middle_end/allocated_const.mli middle_end/flambda/allocated_const.mli
middle_end/augment_specialised_args.ml middle_end/flambda/augment_specialised_args.ml
middle_end/augment_specialised_args.mli middle_end/flambda/augment_specialised_args.mli
middle_end/base_types/closure_element.ml middle_end/flambda/base_types/closure_element.ml
middle_end/base_types/closure_element.mli middle_end/flambda/base_types/closure_element.mli
middle_end/base_types/closure_id.ml middle_end/flambda/base_types/closure_id.ml
middle_end/base_types/closure_id.mli middle_end/flambda/base_types/closure_id.mli
middle_end/base_types/closure_origin.ml middle_end/flambda/base_types/closure_origin.ml
middle_end/base_types/closure_origin.mli middle_end/flambda/base_types/closure_origin.mli
middle_end/base_types/compilation_unit.ml middle_end/compilation_unit.ml
middle_end/base_types/compilation_unit.mli middle_end/compilation_unit.mli
middle_end/base_types/export_id.ml middle_end/flambda/base_types/export_id.ml
middle_end/base_types/export_id.mli middle_end/flambda/base_types/export_id.mli
middle_end/base_types/id_types.ml middle_end/flambda/base_types/id_types.ml
middle_end/base_types/id_types.mli middle_end/flambda/base_types/id_types.mli
middle_end/base_types/linkage_name.ml middle_end/linkage_name.ml
middle_end/base_types/linkage_name.mli middle_end/linkage_name.mli
middle_end/base_types/mutable_variable.ml middle_end/flambda/base_types/mutable_variable.ml
middle_end/base_types/mutable_variable.mli middle_end/flambda/base_types/mutable_variable.mli
middle_end/base_types/set_of_closures_id.ml middle_end/flambda/base_types/set_of_closures_id.ml
middle_end/base_types/set_of_closures_id.mli middle_end/flambda/base_types/set_of_closures_id.mli
middle_end/base_types/set_of_closures_origin.ml middle_end/flambda/base_types/set_of_closures_origin.ml
middle_end/base_types/set_of_closures_origin.mli middle_end/flambda/base_types/set_of_closures_origin.mli
middle_end/base_types/static_exception.ml middle_end/flambda/base_types/static_exception.ml
middle_end/base_types/static_exception.mli middle_end/flambda/base_types/static_exception.mli
middle_end/base_types/symbol.ml middle_end/symbol.ml
middle_end/base_types/symbol.mli middle_end/symbol.mli
middle_end/base_types/tag.ml middle_end/flambda/base_types/tag.ml
middle_end/base_types/tag.mli middle_end/flambda/base_types/tag.mli
middle_end/base_types/var_within_closure.ml middle_end/flambda/base_types/var_within_closure.ml
middle_end/base_types/var_within_closure.mli middle_end/flambda/base_types/var_within_closure.mli
middle_end/base_types/variable.ml middle_end/variable.ml
middle_end/base_types/variable.mli middle_end/variable.mli
middle_end/closure_conversion.ml middle_end/flambda/closure_conversion.ml
middle_end/closure_conversion.mli middle_end/flambda/closure_conversion.mli
middle_end/closure_conversion_aux.ml middle_end/flambda/closure_conversion_aux.ml
middle_end/closure_conversion_aux.mli middle_end/flambda/closure_conversion_aux.mli
middle_end/debuginfo.ml lambda/debuginfo.ml
middle_end/debuginfo.mli lambda/debuginfo.mli
middle_end/effect_analysis.ml middle_end/flambda/effect_analysis.ml
middle_end/effect_analysis.mli middle_end/flambda/effect_analysis.mli
middle_end/extract_projections.ml middle_end/flambda/extract_projections.ml
middle_end/extract_projections.mli middle_end/flambda/extract_projections.mli
middle_end/find_recursive_functions.ml middle_end/flambda/find_recursive_functions.ml
middle_end/find_recursive_functions.mli middle_end/flambda/find_recursive_functions.mli
middle_end/flambda.ml middle_end/flambda/flambda.ml
middle_end/flambda.mli middle_end/flambda/flambda.mli
middle_end/flambda_invariants.ml middle_end/flambda/flambda_invariants.ml
middle_end/flambda_invariants.mli middle_end/flambda/flambda_invariants.mli
middle_end/flambda_iterators.ml middle_end/flambda/flambda_iterators.ml
middle_end/flambda_iterators.mli middle_end/flambda/flambda_iterators.mli
middle_end/flambda_utils.ml middle_end/flambda/flambda_utils.ml
middle_end/flambda_utils.mli middle_end/flambda/flambda_utils.mli
middle_end/freshening.ml middle_end/flambda/freshening.ml
middle_end/freshening.mli middle_end/flambda/freshening.mli
middle_end/inconstant_idents.ml middle_end/flambda/inconstant_idents.ml
middle_end/inconstant_idents.mli middle_end/flambda/inconstant_idents.mli
middle_end/initialize_symbol_to_let_symbol.ml middle_end/flambda/initialize_symbol_to_let_symbol.ml
middle_end/initialize_symbol_to_let_symbol.mli middle_end/flambda/initialize_symbol_to_let_symbol.mli
middle_end/inline_and_simplify.ml middle_end/flambda/inline_and_simplify.ml
middle_end/inline_and_simplify.mli middle_end/flambda/inline_and_simplify.mli
middle_end/inline_and_simplify_aux.ml middle_end/flambda/inline_and_simplify_aux.ml
middle_end/inline_and_simplify_aux.mli middle_end/flambda/inline_and_simplify_aux.mli
middle_end/inlining_cost.ml middle_end/flambda/inlining_cost.ml
middle_end/inlining_cost.mli middle_end/flambda/inlining_cost.mli
middle_end/inlining_decision.ml middle_end/flambda/inlining_decision.ml
middle_end/inlining_decision.mli middle_end/flambda/inlining_decision.mli
middle_end/inlining_decision_intf.mli middle_end/flambda/inlining_decision_intf.mli
middle_end/inlining_stats.ml middle_end/flambda/inlining_stats.ml
middle_end/inlining_stats.mli middle_end/flambda/inlining_stats.mli
middle_end/inlining_stats_types.ml middle_end/flambda/inlining_stats_types.ml
middle_end/inlining_stats_types.mli middle_end/flambda/inlining_stats_types.mli
middle_end/inlining_transforms.ml middle_end/flambda/inlining_transforms.ml
middle_end/inlining_transforms.mli middle_end/flambda/inlining_transforms.mli
middle_end/int_replace_polymorphic_compare.ml utils/int_replace_polymorphic_compare.ml
middle_end/int_replace_polymorphic_compare.mli utils/int_replace_polymorphic_compare.mli
middle_end/invariant_params.ml middle_end/flambda/invariant_params.ml
middle_end/invariant_params.mli middle_end/flambda/invariant_params.mli
middle_end/lift_code.ml middle_end/flambda/lift_code.ml
middle_end/lift_code.mli middle_end/flambda/lift_code.mli
middle_end/lift_constants.ml middle_end/flambda/lift_constants.ml
middle_end/lift_constants.mli middle_end/flambda/lift_constants.mli
middle_end/lift_let_to_initialize_symbol.ml middle_end/flambda/lift_let_to_initialize_symbol.ml
middle_end/lift_let_to_initialize_symbol.mli middle_end/flambda/lift_let_to_initialize_symbol.mli
middle_end/middle_end.ml middle_end/flambda/flambda_middle_end.ml
middle_end/middle_end.mli middle_end/flambda/flambda_middle_end.mli
middle_end/parameter.ml middle_end/flambda/parameter.ml
middle_end/parameter.mli middle_end/flambda/parameter.mli
middle_end/pass_wrapper.ml middle_end/flambda/pass_wrapper.ml
middle_end/pass_wrapper.mli middle_end/flambda/pass_wrapper.mli
middle_end/projection.ml middle_end/flambda/projection.ml
middle_end/projection.mli middle_end/flambda/projection.mli
middle_end/ref_to_variables.ml middle_end/flambda/ref_to_variables.ml
middle_end/ref_to_variables.mli middle_end/flambda/ref_to_variables.mli
middle_end/remove_free_vars_equal_to_args.ml middle_end/flambda/remove_free_vars_equal_to_args.ml
middle_end/remove_free_vars_equal_to_args.mli middle_end/flambda/remove_free_vars_equal_to_args.mli
middle_end/remove_unused_arguments.ml middle_end/flambda/remove_unused_arguments.ml
middle_end/remove_unused_arguments.mli middle_end/flambda/remove_unused_arguments.mli
middle_end/remove_unused_closure_vars.ml middle_end/flambda/remove_unused_closure_vars.ml
middle_end/remove_unused_closure_vars.mli middle_end/flambda/remove_unused_closure_vars.mli
middle_end/remove_unused_program_constructs.ml middle_end/flambda/remove_unused_program_constructs.ml
middle_end/remove_unused_program_constructs.mli middle_end/flambda/remove_unused_program_constructs.mli
middle_end/share_constants.ml middle_end/flambda/share_constants.ml
middle_end/share_constants.mli middle_end/flambda/share_constants.mli
middle_end/simple_value_approx.ml middle_end/flambda/simple_value_approx.ml
middle_end/simple_value_approx.mli middle_end/flambda/simple_value_approx.mli
middle_end/simplify_boxed_integer_ops.ml middle_end/flambda/simplify_boxed_integer_ops.ml
middle_end/simplify_boxed_integer_ops.mli middle_end/flambda/simplify_boxed_integer_ops.mli
middle_end/simplify_boxed_integer_ops_intf.mli middle_end/flambda/simplify_boxed_integer_ops_intf.mli
middle_end/simplify_common.ml middle_end/flambda/simplify_common.ml
middle_end/simplify_common.mli middle_end/flambda/simplify_common.mli
middle_end/simplify_primitives.ml middle_end/flambda/simplify_primitives.ml
middle_end/simplify_primitives.mli middle_end/flambda/simplify_primitives.mli
middle_end/unbox_closures.ml middle_end/flambda/unbox_closures.ml
middle_end/unbox_closures.mli middle_end/flambda/unbox_closures.mli
middle_end/unbox_free_vars_of_closures.ml middle_end/flambda/unbox_free_vars_of_closures.ml
middle_end/unbox_free_vars_of_closures.mli middle_end/flambda/unbox_free_vars_of_closures.mli
middle_end/unbox_specialised_args.ml middle_end/flambda/unbox_specialised_args.ml
middle_end/unbox_specialised_args.mli middle_end/flambda/unbox_specialised_args.mli
+29
ocaml-variants.opam
··· 1 + opam-version: "2.0" 2 + version: "4.09.0+trunk" 3 + synopsis: "OCaml development version" 4 + depends: [ 5 + "ocaml" {= "4.09.0" & post} 6 + "base-unix" {post} 7 + "base-bigarray" {post} 8 + "base-threads" {post} 9 + ] 10 + conflict-class: "ocaml-core-compiler" 11 + flags: compiler 12 + setenv: CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs" 13 + build: [ 14 + ["./configure" "--prefix=%{prefix}%"] 15 + [make "-j%{jobs}%" "world"] 16 + [make "-j%{jobs}%" "world.opt"] 17 + ] 18 + install: [make "install"] 19 + maintainer: "caml-list@inria.fr" 20 + homepage: "https://github.com/ocaml/ocaml/" 21 + bug-reports: "https://github.com/ocaml/ocaml/issues" 22 + authors: [ 23 + "Xavier Leroy" 24 + "Damien Doligez" 25 + "Alain Frisch" 26 + "Jacques Garrigue" 27 + "Didier Rémy" 28 + "Jérôme Vouillon" 29 + ]
+1 -1
ocamldoc/Makefile
··· 495 495 496 496 .PHONY: clean 497 497 clean: 498 - rm -f *~ \#*\# 498 + rm -f \#*\# 499 499 rm -f $(OCAMLDOC) $(OCAMLDOC_OPT) *.cma *.cmxa *.cmo *.cmi *.cmx *.cmt *.cmti *.$(A) *.$(O) 500 500 rm -f odoc_parser.output odoc_text_parser.output 501 501 rm -f odoc_lexer.ml odoc_text_lexer.ml odoc_see_lexer.ml odoc_ocamlhtml.ml
+1 -1
ocamldoc/Makefile.docfiles
··· 32 32 otherlibs/$(UNIXLIB) otherlibs/dynlink \ 33 33 otherlibs/systhreads 34 34 35 - DOC_COMPILERLIBS_DIRS= parsing utils typing bytecomp driver 35 + DOC_COMPILERLIBS_DIRS= parsing utils typing bytecomp driver file_formats lambda 36 36 37 37 DOC_ALL_DIRS = $(DOC_COMPILERLIBS) $(DOC_STDLIB_DIRS) 38 38
+2
ocamltest/.depend
··· 86 86 variables.cmi 87 87 environments.cmo : \ 88 88 variables.cmi \ 89 + tsl_lexer.cmi \ 89 90 ocamltest_stdlib.cmi \ 90 91 environments.cmi 91 92 environments.cmx : \ 92 93 variables.cmx \ 94 + tsl_lexer.cmx \ 93 95 ocamltest_stdlib.cmx \ 94 96 environments.cmi 95 97 environments.cmi : \
+2 -2
ocamltest/Makefile
··· 96 96 run_command.mli run_command.ml \ 97 97 filecompare.mli filecompare.ml \ 98 98 variables.mli variables.ml \ 99 - environments.mli environments.ml \ 100 99 result.mli result.ml \ 101 100 actions.mli actions.ml \ 102 101 tests.mli tests.ml \ 103 102 tsl_ast.mli tsl_ast.ml \ 104 103 tsl_parser.mly \ 105 104 tsl_lexer.mli tsl_lexer.mll \ 105 + environments.mli environments.ml \ 106 106 tsl_semantics.mli tsl_semantics.ml \ 107 107 builtin_variables.mli builtin_variables.ml \ 108 108 actions_helpers.mli actions_helpers.ml \ ··· 168 168 native_modules := $(o_files) $(cmx_files) 169 169 170 170 directories := $(addprefix $(ROOTDIR)/,utils bytecomp parsing stdlib \ 171 - compilerlibs) 171 + compilerlibs file_formats) 172 172 173 173 include_directories := $(addprefix -I , $(directories)) 174 174
+23 -6
ocamltest/actions_helpers.ml
··· 205 205 log scriptenv in 206 206 let final_value = 207 207 if Result.is_pass result then begin 208 - let modifiers = Environments.modifiers_of_file response_file in 209 - let modified_env = Environments.apply_modifiers newenv modifiers in 210 - (result, modified_env) 208 + match Environments.modifiers_of_file response_file with 209 + | modifiers -> 210 + let modified_env = Environments.apply_modifiers newenv modifiers in 211 + (result, modified_env) 212 + | exception Failure reason -> 213 + (Result.fail_with_reason reason, newenv) 214 + | exception Variables.No_such_variable name -> 215 + let reason = 216 + Printf.sprintf "error in script response: unknown variable %s" name 217 + in 218 + (Result.fail_with_reason reason, newenv) 211 219 end else begin 212 220 let reason = String.trim (Sys.string_of_file response_file) in 213 221 let newresult = { result with Result.reason = Some reason } in ··· 240 248 } in let exit_status = run settings in 241 249 let final_value = match exit_status with 242 250 | 0 -> 243 - let modifiers = Environments.modifiers_of_file response_file in 244 - let modified_env = Environments.apply_modifiers hookenv modifiers in 245 - (Result.pass, modified_env) 251 + begin match Environments.modifiers_of_file response_file with 252 + | modifiers -> 253 + let modified_env = Environments.apply_modifiers hookenv modifiers in 254 + (Result.pass, modified_env) 255 + | exception Failure reason -> 256 + (Result.fail_with_reason reason, hookenv) 257 + | exception Variables.No_such_variable name -> 258 + let reason = 259 + Printf.sprintf "error in script response: unknown variable %s" name 260 + in 261 + (Result.fail_with_reason reason, hookenv) 262 + end 246 263 | _ -> 247 264 Printf.fprintf log "Hook returned %d" exit_status; 248 265 let reason = String.trim (Sys.string_of_file response_file) in
+11 -30
ocamltest/environments.ml
··· 144 144 List.fold_left apply_modifier environment modifiers 145 145 146 146 let modifier_of_string str = 147 - let invalid_argument = (Invalid_argument "modifier_of_string") in 148 - if str="" then raise invalid_argument else begin 149 - let l = String.length str in 150 - if str.[0] = '-' then begin 151 - let variable_name = String.sub str 1 (l-1) in 152 - match Variables.find_variable variable_name with 153 - | None -> raise (Variables.No_such_variable variable_name) 154 - | Some variable -> Remove variable 155 - end else begin match String.index_opt str '=' with 156 - | None -> raise invalid_argument 157 - | Some pos_eq -> if pos_eq <= 0 then raise invalid_argument else 158 - let (append, varname_length) = 159 - (match String.index_opt str '+' with 160 - | None -> (false, pos_eq) 161 - | Some pos_plus -> 162 - if pos_plus = pos_eq-1 163 - then (true, pos_plus) 164 - else raise invalid_argument) in 165 - let variable_name = String.sub str 0 varname_length in 166 - match Variables.find_variable variable_name with 167 - | None -> raise (Variables.No_such_variable variable_name) 168 - | Some variable -> 169 - if pos_eq >= l-2 || str.[pos_eq+1]<>'"' || str.[l-1]<>'"' 170 - then raise invalid_argument 171 - else let value_length = l - pos_eq - 3 in 172 - let value = String.sub str (pos_eq+2) value_length in 173 - if append then Append (variable, value) 174 - else Add (variable, value) 175 - end 176 - end 147 + let lexbuf = Lexing.from_string str in 148 + let variable_name, result = Tsl_lexer.modifier lexbuf in 149 + let variable = 150 + match Variables.find_variable variable_name with 151 + | None -> raise (Variables.No_such_variable variable_name) 152 + | Some variable -> variable 153 + in 154 + match result with 155 + | `Remove -> Remove variable 156 + | `Add value -> Add (variable, value) 157 + | `Append value -> Append (variable, value) 177 158 178 159 let modifiers_of_file filename = 179 160 let ic = open_in filename in
+1
ocamltest/ocaml_modifiers.ml
··· 98 98 let compilerlibs_subdirs = 99 99 [ 100 100 "utils"; "parsing"; "toplevel"; "typing"; "bytecomp"; "compilerlibs"; 101 + "file_formats"; "lambda"; 101 102 ] 102 103 103 104 let add_compiler_subdir subdir =
+2
ocamltest/tsl_lexer.mli
··· 16 16 (* Interface to the Tsl_lexer module *) 17 17 18 18 val token : Lexing.lexbuf -> Tsl_parser.token 19 + val modifier : 20 + Lexing.lexbuf -> string * [`Remove | `Add of string | `Append of string]
+13 -1
ocamltest/tsl_lexer.mll
··· 13 13 (* *) 14 14 (**************************************************************************) 15 15 16 - (* Lexer definitions for the Tests Specification Language *) 16 + (* Lexer definitions for the Tests Specification Language and for 17 + response files *) 17 18 18 19 { 19 20 open Tsl_parser ··· 114 115 { 115 116 comment lexbuf 116 117 } 118 + 119 + (* Parse one line of a response file (for scripts and hooks) *) 120 + and modifier = parse 121 + | '-' (identchar* as variable) 122 + { variable, `Remove } 123 + | (identchar* as variable) "=\"" (_* as str) '"' 124 + { variable, `Add str } 125 + | (identchar* as variable) "+=\"" (_* as str) '"' 126 + { variable, `Append str } 127 + | _ 128 + { failwith "syntax error in script response file" }
+5 -5
otherlibs/dynlink/Makefile
··· 70 70 parsing/asttypes.mli \ 71 71 parsing/parsetree.mli \ 72 72 typing/outcometree.mli \ 73 - bytecomp/cmo_format.mli \ 74 - asmcomp/cmxs_format.mli 73 + file_formats/cmo_format.mli \ 74 + file_formats/cmxs_format.mli 75 75 76 76 # .ml files from compilerlibs that have corresponding .mli files. 77 77 COMPILERLIBS_SOURCES=\ ··· 103 103 typing/subst.ml \ 104 104 typing/predef.ml \ 105 105 typing/datarepr.ml \ 106 - typing/cmi_format.ml \ 106 + file_formats/cmi_format.ml \ 107 107 typing/persistent_env.ml \ 108 108 typing/env.ml \ 109 - bytecomp/lambda.ml \ 109 + lambda/lambda.ml \ 110 + lambda/runtimedef.ml \ 110 111 bytecomp/instruct.ml \ 111 112 bytecomp/opcodes.ml \ 112 - bytecomp/runtimedef.ml \ 113 113 bytecomp/bytesections.ml \ 114 114 bytecomp/dll.ml \ 115 115 bytecomp/meta.ml \
+17 -14
otherlibs/dynlink/dune
··· 12 12 ;* * 13 13 ;************************************************************************** 14 14 15 - (library 16 - (name dynlink) 17 - (wrapped false) 18 - (modules dynlink dynlink_compilerlibs dynlink_common dynlink_types 19 - dynlink_platform_intf) 20 - ; the -33 is specific to the hackery done with dune. 21 - (flags (:standard -nostdlib -w -33)) 22 - (modules_without_implementation dynlink) 23 - (libraries ocamlcommon stdlib)) 24 - 25 - (rule 26 - (targets dynlink_compilerlibs.ml) 27 - (action (write-file %{targets} 28 - "(* empty because we are linking with ocamlcommon *)"))) 15 + ; mshinwell: Disabled: this needs to build in the same way as the 16 + ; Makefile does, with the [Dynlink_compilerlibs] pack. 17 + ; 18 + ; (library 19 + ; (name dynlink) 20 + ; (wrapped false) 21 + ; (modules dynlink dynlink_compilerlibs dynlink_common dynlink_types 22 + ; dynlink_platform_intf) 23 + ; ; the -33 is specific to the hackery done with dune. 24 + ; (flags (:standard -nostdlib -w -33)) 25 + ; (modules_without_implementation dynlink) 26 + ; (libraries ocamlcommon stdlib)) 27 + ; 28 + ; (rule 29 + ; (targets dynlink_compilerlibs.ml) 30 + ; (action (write-file %{targets} 31 + ; "(* empty because we are linking with ocamlcommon *)")))
+2
otherlibs/systhreads/st_stubs.c
··· 247 247 caml_thread_restore_runtime_state(); 248 248 } 249 249 250 + #if 0 250 251 static int caml_thread_try_leave_blocking_section(void) 251 252 { 252 253 /* Disable immediate processing of signals (PR#3659). ··· 255 256 polling. */ 256 257 return 0; 257 258 } 259 + #endif 258 260 259 261 /* Create and setup a new thread info block. 260 262 This block has no associated thread descriptor and
+1 -1
otherlibs/unix/mmap_ba.c
··· 29 29 static void caml_ba_mapped_finalize(value v) 30 30 { 31 31 struct caml_ba_array * b = Caml_ba_array_val(v); 32 - CAMLassert(b->flags & CAML_BA_MANAGED_MASK == CAML_BA_MAPPED_FILE); 32 + CAMLassert((b->flags & CAML_BA_MANAGED_MASK) == CAML_BA_MAPPED_FILE); 33 33 if (b->proxy == NULL) { 34 34 caml_ba_unmap_file(b->data, caml_ba_byte_size(b)); 35 35 } else {
+10 -4
parsing/location.ml
··· 190 190 if loc.loc_start.pos_fname = "" then !input_name 191 191 else loc.loc_start.pos_fname 192 192 in 193 - let line = loc.loc_start.pos_lnum in 193 + let startline = loc.loc_start.pos_lnum in 194 + let endline = loc.loc_end.pos_lnum in 194 195 let startchar = loc.loc_start.pos_cnum - loc.loc_start.pos_bol in 195 - let endchar = loc.loc_end.pos_cnum - loc.loc_start.pos_bol in 196 + let endchar = loc.loc_end.pos_cnum - loc.loc_end.pos_bol in 196 197 197 198 let first = ref true in 198 199 let capitalize s = ··· 210 211 existing setup of editors that parse locations in error messages (e.g. 211 212 Emacs). *) 212 213 comma (); 213 - Format.fprintf ppf "%s %i" (capitalize "line") 214 - (if line_valid line then line else 1); 214 + let startline = if line_valid startline then startline else 1 in 215 + let endline = if line_valid endline then endline else startline in 216 + begin if startline = endline then 217 + Format.fprintf ppf "%s %i" (capitalize "line") startline 218 + else 219 + Format.fprintf ppf "%s %i-%i" (capitalize "lines") startline endline 220 + end; 215 221 216 222 if chars_valid ~startchar ~endchar then ( 217 223 comma ();
+5 -3
parsing/pprintast.ml
··· 471 471 | Ppat_constraint (p, ct) -> 472 472 pp f "@[<2>(%a@;:@;%a)@]" (pattern1 ctxt) p (core_type ctxt) ct 473 473 | Ppat_lazy p -> 474 - pp f "@[<2>(lazy@;%a)@]" (pattern1 ctxt) p 474 + pp f "@[<2>(lazy@;%a)@]" (simple_pattern ctxt) p 475 475 | Ppat_exception p -> 476 476 pp f "@[<2>exception@;%a@]" (pattern1 ctxt) p 477 477 | Ppat_effect(p1, p2) -> ··· 588 588 (attributes ctxt) x.pexp_attributes 589 589 else match x.pexp_desc with 590 590 | Pexp_function _ | Pexp_fun _ | Pexp_match _ | Pexp_try _ | Pexp_sequence _ 591 + | Pexp_newtype _ 591 592 when ctxt.pipe || ctxt.semi -> 592 593 paren true (expression reset_ctxt) f x 593 594 | Pexp_ifthenelse _ | Pexp_sequence _ when ctxt.ifthenelse -> ··· 599 600 | Pexp_fun (l, e0, p, e) -> 600 601 pp f "@[<2>fun@;%a->@;%a@]" 601 602 (label_exp ctxt) (l, e0, p) 603 + (expression ctxt) e 604 + | Pexp_newtype (lid, e) -> 605 + pp f "@[<2>fun@;(type@;%s)@;->@;%a@]" lid.txt 602 606 (expression ctxt) e 603 607 | Pexp_function l -> 604 608 pp f "@[<hv>function%a@]" (case_list ctxt) l ··· 764 768 | Pexp_constant c -> constant f c; 765 769 | Pexp_pack me -> 766 770 pp f "(module@;%a)" (module_expr ctxt) me 767 - | Pexp_newtype (lid, e) -> 768 - pp f "fun@;(type@;%s)@;->@;%a" lid.txt (expression ctxt) e 769 771 | Pexp_tuple l -> 770 772 pp f "@[<hov2>(%a)@]" (list (simple_expr ctxt) ~sep:",@;") l 771 773 | Pexp_constraint (e, ct) ->
-340
runtime/.depend
··· 2466 2466 caml/domain_state.tbl caml/domain.h caml/memory.h caml/gc.h \ 2467 2467 caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/fail.h \ 2468 2468 caml/shared_heap.h caml/roots.h caml/weak.h 2469 - addrmap_np.$(O): addrmap.c caml/config.h caml/m.h caml/s.h caml/memory.h \ 2470 - caml/domain.h caml/misc.h caml/camlatomic.h caml/mlvalues.h \ 2471 - caml/domain_state.h caml/domain_state.tbl caml/alloc.h caml/addrmap.h 2472 - afl_np.$(O): afl.c caml/config.h caml/m.h caml/s.h caml/misc.h \ 2473 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2474 - caml/domain_state.tbl caml/osdeps.h caml/memory.h caml/gc.h \ 2475 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2476 - caml/alloc.h 2477 - alloc_np.$(O): alloc.c caml/alloc.h caml/misc.h caml/config.h caml/m.h caml/s.h \ 2478 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2479 - caml/domain_state.tbl caml/custom.h caml/major_gc.h caml/memory.h \ 2480 - caml/gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h caml/fiber.h \ 2481 - caml/roots.h 2482 - array_np.$(O): array.c caml/alloc.h caml/misc.h caml/config.h caml/m.h caml/s.h \ 2483 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2484 - caml/domain_state.tbl caml/fail.h caml/memory.h caml/gc.h \ 2485 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2486 - caml/signals.h caml/spacetime.h caml/io.h caml/platform.h caml/stack.h 2487 - backtrace_np.$(O): backtrace.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2488 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2489 - caml/domain_state.tbl caml/memory.h caml/gc.h caml/major_gc.h \ 2490 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/backtrace.h \ 2491 - caml/exec.h caml/backtrace_prim.h caml/fail.h 2492 - backtrace_byt_np.$(O): backtrace_byt.c caml/config.h caml/m.h caml/s.h \ 2493 - caml/mlvalues.h caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2494 - caml/domain_state.tbl caml/alloc.h caml/custom.h caml/io.h \ 2495 - caml/platform.h caml/memory.h caml/gc.h caml/major_gc.h \ 2496 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/instruct.h \ 2497 - caml/intext.h caml/exec.h caml/fix_code.h caml/startup.h \ 2498 - caml/startup_aux.h caml/fiber.h caml/roots.h caml/sys.h \ 2499 - caml/backtrace.h caml/fail.h caml/backtrace_prim.h 2500 - backtrace_nat_np.$(O): backtrace_nat.c caml/alloc.h caml/misc.h caml/config.h \ 2501 - caml/m.h caml/s.h caml/camlatomic.h caml/mlvalues.h \ 2502 - caml/domain_state.h caml/domain_state.tbl caml/backtrace.h caml/exec.h \ 2503 - caml/backtrace_prim.h frame_descriptors.h caml/stack.h caml/memory.h \ 2504 - caml/gc.h caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2505 - caml/fiber.h caml/roots.h caml/fail.h 2506 - bigarray_np.$(O): bigarray.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2507 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2508 - caml/domain_state.tbl caml/bigarray.h caml/custom.h caml/fail.h \ 2509 - caml/intext.h caml/io.h caml/platform.h caml/memory.h caml/gc.h \ 2510 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2511 - caml/hash.h caml/signals.h 2512 - callback_np.$(O): callback.c caml/callback.h caml/mlvalues.h caml/config.h \ 2513 - caml/m.h caml/s.h caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2514 - caml/domain_state.tbl caml/memory.h caml/gc.h caml/major_gc.h \ 2515 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h caml/fail.h \ 2516 - caml/platform.h caml/fiber.h caml/roots.h 2517 - clambda_checks_np.$(O): clambda_checks.c caml/mlvalues.h caml/config.h caml/m.h \ 2518 - caml/s.h caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2519 - caml/domain_state.tbl 2520 - compare_np.$(O): compare.c caml/custom.h caml/mlvalues.h caml/config.h caml/m.h \ 2521 - caml/s.h caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2522 - caml/domain_state.tbl caml/fail.h caml/memory.h caml/gc.h \ 2523 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2524 - caml/alloc.h 2525 - custom_np.$(O): custom.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2526 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2527 - caml/domain_state.tbl caml/custom.h caml/fail.h caml/gc_ctrl.h \ 2528 - caml/memory.h caml/gc.h caml/major_gc.h caml/minor_gc.h caml/addrmap.h \ 2529 - caml/domain.h caml/shared_heap.h caml/roots.h caml/signals.h 2530 - debugger_np.$(O): debugger.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2531 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2532 - caml/domain_state.tbl caml/debugger.h caml/memory.h caml/gc.h \ 2533 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2534 - caml/osdeps.h 2535 - domain_np.$(O): domain.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2536 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2537 - caml/domain_state.tbl caml/domain.h caml/memory.h caml/gc.h \ 2538 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/platform.h \ 2539 - caml/custom.h caml/shared_heap.h caml/roots.h caml/fail.h \ 2540 - caml/globroots.h caml/signals.h caml/startup.h caml/exec.h \ 2541 - caml/startup_aux.h caml/fiber.h caml/callback.h caml/eventlog.h \ 2542 - caml/gc_ctrl.h caml/osdeps.h caml/weak.h caml/finalise.h 2543 - dynlink_np.$(O): dynlink.c caml/config.h caml/m.h caml/s.h caml/alloc.h \ 2544 - caml/misc.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2545 - caml/domain_state.tbl caml/dynlink.h caml/fail.h caml/memory.h \ 2546 - caml/gc.h caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2547 - caml/osdeps.h caml/prims.h caml/signals.h 2548 - dynlink_nat_np.$(O): dynlink_nat.c caml/misc.h caml/config.h caml/m.h caml/s.h \ 2549 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2550 - caml/domain_state.tbl caml/memory.h caml/gc.h caml/major_gc.h \ 2551 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h caml/stack.h \ 2552 - caml/callback.h caml/intext.h caml/io.h caml/platform.h caml/osdeps.h \ 2553 - caml/fail.h frame_descriptors.h caml/globroots.h caml/roots.h \ 2554 - caml/signals.h caml/hooks.h 2555 - eventlog_np.$(O): eventlog.c caml/domain.h caml/config.h caml/m.h caml/s.h \ 2556 - caml/mlvalues.h caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2557 - caml/domain_state.tbl caml/memory.h caml/gc.h caml/major_gc.h \ 2558 - caml/minor_gc.h caml/addrmap.h caml/alloc.h caml/eventlog.h \ 2559 - caml/osdeps.h caml/platform.h caml/startup_aux.h 2560 - extern_np.$(O): extern.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2561 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2562 - caml/domain_state.tbl caml/custom.h caml/fail.h caml/gc.h \ 2563 - caml/intext.h caml/io.h caml/platform.h caml/memory.h caml/major_gc.h \ 2564 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/md5.h caml/reverse.h 2565 - fail_byt_np.$(O): fail_byt.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2566 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2567 - caml/domain_state.tbl caml/fail.h caml/io.h caml/platform.h \ 2568 - caml/memory.h caml/gc.h caml/major_gc.h caml/minor_gc.h caml/addrmap.h \ 2569 - caml/domain.h caml/printexc.h caml/signals.h caml/fiber.h caml/roots.h 2570 - fail_nat_np.$(O): fail_nat.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2571 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2572 - caml/domain_state.tbl caml/fail.h caml/io.h caml/platform.h \ 2573 - caml/memory.h caml/gc.h caml/major_gc.h caml/minor_gc.h caml/addrmap.h \ 2574 - caml/domain.h caml/printexc.h caml/signals.h caml/stack.h caml/roots.h \ 2575 - caml/callback.h 2576 - fiber_np.$(O): fiber.c caml/misc.h caml/config.h caml/m.h caml/s.h \ 2577 - caml/camlatomic.h caml/fiber.h caml/mlvalues.h caml/domain_state.h \ 2578 - caml/domain_state.tbl caml/memory.h caml/gc.h caml/major_gc.h \ 2579 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h caml/roots.h \ 2580 - caml/gc_ctrl.h caml/instruct.h caml/fail.h caml/platform.h \ 2581 - caml/fix_code.h caml/shared_heap.h caml/startup_aux.h caml/stack.h \ 2582 - frame_descriptors.h 2583 - finalise_np.$(O): finalise.c caml/callback.h caml/mlvalues.h caml/config.h \ 2584 - caml/m.h caml/s.h caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2585 - caml/domain_state.tbl caml/memory.h caml/gc.h caml/major_gc.h \ 2586 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h \ 2587 - caml/eventlog.h caml/fail.h caml/finalise.h caml/roots.h \ 2588 - caml/shared_heap.h 2589 - fix_code_np.$(O): fix_code.c caml/config.h caml/m.h caml/s.h caml/debugger.h \ 2590 - caml/misc.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2591 - caml/domain_state.tbl caml/fix_code.h caml/instruct.h caml/intext.h \ 2592 - caml/io.h caml/platform.h caml/memory.h caml/gc.h caml/major_gc.h \ 2593 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h caml/md5.h \ 2594 - caml/reverse.h 2595 - floats_np.$(O): floats.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2596 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2597 - caml/domain_state.tbl caml/fail.h caml/memory.h caml/gc.h \ 2598 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2599 - caml/reverse.h caml/fiber.h caml/roots.h 2600 - frame_descriptors_np.$(O): frame_descriptors.c frame_descriptors.h \ 2601 - caml/config.h caml/m.h caml/s.h caml/platform.h caml/mlvalues.h \ 2602 - caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2603 - caml/domain_state.tbl caml/memory.h caml/gc.h caml/major_gc.h \ 2604 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h 2605 - gc_ctrl_np.$(O): gc_ctrl.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2606 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2607 - caml/domain_state.tbl caml/custom.h caml/finalise.h caml/roots.h \ 2608 - caml/memory.h caml/gc.h caml/major_gc.h caml/minor_gc.h caml/addrmap.h \ 2609 - caml/domain.h caml/gc_ctrl.h caml/shared_heap.h caml/stack.h \ 2610 - frame_descriptors.h caml/globroots.h caml/signals.h caml/startup.h \ 2611 - caml/exec.h caml/startup_aux.h caml/eventlog.h caml/fail.h 2612 - globroots_np.$(O): globroots.c caml/memory.h caml/config.h caml/m.h caml/s.h \ 2613 - caml/gc.h caml/mlvalues.h caml/misc.h caml/camlatomic.h \ 2614 - caml/domain_state.h caml/domain_state.tbl caml/major_gc.h \ 2615 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h caml/roots.h \ 2616 - caml/globroots.h caml/callback.h caml/platform.h caml/shared_heap.h \ 2617 - caml/stack.h 2618 - hash_np.$(O): hash.c caml/mlvalues.h caml/config.h caml/m.h caml/s.h \ 2619 - caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2620 - caml/domain_state.tbl caml/custom.h caml/memory.h caml/gc.h \ 2621 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2622 - caml/alloc.h caml/hash.h caml/fail.h 2623 - instrtrace_np.$(O): instrtrace.c 2624 - intern_np.$(O): intern.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2625 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2626 - caml/domain_state.tbl caml/callback.h caml/memory.h caml/gc.h \ 2627 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2628 - caml/custom.h caml/fail.h caml/intext.h caml/io.h caml/platform.h \ 2629 - caml/md5.h caml/reverse.h 2630 - interp_np.$(O): interp.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2631 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2632 - caml/domain_state.tbl caml/backtrace.h caml/exec.h caml/callback.h \ 2633 - caml/memory.h caml/gc.h caml/major_gc.h caml/minor_gc.h caml/addrmap.h \ 2634 - caml/domain.h caml/debugger.h caml/fail.h caml/fix_code.h \ 2635 - caml/instrtrace.h caml/instruct.h caml/interp.h caml/prims.h \ 2636 - caml/signals.h caml/fiber.h caml/roots.h caml/globroots.h \ 2637 - caml/startup.h caml/startup_aux.h caml/jumptbl.h 2638 - ints_np.$(O): ints.c caml/alloc.h caml/misc.h caml/config.h caml/m.h caml/s.h \ 2639 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2640 - caml/domain_state.tbl caml/custom.h caml/fail.h caml/intext.h \ 2641 - caml/io.h caml/platform.h caml/memory.h caml/gc.h caml/major_gc.h \ 2642 - caml/minor_gc.h caml/addrmap.h caml/domain.h 2643 - io_np.$(O): io.c caml/config.h caml/m.h caml/s.h caml/alloc.h caml/misc.h \ 2644 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2645 - caml/domain_state.tbl caml/custom.h caml/fail.h caml/io.h \ 2646 - caml/platform.h caml/memory.h caml/gc.h caml/major_gc.h \ 2647 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/osdeps.h \ 2648 - caml/signals.h caml/sys.h 2649 - lexing_np.$(O): lexing.c caml/fail.h caml/misc.h caml/config.h caml/m.h \ 2650 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2651 - caml/domain_state.tbl caml/fiber.h caml/memory.h caml/gc.h \ 2652 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2653 - caml/alloc.h caml/roots.h 2654 - main_np.$(O): main.c caml/misc.h caml/config.h caml/m.h caml/s.h \ 2655 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2656 - caml/domain_state.tbl caml/sys.h caml/osdeps.h caml/memory.h caml/gc.h \ 2657 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2658 - caml/alloc.h 2659 - major_gc_np.$(O): major_gc.c caml/addrmap.h caml/mlvalues.h caml/config.h \ 2660 - caml/m.h caml/s.h caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2661 - caml/domain_state.tbl caml/domain.h caml/memory.h caml/gc.h \ 2662 - caml/major_gc.h caml/minor_gc.h caml/alloc.h caml/eventlog.h \ 2663 - caml/fail.h caml/fiber.h caml/roots.h caml/finalise.h caml/globroots.h \ 2664 - caml/platform.h caml/shared_heap.h caml/startup_aux.h caml/weak.h 2665 - md5_np.$(O): md5.c caml/alloc.h caml/misc.h caml/config.h caml/m.h caml/s.h \ 2666 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2667 - caml/domain_state.tbl caml/fail.h caml/md5.h caml/io.h caml/platform.h \ 2668 - caml/memory.h caml/gc.h caml/major_gc.h caml/minor_gc.h caml/addrmap.h \ 2669 - caml/domain.h caml/reverse.h 2670 - memory_np.$(O): memory.c caml/config.h caml/m.h caml/s.h caml/misc.h \ 2671 - caml/camlatomic.h caml/fail.h caml/mlvalues.h caml/domain_state.h \ 2672 - caml/domain_state.tbl caml/memory.h caml/gc.h caml/major_gc.h \ 2673 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h \ 2674 - caml/shared_heap.h caml/roots.h caml/fiber.h caml/platform.h \ 2675 - caml/eventlog.h 2676 - meta_np.$(O): meta.c caml/alloc.h caml/misc.h caml/config.h caml/m.h caml/s.h \ 2677 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2678 - caml/domain_state.tbl caml/fail.h caml/fix_code.h caml/interp.h \ 2679 - caml/intext.h caml/io.h caml/platform.h caml/memory.h caml/gc.h \ 2680 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2681 - caml/prims.h caml/fiber.h caml/roots.h caml/startup_aux.h \ 2682 - caml/backtrace_prim.h caml/backtrace.h caml/exec.h 2683 - minor_gc_np.$(O): minor_gc.c caml/addrmap.h caml/mlvalues.h caml/config.h \ 2684 - caml/m.h caml/s.h caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2685 - caml/domain_state.tbl caml/custom.h caml/domain.h caml/memory.h \ 2686 - caml/gc.h caml/major_gc.h caml/minor_gc.h caml/alloc.h caml/eventlog.h \ 2687 - caml/fail.h caml/fiber.h caml/roots.h caml/finalise.h caml/gc_ctrl.h \ 2688 - caml/platform.h caml/shared_heap.h caml/signals.h caml/startup_aux.h \ 2689 - caml/weak.h 2690 - misc_np.$(O): misc.c caml/config.h caml/m.h caml/s.h caml/misc.h \ 2691 - caml/camlatomic.h caml/memory.h caml/gc.h caml/mlvalues.h \ 2692 - caml/domain_state.h caml/domain_state.tbl caml/major_gc.h \ 2693 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h \ 2694 - caml/osdeps.h caml/version.h caml/startup.h caml/exec.h \ 2695 - caml/startup_aux.h 2696 - obj_np.$(O): obj.c caml/camlatomic.h caml/config.h caml/m.h caml/s.h \ 2697 - caml/misc.h caml/alloc.h caml/mlvalues.h caml/domain_state.h \ 2698 - caml/domain_state.tbl caml/fail.h caml/gc.h caml/interp.h \ 2699 - caml/major_gc.h caml/memory.h caml/minor_gc.h caml/addrmap.h \ 2700 - caml/domain.h caml/prims.h caml/platform.h caml/spacetime.h caml/io.h \ 2701 - caml/stack.h 2702 - parsing_np.$(O): parsing.c caml/config.h caml/m.h caml/s.h caml/mlvalues.h \ 2703 - caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2704 - caml/domain_state.tbl caml/memory.h caml/gc.h caml/major_gc.h \ 2705 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h \ 2706 - caml/startup.h caml/exec.h caml/startup_aux.h 2707 - platform_np.$(O): platform.c caml/platform.h caml/mlvalues.h caml/config.h \ 2708 - caml/m.h caml/s.h caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2709 - caml/domain_state.tbl caml/memory.h caml/gc.h caml/major_gc.h \ 2710 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h caml/fail.h 2711 - prims_np.$(O): prims.c caml/mlvalues.h caml/config.h caml/m.h caml/s.h \ 2712 - caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2713 - caml/domain_state.tbl caml/prims.h 2714 - printexc_np.$(O): printexc.c caml/backtrace.h caml/mlvalues.h caml/config.h \ 2715 - caml/m.h caml/s.h caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2716 - caml/domain_state.tbl caml/exec.h caml/callback.h caml/memory.h \ 2717 - caml/gc.h caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2718 - caml/alloc.h caml/debugger.h caml/fail.h caml/printexc.h 2719 - roots_np.$(O): roots.c caml/finalise.h caml/roots.h caml/misc.h caml/config.h \ 2720 - caml/m.h caml/s.h caml/camlatomic.h caml/memory.h caml/gc.h \ 2721 - caml/mlvalues.h caml/domain_state.h caml/domain_state.tbl \ 2722 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2723 - caml/alloc.h caml/globroots.h caml/shared_heap.h caml/fiber.h \ 2724 - caml/stack.h 2725 - shared_heap_np.$(O): shared_heap.c caml/addrmap.h caml/mlvalues.h caml/config.h \ 2726 - caml/m.h caml/s.h caml/misc.h caml/camlatomic.h caml/domain_state.h \ 2727 - caml/domain_state.tbl caml/custom.h caml/fail.h caml/fiber.h \ 2728 - caml/memory.h caml/gc.h caml/major_gc.h caml/minor_gc.h caml/domain.h \ 2729 - caml/alloc.h caml/roots.h caml/globroots.h caml/platform.h \ 2730 - caml/shared_heap.h caml/sizeclasses.h caml/startup_aux.h 2731 - signals_np.$(O): signals.c caml/alloc.h caml/misc.h caml/config.h caml/m.h \ 2732 - caml/s.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2733 - caml/domain_state.tbl caml/callback.h caml/memory.h caml/gc.h \ 2734 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2735 - caml/fail.h caml/roots.h caml/signals.h caml/sys.h 2736 - signals_byt_np.$(O): signals_byt.c caml/config.h caml/m.h caml/s.h \ 2737 - caml/memory.h caml/gc.h caml/mlvalues.h caml/misc.h caml/camlatomic.h \ 2738 - caml/domain_state.h caml/domain_state.tbl caml/major_gc.h \ 2739 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h \ 2740 - caml/osdeps.h caml/signals.h 2741 - signals_nat_np.$(O): signals_nat.c caml/fail.h caml/misc.h caml/config.h \ 2742 - caml/m.h caml/s.h caml/camlatomic.h caml/mlvalues.h \ 2743 - caml/domain_state.h caml/domain_state.tbl caml/memory.h caml/gc.h \ 2744 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2745 - caml/alloc.h caml/osdeps.h caml/signals.h caml/stack.h \ 2746 - caml/spacetime.h caml/io.h caml/platform.h 2747 - spacetime_byt_np.$(O): spacetime_byt.c caml/fail.h caml/misc.h caml/config.h \ 2748 - caml/m.h caml/s.h caml/camlatomic.h caml/mlvalues.h \ 2749 - caml/domain_state.h caml/domain_state.tbl 2750 - spacetime_nat_np.$(O): spacetime_nat.c caml/config.h caml/m.h caml/s.h \ 2751 - caml/alloc.h caml/misc.h caml/camlatomic.h caml/mlvalues.h \ 2752 - caml/domain_state.h caml/domain_state.tbl caml/fail.h caml/gc.h \ 2753 - caml/intext.h caml/io.h caml/platform.h caml/memory.h caml/major_gc.h \ 2754 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/osdeps.h \ 2755 - caml/roots.h caml/signals.h caml/stack.h caml/sys.h caml/spacetime.h 2756 - spacetime_snapshot_np.$(O): spacetime_snapshot.c caml/alloc.h caml/misc.h \ 2757 - caml/config.h caml/m.h caml/s.h caml/camlatomic.h caml/mlvalues.h \ 2758 - caml/domain_state.h caml/domain_state.tbl caml/custom.h caml/fail.h \ 2759 - caml/gc.h caml/gc_ctrl.h caml/intext.h caml/io.h caml/platform.h \ 2760 - caml/memory.h caml/major_gc.h caml/minor_gc.h caml/addrmap.h \ 2761 - caml/domain.h caml/roots.h caml/signals.h caml/stack.h caml/sys.h \ 2762 - caml/spacetime.h 2763 - startup_aux_np.$(O): startup_aux.c caml/backtrace.h caml/mlvalues.h \ 2764 - caml/config.h caml/m.h caml/s.h caml/misc.h caml/camlatomic.h \ 2765 - caml/domain_state.h caml/domain_state.tbl caml/exec.h caml/dynlink.h \ 2766 - caml/memory.h caml/gc.h caml/major_gc.h caml/minor_gc.h caml/addrmap.h \ 2767 - caml/domain.h caml/alloc.h caml/callback.h caml/osdeps.h caml/prims.h \ 2768 - caml/startup_aux.h caml/version.h 2769 - startup_byt_np.$(O): startup_byt.c caml/config.h caml/m.h caml/s.h caml/alloc.h \ 2770 - caml/misc.h caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2771 - caml/domain_state.tbl caml/backtrace.h caml/exec.h caml/callback.h \ 2772 - caml/memory.h caml/gc.h caml/major_gc.h caml/minor_gc.h caml/addrmap.h \ 2773 - caml/domain.h caml/custom.h caml/debugger.h caml/dynlink.h \ 2774 - caml/eventlog.h caml/fail.h caml/fix_code.h caml/gc_ctrl.h \ 2775 - caml/instrtrace.h caml/interp.h caml/intext.h caml/io.h \ 2776 - caml/platform.h caml/osdeps.h caml/startup_aux.h caml/prims.h \ 2777 - caml/printexc.h caml/reverse.h caml/signals.h caml/fiber.h \ 2778 - caml/roots.h caml/sys.h caml/startup.h caml/version.h 2779 - startup_nat_np.$(O): startup_nat.c caml/callback.h caml/mlvalues.h \ 2780 - caml/config.h caml/m.h caml/s.h caml/misc.h caml/camlatomic.h \ 2781 - caml/domain_state.h caml/domain_state.tbl caml/memory.h caml/gc.h \ 2782 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h \ 2783 - caml/alloc.h caml/backtrace.h caml/exec.h caml/custom.h \ 2784 - caml/debugger.h caml/fail.h caml/gc_ctrl.h caml/intext.h caml/io.h \ 2785 - caml/platform.h caml/osdeps.h caml/printexc.h caml/stack.h caml/sys.h \ 2786 - caml/startup_aux.h caml/fiber.h caml/roots.h 2787 - str_np.$(O): str.c caml/alloc.h caml/misc.h caml/config.h caml/m.h caml/s.h \ 2788 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2789 - caml/domain_state.tbl caml/fail.h caml/memory.h caml/gc.h \ 2790 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/domain.h 2791 - sys_np.$(O): sys.c caml/config.h caml/m.h caml/s.h caml/alloc.h caml/misc.h \ 2792 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2793 - caml/domain_state.tbl caml/debugger.h caml/fail.h caml/gc_ctrl.h \ 2794 - caml/io.h caml/platform.h caml/memory.h caml/gc.h caml/major_gc.h \ 2795 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/osdeps.h \ 2796 - caml/signals.h caml/fiber.h caml/roots.h caml/sys.h caml/startup.h \ 2797 - caml/exec.h caml/startup_aux.h caml/version.h caml/callback.h \ 2798 - caml/shared_heap.h 2799 - unix_np.$(O): unix.c caml/config.h caml/m.h caml/s.h caml/fail.h caml/misc.h \ 2800 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2801 - caml/domain_state.tbl caml/memory.h caml/gc.h caml/major_gc.h \ 2802 - caml/minor_gc.h caml/addrmap.h caml/domain.h caml/alloc.h \ 2803 - caml/osdeps.h caml/signals.h caml/sys.h caml/io.h caml/platform.h 2804 - weak_np.$(O): weak.c caml/alloc.h caml/misc.h caml/config.h caml/m.h caml/s.h \ 2805 - caml/camlatomic.h caml/mlvalues.h caml/domain_state.h \ 2806 - caml/domain_state.tbl caml/domain.h caml/memory.h caml/gc.h \ 2807 - caml/major_gc.h caml/minor_gc.h caml/addrmap.h caml/fail.h \ 2808 - caml/shared_heap.h caml/roots.h caml/weak.h 2809 2469 addrmap_npic.$(O): addrmap.c caml/config.h caml/m.h caml/s.h caml/memory.h \ 2810 2470 caml/domain.h caml/misc.h caml/camlatomic.h caml/mlvalues.h \ 2811 2471 caml/domain_state.h caml/domain_state.tbl caml/alloc.h caml/addrmap.h
+2 -5
runtime/Makefile
··· 82 82 endif 83 83 84 84 ifeq "$(UNIX_OR_WIN32)" "unix" 85 - ifeq "$(SUPPORTS_BYTECODE_SHARED_LIBRARIES)" "true" 85 + ifeq "$(SUPPORTS_SHARED_LIBRARIES)" "true" 86 86 BYTECODE_STATIC_LIBRARIES += libcamlrun_pic.$(A) 87 87 BYTECODE_SHARED_LIBRARIES += libcamlrun_shared.$(SO) 88 - endif 89 - ifeq "$(SUPPORTS_NATIVE_SHARED_LIBRARIES)" "true" 90 88 NATIVE_STATIC_LIBRARIES += libasmrun_pic.$(A) 91 89 NATIVE_SHARED_LIBRARIES += libasmrun_shared.$(SO) 92 90 endif ··· 111 109 112 110 libasmruni_OBJECTS := $(NATIVE_C_SOURCES:.c=_ni.$(O)) $(ASM_OBJECTS) 113 111 114 - libasmrunpic_OBJECTS := $(NATIVE_C_SOURCESS:.c=_npic.$(O)) \ 112 + libasmrunpic_OBJECTS := $(NATIVE_C_SOURCES:.c=_npic.$(O)) \ 115 113 $(ASM_OBJECTS:.$(O)=_libasmrunpic.$(O)) 116 114 117 115 # General (non target-specific) assembler and compiler flags ··· 216 214 217 215 .PHONY: distclean 218 216 distclean: clean 219 - rm -r *~ 220 217 221 218 # Generated non-object files 222 219
+13 -4
runtime/bigarray.c
··· 162 162 break; 163 163 case CAML_BA_MAPPED_FILE: 164 164 /* Bigarrays for mapped files use a different finalization method */ 165 + /* fallthrough */ 165 166 default: 166 167 CAMLassert(0); 167 168 } ··· 936 937 CAMLprim value caml_ba_slice(value vb, value vind) 937 938 { 938 939 CAMLparam2 (vb, vind); 939 - #define b ((struct caml_ba_array *) Caml_ba_array_val(vb)) 940 + #define b (Caml_ba_array_val(vb)) 940 941 CAMLlocal1 (res); 941 942 intnat index[CAML_BA_MAX_NUM_DIMS]; 942 943 int num_inds, i; ··· 968 969 offset * caml_ba_element_size[b->flags & CAML_BA_KIND_MASK]; 969 970 /* Allocate an OCaml bigarray to hold the result */ 970 971 res = caml_ba_alloc(b->flags, b->num_dims - num_inds, sub_data, sub_dims); 972 + /* Copy the finalization function from the original array (PR#8568) */ 973 + Custom_ops_val(res) = Custom_ops_val(vb); 971 974 /* Create or update proxy in case of managed bigarray */ 972 975 caml_ba_update_proxy(b, Caml_ba_array_val(res)); 973 976 /* Return result */ ··· 982 985 { 983 986 CAMLparam2 (vb, vlayout); 984 987 CAMLlocal1 (res); 985 - #define b ((struct caml_ba_array *) Caml_ba_array_val(vb)) 988 + #define b (Caml_ba_array_val(vb)) 986 989 /* if the layout is different, change the flags and reverse the dimensions */ 987 990 if (Caml_ba_layout_val(vlayout) != (b->flags & CAML_BA_LAYOUT_MASK)) { 988 991 /* change the flags to reflect the new layout */ ··· 993 996 unsigned int i; 994 997 for(i = 0; i < b->num_dims; i++) new_dim[i] = b->dim[b->num_dims - i - 1]; 995 998 res = caml_ba_alloc(flags, b->num_dims, b->data, new_dim); 999 + /* Copy the finalization function from the original array (PR#8568) */ 1000 + Custom_ops_val(res) = Custom_ops_val(vb); 996 1001 caml_ba_update_proxy(b, Caml_ba_array_val(res)); 997 1002 CAMLreturn(res); 998 1003 } else { ··· 1009 1014 { 1010 1015 CAMLparam3 (vb, vofs, vlen); 1011 1016 CAMLlocal1 (res); 1012 - #define b ((struct caml_ba_array *) Caml_ba_array_val(vb)) 1017 + #define b (Caml_ba_array_val(vb)) 1013 1018 intnat ofs = Long_val(vofs); 1014 1019 intnat len = Long_val(vlen); 1015 1020 int i, changed_dim; ··· 1036 1041 ofs * mul * caml_ba_element_size[b->flags & CAML_BA_KIND_MASK]; 1037 1042 /* Allocate an OCaml bigarray to hold the result */ 1038 1043 res = caml_ba_alloc(b->flags, b->num_dims, sub_data, b->dim); 1044 + /* Copy the finalization function from the original array (PR#8568) */ 1045 + Custom_ops_val(res) = Custom_ops_val(vb); 1039 1046 /* Doctor the changed dimension */ 1040 1047 Caml_ba_array_val(res)->dim[changed_dim] = len; 1041 1048 /* Create or update proxy in case of managed bigarray */ ··· 1189 1196 { 1190 1197 CAMLparam2 (vb, vdim); 1191 1198 CAMLlocal1 (res); 1192 - #define b ((struct caml_ba_array *) Caml_ba_array_val(vb)) 1199 + #define b (Caml_ba_array_val(vb)) 1193 1200 intnat dim[CAML_BA_MAX_NUM_DIMS]; 1194 1201 mlsize_t num_dims; 1195 1202 uintnat num_elts; ··· 1211 1218 caml_invalid_argument("Bigarray.reshape: size mismatch"); 1212 1219 /* Create bigarray with same data and new dimensions */ 1213 1220 res = caml_ba_alloc(b->flags, num_dims, b->data, dim); 1221 + /* Copy the finalization function from the original array (PR#8568) */ 1222 + Custom_ops_val(res) = Custom_ops_val(vb); 1214 1223 /* Create or update proxy in case of managed bigarray */ 1215 1224 caml_ba_update_proxy(b, Caml_ba_array_val(res)); 1216 1225 /* Return result */
+6 -2
runtime/caml/misc.h
··· 256 256 257 257 #ifdef _WIN32 258 258 259 - #define _T(x) L ## x 259 + #ifdef CAML_INTERNALS 260 + #define T(x) L ## x 261 + #endif 260 262 261 263 #define access_os _waccess 262 264 #define open_os _wopen ··· 286 288 287 289 #else /* _WIN32 */ 288 290 289 - #define _T(x) x 291 + #ifdef CAML_INTERNALS 292 + #define T(x) x 293 + #endif 290 294 291 295 #define access_os access 292 296 #define open_os open
+1 -1
runtime/debugger.c
··· 181 181 Store_field(flags, 1, Val_emptylist); 182 182 marshal_flags = caml_create_root(flags); 183 183 184 - a = caml_secure_getenv(_T("CAML_DEBUG_SOCKET")); 184 + a = caml_secure_getenv(T("CAML_DEBUG_SOCKET")); 185 185 address = a ? caml_stat_strdup_of_os(a) : NULL; 186 186 if (address == NULL) return; 187 187 if (dbg_addr != NULL) caml_stat_free(dbg_addr);
+6 -6
runtime/dynlink.c
··· 73 73 /* Parse the OCAML_STDLIB_DIR/ld.conf file and add the directories 74 74 listed there to the search path */ 75 75 76 - #define LD_CONF_NAME _T("ld.conf") 76 + #define LD_CONF_NAME T("ld.conf") 77 77 78 78 static char_os * parse_ld_conf(void) 79 79 { ··· 86 86 #endif 87 87 int ldconf, nread; 88 88 89 - stdlib = caml_secure_getenv(_T("OCAMLLIB")); 90 - if (stdlib == NULL) stdlib = caml_secure_getenv(_T("CAMLLIB")); 89 + stdlib = caml_secure_getenv(T("OCAMLLIB")); 90 + if (stdlib == NULL) stdlib = caml_secure_getenv(T("CAMLLIB")); 91 91 if (stdlib == NULL) stdlib = OCAML_STDLIB_DIR; 92 - ldconfname = caml_stat_strconcat_os(3, stdlib, _T("/"), LD_CONF_NAME); 92 + ldconfname = caml_stat_strconcat_os(3, stdlib, T("/"), LD_CONF_NAME); 93 93 if (stat_os(ldconfname, &st) == -1) { 94 94 caml_stat_free(ldconfname); 95 95 return NULL; ··· 109 109 caml_stat_free(config); 110 110 q = wconfig; 111 111 for (p = wconfig; *p != 0; p++) { 112 - if (*p == _T('\n')) { 112 + if (*p == '\n') { 113 113 *p = 0; 114 114 caml_ext_table_add(&caml_shared_libs_path, q); 115 115 q = p + 1; ··· 165 165 - directories specified in the executable 166 166 - directories specified in the file <stdlib>/ld.conf */ 167 167 tofree1 = caml_decompose_path(&caml_shared_libs_path, 168 - caml_secure_getenv(_T("CAML_LD_LIBRARY_PATH"))); 168 + caml_secure_getenv(T("CAML_LD_LIBRARY_PATH"))); 169 169 if (lib_path != NULL) 170 170 for (p = lib_path; *p != 0; p += strlen_os(p) + 1) 171 171 caml_ext_table_add(&caml_shared_libs_path, p);
+21 -22
runtime/floats.c
··· 277 277 return res; 278 278 } 279 279 280 - static int caml_float_of_hex(const char * s, double * res) 280 + static int caml_float_of_hex(const char * s, const char * end, double * res) 281 281 { 282 282 int64_t m = 0; /* the mantissa - top 60 bits at most */ 283 283 int n_bits = 0; /* total number of bits read */ ··· 289 289 char * p; /* for converting the exponent */ 290 290 double f; 291 291 292 - while (*s != 0) { 292 + while (s < end) { 293 293 char c = *s++; 294 294 switch (c) { 295 - case '_': 296 - break; 297 295 case '.': 298 296 if (dec_point >= 0) return -1; /* multiple decimal points */ 299 297 dec_point = n_bits; ··· 302 300 long e; 303 301 if (*s == 0) return -1; /* nothing after exponent mark */ 304 302 e = strtol(s, &p, 10); 305 - if (*p != 0) return -1; /* ill-formed exponent */ 303 + if (p != end) return -1; /* ill-formed exponent */ 306 304 /* Handle exponents larger than int by returning 0/infinity directly. 307 305 Mind that INT_MIN/INT_MAX are included in the test so as to capture 308 306 the overflow case of strtol on Win64 -- long and int have the same ··· 377 375 int sign; 378 376 double d; 379 377 380 - /* Check for hexadecimal FP constant */ 381 - src = String_val(vs); 382 - sign = 1; 383 - if (*src == '-') { sign = -1; src++; } 384 - else if (*src == '+') { src++; }; 385 - if (src[0] == '0' && (src[1] == 'x' || src[1] == 'X')) { 386 - if (caml_float_of_hex(src + 2, &d) == -1) 387 - caml_failwith("float_of_string"); 388 - return caml_copy_double(sign < 0 ? -d : d); 389 - } 390 - /* Remove '_' characters before calling strtod () */ 378 + /* Remove '_' characters before conversion */ 391 379 len = caml_string_length(vs); 392 380 buf = len < sizeof(parse_buffer) ? parse_buffer : caml_stat_alloc(len + 1); 393 381 src = String_val(vs); ··· 398 386 } 399 387 *dst = 0; 400 388 if (dst == buf) goto error; 389 + /* Check for hexadecimal FP constant */ 390 + src = buf; 391 + sign = 1; 392 + if (*src == '-') { sign = -1; src++; } 393 + else if (*src == '+') { src++; }; 394 + if (src[0] == '0' && (src[1] == 'x' || src[1] == 'X')) { 395 + /* Convert using our hexadecimal FP parser */ 396 + if (caml_float_of_hex(src + 2, dst, &d) == -1) goto error; 397 + if (sign < 0) d = -d; 398 + } else { 399 + /* Convert using strtod */ 401 400 #if defined(HAS_STRTOD_L) && defined(HAS_LOCALE) 402 - d = strtod_l((const char *) buf, &end, caml_locale); 401 + d = strtod_l((const char *) buf, &end, caml_locale); 403 402 #else 404 - USE_LOCALE; 405 - /* Convert using strtod */ 406 - d = strtod((const char *) buf, &end); 407 - RESTORE_LOCALE; 403 + USE_LOCALE; 404 + d = strtod((const char *) buf, &end); 405 + RESTORE_LOCALE; 408 406 #endif /* HAS_STRTOD_L */ 409 - if (end != dst) goto error; 407 + if (end != dst) goto error; 408 + } 410 409 if (buf != parse_buffer) caml_stat_free(buf); 411 410 return caml_copy_double(d); 412 411 error:
+1 -1
runtime/memory.c
··· 606 606 { 607 607 char *raw_mem; 608 608 uintnat aligned_mem; 609 - CAMLassert (modulo < Page_size); 609 + CAMLassert (0 <= modulo && modulo < Page_size); 610 610 raw_mem = (char *) caml_stat_alloc_noexc(sz + Page_size); 611 611 if (raw_mem == NULL) return NULL; 612 612 *b = raw_mem;
-1
runtime/shared_heap.c
··· 305 305 mlsize_t wh = wsize_sizeclass[sz]; 306 306 value* p = (value*)((char*)r + POOL_HEADER_SZ); 307 307 value* end = (value*)((char*)r + Bsize_wsize(POOL_WSIZE)); 308 - value* last_p = 0; 309 308 310 309 p[0] = 0; 311 310 p[1] = 0;
+5 -5
runtime/spacetime_nat.c
··· 177 177 #else 178 178 pid = getpid(); 179 179 #endif 180 - snprintf_os(filename, filename_len, _T("%s/spacetime-%d"), 180 + snprintf_os(filename, filename_len, T("%s/spacetime-%d"), 181 181 automatic_snapshot_dir, pid); 182 - filename[filename_len-1] = _T('\0'); 182 + filename[filename_len-1] = '\0'; 183 183 fd = open_os(filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0666); 184 184 if (fd == -1) { 185 185 automatic_snapshots = 0; ··· 226 226 227 227 caml_spacetime_static_shape_tables = &caml_spacetime_shapes; 228 228 229 - ap_interval = caml_secure_getenv (_T("OCAML_SPACETIME_INTERVAL")); 229 + ap_interval = caml_secure_getenv (T("OCAML_SPACETIME_INTERVAL")); 230 230 if (ap_interval != NULL) { 231 231 unsigned int interval = 0; 232 - sscanf_os(ap_interval, _T("%u"), &interval); 232 + sscanf_os(ap_interval, T("%u"), &interval); 233 233 if (interval != 0) { 234 234 double time; 235 235 char_os cwd[4096]; ··· 237 237 int dir_ok = 1; 238 238 239 239 user_specified_automatic_snapshot_dir = 240 - caml_secure_getenv(_T("OCAML_SPACETIME_SNAPSHOT_DIR")); 240 + caml_secure_getenv(T("OCAML_SPACETIME_SNAPSHOT_DIR")); 241 241 242 242 if (user_specified_automatic_snapshot_dir == NULL) { 243 243 #if defined(HAS_GETCWD)
+42 -42
runtime/startup_aux.c
··· 59 59 params.verb_gc = 0x3F; 60 60 #endif 61 61 #ifndef NATIVE_CODE 62 - cds_file = caml_secure_getenv(_T("CAML_DEBUG_FILE")); 62 + cds_file = caml_secure_getenv(T("CAML_DEBUG_FILE")); 63 63 if (cds_file != NULL) { 64 64 params.cds_file = caml_stat_strdup_os(cds_file); 65 65 } ··· 69 69 70 70 static void scanmult (char_os *opt, uintnat *var) 71 71 { 72 - char_os mult = _T(' '); 72 + char_os mult = ' '; 73 73 unsigned int val = 1; 74 - sscanf_os (opt, _T("=%u%c"), &val, &mult); 75 - sscanf_os (opt, _T("=0x%x%c"), &val, &mult); 74 + sscanf_os (opt, T("=%u%c"), &val, &mult); 75 + sscanf_os (opt, T("=0x%x%c"), &val, &mult); 76 76 switch (mult) { 77 - case _T('k'): *var = (uintnat) val * 1024; break; 78 - case _T('M'): *var = (uintnat) val * (1024 * 1024); break; 79 - case _T('G'): *var = (uintnat) val * (1024 * 1024 * 1024); break; 77 + case 'k': *var = (uintnat) val * 1024; break; 78 + case 'M': *var = (uintnat) val * (1024 * 1024); break; 79 + case 'G': *var = (uintnat) val * (1024 * 1024 * 1024); break; 80 80 default: *var = (uintnat) val; break; 81 81 } 82 82 } 83 83 84 84 void caml_parse_ocamlrunparam(void) 85 85 { 86 - char_os *opt = caml_secure_getenv (_T("OCAMLRUNPARAM")); 86 + char_os *opt = caml_secure_getenv (T("OCAMLRUNPARAM")); 87 87 88 88 init_startup_params(); 89 89 90 - if (opt == NULL) opt = caml_secure_getenv (_T("CAMLRUNPARAM")); 90 + if (opt == NULL) opt = caml_secure_getenv (T("CAMLRUNPARAM")); 91 91 92 92 if (opt != NULL){ 93 - while (*opt != _T('\0')){ 93 + while (*opt != '\0'){ 94 94 switch (*opt++){ 95 - //case _T('a'): scanmult (opt, &p); caml_set_allocation_policy (p); break; 96 - case _T('b'): scanmult (opt, &params.backtrace_enabled_init); break; 97 - case _T('c'): scanmult (opt, &params.cleanup_on_exit); break; 98 - case _T('e'): scanmult (opt, &params.eventlog_enabled); break; 99 - case _T('f'): scanmult (opt, &params.init_fiber_wsz); break; 100 - case _T('h'): scanmult (opt, &params.init_heap_wsz); break; 101 - //case _T('H'): scanmult (opt, &caml_use_huge_pages); break; 102 - case _T('i'): scanmult (opt, &params.init_heap_chunk_sz); break; 103 - case _T('l'): scanmult (opt, &params.init_max_stack_wsz); break; 104 - case _T('M'): scanmult (opt, &params.init_custom_major_ratio); break; 105 - case _T('m'): scanmult (opt, &params.init_custom_minor_ratio); break; 106 - case _T('n'): scanmult (opt, &params.init_custom_minor_max_bsz); break; 107 - case _T('o'): scanmult (opt, &params.init_percent_free); break; 108 - case _T('O'): scanmult (opt, &params.init_max_percent_free); break; 109 - case _T('p'): scanmult (opt, &params.parser_trace); break; 110 - case _T('R'): break; /* see stdlib/hashtbl.mli */ 111 - case _T('s'): scanmult (opt, &params.init_minor_heap_wsz); break; 112 - case _T('S'): scanmult (opt, &params.print_stats); break; 113 - case _T('t'): scanmult (opt, &params.trace_level); break; 114 - case _T('v'): scanmult (opt, &params.verb_gc); break; 115 - case _T('V'): scanmult (opt, &params.verify_heap); break; 116 - //case _T('w'): scanmult (opt, &caml_init_major_window); break; 117 - case _T('W'): scanmult (opt, &caml_runtime_warnings); break; 95 + //case 'a': scanmult (opt, &p); caml_set_allocation_policy (p); break; 96 + case 'b': scanmult (opt, &params.backtrace_enabled_init); break; 97 + case 'c': scanmult (opt, &params.cleanup_on_exit); break; 98 + case 'e': scanmult (opt, &params.eventlog_enabled); break; 99 + case 'f': scanmult (opt, &params.init_fiber_wsz); break; 100 + case 'h': scanmult (opt, &params.init_heap_wsz); break; 101 + //case 'H': scanmult (opt, &caml_use_huge_pages); break; 102 + case 'i': scanmult (opt, &params.init_heap_chunk_sz); break; 103 + case 'l': scanmult (opt, &params.init_max_stack_wsz); break; 104 + case 'M': scanmult (opt, &params.init_custom_major_ratio); break; 105 + case 'm': scanmult (opt, &params.init_custom_minor_ratio); break; 106 + case 'n': scanmult (opt, &params.init_custom_minor_max_bsz); break; 107 + case 'o': scanmult (opt, &params.init_percent_free); break; 108 + case 'O': scanmult (opt, &params.init_max_percent_free); break; 109 + case 'p': scanmult (opt, &params.parser_trace); break; 110 + case 'R': break; /* see stdlib/hashtbl.mli */ 111 + case 's': scanmult (opt, &params.init_minor_heap_wsz); break; 112 + case 'S': scanmult (opt, &params.print_stats); break; 113 + case 't': scanmult (opt, &params.trace_level); break; 114 + case 'v': scanmult (opt, &params.verb_gc); break; 115 + case 'V': scanmult (opt, &params.verify_heap); break; 116 + //case 'w': scanmult (opt, &caml_init_major_window); break; 117 + case 'W': scanmult (opt, &caml_runtime_warnings); break; 118 118 } 119 119 --opt; /* to handle patterns like ",b=1" */ 120 - while (*opt != _T('\0')){ 120 + while (*opt != '\0'){ 121 121 if (*opt++ == ',') break; 122 122 } 123 123 } ··· 206 206 { 207 207 int i, j; 208 208 209 - for(i = 1; argv[i] != NULL && argv[i][0] == _T('-'); i++) { 209 + for(i = 1; argv[i] != NULL && argv[i][0] == '-'; i++) { 210 210 switch(argv[i][1]) { 211 - case _T('t'): 211 + case 't': 212 212 params.trace_level++; /* ignored unless DEBUG mode */ 213 213 break; 214 - case _T('v'): 215 - if (!strcmp_os (argv[i], _T("-version"))){ 214 + case 'v': 215 + if (!strcmp_os (argv[i], T("-version"))){ 216 216 printf ("The OCaml runtime, version " OCAML_VERSION_STRING "\n"); 217 217 exit (0); 218 - }else if (!strcmp_os (argv[i], _T("-vnum"))){ 218 + }else if (!strcmp_os (argv[i], T("-vnum"))){ 219 219 printf (OCAML_VERSION_STRING "\n"); 220 220 exit (0); 221 221 }else{ 222 222 params.verb_gc = 0x001+0x004+0x008+0x010+0x020; 223 223 } 224 224 break; 225 - case _T('p'): 225 + case 'p': 226 226 for (j = 0; caml_names_of_builtin_cprim[j] != NULL; j++) 227 227 printf("%s\n", caml_names_of_builtin_cprim[j]); 228 228 exit(0); 229 229 break; 230 - case _T('b'): 230 + case 'b': 231 231 params.backtrace_enabled_init = 1; 232 232 break; 233 - case _T('I'): 233 + case 'I': 234 234 if (argv[i + 1] != NULL) { 235 235 caml_ext_table_add(&caml_shared_libs_path, argv[i + 1]); 236 236 i++;
+1 -1
runtime/startup_byt.c
··· 359 359 caml_minor_collection(); 360 360 #ifdef _WIN32 361 361 /* Start a thread to handle signals */ 362 - if (caml_secure_getenv(_T("CAMLSIGPIPE"))) 362 + if (caml_secure_getenv(T("CAMLSIGPIPE"))) 363 363 _beginthread(caml_signal_thread, 4096, NULL); 364 364 #endif 365 365 /* Execute the program */
+1 -1
runtime/startup_nat.c
··· 123 123 caml_init_signals(); 124 124 caml_debugger_init (); /* force debugger.o stub to be linked */ 125 125 exe_name = argv[0]; 126 - if (exe_name == NULL) exe_name = _T(""); 126 + if (exe_name == NULL) exe_name = T(""); 127 127 proc_self_exe = caml_executable_name(); 128 128 if (proc_self_exe != NULL) 129 129 exe_name = proc_self_exe;
+1 -1
runtime/sys.c
··· 424 424 #endif 425 425 caml_init_exe_name(exe_name); 426 426 v = caml_alloc_array((void *)caml_copy_string_of_os, 427 - (char const **) argv); 427 + (char const **) argv); 428 428 main_argv = caml_create_root(v); 429 429 } 430 430
+1 -1
runtime/win32.c
··· 451 451 HANDLE h; 452 452 /* Get an hexa-code raw handle through the environment */ 453 453 h = (HANDLE) (uintptr_t) 454 - wcstol(caml_secure_getenv(_T("CAMLSIGPIPE")), &endptr, 16); 454 + wcstol(caml_secure_getenv(T("CAMLSIGPIPE")), &endptr, 16); 455 455 while (1) { 456 456 DWORD numread; 457 457 BOOL ret;
-588
stdlib/.depend
··· 697 697 stdlib.cmi 698 698 stdlib.cmi : \ 699 699 camlinternalFormatBasics.cmi 700 - stdlib__arg.cmo : \ 701 - stdlib__sys.cmi \ 702 - stdlib__string.cmi \ 703 - stdlib__printf.cmi \ 704 - stdlib__list.cmi \ 705 - stdlib__buffer.cmi \ 706 - stdlib__array.cmi \ 707 - stdlib__arg.cmi 708 - stdlib__arg.p.cmx : \ 709 - stdlib__sys.cmx \ 710 - stdlib__string.cmx \ 711 - stdlib__printf.cmx \ 712 - stdlib__list.cmx \ 713 - stdlib__buffer.cmx \ 714 - stdlib__array.cmx \ 715 - stdlib__arg.cmi 716 - stdlib__array.cmo : \ 717 - stdlib__seq.cmi \ 718 - stdlib__array.cmi 719 - stdlib__array.p.cmx : \ 720 - stdlib__seq.cmx \ 721 - stdlib__array.cmi 722 - stdlib__arrayLabels.cmo : \ 723 - stdlib__array.cmi \ 724 - stdlib__arrayLabels.cmi 725 - stdlib__arrayLabels.p.cmx : \ 726 - stdlib__array.cmx \ 727 - stdlib__arrayLabels.cmi 728 - stdlib__atomic.cmo : \ 729 - stdlib__atomic.cmi 730 - stdlib__atomic.p.cmx : \ 731 - stdlib__atomic.cmi 732 - stdlib__bigarray.cmo : \ 733 - stdlib__sys.cmi \ 734 - stdlib__complex.cmi \ 735 - stdlib__array.cmi \ 736 - stdlib__bigarray.cmi 737 - stdlib__bigarray.p.cmx : \ 738 - stdlib__sys.cmx \ 739 - stdlib__complex.cmx \ 740 - stdlib__array.cmx \ 741 - stdlib__bigarray.cmi 742 - stdlib__bool.cmo : \ 743 - stdlib.cmi \ 744 - stdlib__bool.cmi 745 - stdlib__bool.p.cmx : \ 746 - stdlib.cmx \ 747 - stdlib__bool.cmi 748 - stdlib__buffer.cmo : \ 749 - stdlib__uchar.cmi \ 750 - stdlib__sys.cmi \ 751 - stdlib__string.cmi \ 752 - stdlib__seq.cmi \ 753 - stdlib__char.cmi \ 754 - stdlib__bytes.cmi \ 755 - stdlib__buffer.cmi 756 - stdlib__buffer.p.cmx : \ 757 - stdlib__uchar.cmx \ 758 - stdlib__sys.cmx \ 759 - stdlib__string.cmx \ 760 - stdlib__seq.cmx \ 761 - stdlib__char.cmx \ 762 - stdlib__bytes.cmx \ 763 - stdlib__buffer.cmi 764 - stdlib__bytes.cmo : \ 765 - stdlib__sys.cmi \ 766 - stdlib.cmi \ 767 - stdlib__seq.cmi \ 768 - stdlib__char.cmi \ 769 - stdlib__bytes.cmi 770 - stdlib__bytes.p.cmx : \ 771 - stdlib__sys.cmx \ 772 - stdlib.cmx \ 773 - stdlib__seq.cmx \ 774 - stdlib__char.cmx \ 775 - stdlib__bytes.cmi 776 - stdlib__bytesLabels.cmo : \ 777 - stdlib__bytes.cmi \ 778 - stdlib__bytesLabels.cmi 779 - stdlib__bytesLabels.p.cmx : \ 780 - stdlib__bytes.cmx \ 781 - stdlib__bytesLabels.cmi 782 - stdlib__callback.cmo : \ 783 - stdlib__obj.cmi \ 784 - stdlib__callback.cmi 785 - stdlib__callback.p.cmx : \ 786 - stdlib__obj.cmx \ 787 - stdlib__callback.cmi 788 - camlinternalFormat.cmo : \ 789 - stdlib__sys.cmi \ 790 - stdlib__string.cmi \ 791 - stdlib__int.cmi \ 792 - stdlib__char.cmi \ 793 - camlinternalFormatBasics.cmi \ 794 - stdlib__bytes.cmi \ 795 - stdlib__buffer.cmi \ 796 - camlinternalFormat.cmi 797 - camlinternalFormat.p.cmx : \ 798 - stdlib__sys.cmx \ 799 - stdlib__string.cmx \ 800 - stdlib__int.cmx \ 801 - stdlib__char.cmx \ 802 - camlinternalFormatBasics.cmx \ 803 - stdlib__bytes.cmx \ 804 - stdlib__buffer.cmx \ 805 - camlinternalFormat.cmi 806 - camlinternalFormatBasics.cmo : \ 807 - camlinternalFormatBasics.cmi 808 - camlinternalFormatBasics.p.cmx : \ 809 - camlinternalFormatBasics.cmi 810 - camlinternalLazy.cmo : \ 811 - stdlib__obj.cmi \ 812 - camlinternalLazy.cmi 813 - camlinternalLazy.p.cmx : \ 814 - stdlib__obj.cmx \ 815 - camlinternalLazy.cmi 816 - camlinternalMod.cmo : \ 817 - stdlib__obj.cmi \ 818 - camlinternalOO.cmi \ 819 - camlinternalLazy.cmi \ 820 - stdlib__array.cmi \ 821 - camlinternalMod.cmi 822 - camlinternalMod.p.cmx : \ 823 - stdlib__obj.cmx \ 824 - camlinternalOO.cmx \ 825 - camlinternalLazy.cmx \ 826 - stdlib__array.cmx \ 827 - camlinternalMod.cmi 828 - camlinternalOO.cmo : \ 829 - stdlib__sys.cmi \ 830 - stdlib__string.cmi \ 831 - stdlib__obj.cmi \ 832 - stdlib__map.cmi \ 833 - stdlib__list.cmi \ 834 - stdlib__char.cmi \ 835 - stdlib__array.cmi \ 836 - camlinternalOO.cmi 837 - camlinternalOO.p.cmx : \ 838 - stdlib__sys.cmx \ 839 - stdlib__string.cmx \ 840 - stdlib__obj.cmx \ 841 - stdlib__map.cmx \ 842 - stdlib__list.cmx \ 843 - stdlib__char.cmx \ 844 - stdlib__array.cmx \ 845 - camlinternalOO.cmi 846 - stdlib__char.cmo : \ 847 - stdlib__char.cmi 848 - stdlib__char.p.cmx : \ 849 - stdlib__char.cmi 850 - stdlib__complex.cmo : \ 851 - stdlib__complex.cmi 852 - stdlib__complex.p.cmx : \ 853 - stdlib__complex.cmi 854 - stdlib__digest.cmo : \ 855 - stdlib__string.cmi \ 856 - stdlib__char.cmi \ 857 - stdlib__bytes.cmi \ 858 - stdlib__digest.cmi 859 - stdlib__digest.p.cmx : \ 860 - stdlib__string.cmx \ 861 - stdlib__char.cmx \ 862 - stdlib__bytes.cmx \ 863 - stdlib__digest.cmi 864 - stdlib__domain.cmo : \ 865 - stdlib__int64.cmi \ 866 - stdlib__atomic.cmi \ 867 - stdlib__domain.cmi 868 - stdlib__domain.p.cmx : \ 869 - stdlib__int64.cmx \ 870 - stdlib__atomic.cmx \ 871 - stdlib__domain.cmi 872 - stdlib__ephemeron.cmo : \ 873 - stdlib__sys.cmi \ 874 - stdlib__seq.cmi \ 875 - stdlib__random.cmi \ 876 - stdlib__obj.cmi \ 877 - stdlib__lazy.cmi \ 878 - stdlib__hashtbl.cmi \ 879 - stdlib__array.cmi \ 880 - stdlib__ephemeron.cmi 881 - stdlib__ephemeron.p.cmx : \ 882 - stdlib__sys.cmx \ 883 - stdlib__seq.cmx \ 884 - stdlib__random.cmx \ 885 - stdlib__obj.cmx \ 886 - stdlib__lazy.cmx \ 887 - stdlib__hashtbl.cmx \ 888 - stdlib__array.cmx \ 889 - stdlib__ephemeron.cmi 890 - stdlib__filename.cmo : \ 891 - stdlib__sys.cmi \ 892 - stdlib__string.cmi \ 893 - stdlib__random.cmi \ 894 - stdlib__printf.cmi \ 895 - stdlib__lazy.cmi \ 896 - stdlib__buffer.cmi \ 897 - stdlib__filename.cmi 898 - stdlib__filename.p.cmx : \ 899 - stdlib__sys.cmx \ 900 - stdlib__string.cmx \ 901 - stdlib__random.cmx \ 902 - stdlib__printf.cmx \ 903 - stdlib__lazy.cmx \ 904 - stdlib__buffer.cmx \ 905 - stdlib__filename.cmi 906 - stdlib__float.cmo : \ 907 - stdlib.cmi \ 908 - stdlib__seq.cmi \ 909 - stdlib__list.cmi \ 910 - stdlib__array.cmi \ 911 - stdlib__float.cmi 912 - stdlib__float.p.cmx : \ 913 - stdlib.cmx \ 914 - stdlib__seq.cmx \ 915 - stdlib__list.cmx \ 916 - stdlib__array.cmx \ 917 - stdlib__float.cmi 918 - stdlib__format.cmo : \ 919 - stdlib__string.cmi \ 920 - stdlib.cmi \ 921 - stdlib__stack.cmi \ 922 - stdlib__queue.cmi \ 923 - stdlib__list.cmi \ 924 - stdlib__int.cmi \ 925 - camlinternalFormatBasics.cmi \ 926 - camlinternalFormat.cmi \ 927 - stdlib__buffer.cmi \ 928 - stdlib__format.cmi 929 - stdlib__format.p.cmx : \ 930 - stdlib__string.cmx \ 931 - stdlib.cmx \ 932 - stdlib__stack.cmx \ 933 - stdlib__queue.cmx \ 934 - stdlib__list.cmx \ 935 - stdlib__int.cmx \ 936 - camlinternalFormatBasics.cmx \ 937 - camlinternalFormat.cmx \ 938 - stdlib__buffer.cmx \ 939 - stdlib__format.cmi 940 - stdlib__fun.cmo : \ 941 - stdlib__printexc.cmi \ 942 - stdlib__fun.cmi 943 - stdlib__fun.p.cmx : \ 944 - stdlib__printexc.cmx \ 945 - stdlib__fun.cmi 946 - stdlib__gc.cmo : \ 947 - stdlib__sys.cmi \ 948 - stdlib__string.cmi \ 949 - stdlib__printf.cmi \ 950 - stdlib__gc.cmi 951 - stdlib__gc.p.cmx : \ 952 - stdlib__sys.cmx \ 953 - stdlib__string.cmx \ 954 - stdlib__printf.cmx \ 955 - stdlib__gc.cmi 956 - stdlib__genlex.cmo : \ 957 - stdlib__string.cmi \ 958 - stdlib__stream.cmi \ 959 - stdlib__list.cmi \ 960 - stdlib__hashtbl.cmi \ 961 - stdlib__char.cmi \ 962 - stdlib__bytes.cmi \ 963 - stdlib__genlex.cmi 964 - stdlib__genlex.p.cmx : \ 965 - stdlib__string.cmx \ 966 - stdlib__stream.cmx \ 967 - stdlib__list.cmx \ 968 - stdlib__hashtbl.cmx \ 969 - stdlib__char.cmx \ 970 - stdlib__bytes.cmx \ 971 - stdlib__genlex.cmi 972 - stdlib__hashtbl.cmo : \ 973 - stdlib__sys.cmi \ 974 - stdlib__string.cmi \ 975 - stdlib__seq.cmi \ 976 - stdlib__random.cmi \ 977 - stdlib__obj.cmi \ 978 - stdlib__lazy.cmi \ 979 - stdlib__array.cmi \ 980 - stdlib__hashtbl.cmi 981 - stdlib__hashtbl.p.cmx : \ 982 - stdlib__sys.cmx \ 983 - stdlib__string.cmx \ 984 - stdlib__seq.cmx \ 985 - stdlib__random.cmx \ 986 - stdlib__obj.cmx \ 987 - stdlib__lazy.cmx \ 988 - stdlib__array.cmx \ 989 - stdlib__hashtbl.cmi 990 - stdlib__int.cmo : \ 991 - stdlib.cmi \ 992 - stdlib__int.cmi 993 - stdlib__int.p.cmx : \ 994 - stdlib.cmx \ 995 - stdlib__int.cmi 996 - stdlib__int32.cmo : \ 997 - stdlib__sys.cmi \ 998 - stdlib.cmi \ 999 - stdlib__int32.cmi 1000 - stdlib__int32.p.cmx : \ 1001 - stdlib__sys.cmx \ 1002 - stdlib.cmx \ 1003 - stdlib__int32.cmi 1004 - stdlib__int64.cmo : \ 1005 - stdlib.cmi \ 1006 - stdlib__int64.cmi 1007 - stdlib__int64.p.cmx : \ 1008 - stdlib.cmx \ 1009 - stdlib__int64.cmi 1010 - stdlib__lazy.cmo : \ 1011 - stdlib__obj.cmi \ 1012 - camlinternalLazy.cmi \ 1013 - stdlib__lazy.cmi 1014 - stdlib__lazy.p.cmx : \ 1015 - stdlib__obj.cmx \ 1016 - camlinternalLazy.cmx \ 1017 - stdlib__lazy.cmi 1018 - stdlib__lexing.cmo : \ 1019 - stdlib__sys.cmi \ 1020 - stdlib__string.cmi \ 1021 - stdlib__bytes.cmi \ 1022 - stdlib__array.cmi \ 1023 - stdlib__lexing.cmi 1024 - stdlib__lexing.p.cmx : \ 1025 - stdlib__sys.cmx \ 1026 - stdlib__string.cmx \ 1027 - stdlib__bytes.cmx \ 1028 - stdlib__array.cmx \ 1029 - stdlib__lexing.cmi 1030 - stdlib__list.cmo : \ 1031 - stdlib__sys.cmi \ 1032 - stdlib__seq.cmi \ 1033 - stdlib__list.cmi 1034 - stdlib__list.p.cmx : \ 1035 - stdlib__sys.cmx \ 1036 - stdlib__seq.cmx \ 1037 - stdlib__list.cmi 1038 - stdlib__listLabels.cmo : \ 1039 - stdlib__list.cmi \ 1040 - stdlib__listLabels.cmi 1041 - stdlib__listLabels.p.cmx : \ 1042 - stdlib__list.cmx \ 1043 - stdlib__listLabels.cmi 1044 - stdlib__map.cmo : \ 1045 - stdlib__seq.cmi \ 1046 - stdlib__map.cmi 1047 - stdlib__map.p.cmx : \ 1048 - stdlib__seq.cmx \ 1049 - stdlib__map.cmi 1050 - stdlib__marshal.cmo : \ 1051 - stdlib__bytes.cmi \ 1052 - stdlib__marshal.cmi 1053 - stdlib__marshal.p.cmx : \ 1054 - stdlib__bytes.cmx \ 1055 - stdlib__marshal.cmi 1056 - stdlib__moreLabels.cmo : \ 1057 - stdlib__set.cmi \ 1058 - stdlib__map.cmi \ 1059 - stdlib__hashtbl.cmi \ 1060 - stdlib__moreLabels.cmi 1061 - stdlib__moreLabels.p.cmx : \ 1062 - stdlib__set.cmx \ 1063 - stdlib__map.cmx \ 1064 - stdlib__hashtbl.cmx \ 1065 - stdlib__moreLabels.cmi 1066 - stdlib__nativeint.cmo : \ 1067 - stdlib__sys.cmi \ 1068 - stdlib.cmi \ 1069 - stdlib__nativeint.cmi 1070 - stdlib__nativeint.p.cmx : \ 1071 - stdlib__sys.cmx \ 1072 - stdlib.cmx \ 1073 - stdlib__nativeint.cmi 1074 - stdlib__obj.cmo : \ 1075 - stdlib__sys.cmi \ 1076 - stdlib__marshal.cmi \ 1077 - stdlib__int32.cmi \ 1078 - stdlib__obj.cmi 1079 - stdlib__obj.p.cmx : \ 1080 - stdlib__sys.cmx \ 1081 - stdlib__marshal.cmx \ 1082 - stdlib__int32.cmx \ 1083 - stdlib__obj.cmi 1084 - stdlib__oo.cmo : \ 1085 - camlinternalOO.cmi \ 1086 - stdlib__oo.cmi 1087 - stdlib__oo.p.cmx : \ 1088 - camlinternalOO.cmx \ 1089 - stdlib__oo.cmi 1090 - stdlib__option.cmo : \ 1091 - stdlib__seq.cmi \ 1092 - stdlib__option.cmi 1093 - stdlib__option.p.cmx : \ 1094 - stdlib__seq.cmx \ 1095 - stdlib__option.cmi 1096 - stdlib__parsing.cmo : \ 1097 - stdlib__obj.cmi \ 1098 - stdlib__lexing.cmi \ 1099 - stdlib__array.cmi \ 1100 - stdlib__parsing.cmi 1101 - stdlib__parsing.p.cmx : \ 1102 - stdlib__obj.cmx \ 1103 - stdlib__lexing.cmx \ 1104 - stdlib__array.cmx \ 1105 - stdlib__parsing.cmi 1106 - stdlib__pervasives.cmo : \ 1107 - camlinternalFormatBasics.cmi 1108 - stdlib__pervasives.p.cmx : \ 1109 - camlinternalFormatBasics.cmx 1110 - stdlib__printexc.cmo : \ 1111 - stdlib.cmi \ 1112 - stdlib__printf.cmi \ 1113 - stdlib__obj.cmi \ 1114 - stdlib__buffer.cmi \ 1115 - stdlib__array.cmi \ 1116 - stdlib__printexc.cmi 1117 - stdlib__printexc.p.cmx : \ 1118 - stdlib.cmx \ 1119 - stdlib__printf.cmx \ 1120 - stdlib__obj.cmx \ 1121 - stdlib__buffer.cmx \ 1122 - stdlib__array.cmx \ 1123 - stdlib__printexc.cmi 1124 - stdlib__printf.cmo : \ 1125 - camlinternalFormatBasics.cmi \ 1126 - camlinternalFormat.cmi \ 1127 - stdlib__buffer.cmi \ 1128 - stdlib__printf.cmi 1129 - stdlib__printf.p.cmx : \ 1130 - camlinternalFormatBasics.cmx \ 1131 - camlinternalFormat.cmx \ 1132 - stdlib__buffer.cmx \ 1133 - stdlib__printf.cmi 1134 - stdlib__queue.cmo : \ 1135 - stdlib__seq.cmi \ 1136 - stdlib__queue.cmi 1137 - stdlib__queue.p.cmx : \ 1138 - stdlib__seq.cmx \ 1139 - stdlib__queue.cmi 1140 - stdlib__random.cmo : \ 1141 - stdlib__string.cmi \ 1142 - stdlib.cmi \ 1143 - stdlib__nativeint.cmi \ 1144 - stdlib__int64.cmi \ 1145 - stdlib__int32.cmi \ 1146 - stdlib__int.cmi \ 1147 - stdlib__digest.cmi \ 1148 - stdlib__char.cmi \ 1149 - stdlib__array.cmi \ 1150 - stdlib__random.cmi 1151 - stdlib__random.p.cmx : \ 1152 - stdlib__string.cmx \ 1153 - stdlib.cmx \ 1154 - stdlib__nativeint.cmx \ 1155 - stdlib__int64.cmx \ 1156 - stdlib__int32.cmx \ 1157 - stdlib__int.cmx \ 1158 - stdlib__digest.cmx \ 1159 - stdlib__char.cmx \ 1160 - stdlib__array.cmx \ 1161 - stdlib__random.cmi 1162 - stdlib__result.cmo : \ 1163 - stdlib__seq.cmi \ 1164 - stdlib__result.cmi 1165 - stdlib__result.p.cmx : \ 1166 - stdlib__seq.cmx \ 1167 - stdlib__result.cmi 1168 - stdlib__scanf.cmo : \ 1169 - stdlib__string.cmi \ 1170 - stdlib.cmi \ 1171 - stdlib__printf.cmi \ 1172 - stdlib__list.cmi \ 1173 - camlinternalFormatBasics.cmi \ 1174 - camlinternalFormat.cmi \ 1175 - stdlib__bytes.cmi \ 1176 - stdlib__buffer.cmi \ 1177 - stdlib__scanf.cmi 1178 - stdlib__scanf.p.cmx : \ 1179 - stdlib__string.cmx \ 1180 - stdlib.cmx \ 1181 - stdlib__printf.cmx \ 1182 - stdlib__list.cmx \ 1183 - camlinternalFormatBasics.cmx \ 1184 - camlinternalFormat.cmx \ 1185 - stdlib__bytes.cmx \ 1186 - stdlib__buffer.cmx \ 1187 - stdlib__scanf.cmi 1188 - stdlib__seq.cmo : \ 1189 - stdlib__seq.cmi 1190 - stdlib__seq.p.cmx : \ 1191 - stdlib__seq.cmi 1192 - stdlib__set.cmo : \ 1193 - stdlib__seq.cmi \ 1194 - stdlib__list.cmi \ 1195 - stdlib__set.cmi 1196 - stdlib__set.p.cmx : \ 1197 - stdlib__seq.cmx \ 1198 - stdlib__list.cmx \ 1199 - stdlib__set.cmi 1200 - stdlib__spacetime.cmo : \ 1201 - stdlib__gc.cmi \ 1202 - stdlib__spacetime.cmi 1203 - stdlib__spacetime.p.cmx : \ 1204 - stdlib__gc.cmx \ 1205 - stdlib__spacetime.cmi 1206 - stdlib__stack.cmo : \ 1207 - stdlib__seq.cmi \ 1208 - stdlib__list.cmi \ 1209 - stdlib__stack.cmi 1210 - stdlib__stack.p.cmx : \ 1211 - stdlib__seq.cmx \ 1212 - stdlib__list.cmx \ 1213 - stdlib__stack.cmi 1214 - stdlib__stdLabels.cmo : \ 1215 - stdlib__stringLabels.cmi \ 1216 - stdlib__listLabels.cmi \ 1217 - stdlib__bytesLabels.cmi \ 1218 - stdlib__arrayLabels.cmi \ 1219 - stdlib__stdLabels.cmi 1220 - stdlib__stdLabels.p.cmx : \ 1221 - stdlib__stringLabels.cmx \ 1222 - stdlib__listLabels.cmx \ 1223 - stdlib__bytesLabels.cmx \ 1224 - stdlib__arrayLabels.cmx \ 1225 - stdlib__stdLabels.cmi 1226 - std_exit.cmo : 1227 - std_exit.cmx : 1228 - stdlib__stream.cmo : \ 1229 - stdlib__string.cmi \ 1230 - stdlib__list.cmi \ 1231 - stdlib__lazy.cmi \ 1232 - stdlib__bytes.cmi \ 1233 - stdlib__stream.cmi 1234 - stdlib__stream.p.cmx : \ 1235 - stdlib__string.cmx \ 1236 - stdlib__list.cmx \ 1237 - stdlib__lazy.cmx \ 1238 - stdlib__bytes.cmx \ 1239 - stdlib__stream.cmi 1240 - stdlib__string.cmo : \ 1241 - stdlib.cmi \ 1242 - stdlib__bytes.cmi \ 1243 - stdlib__string.cmi 1244 - stdlib__string.p.cmx : \ 1245 - stdlib.cmx \ 1246 - stdlib__bytes.cmx \ 1247 - stdlib__string.cmi 1248 - stdlib__stringLabels.cmo : \ 1249 - stdlib__string.cmi \ 1250 - stdlib__stringLabels.cmi 1251 - stdlib__stringLabels.p.cmx : \ 1252 - stdlib__string.cmx \ 1253 - stdlib__stringLabels.cmi 1254 - stdlib__sys.cmo : \ 1255 - stdlib__sys.cmi 1256 - stdlib__sys.p.cmx : \ 1257 - stdlib__sys.cmi 1258 - stdlib__uchar.cmo : \ 1259 - stdlib.cmi \ 1260 - stdlib__char.cmi \ 1261 - stdlib__uchar.cmi 1262 - stdlib__uchar.p.cmx : \ 1263 - stdlib.cmx \ 1264 - stdlib__char.cmx \ 1265 - stdlib__uchar.cmi 1266 - stdlib__unit.cmo : \ 1267 - stdlib__unit.cmi 1268 - stdlib__unit.p.cmx : \ 1269 - stdlib__unit.cmi 1270 - stdlib__weak.cmo : \ 1271 - stdlib__sys.cmi \ 1272 - stdlib__obj.cmi \ 1273 - stdlib__hashtbl.cmi \ 1274 - stdlib__array.cmi \ 1275 - stdlib__weak.cmi 1276 - stdlib__weak.p.cmx : \ 1277 - stdlib__sys.cmx \ 1278 - stdlib__obj.cmx \ 1279 - stdlib__hashtbl.cmx \ 1280 - stdlib__array.cmx \ 1281 - stdlib__weak.cmi 1282 - stdlib.cmo : \ 1283 - camlinternalFormatBasics.cmi \ 1284 - stdlib.cmi 1285 - stdlib.p.cmx : \ 1286 - camlinternalFormatBasics.cmx \ 1287 - stdlib.cmi
+48 -57
stdlib/Makefile
··· 121 121 cd "$(INSTALL_LIBDIR)"; $(RANLIB) stdlib.$(A) 122 122 123 123 ifeq "$(UNIX_OR_WIN32)" "unix" 124 - HEADERPROGRAM = header.c 124 + HEADERPROGRAM = header 125 + HEADER_PATH = $(BINDIR)/ 126 + HEADER_TARGET_PATH = $(TARGET_BINDIR)/ 125 127 else # Windows 126 - HEADERPROGRAM = headernt.c 128 + HEADERPROGRAM = headernt 129 + HEADER_PATH = 130 + HEADER_TARGET_PATH = 127 131 endif 128 132 129 133 CAMLHEADERS =\ ··· 131 135 camlheaderd target_camlheaderd \ 132 136 camlheaderi target_camlheaderi 133 137 138 + # The % in pattern rules must always match something, hence the slightly strange 139 + # patterns and $(subst ...) since `camlheader%:` wouldn't match `camlheader` 134 140 ifeq "$(HASHBANGSCRIPTS)" "true" 135 - $(CAMLHEADERS): $(ROOTDIR)/Makefile.config 136 - for suff in '' d i; do \ 137 - echo '#!$(BINDIR)/ocamlrun'$$suff > camlheader$$suff && \ 138 - echo '#!$(TARGET_BINDIR)/ocamlrun'$$suff >target_camlheader$$suff; \ 139 - done && \ 140 - echo '#!' | tr -d '\012' > camlheader_ur; 141 + camlhead%: $(ROOTDIR)/Makefile.config Makefile 142 + echo '#!$(BINDIR)/ocamlrun$(subst er,,$*)' > $@ 143 + 144 + target_%: $(ROOTDIR)/Makefile.config Makefile 145 + echo '#!$(TARGET_BINDIR)/ocamlrun$(subst camlheader,,$*)' > $@ 146 + 147 + camlheader_ur: Makefile 148 + echo '#!' | tr -d '\012' > $@ 149 + 141 150 else # Hashbang scripts not supported 142 151 143 - $(CAMLHEADERS): $(HEADERPROGRAM) $(ROOTDIR)/Makefile.config 152 + $(CAMLHEADERS): $(HEADERPROGRAM).c $(ROOTDIR)/Makefile.config Makefile 144 153 145 - ifeq "$(UNIX_OR_WIN32)" "unix" 146 - $(CAMLHEADERS): 147 - for suff in '' d i; do \ 148 - $(CC) $(OC_CFLAGS) $(OC_CPPFLAGS) $(OC_LDFLAGS) \ 149 - -DRUNTIME_NAME='"$(BINDIR)/ocamlrun'$$suff'"' \ 150 - header.c $(OUTPUTEXE)tmpheader$(EXE) && \ 151 - strip tmpheader$(EXE) && \ 152 - mv tmpheader$(EXE) camlheader$$suff && \ 153 - $(CC) $(OC_CFLAGS) $(OC_CPPFLAGS) $(OC_LDFLAGS) \ 154 - -DRUNTIME_NAME='"$(TARGET_BINDIR)/ocamlrun'$$suff'"' \ 155 - header.c $(OUTPUTEXE)tmpheader$(EXE) && \ 156 - strip tmpheader$(EXE) && \ 157 - mv tmpheader$(EXE) target_camlheader$$suff; \ 158 - done && \ 159 - cp camlheader camlheader_ur 154 + # $@.exe is deleted to ensure no Cygwin .exe mangling takes place 155 + camlhead%: tmphead%.exe 156 + rm -f $@.exe 157 + mv $< $@ 160 158 161 - else # Windows 159 + # Again, pattern weirdness here means that the dot is always present so that 160 + # tmpheader.exe matches. 161 + tmpheader%exe: $(HEADERPROGRAM)%$(O) 162 + $(call MKEXE_BOOT,$@,$^ $(EXTRALIBS)) 163 + # FIXME This is wrong - mingw could invoke strip; MSVC equivalent? 164 + ifneq "$(UNIX_OR_WIN32)" "win32" 165 + strip $@ 166 + endif 162 167 163 - # TODO: see whether there is a way to further merge the rules below 164 - # with those above 165 - 166 - camlheader: headernt.c 168 + $(HEADERPROGRAM)%$(O): $(HEADERPROGRAM).c 167 169 $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) \ 168 - -DRUNTIME_NAME='"ocamlrun"' $(OUTPUTOBJ)headernt.$(O) $< 169 - $(MKEXE) -o tmpheader.exe headernt.$(O) $(EXTRALIBS) 170 - rm -f camlheader.exe 171 - mv tmpheader.exe camlheader 172 - 173 - target_camlheader: camlheader 174 - cp camlheader target_camlheader 170 + -DRUNTIME_NAME='"$(HEADER_PATH)ocamlrun$(subst .,,$*)"' \ 171 + $(OUTPUTOBJ)$@ $^ 175 172 176 173 camlheader_ur: camlheader 177 - cp camlheader camlheader_ur 174 + cp camlheader $@ 178 175 179 - camlheaderd: headernt.c 180 - $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) \ 181 - -DRUNTIME_NAME='"ocamlrund"' $(OUTPUTOBJ)headerntd.$(O) $< 182 - $(MKEXE) -o tmpheaderd.exe headerntd.$(O) $(EXTRALIBS) 183 - mv tmpheaderd.exe camlheaderd 176 + ifeq "$(UNIX_OR_WIN32)" "unix" 177 + tmptargetcamlheader%exe: $(HEADERPROGRAM)%$(O) 178 + $(call MKEXE_BOOT,$@,$^ $(EXTRALIBS)) 179 + strip $@ 184 180 185 - target_camlheaderd: camlheaderd 186 - cp camlheaderd target_camlheaderd 187 - 188 - camlheaderi: headernt.c 181 + $(TARGETHEADERPROGRAM)%$(O): $(HEADERPROGRAM).c 189 182 $(CC) -c $(OC_CFLAGS) $(OC_CPPFLAGS) \ 190 - -DRUNTIME_NAME='"ocamlruni"' $(OUTPUTOBJ)headernti.$(O) $< 191 - $(MKEXE) -o tmpheaderi.exe headernti.$(O) $(EXTRALIBS) 192 - mv tmpheaderi.exe camlheaderi 183 + -DRUNTIME_NAME='"$(HEADER_TARGET_PATH)ocamlrun$(subst .,,$*)"' \ 184 + $(OUTPUTOBJ)$@ $^ 193 185 194 - target_camlheaderi: camlheaderi 195 - cp camlheaderi target_camlheaderi 196 - 197 - # TODO: do not call flexlink to build tmpheader.exe (we don't need 198 - # the export table) 199 - 200 - endif # ifeq "$(UNIX_OR_WIN32)" "unix" 186 + target_%: tmptarget%.exe 187 + rm -f $@.exe 188 + mv $< $@ 189 + else 190 + target_%: % 191 + cp $< $@ 192 + endif 201 193 202 194 endif # ifeq "$(HASHBANGSCRIPTS)" "true" 203 195 ··· 255 247 256 248 clean:: 257 249 rm -f *.cm* *.$(O) *.$(A) *.odoc 258 - rm -f *~ 259 250 rm -f camlheader* 260 251 261 252 include .depend
+8 -5
stdlib/buffer.ml
··· 72 72 this tricky function that is slow anyway. *) 73 73 Bytes.blit b.buffer 0 new_buffer 0 b.position; 74 74 b.buffer <- new_buffer; 75 - b.length <- !new_len 75 + b.length <- !new_len; 76 + assert (b.position + more <= b.length) 76 77 77 78 let add_char b c = 78 79 let pos = b.position in ··· 163 164 then invalid_arg "Buffer.add_substring/add_subbytes"; 164 165 let new_position = b.position + len in 165 166 if new_position > b.length then resize b len; 166 - Bytes.blit_string s offset b.buffer b.position len; 167 + Bytes.unsafe_blit_string s offset b.buffer b.position len; 167 168 b.position <- new_position 168 169 169 170 let add_subbytes b s offset len = ··· 173 174 let len = String.length s in 174 175 let new_position = b.position + len in 175 176 if new_position > b.length then resize b len; 176 - Bytes.blit_string s 0 b.buffer b.position len; 177 + Bytes.unsafe_blit_string s 0 b.buffer b.position len; 177 178 b.position <- new_position 178 179 179 180 let add_bytes b s = add_string b (Bytes.unsafe_to_string s) ··· 277 278 278 279 let to_seq b = 279 280 let rec aux i () = 281 + (* Note that b.position is not a constant and cannot be lifted out of aux *) 280 282 if i >= b.position then Seq.Nil 281 283 else 282 - let x = Bytes.get b.buffer i in 284 + let x = Bytes.unsafe_get b.buffer i in 283 285 Seq.Cons (x, aux (i+1)) 284 286 in 285 287 aux 0 286 288 287 289 let to_seqi b = 288 290 let rec aux i () = 291 + (* Note that b.position is not a constant and cannot be lifted out of aux *) 289 292 if i >= b.position then Seq.Nil 290 293 else 291 - let x = Bytes.get b.buffer i in 294 + let x = Bytes.unsafe_get b.buffer i in 292 295 Seq.Cons ((i,x), aux (i+1)) 293 296 in 294 297 aux 0
+3
stdlib/bytes.mli
··· 669 669 external unsafe_blit : 670 670 bytes -> int -> bytes -> int -> int -> unit 671 671 = "caml_blit_bytes" [@@noalloc] 672 + external unsafe_blit_string : 673 + string -> int -> bytes -> int -> int -> unit 674 + = "caml_blit_string" [@@noalloc] 672 675 external unsafe_fill : 673 676 bytes -> int -> int -> char -> unit = "caml_fill_bytes" [@@noalloc]
+3
stdlib/bytesLabels.mli
··· 513 513 external unsafe_blit : 514 514 src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> 515 515 unit = "caml_blit_bytes" [@@noalloc] 516 + external unsafe_blit_string : 517 + src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit 518 + = "caml_blit_string" [@@noalloc] 516 519 external unsafe_fill : 517 520 bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes" [@@noalloc] 518 521 val unsafe_to_string : bytes -> string
+15 -6
testsuite/Makefile
··· 118 118 echo Running tests from \'$$dir\' ... ; \ 119 119 $(MAKE) exec-ocamltest DIR=$$dir \ 120 120 OCAMLTESTENV="" OCAMLTESTFLAGS=""; \ 121 - done || touch $(failstamp)) 2>&1 | tee -a $(TESTLOG) 122 - @if [ -f $(failstamp) ]; then rm $(failstamp); exit 1; fi 121 + done || echo outer loop >> $(failstamp)) 2>&1 | tee -a $(TESTLOG) 122 + @$(MAKE) check-failstamp 123 + 124 + .PHONY: check-failstamp 125 + check-failstamp: 126 + @if [ -f $(failstamp) ]; then \ 127 + echo 'Unexpected error in the test infrastructure:'; \ 128 + cat $(failstamp); \ 129 + rm $(failstamp); \ 130 + exit 1; \ 131 + fi 123 132 124 133 .PHONY: all-enabled 125 134 all-enabled: lib tools ··· 139 148 @$(MAKE) $(NO_PRINT) retries 140 149 @$(MAKE) report 141 150 142 - # The targets below use GNU parallel to paralellize tests 151 + # The targets below use GNU parallel to parallelize tests 143 152 # 'make all' and 'make parallel' should be equivalent 144 153 # 145 154 # parallel uses specific logic to make sure the output of the commands ··· 206 215 exit 1; \ 207 216 fi 208 217 @$(MAKE) $(NO_PRINT) exec-one DIR=$(DIR) 209 - @if [ -f $(failstamp) ]; then rm $(failstamp); exit 1; fi 218 + @$(MAKE) check-failstamp 210 219 211 220 .PHONY: exec-one 212 221 exec-one: ··· 235 244 (IFS=$$(printf "\r\n"); while read testfile; do \ 236 245 TERM=dumb $(OCAMLTESTENV) \ 237 246 $(ocamltest) $(OCAMLTESTFLAGS) $(DIR)/$$testfile || \ 238 - touch $(failstamp); \ 239 - done < $$file) || touch $(failstamp) 247 + echo " ... testing '$$testfile' => unexpected error"; \ 248 + done < $$file) || echo directory "$(DIR)" >>$(failstamp) 240 249 241 250 .PHONY: clean-one 242 251 clean-one:
+34
testsuite/tests/basic-float/tfloat_hex.ml
··· 20 20 try_float_of_string "0x1.0p-2147483648"; 21 21 try_float_of_string "0x123456789ABCDEF0p2147483647"; 22 22 try_float_of_string "0x1p2147483648"; 23 + 24 + (* Allow underscore almost everywhere *) 25 + try_float_of_string "_0x1.1"; 26 + try_float_of_string "0_x1.1"; 27 + try_float_of_string "0x_1.1"; 28 + try_float_of_string "0x1_.1"; 29 + try_float_of_string "0x1._"; 30 + try_float_of_string "0x1.1_"; 31 + try_float_of_string "0x1_p1"; 32 + try_float_of_string "0x1p_1"; 33 + try_float_of_string "0x1p1_"; 34 + try_float_of_string "0x1p-1_1"; 35 + try_float_of_string "0x1p-1_"; 36 + try_float_of_string "0x1p+1_1"; 37 + try_float_of_string "0x1p+1_"; 38 + 39 + try_float_of_string "0x1p1\000suffix" 40 + 41 + let () = 42 + (* check that the compiler can also parse tokens *) 43 + let _ = 0x1A in 44 + let _ = 0x1Ap3 in 45 + 46 + let _ = 0x1.0p-2147483648 in 47 + let _ = 0x123456789ABCDEF0p2147483647 in 48 + let _ = 0x1p2147483648 in 49 + 50 + let _ = 0x1_._1p1_1 in 51 + let _ = 0x1_._1p1_ in 52 + let _ = 0x1_._1p-1_1 in 53 + let _ = 0x1_._1p-1_ in 54 + let _ = 0x1_._1p+1_1 in 55 + let _ = 0x1_._1p+1_ in 56 + ()
+14
testsuite/tests/basic-float/tfloat_hex.reference
··· 7 7 0. 8 8 inf 9 9 inf 10 + 1.0625 11 + 1.0625 12 + 1.0625 13 + 1.0625 14 + 1. 15 + 1.0625 16 + 2. 17 + 2. 18 + 2. 19 + 0.00048828125 20 + 0.5 21 + 2048. 22 + 2. 23 + Failure("float_of_string")
+2 -2
testsuite/tests/basic-modules/recursive_module_evaluation_errors.ml
··· 63 63 end 64 64 and B: sig val value: unit end = struct let value = A.f () end 65 65 [%%expect {| 66 - Line 4, characters 6-72: 66 + Lines 4-7, characters 6-3: 67 67 4 | ......struct 68 68 5 | module F(X:sig end) = struct end 69 69 6 | let f () = B.value ··· 93 93 and B: sig val value: unit end = struct let value = A.f () end 94 94 end 95 95 [%%expect {| 96 - Line 5, characters 8-62: 96 + Lines 5-8, characters 8-5: 97 97 5 | ........struct 98 98 6 | module M = X.M 99 99 7 | let f () = B.value
+1 -1
testsuite/tests/basic-more/morematch.compilers.reference
··· 42 42 456 | | _,_,Y -> 5 43 43 ^^^^^ 44 44 Warning 11: this match case is unused. 45 - File "morematch.ml", line 1050, characters 8-65: 45 + File "morematch.ml", lines 1050-1053, characters 8-10: 46 46 1050 | ........function 47 47 1051 | | A (`A|`C) -> 0 48 48 1052 | | B (`B,`D) -> 1
+27 -27
testsuite/tests/basic-more/robustmatch.compilers.reference
··· 1 - File "robustmatch.ml", line 33, characters 6-122: 1 + File "robustmatch.ml", lines 33-37, characters 6-23: 2 2 33 | ......match t1, t2, x with 3 3 34 | | AB, AB, A -> () 4 4 35 | | MAB, _, A -> () ··· 7 7 Warning 8: this pattern-matching is not exhaustive. 8 8 Here is an example of a case that is not matched: 9 9 (AB, MAB, A) 10 - File "robustmatch.ml", line 54, characters 4-73: 10 + File "robustmatch.ml", lines 54-56, characters 4-27: 11 11 54 | ....match r1, r2, a with 12 12 55 | | R1, _, 0 -> () 13 13 56 | | _, R2, "coucou" -> () 14 14 Warning 8: this pattern-matching is not exhaustive. 15 15 Here is an example of a case that is not matched: 16 16 (R1, R1, 1) 17 - File "robustmatch.ml", line 64, characters 4-73: 17 + File "robustmatch.ml", lines 64-66, characters 4-27: 18 18 64 | ....match r1, r2, a with 19 19 65 | | R1, _, A -> () 20 20 66 | | _, R2, "coucou" -> () 21 21 Warning 8: this pattern-matching is not exhaustive. 22 22 Here is an example of a case that is not matched: 23 23 (R1, R1, (B|C)) 24 - File "robustmatch.ml", line 69, characters 4-73: 24 + File "robustmatch.ml", lines 69-71, characters 4-20: 25 25 69 | ....match r1, r2, a with 26 26 70 | | _, R2, "coucou" -> () 27 27 71 | | R1, _, A -> () 28 28 Warning 8: this pattern-matching is not exhaustive. 29 29 Here is an example of a case that is not matched: 30 30 (R1, R1, (B|C)) 31 - File "robustmatch.ml", line 74, characters 4-73: 31 + File "robustmatch.ml", lines 74-76, characters 4-20: 32 32 74 | ....match r1, r2, a with 33 33 75 | | _, R2, "coucou" -> () 34 34 76 | | R1, _, _ -> () 35 35 Warning 8: this pattern-matching is not exhaustive. 36 36 Here is an example of a case that is not matched: 37 37 (R2, R2, "") 38 - File "robustmatch.ml", line 85, characters 4-66: 38 + File "robustmatch.ml", lines 85-87, characters 4-20: 39 39 85 | ....match r1, r2, a with 40 40 86 | | R1, _, A -> () 41 41 87 | | _, R2, X -> () 42 42 Warning 8: this pattern-matching is not exhaustive. 43 43 Here is an example of a case that is not matched: 44 44 (R1, R1, (B|C)) 45 - File "robustmatch.ml", line 90, characters 4-87: 45 + File "robustmatch.ml", lines 90-93, characters 4-20: 46 46 90 | ....match r1, r2, a with 47 47 91 | | R1, _, A -> () 48 48 92 | | _, R2, X -> () ··· 50 50 Warning 8: this pattern-matching is not exhaustive. 51 51 Here is an example of a case that is not matched: 52 52 (R2, R2, (Y|Z)) 53 - File "robustmatch.ml", line 96, characters 4-66: 53 + File "robustmatch.ml", lines 96-98, characters 4-20: 54 54 96 | ....match r1, r2, a with 55 55 97 | | R1, _, _ -> () 56 56 98 | | _, R2, X -> () 57 57 Warning 8: this pattern-matching is not exhaustive. 58 58 Here is an example of a case that is not matched: 59 59 (R2, R2, (Y|Z)) 60 - File "robustmatch.ml", line 107, characters 4-66: 60 + File "robustmatch.ml", lines 107-109, characters 4-20: 61 61 107 | ....match r1, r2, a with 62 62 108 | | R1, _, A -> () 63 63 109 | | _, R2, X -> () 64 64 Warning 8: this pattern-matching is not exhaustive. 65 65 Here is an example of a case that is not matched: 66 66 (R1, R1, (B|C)) 67 - File "robustmatch.ml", line 129, characters 4-66: 67 + File "robustmatch.ml", lines 129-131, characters 4-20: 68 68 129 | ....match r1, r2, a with 69 69 130 | | R1, _, A -> () 70 70 131 | | _, R2, X -> () 71 71 Warning 8: this pattern-matching is not exhaustive. 72 72 Here is an example of a case that is not matched: 73 73 (R1, R1, B) 74 - File "robustmatch.ml", line 151, characters 4-66: 74 + File "robustmatch.ml", lines 151-153, characters 4-20: 75 75 151 | ....match r1, r2, a with 76 76 152 | | R1, _, A -> () 77 77 153 | | _, R2, X -> () 78 78 Warning 8: this pattern-matching is not exhaustive. 79 79 Here is an example of a case that is not matched: 80 80 (R1, R1, B) 81 - File "robustmatch.ml", line 156, characters 4-87: 81 + File "robustmatch.ml", lines 156-159, characters 4-20: 82 82 156 | ....match r1, r2, a with 83 83 157 | | R1, _, A -> () 84 84 158 | | _, R2, X -> () ··· 86 86 Warning 8: this pattern-matching is not exhaustive. 87 87 Here is an example of a case that is not matched: 88 88 (R2, R2, Y) 89 - File "robustmatch.ml", line 162, characters 4-66: 89 + File "robustmatch.ml", lines 162-164, characters 4-20: 90 90 162 | ....match r1, r2, a with 91 91 163 | | R1, _, _ -> () 92 92 164 | | _, R2, X -> () 93 93 Warning 8: this pattern-matching is not exhaustive. 94 94 Here is an example of a case that is not matched: 95 95 (R2, R2, Y) 96 - File "robustmatch.ml", line 167, characters 4-66: 96 + File "robustmatch.ml", lines 167-169, characters 4-20: 97 97 167 | ....match r1, r2, a with 98 98 168 | | R1, _, C -> () 99 99 169 | | _, R2, Y -> () 100 100 Warning 8: this pattern-matching is not exhaustive. 101 101 Here is an example of a case that is not matched: 102 102 (R1, R1, A) 103 - File "robustmatch.ml", line 176, characters 4-90: 103 + File "robustmatch.ml", lines 176-179, characters 4-20: 104 104 176 | ....match r1, r2, a with 105 105 177 | | _, R1, 0 -> () 106 106 178 | | R2, _, [||] -> () ··· 108 108 Warning 8: this pattern-matching is not exhaustive. 109 109 Here is an example of a case that is not matched: 110 110 (R2, R2, [| _ |]) 111 - File "robustmatch.ml", line 182, characters 4-69: 111 + File "robustmatch.ml", lines 182-184, characters 4-23: 112 112 182 | ....match r1, r2, a with 113 113 183 | | R1, _, _ -> () 114 114 184 | | _, R2, [||] -> () 115 115 Warning 8: this pattern-matching is not exhaustive. 116 116 Here is an example of a case that is not matched: 117 117 (R2, R2, [| _ |]) 118 - File "robustmatch.ml", line 187, characters 4-90: 118 + File "robustmatch.ml", lines 187-190, characters 4-20: 119 119 187 | ....match r1, r2, a with 120 120 188 | | _, R2, [||] -> () 121 121 189 | | R1, _, 0 -> () ··· 123 123 Warning 8: this pattern-matching is not exhaustive. 124 124 Here is an example of a case that is not matched: 125 125 (R2, R2, [| _ |]) 126 - File "robustmatch.ml", line 200, characters 4-89: 126 + File "robustmatch.ml", lines 200-203, characters 4-19: 127 127 200 | ....match r1, r2, a with 128 128 201 | | _, R2, [||] -> () 129 129 202 | | R1, _, 0 -> () 130 130 203 | | _, _, _ -> () 131 131 Warning 4: this pattern-matching is fragile. 132 132 It will remain exhaustive when constructors are added to type repr. 133 - File "robustmatch.ml", line 210, characters 4-75: 133 + File "robustmatch.ml", lines 210-212, characters 4-27: 134 134 210 | ....match r1, r2, a with 135 135 211 | | R1, _, 'c' -> () 136 136 212 | | _, R2, "coucou" -> () 137 137 Warning 8: this pattern-matching is not exhaustive. 138 138 Here is an example of a case that is not matched: 139 139 (R1, R1, 'a') 140 - File "robustmatch.ml", line 219, characters 4-74: 140 + File "robustmatch.ml", lines 219-221, characters 4-27: 141 141 219 | ....match r1, r2, a with 142 142 220 | | R1, _, `A -> () 143 143 221 | | _, R2, "coucou" -> () 144 144 Warning 8: this pattern-matching is not exhaustive. 145 145 Here is an example of a case that is not matched: 146 146 (R1, R1, `B) 147 - File "robustmatch.ml", line 228, characters 4-89: 147 + File "robustmatch.ml", lines 228-230, characters 4-37: 148 148 228 | ....match r1, r2, a with 149 149 229 | | R1, _, (3, "") -> () 150 150 230 | | _, R2, (1, "coucou", 'a') -> () 151 151 Warning 8: this pattern-matching is not exhaustive. 152 152 Here is an example of a case that is not matched: 153 153 (R1, R1, (3, "*")) 154 - File "robustmatch.ml", line 239, characters 4-113: 154 + File "robustmatch.ml", lines 239-241, characters 4-51: 155 155 239 | ....match r1, r2, a with 156 156 240 | | R1, _, { x = 3; y = "" } -> () 157 157 241 | | _, R2, { a = 1; b = "coucou"; c = 'a' } -> () 158 158 Warning 8: this pattern-matching is not exhaustive. 159 159 Here is an example of a case that is not matched: 160 160 (R1, R1, {x=3; y="*"}) 161 - File "robustmatch.ml", line 244, characters 4-113: 161 + File "robustmatch.ml", lines 244-246, characters 4-36: 162 162 244 | ....match r1, r2, a with 163 163 245 | | R2, _, { a = 1; b = "coucou"; c = 'a' } -> () 164 164 246 | | _, R1, { x = 3; y = "" } -> () 165 165 Warning 8: this pattern-matching is not exhaustive. 166 166 Here is an example of a case that is not matched: 167 167 (R2, R2, {a=1; b="coucou"; c='b'}) 168 - File "robustmatch.ml", line 253, characters 4-72: 168 + File "robustmatch.ml", lines 253-255, characters 4-20: 169 169 253 | ....match r1, r2, a with 170 170 254 | | R1, _, (3, "") -> () 171 171 255 | | _, R2, 1 -> () 172 172 Warning 8: this pattern-matching is not exhaustive. 173 173 Here is an example of a case that is not matched: 174 174 (R1, R1, (3, "*")) 175 - File "robustmatch.ml", line 263, characters 4-82: 175 + File "robustmatch.ml", lines 263-265, characters 4-20: 176 176 263 | ....match r1, r2, a with 177 177 264 | | R1, _, { x = 3; y = "" } -> () 178 178 265 | | _, R2, 1 -> () 179 179 Warning 8: this pattern-matching is not exhaustive. 180 180 Here is an example of a case that is not matched: 181 181 (R1, R1, {x=3; y="*"}) 182 - File "robustmatch.ml", line 272, characters 4-71: 182 + File "robustmatch.ml", lines 272-274, characters 4-20: 183 183 272 | ....match r1, r2, a with 184 184 273 | | R1, _, lazy 1 -> () 185 185 274 | | _, R2, 1 -> () 186 186 Warning 8: this pattern-matching is not exhaustive. 187 187 Here is an example of a case that is not matched: 188 188 (R1, R1, lazy 0) 189 - File "robustmatch.ml", line 281, characters 4-99: 189 + File "robustmatch.ml", lines 281-284, characters 4-24: 190 190 281 | ....match r1, r2, a with 191 191 282 | | R1, _, () -> () 192 192 283 | | _, R2, "coucou" -> ()
+7 -7
testsuite/tests/basic/patmatch_incoherence.ml
··· 35 35 | { x = None } -> () 36 36 ;; 37 37 [%%expect{| 38 - Line 1, characters 0-70: 38 + Lines 1-3, characters 0-20: 39 39 1 | match { x = assert false } with 40 40 2 | | { x = 3 } -> () 41 41 3 | | { x = None } -> () ··· 50 50 | { x = "" } -> () 51 51 ;; 52 52 [%%expect{| 53 - Line 1, characters 0-71: 53 + Lines 1-3, characters 0-18: 54 54 1 | match { x = assert false } with 55 55 2 | | { x = None } -> () 56 56 3 | | { x = "" } -> () ··· 65 65 | { x = `X } -> () 66 66 ;; 67 67 [%%expect{| 68 - Line 1, characters 0-71: 68 + Lines 1-3, characters 0-18: 69 69 1 | match { x = assert false } with 70 70 2 | | { x = None } -> () 71 71 3 | | { x = `X } -> () ··· 80 80 | { x = 3 } -> () 81 81 ;; 82 82 [%%expect{| 83 - Line 1, characters 0-70: 83 + Lines 1-3, characters 0-17: 84 84 1 | match { x = assert false } with 85 85 2 | | { x = [||] } -> () 86 86 3 | | { x = 3 } -> () ··· 95 95 | { x = 3 } -> () 96 96 ;; 97 97 [%%expect{| 98 - Line 1, characters 0-68: 98 + Lines 1-3, characters 0-17: 99 99 1 | match { x = assert false } with 100 100 2 | | { x = `X } -> () 101 101 3 | | { x = 3 } -> () ··· 110 110 | { x = 3 } -> () 111 111 ;; 112 112 [%%expect{| 113 - Line 1, characters 0-74: 113 + Lines 1-3, characters 0-17: 114 114 1 | match { x = assert false } with 115 115 2 | | { x = `X "lol" } -> () 116 116 3 | | { x = 3 } -> () ··· 126 126 | { x = 3 } -> () 127 127 ;; 128 128 [%%expect{| 129 - Line 1, characters 0-95: 129 + Lines 1-4, characters 0-17: 130 130 1 | match { x = assert false } with 131 131 2 | | { x = (2., "") } -> () 132 132 3 | | { x = None } -> ()
+288 -44
testsuite/tests/basic/switch_opts.ml
··· 12 12 (* These test functions need to have at least three cases. 13 13 Functions with fewer cases don't trigger the optimisation, 14 14 as they are compiled to if-then-else, not switch *) 15 - let testcases = [ 16 - Test (3, 3, function 1 -> 1 | 2 -> 2 | 3 -> 3 | _ -> 0); 17 - Test (3, -3, function 1 -> 1 | 2 -> 2 | 3 -> -3 | _ -> 0); 18 - Test (3, min_int, function 1 -> 1 | 2 -> 2 | 3 -> min_int | _ -> 0); 19 - Test (3, max_int, function 1 -> 1 | 2 -> 2 | 3 -> max_int | _ -> 0); 20 - Test (3, 3., function 1 -> 1. | 2 -> 2. | 3 -> 3. | _ -> 0.); 21 - Test (3, Sys.opaque_identity "c" ^ Sys.opaque_identity "c", 22 - function 1 -> "a" | 2 -> "b" | 3 -> "cc" | _ -> ""); 23 - Test (3, List.rev [3;2;1], 24 - function 1 -> [] | 2 -> [42] | 3 -> [1;2;3] | _ -> [415]); 25 15 26 - Test (C, 3, function A -> 1 | B -> 2 | C -> 3); 27 - Test (C, -3, function A -> 1 | B -> 2 | C -> -3); 28 - Test (C, min_int, function A -> 1 | B -> 2 | C -> min_int); 29 - Test (C, max_int, function A -> 1 | B -> 2 | C -> max_int); 30 - Test (C, 3., function A -> 1. | B -> 2. | C -> 3.); 31 - Test (C, "c", function A -> "a" | B -> "b" | C -> "c"); 32 - Test (C, List.rev [3;2;1], function A -> [] | B -> [42] | C -> [1;2;3]); 16 + let passes = ref 0 33 17 34 - Test (42, 42, function 35 - | 1 -> 1 | 2 -> 2 | 3 -> 3 | 4 -> 4 | 5 -> 5 | 6 -> 6 | 7 -> 7 | 8 -> 8 36 - | 9 -> 9 | 10 -> 10 | 11 -> 11 | 12 -> 12 | 13 -> 13 | 14 -> 14 | 15 -> 15 37 - | 16 -> 16 | 17 -> 17 | 18 -> 18 | 19 -> 19 | 20 -> 20 | 21 -> 21 | 22 -> 22 38 - | 23 -> 23 | 24 -> 24 | 25 -> 25 | 26 -> 26 | 27 -> 27 | 28 -> 28 | 29 -> 29 39 - | 30 -> 30 | 31 -> 31 | 32 -> 32 | 33 -> 33 | 34 -> 34 | 35 -> 35 | 36 -> 36 40 - | 37 -> 37 | 38 -> 38 | 39 -> 39 | 40 -> 40 | 41 -> 41 | 42 -> 42 | 43 -> 43 41 - | 44 -> 44 | 45 -> 45 | 46 -> 46 | 47 -> 47 | 48 -> 48 | 49 -> 49 | 50 -> 50 42 - | 51 -> 51 | 52 -> 52 | 53 -> 53 | 54 -> 54 | 55 -> 55 | 56 -> 56 | 57 -> 57 43 - | 58 -> 58 | 59 -> 59 | 60 -> 60 | 61 -> 61 | 62 -> 62 | 63 -> 63 | 64 -> 64 44 - | 65 -> 65 | 66 -> 66 | 67 -> 67 | 68 -> 68 | 69 -> 69 | 70 -> 70 | 71 -> 71 45 - | 72 -> 72 | 73 -> 73 | 74 -> 74 | 75 -> 75 | 76 -> 76 | 77 -> 77 | 78 -> 78 46 - | 79 -> 79 | 80 -> 80 | 81 -> 81 | 82 -> 82 | 83 -> 83 | 84 -> 84 | 85 -> 85 47 - | 86 -> 86 | 87 -> 87 | 88 -> 88 | 89 -> 89 | 90 -> 90 | 91 -> 91 | 92 -> 92 48 - | 93 -> 93 | 94 -> 94 | 95 -> 95 | 96 -> 96 | 97 -> 97 | 98 -> 98 | 99 -> 99 49 - | _ -> 0); 18 + let full_test line ~f ~results () = 19 + let f = Sys.opaque_identity f in 20 + List.iter 21 + (fun (input, output) -> 22 + let result = f input in 23 + if result <> output 24 + then raise (Assert_failure (__FILE__,line,0)) 25 + ) 26 + results; 27 + incr passes 50 28 51 - Test (3, `Tertiary, function 52 - | 1 -> `Primary 53 - | 2 -> `Secondary 54 - | 3 -> `Tertiary 55 - | n -> invalid_arg "test") 56 - ] 29 + let test_int_match = 30 + full_test __LINE__ 31 + ~f:(function 32 + | 1 -> 1 33 + | 2 -> 2 34 + | 3 -> 3 35 + | _ -> 0 36 + ) 37 + ~results: 38 + [ 1,1; 2,2; 3,3; 4,0; 0,0 ] 57 39 58 - let passes = ref 0 59 - let run_test (Test (a, b, f)) = 60 - assert (f a = b); 61 - incr passes 40 + let test_int_match_reverse = 41 + full_test __LINE__ 42 + ~f:(function 43 + | 1 -> 3 44 + | 2 -> 2 45 + | 3 -> 1 46 + | _ -> 0 47 + ) 48 + ~results: 49 + [ 1,3; 2,2; 3,1; 4,0; 0,0 ] 50 + 51 + let test_int_match_negative = 52 + full_test __LINE__ 53 + ~f:(function 54 + | 1 -> -1 55 + | 2 -> -2 56 + | 3 -> -3 57 + | _ -> 0 58 + ) 59 + ~results: 60 + [ 1,-1; 2,-2; 3,-3; 4,0; 0,0 ] 61 + 62 + let test_int_match_negative_reverse = 63 + full_test __LINE__ 64 + ~f:(function 65 + | 1 -> -3 66 + | 2 -> -2 67 + | 3 -> -1 68 + | _ -> 0 69 + ) 70 + ~results: 71 + [ 1,-3; 2,-2; 3,-1; 4,0; 0,0 ] 72 + 73 + let test_int_min_int = 74 + full_test __LINE__ 75 + ~f:(function 76 + | 1 -> 1 77 + | 2 -> 2 78 + | 3 -> min_int 79 + | _ -> 0 80 + ) 81 + ~results: 82 + [ 1,1; 2,2; 3,min_int; 4,0; 0,0 ] 83 + 84 + let test_int_max_int = 85 + full_test __LINE__ 86 + ~f:(function 87 + | 1 -> 1 88 + | 2 -> 2 89 + | 3 -> max_int 90 + | _ -> 0 91 + ) 92 + ~results: 93 + [ 1,1; 2,2; 3,max_int; 4,0; 0,0 ] 94 + 95 + let test_float = 96 + full_test __LINE__ 97 + ~f:(function 98 + | 1 -> 1.0 99 + | 2 -> 2.0 100 + | 3 -> 3.0 101 + | _ -> 0.0 102 + ) 103 + ~results: 104 + [ 1,1.0; 2,2.0; 3,3.0; 4,0.0; 0,0.0 ] 105 + 106 + let test_string = 107 + full_test __LINE__ 108 + ~f:(function 109 + | 1 -> "a" 110 + | 2 -> "b" 111 + | 3 -> "cc" 112 + | _ -> "" 113 + ) 114 + ~results: 115 + [ 1,"a"; 2, "b" 116 + ; 3, Sys.opaque_identity "c" ^ Sys.opaque_identity "c"; 4, ""; 0, "" ] 117 + 118 + let test_list = 119 + full_test __LINE__ 120 + ~f:(function 121 + | 1 -> [] 122 + | 2 -> [ 42 ] 123 + | 3 -> [ 1; 2; 3 ] 124 + | _ -> [ 415 ] 125 + ) 126 + ~results: 127 + [ 1, []; 2, [ 42 ]; 3, List.rev [3;2;1]; 4, [ 415 ]; 0, [ 415 ] ] 128 + 129 + let test_abc = 130 + full_test __LINE__ 131 + ~f:(function 132 + | A -> 1 133 + | B -> 2 134 + | C -> 3 135 + ) 136 + ~results: 137 + [ A, 1; B, 2; C, 3] 138 + 139 + let test_abc_unsorted = 140 + full_test __LINE__ 141 + ~f:(function 142 + | C -> 3 143 + | A -> 1 144 + | B -> 2 145 + ) 146 + ~results: 147 + [ A, 1; B, 2; C, 3] 148 + 149 + let test_abc_neg3 = 150 + full_test __LINE__ 151 + ~f:(function 152 + | A -> 1 153 + | B -> 2 154 + | C -> -3 155 + ) 156 + ~results: 157 + [ A, 1; B, 2; C, -3] 158 + 159 + let test_abc_min_int = 160 + full_test __LINE__ 161 + ~f:(function 162 + | A -> 1 163 + | B -> 2 164 + | C -> min_int 165 + ) 166 + ~results: 167 + [ A, 1; B, 2; C, min_int ] 168 + 169 + let test_abc_max_int = 170 + full_test __LINE__ 171 + ~f:(function 172 + | A -> 1 173 + | B -> 2 174 + | C -> max_int 175 + ) 176 + ~results: 177 + [ A, 1; B, 2; C, max_int ] 178 + 179 + let test_abc_float = 180 + full_test __LINE__ 181 + ~f:(function 182 + | A -> 1. 183 + | B -> 2. 184 + | C -> 3. 185 + ) 186 + ~results: 187 + [ A, 1.; B, 2.; C, 3. ] 188 + 189 + let test_abc_string = 190 + full_test __LINE__ 191 + ~f:(function 192 + | A -> "a" 193 + | B -> "b" 194 + | C -> "c" 195 + ) 196 + ~results: 197 + [ A, "a"; B, "b"; C, "c" ] 198 + 199 + let test_abc_list = 200 + full_test __LINE__ 201 + ~f:(function 202 + | A -> [] 203 + | B -> [42] 204 + | C -> [1;2;3] 205 + ) 206 + ~results: 207 + [ A, []; B, [42]; C, List.rev [3;2;1] ] 208 + 209 + let test_f99 = 210 + full_test __LINE__ 211 + ~f:(function 212 + | 1 -> 1 | 2 -> 2 | 3 -> 3 | 4 -> 4 | 5 -> 5 | 6 -> 6 | 7 -> 7 | 8 -> 8 213 + | 9 -> 9 | 10 -> 10 | 11 -> 11 | 12 -> 12 | 13 -> 13 | 14 -> 14 | 15 -> 15 214 + | 16 -> 16 | 17 -> 17 | 18 -> 18 | 19 -> 19 | 20 -> 20 | 21 -> 21 | 22 -> 22 215 + | 23 -> 23 | 24 -> 24 | 25 -> 25 | 26 -> 26 | 27 -> 27 | 28 -> 28 | 29 -> 29 216 + | 30 -> 30 | 31 -> 31 | 32 -> 32 | 33 -> 33 | 34 -> 34 | 35 -> 35 | 36 -> 36 217 + | 37 -> 37 | 38 -> 38 | 39 -> 39 | 40 -> 40 | 41 -> 41 | 42 -> 42 | 43 -> 43 218 + | 44 -> 44 | 45 -> 45 | 46 -> 46 | 47 -> 47 | 48 -> 48 | 49 -> 49 | 50 -> 50 219 + | 51 -> 51 | 52 -> 52 | 53 -> 53 | 54 -> 54 | 55 -> 55 | 56 -> 56 | 57 -> 57 220 + | 58 -> 58 | 59 -> 59 | 60 -> 60 | 61 -> 61 | 62 -> 62 | 63 -> 63 | 64 -> 64 221 + | 65 -> 65 | 66 -> 66 | 67 -> 67 | 68 -> 68 | 69 -> 69 | 70 -> 70 | 71 -> 71 222 + | 72 -> 72 | 73 -> 73 | 74 -> 74 | 75 -> 75 | 76 -> 76 | 77 -> 77 | 78 -> 78 223 + | 79 -> 79 | 80 -> 80 | 81 -> 81 | 82 -> 82 | 83 -> 83 | 84 -> 84 | 85 -> 85 224 + | 86 -> 86 | 87 -> 87 | 88 -> 88 | 89 -> 89 | 90 -> 90 | 91 -> 91 | 92 -> 92 225 + | 93 -> 93 | 94 -> 94 | 95 -> 95 | 96 -> 96 | 97 -> 97 | 98 -> 98 | 99 -> 99 226 + | _ -> 0 227 + ) 228 + ~results: 229 + [ 1,1; 42,42; 98, 98; 99,99; 100, 0 ] 230 + 231 + let test_poly = 232 + full_test __LINE__ 233 + ~f:(function 234 + | 1 -> `Primary 235 + | 2 -> `Secondary 236 + | 3 -> `Tertiary 237 + | n -> invalid_arg "test" 238 + ) 239 + ~results: 240 + [ 1, `Primary; 2, `Secondary; 3, `Tertiary ] 241 + 242 + let test_or = 243 + full_test __LINE__ 244 + ~f:(function 245 + | 1 | 2 | 3 -> 0 246 + | 4 | 5 | 6 -> 1 247 + | 7 -> 2 248 + | _ -> 0 249 + ) 250 + ~results: 251 + [ 1,0; 2,0; 3,0; 4,1; 5,1; 6,1; 7,2; 8,0; 0,0 ] 252 + 253 + type t' = E | F | G | H 254 + 255 + let test_or_efgh = 256 + full_test __LINE__ 257 + ~f:(function 258 + | E | H -> 0 259 + | F -> 1 260 + | G -> 2 261 + ) 262 + ~results: 263 + [ E,0; H,0; F,1; G,2 ] 264 + 265 + type 'a gadt = 266 + | Ag : int gadt 267 + | Bg : string gadt 268 + | Cg : int gadt 269 + | Dg : int gadt 270 + | Eg : int gadt 271 + 272 + let test_gadt = 273 + full_test __LINE__ 274 + ~f:(function 275 + | Ag -> 1 276 + | Cg -> 2 277 + | Dg -> 3 278 + | Eg -> 4 279 + ) 280 + ~results: 281 + [ Ag,1; Cg,2; Dg,3; Eg,4 ] 62 282 63 283 let () = 64 - List.iter run_test testcases; 284 + test_int_match (); 285 + test_int_match_reverse (); 286 + test_int_match_negative (); 287 + test_int_match_negative_reverse (); 288 + test_int_min_int (); 289 + test_int_max_int (); 290 + test_float (); 291 + test_string (); 292 + test_list (); 293 + test_abc (); 294 + test_abc_unsorted (); 295 + test_abc_neg3 (); 296 + test_abc_min_int (); 297 + test_abc_max_int (); 298 + test_abc_float (); 299 + test_abc_string (); 300 + test_abc_list (); 301 + test_f99 (); 302 + test_poly (); 303 + test_or (); 304 + test_or_efgh (); 305 + test_gadt (); 306 + () 307 + 308 + let () = 65 309 Printf.printf "%d tests passed\n" !passes
+1 -1
testsuite/tests/basic/switch_opts.reference
··· 1 - 16 tests passed 1 + 22 tests passed
+2 -2
testsuite/tests/generalized-open/gpr1506.ml
··· 115 115 end 116 116 end 117 117 [%%expect{| 118 - Line 3, characters 4-56: 118 + Lines 3-6, characters 4-7: 119 119 3 | ....open struct 120 120 4 | type t = T 121 121 5 | let x = T ··· 135 135 let g = y 136 136 end 137 137 [%%expect{| 138 - Line 3, characters 4-40: 138 + Lines 3-5, characters 4-7: 139 139 3 | ....open struct 140 140 4 | type t = T 141 141 5 | end
+4 -4
testsuite/tests/let-syntax/let_syntax.ml
··· 217 217 ^ 218 218 Error: This expression has type int but an expression was expected of type 219 219 float 220 - Hint: Did you mean `1.'? 220 + Hint: Did you mean `1.'? 221 221 |}];; 222 222 223 223 module Ill_typed_3 = struct ··· 290 290 x + y + z 291 291 );; 292 292 [%%expect{| 293 - Line 3, characters 9-44: 293 + Lines 3-5, characters 9-14: 294 294 3 | .........x = 1 295 295 4 | and+ y = 2 296 296 5 | and+ z = 3... ··· 320 320 x + y + z 321 321 );; 322 322 [%%expect{| 323 - Line 3, characters 9-29: 323 + Lines 3-4, characters 9-14: 324 324 3 | .........x = 1 325 325 4 | and+ y = 2 326 326 Error: These bindings have type int * int but bindings were expected of type ··· 512 512 return (first ^ second) 513 513 );; 514 514 [%%expect{| 515 - Line 6, characters 4-55: 515 + Lines 6-7, characters 4-29: 516 516 6 | ....let* second = read in 517 517 7 | return (first ^ second) 518 518 Error: This expression has type
+8 -8
testsuite/tests/letrec-check/basic.ml
··· 172 172 done 173 173 and y = x; ();; 174 174 [%%expect{| 175 - Line 2, characters 2-52: 175 + Lines 2-4, characters 2-6: 176 176 2 | ..for i = 0 to 1 do 177 177 3 | let z = y in ignore z 178 178 4 | done ··· 185 185 done 186 186 and y = 10;; 187 187 [%%expect{| 188 - Line 2, characters 2-33: 188 + Lines 2-4, characters 2-6: 189 189 2 | ..for i = 0 to y do 190 190 3 | () 191 191 4 | done ··· 198 198 done 199 199 and y = 0;; 200 200 [%%expect{| 201 - Line 2, characters 2-34: 201 + Lines 2-4, characters 2-6: 202 202 2 | ..for i = y to 10 do 203 203 3 | () 204 204 4 | done ··· 211 211 done 212 212 and y = x; ();; 213 213 [%%expect{| 214 - Line 2, characters 2-49: 214 + Lines 2-4, characters 2-6: 215 215 2 | ..while false do 216 216 3 | let y = x in ignore y 217 217 4 | done ··· 224 224 done 225 225 and y = false;; 226 226 [%%expect{| 227 - Line 2, characters 2-26: 227 + Lines 2-4, characters 2-6: 228 228 2 | ..while y do 229 229 3 | () 230 230 4 | done ··· 237 237 done 238 238 and y = false;; 239 239 [%%expect{| 240 - Line 2, characters 2-45: 240 + Lines 2-4, characters 2-6: 241 241 2 | ..while y do 242 242 3 | let y = x in ignore y 243 243 4 | done ··· 320 320 and y = match x with 321 321 z -> ("y", z);; 322 322 [%%expect{| 323 - Line 2, characters 2-85: 323 + Lines 2-4, characters 2-30: 324 324 2 | ..match let _ = y in raise Not_found with 325 325 3 | _ -> "x" 326 326 4 | | exception Not_found -> "z" ··· 346 346 and y = ref wrong 347 347 in ref ("foo" ^ ! ! !x);; 348 348 [%%expect{| 349 - Line 10, characters 2-65: 349 + Lines 10-12, characters 2-25: 350 350 10 | ..let rec x = ref y 351 351 11 | and y = ref wrong 352 352 12 | in ref ("foo" ^ ! ! !x)..
+1 -1
testsuite/tests/letrec-check/extension_constructor.ml
··· 18 18 and (m : (module T)) = 19 19 (module (struct exception A of int end) : T);; 20 20 [%%expect{| 21 - Line 2, characters 2-36: 21 + Lines 2-3, characters 2-8: 22 22 2 | ..let module M = (val m) in 23 23 3 | M.A 42 24 24 Error: This kind of expression is not allowed as right-hand side of `let rec'
+1 -1
testsuite/tests/letrec-check/modules.ml
··· 37 37 module N = struct let y = x end 38 38 end in M.N.y;; 39 39 [%%expect{| 40 - Line 2, characters 2-74: 40 + Lines 2-4, characters 2-14: 41 41 2 | ..let module M = struct 42 42 3 | module N = struct let y = x end 43 43 4 | end in M.N.y..
+1 -1
testsuite/tests/letrec-check/pr7706.ocaml.reference
··· 1 - Line 5, characters 2-67: 1 + Lines 5-6, characters 2-3: 2 2 5 | ..let y = if false then (fun z -> 1) else (fun z -> x 4 + 1) in 3 3 6 | y.. 4 4 Error: This kind of expression is not allowed as right-hand side of `let rec'
+2 -2
testsuite/tests/letrec-check/unboxed.ml
··· 59 59 [%%expect{| 60 60 type a = { a : b; } [@@unboxed] 61 61 and b = X of a | Y 62 - Line 5, characters 2-75: 62 + Lines 5-9, characters 2-10: 63 63 5 | ..{a= 64 64 6 | (if Sys.opaque_identity true then 65 65 7 | X a ··· 99 99 [%%expect{| 100 100 type d = D of e [@@unboxed] 101 101 and e = V of d | W 102 - Line 5, characters 2-72: 102 + Lines 5-9, characters 2-9: 103 103 5 | ..D 104 104 6 | (if Sys.opaque_identity true then 105 105 7 | V d
+4 -4
testsuite/tests/match-exception-warnings/exhaustiveness_warnings.ml
··· 16 16 ;; 17 17 18 18 [%%expect{| 19 - Line 8, characters 4-83: 19 + Lines 8-11, characters 4-16: 20 20 8 | ....match None with 21 21 9 | | exception e -> () 22 22 10 | | Some false -> () ··· 35 35 ;; 36 36 37 37 [%%expect{| 38 - Line 2, characters 4-73: 38 + Lines 2-4, characters 4-30: 39 39 2 | ....match None with 40 40 3 | | Some false -> () 41 41 4 | | None | exception _ -> () ··· 53 53 ;; 54 54 55 55 [%%expect{| 56 - Line 2, characters 4-73: 56 + Lines 2-4, characters 4-16: 57 57 2 | ....match None with 58 58 3 | | Some false | exception _ -> () 59 59 4 | | None -> () ··· 72 72 ;; 73 73 74 74 [%%expect{| 75 - Line 2, characters 4-111: 75 + Lines 2-5, characters 4-30: 76 76 2 | ....match None with 77 77 3 | | exception e -> () 78 78 4 | | Some false | exception _ -> ()
+8
testsuite/tests/parsetree/source.ml
··· 7364 7364 type (+' a, -' a', ' a'b', 'ab', ' abcd', ' (* ! *) x) t = 7365 7365 ' a * ' a' * ' a'b' * 'ab' * ' abcd' * ' (* !! *) x 7366 7366 as ' a' 7367 + 7368 + (* #2190 *) 7369 + 7370 + let f = function 7371 + | lazy (A foo) -> foo 7372 + 7373 + let () = 7374 + f (fun (type t) -> x)
+13
testsuite/tests/tool-ocamldep-shadowing/a.ml
··· 1 + (* TEST 2 + 3 + * setup-ocamlc.byte-build-env 4 + ** script 5 + script = "cp -R ${test_source_directory}/dir1 ${test_source_directory}/dir2 ." 6 + *** ocamlc.byte 7 + commandline = "-depend -slash -I dir1 -I dir2 a.ml" 8 + **** check-ocamlc.byte-output 9 + compiler_reference = "${test_source_directory}/a.reference" 10 + *) 11 + 12 + include B 13 + include C
+6
testsuite/tests/tool-ocamldep-shadowing/a.reference
··· 1 + a.cmo : \ 2 + dir2/c.cmi \ 3 + dir1/b.cmo 4 + a.cmx : \ 5 + dir2/c.cmi \ 6 + dir1/b.cmx
testsuite/tests/tool-ocamldep-shadowing/dir1/b.ml

This is a binary file and will not be displayed.

testsuite/tests/tool-ocamldep-shadowing/dir2/b.mli

This is a binary file and will not be displayed.

testsuite/tests/tool-ocamldep-shadowing/dir2/c.mli

This is a binary file and will not be displayed.

+1
testsuite/tests/tool-ocamldep-shadowing/ocamltests
··· 1 + a.ml
+3 -3
testsuite/tests/tool-toplevel/error_highlighting.compilers.reference
··· 24 24 ^ 25 25 Error: This expression has type int but an expression was expected of type 26 26 float 27 - Hint: Did you mean `1.'? 27 + Hint: Did you mean `1.'? 28 28 Line 4, characters 2-4: 29 29 4 | 2 in 30 30 ^^ ··· 33 33 2 | let x = (1 34 34 ^ 35 35 This '(' might be unmatched 36 - Line 2, characters 8-17: 36 + Lines 2-4, characters 8-2: 37 37 2 | ........(1 38 38 3 | + 39 39 4 | 2)... ··· 60 60 1 | let x = (1 61 61 ^ 62 62 This '(' might be unmatched 63 - File "error_highlighting_use4.ml", line 1, characters 8-17: 63 + File "error_highlighting_use4.ml", lines 1-3, characters 8-2: 64 64 1 | ........(1 65 65 2 | + 66 66 3 | 2)...
+11 -11
testsuite/tests/typing-core-bugs/const_int_hint.ml
··· 9 9 ^ 10 10 Error: This expression has type int but an expression was expected of type 11 11 int32 12 - Hint: Did you mean `1l'? 12 + Hint: Did you mean `1l'? 13 13 |}] 14 14 15 15 let _ : int32 * int32 = 42l, 43;; ··· 19 19 ^^ 20 20 Error: This expression has type int but an expression was expected of type 21 21 int32 22 - Hint: Did you mean `43l'? 22 + Hint: Did you mean `43l'? 23 23 |}] 24 24 25 25 let _ : int32 * nativeint = 42l, 43;; ··· 29 29 ^^ 30 30 Error: This expression has type int but an expression was expected of type 31 31 nativeint 32 - Hint: Did you mean `43n'? 32 + Hint: Did you mean `43n'? 33 33 |}] 34 34 35 35 let _ = min 6L 7;; ··· 39 39 ^ 40 40 Error: This expression has type int but an expression was expected of type 41 41 int64 42 - Hint: Did you mean `7L'? 42 + Hint: Did you mean `7L'? 43 43 |}] 44 44 45 45 let _ : float = 123;; ··· 49 49 ^^^ 50 50 Error: This expression has type int but an expression was expected of type 51 51 float 52 - Hint: Did you mean `123.'? 52 + Hint: Did you mean `123.'? 53 53 |}] 54 54 55 55 (* no hint *) ··· 74 74 ^ 75 75 Error: This pattern matches values of type int 76 76 but a pattern was expected which matches values of type int32 77 - Hint: Did you mean `0l'? 77 + Hint: Did you mean `0l'? 78 78 |}, Principal{| 79 79 Line 2, characters 4-5: 80 80 2 | | 0 -> 0l ··· 92 92 ^ 93 93 Error: This pattern matches values of type int 94 94 but a pattern was expected which matches values of type int64 95 - Hint: Did you mean `2L'? 95 + Hint: Did you mean `2L'? 96 96 |}] 97 97 98 98 (* symmetric *) ··· 103 103 ^^ 104 104 Error: This expression has type int64 but an expression was expected of type 105 105 int32 106 - Hint: Did you mean `1l'? 106 + Hint: Did you mean `1l'? 107 107 |}] 108 108 let _ : float = 1L;; 109 109 [%%expect{| ··· 112 112 ^^ 113 113 Error: This expression has type int64 but an expression was expected of type 114 114 float 115 - Hint: Did you mean `1.'? 115 + Hint: Did you mean `1.'? 116 116 |}] 117 117 let _ : int64 = 1n;; 118 118 [%%expect{| ··· 121 121 ^^ 122 122 Error: This expression has type nativeint 123 123 but an expression was expected of type int64 124 - Hint: Did you mean `1L'? 124 + Hint: Did you mean `1L'? 125 125 |}] 126 126 let _ : nativeint = 1l;; 127 127 [%%expect{| ··· 130 130 ^^ 131 131 Error: This expression has type int32 but an expression was expected of type 132 132 nativeint 133 - Hint: Did you mean `1n'? 133 + Hint: Did you mean `1n'? 134 134 |}] 135 135 136 136 (* not implemented *)
+1 -1
testsuite/tests/typing-core-bugs/int_operator_hint.ml
··· 75 75 ^ 76 76 Error: This expression has type int but an expression was expected of type 77 77 float 78 - Hint: Did you mean `0.'? 78 + Hint: Did you mean `0.'? 79 79 |}]
+321 -22
testsuite/tests/typing-extensions/extensions.ml
··· 1 1 (* TEST 2 - * toplevel 2 + * expect 3 3 *) 4 4 5 5 (* Ignore OCAMLRUNPARAM=b to be reproducible *) 6 6 Printexc.record_backtrace false;; 7 + [%%expect {| 8 + - : unit = () 9 + |}] 7 10 8 11 type foo = .. 9 12 ;; 13 + [%%expect {| 14 + type foo = .. 15 + |}] 10 16 11 17 type foo += 12 18 A 13 19 | B of int 14 20 ;; 21 + [%%expect {| 22 + type foo += A | B of int 23 + |}] 15 24 16 25 let is_a x = 17 26 match x with 18 27 A -> true 19 28 | _ -> false 20 29 ;; 30 + [%%expect {| 31 + val is_a : foo -> bool = <fun> 32 + |}] 21 33 22 34 (* The type must be open to create extension *) 23 35 24 36 type foo 25 37 ;; 38 + [%%expect {| 39 + type foo 40 + |}] 26 41 27 - type foo += A of int (* Error type is not open *) 42 + type foo += A of int 28 43 ;; 44 + [%%expect {| 45 + Line 1, characters 0-20: 46 + 1 | type foo += A of int 47 + ^^^^^^^^^^^^^^^^^^^^ 48 + Error: Type definition foo is not extensible 49 + |}] 29 50 30 51 (* The type must be public to create extension *) 31 52 32 53 type foo = private .. 33 54 ;; 55 + [%%expect {| 56 + type foo = private .. 57 + |}] 34 58 35 - type foo += A of int (* Error type is private *) 59 + type foo += A of int 36 60 ;; 61 + [%%expect {| 62 + Line 1, characters 12-20: 63 + 1 | type foo += A of int 64 + ^^^^^^^^ 65 + Error: Cannot extend private type definition foo 66 + |}] 37 67 38 68 (* The type parameters must match *) 39 69 40 70 type 'a foo = .. 41 71 ;; 72 + [%%expect {| 73 + type 'a foo = .. 74 + |}] 42 75 43 - type ('a, 'b) foo += A of int (* Error: type parameter mismatch *) 76 + type ('a, 'b) foo += A of int 44 77 ;; 78 + [%%expect {| 79 + Line 1, characters 0-29: 80 + 1 | type ('a, 'b) foo += A of int 81 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 82 + Error: This extension does not match the definition of type foo 83 + They have different arities. 84 + |}] 45 85 46 86 (* In a signature the type can be private *) 47 87 ··· 51 91 type foo += A of float 52 92 end 53 93 ;; 94 + [%%expect {| 95 + module type S = sig type foo = private .. type foo += A of float end 96 + |}] 54 97 55 98 (* But it must still be extensible *) 56 99 57 100 module type S = 58 101 sig 59 102 type foo 60 - type foo += B of float (* Error: foo does not have an extensible type *) 103 + type foo += B of float 61 104 end 62 105 ;; 106 + [%%expect {| 107 + Line 4, characters 2-24: 108 + 4 | type foo += B of float 109 + ^^^^^^^^^^^^^^^^^^^^^^ 110 + Error: Type definition foo is not extensible 111 + |}] 63 112 64 113 (* Signatures can change the grouping of extensions *) 65 114 66 115 type foo = .. 67 116 ;; 117 + [%%expect {| 118 + type foo = .. 119 + |}] 68 120 69 121 module M = struct 70 122 type foo += ··· 76 128 | D of float 77 129 end 78 130 ;; 131 + [%%expect {| 132 + module M : 133 + sig 134 + type foo += A of int | B of string 135 + type foo += C of int | D of float 136 + 137 + end 138 + |}] 79 139 80 140 module type S = sig 81 141 type foo += ··· 87 147 type foo += A of int 88 148 end 89 149 ;; 150 + [%%expect {| 151 + module type S = 152 + sig 153 + type foo += B of string | C of int 154 + type foo += D of float 155 + type foo += A of int 156 + end 157 + |}] 90 158 91 159 module M_S = (M : S) 92 160 ;; 161 + [%%expect {| 162 + module M_S : S 163 + |}] 93 164 94 165 (* Extensions can be GADTs *) 95 166 96 167 type 'a foo = .. 97 168 ;; 169 + [%%expect {| 170 + type 'a foo = .. 171 + |}] 98 172 99 173 type _ foo += 100 174 A : int -> int foo 101 175 | B : int foo 102 176 ;; 177 + [%%expect {| 178 + type _ foo += A : int -> int foo | B : int foo 179 + |}] 103 180 104 181 let get_num : type a. a foo -> a -> a option = fun f i1 -> 105 182 match f with 106 183 A i2 -> Some (i1 + i2) 107 184 | _ -> None 108 185 ;; 186 + [%%expect {| 187 + val get_num : 'a foo -> 'a -> 'a option = <fun> 188 + |}] 109 189 110 190 (* Extensions must obey constraints *) 111 191 112 192 type 'a foo = .. constraint 'a = [> `Var ] 113 193 ;; 194 + [%%expect {| 195 + type 'a foo = .. constraint 'a = [> `Var ] 196 + |}] 114 197 115 198 type 'a foo += A of 'a 116 199 ;; 200 + [%%expect {| 201 + type 'a foo += A of 'a 202 + |}] 117 203 118 - let a = A 9 (* ERROR: Constraints not met *) 204 + let a = A 9 119 205 ;; 206 + [%%expect {| 207 + Line 1, characters 10-11: 208 + 1 | let a = A 9 209 + ^ 210 + Error: This expression has type int but an expression was expected of type 211 + [> `Var ] 212 + |}] 120 213 121 - type 'a foo += B : int foo (* ERROR: Constraints not met *) 214 + type 'a foo += B : int foo 122 215 ;; 216 + [%%expect {| 217 + Line 1, characters 19-22: 218 + 1 | type 'a foo += B : int foo 219 + ^^^ 220 + Error: This type int should be an instance of type [> `Var ] 221 + |}] 123 222 124 223 (* Signatures can make an extension private *) 125 224 126 225 type foo = .. 127 226 ;; 227 + [%%expect {| 228 + type foo = .. 229 + |}] 128 230 129 231 module M = struct type foo += A of int end 130 232 ;; 233 + [%%expect {| 234 + module M : sig type foo += A of int end 235 + |}] 131 236 132 237 let a1 = M.A 10 133 238 ;; 239 + [%%expect {| 240 + val a1 : foo = M.A 10 241 + |}] 134 242 135 243 module type S = sig type foo += private A of int end 136 244 ;; 245 + [%%expect {| 246 + module type S = sig type foo += private A of int end 247 + |}] 137 248 138 249 module M_S = (M : S) 139 250 ;; 251 + [%%expect {| 252 + module M_S : S 253 + |}] 140 254 141 255 let is_s x = 142 256 match x with 143 257 M_S.A _ -> true 144 258 | _ -> false 145 259 ;; 260 + [%%expect {| 261 + val is_s : foo -> bool = <fun> 262 + |}] 146 263 147 - let a2 = M_S.A 20 (* ERROR: Cannot create a value using a private constructor *) 264 + let a2 = M_S.A 20 148 265 ;; 266 + [%%expect {| 267 + Line 1, characters 9-17: 268 + 1 | let a2 = M_S.A 20 269 + ^^^^^^^^ 270 + Error: Cannot use private constructor A to create values of type foo 271 + |}] 149 272 150 273 (* Extensions can be rebound *) 151 274 152 275 type foo = .. 153 276 ;; 277 + [%%expect {| 278 + type foo = .. 279 + |}] 154 280 155 281 module M = struct type foo += A1 of int end 156 282 ;; 283 + [%%expect {| 284 + module M : sig type foo += A1 of int end 285 + |}] 157 286 158 287 type foo += A2 = M.A1 159 288 ;; 289 + [%%expect {| 290 + type foo += A2 of int 291 + |}] 160 292 161 293 type bar = .. 162 294 ;; 295 + [%%expect {| 296 + type bar = .. 297 + |}] 163 298 164 - type bar += A3 = M.A1 (* Error: rebind wrong type *) 299 + type bar += A3 = M.A1 165 300 ;; 301 + [%%expect {| 302 + Line 1, characters 17-21: 303 + 1 | type bar += A3 = M.A1 304 + ^^^^ 305 + Error: The constructor M.A1 has type foo but was expected to be of type bar 306 + |}] 166 307 167 308 module M = struct type foo += private B1 of int end 168 309 ;; 310 + [%%expect {| 311 + module M : sig type foo += private B1 of int end 312 + |}] 169 313 170 314 type foo += private B2 = M.B1 171 315 ;; 316 + [%%expect {| 317 + type foo += private B2 of int 318 + |}] 172 319 173 - type foo += B3 = M.B1 (* Error: rebind private extension *) 320 + type foo += B3 = M.B1 174 321 ;; 322 + [%%expect {| 323 + Line 1, characters 17-21: 324 + 1 | type foo += B3 = M.B1 325 + ^^^^ 326 + Error: The constructor M.B1 is private 327 + |}] 175 328 176 - type foo += C = Unknown (* Error: unbound extension *) 329 + type foo += C = Unknown 177 330 ;; 331 + [%%expect {| 332 + Line 1, characters 16-23: 333 + 1 | type foo += C = Unknown 334 + ^^^^^^^ 335 + Error: Unbound constructor Unknown 336 + |}] 178 337 179 338 (* Extensions can be rebound even if type is private *) 180 339 181 340 module M : sig type foo = private .. type foo += A1 of int end 182 - = struct type foo = .. type foo += A1 of int end 341 + = struct type foo = .. type foo += A1 of int end;; 342 + [%%expect {| 343 + module M : sig type foo = private .. type foo += A1 of int end 344 + |}] 183 345 184 - type M.foo += A2 = M.A1 346 + type M.foo += A2 = M.A1;; 347 + [%%expect {| 348 + type M.foo += A2 of int 349 + |}] 185 350 186 351 (* Rebinding handles abbreviations *) 187 352 188 353 type 'a foo = .. 189 354 ;; 355 + [%%expect {| 356 + type 'a foo = .. 357 + |}] 190 358 191 359 type 'a foo1 = 'a foo = .. 192 360 ;; 361 + [%%expect {| 362 + type 'a foo1 = 'a foo = .. 363 + |}] 193 364 194 365 type 'a foo2 = 'a foo = .. 195 366 ;; 367 + [%%expect {| 368 + type 'a foo2 = 'a foo = .. 369 + |}] 196 370 197 371 type 'a foo1 += 198 372 A of int 199 373 | B of 'a 200 374 | C : int foo1 201 375 ;; 376 + [%%expect {| 377 + type 'a foo1 += A of int | B of 'a | C : int foo1 378 + |}] 202 379 203 380 type 'a foo2 += 204 381 D = A 205 382 | E = B 206 383 | F = C 207 384 ;; 385 + [%%expect {| 386 + type 'a foo2 += D of int | E of 'a | F : int foo2 387 + |}] 208 388 209 389 (* Extensions must obey variances *) 210 390 211 391 type +'a foo = .. 212 392 ;; 393 + [%%expect {| 394 + type +'a foo = .. 395 + |}] 213 396 214 397 type 'a foo += A of (int -> 'a) 215 398 ;; 399 + [%%expect {| 400 + type 'a foo += A of (int -> 'a) 401 + |}] 216 402 217 403 type 'a foo += B of ('a -> int) 218 - (* ERROR: Parameter variances are not satisfied *) 219 404 ;; 405 + [%%expect {| 406 + Line 1, characters 0-31: 407 + 1 | type 'a foo += B of ('a -> int) 408 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 409 + Error: In this definition, expected parameter variances are not satisfied. 410 + The 1st type parameter was expected to be covariant, 411 + but it is injective contravariant. 412 + |}] 220 413 221 414 type _ foo += C : ('a -> int) -> 'a foo 222 - (* ERROR: Parameter variances are not satisfied *) 223 415 ;; 416 + [%%expect {| 417 + Line 1, characters 0-39: 418 + 1 | type _ foo += C : ('a -> int) -> 'a foo 419 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 420 + Error: In this definition, expected parameter variances are not satisfied. 421 + The 1st type parameter was expected to be covariant, 422 + but it is injective contravariant. 423 + |}] 224 424 225 425 type 'a bar = .. 226 426 ;; 427 + [%%expect {| 428 + type 'a bar = .. 429 + |}] 227 430 228 - type +'a bar += D of (int -> 'a) (* ERROR: type variances do not match *) 431 + type +'a bar += D of (int -> 'a) 229 432 ;; 433 + [%%expect {| 434 + Line 1, characters 0-32: 435 + 1 | type +'a bar += D of (int -> 'a) 436 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 437 + Error: This extension does not match the definition of type bar 438 + Their variances do not agree. 439 + |}] 230 440 231 441 (* Exceptions are compatible with extensions *) 232 442 ··· 239 449 exception Foo of int * float 240 450 end 241 451 ;; 452 + [%%expect {| 453 + module M : sig type exn += Foo of int * float | Bar : 'a list -> exn end 454 + |}] 242 455 243 456 module M : sig 244 457 exception Bar : 'a list -> exn ··· 249 462 | Bar : 'a list -> exn 250 463 end 251 464 ;; 465 + [%%expect {| 466 + module M : 467 + sig exception Bar : 'a list -> exn exception Foo of int * float end 468 + |}] 252 469 253 470 exception Foo of int * float 254 471 ;; 472 + [%%expect {| 473 + exception Foo of int * float 474 + |}] 255 475 256 476 exception Bar : 'a list -> exn 257 477 ;; 478 + [%%expect {| 479 + exception Bar : 'a list -> exn 480 + |}] 258 481 259 482 module M : sig 260 483 type exn += ··· 265 488 exception Foo = Foo 266 489 end 267 490 ;; 491 + [%%expect {| 492 + module M : sig type exn += Foo of int * float | Bar : 'a list -> exn end 493 + |}] 268 494 269 495 (* Test toplevel printing *) 270 496 271 497 type foo = .. 272 498 ;; 499 + [%%expect {| 500 + type foo = .. 501 + |}] 273 502 274 503 type foo += 275 504 Foo of int * int option 276 505 | Bar of int option 277 506 ;; 507 + [%%expect {| 508 + type foo += Foo of int * int option | Bar of int option 509 + |}] 278 510 279 511 let x = Foo(3, Some 4), Bar(Some 5) (* Prints Foo and Bar successfully *) 280 512 ;; 513 + [%%expect {| 514 + val x : foo * foo = (Foo (3, Some 4), Bar (Some 5)) 515 + |}] 281 516 282 517 type foo += Foo of string 283 518 ;; 519 + [%%expect {| 520 + type foo += Foo of string 521 + |}] 284 522 285 523 let y = x (* Prints Bar but not Foo (which has been shadowed) *) 286 524 ;; 525 + [%%expect {| 526 + val y : foo * foo = (<extension>, Bar (Some 5)) 527 + |}] 287 528 288 529 exception Foo of int * int option 289 530 ;; 531 + [%%expect {| 532 + exception Foo of int * int option 533 + |}] 290 534 291 535 exception Bar of int option 292 536 ;; 537 + [%%expect {| 538 + exception Bar of int option 539 + |}] 293 540 294 541 let x = Foo(3, Some 4), Bar(Some 5) (* Prints Foo and Bar successfully *) 295 542 ;; 543 + [%%expect {| 544 + val x : exn * exn = (Foo (3, Some 4), Bar (Some 5)) 545 + |}] 296 546 297 547 type foo += Foo of string 298 548 ;; 549 + [%%expect {| 550 + type foo += Foo of string 551 + |}] 299 552 300 553 let y = x (* Prints Bar and part of Foo (which has been shadowed) *) 301 554 ;; 555 + [%%expect {| 556 + val y : exn * exn = (Foo (3, _), Bar (Some 5)) 557 + |}] 302 558 303 559 (* Test Obj functions *) 304 560 305 561 type foo = .. 306 562 ;; 563 + [%%expect {| 564 + type foo = .. 565 + |}] 307 566 308 567 type foo += 309 568 Foo 310 569 | Bar of int 311 570 ;; 571 + [%%expect {| 572 + type foo += Foo | Bar of int 573 + |}] 312 574 313 575 let extension_name e = Obj.Extension_constructor.name 314 - (Obj.Extension_constructor.of_val e);; 576 + (Obj.Extension_constructor.of_val e) 577 + ;; 578 + [%%expect {| 579 + val extension_name : 'a -> string = <fun> 580 + |}] 581 + 315 582 let extension_id e = Obj.Extension_constructor.id 316 - (Obj.Extension_constructor.of_val e);; 583 + (Obj.Extension_constructor.of_val e) 584 + ;; 585 + [%%expect {| 586 + val extension_id : 'a -> int = <fun> 587 + |}] 317 588 318 589 let n1 = extension_name Foo 319 590 ;; 591 + [%%expect {| 592 + val n1 : string = "Foo" 593 + |}] 320 594 321 595 let n2 = extension_name (Bar 1) 322 596 ;; 597 + [%%expect {| 598 + val n2 : string = "Bar" 599 + |}] 323 600 324 - let t = (extension_id (Bar 2)) = (extension_id (Bar 3)) (* true *) 601 + let t = (extension_id (Bar 2)) = (extension_id (Bar 3)) 325 602 ;; 603 + [%%expect {| 604 + val t : bool = true 605 + |}] 326 606 327 - let f = (extension_id (Bar 2)) = (extension_id Foo) (* false *) 607 + let f = (extension_id (Bar 2)) = (extension_id Foo) 328 608 ;; 609 + [%%expect {| 610 + val f : bool = false 611 + |}] 329 612 330 613 let is_foo x = (extension_id Foo) = (extension_id x) 614 + ;; 615 + [%%expect {| 616 + val is_foo : 'a -> bool = <fun> 617 + |}] 331 618 332 619 type foo += Foo 333 620 ;; 621 + [%%expect {| 622 + type foo += Foo 623 + |}] 334 624 335 625 let f = is_foo Foo 336 626 ;; 627 + [%%expect {| 628 + val f : bool = false 629 + |}] 337 630 338 - let _ = Obj.Extension_constructor.of_val 7 (* Invalid_arg *) 631 + let _ = Obj.Extension_constructor.of_val 7 339 632 ;; 633 + [%%expect {| 634 + Exception: Invalid_argument "Obj.extension_constructor". 635 + |}] 340 636 341 - let _ = Obj.Extension_constructor.of_val (object method m = 3 end) (* Invalid_arg *) 637 + let _ = Obj.Extension_constructor.of_val (object method m = 3 end) 342 638 ;; 639 + [%%expect {| 640 + Exception: Invalid_argument "Obj.extension_constructor". 641 + |}]
-138
testsuite/tests/typing-extensions/extensions.ocaml.reference
··· 1 - - : unit = () 2 - type foo = .. 3 - type foo += A | B of int 4 - val is_a : foo -> bool = <fun> 5 - type foo 6 - Line 2, characters 0-20: 7 - 2 | type foo += A of int (* Error type is not open *) 8 - ^^^^^^^^^^^^^^^^^^^^ 9 - Error: Type definition foo is not extensible 10 - type foo = private .. 11 - Line 2, characters 12-20: 12 - 2 | type foo += A of int (* Error type is private *) 13 - ^^^^^^^^ 14 - Error: Cannot extend private type definition foo 15 - type 'a foo = .. 16 - Line 2, characters 0-29: 17 - 2 | type ('a, 'b) foo += A of int (* Error: type parameter mismatch *) 18 - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 19 - Error: This extension does not match the definition of type foo 20 - They have different arities. 21 - module type S = sig type foo = private .. type foo += A of float end 22 - Line 7, characters 2-24: 23 - 7 | type foo += B of float (* Error: foo does not have an extensible type *) 24 - ^^^^^^^^^^^^^^^^^^^^^^ 25 - Error: Type definition foo is not extensible 26 - type foo = .. 27 - module M : 28 - sig 29 - type foo += A of int | B of string 30 - type foo += C of int | D of float 31 - 32 - end 33 - module type S = 34 - sig 35 - type foo += B of string | C of int 36 - type foo += D of float 37 - type foo += A of int 38 - end 39 - module M_S : S 40 - type 'a foo = .. 41 - type _ foo += A : int -> int foo | B : int foo 42 - val get_num : 'a foo -> 'a -> 'a option = <fun> 43 - type 'a foo = .. constraint 'a = [> `Var ] 44 - type 'a foo += A of 'a 45 - Line 2, characters 10-11: 46 - 2 | let a = A 9 (* ERROR: Constraints not met *) 47 - ^ 48 - Error: This expression has type int but an expression was expected of type 49 - [> `Var ] 50 - Line 2, characters 19-22: 51 - 2 | type 'a foo += B : int foo (* ERROR: Constraints not met *) 52 - ^^^ 53 - Error: This type int should be an instance of type [> `Var ] 54 - type foo = .. 55 - module M : sig type foo += A of int end 56 - val a1 : foo = M.A 10 57 - module type S = sig type foo += private A of int end 58 - module M_S : S 59 - val is_s : foo -> bool = <fun> 60 - Line 2, characters 9-17: 61 - 2 | let a2 = M_S.A 20 (* ERROR: Cannot create a value using a private constructor *) 62 - ^^^^^^^^ 63 - Error: Cannot create values of the private type foo 64 - type foo = .. 65 - module M : sig type foo += A1 of int end 66 - type foo += A2 of int 67 - type bar = .. 68 - Line 2, characters 17-21: 69 - 2 | type bar += A3 = M.A1 (* Error: rebind wrong type *) 70 - ^^^^ 71 - Error: The constructor M.A1 has type foo but was expected to be of type bar 72 - module M : sig type foo += private B1 of int end 73 - type foo += private B2 of int 74 - Line 2, characters 17-21: 75 - 2 | type foo += B3 = M.B1 (* Error: rebind private extension *) 76 - ^^^^ 77 - Error: The constructor M.B1 is private 78 - Line 2, characters 16-23: 79 - 2 | type foo += C = Unknown (* Error: unbound extension *) 80 - ^^^^^^^ 81 - Error: Unbound constructor Unknown 82 - module M : sig type foo = private .. type foo += A1 of int end 83 - type M.foo += A2 of int 84 - type 'a foo = .. 85 - type 'a foo1 = 'a foo = .. 86 - type 'a foo2 = 'a foo = .. 87 - type 'a foo1 += A of int | B of 'a | C : int foo1 88 - type 'a foo2 += D of int | E of 'a | F : int foo2 89 - type +'a foo = .. 90 - type 'a foo += A of (int -> 'a) 91 - Line 2, characters 0-31: 92 - 2 | type 'a foo += B of ('a -> int) 93 - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 94 - Error: In this definition, expected parameter variances are not satisfied. 95 - The 1st type parameter was expected to be covariant, 96 - but it is injective contravariant. 97 - Line 2, characters 0-39: 98 - 2 | type _ foo += C : ('a -> int) -> 'a foo 99 - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 100 - Error: In this definition, expected parameter variances are not satisfied. 101 - The 1st type parameter was expected to be covariant, 102 - but it is injective contravariant. 103 - type 'a bar = .. 104 - Line 2, characters 0-32: 105 - 2 | type +'a bar += D of (int -> 'a) (* ERROR: type variances do not match *) 106 - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 107 - Error: This extension does not match the definition of type bar 108 - Their variances do not agree. 109 - module M : sig type exn += Foo of int * float | Bar : 'a list -> exn end 110 - module M : 111 - sig exception Bar : 'a list -> exn exception Foo of int * float end 112 - exception Foo of int * float 113 - exception Bar : 'a list -> exn 114 - module M : sig type exn += Foo of int * float | Bar : 'a list -> exn end 115 - type foo = .. 116 - type foo += Foo of int * int option | Bar of int option 117 - val x : foo * foo = (Foo (3, Some 4), Bar (Some 5)) 118 - type foo += Foo of string 119 - val y : foo * foo = (<extension>, Bar (Some 5)) 120 - exception Foo of int * int option 121 - exception Bar of int option 122 - val x : exn * exn = (Foo (3, Some 4), Bar (Some 5)) 123 - type foo += Foo of string 124 - val y : exn * exn = (Foo (3, _), Bar (Some 5)) 125 - type foo = .. 126 - type foo += Foo | Bar of int 127 - val extension_name : 'a -> string = <fun> 128 - val extension_id : 'a -> int = <fun> 129 - val n1 : string = "Foo" 130 - val n2 : string = "Bar" 131 - val t : bool = true 132 - val f : bool = false 133 - val is_foo : 'a -> bool = <fun> 134 - type foo += Foo 135 - val f : bool = false 136 - Exception: Invalid_argument "Obj.extension_constructor". 137 - Exception: Invalid_argument "Obj.extension_constructor". 138 -
+225 -13
testsuite/tests/typing-extensions/open_types.ml
··· 1 1 (* TEST 2 - * toplevel 2 + * expect 3 3 *) 4 4 5 5 type foo = .. 6 6 ;; 7 + [%%expect {| 8 + type foo = .. 9 + |}] 7 10 8 11 (* Check that abbreviations work *) 9 12 10 13 type bar = foo = .. 11 14 ;; 15 + [%%expect {| 16 + type bar = foo = .. 17 + |}] 12 18 13 19 type baz = foo = .. 14 20 ;; 21 + [%%expect {| 22 + type baz = foo = .. 23 + |}] 15 24 16 25 type bar += Bar1 of int 17 26 ;; 27 + [%%expect {| 28 + type bar += Bar1 of int 29 + |}] 18 30 19 31 type baz += Bar2 of int 20 32 ;; 33 + [%%expect {| 34 + type baz += Bar2 of int 35 + |}] 21 36 22 37 module M = struct type bar += Foo of float end 23 38 ;; 39 + [%%expect {| 40 + module M : sig type bar += Foo of float end 41 + |}] 24 42 25 43 module type S = sig type baz += Foo of float end 26 44 ;; 45 + [%%expect {| 46 + module type S = sig type baz += Foo of float end 47 + |}] 27 48 28 49 module M_S = (M : S) 29 50 ;; 51 + [%%expect {| 52 + module M_S : S 53 + |}] 30 54 31 55 (* Abbreviations need to be made open *) 32 56 33 57 type foo = .. 34 58 ;; 59 + [%%expect {| 60 + type foo = .. 61 + |}] 35 62 36 63 type bar = foo 37 64 ;; 65 + [%%expect {| 66 + type bar = foo 67 + |}] 38 68 39 - type bar += Bar of int (* Error: type is not open *) 69 + type bar += Bar of int 40 70 ;; 71 + [%%expect {| 72 + Line 1, characters 0-22: 73 + 1 | type bar += Bar of int 74 + ^^^^^^^^^^^^^^^^^^^^^^ 75 + Error: Type definition bar is not extensible 76 + |}] 41 77 42 - type baz = bar = .. (* Error: type kinds don't match *) 78 + type baz = bar = .. 43 79 ;; 80 + [%%expect {| 81 + Line 1, characters 0-19: 82 + 1 | type baz = bar = .. 83 + ^^^^^^^^^^^^^^^^^^^ 84 + Error: This variant or record definition does not match that of type bar 85 + Their kinds differ. 86 + |}] 44 87 45 88 (* Abbreviations need to match parameters *) 46 89 47 90 type 'a foo = .. 48 91 ;; 92 + [%%expect {| 93 + type 'a foo = .. 94 + |}] 49 95 50 - type ('a, 'b) bar = 'a foo = .. (* Error: arrities do not match *) 96 + type ('a, 'b) bar = 'a foo = .. 51 97 ;; 98 + [%%expect {| 99 + Line 1, characters 0-31: 100 + 1 | type ('a, 'b) bar = 'a foo = .. 101 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 102 + Error: This variant or record definition does not match that of type 'a foo 103 + They have different arities. 104 + |}] 52 105 53 106 type ('a, 'b) foo = .. 54 107 ;; 108 + [%%expect {| 109 + type ('a, 'b) foo = .. 110 + |}] 55 111 56 - type ('a, 'b) bar = ('a, 'a) foo = .. (* Error: constraints do not match *) 112 + type ('a, 'b) bar = ('a, 'a) foo = .. 57 113 ;; 114 + [%%expect {| 115 + Line 1, characters 0-37: 116 + 1 | type ('a, 'b) bar = ('a, 'a) foo = .. 117 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 118 + Error: This variant or record definition does not match that of type 119 + ('a, 'a) foo 120 + Their constraints differ. 121 + |}] 58 122 59 123 (* Check that signatures can hide exstensibility *) 60 124 61 125 module M = struct type foo = .. end 62 126 ;; 127 + [%%expect {| 128 + module M : sig type foo = .. end 129 + |}] 63 130 64 131 module type S = sig type foo end 65 132 ;; 133 + [%%expect {| 134 + module type S = sig type foo end 135 + |}] 66 136 67 137 module M_S = (M : S) 68 138 ;; 139 + [%%expect {| 140 + module M_S : S 141 + |}] 69 142 70 - type M_S.foo += Foo (* ERROR: Cannot extend a type that isn't "open" *) 143 + type M_S.foo += Foo 71 144 ;; 145 + [%%expect {| 146 + Line 1, characters 0-19: 147 + 1 | type M_S.foo += Foo 148 + ^^^^^^^^^^^^^^^^^^^ 149 + Error: Type definition M_S.foo is not extensible 150 + |}] 72 151 73 152 (* Check that signatures cannot add extensibility *) 74 153 75 154 module M = struct type foo end 76 155 ;; 156 + [%%expect {| 157 + module M : sig type foo end 158 + |}] 77 159 78 160 module type S = sig type foo = .. end 79 161 ;; 162 + [%%expect {| 163 + module type S = sig type foo = .. end 164 + |}] 80 165 81 - module M_S = (M : S) (* ERROR: Signatures are not compatible *) 166 + module M_S = (M : S) 82 167 ;; 168 + [%%expect {| 169 + Line 1, characters 14-15: 170 + 1 | module M_S = (M : S) 171 + ^ 172 + Error: Signature mismatch: 173 + Modules do not match: sig type foo = M.foo end is not included in S 174 + Type declarations do not match: 175 + type foo = M.foo 176 + is not included in 177 + type foo = .. 178 + Their kinds differ. 179 + |}] 83 180 84 181 (* Check that signatures can make exstensibility private *) 85 182 86 183 module M = struct type foo = .. end 87 184 ;; 185 + [%%expect {| 186 + module M : sig type foo = .. end 187 + |}] 88 188 89 189 module type S = sig type foo = private .. end 90 190 ;; 191 + [%%expect {| 192 + module type S = sig type foo = private .. end 193 + |}] 91 194 92 195 module M_S = (M : S) 93 196 ;; 197 + [%%expect {| 198 + module M_S : S 199 + |}] 94 200 95 - type M_S.foo += Foo (* ERROR: Cannot extend a private extensible type *) 201 + type M_S.foo += Foo 96 202 ;; 203 + [%%expect {| 204 + Line 1, characters 16-19: 205 + 1 | type M_S.foo += Foo 206 + ^^^ 207 + Error: Cannot extend private type definition M_S.foo 208 + |}] 97 209 98 210 (* Check that signatures cannot make private extensibility public *) 99 211 100 212 module M = struct type foo = private .. end 101 213 ;; 214 + [%%expect {| 215 + module M : sig type foo = private .. end 216 + |}] 102 217 103 218 module type S = sig type foo = .. end 104 219 ;; 220 + [%%expect {| 221 + module type S = sig type foo = .. end 222 + |}] 105 223 106 - module M_S = (M : S) (* ERROR: Signatures are not compatible *) 224 + module M_S = (M : S) 107 225 ;; 226 + [%%expect {| 227 + Line 1, characters 14-15: 228 + 1 | module M_S = (M : S) 229 + ^ 230 + Error: Signature mismatch: 231 + Modules do not match: 232 + sig type foo = M.foo = private .. end 233 + is not included in 234 + S 235 + Type declarations do not match: 236 + type foo = M.foo = private .. 237 + is not included in 238 + type foo = .. 239 + A private type would be revealed. 240 + |}] 108 241 109 242 110 243 (* Check that signatures maintain variances *) 111 244 112 245 module M = struct type +'a foo = .. type 'a bar = 'a foo = .. end 113 246 ;; 247 + [%%expect {| 248 + module M : sig type +'a foo = .. type 'a bar = 'a foo = .. end 249 + |}] 114 250 115 251 module type S = sig type 'a foo = .. type 'a bar = 'a foo = .. end 116 252 ;; 253 + [%%expect {| 254 + module type S = sig type 'a foo = .. type 'a bar = 'a foo = .. end 255 + |}] 117 256 118 - module M_S = (M : S) (* ERROR: Signatures are not compatible *) 257 + module M_S = (M : S) 119 258 ;; 259 + [%%expect {| 260 + Line 1, characters 14-15: 261 + 1 | module M_S = (M : S) 262 + ^ 263 + Error: Signature mismatch: 264 + Modules do not match: 265 + sig type 'a foo = 'a M.foo = .. type 'a bar = 'a foo = .. end 266 + is not included in 267 + S 268 + Type declarations do not match: 269 + type 'a foo = 'a M.foo = .. 270 + is not included in 271 + type 'a foo = .. 272 + Their variances do not agree. 273 + |}] 120 274 121 275 (* Exn is an open type *) 122 276 123 277 type exn2 = exn = .. 124 278 ;; 279 + [%%expect {| 280 + type exn2 = exn = .. 281 + |}] 282 + 283 + (* PR#8579 exceptions can be private *) 284 + 285 + type exn += private Foobar 286 + let _ = raise Foobar 287 + ;; 288 + [%%expect {| 289 + type exn += private Foobar 290 + Line 2, characters 14-20: 291 + 2 | let _ = raise Foobar 292 + ^^^^^^ 293 + Error: Cannot use private constructor Foobar to create values of type exn 294 + |}] 295 + 125 296 126 297 (* Exhaustiveness *) 127 298 128 299 type foo = .. 129 300 type foo += Foo 130 301 let f = function Foo -> () 131 - ;; (* warn *) 302 + ;; 303 + [%%expect {| 304 + type foo = .. 305 + type foo += Foo 306 + Line 3, characters 8-26: 307 + 3 | let f = function Foo -> () 308 + ^^^^^^^^^^^^^^^^^^ 309 + Warning 8: this pattern-matching is not exhaustive. 310 + Here is an example of a case that is not matched: 311 + *extension* 312 + Matching over values of extensible variant types (the *extension* above) 313 + must include a wild card pattern in order to be exhaustive. 314 + val f : foo -> unit = <fun> 315 + |}] 132 316 133 317 (* More complex exhaustiveness *) 134 318 ··· 136 320 | [Foo] -> 1 137 321 | _::_::_ -> 3 138 322 | [] -> 2 139 - ;; (* warn *) 323 + ;; 324 + [%%expect {| 325 + Lines 1-4, characters 8-11: 326 + 1 | ........function 327 + 2 | | [Foo] -> 1 328 + 3 | | _::_::_ -> 3 329 + 4 | | [] -> 2 330 + Warning 8: this pattern-matching is not exhaustive. 331 + Here is an example of a case that is not matched: 332 + *extension*::[] 333 + Matching over values of extensible variant types (the *extension* above) 334 + must include a wild card pattern in order to be exhaustive. 335 + val f : foo list -> int = <fun> 336 + |}] 140 337 141 338 142 339 (* PR#7330: exhaustiveness with GADTs *) 143 340 144 341 type t = .. 145 342 type t += IPair : (int * int) -> t ;; 343 + [%%expect {| 344 + type t = .. 345 + type t += IPair : (int * int) -> t 346 + |}] 146 347 147 - let f = function IPair (i, j) -> Format.sprintf "(%d, %d)" i j ;; (* warn *) 348 + let f = function IPair (i, j) -> Format.sprintf "(%d, %d)" i j ;; 349 + [%%expect {| 350 + Line 1, characters 8-62: 351 + 1 | let f = function IPair (i, j) -> Format.sprintf "(%d, %d)" i j ;; 352 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 353 + Warning 8: this pattern-matching is not exhaustive. 354 + Here is an example of a case that is not matched: 355 + *extension* 356 + Matching over values of extensible variant types (the *extension* above) 357 + must include a wild card pattern in order to be exhaustive. 358 + val f : t -> string = <fun> 359 + |}]
-123
testsuite/tests/typing-extensions/open_types.ocaml.reference
··· 1 - type foo = .. 2 - type bar = foo = .. 3 - type baz = foo = .. 4 - type bar += Bar1 of int 5 - type baz += Bar2 of int 6 - module M : sig type bar += Foo of float end 7 - module type S = sig type baz += Foo of float end 8 - module M_S : S 9 - type foo = .. 10 - type bar = foo 11 - Line 2, characters 0-22: 12 - 2 | type bar += Bar of int (* Error: type is not open *) 13 - ^^^^^^^^^^^^^^^^^^^^^^ 14 - Error: Type definition bar is not extensible 15 - Line 2, characters 0-19: 16 - 2 | type baz = bar = .. (* Error: type kinds don't match *) 17 - ^^^^^^^^^^^^^^^^^^^ 18 - Error: This variant or record definition does not match that of type bar 19 - Their kinds differ. 20 - type 'a foo = .. 21 - Line 2, characters 0-31: 22 - 2 | type ('a, 'b) bar = 'a foo = .. (* Error: arrities do not match *) 23 - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 24 - Error: This variant or record definition does not match that of type 'a foo 25 - They have different arities. 26 - type ('a, 'b) foo = .. 27 - Line 2, characters 0-37: 28 - 2 | type ('a, 'b) bar = ('a, 'a) foo = .. (* Error: constraints do not match *) 29 - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 30 - Error: This variant or record definition does not match that of type 31 - ('a, 'a) foo 32 - Their constraints differ. 33 - module M : sig type foo = .. end 34 - module type S = sig type foo end 35 - module M_S : S 36 - Line 2, characters 0-19: 37 - 2 | type M_S.foo += Foo (* ERROR: Cannot extend a type that isn't "open" *) 38 - ^^^^^^^^^^^^^^^^^^^ 39 - Error: Type definition M_S.foo is not extensible 40 - module M : sig type foo end 41 - module type S = sig type foo = .. end 42 - Line 2, characters 14-15: 43 - 2 | module M_S = (M : S) (* ERROR: Signatures are not compatible *) 44 - ^ 45 - Error: Signature mismatch: 46 - Modules do not match: sig type foo = M.foo end is not included in S 47 - Type declarations do not match: 48 - type foo = M.foo 49 - is not included in 50 - type foo = .. 51 - Their kinds differ. 52 - module M : sig type foo = .. end 53 - module type S = sig type foo = private .. end 54 - module M_S : S 55 - Line 2, characters 16-19: 56 - 2 | type M_S.foo += Foo (* ERROR: Cannot extend a private extensible type *) 57 - ^^^ 58 - Error: Cannot extend private type definition M_S.foo 59 - module M : sig type foo = private .. end 60 - module type S = sig type foo = .. end 61 - Line 2, characters 14-15: 62 - 2 | module M_S = (M : S) (* ERROR: Signatures are not compatible *) 63 - ^ 64 - Error: Signature mismatch: 65 - Modules do not match: 66 - sig type foo = M.foo = private .. end 67 - is not included in 68 - S 69 - Type declarations do not match: 70 - type foo = M.foo = private .. 71 - is not included in 72 - type foo = .. 73 - A private type would be revealed. 74 - module M : sig type +'a foo = .. type 'a bar = 'a foo = .. end 75 - module type S = sig type 'a foo = .. type 'a bar = 'a foo = .. end 76 - Line 2, characters 14-15: 77 - 2 | module M_S = (M : S) (* ERROR: Signatures are not compatible *) 78 - ^ 79 - Error: Signature mismatch: 80 - Modules do not match: 81 - sig type 'a foo = 'a M.foo = .. type 'a bar = 'a foo = .. end 82 - is not included in 83 - S 84 - Type declarations do not match: 85 - type 'a foo = 'a M.foo = .. 86 - is not included in 87 - type 'a foo = .. 88 - Their variances do not agree. 89 - type exn2 = exn = .. 90 - Line 6, characters 8-26: 91 - 6 | let f = function Foo -> () 92 - ^^^^^^^^^^^^^^^^^^ 93 - Warning 8: this pattern-matching is not exhaustive. 94 - Here is an example of a case that is not matched: 95 - *extension* 96 - Matching over values of extensible variant types (the *extension* above) 97 - must include a wild card pattern in order to be exhaustive. 98 - type foo = .. 99 - type foo += Foo 100 - val f : foo -> unit = <fun> 101 - Line 4, characters 8-60: 102 - 4 | ........function 103 - 5 | | [Foo] -> 1 104 - 6 | | _::_::_ -> 3 105 - 7 | | [] -> 2 106 - Warning 8: this pattern-matching is not exhaustive. 107 - Here is an example of a case that is not matched: 108 - *extension*::[] 109 - Matching over values of extensible variant types (the *extension* above) 110 - must include a wild card pattern in order to be exhaustive. 111 - val f : foo list -> int = <fun> 112 - type t = .. 113 - type t += IPair : (int * int) -> t 114 - Line 2, characters 8-62: 115 - 2 | let f = function IPair (i, j) -> Format.sprintf "(%d, %d)" i j ;; (* warn *) 116 - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 117 - Warning 8: this pattern-matching is not exhaustive. 118 - Here is an example of a case that is not matched: 119 - *extension* 120 - Matching over values of extensible variant types (the *extension* above) 121 - must include a wild card pattern in order to be exhaustive. 122 - val f : t -> string = <fun> 123 -
+2 -2
testsuite/tests/typing-gadts/didier.ml
··· 12 12 ;; 13 13 [%%expect{| 14 14 type 'a ty = Int : int ty | Bool : bool ty 15 - Line 6, characters 2-30: 15 + Lines 6-7, characters 2-13: 16 16 6 | ..match tag with 17 17 7 | | Bool -> x 18 18 Warning 8: this pattern-matching is not exhaustive. ··· 28 28 | Int -> x > 0 29 29 ;; 30 30 [%%expect{| 31 - Line 2, characters 2-33: 31 + Lines 2-3, characters 2-16: 32 32 2 | ..match tag with 33 33 3 | | Int -> x > 0 34 34 Warning 8: this pattern-matching is not exhaustive.
+4 -4
testsuite/tests/typing-gadts/or_patterns.ml
··· 240 240 ;; 241 241 242 242 [%%expect{| 243 - Line 3, characters 4-57: 243 + Lines 3-4, characters 4-30: 244 244 3 | ....IntLit, ((3 : a) as x) 245 245 4 | | BoolLit, ((true : a) as x)............ 246 246 Error: The variable x on the left-hand side of this or-pattern has type ··· 551 551 552 552 553 553 [%%expect{| 554 - Line 3, characters 4-20: 554 + Lines 3-4, characters 4-10: 555 555 3 | ....Int x 556 556 4 | | Bool x..... 557 557 Error: The variable x on the left-hand side of this or-pattern has type ··· 575 575 ;; 576 576 577 577 [%%expect{| 578 - Line 3, characters 4-26: 578 + Lines 3-4, characters 4-10: 579 579 3 | ....Int (x : a) 580 580 4 | | Bool x..... 581 581 Error: The variable x on the left-hand side of this or-pattern has type ··· 731 731 | _, _, _ -> () 732 732 ;; 733 733 [%%expect{| 734 - Line 3, characters 4-108: 734 + Lines 3-4, characters 4-65: 735 735 3 | ....IntLit, ({ contents = true } as x), _ 736 736 4 | | BoolLit, _, ({ contents = true} as x)............ 737 737 Error: The variable x on the left-hand side of this or-pattern has type
+1 -1
testsuite/tests/typing-gadts/pr5785.ml
··· 13 13 | Two, Two -> "four" 14 14 end;; 15 15 [%%expect{| 16 - Line 7, characters 43-100: 16 + Lines 7-9, characters 43-24: 17 17 7 | ...........................................function 18 18 8 | | One, One -> "two" 19 19 9 | | Two, Two -> "four"
+1 -1
testsuite/tests/typing-gadts/pr5906.ml
··· 27 27 Eq : ('a, 'a, bool) binop 28 28 | Leq : ('a, 'a, bool) binop 29 29 | Add : (int, int, int) binop 30 - Line 12, characters 2-195: 30 + Lines 12-16, characters 2-36: 31 31 12 | ..match bop, x, y with 32 32 13 | | Eq, Bool x, Bool y -> Bool (if x then y else not y) 33 33 14 | | Leq, Int x, Int y -> Bool (x <= y)
+2 -2
testsuite/tests/typing-gadts/pr5981.ml
··· 12 12 | A, B -> "f A B" 13 13 end;; 14 14 [%%expect{| 15 - Line 7, characters 47-84: 15 + Lines 7-8, characters 47-21: 16 16 7 | ...............................................match l, r with 17 17 8 | | A, B -> "f A B" 18 18 Warning 8: this pattern-matching is not exhaustive. ··· 39 39 | A, B -> "f A B" 40 40 end;; 41 41 [%%expect{| 42 - Line 10, characters 15-52: 42 + Lines 10-11, characters 15-21: 43 43 10 | ...............match l, r with 44 44 11 | | A, B -> "f A B" 45 45 Warning 8: this pattern-matching is not exhaustive.
+1 -1
testsuite/tests/typing-gadts/pr5985.ml
··· 37 37 object constraint 'a = 'b T.t val x' : 'b = x method x = x' end 38 38 end;; (* fail *) 39 39 [%%expect{| 40 - Line 2, characters 2-86: 40 + Lines 2-3, characters 2-67: 41 41 2 | ..class ['a] c x = 42 42 3 | object constraint 'a = 'b T.t val x' : 'b = x method x = x' end 43 43 Error: In this definition, a type variable cannot be deduced
+2 -2
testsuite/tests/typing-gadts/pr5989.ml
··· 25 25 [%%expect{| 26 26 type (_, _) t = Any : ('a, 'b) t | Eq : ('a, 'a) t 27 27 module M : sig type s = private [> `A ] val eq : (s, [ `A | `B ]) t end 28 - Line 16, characters 39-64: 28 + Lines 16-17, characters 39-16: 29 29 16 | .......................................function 30 30 17 | | Any -> "Any" 31 31 Warning 8: this pattern-matching is not exhaustive. ··· 55 55 type s = private < a : int; .. > 56 56 val eq : (s, < a : int; b : bool >) t 57 57 end 58 - Line 12, characters 49-74: 58 + Lines 12-13, characters 49-16: 59 59 12 | .................................................function 60 60 13 | | Any -> "Any" 61 61 Warning 8: this pattern-matching is not exhaustive.
+1 -1
testsuite/tests/typing-gadts/pr6241.ml
··· 21 21 22 22 [%%expect{| 23 23 type (_, _) t = A : ('a, 'a) t | B : string -> ('a, 'b) t 24 - Line 8, characters 52-74: 24 + Lines 8-9, characters 52-13: 25 25 8 | ....................................................function 26 26 9 | | B s -> s 27 27 Warning 8: this pattern-matching is not exhaustive.
+1 -1
testsuite/tests/typing-gadts/pr7160.ml
··· 14 14 | String : string -> string t 15 15 | Same : 'l t -> 'l t 16 16 val f : int t -> int = <fun> 17 - Line 4, characters 0-97: 17 + Lines 4-5, characters 0-77: 18 18 4 | type 'a tt = 'a t = 19 19 5 | Int : int -> int tt | String : string -> string tt | Same : 'l1 t -> 'l2 tt.. 20 20 Error: This variant or record definition does not match that of type 'a t
+1 -1
testsuite/tests/typing-gadts/pr7260.ml
··· 19 19 type bar = < bar : unit > 20 20 type _ ty = Int : int ty 21 21 type dyn = Dyn : 'a ty -> dyn 22 - Line 7, characters 0-108: 22 + Lines 7-12, characters 0-5: 23 23 7 | class foo = 24 24 8 | object (this) 25 25 9 | method foo (Dyn ty) =
+1 -1
testsuite/tests/typing-gadts/pr7378.ml
··· 15 15 | A : 'a * 'b * ('b -> unit) -> t 16 16 end;; (* should fail *) 17 17 [%%expect{| 18 - Line 2, characters 2-54: 18 + Lines 2-3, characters 2-37: 19 19 2 | ..type t = X.t = 20 20 3 | | A : 'a * 'b * ('b -> unit) -> t 21 21 Error: This variant or record definition does not match that of type X.t
+7 -7
testsuite/tests/typing-gadts/test.ml
··· 103 103 end 104 104 ;; 105 105 [%%expect{| 106 - Line 11, characters 6-34: 106 + Lines 11-12, characters 6-19: 107 107 11 | ......function 108 108 12 | | C2 x -> x 109 109 Warning 8: this pattern-matching is not exhaustive. 110 110 Here is an example of a case that is not matched: 111 111 C1 _ 112 - Line 24, characters 6-77: 112 + Lines 24-26, characters 6-30: 113 113 24 | ......function 114 114 25 | | Foo _ , Foo _ -> true 115 115 26 | | Bar _, Bar _ -> true ··· 260 260 | String s -> print_endline s (* warn : Any *) 261 261 end;; 262 262 [%%expect{| 263 - Line 8, characters 4-50: 263 + Lines 8-9, characters 4-33: 264 264 8 | ....match x with 265 265 9 | | String s -> print_endline s................. 266 266 Warning 8: this pattern-matching is not exhaustive. ··· 687 687 ;; (* fail *) 688 688 [%%expect{| 689 689 type (_, _) eq = Eq : ('a, 'a) eq 690 - Line 3, characters 4-90: 690 + Lines 3-4, characters 4-15: 691 691 3 | ....f : type a b. (a,b) eq -> (<m : a; ..> as 'c) -> (<m : b; ..> as 'c) = 692 692 4 | fun Eq o -> o 693 693 Error: The universal type variable 'b cannot be generalized: ··· 813 813 let f : type a b. (a,b) eq -> [< `A of a | `B] -> [< `A of b | `B] = 814 814 fun Eq o -> o ;; (* fail *) 815 815 [%%expect{| 816 - Line 1, characters 4-84: 816 + Lines 1-2, characters 4-15: 817 817 1 | ....f : type a b. (a,b) eq -> [< `A of a | `B] -> [< `A of b | `B] = 818 818 2 | fun Eq o -> o.............. 819 819 Error: This definition has type ··· 915 915 | TA, D z -> z 916 916 ;; (* warn *) 917 917 [%%expect{| 918 - Line 2, characters 2-153: 918 + Lines 2-8, characters 2-16: 919 919 2 | ..match x, y with 920 920 3 | | _, A z -> z 921 921 4 | | _, B z -> if z then 1 else 2 ··· 979 979 ;; (* ok *) 980 980 [%%expect{| 981 981 type ('a, 'b) pair = { left : 'a; right : 'b; } 982 - Line 4, characters 2-244: 982 + Lines 4-10, characters 2-29: 983 983 4 | ..match {left=x; right=y} with 984 984 5 | | {left=_; right=A z} -> z 985 985 6 | | {left=_; right=B z} -> if z then 1 else 2
+2 -2
testsuite/tests/typing-gadts/yallop_bugs.ml
··· 56 56 ;; 57 57 [%%expect{| 58 58 type _ t = IntLit : int t | BoolLit : bool t 59 - Line 5, characters 39-99: 59 + Lines 5-7, characters 39-23: 60 60 5 | .......................................function 61 61 6 | | BoolLit, false -> false 62 62 7 | | IntLit , 6 -> false ··· 74 74 ;; 75 75 [%%expect{| 76 76 type ('a, 'b) pair = { fst : 'a; snd : 'b; } 77 - Line 3, characters 45-134: 77 + Lines 3-5, characters 45-38: 78 78 3 | .............................................function 79 79 4 | | {fst = BoolLit; snd = false} -> false 80 80 5 | | {fst = IntLit ; snd = 6} -> false
+1 -1
testsuite/tests/typing-immediate/immediate.ml
··· 131 131 type t = string 132 132 end;; 133 133 [%%expect{| 134 - Line 1, characters 42-70: 134 + Lines 1-3, characters 42-3: 135 135 1 | ..........................................struct 136 136 2 | type t = string 137 137 3 | end..
+2 -2
testsuite/tests/typing-misc/disambiguate_principality.ml
··· 494 494 x := B 495 495 ;; 496 496 [%%expect{| 497 - Line 1, characters 8-70: 497 + Lines 1-3, characters 8-10: 498 498 1 | ........function 499 499 2 | | ({ contents = M.A } : M.t ref) as x -> 500 500 3 | x := B ··· 507 507 3 | x := B 508 508 ^ 509 509 Warning 18: this type-based constructor disambiguation is not principal. 510 - Line 1, characters 8-70: 510 + Lines 1-3, characters 8-10: 511 511 1 | ........function 512 512 2 | | ({ contents = M.A } : M.t ref) as x -> 513 513 3 | x := B
+12
testsuite/tests/typing-misc/is_expansive.ml
··· 1 + (* TEST 2 + * expect *) 3 + 4 + match [] with x -> (fun x -> x);; 5 + [%%expect{| 6 + - : 'a -> 'a = <fun> 7 + |}];; 8 + 9 + match [] with x -> (fun x -> x) | _ -> .;; 10 + [%%expect{| 11 + - : 'a -> 'a = <fun> 12 + |}];;
+1
testsuite/tests/typing-misc/ocamltests
··· 2 2 disambiguate_principality.ml 3 3 exotic_unifications.ml 4 4 inside_out.ml 5 + is_expansive.ml 5 6 labels.ml 6 7 occur_check.ml 7 8 pat_type_sharing.ml
+7 -7
testsuite/tests/typing-misc/pr6416.ml
··· 12 12 end 13 13 end;; 14 14 [%%expect{| 15 - Line 5, characters 8-52: 15 + Lines 5-8, characters 8-5: 16 16 5 | ........struct 17 17 6 | type t = B 18 18 7 | let f B = () ··· 67 67 end;; 68 68 69 69 [%%expect{| 70 - Line 4, characters 4-70: 70 + Lines 4-7, characters 4-7: 71 71 4 | ....struct 72 72 5 | module type s 73 73 6 | module A(X:s) =struct end ··· 99 99 end 100 100 end;; 101 101 [%%expect {| 102 - Line 4, characters 4-77: 102 + Lines 4-7, characters 4-7: 103 103 4 | ....struct 104 104 5 | module T = struct type t end 105 105 6 | type t = A of T.t ··· 187 187 188 188 189 189 [%%expect{| 190 - Line 4, characters 2-105: 190 + Lines 4-7, characters 2-5: 191 191 4 | ..struct 192 192 5 | class a = object method c = let module X = struct type t end in () end 193 193 6 | class b = a ··· 219 219 end;; 220 220 221 221 [%%expect{| 222 - Line 4, characters 2-65: 222 + Lines 4-7, characters 2-5: 223 223 4 | ..struct 224 224 5 | class type a = object end 225 225 6 | class type b = a ··· 266 266 end;; 267 267 268 268 [%%expect{| 269 - Line 8, characters 6-141: 269 + Lines 8-15, characters 6-3: 270 270 8 | ......struct 271 271 9 | type t 272 272 10 | class type a = object method m:t end ··· 343 343 type t = B 344 344 type t = C 345 345 type t = D 346 - Line 5, characters 44-72: 346 + Lines 5-7, characters 44-3: 347 347 5 | ............................................struct 348 348 6 | let f A B C = D 349 349 7 | end..
+1 -1
testsuite/tests/typing-misc/pr6634.ml
··· 10 10 11 11 [%%expect{| 12 12 type t = int 13 - Line 3, characters 0-31: 13 + Lines 3-5, characters 0-3: 14 14 3 | struct 15 15 4 | type t = [`T of t] 16 16 5 | end..
+2 -2
testsuite/tests/typing-misc/pr7668_bad.ml
··· 20 20 val partition_map : 21 21 ('a -> [< `Left of 'b | `Right of 'c ]) -> 'a list -> 'b list * 'c list = 22 22 <fun> 23 - Line 12, characters 35-96: 23 + Lines 12-13, characters 35-18: 24 24 12 | ...................................partition_map (fun x -> if x then `Left () 25 25 13 | else `Right ()) xs 26 26 Error: This expression has type unit list * unit list ··· 57 57 end 58 58 ;; 59 59 [%%expect{| 60 - Line 8, characters 6-348: 60 + Lines 8-27, characters 6-3: 61 61 8 | ......struct 62 62 9 | type t = [ 63 63 10 | | `A of int
+1 -1
testsuite/tests/typing-misc/unique_names_in_unification.ml
··· 39 39 ^ 40 40 Error: This expression has type M/2.t but an expression was expected of type 41 41 M/1.t 42 - Line 4, characters 2-41: 42 + Lines 4-6, characters 2-5: 43 43 Definition of module M/1 44 44 Line 1, characters 0-32: 45 45 Definition of module M/2
+1 -1
testsuite/tests/typing-misc/variant.ml
··· 11 11 let f = function A | B -> 0 12 12 end;; 13 13 [%%expect{| 14 - Line 3, characters 6-61: 14 + Lines 3-6, characters 6-3: 15 15 3 | ......struct 16 16 4 | type t = A | B 17 17 5 | let f = function A | B -> 0
+1 -1
testsuite/tests/typing-modules/Test.ml
··· 180 180 type t += E of int 181 181 end;; 182 182 [%%expect{| 183 - Line 3, characters 6-37: 183 + Lines 3-5, characters 6-3: 184 184 3 | ......struct 185 185 4 | type t += E of int 186 186 5 | end..
+8 -8
testsuite/tests/typing-modules/illegal_permutation.ml
··· 102 102 end 103 103 end 104 104 [%%expect {| 105 - Line 9, characters 6-114: 105 + Lines 9-17, characters 6-3: 106 106 9 | ......struct 107 107 10 | module type x = sig 108 108 11 | val a:int ··· 172 172 end 173 173 end 174 174 [%%expect {| 175 - Line 6, characters 6-72: 175 + Lines 6-11, characters 6-3: 176 176 6 | ......struct 177 177 7 | module type x= sig 178 178 8 | val x:int ··· 211 211 end 212 212 end 213 213 [%%expect {| 214 - Line 8, characters 6-108: 214 + Lines 8-15, characters 6-3: 215 215 8 | ......struct 216 216 9 | module type a = sig 217 217 10 | module type b = sig ··· 268 268 end 269 269 [%%expect{| 270 270 class type ct = object end 271 - Line 7, characters 6-76: 271 + Lines 7-12, characters 6-3: 272 272 7 | ......struct 273 273 8 | module type x = sig 274 274 9 | class b: ct ··· 303 303 end 304 304 end 305 305 [%%expect{| 306 - Line 6, characters 6-76: 306 + Lines 6-11, characters 6-3: 307 307 6 | ......struct 308 308 7 | module type x = sig 309 309 8 | type exn+=B ··· 393 393 module type x = functor(X:c12) -> s 394 394 end 395 395 [%%expect {| 396 - Line 2, characters 0-48: 396 + Lines 2-4, characters 0-3: 397 397 2 | struct 398 398 3 | module type x = functor(X:c12) -> s 399 399 4 | end ··· 418 418 module type x = functor(X:s) -> c12 419 419 end 420 420 [%%expect {| 421 - Line 2, characters 0-48: 421 + Lines 2-4, characters 0-3: 422 422 2 | struct 423 423 3 | module type x = functor(X:s) -> c12 424 424 4 | end ··· 482 482 end 483 483 end 484 484 [%%expect {| 485 - Line 22, characters 4-481: 485 + Lines 22-43, characters 4-3: 486 486 22 | ....struct 487 487 23 | module type x = sig 488 488 24 | module A: sig
+1 -1
testsuite/tests/typing-modules/nondep_private_abbrev.ml
··· 99 99 type s = t 100 100 end;; 101 101 [%%expect{| 102 - Line 3, characters 6-29: 102 + Lines 3-5, characters 6-3: 103 103 3 | ......struct 104 104 4 | type s = t 105 105 5 | end..
+1 -1
testsuite/tests/typing-modules/pr6394.ml
··· 10 10 let f = function A | B -> 0 11 11 end;; 12 12 [%%expect{| 13 - Line 4, characters 6-63: 13 + Lines 4-7, characters 6-3: 14 14 4 | ......struct 15 15 5 | type t = A | B 16 16 6 | let f = function A | B -> 0
+1 -1
testsuite/tests/typing-modules/pr7818.ml
··· 108 108 module Id2 = Id 109 109 end;; 110 110 [%%expect{| 111 - Line 2, characters 57-107: 111 + Lines 2-5, characters 57-3: 112 112 2 | .........................................................struct 113 113 3 | module Id = T'.T.Id 114 114 4 | module Id2 = Id
+1 -1
testsuite/tests/typing-objects-bugs/pr3968_bad.compilers.reference
··· 1 - File "pr3968_bad.ml", line 20, characters 0-165: 1 + File "pr3968_bad.ml", lines 20-29, characters 0-3: 2 2 20 | object 3 3 21 | val l = e1 4 4 22 | val r = e2
+1 -1
testsuite/tests/typing-objects/Exemples.ml
··· 95 95 method set y = x <- y 96 96 end;; 97 97 [%%expect{| 98 - Line 1, characters 0-95: 98 + Lines 1-5, characters 0-3: 99 99 1 | class ref x_init = object 100 100 2 | val mutable x = x_init 101 101 3 | method get = x
+6 -6
testsuite/tests/typing-objects/Tests.ml
··· 31 31 inherit ['a] c () 32 32 end;; 33 33 [%%expect{| 34 - Line 3, characters 4-45: 34 + Lines 3-5, characters 4-3: 35 35 3 | ....and d () = object 36 36 4 | inherit ['a] c () 37 37 5 | end.. ··· 88 88 method virtual f : int 89 89 end;; 90 90 [%%expect{| 91 - Line 1, characters 0-48: 91 + Lines 1-3, characters 0-3: 92 92 1 | class x () = object 93 93 2 | method virtual f : int 94 94 3 | end.. ··· 116 116 method f x = (x : bool c) 117 117 end;; 118 118 [%%expect{| 119 - Line 1, characters 0-78: 119 + Lines 1-4, characters 0-3: 120 120 1 | class ['a] c () = object 121 121 2 | constraint 'a = int 122 122 3 | method f x = (x : bool c) ··· 162 162 method f = (x : 'a) 163 163 end;; 164 164 [%%expect{| 165 - Line 1, characters 0-50: 165 + Lines 1-3, characters 0-3: 166 166 1 | class ['a] c () = object 167 167 2 | method f = (x : 'a) 168 168 3 | end.. ··· 618 618 method add (mtx : 'a matrix) = (mtx#m.(0).(0) : 'a) 619 619 end;; 620 620 [%%expect{| 621 - Line 1, characters 0-153: 621 + Lines 1-4, characters 0-3: 622 622 1 | class virtual ['a] matrix (sz, init : int * 'a) = object 623 623 2 | val m = Array.make_matrix sz sz init 624 624 3 | method add (mtx : 'a matrix) = (mtx#m.(0).(0) : 'a) ··· 667 667 val f : #c -> #c 668 668 end);; 669 669 [%%expect{| 670 - Line 1, characters 12-43: 670 + Lines 1-3, characters 12-3: 671 671 1 | ............struct 672 672 2 | let f (x : #c) = x 673 673 3 | end......
+2 -2
testsuite/tests/typing-objects/dummy.ml
··· 139 139 end 140 140 end;; 141 141 [%%expect{| 142 - Line 4, characters 4-65: 142 + Lines 4-7, characters 4-7: 143 143 4 | ....object 144 144 5 | inherit child1 self 145 145 6 | inherit child2 ··· 162 162 end 163 163 end;; 164 164 [%%expect{| 165 - Line 4, characters 4-129: 165 + Lines 4-10, characters 4-7: 166 166 4 | ....object 167 167 5 | inherit child1 self 168 168 6 | inherit child2
+1 -1
testsuite/tests/typing-objects/pr5619_bad.ml
··· 40 40 end 41 41 ;; 42 42 [%%expect{| 43 - Line 2, characters 2-156: 43 + Lines 2-8, characters 2-5: 44 44 2 | ..object(self) 45 45 3 | method foo = "foo" 46 46 4 | method cast: type a. a name -> a =
+1 -1
testsuite/tests/typing-ocamlc-i/pervasives_leitmotiv.compilers.reference
··· 2 2 Warning 63: The printed interface differs from the inferred interface. 3 3 The inferred interface contained items which could not be printed 4 4 properly due to name collisions between identifiers. 5 - File "pervasives_leitmotiv.ml", line 10, characters 0-45: 5 + File "pervasives_leitmotiv.ml", lines 10-12, characters 0-3: 6 6 Definition of module Stdlib/1 7 7 File "_none_", line 1: 8 8 Definition of module Stdlib/2
+2 -2
testsuite/tests/typing-ocamlc-i/pr7402.compilers.reference
··· 2 2 Warning 63: The printed interface differs from the inferred interface. 3 3 The inferred interface contained items which could not be printed 4 4 properly due to name collisions between identifiers. 5 - File "pr7402.ml", line 14, characters 0-39: 5 + File "pr7402.ml", lines 14-16, characters 0-5: 6 6 Definition of module M/1 7 - File "pr7402.ml", line 8, characters 0-70: 7 + File "pr7402.ml", lines 8-11, characters 0-3: 8 8 Definition of module M/2 9 9 Beware that this warning is purely informational and will not catch 10 10 all instances of erroneous printed interface.
+1 -1
testsuite/tests/typing-poly/error_messages.ml
··· 54 54 [%%expect {| 55 55 class type t_a = object method f : 'a -> int end 56 56 val f : t_a -> int = <fun> 57 - Line 5, characters 10-42: 57 + Lines 5-7, characters 10-5: 58 58 5 | ..........(object 59 59 6 | method f _ = 0 60 60 7 | end)..
+16 -4
testsuite/tests/typing-poly/poly.ml
··· 47 47 | {pv=true::_} -> "bool" 48 48 ;; 49 49 [%%expect {| 50 - Line 1, characters 0-77: 50 + Lines 1-4, characters 0-24: 51 51 1 | match px with 52 52 2 | | {pv=[]} -> "OK" 53 53 3 | | {pv=5::_} -> "int" ··· 64 64 | {pv=5::_} -> "int" 65 65 ;; 66 66 [%%expect {| 67 - Line 1, characters 0-77: 67 + Lines 1-4, characters 0-20: 68 68 1 | match px with 69 69 2 | | {pv=[]} -> "OK" 70 70 3 | | {pv=true::_} -> "bool" ··· 555 555 end 556 556 ;; 557 557 [%%expect {| 558 - Line 4, characters 12-79: 558 + Lines 4-7, characters 12-17: 559 559 4 | ............x = 560 560 5 | match r with 561 561 6 | None -> r <- Some x; x ··· 1223 1223 let f6 x = 1224 1224 (x : <m:'a. [< `A of < > ] as 'a> :> <m:'a. [< `A of <p:int> ] as 'a>);; 1225 1225 [%%expect {| 1226 - Line 2, characters 2-88: 1226 + Lines 2-3, characters 2-47: 1227 1227 2 | ..(x : <m:'a. (<p:int;..> as 'a) -> int> 1228 1228 3 | :> <m:'b. (<p:int;q:int;..> as 'b) -> int>).. 1229 1229 Error: Type < m : 'a. (< p : int; .. > as 'a) -> int > is not a subtype of ··· 1723 1723 val i : 'a -> 'a 1724 1724 end 1725 1725 |}] 1726 + 1727 + (* #8550 *) 1728 + class ['a] r = let r : 'a = ref [] in object method get = r end;; 1729 + [%%expect{| 1730 + Line 1, characters 0-63: 1731 + 1 | class ['a] r = let r : 'a = ref [] in object method get = r end;; 1732 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1733 + Error: The type of this class, 1734 + class ['a] r : 1735 + object constraint 'a = '_weak2 list ref method get : 'a end, 1736 + contains type variables that cannot be generalized 1737 + |}]
+1 -1
testsuite/tests/typing-polyvariants-bugs/pr7824.ml
··· 37 37 | _::_ -> (x :> [`A | `C] Element.t) 38 38 ;; 39 39 [%%expect{| 40 - Line 4, characters 2-54: 40 + Lines 4-5, characters 2-38: 41 41 4 | ..match [] with 42 42 5 | | _::_ -> (x :> [`A | `C] Element.t) 43 43 Warning 8: this pattern-matching is not exhaustive.
+1 -1
testsuite/tests/typing-recmod/t12bad.compilers.reference
··· 1 - File "t12bad.ml", line 11, characters 4-101: 1 + File "t12bad.ml", lines 11-15, characters 4-7: 2 2 11 | ....sig 3 3 12 | class ['a] c : 'a -> object 4 4 13 | method map : ('a -> 'b) -> 'b M.c
+1 -1
testsuite/tests/typing-safe-linking/b_bad.compilers.reference
··· 1 - File "b_bad.ml", line 13, characters 29-66: 1 + File "b_bad.ml", lines 13-14, characters 29-28: 2 2 13 | .............................function 3 3 14 | A.X s -> print_endline s 4 4 Error (warning 8): this pattern-matching is not exhaustive.
+5 -5
testsuite/tests/typing-sigsubst/sigsubst.ml
··· 47 47 and M2 : sig type t = int end 48 48 end with type M.t = int 49 49 [%%expect {| 50 - Line 1, characters 17-115: 50 + Lines 1-4, characters 17-23: 51 51 1 | .................sig 52 52 2 | module rec M : sig type t = M2.t end 53 53 3 | and M2 : sig type t = int end ··· 162 162 end with type 'a t2 := 'a t * bool 163 163 [%%expect {| 164 164 type 'a t constraint 'a = 'b list 165 - Line 2, characters 16-142: 165 + Lines 2-6, characters 16-34: 166 166 2 | ................sig 167 167 3 | type 'a t2 constraint 'a = 'b list 168 168 4 | type 'a mylist = 'a list ··· 267 267 module A = M 268 268 end with type M.t := float 269 269 [%%expect {| 270 - Line 1, characters 16-89: 270 + Lines 1-4, characters 16-26: 271 271 1 | ................sig 272 272 2 | module M : sig type t end 273 273 3 | module A = M ··· 329 329 end with type M2.t := int 330 330 [%%expect {| 331 331 module Id : functor (X : sig type t end) -> sig type t = X.t end 332 - Line 2, characters 17-120: 332 + Lines 2-5, characters 17-25: 333 333 2 | .................sig 334 334 3 | module rec M : sig type t = A of Id(M2).t end 335 335 4 | and M2 : sig type t end ··· 372 372 module Alias = M 373 373 end with module M.N := A 374 374 [%%expect {| 375 - Line 1, characters 16-159: 375 + Lines 1-10, characters 16-24: 376 376 1 | ................sig 377 377 2 | module M : sig 378 378 3 | module N : sig
+7 -7
testsuite/tests/typing-unboxed-types/test.ml
··· 111 111 type t = A of string [@@ocaml.unboxed] 112 112 end;; 113 113 [%%expect{| 114 - Line 3, characters 6-57: 114 + Lines 3-5, characters 6-3: 115 115 3 | ......struct 116 116 4 | type t = A of string [@@ocaml.unboxed] 117 117 5 | end.. ··· 134 134 type t = A of string 135 135 end;; 136 136 [%%expect{| 137 - Line 3, characters 6-39: 137 + Lines 3-5, characters 6-3: 138 138 3 | ......struct 139 139 4 | type t = A of string 140 140 5 | end.. ··· 157 157 type t = { f : string } [@@ocaml.unboxed] 158 158 end;; 159 159 [%%expect{| 160 - Line 3, characters 6-60: 160 + Lines 3-5, characters 6-3: 161 161 3 | ......struct 162 162 4 | type t = { f : string } [@@ocaml.unboxed] 163 163 5 | end.. ··· 180 180 type t = { f : string } 181 181 end;; 182 182 [%%expect{| 183 - Line 3, characters 6-42: 183 + Lines 3-5, characters 6-3: 184 184 3 | ......struct 185 185 4 | type t = { f : string } 186 186 5 | end.. ··· 203 203 type t = A of { f : string } [@@ocaml.unboxed] 204 204 end;; 205 205 [%%expect{| 206 - Line 3, characters 6-65: 206 + Lines 3-5, characters 6-3: 207 207 3 | ......struct 208 208 4 | type t = A of { f : string } [@@ocaml.unboxed] 209 209 5 | end.. ··· 226 226 type t = A of { f : string } 227 227 end;; 228 228 [%%expect{| 229 - Line 3, characters 6-47: 229 + Lines 3-5, characters 6-3: 230 230 3 | ......struct 231 231 4 | type t = A of { f : string } 232 232 5 | end.. ··· 292 292 type u = { f1 : t; f2 : t } 293 293 end;; 294 294 [%%expect{| 295 - Line 4, characters 6-86: 295 + Lines 4-7, characters 6-3: 296 296 4 | ......struct 297 297 5 | type t = A of float [@@ocaml.unboxed] 298 298 6 | type u = { f1 : t; f2 : t }
+8 -8
testsuite/tests/typing-unboxed/test.ml
··· 106 106 end;; 107 107 108 108 [%%expect{| 109 - Line 3, characters 6-70: 109 + Lines 3-5, characters 6-3: 110 110 3 | ......struct 111 111 4 | external f : int -> (int [@untagged]) = "f" "f_nat" 112 112 5 | end.. ··· 128 128 end;; 129 129 130 130 [%%expect{| 131 - Line 3, characters 6-70: 131 + Lines 3-5, characters 6-3: 132 132 3 | ......struct 133 133 4 | external f : (int [@untagged]) -> int = "f" "f_nat" 134 134 5 | end.. ··· 150 150 end;; 151 151 152 152 [%%expect{| 153 - Line 3, characters 6-73: 153 + Lines 3-5, characters 6-3: 154 154 3 | ......struct 155 155 4 | external f : float -> (float [@unboxed]) = "f" "f_nat" 156 156 5 | end.. ··· 172 172 end;; 173 173 174 174 [%%expect{| 175 - Line 3, characters 6-73: 175 + Lines 3-5, characters 6-3: 176 176 3 | ......struct 177 177 4 | external f : (float [@unboxed]) -> float = "f" "f_nat" 178 178 5 | end.. ··· 196 196 end;; 197 197 198 198 [%%expect{| 199 - Line 3, characters 6-56: 199 + Lines 3-5, characters 6-3: 200 200 3 | ......struct 201 201 4 | external f : int -> int = "f" "f_nat" 202 202 5 | end.. ··· 218 218 end;; 219 219 220 220 [%%expect{| 221 - Line 3, characters 6-56: 221 + Lines 3-5, characters 6-3: 222 222 3 | ......struct 223 223 4 | external f : int -> int = "a" "a_nat" 224 224 5 | end.. ··· 240 240 end;; 241 241 242 242 [%%expect{| 243 - Line 3, characters 6-60: 243 + Lines 3-5, characters 6-3: 244 244 3 | ......struct 245 245 4 | external f : float -> float = "f" "f_nat" 246 246 5 | end.. ··· 262 262 end;; 263 263 264 264 [%%expect{| 265 - Line 3, characters 6-60: 265 + Lines 3-5, characters 6-3: 266 266 3 | ......struct 267 267 4 | external f : float -> float = "a" "a_nat" 268 268 5 | end..
+5 -5
testsuite/tests/typing-warnings/ambiguous_guarded_disjunction.ml
··· 197 197 | _ -> () 198 198 ;; 199 199 [%%expect {| 200 - Line 2, characters 4-101: 200 + Lines 2-3, characters 4-58: 201 201 2 | ....`A ((`B (Some x, _) | `B (_, Some x)), 202 202 3 | (`C (Some y, Some _, _) | `C (Some y, _, Some _)))................. 203 203 Warning 57: Ambiguous or-pattern variables under guard; ··· 215 215 | _ -> () 216 216 ;; 217 217 [%%expect {| 218 - Line 2, characters 4-101: 218 + Lines 2-3, characters 4-42: 219 219 2 | ....`A ((`B (Some x, Some _, _) | `B (Some x, _, Some _)), 220 220 3 | (`C (Some y, _) | `C (_, Some y)))................. 221 221 Warning 57: Ambiguous or-pattern variables under guard; ··· 308 308 | X _|Y _|Z _ -> 1 309 309 ;; 310 310 [%%expect {| 311 - Line 2, characters 2-35: 311 + Lines 2-3, characters 2-17: 312 312 2 | ..X (Z x,Y (y,0)) 313 313 3 | | X (Z y,Y (x,_)) 314 314 Warning 57: Ambiguous or-pattern variables under guard; ··· 328 328 | _ -> 2 329 329 ;; 330 330 [%%expect {| 331 - Line 2, characters 4-49: 331 + Lines 2-3, characters 4-24: 332 332 2 | ....(module M:S),_,(1,_) 333 333 3 | | _,(module M:S),(_,1)................... 334 334 Warning 57: Ambiguous or-pattern variables under guard; ··· 365 365 ^ 366 366 Warning 41: A belongs to several types: t2 t 367 367 The first one was selected. Please disambiguate if this is wrong. 368 - Line 1, characters 41-137: 368 + Lines 1-3, characters 41-10: 369 369 1 | .........................................function 370 370 2 | | A (x as z,(0 as y))|A (0 as y as z,x)|B (x,(y as z)) when g x (y+z) -> 1 371 371 3 | | _ -> 2
+3 -3
testsuite/tests/typing-warnings/exhaustiveness.ml
··· 8 8 None, None -> 1 9 9 | Some _, Some _ -> 2;; 10 10 [%%expect {| 11 - Line 1, characters 8-60: 11 + Lines 1-3, characters 8-23: 12 12 1 | ........function 13 13 2 | None, None -> 1 14 14 3 | | Some _, Some _ -> 2.. ··· 38 38 (*| _ -> _ *) 39 39 ;; 40 40 [%%expect {| 41 - Line 4, characters 1-82: 41 + Lines 4-5, characters 1-38: 42 42 4 | .function A, A, A, A, A, A, A, _, U, U -> 1 43 43 5 | | _, _, _, _, _, _, _, G, _, _ -> 1 44 44 Warning 8: this pattern-matching is not exhaustive. ··· 358 358 | Some x when x <= 0 -> () 359 359 ;; 360 360 [%%expect {| 361 - Line 1, characters 8-88: 361 + Lines 1-4, characters 8-28: 362 362 1 | ........function 363 363 2 | | None -> () 364 364 3 | | Some x when x > 0 -> ()
+1 -1
testsuite/tests/typing-warnings/pr6587.ml
··· 23 23 end 24 24 ;; 25 25 [%%expect {| 26 - Line 2, characters 2-38: 26 + Lines 2-4, characters 2-5: 27 27 2 | ..struct 28 28 3 | let f A = FP_normal 29 29 4 | end
+1 -1
testsuite/tests/warnings/w04.compilers.reference
··· 1 - File "w04.ml", line 21, characters 10-40: 1 + File "w04.ml", lines 21-23, characters 10-8: 2 2 21 | ..........match x with 3 3 22 | | A -> 0 4 4 23 | | _ -> 1
+3 -3
testsuite/tests/warnings/w04_failure.compilers.reference
··· 1 - File "w04_failure.ml", line 20, characters 2-78: 1 + File "w04_failure.ml", lines 20-23, characters 2-17: 2 2 20 | ..match r1, r2, t with 3 3 21 | | AB, _, A -> () 4 4 22 | | _, XY, X -> () 5 5 23 | | _, _, _ -> () 6 6 Warning 4: this pattern-matching is fragile. 7 7 It will remain exhaustive when constructors are added to type repr. 8 - File "w04_failure.ml", line 20, characters 2-78: 8 + File "w04_failure.ml", lines 20-23, characters 2-17: 9 9 20 | ..match r1, r2, t with 10 10 21 | | AB, _, A -> () 11 11 22 | | _, XY, X -> () 12 12 23 | | _, _, _ -> () 13 13 Warning 4: this pattern-matching is fragile. 14 14 It will remain exhaustive when constructors are added to type ab. 15 - File "w04_failure.ml", line 20, characters 2-78: 15 + File "w04_failure.ml", lines 20-23, characters 2-17: 16 16 20 | ..match r1, r2, t with 17 17 21 | | AB, _, A -> () 18 18 22 | | _, XY, X -> ()
+1 -1
testsuite/tests/warnings/w32.compilers.reference
··· 46 46 59 | and[@warning "+32"] k x = x 47 47 ^ 48 48 Warning 32: unused value k. 49 - File "w32.ml", line 52, characters 0-174: 49 + File "w32.ml", lines 52-60, characters 0-3: 50 50 52 | module M = struct 51 51 53 | [@@@warning "-32"] 52 52 54 | let f x = x
+1
testsuite/tools/Makefile
··· 30 30 -I $(OTOPDIR)/typing \ 31 31 -I $(OTOPDIR)/middle_end \ 32 32 -I $(OTOPDIR)/bytecomp \ 33 + -I $(OTOPDIR)/lambda \ 33 34 -I $(OTOPDIR)/asmcomp 34 35 35 36 codegen_OTHEROBJECTS=\
+30 -30
tools/.depend
··· 54 54 ../typing/ident.cmi \ 55 55 ../typing/envaux.cmi \ 56 56 ../typing/env.cmi \ 57 - ../typing/cmt_format.cmi \ 57 + ../file_formats/cmt_format.cmi \ 58 58 ../parsing/asttypes.cmi \ 59 59 ../typing/annot.cmi 60 60 cmt2annot.cmx : \ ··· 71 71 ../typing/ident.cmx \ 72 72 ../typing/envaux.cmx \ 73 73 ../typing/env.cmx \ 74 - ../typing/cmt_format.cmx \ 74 + ../file_formats/cmt_format.cmx \ 75 75 ../parsing/asttypes.cmi \ 76 76 ../typing/annot.cmi 77 77 cvt_emit.cmo : ··· 81 81 opnames.cmo \ 82 82 ../bytecomp/opcodes.cmi \ 83 83 ../parsing/location.cmi \ 84 - ../bytecomp/lambda.cmi \ 84 + ../lambda/lambda.cmi \ 85 85 ../bytecomp/instruct.cmi \ 86 86 ../typing/ident.cmi \ 87 87 ../utils/config.cmi \ 88 - ../bytecomp/cmo_format.cmi \ 88 + ../file_formats/cmo_format.cmi \ 89 89 ../bytecomp/bytesections.cmi \ 90 90 ../parsing/asttypes.cmi 91 91 dumpobj.cmx : \ ··· 93 93 opnames.cmx \ 94 94 ../bytecomp/opcodes.cmx \ 95 95 ../parsing/location.cmx \ 96 - ../bytecomp/lambda.cmx \ 96 + ../lambda/lambda.cmx \ 97 97 ../bytecomp/instruct.cmx \ 98 98 ../typing/ident.cmx \ 99 99 ../utils/config.cmx \ 100 - ../bytecomp/cmo_format.cmi \ 100 + ../file_formats/cmo_format.cmi \ 101 101 ../bytecomp/bytesections.cmx \ 102 102 ../parsing/asttypes.cmi 103 103 eqparsetree.cmo : \ ··· 132 132 make_opcodes.cmx : 133 133 objinfo.cmo : \ 134 134 ../bytecomp/symtable.cmi \ 135 - ../middle_end/base_types/symbol.cmi \ 136 - ../asmcomp/printclambda.cmi \ 135 + ../middle_end/symbol.cmi \ 136 + ../middle_end/printclambda.cmi \ 137 137 ../utils/misc.cmi \ 138 - ../middle_end/base_types/linkage_name.cmi \ 138 + ../middle_end/linkage_name.cmi \ 139 139 ../typing/ident.cmi \ 140 - ../asmcomp/export_info.cmi \ 140 + ../middle_end/flambda/export_info.cmi \ 141 141 ../utils/config.cmi \ 142 - ../middle_end/base_types/compilation_unit.cmi \ 143 - ../asmcomp/cmxs_format.cmi \ 144 - ../asmcomp/cmx_format.cmi \ 145 - ../typing/cmt_format.cmi \ 146 - ../bytecomp/cmo_format.cmi \ 147 - ../typing/cmi_format.cmi \ 142 + ../middle_end/compilation_unit.cmi \ 143 + ../file_formats/cmxs_format.cmi \ 144 + ../file_formats/cmx_format.cmi \ 145 + ../file_formats/cmt_format.cmi \ 146 + ../file_formats/cmo_format.cmi \ 147 + ../file_formats/cmi_format.cmi \ 148 148 ../bytecomp/bytesections.cmi 149 149 objinfo.cmx : \ 150 150 ../bytecomp/symtable.cmx \ 151 - ../middle_end/base_types/symbol.cmx \ 152 - ../asmcomp/printclambda.cmx \ 151 + ../middle_end/symbol.cmx \ 152 + ../middle_end/printclambda.cmx \ 153 153 ../utils/misc.cmx \ 154 - ../middle_end/base_types/linkage_name.cmx \ 154 + ../middle_end/linkage_name.cmx \ 155 155 ../typing/ident.cmx \ 156 - ../asmcomp/export_info.cmx \ 156 + ../middle_end/flambda/export_info.cmx \ 157 157 ../utils/config.cmx \ 158 - ../middle_end/base_types/compilation_unit.cmx \ 159 - ../asmcomp/cmxs_format.cmi \ 160 - ../asmcomp/cmx_format.cmi \ 161 - ../typing/cmt_format.cmx \ 162 - ../bytecomp/cmo_format.cmi \ 163 - ../typing/cmi_format.cmx \ 158 + ../middle_end/compilation_unit.cmx \ 159 + ../file_formats/cmxs_format.cmi \ 160 + ../file_formats/cmx_format.cmi \ 161 + ../file_formats/cmt_format.cmx \ 162 + ../file_formats/cmo_format.cmi \ 163 + ../file_formats/cmi_format.cmx \ 164 164 ../bytecomp/bytesections.cmx 165 165 ocaml299to3.cmo : 166 166 ocaml299to3.cmx : ··· 205 205 primreq.cmo : \ 206 206 ../utils/misc.cmi \ 207 207 ../utils/config.cmi \ 208 - ../bytecomp/cmo_format.cmi 208 + ../file_formats/cmo_format.cmi 209 209 primreq.cmx : \ 210 210 ../utils/misc.cmx \ 211 211 ../utils/config.cmx \ 212 - ../bytecomp/cmo_format.cmi 212 + ../file_formats/cmo_format.cmi 213 213 profiling.cmo : \ 214 214 profiling.cmi 215 215 profiling.cmx : \ ··· 218 218 read_cmt.cmo : \ 219 219 ../parsing/location.cmi \ 220 220 ../driver/compmisc.cmi \ 221 - ../typing/cmt_format.cmi \ 221 + ../file_formats/cmt_format.cmi \ 222 222 cmt2annot.cmo \ 223 223 ../utils/clflags.cmi 224 224 read_cmt.cmx : \ 225 225 ../parsing/location.cmx \ 226 226 ../driver/compmisc.cmx \ 227 - ../typing/cmt_format.cmx \ 227 + ../file_formats/cmt_format.cmx \ 228 228 cmt2annot.cmx \ 229 229 ../utils/clflags.cmx 230 230 scrapelabels.cmo :
+4 -8
tools/Makefile
··· 76 76 -use-prims $(ROOTDIR)/runtime/primitives -I $(ROOTDIR) 77 77 CAMLOPT = $(CAMLRUN) $(ROOTDIR)/ocamlopt -g -nostdlib -I $(ROOTDIR)/stdlib 78 78 CAMLLEX = $(CAMLRUN) $(ROOTDIR)/boot/ocamllex 79 - INCLUDES = $(addprefix -I $(ROOTDIR)/,utils parsing typing bytecomp asmcomp \ 80 - middle_end middle_end/base_types driver toplevel) 79 + INCLUDES = $(addprefix -I $(ROOTDIR)/,utils parsing typing bytecomp \ 80 + middle_end middle_end/closure middle_end/flambda \ 81 + middle_end/flambda/base_types driver toplevel \ 82 + file_formats lambda) 81 83 COMPFLAGS = -absname -w +a-4-9-41-42-44-45-48 -strict-sequence -warn-error A \ 82 84 -safe-string -strict-formats -bin-annot $(INCLUDES) 83 85 LINKFLAGS = $(INCLUDES) ··· 326 328 OBJINFO=$(ROOTDIR)/compilerlibs/ocamlcommon.cma \ 327 329 $(ROOTDIR)/compilerlibs/ocamlbytecomp.cma \ 328 330 $(ROOTDIR)/compilerlibs/ocamlmiddleend.cma \ 329 - $(ROOTDIR)/asmcomp/backend_var.cmo \ 330 - $(ROOTDIR)/asmcomp/printclambda.cmo \ 331 - $(ROOTDIR)/asmcomp/export_info.cmo \ 332 331 objinfo.cmo 333 332 334 333 $(call byte_and_opt,ocamlobjinfo,$(OBJINFO),objinfo_helper$(EXE)) ··· 347 346 LINTAPIDIFF=$(ROOTDIR)/compilerlibs/ocamlcommon.cmxa \ 348 347 $(ROOTDIR)/compilerlibs/ocamlbytecomp.cmxa \ 349 348 $(ROOTDIR)/compilerlibs/ocamlmiddleend.cmxa \ 350 - $(ROOTDIR)/asmcomp/backend_var.cmx \ 351 - $(ROOTDIR)/asmcomp/printclambda.cmx \ 352 - $(ROOTDIR)/asmcomp/export_info.cmx \ 353 349 $(ROOTDIR)/otherlibs/str/str.cmxa \ 354 350 lintapidiff.cmx 355 351
+16
tools/ci/travis/travis-ci.sh
··· 223 223 else 224 224 echo "NOT checking $1: $path (typo.prune)" 225 225 fi 226 + if [[ $path = 'configure' || $path = 'configure.ac' ]] ; then 227 + touch CHECK_CONFIGURE 228 + fi 226 229 done) 227 230 rm -f tmp-index 231 + if [ -e CHECK_CONFIGURE ] ; then 232 + rm -f CHECK_CONFIGURE 233 + echo "configure or configure.ac altered in $1" 234 + echo "Verifying that configure.ac generates configure" 235 + git checkout "$1" 236 + mv configure configure.ref 237 + ./autogen 238 + if ! diff -q configure configure.ref >/dev/null ; then 239 + echo "configure.ac no longer generates configure, \ 240 + please run ./autogen and commit" 241 + exit 1 242 + fi 243 + fi 228 244 } 229 245 230 246 CHECK_ALL_COMMITS=0
+2 -1
tools/release-checklist
··· 109 109 # 4.07.0+dev8-2018-06-19 => 4.07.0+dev9-2018-06-26 110 110 # for production releases: check and change the Changes header 111 111 # (remove "next version" and add a date) 112 - git add VERSION Changes 112 + # Update ocaml-variants.opam file to depend on the new version of ocaml. 113 + git add VERSION Changes ocaml-variants.opam 113 114 git commit -m "last commit before tagging $VERSION" 114 115 # update VERSION with the new release; for example, 115 116 # 4.07.0+dev9-2018-06-26 => 4.07.0+rc2
+2 -2
toplevel/opttoploop.ml
··· 251 251 let fn = Filename.chop_extension dll in 252 252 if not Config.flambda then 253 253 Asmgen.compile_implementation_clambda 254 - ~toplevel:need_symbol fn ~ppf_dump:ppf 254 + ~toplevel:need_symbol fn ~backend ~ppf_dump:ppf 255 255 { Lambda.code=slam ; main_module_block_size=size; 256 256 module_ident; required_globals } 257 257 else 258 258 Asmgen.compile_implementation_flambda 259 259 ~required_globals ~backend ~toplevel:need_symbol fn ~ppf_dump:ppf 260 - (Middle_end.middle_end ~ppf_dump:ppf ~prefixname:"" ~backend ~size 260 + (Flambda_middle_end.middle_end ~ppf_dump:ppf ~prefixname:"" ~backend ~size 261 261 ~module_ident ~module_initializer:slam ~filename:"toplevel"); 262 262 Asmlink.call_linker_shared [fn ^ ext_obj] dll; 263 263 Sys.remove (fn ^ ext_obj);
typing/cmi_format.ml file_formats/cmi_format.ml
typing/cmi_format.mli file_formats/cmi_format.mli
typing/cmt_format.ml file_formats/cmt_format.ml
typing/cmt_format.mli file_formats/cmt_format.mli
+23 -18
typing/ctype.ml
··· 721 721 end 722 722 end 723 723 724 - let generalize_structure var_level ty = 724 + let generalize_structure ty = 725 725 simple_abbrevs := Mnil; 726 - generalize_structure var_level ty 726 + generalize_structure !current_level ty 727 727 728 728 (* Generalize the spine of a function, if the level >= !current_level *) 729 729 ··· 878 878 update_level env level true ty 879 879 end 880 880 881 - (* Generalize and lower levels of contravariant branches simultaneously *) 881 + (* Lower level of type variables inside contravariant branches *) 882 882 883 - let rec generalize_expansive env var_level visited ty = 883 + let rec lower_contravariant env var_level visited contra ty = 884 884 let ty = repr ty in 885 - if ty.level = generic_level || ty.level <= var_level then () else 886 - if not (Hashtbl.mem visited ty.id) then begin 887 - Hashtbl.add visited ty.id (); 885 + let must_visit = 886 + ty.level > var_level && 887 + match Hashtbl.find visited ty.id with 888 + | done_contra -> contra && not done_contra 889 + | exception Not_found -> true 890 + in 891 + if must_visit then begin 892 + Hashtbl.add visited ty.id contra; 893 + let generalize_rec = lower_contravariant env var_level visited in 888 894 match ty.desc with 889 - Tconstr (path, tyl, abbrev) -> 895 + Tvar _ -> if contra then set_level ty var_level 896 + | Tconstr (path, tyl, abbrev) -> 890 897 let variance = 891 898 try (Env.find_type path env).type_variance 892 899 with Not_found -> ··· 897 904 List.iter2 898 905 (fun v t -> 899 906 if Variance.(mem May_weak v) 900 - then generalize_structure var_level t 901 - else generalize_expansive env var_level visited t) 907 + then generalize_rec true t 908 + else generalize_rec contra t) 902 909 variance tyl 903 910 | Tpackage (_, _, tyl) -> 904 - List.iter (generalize_structure var_level) tyl 911 + List.iter (generalize_rec true) tyl 905 912 | Tarrow (_, t1, t2, _) -> 906 - generalize_structure var_level t1; 907 - generalize_expansive env var_level visited t2 913 + generalize_rec true t1; 914 + generalize_rec contra t2 908 915 | _ -> 909 - iter_type_expr (generalize_expansive env var_level visited) ty 916 + iter_type_expr (generalize_rec contra) ty 910 917 end 911 918 912 - let generalize_expansive env ty = 919 + let lower_contravariant env ty = 913 920 simple_abbrevs := Mnil; 914 - generalize_expansive env !nongen_level (Hashtbl.create 7) ty 915 - 916 - let generalize_structure ty = generalize_structure !current_level ty 921 + lower_contravariant env !nongen_level (Hashtbl.create 7) false ty 917 922 918 923 (* Correct the levels of type [ty]. *) 919 924 let correct_levels ty =
+3 -3
typing/ctype.mli
··· 154 154 155 155 val generalize: type_expr -> unit 156 156 (* Generalize in-place the given type *) 157 - val generalize_expansive: Env.t -> type_expr -> unit 158 - (* Generalize the covariant part of a type, making 159 - contravariant branches non-generalizable *) 157 + val lower_contravariant: Env.t -> type_expr -> unit 158 + (* Lower level of type variables inside contravariant branches; 159 + to be used before generalize for expansive expressions *) 160 160 val generalize_structure: type_expr -> unit 161 161 (* Same, but variables are only lowered to !current_level *) 162 162 val generalize_spine: type_expr -> unit
+110 -85
typing/typecore.ml
··· 75 75 | Virtual_class of Longident.t 76 76 | Private_type of type_expr 77 77 | Private_label of Longident.t * type_expr 78 + | Private_constructor of constructor_description * type_expr 78 79 | Unbound_instance_variable of string * string list 79 80 | Instance_variable_not_mutable of bool * string 80 81 | Not_subtype of Ctype.Unification_trace.t * Ctype.Unification_trace.t ··· 1803 1804 1804 1805 let rec is_nonexpansive exp = 1805 1806 match exp.exp_desc with 1806 - Texp_ident(_,_,_) -> true 1807 - | Texp_constant _ -> true 1807 + | Texp_ident _ 1808 + | Texp_constant _ 1809 + | Texp_unreachable 1810 + | Texp_function _ 1811 + | Texp_array [] -> true 1808 1812 | Texp_let(_rec_flag, pat_exp_list, body) -> 1809 1813 List.for_all (fun vb -> is_nonexpansive vb.vb_expr) pat_exp_list && 1810 1814 is_nonexpansive body 1811 - | Texp_function _ -> true 1812 1815 | Texp_apply(e, (_,None)::el) -> 1813 1816 is_nonexpansive e && List.for_all is_nonexpansive_opt (List.map snd el) 1814 - | Texp_match(e, cases, [], _) -> 1817 + | Texp_match(e, cases, _, _) -> 1815 1818 (* Not sure this is necessary, if [e] is nonexpansive then we shouldn't 1816 1819 care if there are exception patterns. But the previous version enforced 1817 1820 that there be none, so... *) ··· 1845 1848 fields 1846 1849 && is_nonexpansive_opt extended_expression 1847 1850 | Texp_field(exp, _, _) -> is_nonexpansive exp 1848 - | Texp_array [] -> true 1849 1851 | Texp_ifthenelse(_cond, ifso, ifnot) -> 1850 1852 is_nonexpansive ifso && is_nonexpansive_opt ifnot 1851 1853 | Texp_sequence (_e1, e2) -> is_nonexpansive e2 (* PR#4354 *) 1852 - | Texp_new (_, _, cl_decl) when Ctype.class_type_arity cl_decl.cty_type > 0 -> 1853 - true 1854 + | Texp_new (_, _, cl_decl) -> Ctype.class_type_arity cl_decl.cty_type > 0 1854 1855 (* Note: nonexpansive only means no _observable_ side effects *) 1855 1856 | Texp_lazy e -> is_nonexpansive e 1856 1857 | Texp_object ({cstr_fields=fields; cstr_type = { csig_vars=vars}}, _) -> ··· 1887 1888 ("%raise" | "%reraise" | "%raise_notrace")}}) }, 1888 1889 [Nolabel, Some e]) -> 1889 1890 is_nonexpansive e 1890 - | _ -> false 1891 + | Texp_array (_ :: _) 1892 + | Texp_apply _ 1893 + | Texp_try _ 1894 + | Texp_setfield _ 1895 + | Texp_while _ 1896 + | Texp_for _ 1897 + | Texp_send _ 1898 + | Texp_instvar _ 1899 + | Texp_setinstvar _ 1900 + | Texp_override _ 1901 + | Texp_letexception _ 1902 + | Texp_letop _ 1903 + | Texp_extension_constructor _ -> 1904 + false 1891 1905 1892 1906 and is_nonexpansive_mod mexp = 1893 1907 match mexp.mod_desc with 1894 - | Tmod_ident _ -> true 1908 + | Tmod_ident _ 1895 1909 | Tmod_functor _ -> true 1896 1910 | Tmod_unpack (e, _) -> is_nonexpansive e 1897 1911 | Tmod_constraint (m, _, _, _) -> is_nonexpansive_mod m ··· 1928 1942 | Tmod_apply _ -> false 1929 1943 1930 1944 and is_nonexpansive_opt = function 1931 - None -> true 1945 + | None -> true 1932 1946 | Some e -> is_nonexpansive e 1947 + 1948 + let maybe_expansive e = not (is_nonexpansive e) 1933 1949 1934 1950 let check_recursive_bindings env valbinds = 1935 1951 let ids = let_bound_idents valbinds in ··· 2019 2035 2020 2036 (* Check that all univars are safe in a type *) 2021 2037 let check_univars env expans kind exp ty_expected vars = 2022 - if expans && not (is_nonexpansive exp) then 2023 - generalize_expansive env exp.exp_type; 2038 + if expans && maybe_expansive exp then 2039 + lower_contravariant env exp.exp_type; 2024 2040 (* need to expand twice? cf. Ctype.unify2 *) 2025 2041 let vars = List.map (expand_head env) vars in 2026 2042 let vars = List.map (expand_head env) vars in ··· 2518 2534 begin_def (); 2519 2535 let arg = type_exp env sarg in 2520 2536 end_def (); 2521 - if not (is_nonexpansive arg) then generalize_expansive env arg.exp_type; 2537 + if maybe_expansive arg then lower_contravariant env arg.exp_type; 2522 2538 generalize arg.exp_type; 2523 2539 let rec split_cases valc effc conts = function 2524 2540 | [] -> List.rev valc, List.rev effc, List.rev conts ··· 3891 3907 try 3892 3908 check_univars env (vars <> []) "field value" arg label.lbl_arg vars; 3893 3909 arg 3894 - with exn when not (is_nonexpansive arg) -> try 3910 + with exn when maybe_expansive arg -> try 3895 3911 (* Try to retype without propagating ty_arg, cf PR#4862 *) 3896 3912 may Btype.backtrack snap; 3897 3913 begin_def (); 3898 3914 let arg = type_exp env sarg in 3899 3915 end_def (); 3900 - generalize_expansive env arg.exp_type; 3916 + lower_contravariant env arg.exp_type; 3901 3917 unify_exp env arg ty_arg; 3902 3918 check_univars env false "field value" arg label.lbl_arg vars; 3903 3919 arg ··· 4273 4289 List.map2 (fun e (t,t0) -> type_argument ~recarg env e t t0) sargs 4274 4290 (List.combine ty_args ty_args0) in 4275 4291 if constr.cstr_private = Private then 4276 - raise(Error(loc, env, Private_type ty_res)); 4292 + begin match constr.cstr_tag with 4293 + | Cstr_extension _ -> 4294 + raise(Error(loc, env, Private_constructor (constr, ty_res))) 4295 + | Cstr_constant _ | Cstr_block _ | Cstr_unboxed -> 4296 + raise (Error(loc, env, Private_type ty_res)); 4297 + end; 4277 4298 (* NOTE: shouldn't we call "re" on this final expression? -- AF *) 4278 4299 { texp with 4279 4300 exp_desc = Texp_construct(lid, constr, args) } ··· 4775 4796 end_def(); 4776 4797 List.iter2 4777 4798 (fun pat exp -> 4778 - if not (is_nonexpansive exp) then 4779 - generalize_expansive env pat.pat_type) 4799 + if maybe_expansive exp then 4800 + lower_contravariant env pat.pat_type) 4780 4801 pat_list exp_list; 4781 4802 iter_pattern_variables_type generalize pvs; 4782 4803 (* We also generalize expressions that are not bound to a variable. ··· 4879 4900 begin_def(); 4880 4901 let exp = type_exp env sexp in 4881 4902 end_def(); 4882 - if not (is_nonexpansive exp) then generalize_expansive env exp.exp_type; 4903 + if maybe_expansive exp then lower_contravariant env exp.exp_type; 4883 4904 generalize exp.exp_type; 4884 4905 match sexp.pexp_desc with 4885 4906 Pexp_ident lid -> ··· 4911 4932 (* Hint on type error on integer literals 4912 4933 To avoid confusion, it is disabled on float literals 4913 4934 and when the expected type is `int` *) 4914 - let report_literal_type_constraint ppf expected_type const = 4915 - let hint str_val = 4916 - let hint_suffix c = 4917 - fprintf ppf "@\n@[Hint: Did you mean `%s%c'?@]" str_val c 4918 - in 4935 + let report_literal_type_constraint expected_type const = 4936 + let const_str = match const with 4937 + | Const_int n -> Some (Int.to_string n) 4938 + | Const_int32 n -> Some (Int32.to_string n) 4939 + | Const_int64 n -> Some (Int64.to_string n) 4940 + | Const_nativeint n -> Some (Nativeint.to_string n) 4941 + | _ -> None 4942 + in 4943 + let suffix = 4919 4944 if Path.same expected_type Predef.path_int32 then 4920 - hint_suffix 'l' 4945 + Some 'l' 4921 4946 else if Path.same expected_type Predef.path_int64 then 4922 - hint_suffix 'L' 4947 + Some 'L' 4923 4948 else if Path.same expected_type Predef.path_nativeint then 4924 - hint_suffix 'n' 4949 + Some 'n' 4925 4950 else if Path.same expected_type Predef.path_float then 4926 - hint_suffix '.' 4927 - else 4928 - () 4951 + Some '.' 4952 + else None 4929 4953 in 4930 - match const with 4931 - | Const_int n -> hint (Int.to_string n) 4932 - | Const_int32 n -> hint (Int32.to_string n) 4933 - | Const_int64 n -> hint (Int64.to_string n) 4934 - | Const_nativeint n -> hint (Nativeint.to_string n) 4935 - | _ -> () 4954 + match const_str, suffix with 4955 + | Some c, Some s -> [ Location.msg "@[Hint: Did you mean `%s%c'?@]" c s ] 4956 + | _, _ -> [] 4936 4957 4937 - let report_literal_type_constraint ppf const = function 4958 + let report_literal_type_constraint const = function 4938 4959 | Some Unification_trace. 4939 4960 { expected = { t = { desc = Tconstr (typ, [], _) } } } -> 4940 - report_literal_type_constraint ppf typ const 4941 - | Some _ | None -> () 4961 + report_literal_type_constraint typ const 4962 + | Some _ | None -> [] 4942 4963 4943 - let report_expr_type_clash_hints ppf exp diff = 4964 + let report_expr_type_clash_hints exp diff = 4944 4965 match exp with 4945 - | Some (Texp_constant const) -> report_literal_type_constraint ppf const diff 4946 - | _ -> () 4966 + | Some (Texp_constant const) -> report_literal_type_constraint const diff 4967 + | _ -> [] 4947 4968 4948 - let report_pattern_type_clash_hints ppf pat diff = 4969 + let report_pattern_type_clash_hints pat diff = 4949 4970 match pat with 4950 - | Some (Tpat_constant const) -> report_literal_type_constraint ppf const diff 4951 - | _ -> () 4971 + | Some (Tpat_constant const) -> report_literal_type_constraint const diff 4972 + | _ -> [] 4952 4973 4953 4974 (* Hint when using int operators (eg. `+`) 4954 4975 on other kind of integer and floats *) 4955 - let report_numeric_operator_clash_hints actual_type operator = 4976 + let report_numeric_operator_clash_hints ~loc actual_type operator = 4956 4977 let stdlib = Path.Pident (Ident.create_persistent "Stdlib") in 4957 4978 let stdlib_qualified mod_ val_ = Path.Pdot (Path.Pdot (stdlib, mod_), val_) in 4958 - let hint expected_op = 4959 - Some (fun ppf -> 4960 - fprintf ppf "@[Hint:@ Did you mean to use `%a'?@]" 4961 - Printtyp.path expected_op 4962 - ) 4979 + let is_op op = Path.same operator (Path.Pdot (stdlib, op)) in 4980 + let expecting_qualified name = 4981 + let qualified = stdlib_qualified name in 4982 + if is_op "+" then Some (qualified "add") 4983 + else if is_op "-" then Some (qualified "sub") 4984 + else if is_op "*" then Some (qualified "mul") 4985 + else if is_op "/" then Some (qualified "div") 4986 + else if is_op "mod" then Some (qualified "rem") 4987 + else None 4963 4988 in 4964 - let hint ~add ~sub ~mul ~div ~mod_ () = 4965 - let is_op op = Path.same operator (Path.Pdot (stdlib, op)) in 4966 - if is_op "+" then hint add 4967 - else if is_op "-" then hint sub 4968 - else if is_op "*" then hint mul 4969 - else if is_op "/" then hint div 4970 - else if is_op "mod" then hint mod_ 4989 + let expecting_float () = 4990 + let qualified id = Path.Pdot (stdlib, id) in 4991 + if is_op "+" then Some (qualified "+.") 4992 + else if is_op "-" then Some (qualified "-.") 4993 + else if is_op "*" then Some (qualified "*.") 4994 + else if is_op "/" then Some (qualified "/.") 4995 + else if is_op "mod" then Some (stdlib_qualified "Float" "rem") 4971 4996 else None 4972 4997 in 4973 - let hint_qualified name = 4974 - let qualified = stdlib_qualified name in 4975 - hint ~add:(qualified "add") ~sub:(qualified "sub") ~mul:(qualified "mul") 4976 - ~div:(qualified "div") ~mod_:(qualified "rem") () 4998 + let expecting_op = 4999 + if Path.same actual_type Predef.path_int32 then 5000 + expecting_qualified "Int32" 5001 + else if Path.same actual_type Predef.path_int64 then 5002 + expecting_qualified "Int64" 5003 + else if Path.same actual_type Predef.path_nativeint then 5004 + expecting_qualified "Nativeint" 5005 + else if Path.same actual_type Predef.path_float then 5006 + expecting_float () 5007 + else None 4977 5008 in 4978 - let hint_std () = 4979 - let qualified id = Path.Pdot (stdlib, id) in 4980 - hint ~add:(qualified "+.") ~sub:(qualified "-.") ~mul:(qualified "*.") 4981 - ~div:(qualified "/.") ~mod_:(stdlib_qualified "Float" "rem") () 4982 - in 4983 - let expecting = Path.same actual_type in 4984 - if expecting Predef.path_int32 then 4985 - hint_qualified "Int32" 4986 - else if expecting Predef.path_int64 then 4987 - hint_qualified "Int64" 4988 - else if expecting Predef.path_nativeint then 4989 - hint_qualified "Nativeint" 4990 - else if expecting Predef.path_float then 4991 - hint_std () 4992 - else None 5009 + match expecting_op with 5010 + | Some op -> 5011 + [ Location.msg ~loc "@[Hint:@ Did you mean to use `%a'?@]" 5012 + Printtyp.path op ] 5013 + | None -> [] 4993 5014 4994 5015 (* Returns a list of `Location.msg` *) 4995 5016 let report_application_clash_hints diff expl = 4996 5017 match expl, diff with 4997 5018 | Some (Application { exp_desc = Texp_ident (p, _, _); exp_loc = loc; _ }), 4998 5019 Some Unification_trace.{ got = { t = { desc = Tconstr (typ, [], _) } } } -> 4999 - begin match report_numeric_operator_clash_hints typ p with 5000 - | Some txt -> [ { txt; loc } ] 5001 - | None -> [] 5002 - end 5020 + report_numeric_operator_clash_hints ~loc typ p 5003 5021 | _ -> [] 5004 5022 5005 5023 let report_type_expected_explanation expl ppf = ··· 5054 5072 fprintf ppf "but is mixed here with fields of type") 5055 5073 | Pattern_type_clash (trace, pat) -> 5056 5074 let diff = type_clash_of_trace trace in 5057 - Location.error_of_printer ~loc (fun ppf () -> 5075 + let sub = report_pattern_type_clash_hints pat diff in 5076 + Location.error_of_printer ~loc ~sub (fun ppf () -> 5058 5077 Printtyp.report_unification_error ppf env trace 5059 5078 (function ppf -> 5060 5079 fprintf ppf "This pattern matches values of type") 5061 5080 (function ppf -> 5062 5081 fprintf ppf "but a pattern was expected which matches values of \ 5063 5082 type"); 5064 - report_pattern_type_clash_hints ppf pat diff 5065 5083 ) () 5066 5084 | Or_pattern_type_clash (id, trace) -> 5067 5085 report_unification_error ~loc env trace ··· 5083 5101 ) () 5084 5102 | Expr_type_clash (trace, explanation, exp) -> 5085 5103 let diff = type_clash_of_trace trace in 5086 - let sub = report_application_clash_hints diff explanation in 5104 + let sub = List.concat [ 5105 + report_application_clash_hints diff explanation; 5106 + report_expr_type_clash_hints exp diff; 5107 + ] 5108 + in 5087 5109 Location.error_of_printer ~loc ~sub (fun ppf () -> 5088 5110 Printtyp.report_unification_error ppf env trace 5089 5111 ~type_expected_explanation: ··· 5092 5114 fprintf ppf "This expression has type") 5093 5115 (function ppf -> 5094 5116 fprintf ppf "but an expression was expected of type"); 5095 - report_expr_type_clash_hints ppf exp diff 5096 5117 ) () 5097 5118 | Apply_non_function typ -> 5098 5119 reset_and_mark_loops typ; ··· 5263 5284 | Private_label (lid, ty) -> 5264 5285 Location.errorf ~loc "Cannot assign field %a of the private type %a" 5265 5286 longident lid type_expr ty 5287 + | Private_constructor (constr, ty) -> 5288 + Location.errorf ~loc 5289 + "Cannot use private constructor %s to create values of type %a" 5290 + constr.cstr_name type_expr ty 5266 5291 | Not_a_variant_type lid -> 5267 5292 Location.errorf ~loc "The type %a@ is not a variant type" longident lid 5268 5293 | Incoherent_label_order ->
+1
typing/typecore.mli
··· 142 142 | Virtual_class of Longident.t 143 143 | Private_type of type_expr 144 144 | Private_label of Longident.t * type_expr 145 + | Private_constructor of constructor_description * type_expr 145 146 | Unbound_instance_variable of string * string list 146 147 | Instance_variable_not_mutable of bool * string 147 148 | Not_subtype of Ctype.Unification_trace.t * Ctype.Unification_trace.t
+14
utils/misc.ml
··· 203 203 else if p (Array.unsafe_get a1 i) (Array.unsafe_get a2 i) then true 204 204 else loop (succ i) in 205 205 loop 0 206 + 207 + let for_alli p a = 208 + let n = Array.length a in 209 + let rec loop i = 210 + if i = n then true 211 + else if p i (Array.unsafe_get a i) then loop (succ i) 212 + else false in 213 + loop 0 214 + 215 + let all_somes a = 216 + try 217 + Some (Array.map (function None -> raise_notrace Exit | Some x -> x) a) 218 + with 219 + | Exit -> None 206 220 end 207 221 208 222 module String = struct
+7
utils/misc.mli
··· 158 158 (* Same as [Array.exists], but for a two-argument predicate. Raise 159 159 Invalid_argument if the two arrays are determined to have 160 160 different lengths. *) 161 + 162 + val for_alli : (int -> 'a -> bool) -> 'a array -> bool 163 + (** Same as {!Array.for_all}, but the 164 + function is applied with the index of the element as first argument, 165 + and the element itself as second argument. *) 166 + 167 + val all_somes : 'a option array -> 'a array option 161 168 end 162 169 163 170 module String : sig