← Back to context

Comment by knowitnone

10 months ago

What do you mean? Rust 1.0 can compile Rust 1.0. Rust 1.1 can compile Rust 1.1.

C makes a distinction between the language version and the compiler version. Rust does not. That's the problem people are discussing here.

C99 isn't a compiler version. It's a standard. Many versions of GCC, Clang and other compilers can compile C99 code. If you update your compiler from gcc 14.1 to gcc 14.2, both versions can still compile standard code.

  • There is also a very high level of backwards compatibility between versions of ISO C because there is a gigantic amount of code is updated if there is change. So such changes are done only for important reasons or after a very long deprecation period.

But Rust 1.0 can't compile Rust 1.1.

And as others have noted, C99 is a standard and Rust lacks one.

  • But Rust 1.0 can't compile Rust 1.1

    That's an impossible standard to hold Rust to, did you mean it the other way around? A C89 compiler can't compile all of C99 either.

    • But v1 of a C99 compiler can compile all of C99, and v2 of a C99 compiler can still compile all of C99.

Right, which is basically the opposite of what backwards incompatibility means. Imagine if GCC 14.2.0 was only guaranteed to be able to compile "C 14.2.0".