Mercury Bugs - mercury | |||||
View Issue Details | |||||
ID | Project | Category | View Status | Date Submitted | Last Update |
0000239 | mercury | Bug | public | 2011-11-30 08:44 | 2011-12-05 14:18 |
Reporter | colanderman | ||||
---|---|---|---|---|---|
Assigned To | |||||
Priority | normal | Severity | minor | Reproducibility | always |
Status | new | Resolution | open | ||
Platform | OS | OS Version | |||
Product Version | |||||
Target Version | Fixed in Version | ||||
Summary | 0000239: Aliasing of partially instantiated structures in solutions.* predicates | ||||
Description | If a partially instantiated structure is fully instantiated and output from the generator predicate of one of the solutions.* predicates, then each result generated will point at the same physical structure (see attached example). This is because multi/nondet predicates do not deep copy partially instantiated structures when filling them in, and solutions.builtin_aggregate does not deep copy while generating results (except in the case of accurate garbage collection). Since changing the former would result in pervasive ABI changes, I believe that changing solutions.builtin_aggregate to always copy generated results is the correct solution (albeit at a performance hit). | ||||
Tags | No tags attached. | ||||
Relationships | |||||
Attached Files | agg_bug.m (416) 2011-11-30 08:44 https://bugs.mercurylang.org/file_download.php?file_id=142&type=bug solutions_copy.patch (3,685) 2011-11-30 08:45 https://bugs.mercurylang.org/file_download.php?file_id=143&type=bug |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|
Issue History | |||||
Date Modified | Username | Field | Change | ||
---|---|---|---|---|---|
2011-11-30 08:44 | colanderman | New Issue | |||
2011-11-30 08:44 | colanderman | File Added: agg_bug.m | |||
2011-11-30 08:45 | colanderman | File Added: solutions_copy.patch | |||
2011-11-30 08:49 | colanderman | Note Added: 0000419 | |||
2011-12-05 14:18 | mark | Note Added: 0000431 |