3 ms·
Yes that much I got. It's a thing that would be nice to have. But that doesn't explain exactly why the GCC would be the ones doing it nor why there would be two
by alkonaut 4y ago
Yes that much I got. It's a thing that would be nice to have. But that doesn't explain exactly why the GCC would be the ones doing it nor why there would be two separate projects.
- bayindirh 4y agoBecause having a Free implementation which complements the Open Source one is a great way to keep the language alive, evolve it in a saner way, and improve ways we thought it's impossible to do. clang made gcc and g++ better compilers. gcc-rs can do the same and help making rustc a better compiler and Rust a better language. For the record, I don't write Rust, because GCC has no Rust support yet. More specifically, I don't use LLVM-Specific languages due to LLVM's license and stance against GCC.
- estebank 4y agoHow is Rust not evolving in a sane way today?
- bayindirh 4y agoI didn't say it's evolving in an insane way, however I believe the outcome improves when more people with different perspectives discuss on a matter. In other words, "If you want to go fast, go alone. If you want to go far, go together".
- eru 4y ago> For the record, I don't write Rust, because GCC has no Rust support yet. More specifically, I don't use LLVM-Specific languages due to LLVM's license and stance against GCC. As far as I can tell, GCC is licensed under GPLv3 these days. LLVM is under a variation of the Apache License. https://www.apache.org/licenses/GPL-compatibility.html https://www.apache.org/licenses/GPL-compatibility.html suggests that you can use code under Apache License in a project that's under GPLv3. So someone could take legally LLVM, change the Readme and slap a GPLv3 license on it, and have the same license as GCC? (Assuming that the exceptions that LLVM's license has aren't a problem.) Would that fix your issues? Or what is your specific problem?
- Thiez 4y agoWhat would be the point of that? Upstream will never accept GPL licensed patches and your fork is also available under the Apache license from the original source (except the readme changes that nobody cares about).
- eru 4y agoThe point is that this way you can get an LLVM that's licensed the same way as GCC. This whole exercise has a point, if and only if there's a point to insisting that GCC's license is fine, but LLVM's license ain't. It's just a reduction. https://en.wikipedia.org/wiki/Reduction_(complexity) https://en.wikipedia.org/wiki/Reduction_(complexity) If you don't have any problem with the license of LLVM in the first place, the reduction is obviously useless to you.
- Thiez 4y agoI thought the point of having something GPL licensed would be that you actually get to enjoy/enforce the copyleft clauses of the GPL. By just relicensing an existing non-copyleft project and not following up with any significant development you only get the illusion of a copyleft project. If you are happy with this license mirage you are essentially saying you only care about the GPL name and not about copyleft. It's just nerdy virtue signalling.
- josephcsible 4y agoYou're opposed to even using LLVM just because of its pushover license? Isn't even RMS okay with that? Doesn't the usual guidance go like "copyleft free software is good to use and contribute upstream to, free but non-copyleft software is good to use but bad to contribute upstream to, and non-free software is bad to use and contribute upstream to"?
- Karliss 4y agoWhy GCC -> who else if not GCC? LLVM and GCC are more or less only big system programming compiler frameworks that support multiple programming languages and many backends. GCC already has frontends for Objective-C, Fortran, Ada, D, Go and few more not just C++ and C. It's much easier to add N+1 language to compiler that already supports N languages, instead of adding second language to a compiler which currently supports one. Rest of the compilers are mostly using LLVM as backend, or are made for single language and probably don't have enough resource to support more than 3 CPU architecture, not even talking about second language frontend. Can you name even one other compiler which would match those requirements? Only thing that comes to my mind is Borland, although I have no idea whether their compilers shared common backend or where they completely independent. I guess at some point Microsoft might have shared some of the parts for their .NET CLR langauges (Basic, C#, F# and managed C++/CLI ). While you could make a Rust frontend for .NET it would be somewhat pointless. Rust makes certain sacrifices in terms of ease of use, for the purpose of safe low level memory management. In a VM made for higher level garbage collected languages thats just unnecessarily complexity, without the benefits. After looking more I was also able to find thing called "Amsterdam compiler kit", but that seems more like academic exercise. Why two separate projects -> Think of it as short term vs long term solutions. Ideally in long term the multiple implementations for programing language would be completely independent, but it takes more work. In short term it's easier to glue together existing Rust frontend with GCC backend, while still getting many of the benefits of having multiple programming language implementations.