3 ms·
I think the main mistake here is that it was made to be a public interface instead of an internal implementation detail. Now you can expect that some people are
by planede 3y ago
I think the main mistake here is that it was made to be a public interface instead of an internal implementation detail. Now you can expect that some people are relying on custom specs. Migration to a saner configuration language is still possible, but it probably needs to be done with deprecating and phasing out the old DSL concurrently to introducing a new language. Bonus points for providing a tool for converting old specs to the new language.
- lifthrasiir 3y ago> I think the main mistake here is that it was made to be a public interface instead of an internal implementation detail. 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-files https://clang.llvm.org/docs/UsersManual.html#configuration-f...
- planede 3y ago> That's inevitable in my opinion, because this modular interface has been used for a very long time. I wonder how widely it's actually used and if making this an exposed modular interface was worth it.