On Thu Jul 6 23:45:09 2023 +0000, Alex Henrie wrote:
Hi Alexandre, thanks for chiming in. The problem with not having a standard is that it makes it very difficult for contributors to know which language features are allowed in Wine and which are not. For example, right now anonymous unions, designated initializers, and flexible array members are required (which break old compilers), whereas // comments and declaring variables in the middle of a function or at the beginning of a for loop are forbidden (presumably for the benefit of old compilers), and typedef redefinitions are a gray area. What C compiler supports designated initializers but not // comments? Maybe Wine's rules about comments and variables are just for stylistic reasons and not compatibility. If that is the case, let's clearly explain it in the wiki. Let's also clearly explain what other language features are not allowed and why (such as duplicate typedef definitions because of GCC 4.3).
Sure, it would be great to have a list of language features and their status. I agree that the wiki sounds like the right place for it. Do you want to start working on this?