On Tuesday, 28 May 2024 at 07:53, Daikaras <webmas...@daikaras.lt> wrote:
> 
> I feel like the reasoning in this RFC is misguided. `exit` behavior is
> not consistent with functions because it is not a function. But it is
> consistent with constructs like `echo`. Or am I wrong? I'm all for
> stricter typing but not at a cost of reliability. `exit` IMO should
> always terminate script, no exceptions (no pun intended :)). Otherwise,
> it may have security implications in some codebases, as Saki pointed
> out. So I'd rather have it error fatally like for example `break` does
> when passed non-integers. And on the same note maybe syntax could be
> improved to not require parentheses when passing the code (so `exit 0;` would 
> be valid) since it seems to be the cause of the confusion.
> 
> Just my 2c.
> 
> p.s. In B/C table you should mention that passing Stringable objects
> will throw TypeError when `strict_types` are enabled.

This is not the cause of my confusion.
If you had read the RFC carefully, you would have seen that exit() already 
throws a TypeError that can be caught if you pass in a non-stringable object.
So the argument that it should always exit is invalid.

Moreover, in other programming languages exit() is a function, and I don't see 
a reason for having something be a language construct when there is no need for 
it.

Best regards,

Gina P. Banyard

Reply via email to