On 2022-01-19 4:49 a.m., Trevor Cordes wrote:
On 2022-01-13 Adam Thompson wrote:
I don’t really have a horse in this race, but I think John make one factual error. It’s minor and doesn’t change his point, but: if(!i++) { ... } is perfectly valid in C, where 0==false. It’s equivalent to (I think…): if(i==0) { i++; ... } else { i++; ... }; IIRC, C has the comma operator, albeit thankfully rarely used, so if you really wanted to do this, I think it could be slightly better written: if(i==0, i++) { ... } I could be wrong, I haven’t attempted to write C code in 25+ years. It’s not something you would want to see, but you certainly could.
Hey, I use comma all the time! :-) Well, when it makes sense. Usually in super long perl-oneliners or to get a lot accomplished in one expression in a perl regex using /e.
Perl allows your if(i==0,i++) so I'm nearly positive C would too (Brad, paging Brad...).
I'm quite sure C/C++ would allow the comma operator in conditional contexts (if/while), but keep in mind that the resulting value is the expression to the right of the comma, i.e. i++ in the above example (the i==0 would have no net effect).
...
The more I seethe about the PHP change, the more I seriously ponder making my own fork, or my own "unfixed"-version repo, or trying to get a granular logging feature introduced into master project (h/t Richard). The real tell would be if I made a great granular log settings patch (like Node, again h/t Richard) and PHP rejected it because their real goal is to force their style choices on the world (I'd peg that at 50/50 at the moment... or worse).
I'd hold off on making/maintaining your own fork until such a time the PHP brain-trust actually raises things from a warning to an error. In the meantime, if you're logging using rsyslog, it would be fairly easy to add a one-line filter rule to eliminate the needlessly-noisy warning messages. No more full logs, and no more actual serious warnings getting lost like a needle in the haystack!