Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix spurious rebuilds of the script crate #7936

Merged
merged 1 commit into from Oct 9, 2015

Commits on Oct 9, 2015

  1. Fix spurious rebuilds of the script crate

    The script crate currently has a build script, and Cargo will consider all files
    in the script crate as inputs to the build script as it otherwise doesn't know
    [what the input files are][cargo-1162]. This means that if any file in the
    source tree of the script crate changes (or is created) then Cargo will think it
    needs to re-run the build script and rebuild the crate.
    
    [cargo-1162]: rust-lang/cargo#1162
    
    The build script of the script crate is invoking python, and consequently Python
    is generating some bytecode files in the source tree. On the second build of
    Servo, Cargo will see these new files, think that something has changed, and
    will re-run the build script of the script crate.
    
    This change passes the `-B` flag to python to avoid generating these bytecode
    files, which should avoid tampering with the source tree and appease Cargo by
    ensuring that it doesn't get rebuilt.
    
    ---
    
    As a helpful tip to if this comes up again, this was discovered by using the
    changes in rust-lang/cargo@c447e9d plus the change in rust-lang/cargo#2044. Once
    `RUST_LOG` was set to `cargo::ops::cargo_rustc::fingerprint=info`, the second
    run of `./mach build` printed out:
    
    ```
    precalculated components have changed:
      1444364448.000000000s (/build/servo/components/script/dom/bindings/codegen/parser/WebIDL.pyc) !=
      1444364235.000000000s (/build/servo/components/script/document_loader.rs)
    ```
    
    Which should help easily diagnose these kinds of problems in the future!
    alexcrichton committed Oct 9, 2015
You can’t perform that action at this time.