AaronBallman wrote:

I'd like to echo what @cor3ntin suggested above -- this needs an RFC to be 
posted to Discourse so the community is aware of the potential new language 
extension. We have a set of criteria for what we're looking for in such an RFC: 
https://clang.llvm.org/get_involved.html#criteria -- having the patch is a 
great start though as you can link to the patch from the RFC to give people a 
more concrete idea of what's being proposed.

> Yes, the name define2 is a placeholder, but the more I look at it, the more 
> it looks appropriate

I'm not certain it's a particularly good name in terms of standardization as 
there's no way for users to distinguish between `define` and `define2`.

> Maybe, but I dont think standard committee will consider the proposal without 
> reference implementation(if its not a modules ofc)) and, in case of 
> preprocessor, usage in 'real world'

There's a chicken-and-egg problem. The committee wants to see implementation 
experience and the community wants to see support from the committee for larger 
ideas (we don't really want to add language extensions over objections from a 
standards committee unless there's sufficiently compelling reasons to do so).

I have not yet had the chance to review the code changes, but I do have some 
concerns at a high-level. Preprocessor language extensions are a bit difficult 
because of adoption issues. Unless other implementations also implement the 
same extension, a significant number of folks wind up needing to use 
preprocessor conditionals to skip the new feature and write fallback code so 
their macros remain portable, but once you write that fallback code, you no 
longer need the extension code in the first place. When writing your RFC, it 
would be good to mention whether you've been talking to other implementations 
and what their thoughts, opinions, and concerns are. It's also worth noting 
that you *can* write recursive macros in C, though it's not easy without use of 
a macro library like 
[P99](https://gustedt.gitlabpages.inria.fr/p99/p99-html/index.html).

https://github.com/llvm/llvm-project/pull/65851
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to