On Wed, Dec 24, 2014 at 4:27 PM, Johannes Schlüter
<johan...@schlueters.de> wrote:
> On Wed, 2014-12-24 at 11:13 -0700, Levi Morrison wrote:
>
>> I'm asking for specific things. The reason is that some API's do a
>> non-zero error code; the fact that they are negative is a detail that
>> we should not need to care about.
>
> My guess is that positive values more often might have a meaning ("5
> items changed", "address 0x1234") whereas negative values less often
> have a meaning. Also passing -1 as parameter is more often invalid. Thus
> passing -1 is making debug output look more suspicious.
>
>         (while there are  cases where -1 is valid, see recent famous pid
>         = fork(); /* ... */ kill(pid, SIGKILL); issue)

I don't think this is the same use case as SUCCESS and FAILURE. Many
functions have an out parameter which is only valid when the returned
value is SUCCESS. This is not the same thing as an API which returns
an integer and just happen to embed error state in the negative range.
Notably, it doesn't make sense to do `strpos() == SUCCESS` to check
success; these are different cases. My question is specifically
directed at the ones that use SUCCESS and FAILURE: which ones require
FAILURE to be negative instead of the normal UNIX-ism of non-zero?

For the record I am in favor of an enum such as `zend_status` or some
other name which indicates whether an operation succeeded or not for
the reasons already cited in this thread. I just don't see why FAILURE
needs to be negative and want to know why this is the case.

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to