Hacker News new | ask | show | jobs
by bhawks 820 days ago
This is not an API. It's the handling of writes to memory the process has protected. In the past this would generate a signal the process could handle and recover from. Now it generates a sigkill which is uncatchable / unrecoverable from.

These behaviours have been historically well documented.

1 comments

All system idiosyncrasies are APIs in the long run ;)
The change of a SIGSEGV to a SIGKILL, seriously?
And, why not? macOS is Apple’s IP and they have all rights to do with it as they want. Buy the way, Chrome/Node.js JavaScript engine uses JIT compilation too. Are they affected?
This breaks POSIX compatibility, which is basically saying FU to how a lot of developers expect to interact with an operating system for decades now.
It is not obvious to me that this breaks POSIX compatibility. The kernel may choose to signal a process with SIGSEGV on a memory protection violation but I can't find anything that suggests this is required.

Last I checked, macOS formally maintains POSIX certification. Linux is not POSIX compliant, so I wouldn't use Linux as the measure of what is correct behavior under POSIX.

POSIX.1-2017 specification. Section titled "Memory Protection"

https://pubs.opengroup.org/onlinepubs/9699919799/functions/V...

No. MacOS is UNIX Certified. This is a bug in MacOS. Breaks POSIX compliance.
macOS breaks POSIX compliance at many levels. It’s Unix only on paper, lol.
It's Apple saying "What part of 'you cannot write to this page of memory don't you understand?"