Estimated hours taken: 0.5
compiler/lp.m:
Change some code so that a division is executed only *after*
checking that the divisor is non-zero. Without this change,
the code crashed when doing a bootcheck in grade hlc.gc (in
particular when doing termination analysis for library/array.m).
Estimated hours taken: 0.75
library/*.m:
compiler/*.m:
Undo Zoltan's bogus update of all the copyright dates.
The dates in the copyright header should reflect the years
in which the file was modified (and no, changes to the
copyright header itself don't count as modifications).
Estimated hours taken: 35
Modify termination analysis to use a linear inequation solver
written in Mercury rather than invoking an external 3rd party one.
compiler/term_pass1.m:
Remove all the code for writing out the system of equations,
invoking the solver and parsing the output.
Add code to convert the system of equations into the format
expected by the solver, and call the solver.
compiler/term_errors.m:
the 'lpsolve_failed' constructor goes from arity 1 to arity 0.
modify the output of error messages accordingly.
compiler/lp.m:
NEW file. Contains the linear inequation solver based on
the standard simplex method.