View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000507 | mercury | Feature Request | public | 2020-05-01 17:52 | 2020-05-01 17:52 | ||||||||
Reporter | zs | ||||||||||||
Assigned To | |||||||||||||
Priority | normal | Severity | minor | Reproducibility | have not tried | ||||||||
Status | new | Resolution | open | ||||||||||
Product Version | |||||||||||||
Target Version | Fixed in Version | ||||||||||||
Summary | 0000507: detect missing foreign_procs | ||||||||||||
Description | We should add a compiler option that causes the compiler to generate a warning for every procedure that passes neither of the following tests: Test 1: it has a Mercury definition. Test 2: it has a definition in each of C, Java, C# and (maybe) Erlang. The test is for procedures, not predicate or functions, because foreign_procs are for procedures, and with mode-specific clauses, Mercury clauses can be as well. However, if a predicate or function has two or more procedures, and they all fail both tests, we should probably generate one message, not several. At the moment, I believe a substantial chunk of the test case failures in C# and Java grades are caused by missing foreign_procs for these languages that this option should help us find more easily. More important, enabling this warning for all modules in the library, which is compiled with --halt-at-warn, should help us not just to fix this, but *keep* it fixed. As for the option name, how about --warn-missing-foreign-procs? | ||||||||||||
Tags | No tags attached. | ||||||||||||
Attached Files |
|
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
2020-05-01 17:52 | zs | New Issue |