Replace __ with . as the module qualifier symbol.
Replace references to io.state with just io.
Replace DCGs with state variables.
Replace (C->T;E) syntax for if-then-elses with (if C then T else E) syntax.
Replace if-then-elses with switches when possible and where this does not
affect what is being tested.
Replace separate pred and mode declarations with predmode declarations.
Put predicate and function declarations just before the definition
of the predicate or function.
Delete unneeded module qualifications on predicate and function declarations
and definitions.
Update .exp files (and if needed, .inp files) for the line number changes
that result from the above.
For tests that have more than one .exp file and where one of those files
is affected by the above, add a section to the source file header that says
which .exp file is for what grade, with XXXs for the (as yet) unknown parts.
tests/accumulator/*.m:
tests/analysis_*/*.m:
tests/benchmarks*/*.m:
tests/debugger*/*.{m,exp,inp}:
tests/declarative_debugger*/*.{m,exp,inp}:
tests/dppd*/*.m:
tests/exceptions*/*.m:
tests/general*/*.m:
tests/grade_subdirs*/*.m:
tests/hard_coded*/*.m:
Make these tests use four-space indentation, and ensure that
each module is imported on its own line. (I intend to use the latter
to figure out which subdirectories' tests can be executed in parallel.)
These changes usually move code to different lines. For the debugger tests,
specify the new line numbers in .inp files and expect them in .exp files.
Estimated hours taken: 3
Branches: main
trace/mercury_trace_tables.m:
Add a table for the less-than-fully-qualified names of modules,
allowing any prefix of the module name to be omitted.
Use it to allow procedure specifications (e.g. in breakpoint commands)
to use such module names, with fully qualified module names taking
precedence over less-than-fully-qualified module names.
tests/debugger/breakpoints.{m,inp,exp*}:
tests/debugger/breakpoints.print_list.m:
tests/debugger/breakpoints.{a,b}.m:
tests/debugger/breakpoints.{a,b}.testmod.m:
Update this test case to test the new functionality.
Estimated hours taken: 2.5
Branches: main
Fix bugs in the code to parse and match procedure
specifications for breakpoints:
- handle nested modules.
- handle names containing '/' and '-'.
- use the correct arity for functions, not the arity of the
corresponding predicate.
trace/mercury_trace_tables.c:
Fix the bugs.
runtime/mercury_stack_layout.h:
Add a macro to adjust the arity of functions
recorded in MR_Proc_Layouts for printing.
runtime/mercury_stack_trace.c:
Print the correct arity of functions in stack traces
and debugger events.
tests/debugger/breakpoints.m:
tests/debugger/breakpoints.print_list.m:
tests/debugger/breakpoints.inp:
tests/debugger/breakpoints.exp:
Add test cases.
tests/debugger/existential_type_classes.exp:
tests/debugger/polymorphic_output.exp3:
tests/debugger/declarative/func_call.exp:
Update expected output. (I'll update the other output
files after this change is installed).