View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0000143 | mercury | Bug | public | 2010-04-09 17:29 | 2010-05-20 19:02 | ||||
Reporter | rafe | ||||||||
Assigned To | juliensf | ||||||||
Priority | normal | Severity | feature | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0000143: ':- initialise' directives not being respected. | ||||||||
Description | Compile the attached foo.m file and run it. It should output map([(1 -> BAZ), (2 -> BAR), (3 -> BAZ)]) but unless the call to init_foo/2 in main/2 is uncommented out you get this: map([(1 -> baz), (2 -> bar), (3 -> baz)]) The ':- initialise init_foo/2.' directive is not being respected. This is a problem since I was hoping to use this functionality to debug the IC solver. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files |
|
Notes | |
juliensf (administrator) 2010-04-09 17:53 |
This is not a bug IMO. The initialiser is being called, you can see this if you get it to print something out. The problem is that the pretty-printer stores its state in a set of mutables From section 9.6 of the reference manual: For the purposes of determining when mutables are assigned their initial values, the expression ‘initial_value’ behaves as though it were a predicate specified in an ‘initialise’ directive. From section 9.4 of the reference manual: Initialisation predicates within a module are executed in the order in which they are specified, although no order may be assumed between different modules or sub-modules. What is happening here, is that your initialiser is being called and the its effects are being overwritten by the initialisation of the mutables in the pretty_printer module in the stdlib. |
juliensf (administrator) 2010-05-20 19:02 |
Fixed. |
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
2010-04-09 17:29 |
|
New Issue | |
2010-04-09 17:29 |
|
File Added: foo.m | |
2010-04-09 17:53 | juliensf | Note Added: 0000262 | |
2010-04-09 17:53 | juliensf | Status | new => feedback |
2010-05-20 19:02 | juliensf | Note Added: 0000264 | |
2010-05-20 19:02 | juliensf | Status | feedback => resolved |
2010-05-20 19:02 | juliensf | Resolution | open => fixed |
2010-05-20 19:02 | juliensf | Assigned To | => juliensf |