{"action":"created","issue":{"url":"https://api.github.com/repos/servo/servo/issues/9794","repository_url":"https://api.github.com/repos/servo/servo","labels_url":"https://api.github.com/repos/servo/servo/issues/9794/labels{/name}","comments_url":"https://api.github.com/repos/servo/servo/issues/9794/comments","events_url":"https://api.github.com/repos/servo/servo/issues/9794/events","html_url":"https://github.com/servo/servo/issues/9794","id":137068248,"number":9794,"title":"Spurious script rebuilds with shared target directory with build-cef","user":{"login":"larsbergstrom","id":475847,"avatar_url":"https://avatars.githubusercontent.com/u/475847?v=3","gravatar_id":"","url":"https://api.github.com/users/larsbergstrom","html_url":"https://github.com/larsbergstrom","followers_url":"https://api.github.com/users/larsbergstrom/followers","following_url":"https://api.github.com/users/larsbergstrom/following{/other_user}","gists_url":"https://api.github.com/users/larsbergstrom/gists{/gist_id}","starred_url":"https://api.github.com/users/larsbergstrom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/larsbergstrom/subscriptions","organizations_url":"https://api.github.com/users/larsbergstrom/orgs","repos_url":"https://api.github.com/users/larsbergstrom/repos","events_url":"https://api.github.com/users/larsbergstrom/events{/privacy}","received_events_url":"https://api.github.com/users/larsbergstrom/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/servo/servo/labels/A-build","name":"A-build","color":"d7e102"},{"url":"https://api.github.com/repos/servo/servo/labels/A-content/script","name":"A-content/script","color":"d7e102"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2016-02-28T16:18:05Z","updated_at":"2016-03-01T00:47:42Z","closed_at":null,"body":"As seen in: http://build.servo.org/builders/mac-rel-wpt/builds/1966, despite sharing a target directory, runing `./mach build-cef -r` after a `./mach build -r`, it still takes 14 minutes and 43 seconds. This time is because the script crate believes that it has been changed and needs to re-run the build. Here's a sample fingerprint output:\r\n\r\n```\r\nINFO:cargo::ops::cargo_rustc::fingerprint: fingerprint error for script v0.0.1 (file:///Users/larsberg/servo/components/servo): precalculated components have changed: 1456675029.000000000s (/Users/larsberg/servo/components/script/parser.out) != 145644786\\\r\n6.000000000s (/Users/larsberg/servo/components/script/dom/element.rs)\r\n```\r\n\r\nDoes not seem to be the same as #7936.\r\n\r\nI'm not really sure what this file is (yet), but am looking into it.\r\n\r\nCC: @jdm @ms2ger @alexcrichton @metajack "},"comment":{"url":"https://api.github.com/repos/servo/servo/issues/comments/190472403","html_url":"https://github.com/servo/servo/issues/9794#issuecomment-190472403","issue_url":"https://api.github.com/repos/servo/servo/issues/9794","id":190472403,"user":{"login":"alexcrichton","id":64996,"avatar_url":"https://avatars.githubusercontent.com/u/64996?v=3","gravatar_id":"","url":"https://api.github.com/users/alexcrichton","html_url":"https://github.com/alexcrichton","followers_url":"https://api.github.com/users/alexcrichton/followers","following_url":"https://api.github.com/users/alexcrichton/following{/other_user}","gists_url":"https://api.github.com/users/alexcrichton/gists{/gist_id}","starred_url":"https://api.github.com/users/alexcrichton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexcrichton/subscriptions","organizations_url":"https://api.github.com/users/alexcrichton/orgs","repos_url":"https://api.github.com/users/alexcrichton/repos","events_url":"https://api.github.com/users/alexcrichton/events{/privacy}","received_events_url":"https://api.github.com/users/alexcrichton/received_events","type":"User","site_admin":false},"created_at":"2016-03-01T00:47:42Z","updated_at":"2016-03-01T00:47:42Z","body":"@larsbergstrom it looks like the first error is legit:\r\n\r\n```\r\nprecalculated components have changed: 1456675029.000000000s (/Users/larsberg/servo/components/script/parser.out) != 1456447866.000000000s (/Users/larsberg/servo/components/script/dom/element.rs)\r\n```\r\n\r\nNamely, `parser.out` appears to be [set here](https://github.com/servo/servo/blob/802abf4247b7553a2ab0599e5d3a8ab053f59c54/components/script/dom/bindings/codegen/ply/ply/yacc.py#L74) which is later [turned into a logger](https://github.com/servo/servo/blob/802abf4247b7553a2ab0599e5d3a8ab053f59c54/components/script/dom/bindings/codegen/ply/ply/yacc.py#L3089-L3093). That should probably be in the `OUT_DIR`, or the `build.rs` for the script crate should print out `cargo:rerun-if-changed` for the input files.\r\n\r\nThat's not the entire story here, however, as I think there's something more subtle at play here. Haven't yet tracked it down yet."}}