mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-10 03:13:46 +00:00
Branches: main Make the dependent parallel conjunction transformation insert calls to `par_builtin.wait' as late as possible, and calls to `par_builtin.signal' as soon as possible. Next, combine contiguous sequences of waits, then a plain call to a non-imported procedure, then signals (where there must be at least one wait or signal) into a call to a specialised "parallel" procedure that takes futures in place of the arguments for which waiting or signalling is required. The waits and signals are then moved into the parallel procedures where they can be shifted around more and combined into further calls. compiler/dep_par_conj.m: As above. compiler/hlds_pred.m: compiler/layout_out.m: Add dependent_parallel_conjunction as a source of transformed predicates. compiler/prog_util.m: Add parallel_args as a way to build names for "parallel" procedures. compiler/simplify.m: Don't let the simplification pass do simplifications of common information between parallel conjuncts, as they would introduce dependences between conjuncts which the programmer (and the dependent parallel conjunction tranformation...) probably did not intend. library/par_builtin.m: mdbcomp/program_representation.m: Add `get/2' which gets the value associated with a future, i.e. it is like `wait/2' but assumes that the future has been signalled already. Fix a wrong assertion that a future should only be signalled once. tests/par_conj/Mercury.options: tests/par_conj/Mmakefile: tests/par_conj/dep_par_11d.exp: tests/par_conj/dep_par_11d.m: tests/par_conj/dep_par_24.exp: tests/par_conj/dep_par_24.m: tests/par_conj/dep_par_24b.exp: tests/par_conj/dep_par_24b.m: tests/par_conj/dep_par_25.exp: tests/par_conj/dep_par_25.m: tests/par_conj/dep_par_25b.exp: tests/par_conj/dep_par_25b.m: tests/par_conj/dep_par_26.exp: tests/par_conj/dep_par_26.m: tests/par_conj/dep_par_27.exp: tests/par_conj/dep_par_27.m: tests/par_conj/dep_par_28.exp: tests/par_conj/dep_par_28.m: tests/par_conj/dep_par_6b.exp: tests/par_conj/dep_par_6b.m: Add test cases.
2 lines
3 B
Plaintext
2 lines
3 B
Plaintext
ok
|