mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-15 13:55:07 +00:00
Hide the events associated with the goals inserted by tabling transformations,
Estimated hours taken: 2 Branches: main Hide the events associated with the goals inserted by tabling transformations, since ordinary programmers shouldn't be exposed to the details of the transformation. (A later diff will adjust the goal paths of the events associated with the original code back to what they would have been without the transformation.) Add a new mdb command, unhide_events, that allows the programmer to expose hidden events. This is intended for implementors only. compiler/hlds_goal.m: Add a new goal feature, hide_debug_event. If a nonatomic goal has this feature, then the associated trace events will be hidden. compiler/trace.m: Respect the new goal feature. compiler/table_gen.m: Add the new goal feature to the compound goals created by tabling transformations. compiler/code_gen.m: compiler/dense_switch.m: compiler/disj_gen.m: compiler/ite_gen.m: compiler/string_switch.m: compiler/switch_gen.m: compiler/tag_switch.m: Pass the required goal_info to trace.m, to allow it to hide events as required. runtime/mercury_trace_base.[ch]: Add two global boolean variables. One says whether we are exposing hidden events, the other says whether we have ever exposed hidden events. trace/mercury_trace.c: Hide hidden events, unless the programmer has asked for them to be exposed. trace/mercury_trace_internal.c: Implement the unhide_events command. Make "dd" check whether we have ever exposed hidden events. Fix some unclear code in "print_optionals". doc/user_guide.texi: Doument the unhide_events command. doc/mdb_categories: Mention the unhide_events command. tests/debugger/mdb_command_test.inp: Test the documentation of the unhide_events command.
This commit is contained in:
@@ -1157,8 +1157,8 @@ code_gen__generate_goal_2(par_conj(Goals), GoalInfo, CodeModel, Code) -->
|
||||
par_conj_gen__generate_par_conj(Goals, GoalInfo, CodeModel, Code).
|
||||
code_gen__generate_goal_2(disj(Goals), GoalInfo, CodeModel, Code) -->
|
||||
disj_gen__generate_disj(CodeModel, Goals, GoalInfo, Code).
|
||||
code_gen__generate_goal_2(not(Goal), _GoalInfo, CodeModel, Code) -->
|
||||
ite_gen__generate_negation(CodeModel, Goal, Code).
|
||||
code_gen__generate_goal_2(not(Goal), GoalInfo, CodeModel, Code) -->
|
||||
ite_gen__generate_negation(CodeModel, Goal, GoalInfo, Code).
|
||||
code_gen__generate_goal_2(if_then_else(_Vars, Cond, Then, Else),
|
||||
GoalInfo, CodeModel, Code) -->
|
||||
ite_gen__generate_ite(CodeModel, Cond, Then, Else, GoalInfo, Code).
|
||||
|
||||
Reference in New Issue
Block a user