Commit 443365a
authored
Automatic arithmetic promotion (#588)
* Port `inc'`
* Port `dec'`
* Port `+'`
* Port `-'`
* Port `*'`
* Move `inc'` & `dec'` to LLVM overflow checks
* Add missing cases
* Remove promotion support for `jank::runtime::real` values
After discussing with the Clojure core team we found out that Clojure
intentionally chooses not to support automatic promotion for `real`
values to `big_decimal`.
- Clojure Q/A:
https://ask.clojure.org/index.php/14752/support-for-automatic-promotion-to-bigdecimal-in-etc.
- Slack thread:
https://clojurians.slack.com/archives/C053AK3F9/p1762684740564009.
* Port `num`
Resolves #604.
* Enable `+'` tests
* Enable `*'` tests
* Disable blocked tests
* Enable the `ratio_qmark` tests1 parent 7a79722 commit 443365a
File tree
4 files changed
+190
-24
lines changed- compiler+runtime
- include/cpp/jank/runtime/core
- src
- cpp/jank/runtime/core
- jank/clojure
- test/bash/clojure-test-suite/src/jank_test
4 files changed
+190
-24
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
| 45 | + | |
44 | 46 | | |
45 | 47 | | |
46 | 48 | | |
| |||
64 | 66 | | |
65 | 67 | | |
66 | 68 | | |
| 69 | + | |
| 70 | + | |
67 | 71 | | |
68 | 72 | | |
69 | 73 | | |
| |||
110 | 114 | | |
111 | 115 | | |
112 | 116 | | |
| 117 | + | |
| 118 | + | |
113 | 119 | | |
114 | 120 | | |
115 | 121 | | |
| |||
232 | 238 | | |
233 | 239 | | |
234 | 240 | | |
| 241 | + | |
235 | 242 | | |
| 243 | + | |
236 | 244 | | |
237 | 245 | | |
238 | 246 | | |
| |||
269 | 277 | | |
270 | 278 | | |
271 | 279 | | |
| 280 | + | |
| 281 | + | |
272 | 282 | | |
273 | 283 | | |
274 | 284 | | |
| |||
279 | 289 | | |
280 | 290 | | |
281 | 291 | | |
| 292 | + | |
282 | 293 | | |
283 | 294 | | |
284 | 295 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
171 | 171 | | |
172 | 172 | | |
173 | 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 | + | |
174 | 208 | | |
175 | 209 | | |
176 | 210 | | |
| |||
306 | 340 | | |
307 | 341 | | |
308 | 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 | + | |
309 | 377 | | |
310 | 378 | | |
311 | 379 | | |
| |||
576 | 644 | | |
577 | 645 | | |
578 | 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 | + | |
579 | 681 | | |
580 | 682 | | |
581 | 683 | | |
| |||
659 | 761 | | |
660 | 762 | | |
661 | 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 | + | |
662 | 790 | | |
663 | 791 | | |
664 | 792 | | |
665 | 793 | | |
666 | 794 | | |
667 | 795 | | |
668 | 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 | + | |
669 | 823 | | |
670 | 824 | | |
671 | 825 | | |
| |||
1710 | 1864 | | |
1711 | 1865 | | |
1712 | 1866 | | |
| 1867 | + | |
| 1868 | + | |
| 1869 | + | |
| 1870 | + | |
| 1871 | + | |
1713 | 1872 | | |
1714 | 1873 | | |
1715 | 1874 | | |
| |||
1793 | 1952 | | |
1794 | 1953 | | |
1795 | 1954 | | |
| 1955 | + | |
| 1956 | + | |
| 1957 | + | |
| 1958 | + | |
| 1959 | + | |
1796 | 1960 | | |
1797 | 1961 | | |
1798 | 1962 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1126 | 1126 | | |
1127 | 1127 | | |
1128 | 1128 | | |
1129 | | - | |
| 1129 | + | |
1130 | 1130 | | |
1131 | 1131 | | |
1132 | 1132 | | |
| |||
1156 | 1156 | | |
1157 | 1157 | | |
1158 | 1158 | | |
1159 | | - | |
| 1159 | + | |
1160 | 1160 | | |
1161 | 1161 | | |
1162 | 1162 | | |
| |||
4482 | 4482 | | |
4483 | 4483 | | |
4484 | 4484 | | |
4485 | | - | |
4486 | | - | |
| 4485 | + | |
4487 | 4486 | | |
4488 | 4487 | | |
4489 | 4488 | | |
| |||
4509 | 4508 | | |
4510 | 4509 | | |
4511 | 4510 | | |
4512 | | - | |
4513 | | - | |
| 4511 | + | |
4514 | 4512 | | |
4515 | | - | |
4516 | | - | |
| 4513 | + | |
4517 | 4514 | | |
4518 | 4515 | | |
4519 | 4516 | | |
| |||
4522 | 4519 | | |
4523 | 4520 | | |
4524 | 4521 | | |
4525 | | - | |
4526 | | - | |
| 4522 | + | |
4527 | 4523 | | |
4528 | | - | |
4529 | | - | |
| 4524 | + | |
4530 | 4525 | | |
4531 | 4526 | | |
4532 | 4527 | | |
| |||
4535 | 4530 | | |
4536 | 4531 | | |
4537 | 4532 | | |
4538 | | - | |
4539 | | - | |
| 4533 | + | |
4540 | 4534 | | |
4541 | | - | |
4542 | | - | |
| 4535 | + | |
4543 | 4536 | | |
4544 | 4537 | | |
4545 | 4538 | | |
| |||
4556 | 4549 | | |
4557 | 4550 | | |
4558 | 4551 | | |
4559 | | - | |
4560 | | - | |
| 4552 | + | |
4561 | 4553 | | |
4562 | 4554 | | |
4563 | 4555 | | |
| |||
5340 | 5332 | | |
5341 | 5333 | | |
5342 | 5334 | | |
5343 | | - | |
5344 | | - | |
| 5335 | + | |
5345 | 5336 | | |
5346 | 5337 | | |
5347 | 5338 | | |
| |||
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
99 | | - | |
| 99 | + | |
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | | - | |
| 115 | + | |
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| |||
0 commit comments