[m-rev.] for post-commit review: fix deep profiling bootchecks

Julien Fischer jfischer at opturion.com
Sat Aug 1 16:07:49 AEST 2020



On Sat, 1 Aug 2020, Zoltan Somogyi wrote:

> This should fix Mantis bug #515. For review by anyone.


> Fix bootcheck in deep profiling grades.
> 
> The fix is in two parts.
> 
> compiler/disj_gen.m:
>     The first is fixing a bug I introduced recently while fixing
>     github issue #90. The fix involved flushing resume vars to the stack
>     *before* executing the code of a non-last disjunct, but the state of
>     the code generator while generating the code of that disjunct needs
>     to reflect this having been done. The earlier change did not do this,
>     but this one does.
> 
> library/exception.m:
>     The second part is some needed declarations of entry labels
>     were not visible when compiling exception.c. Give exception.m,
>     and hence exception.c, access to the declarations of those labels
>     by #including the files containing the declarations, and ...
> 
> library/profiling_builtin.m:
>     ... include two such declarations in the .mh file of this module
>     for use by exception.m.
> 
> tests/EXPECT_FAIL_TESTS.asm_fast.gc.profdeep:
>     Expect the setenv test case to fail in deep profiling grades, since
>     (in the absence of working tail recursion while deep profiling)
>     its million-calls-deep recursion to construct a million cons cells
>     allocates *much* more memory per recursive call than in other grades,
>     and thus running out of memory is the expected result.

That looks fine; bootchecking in asm_fast.gc.profdeep.stseg works
again on my system.

Julien.


More information about the reviews mailing list