Estimated hours taken: 4
Fix some bugs in lambda.m.
compiler/lambda.m:
Fix a bug: in some cases (the cases when it avoided
introducing a new predicate), lambda.m was not setting
the `address_taken' field correctly.
A fix for the MLDS back-end: the optimization of
assuming that the calling convention for `model_det'
is compatible with the calling convention for `model_non'
is not valid if the `--high-level-code' option is set.
Update an obsolete comment.
compiler/hlds_pred.m:
Add a new predicate `proc_info_set_address_taken',
for use by lambda.m.
tests/hard_coded/deep_copy_bug.m:
tests/hard_coded/deep_copy_bug.exp:
Add some more regression tests to test the
above-mentioned bugs.
Estimated hours taken: 0.1
This set of changes was posted a while ago by Zoltan
but not committed.
tests/debugger/interpreter.exp:
tests/hard_coded/construct.exp:
tests/hard_coded/deep_copy_bug.exp:
tests/hard_coded/expand.exp:
tests/hard_coded/write.exp:
tests/hard_coded/write_reg1.exp:
Update the expected outcomes to reflect the changes
to vars and varsets.
tests/debugger/interpreter.exp2 will need to be updated later.
Estimated hours taken: 0.25
tests/hard_coded/deep_copy_bug.exp:
Change the expected output for writing out values of type `var'.
Previously, due to a bug (compare_type_info didn't expand
equivalence types), values of type `var' were incorrectly
output in quotes (as if they were atoms) rather than outputting
them as ints.
Estimated hours taken: 1
Update the test cases to reflect recent changes to io__write.
test/hard_coded/construct.m:
test/hard_coded/expand.m:
Use `io__print' rather than `io__write' for univs,
so that it doesn't output the `univ(... : type)' wrappers.
tests/hard_coded/deep_copy_bug.exp:
tests/hard_coded/construct.exp:
tests/hard_coded/expand.exp:
tests/hard_coded/write.exp:
tests/hard_coded/write_reg1.exp:
Change the expected output to use proper list notation
rather than prefix `.', and to properly quote strings and atoms,
but also to improperly quote equivalences types.
tests/hard_coded/Mmake:
Add a comment explaining that deep_copy_bug.exp, write.exp, and
write_reg1.exp are wrong, due to a bug in io__write.
Estimated hours taken: 2
Fix a bug that Tom reported where calling solutions/3 with an
equivalence type caused a crash in deep_copy().
runtime/deep_copy.c:
Fix a bug in the copying of equivalence types and no_tag types.
It was using `entry_value' instead of `entry_value[1]'.
tests/hard_coded/Mmake:
tests/hard_coded/.cvsignore:
tests/hard_coded/deep_copy_bug.m:
tests/hard_coded/deep_copy_bug.exp:
Add a regression test for this bug.