{"action":"created","issue":{"url":"https://api.github.com/repos/minoca/os/issues/88","repository_url":"https://api.github.com/repos/minoca/os","labels_url":"https://api.github.com/repos/minoca/os/issues/88/labels{/name}","comments_url":"https://api.github.com/repos/minoca/os/issues/88/comments","events_url":"https://api.github.com/repos/minoca/os/issues/88/events","html_url":"https://github.com/minoca/os/issues/88","id":195638363,"number":88,"title":"/usr/include/sched.h  POSIX issue","user":{"login":"ryniker","id":2126136,"avatar_url":"https://avatars.githubusercontent.com/u/2126136?v=3","gravatar_id":"","url":"https://api.github.com/users/ryniker","html_url":"https://github.com/ryniker","followers_url":"https://api.github.com/users/ryniker/followers","following_url":"https://api.github.com/users/ryniker/following{/other_user}","gists_url":"https://api.github.com/users/ryniker/gists{/gist_id}","starred_url":"https://api.github.com/users/ryniker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryniker/subscriptions","organizations_url":"https://api.github.com/users/ryniker/orgs","repos_url":"https://api.github.com/users/ryniker/repos","events_url":"https://api.github.com/users/ryniker/events{/privacy}","received_events_url":"https://api.github.com/users/ryniker/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-12-14T20:32:57Z","updated_at":"2016-12-16T02:29:53Z","closed_at":null,"body":"POSIX specifies scheduling policies SCHED_FIFO, SCHED_RR, SCHED_SPORADIC, and  SCHED_OTHER that are optional.  What does this mean?  Python code in Modules/posixmodule.c uses an #ifdef that tests whether the sched.h header file exists; if it does, then the constants listed above are assumed to be defined.  This fails in Minoka because its sched.h does not define them.\r\n\r\nI am not a POSIX authority, but suggest these constants should be defined in sched.h.  The optional part is implementation of the various scheduling policies.  If you have only one scheduling policy, then that is used regardless of what value is provided.  If there is more than one policy, the implementation may map the defined values to available policies however it deems best.\r\n\r\nThis is not perfect, of course.  It is possible to imagine an application that depends on FIFO thread scheduling for correct behavior, but this seems terribly fragile (just wrong, in my opinion) given the prevalence of multi-processor, multi-thread hardware.\r\n\r\nIf Minoca defines the policy symbols, this may alleviate a need to patch many programs that use POSIX threads."},"comment":{"url":"https://api.github.com/repos/minoca/os/issues/comments/267502194","html_url":"https://github.com/minoca/os/issues/88#issuecomment-267502194","issue_url":"https://api.github.com/repos/minoca/os/issues/88","id":267502194,"user":{"login":"evangreen","id":709517,"avatar_url":"https://avatars.githubusercontent.com/u/709517?v=3","gravatar_id":"","url":"https://api.github.com/users/evangreen","html_url":"https://github.com/evangreen","followers_url":"https://api.github.com/users/evangreen/followers","following_url":"https://api.github.com/users/evangreen/following{/other_user}","gists_url":"https://api.github.com/users/evangreen/gists{/gist_id}","starred_url":"https://api.github.com/users/evangreen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evangreen/subscriptions","organizations_url":"https://api.github.com/users/evangreen/orgs","repos_url":"https://api.github.com/users/evangreen/repos","events_url":"https://api.github.com/users/evangreen/events{/privacy}","received_events_url":"https://api.github.com/users/evangreen/received_events","type":"User","site_admin":false},"created_at":"2016-12-16T02:29:53Z","updated_at":"2016-12-16T02:29:53Z","body":"Hi Richard,\r\nI decided to try and build Python-3.5.2. Winding my way through the issues you pointed out, plus a couple more wcs* issues (pushed to os now) I was able to get it up and building. See change [78fa378](https://gitlab.com/minoca/third-party/commit/78fa3aaff8a4ca80772d9b8dceb936e0f60bf21b) in third-party.\r\n\r\nI know you've found basically every counterexample to this, but we really do try to avoid adding libc functions and defines unless we've also implemented them. So I decided to go with adding the ifdefs in posixmodule.c myself. I notice they actually have a [bug](http://bugs.python.org/issue27656) to the same effect and fixed it in a later [revision](https://github.com/python/cpython/commit/6482ceb24459e3fc5d4da96d6e3a2797e52723a6). So at least for now Python seems more like an outlier wrt these defines rather than an indicator of constant future pain. Hopefully someday we can actually implement these scheduler options.\r\n\r\nLet me know if with these changes you're able to get Python 3.5 up and running.\r\n\r\nps- I received your USB key! Committed change b0b10af60f768a5384bb3787b8e7c5974c3343ac to get it enumerating properly in USB mass storage. I know you said not to, but I'll try to get it back to you. It may be after the holidays though depending on if the weather continues to be too foul for me to ride my bike."}}
{"actor":{"display_login":"evangreen"}}