mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-20 03:43:51 +00:00
Estimated hours taken: 1 Change the documentation and test cases to reflect the fact that we currently don't support parallel makes for nested modules. (The comments in the write_depenency_file predicate in compiler/modules.m explain why not.) doc/reference_manual.texi: Update the list of bugs and limitations in the sub-modules chapter to say that we don't support parallel makes for nested modules. tests/hard_coded/Mmakefile: tests/hard_coded/nested*.m: tests/hard_coded/parent*.m: tests/hard_coded/sub-modules/Mmakefile: tests/hard_coded/sub-modules/nested*: tests/hard_coded/sub-modules/parent*: Move the sub-module test cases to a new subdirectory `tests/hard_coded/sub-modules'. One reason for this is just to separate out the test cases for this feature, just as we do with the typeclass test cases. But the other reason is to ensure that the nested module test cases won't get built in parallel, since currently there are some problems with the Mmake rules for building nested modules that cause race conditions if you use parallel makes.
40 lines
454 B
Mathematica
40 lines
454 B
Mathematica
:- module nested_intermod.
|
|
|
|
:- interface.
|
|
|
|
:- import_module int.
|
|
|
|
:- pred foo(int).
|
|
:- mode foo(in) is semidet.
|
|
|
|
:- module sub.
|
|
|
|
:- interface.
|
|
|
|
:- pred fu(int).
|
|
:- mode fu(in) is semidet.
|
|
:- end_module sub.
|
|
|
|
:- implementation.
|
|
|
|
:- module sub.
|
|
:- implementation.
|
|
|
|
fu(X) :-
|
|
X < 4.
|
|
|
|
:- end_module sub.
|
|
|
|
:- pragma inline(foo/1).
|
|
|
|
foo(X) :-
|
|
bar(X).
|
|
|
|
:- pred bar(int).
|
|
:- mode bar(in) is semidet.
|
|
|
|
bar(X) :-
|
|
X > 3.
|
|
|
|
:- end_module nested_intermod.
|