Giter VIP home page Giter VIP logo

Comments (2)

foresterre avatar foresterre commented on May 27, 2024

Hi @danieleades, thanks for your question.

I think there are two reasons at the moment why it isn't the default:

  1. The bisect implementation has not been battle tested and aside from my own use, I've received no feedback on how well the implementation performs. On the flip side, having it as the default may very well generate such feedback.
  2. At the time of implementation there were some issues regarding different versions of Cargo.lock files. Older Cargo versions did not support newer lock files. When using bisection, this issue becomes much more prominent, as we would now install much older toolchains, while currently, most often the MSRV is a much more recent version of Rust which has support for the newer lock file. This issue can be alleviated by running cargo msrv with the --ignore-lockfile flag, but it also changes the behaviour since we now run a toolchain against unfrozen dependency versions.

However, a binary search can significantly reduce the time necessary to determine the MSRV, especially when you also reduce the search space further by setting --minimum <version> (e.g. 1.31.0 for Rust edition 2018), so it's definitely a worth to think about, and to start a conversation about.

What would be the primary reason(s) for you to have --bisect as the default?

#45 (comment)

from cargo-msrv.

danieleades avatar danieleades commented on May 27, 2024

i'm using 'bisect' to find the msrv on new projects. it's significantly faster than the linear search.

I'm also using the 2018 edition as a minimum. perhaps the edition set in cargo.toml should be respected as a minimum? or at least, the editions could be used as aliases with the --min argument. That's a different issue of course.

from cargo-msrv.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.