[m-dev.] a bug in the trace system ?
Erwan Jahier
Erwan.Jahier at irisa.fr
Thu Dec 16 04:41:01 AEDT 1999
I have downloaded the prerelease and installed it (BTW, it works fine on sparc).
But my regression tests fail; the port are sometimes wrong. For example,
pragma_nondet_first events are generated instead of switch.
While I was trying to find why, I realized that the MR_trace_port enum of
runtime/mercury_trace_base.h and browser/util.m are not matching whereas they
should !!
typedef enum {
MR_PORT_CALL,
MR_PORT_EXIT,
MR_PORT_REDO,
MR_PORT_FAIL,
MR_PORT_EXCEPTION,
MR_PORT_COND,
MR_PORT_THEN,
MR_PORT_ELSE,
MR_PORT_NEG_ENTER,
MR_PORT_NEG_SUCCESS, /* negated goal failed; negation succeeds */
MR_PORT_NEG_FAILURE, /* negated goal succeeded; negation fails */
MR_PORT_DISJ,
MR_PORT_SWITCH,
MR_PORT_PRAGMA_FIRST,
MR_PORT_PRAGMA_LATER
} MR_Trace_Port;
vs
:- type trace_port_type
---> call
; exit
; redo
; fail
; ite_cond
; ite_then
; ite_else
; neg_enter
; neg_success
; neg_failure
; disj
; switch
; nondet_pragma_first
; nondet_pragma_later
; exception
.
The exception port seems to be in the wrong place. The strange thing is that mdb
behaves correctly! (???).
I will have a deeper look at that tomorrow.
--
R1.
--------------------------------------------------------------------------
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