mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-13 12:53:53 +00:00
Estimated hours taken: 5 Branches: main Implement the trace goal construct for the hlc grades. compiler/mlds.m: Extend the MLDS in a similar way to how the previous diff extended the LLDS. This means extending lvals to allow references to global variables representing the initial snapshots of environment variables, and recording the set of environment variables referred to by each definition. compiler/mlds_to_c.m: Handle the extensions to the MLDS. compiler/llds_out.m: util/mkinit.c: Note that mlds_to_c.m now also depends on the naming scheme for the global variables representing environment variables. compiler/ml_code_gen.m: When generating code for a procedure, remember the set of environment variables it refers to. When generating code for the special form of call_foreign_proc created by the transformation of trace goals with runtime conditions by simplify.m, generate the appropriate boolean expression involving references to environment variables. compiler/ml_code_util.m: Provide storage space for recording the set of environment variables used in functions. compiler/mlds_to_il.m: compiler/mlds_to_gcc.m: compiler/mlds_to_java.m: compiler/mlds_to_managed.m: Abort if asked to translate functions that include references to environment variables, since this is preferable to silently doing the wrong thing. compiler/*.m: Misc changes required to conform to the change to the MLDS.