1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875
|
1999-09-27 Pieter Schoenmakers <tiggr@thesis.gerbil.org>
* OTMBind.m ([OTMBind -compileCondition:]): Cater for recent
changes in trt_bind.
1999-08-20 Pieter Schoenmakers <tiggr@thesis.ics.ele.tue.nl>
* OTMBind.m ([OTMBind -compileCondition:]): Be more subtle about
what to omit.
1999-08-18 Pieter Schoenmakers <tiggr@gerbil.org>
* OTMBind.m ([OTMBind -compileCondition:]): Do nothing iff
flag_suppress_conditions is set.
* toplev.m (usage): Added -fno-conditions.
(flag_suppress_conditions): New flag.
(main): Set it.
* global.h: Declare it.
Sun Jun 13 13:40:15 1999 Pieter Schoenmakers <tiggr@gerbil.org>
* OTMBasic.m (-methodsNamed:sender:super:confined:): New method.
1998-07-21 Pieter Schoenmakers <tiggr@gerbil.org>
* parse.y: Accept new `selector (void foo)' construction.
1998-06-26 Pieter Schoenmakers <tiggr@ics.ele.tue.nl>
* toplev.m (dump_info): Emit the internal name of the string.
1998-05-31 Pieter J. Schoenmakers <tiggr@gerbil.org>
* lex.l: Fixed string constants.
1998-05-18 Pieter Schoenmakers <tiggr@gerbil.org>
* parse.y (bare_method_name_part): Allow bind, catch, and unwind.
1998-05-07 Pieter Schoenmakers <tiggr@gerbil.org>
* OTMUnvocation.m: Removed trailing white-space.
1998-04-29 Pieter J. Schoenmakers <tiggr@gerbil.org>
* toplev.m, global.h (input_basename): New global.
* lex.l: Use it to create unique string constant names.
1998-04-28 Pieter Schoenmakers <tiggr@gerbil.org>
* OTMMeta.m: Removed trailing white-space.
1998-04-25 Pieter J. Schoenmakers <tiggr@gerbil.org>
* OTMUnvocation.m ([OTMUnvocation
-resolveWithExpected:convertible:context:indices:index:]): Fixed
(again).
* OTMCast.m ([OTMCast
-resolveWithExpected:convertible:context:indices:index:]): Pass
the DESIRED_TYPE to resolve_expr.
1998-04-22 Pieter Schoenmakers <tiggr@gerbil.org>
* toplev.m (main): Add the DEFAULT_LOAD_PATH to the load path
after having done argument parsing.
1998-04-20 Pieter Schoenmakers <tiggr@gerbil.org>
* toplev.m (flag_inhibit_comment): New var. Plus implications.
New options: -Wno-comment and -Wcomment.
* global.h: Likewise.
* lex.l: Adhere to it.
1998-04-15 Pieter Schoenmakers <tiggr@gerbil.org>
* toplev.m, global.h (top_unit_name): New variable.
* lex.l: Use it to qualify the names of string constants.
1998-04-06 Pieter Schoenmakers <tiggr@gerbil.org>
* parse.y (do_postponed_supers): Set the in_what to GLOBAL_SCOPE,
since, technically, we're not in either interface or
implementation, when doing postponed supers.
* toplev.m (types_add_element): Use `equal:', instead of ==.
(types_equal): Likewise.
(types_intersect): Likewise.
(types_add_elt_ordered): Likewise.
* OTMTypeTuple.m ([OTMTypeTuple -equal:]): New method.
([OTMTypeTuple -equalTypeTuple:]): New method.
* OTMType.h, OTMType.m ([OTMType -equal:]): New method.
([OTMType -equalTypeTuple:]): New method.
* OTMMeta.h, OTMMeta.m ([OTMMeta -equal:]): Removed.
1998-03-30 Pieter Schoenmakers <tiggr@gerbil.org>
* toplev.m (types_add_element): Discern types by their address.
1998-03-30 Pieter Schoenmakers <tiggr@gerbil.org>
* OTMType.h (matchesExactly:): Redefined semantics.
* OTMType.m ([OTMType -matchesExactly:]): Adjusted.
* toplev.m (types_add_element): Likewise.
(types_intersect): Likewise.
* OTMTypeTuple.m ([OTMTypeTuple -matchesExactly:]): Likewise.
* OTMMeta.m ([OTMMeta -matchesExactlyMeta:]): New method.
* OTMType.m ([OTMType -matchesExactlyMeta:]): New method.
1998-03-27 Pieter Schoenmakers <tiggr@xenon.ics.ele.tue.nl>
* OTMTuple.m ([OTMTuple
-resolveWithExpected:convertible:context:indices:index:]): Drop
all types from expected that do not match in element count.
* OTMTypeTuple.m ([OTMTypeTuple -elementCount]): New method.
* OTMType.m, OTMType.h ([OTMType -elementCount]): New method.
1998-03-23 Pieter Schoenmakers <tiggr@gerbil.org>
* parse.y (instance_in_unit): Handle postponed supers if
necessary.
1998-03-22 Pieter J. Schoenmakers <tiggr@gerbil.org>
* OTMMethod.m ([OTMMethod -precompile]): Precompile the argument
types. This is (may be) needed for arguments that are not
referenced within the body of the method.
* OTMCustomMethod.m ([OTMCustomMethod -compile]): First precompile.
([OTMCustomMethod -precompile]): Also invoke super's.
* .gdbinit: Adjusted to new (old!) location of tl.
1998-03-16 Pieter Schoenmakers <tiggr@gerbil.org>
* OTMMeta.m ([OTMMeta
-searchEntityNamed:supers:class:variables:constants:]): Issue an
error if illegally accessing a private [ic]var.
* OTMAnyRefType.m ([OTMAnyRefType -frobnicatedName]): New method.
* OTMMethod.m ([OTMMethod +selectorForMethod:invocation:used:]):
New argument: used.
([OTMMethod -initWithExtension:returnType:flatp:]): Make the
selector known to LTTSelector.
([OTMMethod -initWithExtension:nameTypes:returnType:flatp:]):
Likewise.
* OTMDynamicType.m ([OTMDynamicType
+addInvocation:toDynamicSelector:]): Adjusted.
1998-02-02 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* OTMMeta.m ([OTMMeta -entityNamed:variables:constants:]): Return
the `closest' redeclaration.
* OTMExtension.m ([OTMExtension -aliasWithName:type:qualifiers:]):
Do not check for cvDeclarationOK.
1998-01-22 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* OTMExpr.m ([OTMExpr -result]): Implemented (subclassResposibility).
([OTMExpr -outputReference]): Likewise.
([OTMExpr -checkProperArgument:]): Likewise.
* OTMMethod.m ([OTMMethod -resultOfInvocation:]): Likewise.
([OTMMethod -resultOfInvocation:toTuple:]): Likewise.
* OTMType.m ([OTMType -matchesConvertibly:]): Likewise.
([OTMType -frobnicatedName]): Likewise.
([OTMType -outputTypeName]): Likewise.
Mon Jan 19 21:37:28 1998 Pieter J. Schoenmakers <tiggr@tnt.ics.ele.tue.nl>
* parse.y (load_file): Drop ltt_imp_subdir.
(load_file): Handle new LTTFile naming.
* toplev.m: Removed -G and -Q options. Added -o option.
* GNUmakefile.in: Adjusted.
1998-01-19 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* global.h, toplev.m (flag_check_extension_address): New var, plus
implications.
* toplev.m (usage): Display it.
(main): Recognize it.
* OTMExtension.m ([OTMExtension -outputOffsetFrom:]): Use it.
* lex.l (parse_file): If flag_check_extension_address, include
tom/util.h.
1998-01-13 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* toplev.m (main): Be called tomc.
1998-01-09 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* lex.m, parse.m, parse.h: New files. These are generated, but
including them implies the user does not need to have flex/bison.
Tue Jan 6 21:03:41 1998 Pieter J. Schoenmakers <tiggr@tnt.ics.ele.tue.nl>
* GNUmakefile.in (top_builddir): New macro.
1998-01-05 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* global.h (flag_1): New declaration.
* lex.l (parse_file): Define the CURRENT_UNIT in the output if
passed -1.
Thu Jan 1 21:40:04 1998 Pieter J. Schoenmakers <tiggr@tnt.ics.ele.tue.nl>
* toplev.m (main): Set the LTT_CURRENT_UNIT. New option: -1.
1997-12-23 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* OTMAlias.m (-[OTMAlias result]): New method.
1997-12-11 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* parse.y (load_file): Make the FULL_NAME an absolute path.
Tue Oct 7 15:13:03 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* toplev.m (types_add_element): Also don't add a type that
matchesExactly (in addition to ==).
Tue Sep 2 10:31:53 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* OTMNumberCST.m (-outputValue): Append LL to the constant if the
type is long.
(-result): Employ outputValue.
Fri Aug 29 11:44:52 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* parse.y (object_add_variables): Warn about hiding previous
declaration, unless the current meta is State or its class.
* lex.l: Return a long literal in a OTMNumberCST, not the plain
TLNumber.
Fri Aug 15 12:17:44 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* OTMUnvocation.m (-conditionCopyFor:): Also do the receiver.
Wed Aug 6 12:51:05 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* OTMCast.m (-compileAssignment:): New method.
Mon Jul 21 10:14:31 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* OTMBasic.m (-actualSelf:): Even if the CONTEXT if NIL, return
SELF if the receiving basic type does not depend on the context.
This is not a bug fix but a symptom fix for when invoking a method
with a redeclared ivar as the receiver.
* OTMCustomMethod.m (-setReturnVariables:): Avoid messaging nil.
* OTMMethod.m (-resolveIdentifiers:): Likewise.
(-argumentsForNameParts:arguments:): Likewise.
* OTMUnvocation.m (-resolveInContext:): Likewise.
(-resolveWithExpected:...): Likewise.
* parse.y (add_super_0): Likewise.
* OTMExtension.m (-compileExtensionDescription:): Likewise.
* OTMExpr.m (-precompile): Likewise.
* OTMITE.m (-precompile): Likewise.
Thu Jul 17 14:34:51 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* OTMUnvocation.m (elaborate): Do not let the receiver pose.
If the method's meta is not a super, go for the meta that it poses.
* OTMExtension.m (resolveIdentifiers:): Also resolve the
constants, if any.
* OTMConstant.m (resolveInContext:): New method.
Wed Jul 16 10:41:41 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* OTMUnvocation.m (elaborate): Issue an internal error if there is
no super even though there should be one.
* OTMMeta.m (methodsNamed:sender:super:confined:list:mark:): Walk
the supers also through their posedSelf.
* toplev.m (resolve_expr): If the type is undecidable in a void
context, prefer a void type.
* OTMCustomMethod.m (compileExtensionPointerDefinitions): Do not
emit newlines directly.
Tue Jul 15 11:26:00 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* OTMMeta.m (-actualSelf:): Directly invoke posedSelf instead of
idly asking super to return self.
* OTMBasic.m, OTMTop.m, OTMTop.h, OTMTypeTuple.m
(-actualSelfNonPosing:): New method.
* OTMCast.m (-resolveWithExpected:...): Fixed, hackerishly.
* toplev.m (main): When not all identifiers are resolved, print
the unresolved ones, or indicate using -ftrace-identifiers.
* OTMCast.m (-resolveInContext:]): New method.
* OTMIdentifier.m (-resolveInContext:): When tracing identifiers,
remove the resolved identifier from the set of identifiers.
* lex.l (parse_file): Dispose of the lex buffer afterwards. This
saves up to over a megabyte in memory leaks (thanks Purify).
* OTMEntity.m (-description): New method.
* global.h, toplev.m (usage, main): Handle -ftrace-identifiers.
* OTMIdentifier.m (+gcAlloc): Add the identifiers to the
ident_trace_objects (new global) when flag_trace_identifiers (new
global).
Mon Jul 14 11:50:19 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* OTMExtension.m (-compileObjVarTypeDeclarations): Do not do the
aliases, since that is not needed.
* OTMCast.m (precompile): Also precompile the desired_type,
probably making the patch in OTMExtension (below) unnecessary.
* OTMExtension.m (-compileObjVarTypeDeclarations): Also compile
the types of the aliases.
* OTMCast.m (-resolveWithExpected:...): Act sensibly.
(-result): If the TYPE is NIL, use the DESIRED_TYPE. This is
needed for implicit_casts, since they are not (necessarily?)
resolved.
* OTMCast.h (desired_type): New ivar.
* parse.y (type_cast): Do not resolve the expression at this
point.
Fri Jul 11 23:06:26 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* global.h, toplev.m (emit_assignment): Reverted to situation
earlier today.
* OTMCompound.m, ...: Likewise.
* parse.y (do_return_stmt): Reverted to situation of this morning,
i.e. do not use emit_assignment, since elaboration is not
necessarily a good idea at this moment.
(do_return_stmt): Do not implicit_cast the rhs, since it must
still be resolved, later on!
Fri Jul 11 10:55:51 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* OTMAlias.m (-elaborate): Implicitly cast the VALUE.
* OTMCompound, ...: Adjusted to extra argument of emit_assignment.
* toplev.m (emit_assignment): Extra argument, IS_RETURN. Iff TRUE
an OTMReturn is created.
* parse.y (do_return_stmt): Create the assignment by calling
emit_assignment.
* OTMExtension.m (aliasWithName:type:qualifiers:): Postpone the
alias if there are postponed supers.
* toplev.m (main): After loading the interface resolve the
postponed supers and aliases.
* parse.y (load_interface): Do not resolve postponed supers or
aliases.
* OTMExtension.m (-compileExtensionDescription:): The methods are
int_imps.
(aliasWithName:type:qualifiers:): Correctly interpret the return value
of matchesConvertibly.
Tue Jul 1 22:12:02 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMExtension.m (-compileExtensionDescription:): Do not act as if
a method redeclaration is a definition.
Mon Jun 30 12:07:16 1997 Michael L.H. Brouwer <michael@tlaloc>
* OTMType.h (-outputFunctionTypeForType): Commented out since it is
not implemented by this class.
* OTMMeta.h (-compileObjVarTypeDeclarations): Commented out since
it is not implemented by this class.
* OTMExpr.h, OTMVariable.h
(compileAddressListWithFirst:separator:): Moved from OTMExpr to
OTMVariable class.
* OTMConstant.m (-dumpInfo:): Added cast of value to OTMNumberCST
since value isKindOfClass: OTMNumberCST.
* toplev.m: Import all classes that we send a message to.
Mon Jun 30 17:10:08 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* lex.l: Hacked to grok most negative long value.
Sun Jun 29 14:26:56 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMVarRef.m: Include the OTMCustomMethod interface.
(-conditionCopyFor:): Return a new reference instead
of `fixing' our own variable. Thanks to test13.
* toplev.m (emit_conditions_pre): Removed ZZZ comment since the
bug had already been fixed.
* OTMExtension.m (-methodsNamed:sender:list:): Do not add a method
M to the list if a method overriding M is already in the list.
* OTMCondExpr.m (-resolveWithExpected...): Properly handle ep or
tp becoming nil (due to an error).
Sat Jun 28 15:30:55 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* toplev.m (emit_conditions_pre): Preconditions in overriding
methods are weakened, not strengthened.
* GNUmakefile.in: Removed GNUdependencies.
Sat Jun 21 19:47:05 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* parse.y (atom): Use the OTMVarRef.
* OTMVarRef.m (conditionCopyFor:): New method.
Wed Jun 18 22:42:16 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* parse.y (atom): Don't use the OTMVarRef, since it breaks method-
conditions and I'm not sure if they are needed.
Tue Jun 17 19:06:32 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMITE.m (precompile): Manipulate the CURRENT_LINE.
* OTMInvocation.m (elaborate): _Correctly_ manipulate the
CURRENT_LINE;
* OTMTop.m (outputLineDirective): Only emit a few newlines when
that suffices. Don't emit anything for a zero line number.
* OTMCondExpr.m (elaborate): Manipulate the CURRENT_LINE.
* parse.y (atom): Create OTMVarRef objects.
* OTMVarRef.m, OTMVarRef.h: New files.
* GNUmakefile.in (MSRC): Updated.
Thu Jun 19 15:39:49 1997 Schoenmakers P.J. <tiggr@natlab.research.philips.com>
* OTMUnwind.m: Likewise.
* OTMCatch.m: Likewise.
* OTMBind.m: Likewise.
* OTMCustomMethod.m (compileExtensionPointerDefinitions): Don't
output unsollicited `\n' characters.
Wed Jun 18 22:42:16 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* parse.y (atom): Don't use the OTMVarRef, since it breaks method-
conditions and I'm not sure if they are needed.
Tue Jun 17 19:06:32 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMITE.m (precompile): Manipulate the CURRENT_LINE.
* OTMInvocation.m (elaborate): _Correctly_ manipulate the
CURRENT_LINE;
* OTMTop.m (outputLineDirective): Only emit a few newlines when
that suffices. Don't emit anything for a zero line number.
* OTMCondExpr.m (elaborate): Manipulate the CURRENT_LINE.
* parse.y (atom): Create OTMVarRef objects.
* OTMVarRef.m, OTMVarRef.h: New files.
* GNUmakefile.in (MSRC): Updated.
Sat May 24 20:26:54 1997 Pieter Schoenmakers <tiggr@cobra.ics.ele.tue.nl>
* OTMContinue.h (OTMBREAK_DECLARE_PRIVATE_METHODS): Define when
included by OTMContinue.m.
* lex.l: Removed unused I.
* OTMInvocation.m ([OTMInvocation -conditionCopyFor:]): Return
NULL.
* OTMCustomMethod.m ([OTMCustomMethod -loopForContinue:]): Return
NULL.
([OTMCustomMethod -resolveIdentifiers:]): Removed unused P.
Mon May 5 12:48:47 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMBreak.m, OTMCustomMethod.m, OTMExtension.m, OTMLoop.m,
OTMMethod.m, OTMOld.m, OTMStringCST.m (gcReference): Fixed.
Thu May 1 17:04:54 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* OTMCast.m ([OTMCast -compile]): New method. Also compile the
contained expr.
Thu Apr 17 18:07:20 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* OTMBuiltinMethod.m, OTMBuiltinMethod.h: New operator, `>>>'.
* lex.l: Lex it.
* parse.y: Parse it.
Wed Apr 9 11:32:47 1997 Pieter Schoenmakers <tiggr@cobra.ics.ele.tue.nl>
* OTMBuiltinMethod.m ([OTMBuiltinMethod -resultOfInvocation:]):
Cast when necessary for comparing object references.
Tue Apr 8 17:10:11 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* OTMMeta.m ([OTMMeta -actualSelf:]): New method. Take posing
into account.
Tue Apr 8 10:59:18 1997 Pieter Schoenmakers <tiggr@cobra.ics.ele.tue.nl>
* OTMExtension.m: Do not use an enumerator to walk through a
vector.
* OTMMeta.m, OTMMethod.m, OTMTuple.m, parse.y: Likewise.
Fri Apr 4 12:41:51 1997 Pieter Schoenmakers <tiggr@cobra.ics.ele.tue.nl>
* OTMCompound.m: Do not use an enumerator to walk through a
vector.
Wed Mar 26 09:12:29 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* OTMUnvocation.m ([OTMUnvocation -description:]): New method.
Thu Mar 20 14:52:33 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* parse.y (file_element): Accept a C_LITERAL.
* OTMAsm.m, OTMAsm.h: New files.
* parse.y (actual_top_expression): Accept a C_LITERAL.
Thu Mar 20 00:40:12 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* lex.l: Recognize `<c>...</c>' constructs.
Wed Mar 19 12:33:14 1997 Pieter Schoenmakers <tiggr@tom.ics.ele.tue.nl>
* parse.y (method_body_expression): Emit the return label _before_
the postconditions.
(method_body_expression): Properly handle the return arguments,
i.e. do nothing.
* OTMCustomMethod.h, OTMCustomMethod.m: The return label is a real
label.
* OTMCompound.m (-compile): Do not emit the `return' label.
* OTMExpr.m (-tupleSingleElement): New method.
* OTMTuple.m (-tupleSingleElement): New method.
* OTMCustomMethod.m (-setReturnValue:): If it is a tuple, use the
first element.
Wed Mar 19 00:54:52 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* parse.y, OTMExtension.h, OTMExtension.m, OTMExpr.h, OTMExpr.m,
OTMMethod.h OTMArgument.m, OTMCustomMethod.h, OTMCustomMethod.m,
OTMMeta.h OTMMethod.m, OTMTuple.m, toplev.m, OTMMeta.m,
OTMArgument.h, OTMInvocation.m, OTMUnvocation.m: Method pre- and
postconditions are now inherited by overriding methods.
Tue Mar 18 22:29:07 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMExtension.m (-searchSimilarMethod:): Do not use an enumerator
to traverse a vector.
Fri Feb 28 15:24:17 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMExpr.m (-compileAssignmentToTuple:): Applied quick hack to
cater for a single-element tuple lhs.
Thu Feb 13 13:06:55 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* parse.y (do_stmt, while_stmt): Invoke `startLoopEnd' to have the
continue label emitted.
Tue Feb 11 11:14:31 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* parse.y: The cast type can be `id'.
Wed Feb 5 14:45:31 1997 Pieter Schoenmakers <tiggr@cobra.ics.ele.tue.nl>
* OTMITE.m ([OTMITE -compile]): Ask for the `-nl' of the our
parts, not ourselves.
Tue Feb 4 11:41:59 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* parse.y (init_local_var): New function, previously part of
create_local_var.
* OTMArgument.m ([OTMArgument -argumentp]): New method.
* OTMCustomMethod.m ([OTMCustomMethod -argumentNamed:]): New
method; search the return_variables while we do not have a body.
([OTMCustomMethod -returnVariables]): New method.
([OTMCustomMethod -setReturnVariables:]): New method.
* OTMMethod.m ([OTMMethod -argumentNamed:]): Do not use an
enumerator to find a single argument in an argument tuple.
* OTMCustomMethod.h (return_vars): New ivar.
* toplev.m (emit_old_expr): Set the compound's value (which is not
used anyway) to the expression.
* parse.y: Added named return values.
(do_return_stmt): Handle `return;' to mean return without further
specifying the return value.
Sun Feb 2 17:25:34 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* toplev.m (options): Do not try to load the file twice. Once
will do.
Sat Feb 1 14:54:07 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMTuple.m (resolveWithExpected:...): Test for the dynamic type
anywhere in the EXPECTED types, not just for a singleton.
Fri Jan 31 18:04:59 1997 Pieter Schoenmakers <tiggr@viper.ics.ele.tue.nl>
* OTMInvocation.m ([OTMInvocation -elaborate]): Fake the
CURRENT_LINE for the objects being created as a result from what
we're doing.
Mon Jan 27 22:38:42 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* OTMContinue.m ([OTMContinue -compileJump]): Actually do
something instead of the totally bogus continue.
* OTMLoop.m ([OTMLoop -compileCondition:]): Output the
continue_label when set.
* OTMCustomMethod.m ([OTMCustomMethod -loopForContinue:level]):
New method.
* OTMCompound.m ([OTMCompound -loopForContinue:level]): New method.
* OTMLoop.m ([OTMLoop -loopForContinue:]): New method.
Fri Jan 24 12:35:49 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* For every Class, there is a variable OC_Class pointing directly
to it, avoiding lookups.
* OTMUnvocation.m ([OTMUnvocation -resolveInContext:]): New method.
* OTMCustomMethod.m ([OTMCustomMethod -resolveIdentifiers:]): New
method to also resolve the method conditions.
* OTMAliasAlias.m, OTMAliasAlias.h: New files.
* parse.y (do_postponed_aliases): New function.
(load_interface): Handle postponed aliases.
* global.h, parse.y (postponed_aliases): New method.
* OTMExtension.m ([OTMExtension -handlePostponedAlias:]): New
method.
Tue Jan 21 12:22:16 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* toplev.m (emit_conditions_post): New function.
(emit_old_expr): New function.
(main): New options: -fno-checks, and the not-no variants of checks.
* OTMOld.m, OTMOld.h: New files.
* OTMExpr.m ([OTMExpr -oldsEliminated]): New method. Also in
various subclasses.
* lex.l: New token: OLD.
* toplev.m: New option: -fno-post-checks.
* parse.y: POST syntax is like PRE syntax.
(simple_expr): New expr: `OLD expr'.
* OTMCustomMethod.h (postcondition): New variable.
Mon Jan 20 13:45:36 1997 Pieter Schoenmakers <tiggr@akebono.ics.ele.tue.nl>
* parse.y (load_file): When an implementation can not be found,
try to find it in the imp_subdir.
* toplev.m (main): New options: -Q, -G.
* lex.l (parse_file): Fix comment typo.
Mon Jan 6 21:08:33 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMUnvocation.m (-resolveWithExpected:...): In a void context, a
dynamic return type deduces to void.
Sat Jan 4 20:34:56 1997 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMExtension.m (aliasWithName:...): Allow for the alias type to
also be a subclass of the original.
* OTMMeta.m (matchesConvertibly): Faster for T == SELF.
Tue Dec 31 01:22:11 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* toplev.m (main): flag_super defaults to LOOKUP_LOOKUP.
Sat Dec 28 15:05:27 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMMeta.m (-validCastTo:) The other meta must be an instance of
OTMMeta, not (too strictly) of our ISA.
(otmmeta_class): New variable.
* OTMError.m (-compile): New method. Issue an internal error.
* OTMCondExpr.m (-resolveWithExpected:...): If we can't be typed
(and thus become a void-typed expression), type the branches in an
empty context.
Wed Dec 25 21:46:04 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMExtension.m (-outputOffsetFrom:): Cast the SELF to a
TOM_OBJECT, with all simplifications caused by that.
* OTMObjectVar.m (-precompile): Have our meta precompile itself
instead of a compileDeclaration.
* OTMExtension.m (-compileExtensionDescription): Compile the
declaration of the type of the static variables. Have our meta
and the metas introduced by us precompile themselves (to get the
class object's declaration output).
* OTMMeta.m (-precompile): Do most of what was previously done by
compileDeclaration.
(-compileDeclaration): Only output the typedef of the pointer to
our struct.
Sat Dec 14 20:02:04 1996 Pieter Schoenmakers <tiggr@jaguar.ics.ele.tue.nl>
* toplev.m (emit_precondition): New function.
* OTMCustomMethod.m ([OTMCustomMethod -setPrecondition:]): New
method.
* parse.y: Handle preconditions.
Thu Dec 5 15:21:29 1996 Pieter Schoenmakers <tiggr@jaguar.eb.ele.tue.nl>
* OTMExtension.m ([OTMExtension -compileExtensionDescription:]):
Output the type of the type's actualSelf.
Wed Dec 4 09:16:11 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMMethod.m ([OTMMethod -compileDeclaration]): Handle dynamic
arguments.
* OTMDynamicType.m ([OTMDynamicType -outputTypeName]): Return
`void', no error.
* OTMMeta.m ([OTMMeta -compileDeclaration]): Output a meta
definition declaration.
* OTMCompound.m ([OTMCompound -addStatement:]): Update our line
number information from the first `statement'.
* parse.y (add_super_[01]): Add the super to the extension.
* OTMExtension.m ([OTMExtension -compileExtensionDescription:]):
New method.
([OTMExtension -addSuper:]): New method.
* OTMType.m ([OTMType -outputTypeEncoding]): New method.
Sat Nov 30 14:20:27 1996 Pieter Schoenmakers <tiggr@jaguar.ics.ele.tue.nl>
* OTMITE.m ([OTMITE +iteWithCondition:]): Get location from the
condition.
* OTMCondExpr.m ([OTMCondExpr
+iteWithCondition:thenPart:elsePart:]): Ditto.
* parse.y (gen_ite): Removed unused function.
* OTMCompound.m ([OTMCompound
-resolveWithExpected:convertible:context:indices:index:]): If we
have no value, the value is set to void. Issue a warning instead
of an error.
Fri Nov 29 16:48:58 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* lex.l: Adjust to modified ltt_lex_string_cst.
Mon Nov 25 14:05:07 1996 Pieter Schoenmakers <tiggr@jaguar.ics.ele.tue.nl>
* parse.y (new_class_name): Do not accept an error.
* lex.l: Don't pass the lttName directly to formac.
Thu Nov 21 10:06:00 1996 Pieter Schoenmakers <tiggr@jaguar.ics.ele.tue.nl>
* OTMCustomMethod.m ([OTMCustomMethod -compile]): If we're a
redeclaration, do nothing.
* OTMAlias.m ([OTMAlias -lhsInvalid]): New method. Return NIL.
([OTMAlias -compileAssignmentToTuple:lhs]): New method.
([OTMAlias -elaborate]): Do not cast the value, since we must be
usable as lhs in an assignment.
Fri Nov 8 10:36:53 1996 Pieter Schoenmakers <tiggr@jaguar.ics.ele.tue.nl>
* parse.y: Try to maintain a proper line number.
* OTMTop.m ([OTMTop -setLine:]): New method.
* parse.y: Moved a lot of the closing `)' and `]' tokens to the
end of the rule (beyond the action) to get the line numbers
straight.
* OTMUnvocation.m ([OTMUnvocation -elaborate]): Have the
invocation update its location from the unvocation.
* OTMTop.m ([OTMTop -nlPlain]): New method.
([OTMTop -getLocationFrom:]): New method.
* Replaced all invocations of `nl ()' by `[self nl]'.
* Removed trailing method/function name comments from a lot of
methods and functions.
* OTMTop.m ([OTMTop -nl]): New method.
* toplev.m (nl): Removed.
* lex.l (parse_file): Do not output the current time.
* OTMTop.m ([OTMTop -outputLineDirective]): New method.
* toplev.m (-freadable-c): New flag.
Mon Oct 28 17:22:53 1996 Pieter Schoenmakers <tiggr@jaguar.ics.ele.tue.nl>
* toplev.m (flag_inhibit_unqualified_redeclare): New flag.
* parse.y (add_method_decl): Only warn about an unqualified
redeclaration; do not issue an error.
Sat Oct 19 17:16:39 1996 Pieter Schoenmakers <tiggr@jaguar.ics.ele.tue.nl>
* lex.l: Properly handle escaped character constants.
* OTMBuiltinMethod.m (operators): Allow shifting longs.
Fri Oct 4 21:51:55 1996 Pieter Schoenmakers <tiggr@jaguar.ics.ele.tue.nl>
* OTMCustomMethod.m: Abort when flag_super is LOOKUP_SEND, since
trt_send_super can not work (should remove all code referring to
LOOKUP_SEND).
Thu Oct 3 09:52:08 1996 Michael L.H. Brouwer (michael@host)
* Changed argument to description: method from `out' to `outarg'.
Wed Oct 2 14:42:00 1996 Michael Brouwer <michael@mex-co>
* GNUmakefile.in, parse.y: Use sed to replace AT"" with @"" since
next cc doesn not understand the ## macro directive.
* OTMAlias.m, OTMAnyRefType.h, OTMAnyRefType.m, OTMAnyType.h,
OTMAnyType.m, OTMBasic.m, OTMClass.h, OTMClass.m, OTMCompound.m,
OTMDynamicType.h, OTMDynamicType.m, OTMEntity.h, OTMEntity.m,
OTMExpr.h, OTMExpr.m, OTMExtension.m, OTMInvocation.m, OTMMeta.m,
OTMMethod.h, OTMMethod.m, OTMTuple.m, OTMType.h, OTMType.m,
OTMTypeTuple.h, OTMTypeTuple.m, OTMUnvocation.m, OTMVariable.h,
OTMVariable.m, lex.l, parse.y, toplev.m: Adapted to changes of
`name' methods thoughout tom.
Wed Oct 2 10:19:16 1996 Pieter Schoenmakers <tiggr@jaguar.ics.ele.tue.nl>
* OTMConstant.m ([OTMConstant -dumpInfo:]): Use the
`-outputValue'.
* OTMNumberCST.m ([OTMNumberCST -outputValue]): Renamed from
`-value'.
Mon Sep 30 15:17:48 1996 Pieter Schoenmakers <tiggr@jaguar.ics.ele.tue.nl>
* OTMAlias.m ([OTMAlias -compileAssignment:]): New method.
([OTMAlias -precompile]): New method.
Thu Sep 26 13:39:51 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMCustomMethod.h (uses_thread_locals): New ivar.
* OTMMeta.h (have_local_vars): New ivar.
* parse.y (object_variable): Accept `local' as a qualifier (but
not handled as a qualifier).
(object_add_variables): Handle (thread-) local variables.
* lex.l: Recognize `local'.
* OTMObjectVar.h (th_local): New ivar.
Wed Sep 18 15:04:45 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* parse.y (type_cast): Ask the actualSelf for the validCastTo:,
not the `id' or whatever.
Wed Sep 11 16:27:15 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMUnvocation.m (-resolveWithExpected:...): Prefer, as in other
circumstances, a tight match, favouring methods with less
nameparts.
Fri Sep 6 18:01:36 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMSelector.m ([OTMSelector -compileDeclaration]): Note the
usage of the selector.
* OTMMethod.m ([OTMMethod +selectorForMethod:invocation:]): Note
the usage of the selector.
Tue Sep 3 14:29:34 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* parse.y (instance_in_unit): New function. Moan about ambiguous
meta references.
Mon Sep 2 21:13:56 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMCatch.m (-compileCondition:): Allocate enough bytes to hold
the struct, not just a pointer to it.
Mon Sep 2 14:02:40 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* parse.y (object_add_variables): If a public or mutable variable
is redeclared, redeclare its accessor or modifier method.
(resolved_class_name): This can also be a type.type, i.e. the unit
name space is seperate from the class name space.
Sun Sep 1 00:29:37 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* parse.y (new_class_name): Use the resolved_class_name, instead
of the missing_class_name. This generates less pretty errors, but
at least causes the full interface of the class not to be loaded,
as that is already being done (and otherwise causes nasty circular
dependencies).
(set_current_either): Load the interface of the main extension if
we're reading a named extension (but before we parse the supers).
* toplev.m (main): Before loading the file, load the interfaces of
all metas (partly) defined in the file to compile.
Sat Aug 31 19:55:18 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* parse.y (load_interface): Manipulate and use fully_loaded.
* OTMMeta.h (fully_loaded): New instance variable.
Tue Aug 27 11:16:01 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMExtension.m ([OTMExtension -dumpInfo:]): Output alignment
information.
* -minimumAlignment: New method.
Thu Aug 22 11:14:18 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* lex.l: Added missing argument to load_interface.
* toplev.m (main): Load the all interfaces of all metas defined in
the file to be compiled.
* parse.y (load_interface): Extra argument `check_all_extensions'.
Tue Aug 20 14:00:19 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMTuple.m ([OTMTuple -resolveWithExpected:...]): Replaced
invocation of ABORT with an error indicating the tuple could not
be typed.
Thu Aug 15 13:19:43 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMMethod.m, OTMMethod.h: Renamed ivar `selector' into
`the_selector' to avoid clash with typedef selector now tom/trt.h
is included.
* lex.l: Correctly count lines in string constants.
Thu Aug 8 14:03:16 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMMethod.m (-[OTMMethod identical:inContext:]): Use `=='
instead of `matches:', since the latter is provably wrong, even
though it does not cause errors on the NeXT...
Tue Jul 9 13:53:31 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMObjectVar.m (-dumpInfo:): Check that our meta is either a
class or a non-stateless instance.
Mon Jul 8 08:55:38 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* parse.y: The index in an array reference is the contents of a
tuple (i.e. a tuple without the leading `(' and trailing `)').
Wed Jul 3 18:06:33 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* parse.y: Only add class State as a super of the class object if
it is not State itself.
Wed Jun 26 00:39:41 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMSelector.m: Adjust to new runtime structure names.
Sat Jun 22 21:58:51 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* parse.y (tuple_type): A singleton type tuple actually is its
element.
(digest_arguments): A single-argument tuple is the non-tuple argument.
Sat Jun 22 13:07:09 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* parse.y (do_return_stmt): If setting a void return value, do use
the expression provided, instead of just inserting the void
expression.
* OTMCondExpr.m (resolveWithExpected:...): For the type of self,
pick the type at the right index.
* parse.y (for_stmt): Put the whole for construct in a compound,
to avoid the initialization expression to be evaluated too early
(ahem!).
* OTMInvocation.m (-compile): Compile the receiver.
Thu Jun 13 13:37:48 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* parse.y (top_expression_list): Don't warn on empty expressions,
if so desired.
* toplev.m: Define flag_inhibit_empty.
(main): Handle `-Wno-empty' and `-Wempty'.
(usage): Adapted to the above.
* global.h: Declare flag_inhibit_empty.
* toplev.m (main): In moaning about the unit missing a file, print
the unit's internal name.
* toplev.m (types_intersect): Invoke matchesExactly:.
* OTMTypeTuple.m ([OTMTypeTuple -matchesExactly:]): New method.
* OTMType.m ([OTMType -matchesExactly:]): New method.
Wed Jun 12 23:28:20 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMUnvocation.m (-resolveWithExpected:...): If an argument has a
type, it is fully typed, irrespective of how many of the possible
argument types it matches. Also, apply elimination of longer
name-parts and of the dynamic type even if not
must_fully_resolve...
Wed Jun 12 13:06:48 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* toplev.m (type_name): Don't ask the `structure' of an
OTMAnyRefType.
* OTMMethod.m: Invoke `matches:' to check for matching types; do
not use pointer equality, since that looses for tuples.
NOTE: This could possibly be harmfull, since all object types now
match all other object types!
([OTMMethod -identical:inContext:]): Do not loop IMPL positions
beyond the arguments! (So much for an array returning NIL if
indexed beyond its bounds.)
* toplev.m (emit_assignment): Handle NIL RHS just like an error
LHS.
Tue Jun 11 18:31:41 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* toplev.m (default_resolve_expr): Return NIL if there is no type
to resolve. It is undoubtebly the result of an (already reported)
error.
Sun Jun 9 17:58:18 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMDynamicType.m (-typeAt:in:): Return SELF unconditionally
(i.e. do not abort).
Fri Jun 7 11:43:03 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* lex.l (parse_file): Invoke OUTPUT_FILE_PREAMBLE.
* OTMCompound.m ([OTMCompound -compile]): Use EFILLZERO to output
the bzero of the stack reference struct.
* toplev.m (main): Set lookup and super defaults.
Thu Jun 6 18:25:59 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMCustomMethod.m (-outputStartOfInvocation:): Handle differing
super scheme.
Tue May 28 18:03:36 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMUnvocation.m (-resolveWithExpected:...): If a method
overrides another method, it can also override more other methods,
so after the first has been replaced, the others matching can be
removed.
Mon May 27 12:22:20 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMMethod.m (-dumpInfo:): Output info also if deferred.
Fri May 24 13:53:08 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMUnvocation.m (-resolveWithExpected:): Removed invocations of
ABORT.
Thu May 23 15:12:03 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMCompound.m ([OTMCompound -compile]): Only output the ref
struct if our container is a method.
* OTMLocalVar.m ([OTMLocalVar -residesInRefStruct]): New method.
* OTMVariable.m ([OTMVariable -residesInRefStruct]): New method.
* toplev.m (emit_local_var): Ask the variable itself if it wants
to reside in the refstruct.
Wed May 22 13:20:47 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* parse.y (special_form): Undo previous change. It must be a
reference to a condition for typing reasons. Must fix the problem
with the STACK_REF_STRUCT differently... PS This does show it is
a very good idea to have ../test/test.t with an increasing number
of tests, i.e. regressions tests are a good idea :-)
Wed May 22 10:08:51 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* parse.y (special_form): The implicit condition is a pointer, not
a reference.
Tue May 21 11:53:41 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* parse.y (method_invocation): Use a MetaRef for a receiver-less
method invocation, not some expr with the meta as a type.
* OTMBind.m (-precompile): New method: precompile the condition
type.
* parse.y (special_form): Load the interface of the Condition
class if needed to see its declaration for the bind.
* OTMExtension.m (-dumpInfo:): Invoke `dumpInfo:' on the
CONSTANTS.
* OTMConstant.m (-dumpInfo:): New method.
Sun May 19 18:07:19 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMExtension.m (-description:): Use the internal name.
* OTMObjectVar.m (-precompile): Invoke super's instread of
returning. Invoke `compileDeclaration' of the class declaring us
(needed to get the Conditions class declared when inherited by
All).
* toplev.m (main): Do the postponed supers before resolving the
identifiers.
Sat May 18 21:55:51 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMAssignment.m (elaborate): Feed the RHS through implicit_cast.
* OTMUnvocation.m (-resolveWithExpected:...): When picking the
best matching return type, `-1' doesn't indicate a better match
than `0'...
* toplev.m (types_add_elt_ordered): Fixed huge bug where A zero on
input implied A zero on output...
Fri May 17 16:22:08 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMTuple.m (-resolveWithExpected:...): Adjust IS_DYNAMIC if
EXPECTED is modified.
* toplev.m (resolve_expr): Force a type if the callee can't decide
and the caller does not care.
(default_resolve_expr): Handle the dynamic type at an index.
* OTMUnvocation.m (-resolveWithExpected:...): If multiple methods
match, some of which involve dynamic typing one some of which
don't, drop the dynamically typed ones.
* OTMMethod.m (-argumentsForNameParts:...): Resolve the default
argument value before using it.
* OTMError.m (-result): New method.
Thu May 16 21:39:09 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* parse.y (method_body_expression): Set the return value to the
default value for the return type. This should not be necessary
but is very safe in case the method forgets to set the value.
* OTMTypeTuple.m (-actualSelf:): New method. Very expensive.
Tue May 14 22:05:10 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMCondExpr.m (-resolveWithExpected:...): Do not use `TRUE'
since that is not defined on non-nexts.
Tue May 14 17:58:43 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMCondExpr.m (-resolveWithExpected:...): Set POS to something
sensible when we've deduced our type to be void.
Tue May 14 00:20:01 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMAnyRefType.m (-isObjectType): New method, returning YES(!).
Mon May 13 22:46:38 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* toplev.m (resolve_expr): Also test for the value returned by
`resolveWithExpected:...' not being nil.
(resolve_expr): Output the error prefix (`unable to...') for
the current line.
Mon May 13 10:22:28 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* parse.y (special_form): For the bind CONDITION, emit an
OTMArgument.
Fri May 10 12:25:34 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMMethod.m (-namePartsMatch:): Fixed mismatch.
* parse.y (rest_of_method_invocation): Accept a method_name_part,
not just an IDENTIFIER.
* Severly hacked typing system to handle a tuple as a dynamic
argument.
Thu May 9 12:56:15 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* Handle variables in argument defaults which can not be resolved
because the interface declaring them has not been fully read yet.
Such variables are stored as identifiers and later on patched to
denote the actual object. This is kinda flakey as it brings
non-main extensions into scope of the main extension...
* OTMSelector.m (-precompile): New method.
* OTMInvocation.m (-precompile): Compile the declaration of the
selector being invoked (needed for invocations of dynamic typed
methods).
* OTMDynamicType.m: Do not directly output the dynamic selector
alias.
* OTMSelector.m (-compileDeclaration): New method.
* OTMBasic.m (basic_output): Do not emit a `*' for a selector
argument.
* OTMUnvocation.m (-resolveWithExpected:...): Handle case where a
method of a subclass occurs after one implemented by a superclass,
in the newly created eligible_methods. Weird that this is
needed...
Also handle a dynamic return type. (I thought that had functioned
already, but seeing what I had to do to make it work again, that
probably was in a different era.)
* parse.y (add_method_decl): Handle replacing method case where
named extension is read before main extension.
Tue May 7 22:04:08 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMCatch.m: A void catch body value does not have a single void
typed value, but no value (fixed).
* OTMMethod.m (+selectorForMethod:invocation:): Handle a void
actual argument for a dynamic prototype argument.
* OTMCatch.m (-compileCondition:): Handle void body expression.
* OTMExpr.m (-flatElementCount): Return 0 for a void typed
expression.
* OTMCustomMethod.m (-addActualArgsFrom:): Handle a void argument
which can match a dynamic type; maybe the default value of the
dynamic type should be void?.
(-outputCast:forInvocation:): Likewise.
Tue May 7 13:23:40 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMCatch.m: Set the SP field if needed.
Fri May 3 18:08:19 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* parse.y: Recognize bind, catch, and unwind. Handle bind and
catch.
* OTMCatch.h, OTMCatch.m, OTMBind.h, OTMBind.m: New files.
Fri May 3 00:14:19 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMUnvocation.m (-elborate): Removed the call to abort if the
super doesn't resolve.
Wed May 1 11:10:52 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMCustomMethod.m (-outputCast:forInvocation:): Omit the `*'
after `selector'.
* OTMMethod.m ([OTMMethod +selectorForMethod:invocation:]): Do not
quote the name part in the name of the selector (i.e. `:' stays
`:' instead of becoming a `$').
Tue Apr 30 17:31:08 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* parse.y (do_return_stmt): Shield the rhs in an implicit_cast.
* lex.l (parse_file): Changed the `otmc$created' from a `char' to
a `char [0]'.
* OTMObjectVar.m (-precompile): Do not have the extension pointer
declared if we're static.
Mon Apr 29 16:07:15 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMUnvocation.m (-resolveWithExpected:...): Handle the
difference between `int foo' and `int foo int a'.
* OTMMethod.h (num_fixed_arguments): New instance variable.
* OTMUnvocation.m (-resolveWithExpected:...): Properly handle
methods overriding inherited functionality.
* toplev.m (type_name_list): New function.
Thu Apr 25 12:25:44 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* Done a lot for the method stuff. Optionality is not yet handled
for an invocation.
* lex.l: Added `-' as an allowed non-start and non-end identifier
character. Unique identifiers.
Tue Apr 23 18:27:10 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* parse.y (local_var_decl): Initialize not-explicitly-initialized
variable to the default value for its type.
Fri Apr 19 16:04:40 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMUnvocation.m (resolve...): Do not abort if there were no
changes to the elibigle methods.
Thu Apr 18 11:14:06 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* Use the AN_ERROR.
* OTMError.h, OTMError.m: New files.
* toplev.m (types_add_elt_ordered): Rewritten, with correct
semantics.
* OTMUnvocation.m (-elaborate): Output possible methods if the
method was undecided.
* OTMInvocation.m (-compile): New method: compile the arguments.
Tue Apr 16 21:48:24 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* parse.y (type_cast): Handle illegal casts of super.
* OTMCustomMethod.m (-outputCast:forInvocation:): Handle messaging
super (i.e. the extra first argument).
* OTMExtension.m (-methodsNamed:sender:list:): Fixed protection
bug causing non-public instance methods not to be found for a
class sender.
Tue Apr 16 15:29:35 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* Added handling of messages to super.
* Removed some never-invoked methods.
* Take protection into account when searching for methods to fit
an invocation.
Mon Apr 15 13:28:56 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* parse.y (object_add_variables): Allow `redeclare' qualifier to
add an alias.
* OTMExtension.m (-aliasWithName:type:qualifiers:): New method.
* OTMAlias.h, OTMAlias.m: New files.
* OTMExtension.h (aliases): New ivar.
Mon Apr 15 12:13:49 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* TLPatches.m: Renamed the category which is present to handle
some weird behaviour of the gnu runtime, as its name clashed.
Sun Apr 14 21:35:49 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* parse.y (method_decl): The identifier of the method name must of
course be a bare_method_name_part.
* TODO: Hacked and updated.
* OTMAssignment.m (elaborate): If the values of both lhs and rhs
are non-temporary tuples, insert an assignment via a temporary.
This assignment is not elaborated (as that would result in the
same insertion to be repeated).
* toplev.m (emit_assignment): Undo previous change, as it has no
effect at that particular spot.
* OTMTuple.m: Removed `#if 0' part.
* OTMLoop.m: Removed `#if 0' part.
* toplev.m (emit_assignment): In a tuple-assignment, if the left
hand side is not a temporary, emit an assignment to a temporary
and return that.
(temp_tuple_with_type): Set the tuple returned to be a temporary.
* OTMTuple.h (temporary): New ivar.
* parse.y (break_stmt): Explicit non-terminal now.
(continue_stmt): Similar to break_stmt.
* OTMContinue.m: Removed all previous methods.
(-compileJump): New method.
* OTMContinue.h: OTMContinue is a subclass of OTMBreak now.
* OTMBreak.m: Renamed factory methods.
(-compileJump): New method.
* toplev.m (emit_assignment): Handle assignment to void.
* parse.y: Cleaned up the grammar.
(return_stmt): Handle plain `return' (without expression).
Sat Apr 13 14:29:55 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* parse.y (for_flow_condition): An empty condition is returned as
NIL, not 1.
* OTMLoop.m: Handle NIL condition.
* parse.y (assign_stmt): Handle pre-increment and -decrement.
* OTMLoop.m (-elaborate): Assign the value of the loop if it tests
its condition before executing the body (for the first time).
* OTMModAssign.m (-elaborate): Do not confuse post operation value
with pre operation value.
* parse.y: Better error handling.
* parse.y (local_var_decl): Release the temporary variables after
each initialization of a local variable.
Fri Apr 12 13:29:47 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* Everything being an expression now actually works.
Thu Apr 11 11:48:28 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* Removed all `dump::' methods.
* Everything now actually is an expression.
* OTMModAssign.h, OTMModAssign.m: New files.
Wed Apr 10 13:42:28 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* parse.y: Everything is an expression.
* lex.l: Collapsed all operation-with-assignment operators into
the ASSIGN token.
Tue Apr 9 12:45:16 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* parse.y (bare_method_name_part): New non-terminal. Allow,
besides identifiers, all keywords except `pre' and `post' as part
of a method name.
* Fixed several error reporting bugs/misfeatures.
* parse.y (object_add_variables): Used the accessor_method_name.
* toplev.m (accessor_method_name): New function.
Mon Apr 8 15:52:56 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMBuiltinMethod.m (+init): For methods accepting any type of
argument, use THE_ANY_REF_TYPE for object references, instead of
one of the RECV thingies.
Sat Apr 6 20:36:01 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMBasic.m (-matchesConvertibly:): The smallest integer type in
tom is called byte, not char.
Fri Apr 5 02:08:49 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMObjectVar.m (-compileAssignment:): The check is also still
needed if we're doing STACK_PROTECT == SP_MARK...
Wed Apr 3 09:05:50 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMDynamicType.m: Added missing methods concerning method (re-)
declaration.
* parse.y: Fixed some method declaration versus method definition
problems.
* OTMBuiltinMethod.m (+init): Don't put arguments in a tuple.
* parse.y (op_invocation...): Don't put arguments in a tuple.
* OTMMethod.m (-init...): Accept `nil' nameparts.
Mon Apr 1 11:20:33 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* lex.l: When reading docs, preserve a copy of yytext, as that
gets clobbered by input ().
Sun Mar 31 16:15:15 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* lex.l: Generalized <doc>.
* OTMCustomMethod.m (-outputCast:forInvocation:): Get the actual
self of the arguments in the context of the receiver.
* OTMUnvocation.m (-resolve:must:): Skip the implicit arguments
when typing them the second time.
Sat Mar 30 14:05:28 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* OTMConstant.h, OTMConstant.m: New file.
* Handle CONST class attributes.
* Removed the ITE builtin method.
Fri Mar 29 12:13:44 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMBuiltinMethod.m: For `?:' actually accept _any_ type for
arguments 2 and 3, not just the basic types.
* parse.y (for_flow_condition): Allow empty condition.
* OTMMethod.m (-warnDifferingArguments:): New method. Empty body,
with a triple-X.
* parse.y (add_method_decl): Check protection.
Thu Mar 28 14:33:52 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMMeta.m (dumpInfo): Output super classes corrected for posing.
NOT!
* parse.y (load_interface): Also check all posers.
* OTMMeta.m (-posedSelf): New method.
Several methods: Search in our posed self, not ourselves.
Thu Mar 28 01:06:49 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* parse.y: Accept posing syntax.
Wed Mar 27 22:33:13 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* toplev.m (main): Invoke do_postponed_supers after having read
the interface.
* parse.y (do_postponed_supers): New argument `must'. It is a
serious failure if MUST can not be met.
Wed Mar 27 11:45:19 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMInvocation.m (-elaborate): Not only handle `?:' to maintain
short-circuit semantics; also do this for `&&', `||', and `->'.
* OTMBuiltinMethod.m (operators): Sanitized operator semantics.
* lex.l: Recognize `L' suffix for long constants.
* OTMBuiltinMethod.m: Added comparison of all numeric types, not
just int and double.
* lex.l: Added recognition of ASCII byte constants (a la C
character constants).
* parse.y: Generate modifier method for `mutable' variables.
(atom): Actually emit the variable automagically created.
* toplev.m (modifier_method_name): New function.
* Added `mutable' qualifier.
* toplev.m (main): Default inhibit gc.
* parse.y (object_add_variables): Generate accessor method for
`public' variables.
Tue Mar 26 14:24:46 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMCustomMethod.m ([OTMCustomMethod
-outputStartOfInvocation:inv]): Removed variable `rt', which was
unused.
* OTMCompound.m ([OTMCompound -compile]): Only output the end of
function label if actually needed. This avoids numerous gcc
errors when compiling with -Wall.
* parse.y: Notify the CURRENT_METHOD when having a return
statement.
* OTMCustomMethod.m ([OTMCustomMethod -setHaveReturnStatement:ynp]):
New method.
([OTMCustomMethod -haveReturnStatement]): New method.
* OTMCustomMethod.h (have_return): New ivar.
* parse.y: Invoke mask_qualifiers where applicable.
Sanitized object variables rules.
Eliminated reduce/reduce conflict by moving error rule from
method_name_part to a higher level.
* toplev.m (mask_qualifiers): New function.
Mon Mar 25 18:31:11 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMMeta.m (-compileObjVarTypeDeclarations:): Invoke super's
`compileDeclaration' to make sure the shielding of extension
declarations and object declarations works. Thus, if an
extension's struct declaration has been output, everything
concerning the meta it extends has also been output.
Mon Mar 25 14:31:24 1996 Michael Brouwer <michael@thi.nl>
* parse.y: Replace non standard @@ quoting of @ chars by AT() macro.
Mon Mar 25 12:03:57 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMObjectVar.m: Handle `static' qualifier.
* OTMExtension.m: Handle static variables.
* OTMExtension.h (vars_static): New ivar. Dictionary of static
variables.
* OTMExtension.m ([OTMExtension -outputDeclaration]): Only output
the common state class stuff if we're the main extension.
* parse.y (.qualifiers.): Corrected warning about static.
Mon Mar 25 00:47:44 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* Removed support of `flat' methods.
Sun Mar 24 13:46:18 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* toplev.m (implicit_cast): New function.
(emit_assignment): Cast if needed.
* Hacked `foreign "C"' crap into `extern'.
* Handle dynamically typed arguments.
* OTMMethod.m (-init*): Set DYNAMIC_TYPING if needed.
(-dynamicTyped): New method.
* OTMMethod.h (dynamic_typing): New ivar.
* parse.y (return_stmt): Issue warnings about use of void
expression.
(method_decl_part): Added error rule.
(method_name_part): Explicit `:'.
Removed `.colon.' rule.
* OTMCompound.m (-compile): Issue an error if the return value is
never assigned in a non-void method.
* parse.y (return_stmt): Invoke OTMReturn's `+returnStatement'.
* OTMReturn.h, OTMReturn.m: Almost everything has been removed.
This class now very must resembles `OTMBreak'.
* toplev.m (temp_*_with_type): Accept extra parameter indicating
whether variables from the temporary pool may be used. Adjusted
all invocations of these.
(emit_assignment): Check the rhs' type's actualSelf.
* parse.y (RETURN): New token.
(return_stmt_kind): New non-terminal.
(return_stmt): Accept RETURN or `=' for a return statement. RETURN
may have an expression or not. `=' must have one. RETURN implies
a `goto end'.
* lex.l: Recognize `return' token.
* OTMReturn.m (-compile): Do almost nothing.
* parse.y (return_stmt): Emit an assignment to the method's return
value before the return.
* OTMCustomMethod.m (-returnValue): New method.
(-setReturnValue:): New method.
* OTMCustomMethod.h (return_value): New ivar, holding the value to
be returned from this method.
* OTMCompound.m (compile): Emit a function epilogue for a method
body compound.
* parse.y: Added syntax for messaging super.
Fri Mar 22 16:32:48 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* parse.y (SUPER): New token.
* lex.l: Recognize `super' token.
* OTMMethod.m (-dumpInfo:): Quote the selector name.
* toplev.m: (Re-)moved quote (to ltt).
* OTMMethod.m (-outputName): Quote the selector name (to get rid
of the parenthesis).
Fri Mar 22 14:44:22 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* OTMTypeTuple.m ([OTMTypeTuple -frobnicatedName]): Enclose the
tuple in `(' and `)' characters, not underscores.
* OTMSelector.h, OTMSelector.m: New files.
* parse.y (type_cast): Casting a constant string to a selector is
valid; it returns the actual selector.
Thu Mar 21 16:26:20 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMBooleanTypeTuple.h, OTMBooleanTypeTuple.m: New files.
* parse.y (assign_stmt): Return the resolved result of the
assignment.
(flow_condition): New non-terminal. Either a tuple or an
assignment in braces.
(do_stmt, while_stmt, if_stmt): Use the flow_condition.
Wed Mar 20 21:33:19 1996 Pieter Schoenmakers <tiggr@tricky.es.ele.tue.nl>
* Added handling of DYNAMIC type. Removed `perform-methods' hack.
* OTMDynamicType.h, OTMDynamicType.m: New files.
* lex.l: Return floating point values as OTMNumberCST's. Double
constants are obtained by using a `d' (instead of an `e') as
exponent indicator (with the exponent value being optional).
* OTMNumberCST.h, OTMNumberCST.m: New files.
* toplev.m (dump_info): Do not emit comments.
Wed Mar 20 13:55:43 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* lex.l: Recognize C style octal and hexadecimal integers.
Wed Mar 20 11:50:23 1996 Pieter Schoenmakers <tiggr@tom.es.ele.tue.nl>
* OTMITE.m: Removed `-elaborate' since statements are not
elaborated. The condition is now elaborated in `-precompile'.
* OTMType.h (-outputCastName): New method.
* OTMCustomMethod.m (-outputCast:forInvocation:): New method.
(-outputStartOfInvocation): Cast the function being invoked to the
proper type, to avoid undesired type promotion.
* OTMType.h (-flatElementCount): New method.
Tue Mar 19 12:39:53 1996 Pieter Schoenmakers <tiggr@cobra.es.ele.tue.nl>
* parse.y (expr_or_assign_stmt): Do not create a new compound. No!
The expr_or_assign_statement must create a compound since the third
part of the for loop must only be emitted at the end of the loop's
body, not before it.
* OTMInvocation.m ([OTMInvocation -elaborate]): Convert into an
actual ite for an invocation of `?:'.
* toplev.m (temp_tuple_with_type): Use the temp_something_with_type.
* OTMInvocation.m ([OTMInvocation -elaborate]): Use the
temp_something_with_type.
* toplev.m (temp_something_with_type): New function.
* (-precompile): Return an object, being the replacement for the
original object, much like resolve, resolve: and elaborate:.
* OTMBuiltinMethod.m ([OTMBuiltinMethod -operator]): New method.
* TLPatches.m ([TLNumber -result]): If the number is long or long
long, return a string with ourselves and a `L' or `LL',
respectively.
* ChangeLog: Created.
|