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