|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|
|Priority||normal||Severity||minor||Reproducibility||have not tried|
|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.|
|2020-05-01 17:52||zs||New Issue|