> This argument does not make sense: if you fork GCC or LLVM and change the language frontend for C, the thing you are parsing is no longer standard C.
It doesn't make sense to you, certainly.
To the type of person who've used a dozen different C compilers, all of them containing extensions to the language, and all of them still advertised as "C compilers", the argument makes perfect sense.
I mean, the input to the GCC C compiler is, by default, C with extensions, and yet even you still called it a C frontend, not a "SomeOtherLanguage" frontend.
You may not agree that the argument is valid or sound, but you can't with a straight face say that it is an unreasonable position to take.
> You may not agree that the argument is valid or sound, but you can't with a straight face say that it is an unreasonable position to take.
That's not the argument I'm advancing: I'm saying it does not make sense to call that modified C compiler "proprietary."
I don't care if you call it "C" or not, because everybody who writes C understands that compiler-specific extensions are commonplace. But the existence of non-formally-specified extensions doesn't somehow override the permissively licensed nature of the compiler.
Similarly, going back to the original argument: it does not make sense to call Rust "proprietary" because it only has a living specification, rather than a formal one. It's permissively licensed, and you can modify it to your heart's content. The only reason people wouldn't call your changes "Rust" is because the community doesn't share the same expectations re: vendor extensions that C's community does.
> it does not make sense to call Rust "proprietary" because it only has a living specification,
It doesn't have a "living specification", it has a reference implementation. There's a difference. HTML is a living specification without a reference implementation. Rust (and many other languages) have a reference implementation without a living specification.
> The only reason people wouldn't call your changes "Rust" is because the community doesn't share the same expectations
That's not true; you cannot call it Rust because Rust, the programming language, is trademarked.
Writing your own language and calling it Rust is legally forbidden.[1] You are, of course, free to use the permissive copyright but the name is trademarked.
Now, with C, OTOH, as an ISO standard it has no trademark so this argument does not even arise.
[1] As far as I can tell, it would be legally forbidden even if your new implementation of Rust behaves identical to the reference implementation. The best you can do is call it Rust compatible.
It doesn't make sense to you, certainly.
To the type of person who've used a dozen different C compilers, all of them containing extensions to the language, and all of them still advertised as "C compilers", the argument makes perfect sense.
I mean, the input to the GCC C compiler is, by default, C with extensions, and yet even you still called it a C frontend, not a "SomeOtherLanguage" frontend.
You may not agree that the argument is valid or sound, but you can't with a straight face say that it is an unreasonable position to take.