Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <vsvu3v$32siq$1@dont-email.me>
Deutsch   English   Français   Italiano  
<vsvu3v$32siq$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: David Brown <david.brown@hesbynett.no>
Newsgroups: comp.lang.c
Subject: Re: do { quit; } else { }
Date: Mon, 7 Apr 2025 09:16:15 +0200
Organization: A noiseless patient Spider
Lines: 58
Message-ID: <vsvu3v$32siq$1@dont-email.me>
References: <vspbjh$8dvd$1@dont-email.me> <8634enhcui.fsf@linuxsc.com>
 <vsph6b$ce6m$5@dont-email.me> <86ldsdfocs.fsf@linuxsc.com>
 <20250406162607.0000657a@yahoo.com> <vsu1gr$15ajj$1@dont-email.me>
 <87plho64t5.fsf@tilde.institute>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 07 Apr 2025 09:16:16 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="40dbfdef1edd6fa2dfc985435c5c3352";
	logging-data="3240538"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+tw/93I+MyfTrcOUAFLh/tth1/VftUG/c="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.11.0
Cancel-Lock: sha1:nLoK8dV9SjDq2m3CkDWVEGnP94A=
Content-Language: en-GB
In-Reply-To: <87plho64t5.fsf@tilde.institute>

On 07/04/2025 05:14, yeti wrote:
> David Brown <david.brown@hesbynett.no> wrote:
> 
>> A number of regulars here have responded (with posts other than "this
>> is off-topic"), so that suggests there is at least some interest in
>> the group.
> 
> I like to see such things discussed here.  If it looks like there is a
> need for new constructs, the thread(s) may end with acceptable
> alternatives using only current C's capabilities.
> 

I personally have no problems with this thread in this group, though I 
understand that others may feel differently.  I think it would have been 
clearer that it is topical if Thiago had given a bit more explanation in 
the original post.

> Other times a pre-compiler might add some icing on the C cake.  I'd
> prefer that way over touching the standard.
> 
> With changes to C directly, I'd be very conservative.  Far too often I
> already stumble over stuff that isn't buildable with current compilers
> any more.  Try even to build some older GCC with the current ones.
> 

Usually all that is needed to build older code is to make sure that you 
specify the C standard explicitly, as gcc gradually updates their 
"default" C standard.  I think perhaps it would be better if the 
standard had to be given explicitly with no default.  Alternatively, it 
could be the current standard - C23 - along with all the compatibility 
warning flags, thus requiring the code to be in the intersection of all 
C standards.

Occasionally there are also issues with builds using "-Wall -Werror" and 
newer gcc versions adding extra flags to -Wall, or older buggy code 
failing in the face of newer optimisations.

> Imo we do not do us a favour if the incompatibilities pile up to a level
> that ends with C != C, but it already seems too late to stop this.
> 

It is certainly easier when a new feature can, to at least some extent, 
be implemented as macros for older compilers.  For example, it is 
possible to implement C11's "_Static_assert" using macros in C99.  The 
result is uglier and gives less clear error messages, but it does the 
job.  And Thiago has implements his do/quit or try/catch system in a 
limited form as macros - though a language extension would be more 
powerful (such as allowing for multiple uses within one function).

I am sceptical to macros like these even though they are implemented in 
standard C - they have a tendency to make the code very hard to follow 
for anyone not used to the macros.  I think they need to have very 
significant benefit to the code before they are worth that confusion, 
and I can't see that for Thiago's constructs here.  But if he is 
intending to propose the constructs as a new feature for standard C, 
then it is good to prototype it with macros, and I am sure he can argue 
for the use-cases in his proposal.