Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

GPL has long caused a problem for people who want to tightly integrate software - LLVM and Clang with Xcode for example - and reap the benefits. When GPL software has to be used taped to the end of a stick like GCC, it’s a constraint for their vision. Maybe someone who knows this better than I do will refute this point, but I don’t think that the code analysis tools and developer assistance in Xcode would be possible with GCC.


Beyond licensing, there are software design/architectural issues at play, ala:

Clang is designed as an API from its inception, allowing it to be reused by source analysis tools, refactoring, IDEs (etc) as well as for code generation. GCC is built as a monolithic static compiler, which makes it extremely difficult to use as an API and integrate into other tools. Further, its historic design and current policy makes it difficult to decouple the front-end from the rest of the compiler.

via https://clang.llvm.org/comparison.html, with more points for/against each option at that page.


You can see a bit of the gcc monolith and the llvm approach battle it out within the policy of what gets added to Emacs - https://lwn.net/Articles/632773/


Two ironies here:

1) clang and LLVM APIs are so unstable that tight integration effectively requires maintaining your own fork.

2) One of the original complaints about GCC was that Stallman stonewalled addition of a richer, stable plugin API. Fast forward to today, GCC plugins are now first-class and, AFAIU, the plugins API is more stable and dependable. OTOH, turns out people aren't using plugins as much as originally thought, though the Linux kernel infrastructure does.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: