Operating system kernels did return multiple values from system calls, even the article says so:
>Using multiple CPU registers for system call return values was even used by Research Unix on the PDP-11, for certain system calls.
Or MS-DOS, which also set the carry flag to indicate errors, as was a common convention in assembly language. Very convenient, since a single conditional jump to return can pass it back up the call chain.
C and modern Unixoid systems are why we can't have nice things.
Operating system kernels did return multiple values from system calls, even the article says so:
>Using multiple CPU registers for system call return values was even used by Research Unix on the PDP-11, for certain system calls.
Or MS-DOS, which also set the carry flag to indicate errors, as was a common convention in assembly language. Very convenient, since a single conditional jump to return can pass it back up the call chain.
C and modern Unixoid systems are why we can't have nice things.