News for hackers. Stuff that matters.
Re:Rust in QEMU Roadmap by umanwizard on Wednesday December 04, 2024 @10:05AM (#42318143)
> latest rustc always able to compile older rust code.

That is not true. Adding any public method to any impl can cause existing working code not to compile, and Rust adds new methods to the stdlib all the time.

Re:Rust in QEMU Roadmap by vlovich123 on Thursday December 05, 2024 @03:39AM (#42326202)
I don't believe this is correct. I have not once seen a new method being added to stdlib that causes code to not compile. And ABI concerns are a non-issue since Rust is statically linked.
Re:Rust in QEMU Roadmap by umanwizard on Thursday December 05, 2024 @05:15AM (#42326710)
It is correct. For example, this code (admittedly a contrived example, just to illustrate the point) compiles in 1.82 but not in 1.83:

  trait OptionExt {
      fn get_or_insert_default();
  }
  
  impl<T> OptionExt for Option<T> {
      fn get_or_insert_default() {}
  }
  
  fn main() {
      Option::<()>::get_or_insert_default();
  }
The reason is that `get_or_insert_default` was added to the stdlib in 1.83, and takes a different number of arguments, so it clashes with the user-defined one here.
Re:Rust in QEMU Roadmap by 0x457 on Monday December 09, 2024 @03:35PM (#42370294)
Interesting, I would think that having OptionExt in scope would make it clear which method to use.