8 ms·
The reason GCC is not a library (2000)
- deterministic 1y agoAnd the result is that most new open source languages (and commercial companies) use LLVM instead of GCC as the backend => way more engineering resources are dedicated to LLVM.
- tehjoker 1y agoFor what it's worth, the leverage did work, just not forever. It was a play with a limited lifetime. It didn't necessarily need to shake out that way, probably if GCC was slightly easier to write for but not too easy people would have invested more. It took a major investment to create a competing product.
- owlbite 1y agoI thought GPLv3 adoption by GCC was what really lit the flames on moving to llvm by commercial entities?
- tehjoker 1y agoYou might know this history better than me.
- fsckboy 1y agoyou only need to worry about GPLv3 if you are modifying gcc in source and building it and distributing that. Just running gcc does not create a GPLv3 infection. And glibc et al are library licensed so they don't infect what you build either, most especially if you are not modifying its source and rebuilding it.
- johannes1234321 1y agoStill some companies try hard to avoid GPLv3, see Apple, who either provide old GPLv2 licensed software or invest in BSD/MIT replacements.
- o11c 1y agoAnd what we've seen from e.g. Apple is that "make a private fork and only distribute binaries" is exactly what they wanted the whole time.
- wmf 1y agoyou only need to worry about GPLv3 if you are modifying gcc in source and building it and distributing that. That's the context here. If you build a new compiler based on GCC, GPL applies to you. If you build a new compiler based on LLVM it doesn't.
- fsckboy 1y agothe context here doesn't actually specify whether we are talking about companies using llvm sources to create proprietary compilers (or maybe integrated with a proprietary IDE) or using llvm to quickly bootstrap and craft a compiler for a new processor, new language, etc., where they will distribute the source to the compiler anyway but such a compiler or IDE would not GPLv3 infect it's users' target sources and binaries.
- int_19h 1y agoThe main problem with GPLv3 specifically from the perspective of various commercial vendors is the patent clause.
- kcexn 1y agoGCC has come a long way in terms of features and complexity since the 90's/00's when Stallman made these decisions. Today, building a compiler from scratch would be a huge undertaking, and would be prohibitively expensive for most organizations regardless of licensing. If the requirement was still just to implement a "simple" C89 compliant compiler, and I was worried about software freedom. The GPL is probably still a good bet.
- riffraff 1y agoI'm not sure that's the only reason. In recent years a lot of projects have chosen to avoid the (l)GPL and use more permissive licences to try and reach a larger audience that might have been spooked by free software. This gave LLM a leg up too.
- pie_flavor 1y agoThey can do this because they have a choice. Apple cleaned itself of the GPL once it could, after a long stint where it couldn't. Had GCC been the library backend standard instead of LLVM, the world would have a lot more GPL in its compilers.
- eqvinox 1y agoAnd yet, LLVM is thriving, and not desolately crying for proprietary commercial improvements to be fed back by their creators. It's an odd balance, sometimes it works out, this seems to be such a case.
- motorest 1y ago> They can do this because they have a choice. Apple cleaned itself of the GPL once it could, after a long stint where it couldn't. Had GCC been the library backend standard instead of LLVM, the world would have a lot more GPL in its compilers. I don't think this is a valid assumption. If the root cause was a refusal to adopt GPL software, I think it's rather obvious that in a universe where LLVM doesn't exist, companies such as Apple will still diverte their resources to non-LLVM software. Apple is also not resource-constrained or a stranger to develop compilers and their programming languages. Does anyone believe that GCC is the only conceivable way of developing a compiler? There's a lot of specious reasoning involved in this idea that LLVM is the sole reason some companies don't adopt GCC. The truth of the matter is that licenses do matter, and if a license is compatible with their goals then companies can and will contribute (LLVM) whereas if it isn't (GCC) companies will avoid even looking at it.
- oblio 1y agoLet's be real here. A lot of this is driven by FAANG or FAANG wannabes, companies at a scale where they can basically reproduce huge chunk of OSS infrastructure. They also put out a lot of Open Source with they don't want to license as GPL due to a general fear of GPL contamination. Most of this is huge corporation driven.
- menaerus 1y agoIn retrospective, I think this came out for the better in case of LLVM, and probably for GCC too. After all, both compilers emit ~equally optimized code today.
- eptcyka 1y agoMore languages choose LLVM as their primary backend, like Rust, Crystal, Julia.
- nutjob2 1y agoThere is also the case of the more liberally licensed SRC Modula-3 compiler (front end) which worked around the GPL by running GCC as a separate process and feeding it IR files. Less efficient, but effective. It's always an option if you're willing to put up with the awkwardness and inefficiency. GPL has more in common with DRM than you would think.
- enriquto 1y agoOh, this is one of my favorite (and sad!) dramas in free software. Five years later the main llvm developer proposed [0] to integrate it into gcc. Unfortunately, this critical message was missed by a mail mishap on Stallman's part; and he publicly regretted both his errors (missing the message and not accepting the offer), ten years later [1]. The drama was discussed in realtime here in HN [2]. [0] https://gcc.gnu.org/legacy-ml/gcc/2005-11/msg00888.html https://gcc.gnu.org/legacy-ml/gcc/2005-11/msg00888.html [1] https://lists.gnu.org/archive/html/emacs-devel/2015-02/msg00594.html https://lists.gnu.org/archive/html/emacs-devel/2015-02/msg00... [2] https://news.ycombinator.com/item?id=9028738 https://news.ycombinator.com/item?id=9028738
- LPisGood 1y agoI feel like this is a sort of evidence that even for the most serious of engineers email lists are not an ideal way to communicate.
- enriquto 1y agoStill, we are discussing it almost 30 years after it happened. What alternative messaging system offers such openness and stability? I don't see anything other than publicly archived mailing lists.
- riffraff 1y agoI think Mozilla has a bugzilla instance that's been around almost as much, e.g. this is 26 years old https://bugzilla.mozilla.org/show_bug.cgi?id=35839#:~:text=Closed%20Bug%2035839%20Opened%2025%20years%20ago%20Closed%2023%20years%20ago https://bugzilla.mozilla.org/show_bug.cgi?id=35839#:~:text=C...
- db48x 1y agoBugzilla is good for some things, but terrible for discussions, questions, offers, advice, etc, etc.
- 1y ago
- nilamo 1y agoStrange philosophy, imo. Feels very much like saying "My version of free is best, and I must force you to implement it yourself".
- nextaccountic 1y agoStallman's version of free is free to the end user. He cares more about whether the end user will have access to the source code and means to modify their software to remove any anti-feature, and less about whatever freedoms the developers of said software would want (such as, the freedom to close the source and distribute only binaries) Ultimately Stallman was against a kind of digital feudalism, where whoever developed software had power over those that didn't
- positron26 1y ago> free to the end user To which none can answer how it creates freedom without mass adoption to actually get the software into end users' hands. The great contradiction in FSF philosophy is to create highly pure software within a monastery of programmer-users while simultaneously insisting to focus on end-user freedoms without reconciling programmer incentives to build what these end users need.
- lelanthran 1y agoAnd yet despite your theory it appeared to work quite well in practice. If reality disproves your theory, it's not reality that's wrong.
- positron26 1y agoOpen source works. FSF tactics for producing and promoting free/libre do not. Let's not give the FSF credit for what open source does.
- lelanthran 1y ago
- hackerbrother 1y agoFreedom through obscurutiy
- bfkwlfkjf 1y agoStallman is such a deep thinker. I think he doesnt get nearly as much credit as he deserves.
- duckerude 1y agoI don't think this shows deep thought on his part. By Stallman's own telling a free Objective-C frontend was an unexpected outcome. Until it came up in practice he thought a proprietary compiler frontend would be legal (https://gitlab.com/gnu-clisp/clisp/blob/dd313099db351c90431c1c90332192edce2bb5c9/doc/Why-CLISP-is-under-GPL#L366 https://gitlab.com/gnu-clisp/clisp/blob/dd313099db351c90431c...). So his stance in this email is a reaction to specific incidents, not careful forethought. And the harms of permissive licensing for compiler frontends seem pretty underwhelming. After Apple moved to LLVM it largely kept releasing free compiler frontends. (But maybe I'd think differently if I e.g. understood GNAT's licensing better.)
- awaymazdacx5 1y agoWhat about peripheral packages for the GCC library? The compiler specifies objective C in GPL for front end architecture.
- rurban 1y agoBesides the LLVM drama, we do have a libgcc for jit library now, which uses just the backend to create a better jit than llvm. More speed and more backends. Did Dave Malcolm contact RMS privately as he said then? I only know about https://gcc.gnu.org/legacy-ml/gcc-patches/2013-10/msg00228.html https://gcc.gnu.org/legacy-ml/gcc-patches/2013-10/msg00228.h... Why did RMS back down then? He still opposes a ffi for emacs, even if behind the scenes there is now a ffi in emacs for gtk.
- sylware 1y agoThis does not really matter, there is really worse. This real apocalypse did happen upon making gcc a c++ project. This is probably one of the biggest mistakes in open software ever. There were rumors which do match the timing: the media labs (and gcc steering "committee") at MIT being fiddled auround by B. Gates via Epstein (yes, the one you are thinking about). Are those rumors true? Well, there is "something", but "actually what"? All we know is RMS had to "disappear" for a little while... and that was not for health issues and probably to avoid being splash by the MIT 'media labs' affair. Open source is not enough anymore, we (all of us) need _lean_ open source, which excludes de facto ultra-complex syntax computer languages (c++ and similar), that to foster real-life alternatives in the SDK space. gcc is now not much better that closed source software.
- pjmlp 1y agoLLVM is a C++ project from the start and has 5x more contributions than GCC, we should have moved on from C long time ago.
- sylware 1y agoIndeed, LLVM was bad right from the start...
- pjmlp 1y agoApparently the world of compiler vendors and university researchers don't agree with. LLVM is the only open source project that rivals with the Linux kernel in the amount of contributions. https://www.phoronix.com/news/LLVM-Code-Activity-2024 https://www.phoronix.com/news/LLVM-Code-Activity-2024
- sylware 1y agoacademics does not mean honest and good anymore.
- 1y ago