mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-14 13:23:53 +00:00
Estimated hours taken: 4 Add four new ports: entering the condition of an if-then-else, entering a negation, and leaving a negation via success or failure. If --trace-decl is enabled, generate these events, which the declarative debugger needs in order to properly delimit negated contexts (which should cause a switch from wrong answer to missing answer diagnosis and vice versa). compiler/llds.m: runtime/mercury_trace_base.h: browser/debugger_interface.m: Add the new event types. compiler/llds_out.m: Print the new event types. compiler/trace.m: Provide predicates to generate code for the new events if --trace-decl is set. Separate out the code for dealing with the trace_info data type. compiler/ite_gen.m: Call trace.m to (conditionally) generate code for the new events. trace/mercury_trace_internal.c: Print the names of the new ports when events of those types happen.