3 ms·
There is a lot to complain about in OS X, but as a programmer I am not sure I would have picked the points he did. Things like kqueue() support not being up to
by X-Istence 14y ago
There is a lot to complain about in OS X, but as a programmer I am not sure I would have picked the points he did.
Things like kqueue() support not being up to par with the other kqueue() providers, notably FreeBSD. kqueue() is considered so broken by libev for example that it just doesn't use it. The deprecation of OpenSSL (although I'm happy about that, but installing a secondary OpenSSL alongside the OS provided one can break things, so you have to install to a separate path and use include directives in your compile line, and or an alternate pkg-config path). The fact that a replacement libc++ now exists, but parts are still using the old stdlibc++ and the two can't be linked together if you use std::string for example, thus making it harder to use C++11 features. This is going to be an issue for a little bit, but hopefully that gets better. Outdated utilities or libraries make life more difficult, however a lot of that can be fixed with homebrew. Debugging USB issues is more difficult than it should be, this is especially an issue when attempting to figure out why a driver from a vendor crashes when you use certain USB to serial devices.
The new sandboxing requirement for apps while making everything a little more secure makes it more difficult to make certain types of apps ... slowly but surely new API's or permissions are being made available to fix those issues, or at least improve the pain points.
- paddy_m 14y agoDo you have some links with information about kqueue being broken? I know that the python integration doesn't work well. We started using polling on OS X instead of watchdog's kqueue driver. http://pypi.python.org/pypi/watchdog http://pypi.python.org/pypi/watchdog
- X-Istence 14y agohttp://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_kqueue_code_is_buggy http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_kq... kqueue()'s support of process monitoring on OS X doesn't allow for tracking of new processes that are created, and automatically attaching to them. There are also differences that make it more difficult to port various kqueue() features from one platform to another. I'm not sure how much of a difference that makes to you. The documentation on OS X is also lacking, for example EVFILT_USER is supported on Darwin/XNU but it is not documented in the man page for kqueue.