GCC Specs: An Introduction
wozniak.ca
wozniak.ca
[1] https://gcc.gnu.org/onlinedocs/gcc-3.0.4/gcc_3.html#SEC18
That's inevitable in my opinion, because this modular interface has been used for a very long time. You should be able to replace a compiler, C/C++ preprocessor, linker and assembler without altering the entry point, i.e. the driver. Each component may have multiple versions for each supported target as well. So the driver itself has to be configured in some way, and the result is this annoying language, which has to be publicly visible for distro maintainers for example.
By the way Clang also has a similar file format [1], even though it is considerably simpler possibly because Clang is not that modular by design. (This is AFAIK intentional.)
[1] https://clang.llvm.org/docs/UsersManual.html#configuration-f...
I wonder how widely it's actually used and if making this an exposed modular interface was worth it.
All starting out as simple DSL’s and then evolving into really badly designed obscure and WTF generating programming languages.
C++ templates is another great example of this. It is the worse functional programming language ever invented. An absolute pile of garbage that every new standard is trying and failing to fix.
https://web.archive.org/web/20240103035219/https://wozniak.c...
https://archive.is/20240103045612/https://wozniak.ca/blog/20...
claus assman anyone? i submitted a patch/ contribution to him once. he accepted it.
i also did have to write my own specs file, for what reason i forget
(but please don't post unsubstantive comments to Hacker News)
Thanks for your sacrifice :-)
https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-...