Commit Graph

2 Commits

Author SHA1 Message Date
Zoltan Somogyi
bfcdbbd346 Eliminate a hugely long single line in a test output. 2019-07-30 13:30:37 +02:00
Paul Bone
bf6a35f5ec Fix bugs 144 and 171.
Bug 144 is a pathological case where right-recursion is used in a parallel
conjunction and the conjuncts cannot be re-ordered.  This can cause excess
stack allocation and abysmal performance.  The --max-contexts-per-thread
runtime option is used to reduce the impact of these cases by reducing the
amount of parallelism gained at runtime.

Bug 171 is a simple case where the threadscope grade could not be compiled
without enabling the Boehm garbage collector.

runtime/mercury_threadscope.c:
    Enclose boehm GC specific code within #ifdef MR_BOEHM_GC

runtime/mercury_context.[ch]:
    Record the number of contexts running or suspended at any time in a new
    variable, MR_num_outstanding_contexts

    Remove counts of other in-use objects such as the sum of outstanding
    contexts and sparks.

    Remove two granularity control macros that haven't been used for some time.

compiler/granularity.m:
    Ensure that the runtime granularity decision is updated for when it is
    available.

library/par_builtin.m:
    Remove granularity decisions for which support has been removed in the
    runtime.

tests/par_conj/Mmakefile:
tests/par_conj/pathological_right_recursion.{m,exp}:
    Add a test case for bug 144.
2011-02-08 03:48:11 +00:00