[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