On Monday, 5 August 2024 at 18:30, Christoph M. Becker <cmbecke...@gmx.de> 
wrote:

> On 05.08.2024 at 18:52, Tim Düsterhus wrote:
> 
> > On 8/5/24 14:52, Christoph M. Becker wrote:
> > 
> > > Hmm, so far I only had skimmed the RFC and the related discussions, but
> > > now I checked out the suggested implementation[1]. Then I tried to
> > > build with PECL/uopz, and of course that failed because ZEND_EXIT is no
> > > longer there. Okay, quickly drop that usage; build succeeds. Then I ran
> > > 
> > > <?php
> > > uopz_set_return("exit", function () {echo "hello";}, true);
> > > exit;
> > > ?>
> > > 
> > > And got
> > > 
> > > hello
> > > 
> > > Previously, no output was echoed. While that seems to be fixable in
> > 
> > Frankly from a userland developer PoV this looks entirely correct: If I
> > override the `exit()` function, then I expect the `exit()` function to
> > be overridden.
> 
> 
> I should have clarified, that "fixing" means to restore the expected
> behavior of uopz, namely that accidential attempts to override exit with
> `uopz_set_return()` were silently ignored, but unless `uopz.exit=1` is
> set, or `uopz_allow_exit(true)` is called, exit is ignored. Especially
> the latter may be relied upon by tests for legacy code.
> 
> Christoph

This sounds like a uopz extension issue that is easily fixed.
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.


Best regards,

Gina P. Banyard

Reply via email to