Increasingly, I've been running into situations where it would be beneficial, from a cross-platform and cross-compiler point of view, to selectively enable flags and features depending on the capabilities and defaults of the C compiler is being used. There is some support for doing stuff like `when gcc`, but it's crude.
Let's say for example that a project would benefit from LTO compiles - what's the best way to enable this for compilers that support it and gracefully degrade to non-LTO? Only recent GCC versions support it. A similar situation arises with dialects - which one is the default for a given compiler (C99, C11, etc) changes over time, while something like a wrapper might need to force a particular version for a particular compiler - likewise for -arch flags and the like. Autoconf solves this pragmatically, simply by running tests for each interesting feature and spitting out a decision variable that can be used later in the build process - what would nim's approach be? A non-solution is to dump this one the user of the code (ie "go edit your nim.cfg") - this doesn't scale.
