{"action":"created","issue":{"url":"https://api.github.com/repos/mono/mono/issues/2314","labels_url":"https://api.github.com/repos/mono/mono/issues/2314/labels{/name}","comments_url":"https://api.github.com/repos/mono/mono/issues/2314/comments","events_url":"https://api.github.com/repos/mono/mono/issues/2314/events","html_url":"https://github.com/mono/mono/pull/2314","id":121361954,"number":2314,"title":"[DO NOT MERGE] all the local handles prototypes together.","user":{"login":"lambdageek","id":480437,"avatar_url":"https://avatars.githubusercontent.com/u/480437?v=3","gravatar_id":"","url":"https://api.github.com/users/lambdageek","html_url":"https://github.com/lambdageek","followers_url":"https://api.github.com/users/lambdageek/followers","following_url":"https://api.github.com/users/lambdageek/following{/other_user}","gists_url":"https://api.github.com/users/lambdageek/gists{/gist_id}","starred_url":"https://api.github.com/users/lambdageek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lambdageek/subscriptions","organizations_url":"https://api.github.com/users/lambdageek/orgs","repos_url":"https://api.github.com/users/lambdageek/repos","events_url":"https://api.github.com/users/lambdageek/events{/privacy}","received_events_url":"https://api.github.com/users/lambdageek/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mono/mono/labels/cla-signed","name":"cla-signed","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-12-09T23:04:58Z","updated_at":"2015-12-11T18:55:36Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mono/mono/pulls/2314","html_url":"https://github.com/mono/mono/pull/2314","diff_url":"https://github.com/mono/mono/pull/2314.diff","patch_url":"https://github.com/mono/mono/pull/2314.patch"},"body":"This includes @ludovic-henry `coop-handle` branch and @kumpera `local-handles`.  Also my `MONO_ICALL_DEFINE` mega-macro.  I also fixed up the checked build asserts to give a slightly better error message (file and line number).\r\n\r\nThis compiles and passes `make -C mcs/class/corlib check` on a checked coop gc build on osx.\r\n\r\nWe should get rid of junk, put the whole thing behind some `#define` and try to use it for real."},"comment":{"url":"https://api.github.com/repos/mono/mono/issues/comments/164017108","html_url":"https://github.com/mono/mono/pull/2314#issuecomment-164017108","issue_url":"https://api.github.com/repos/mono/mono/issues/2314","id":164017108,"user":{"login":"ludovic-henry","id":660779,"avatar_url":"https://avatars.githubusercontent.com/u/660779?v=3","gravatar_id":"","url":"https://api.github.com/users/ludovic-henry","html_url":"https://github.com/ludovic-henry","followers_url":"https://api.github.com/users/ludovic-henry/followers","following_url":"https://api.github.com/users/ludovic-henry/following{/other_user}","gists_url":"https://api.github.com/users/ludovic-henry/gists{/gist_id}","starred_url":"https://api.github.com/users/ludovic-henry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ludovic-henry/subscriptions","organizations_url":"https://api.github.com/users/ludovic-henry/orgs","repos_url":"https://api.github.com/users/ludovic-henry/repos","events_url":"https://api.github.com/users/ludovic-henry/events{/privacy}","received_events_url":"https://api.github.com/users/ludovic-henry/received_events","type":"User","site_admin":false},"created_at":"2015-12-11T18:55:36Z","updated_at":"2015-12-11T18:55:36Z","body":"For the handle as `MonoObjectHandle this_obj = { this_obj_raw };`, we would still need an elevate equivalent, as we would need to register the address on the stack of the handle, in the handle arena equivalent. We also can't do an assignment of the local handle value, as we would need to register the newly assigned variable in the arena too ( pretty much equivalent to a copy constructor in C++ ).\r\n\r\nOtherwise your plan LGTM."}}