Mercury Bugs - mercury | |||||
| View Issue Details | |||||
| ID | Project | Category | View Status | Date Submitted | Last Update |
| 0000223 | mercury | Bug | public | 2011-10-24 08:02 | 2011-11-03 12:08 |
| Reporter | colanderman | ||||
|---|---|---|---|---|---|
| Assigned To | wangp | ||||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Platform | OS | OS Version | |||
| Product Version | |||||
| Target Version | Fixed in Version | ||||
| Summary | 0000223: thread.mvar.init/0 and thread.semaphore.init/1 should be marked impure | ||||
| Description | thread.mvar.init/0 and thread.semaphore.init/1 are obviously impure but are not marked as such, leading to logical inconsistencies such as this: main(!IO) :- M1 = init, M2 = init, put(M1, 1, !IO), take(M2, _, !IO). not being equivalent to this: main(!IO) :- M1 = init, M2 = M1, put(M1, 1, !IO), take(M2, _, !IO). (The former will block but the latter will not.) They should be marked impure or removed from the library. | ||||
| Tags | No tags attached. | ||||
| Relationships | |||||
| Attached Files | |||||
| Notes | |||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||
| Issue History | |||||
| Date Modified | Username | Field | Change | ||
|---|---|---|---|---|---|
| 2011-10-24 08:02 | colanderman | New Issue | |||
| 2011-10-24 09:37 | wangp | Note Added: 0000368 | |||
| 2011-10-24 16:10 | juliensf | Note Added: 0000371 | |||
| 2011-10-24 16:10 | juliensf | Status | new => acknowledged | ||
| 2011-11-03 12:08 | wangp | Note Added: 0000380 | |||
| 2011-11-03 12:08 | wangp | Status | acknowledged => resolved | ||
| 2011-11-03 12:08 | wangp | Resolution | open => fixed | ||
| 2011-11-03 12:08 | wangp | Assigned To | => wangp | ||