On 05.08.2024 at 21:37, Gina P. Banyard wrote: > This sounds like a uopz extension issue that is easily fixed.
Most likely, yes, although still somebody has to provide a fix, and someone has to do a new release. > I am not sure why we should bend over backwards for extensions that allow to > break usual userland semantics while preventing userland behaviour to be > better. We shouldn't do one or the other without having weighted the pros and cons. So what are the pros regarding improved userland behavior: * we can use named arguments So we can now write `exit(status = 1)` or `exit(status = "some error message`). I don't see any improvement using named arguments for a single argument function (maybe unless it is a boolean argument). And for a string argument, I don't think that `status` is a sensible parameter name here. * pass to functions as callable That might be a nice feature, but at least I have never seen the need to pass `exit` as callable. And it wouldn't be hard to define a wrapper function (e.g. `my_exit()`) if someone really needs to pass it as a callable. * does not respect strict_types and does not follow usual type juggling semantics That *might* be an issue (although I've never stumbled upon that), but it seems to me that this could even be handled in the ZEND_EXIT handler. Perhaps I've missed some pros, but it seems these have been the ones the RFC explicitly mentions. So, what are the cons: * removing the ZEND_EXIT opcode That immediately breaks any extension using it. A quick Github search lists 3.1 k occurrences[1]. * making exit a "proper" function It still can be called without parentheses, so I don't regard it as a proper function. It *might* even be confusing to readers ("oh, now I can call a function without arguments by omitting the parentheses – but why doesn't it work for other functions?"). And the PHP manual even states (emphasis mine): | exit is a *language* *construct* and it can be called without | parentheses if no status is passed. Weighting the pros and cons is left as an exercise to the reader. [1] <https://github.com/search?q=ZEND_EXIT&type=code> Thanks, Christoph