The reason GCC is not a library (2000)

GCC vs LLVM and licensing dynamics

  • Several comments link LLVM’s rise to its permissive license, contrasting it with GCC’s GPLv3 (especially the patent clause).
  • Commercial vendors are described as wary of GPLv3, preferring to avoid any obligation to open proprietary compiler modifications.
  • One view: in a world without LLVM, companies that dislike the GPL would have developed their own non-GCC toolchains anyway; LLVM didn’t “cause” their avoidance, it just provided an easier path.
  • Others argue that LLVM’s licensing plus its modular, library-like design made it the obvious choice for new languages (Rust, Julia, Crystal) and custom tooling.
  • There’s broad agreement that today both GCC and LLVM emit similarly optimized code; LLVM is seen as the innovation playground, GCC as the entrenched workhorse (especially in embedded and Linux).

Missed LLVM–GCC integration and communication/governance

  • A key historical episode: an early proposal to integrate LLVM into GCC reportedly went unnoticed due to an email mishap; years later, the missed opportunity was publicly regretted.
  • This sparks debate over mailing lists vs alternatives.
    • Pro-mailing list arguments: open, searchable, stable for decades, better than Slack/Discord for serious, long-lived projects.
    • Critics highlight that important messages can still be missed and see governance failure when no one else picks up dropped threads.
  • Chat systems are criticized for poor archivability and “hidden” threaded conversations; forums and Discourse-style systems get praise as a middle ground.

FSF philosophy and effectiveness

  • One camp defends the FSF focus on “freedom for end users,” even if that restricts what developers and companies can do with the code.
  • Critics argue this purity hampers adoption and undermines the stated goal of empowering users, contrasting FSF-style copyleft with the broader “open source” movement.
  • There’s disagreement over how much credit FSF deserves for today’s free tools: some see GPL as a huge success; others say modern open source took off largely independently.

Complexity, C++ in GCC, and “lean” freedom

  • A minority of commenters see rewriting GCC in C++ as a serious mistake that harms “lean” free software and makes meaningful user contribution harder.
  • Others acknowledge rising complexity but consider talk of “apocalypse” exaggerated; GCC is still viewed as relatively approachable compared to the overall industry trend toward bloated toolchains.
  • Some idealize extremely lean stacks (simple C compilers or even direct RISC‑V assembly) as the only path to truly auditable, user-controlled systems.

libgccjit and alternatives

  • libgccjit is noted as a late-arriving GCC backend-as-library, used notably by Emacs and a few other tools.
  • Its existence shows GCC can be used in a more LLVM-like, embeddable way, though commenters are unsure how widely it is actually adopted.