{"action":"created","issue":{"url":"https://api.github.com/repos/bbcmicrobit/micropython/issues/315","repository_url":"https://api.github.com/repos/bbcmicrobit/micropython","labels_url":"https://api.github.com/repos/bbcmicrobit/micropython/issues/315/labels{/name}","comments_url":"https://api.github.com/repos/bbcmicrobit/micropython/issues/315/comments","events_url":"https://api.github.com/repos/bbcmicrobit/micropython/issues/315/events","html_url":"https://github.com/bbcmicrobit/micropython/pull/315","id":162353892,"number":315,"title":"Display: Prohibit allocation in interrupts.","user":{"login":"markshannon","id":9448417,"avatar_url":"https://avatars.githubusercontent.com/u/9448417?v=3","gravatar_id":"","url":"https://api.github.com/users/markshannon","html_url":"https://github.com/markshannon","followers_url":"https://api.github.com/users/markshannon/followers","following_url":"https://api.github.com/users/markshannon/following{/other_user}","gists_url":"https://api.github.com/users/markshannon/gists{/gist_id}","starred_url":"https://api.github.com/users/markshannon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markshannon/subscriptions","organizations_url":"https://api.github.com/users/markshannon/orgs","repos_url":"https://api.github.com/users/markshannon/repos","events_url":"https://api.github.com/users/markshannon/events{/privacy}","received_events_url":"https://api.github.com/users/markshannon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-06-26T23:34:45Z","updated_at":"2016-07-10T05:49:33Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/bbcmicrobit/micropython/pulls/315","html_url":"https://github.com/bbcmicrobit/micropython/pull/315","diff_url":"https://github.com/bbcmicrobit/micropython/pull/315.diff","patch_url":"https://github.com/bbcmicrobit/micropython/pull/315.patch"},"body":"This prevents non-deterministic and impossible-to-debug errors caused by asynchronous GC.\r\n\r\nUnless we can make the GC fully re-entrant from interrupts, which is not feasible, then we must prohibit GC in interrupts. \r\nThis PR does that. (https://github.com/bbcmicrobit/micropython/pull/314 does the same for audio)"},"comment":{"url":"https://api.github.com/repos/bbcmicrobit/micropython/issues/comments/231572273","html_url":"https://github.com/bbcmicrobit/micropython/pull/315#issuecomment-231572273","issue_url":"https://api.github.com/repos/bbcmicrobit/micropython/issues/315","id":231572273,"user":{"login":"markshannon","id":9448417,"avatar_url":"https://avatars.githubusercontent.com/u/9448417?v=3","gravatar_id":"","url":"https://api.github.com/users/markshannon","html_url":"https://github.com/markshannon","followers_url":"https://api.github.com/users/markshannon/followers","following_url":"https://api.github.com/users/markshannon/following{/other_user}","gists_url":"https://api.github.com/users/markshannon/gists{/gist_id}","starred_url":"https://api.github.com/users/markshannon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markshannon/subscriptions","organizations_url":"https://api.github.com/users/markshannon/orgs","repos_url":"https://api.github.com/users/markshannon/repos","events_url":"https://api.github.com/users/markshannon/events{/privacy}","received_events_url":"https://api.github.com/users/markshannon/received_events","type":"User","site_admin":false},"created_at":"2016-07-10T05:49:33Z","updated_at":"2016-07-10T05:49:33Z","body":"I think it is OK to make a \"breaking\" change in this case, as allowing GC in interrupts was already broken.\r\nAllocating in an interrupt works most of the time, but when it doesn't it is next to impossible to debug.\r\nSoft interrupts might work, but there is still the problem of GC pauses causing glitches that are *very* hard to diagnose. \r\n\r\nBanning allocation might seem quite restrictive, but this only impacts sophisticated users who are using generators or custom iterators. If you pass a list or tuple of images, then this PR makes no difference."}}
{"actor":{"display_login":"markshannon"}}