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

Bump rust version to 1.75.0 #3039

Merged
merged 5 commits into from
Jan 8, 2024
Merged

Commits on Dec 29, 2023

  1. rust-toolchain: Bump toolchain version to 1.69.0

    which, compared to the previous 1.67.0, has the following impacts on
    `zellij`:
    
    - [Turn off debuginfo for build deps][2]: Increases build time (on my
      machine) from ~230 s in 1.67.0 to ~250 s now, *which is unexpected*
    
    This version also changes [handling of the `default-features` flag][3]
    when specifying dependencies in `Cargo.toml`. If a dependent crate
    requires `default-features = true` on a crate that is required as
    `default-features = false` further up the dependency tree, the `true`
    setting "wins". We only specify `default-features = false` for three
    crates total:
    
    - `names`: This is used only by us
    - `surf`: This is used only by us
    - `vte`: This is also required by `strip-ansi-escapes`, but that has
      `default-features = false` as well
    
    How this affects our transitive dependencies is unknown at this point.
    
    [2]: rust-lang/cargo#11252
    [3]: rust-lang/cargo#11409
    har7an committed Dec 29, 2023
    Configuration menu
    Copy the full SHA
    aa2cda3 View commit details
    Browse the repository at this point in the history
  2. rust-toolchain: Bump toolchain version to 1.70.0

    which, compared to the previous 1.69.0, as the following impacts on
    `zellij`:
    
    1. [Enable sparse registry checkout for crates.io by default][1]
    
    This drastically increases the time to first build on a fresh rust
    installation/a rust installation with a clean cargo registry cache.
    Previously it took about 75s to populate the deps/cache (with `cargo
    fetch --locked` and ~100 MBit/s network), whereas now the same process
    takes ~10 s.
    
    2. [The `OnceCell` type is now part of std][2]
    
    In theory, this would allow us to cut a dependency from `zellij-utils`,
    but the `once_cell` crate is pulled in by another 16 deps, so there's no
    point in attempting it right now.
    
    Build times and binary sizes are unaffected by this change compared to
    the previous 1.69.0 toolchain.
    
    [1]: rust-lang/cargo#11791
    [2]: https://doc.rust-lang.org/stable/std/cell/struct.OnceCell.html
    har7an committed Dec 29, 2023
    Configuration menu
    Copy the full SHA
    55f4f8a View commit details
    Browse the repository at this point in the history
  3. rust-toolchain: Bump toolchain version to 1.75.0

    which, compared to the previous 1.70.0, has the following impacts on
    `zellij`:
    
    1. [cross-crate inlining][8]
    
    This should increase application performance, as functions can now be
    inlined across crates.
    
    2. [`async fn` in traits][9]
    
    This would allow us to drop the `async_trait` dependency, but it is
    currently still required by 3 other dependencies.
    
    Build time in debug mode (on my own PC) is cut down from 256s to 189s
    (for a clean build). Build time in release mode is cut down from 473s to
    391s (for a clean build). Binary sizes only change minimally (825 MB ->
    807 MB in debug, 29 MB -> 30 MB in release).
    
    [8]: rust-lang/rust#116505
    [9]: rust-lang/rust#115822
    har7an committed Dec 29, 2023
    Configuration menu
    Copy the full SHA
    24e10f2 View commit details
    Browse the repository at this point in the history
  4. chore: Apply rustfmt.

    har7an committed Dec 29, 2023
    Configuration menu
    Copy the full SHA
    bbff52b View commit details
    Browse the repository at this point in the history

Commits on Jan 8, 2024

  1. Configuration menu
    Copy the full SHA
    f2dd104 View commit details
    Browse the repository at this point in the history