| Issue 22: | Special treatment of borrowed objects | |
| 1 person starred this issue and may be notified of changes. | Back to list |
Can continue using permissions as before call (but need to detect failures eagerly or preserve constraints from pre-condition). State information must be updated according to split/merged permissions.
Sep 23, 2008
Project Member
#1
kevin.bi...@gmail.com
Labels:
Usability
Sep 23, 2008
(No comment was entered for this change.)
Labels:
per
Sep 23, 2008
(No comment was entered for this change.)
Labels:
-per Performance
Sep 26, 2008
Turns out to be important for iterators to work right. Iterators move the root up and down a lot, and that complicates using an iterator after a loop.
Labels:
-Priority-Medium Priority-High
Sep 29, 2008
(No comment was entered for this change.)
Status:
Started
Sep 30, 2008
r87 remembers permissions of borrowed objects before splitting off the pre-condition and puts them back into the lattice after the post-condition is merged in. This is not perfect because it would override permissions being merged into borrowed objects in addition to what's borrowed, but I'm not aware of a case where that happens. In order for this to work, it was necessary to delay permission splits in the pre-condition until after packing. That way, borrowed objects involved in the pack are treated correctly (including the receiver). This change sped up the regression tests by about 10 seconds on my machine (or about 50%). This is because constraints for borrowed objects are not propagated down the control flow graph. It also removes follow-on errors (due to unsatisfiable constraints introduced at previous call sites), which is reflected in reduced error counts for some test files, committed in r88.
Status:
Fixed
Sep 30, 2008
r90 commits a modifying iterator test method that takes advantage of borrowing |