Uh oh!
There was an error while loading. Please reload this page.
Implement synchronization scheme for incr. comp. directory - #35718
Conversation
rust-highfive
commented
Aug 16, 2016
r? @nrc (rust_highfive has picked a reviewer for you, use r? to override) |
michaelwoerister
commented
Aug 16, 2016
cc @nikomatsakis@alexcrichton@brson @rust-lang/compiler |
There was a problem hiding this comment.
nit: Both this bug! and the one before it should be "Trying to initialize.."
nrc
commented
Aug 17, 2016
15f3787 to
d86ad10Comparemichaelwoerister
commented
Aug 17, 2016
OK, I've implemented the read-write-lock approach. That seems like a clear improvement. I did not, however, move the lock file out of the directory. It made cleanup code more complicated in a few places and having it in the directory should be just as correct. I think, I also addressed all the nits. |
There was a problem hiding this comment.
is this just copied from compiletest?
There was a problem hiding this comment.
It's moved here from rustc_incremental::persist::util which doesn't exist anymore.
nikomatsakis
commented
Aug 18, 2016
ok, r=me modulo nits |
14b9dc8 to
d1d8258Comparemichaelwoerister
commented
Aug 19, 2016
@bors r=nikomatsakis |
bors
commented
Aug 19, 2016
📌 Commit d1d8258 has been approved by |
michaelwoerister
commented
Aug 26, 2016
@alexcrichton@eddyb This seems to be a restriction purely in the Windows API (i.e. |
eddyb
commented
Aug 26, 2016
@michaelwoerister You could do it conditionally, since you already know the length. |
michaelwoerister
commented
Aug 26, 2016
@eddyb yep. |
@bors r- Tidy fails. Feel free to re-r+ when fixed. |
bors
commented
Aug 28, 2016
☔ The latest upstream changes (presumably #35984) made this pull request unmergeable. Please resolve the merge conflicts. |
… on some 32bit systems.
By using "s-" instead of "sess-" as a prefix and encoding numbers as base36 instead of base16.
bf29d72 to
bcd2f90Comparemichaelwoerister
commented
Aug 29, 2016
@alexcrichton Care to take a look at those last two commits and r+ if they look good to you? |
alexcrichton
commented
Aug 29, 2016
@bors: r+ |
bors
commented
Aug 29, 2016
📌 Commit bcd2f90 has been approved by |
bors
commented
Aug 30, 2016
⌛ Testing commit bcd2f90 with merge 5a8ca4b... |
alexcrichton
commented
Aug 30, 2016
@bors: retry force clean
|
bors
commented
Aug 31, 2016
…crichton Implement synchronization scheme for incr. comp. directory This PR implements a copy-on-write-based synchronization scheme for the incremental compilation cache directory. For technical details, see the documentation at the beginning of `rustc_incremental/persist/fs.rs`. The PR contains unit tests for some functions but for testing whether the scheme properly handles races, a more elaborate test setup would be needed. It would probably involve a small tool that allows to manipulate the incremental compilation directory in a controlled way and then letting a compiler instance run against directories in different states. I don't know if it's worth the trouble of adding another test category to `compiletest`, but I'd be happy to do so. Fixes#32754Fixes#34957
This PR implements a copy-on-write-based synchronization scheme for the incremental compilation cache directory. For technical details, see the documentation at the beginning of
rustc_incremental/persist/fs.rs.The PR contains unit tests for some functions but for testing whether the scheme properly handles races, a more elaborate test setup would be needed. It would probably involve a small tool that allows to manipulate the incremental compilation directory in a controlled way and then letting a compiler instance run against directories in different states. I don't know if it's worth the trouble of adding another test category to
compiletest, but I'd be happy to do so.Fixes#32754
Fixes#34957