[m-dev.] EDCG implementation bug

Peter Nicholas MALKIN pnmalk at students.cs.mu.oz.au
Thu Mar 15 19:18:24 AEDT 2001


Hi,

I have finished the implementation of EDCGs, except for two errors given by
bootcheck. I would like help in fixing these problems. I will be posting my diff
of the implementation of EDCGs to mercury-reviews soon anyway because I expect
any changes to be minimal. So refer to that diff to see what changes I
have made.

The error were received when running bootcheck. I ran bootcheck at Thu Mar 15
01:42:34 EST 2001 with an up to date version of the repository with the
edcg changes incorporated. The compiler I used was
/home/hydra/public/mercury-latest/bin/mmc.

The errors are:

(i)
scripts/mgnuc  --grade asm_fast.gc     --no-ansi    -g     \
        -DMERCURY_BOOTSTRAP_H \
        -E mercury_accurate_gc_check.c \
        -nostdinc -dN \
        2> /dev/null | awk '/^#define/ { print $2; }' | \
        grep -v -e '^MR_' -e '^GC_' -e '^MERCURY_' | fgrep -v -x -f RESERVED_MAC
RO_NAMES | sort -u > mercury_accurate_gc_check.macros
** Macro name(s) in user namespace:
HAVE_SYS_SIGNAL
(You may need to add a distinguishing prefix to these names.)
gmake: *** [mercury_accurate_gc_check.macros] Error 1

AND SIMILARLY:

MERCURY_ALL_C_INCL_DIRS=" -I../browser -I../library -I../runtime -I../boehm_gc -
I../boehm_gc/include " ../scripts/mgnuc --grade asm_fast.gc     --no-ansi    -g 
    \
        -DMERCURY_BOOTSTRAP_H \
        -E mercury_trace_check.c \
        -nostdinc -dN \
        2> /dev/null | awk '/^#define/ { print $2; }' | \
        grep -v -e '^MR_' -e '^GC_' -e '^MERCURY_' | fgrep -v -x -f ../runtime/R
ESERVED_MACRO_NAMES | sort -u > mercury_trace_check.macros
** Macro name(s) in user namespace:
HAVE_SYS_SIGNAL
(You may need to add a distinguishing prefix to these names.)
gmake: *** [mercury_trace_check.macros] Error 1

(ii) In tests/valid. I think that this error is related to the fact that I have
added an operator `$' to ops.m. The priority of the operator is 75. It needs to
be this high because it has to be higher than `^' for records which is 100:

mmc --make-interface   --intermodule-optimization  intermod_quote2.m
intermod_quote2.m:013: Syntax error at token '=': operator precedence error.
intermod_quote2.m:016: Syntax error at token 'is': operator precedence error.
intermod_quote2.m:026: Syntax error at token '$': unexpected token at start of (
sub)term.
intermod_quote2.m:029: Syntax error at token '=': operator precedence error.
`intermod_quote2.int' not written.
For more information, try recompiling with `-E'.

Thanks

Peter

--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list