{"action":"created","issue":{"url":"https://api.github.com/repos/mono/mono/issues/2753","repository_url":"https://api.github.com/repos/mono/mono","labels_url":"https://api.github.com/repos/mono/mono/issues/2753/labels{/name}","comments_url":"https://api.github.com/repos/mono/mono/issues/2753/comments","events_url":"https://api.github.com/repos/mono/mono/issues/2753/events","html_url":"https://github.com/mono/mono/pull/2753","id":140034274,"number":2753,"title":"Changes to \"checked build\" feature","user":{"login":"xmcclure","id":15091917,"avatar_url":"https://avatars.githubusercontent.com/u/15091917?v=3","gravatar_id":"","url":"https://api.github.com/users/xmcclure","html_url":"https://github.com/xmcclure","followers_url":"https://api.github.com/users/xmcclure/followers","following_url":"https://api.github.com/users/xmcclure/following{/other_user}","gists_url":"https://api.github.com/users/xmcclure/gists{/gist_id}","starred_url":"https://api.github.com/users/xmcclure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xmcclure/subscriptions","organizations_url":"https://api.github.com/users/xmcclure/orgs","repos_url":"https://api.github.com/users/xmcclure/repos","events_url":"https://api.github.com/users/xmcclure/events{/privacy}","received_events_url":"https://api.github.com/users/xmcclure/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-03-10T23:01:25Z","updated_at":"2016-03-17T00:16:05Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mono/mono/pulls/2753","html_url":"https://github.com/mono/mono/pull/2753","diff_url":"https://github.com/mono/mono/pull/2753.diff","patch_url":"https://github.com/mono/mono/pull/2753.patch"},"body":"Here are some changes to checked builds I made while trying to debug some coop gc problems. The changes made are:\r\n\r\n- Replace the checked build configure flags with a single --enable-checked-build= flag\r\n- Runtime environment variable required for checked build asserts to run\r\n- Report the thread transition history for more kinds of asserts\r\n- For the `mono_threads_reset_blocking` functions, add an assert that guarantees proper nesting\r\n\r\nIn addition to this, I have documented the checked build feature as implemented here, see my pull request for the website: https://github.com/mono/website/pull/187\r\n\r\nOverall my goals with this patch were\r\n\r\n- Make it easier to do rapid-fire testing with the checked builds (runtime switch, default-off)\r\n- Make the checked build implementation more internally consistent (more uniform names etc)\r\n\r\nNotice I do make the change that instead of checked build sub-features being disabled with a blacklist, you now must enable them with a whitelist. I think this is an improvement because it makes it easier to just casually keep a checked build around  (for one thing I would have the option to ship debug builds to users with the checked build modes included but dormant) but I could be talked out of it if this change turns out to be controversial. The only thing I feel strongly about is that if the configure flag is changed back to a blacklist the environment variable should switch to a blacklist also.\r\n\r\nIf we accept this change the CI bots will need to adopt the new configure flag and environment variable."},"comment":{"url":"https://api.github.com/repos/mono/mono/issues/comments/197619580","html_url":"https://github.com/mono/mono/pull/2753#issuecomment-197619580","issue_url":"https://api.github.com/repos/mono/mono/issues/2753","id":197619580,"user":{"login":"vargaz","id":186301,"avatar_url":"https://avatars.githubusercontent.com/u/186301?v=3","gravatar_id":"","url":"https://api.github.com/users/vargaz","html_url":"https://github.com/vargaz","followers_url":"https://api.github.com/users/vargaz/followers","following_url":"https://api.github.com/users/vargaz/following{/other_user}","gists_url":"https://api.github.com/users/vargaz/gists{/gist_id}","starred_url":"https://api.github.com/users/vargaz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vargaz/subscriptions","organizations_url":"https://api.github.com/users/vargaz/orgs","repos_url":"https://api.github.com/users/vargaz/repos","events_url":"https://api.github.com/users/vargaz/events{/privacy}","received_events_url":"https://api.github.com/users/vargaz/received_events","type":"User","site_admin":false},"created_at":"2016-03-17T00:16:05Z","updated_at":"2016-03-17T00:16:05Z","body":"The g_ prefix should be used for functions in eglib/.\r\n"}}