{"action":"created","comment":{"url":"https://api.github.com/repos/dlang/phobos/pulls/comments/68836398","id":68836398,"diff_hunk":"@@ -0,0 +1,35 @@\n+// Written in the D programming language.\n+\n+/++\n+    The purpose of this module is to perform static construction away from the\n+    normal modules to eliminate cyclic construction errors.\n+\n+    Copyright: Copyright 2011 - 2016\n+    License:   $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0).\n+    Authors:   Jonathan M Davis, Kato Shoichi, Steven Schveighoffer\n+    Source:    $(PHOBOSSRC std/internal/_phobosinit.d)\n+  +/\n+module std.internal.phobosinit;\n+\n+version(OSX)\n+{\n+    extern(C) void std_process_shared_static_this();\n+\n+    shared static this()\n+    {\n+        std_process_shared_static_this();\n+    }\n+}\n+\n+shared static this()\n+{\n+    import std.encoding;","path":"std/internal/phobosinit.d","position":26,"original_position":26,"commit_id":"df168487fc290dbe56119dceab6a2022a77fb52f","original_commit_id":"df168487fc290dbe56119dceab6a2022a77fb52f","user":{"login":"schveiguy","id":580778,"avatar_url":"https://avatars.githubusercontent.com/u/580778?v=3","gravatar_id":"","url":"https://api.github.com/users/schveiguy","html_url":"https://github.com/schveiguy","followers_url":"https://api.github.com/users/schveiguy/followers","following_url":"https://api.github.com/users/schveiguy/following{/other_user}","gists_url":"https://api.github.com/users/schveiguy/gists{/gist_id}","starred_url":"https://api.github.com/users/schveiguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schveiguy/subscriptions","organizations_url":"https://api.github.com/users/schveiguy/orgs","repos_url":"https://api.github.com/users/schveiguy/repos","events_url":"https://api.github.com/users/schveiguy/events{/privacy}","received_events_url":"https://api.github.com/users/schveiguy/received_events","type":"User","site_admin":false},"body":"I have to say, the way this is done in `std.encoding` is horrific. -- You register the encoding class name *by string*, and then it uses the runtime to look up the class info via search of that string. THEN it instantiates it, and checks all the encodings that are supported (and then lets the GC collect it).\r\n\r\nThere MUST be a better way to do this...","created_at":"2016-06-28T20:27:57Z","updated_at":"2016-06-28T20:27:57Z","html_url":"https://github.com/dlang/phobos/pull/4493#discussion_r68836398","pull_request_url":"https://api.github.com/repos/dlang/phobos/pulls/4493","_links":{"self":{"href":"https://api.github.com/repos/dlang/phobos/pulls/comments/68836398"},"html":{"href":"https://github.com/dlang/phobos/pull/4493#discussion_r68836398"},"pull_request":{"href":"https://api.github.com/repos/dlang/phobos/pulls/4493"}}},"pull_request":{"url":"https://api.github.com/repos/dlang/phobos/pulls/4493","id":75532029,"html_url":"https://github.com/dlang/phobos/pull/4493","diff_url":"https://github.com/dlang/phobos/pull/4493.diff","patch_url":"https://github.com/dlang/phobos/pull/4493.patch","issue_url":"https://api.github.com/repos/dlang/phobos/issues/4493","number":4493,"state":"open","locked":false,"title":"Fix cycles in Phobos","user":{"login":"schveiguy","id":580778,"avatar_url":"https://avatars.githubusercontent.com/u/580778?v=3","gravatar_id":"","url":"https://api.github.com/users/schveiguy","html_url":"https://github.com/schveiguy","followers_url":"https://api.github.com/users/schveiguy/followers","following_url":"https://api.github.com/users/schveiguy/following{/other_user}","gists_url":"https://api.github.com/users/schveiguy/gists{/gist_id}","starred_url":"https://api.github.com/users/schveiguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schveiguy/subscriptions","organizations_url":"https://api.github.com/users/schveiguy/orgs","repos_url":"https://api.github.com/users/schveiguy/repos","events_url":"https://api.github.com/users/schveiguy/events{/privacy}","received_events_url":"https://api.github.com/users/schveiguy/received_events","type":"User","site_admin":false},"body":"Found while debugging #4467, the cycle detection code reverted to old broken behavior. See https://issues.dlang.org/show_bug.cgi?id=16211.\r\n\r\nThis is needed to pull the cycle detection code fix (insert PR link here when it's ready).\r\n\r\nThe `std.experimental.allocator` offending static ctors can just be removed, because the referenced OSX issue has been fixed for a long time.\r\n\r\nThe `std.encoding` cycle is a little more convoluted -- I overtook `std.internal.processinit` and renamed it to `phobosinit`. I figured we can put general hacks like this in there. It would be nice to have a better way to fix this...","created_at":"2016-06-28T19:03:02Z","updated_at":"2016-06-28T20:27:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"718ace9e1f3be2859a4a289e77222ae5933739f1","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/dlang/phobos/pulls/4493/commits","review_comments_url":"https://api.github.com/repos/dlang/phobos/pulls/4493/comments","review_comment_url":"https://api.github.com/repos/dlang/phobos/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dlang/phobos/issues/4493/comments","statuses_url":"https://api.github.com/repos/dlang/phobos/statuses/df168487fc290dbe56119dceab6a2022a77fb52f","head":{"label":"schveiguy:fixcycles2","ref":"fixcycles2","sha":"df168487fc290dbe56119dceab6a2022a77fb52f","user":{"login":"schveiguy","id":580778,"avatar_url":"https://avatars.githubusercontent.com/u/580778?v=3","gravatar_id":"","url":"https://api.github.com/users/schveiguy","html_url":"https://github.com/schveiguy","followers_url":"https://api.github.com/users/schveiguy/followers","following_url":"https://api.github.com/users/schveiguy/following{/other_user}","gists_url":"https://api.github.com/users/schveiguy/gists{/gist_id}","starred_url":"https://api.github.com/users/schveiguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schveiguy/subscriptions","organizations_url":"https://api.github.com/users/schveiguy/orgs","repos_url":"https://api.github.com/users/schveiguy/repos","events_url":"https://api.github.com/users/schveiguy/events{/privacy}","received_events_url":"https://api.github.com/users/schveiguy/received_events","type":"User","site_admin":false},"repo":{"id":1356645,"name":"phobos","full_name":"schveiguy/phobos","owner":{"login":"schveiguy","id":580778,"avatar_url":"https://avatars.githubusercontent.com/u/580778?v=3","gravatar_id":"","url":"https://api.github.com/users/schveiguy","html_url":"https://github.com/schveiguy","followers_url":"https://api.github.com/users/schveiguy/followers","following_url":"https://api.github.com/users/schveiguy/following{/other_user}","gists_url":"https://api.github.com/users/schveiguy/gists{/gist_id}","starred_url":"https://api.github.com/users/schveiguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schveiguy/subscriptions","organizations_url":"https://api.github.com/users/schveiguy/orgs","repos_url":"https://api.github.com/users/schveiguy/repos","events_url":"https://api.github.com/users/schveiguy/events{/privacy}","received_events_url":"https://api.github.com/users/schveiguy/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/schveiguy/phobos","description":"Runtime library for the D programming language","fork":true,"url":"https://api.github.com/repos/schveiguy/phobos","forks_url":"https://api.github.com/repos/schveiguy/phobos/forks","keys_url":"https://api.github.com/repos/schveiguy/phobos/keys{/key_id}","collaborators_url":"https://api.github.com/repos/schveiguy/phobos/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/schveiguy/phobos/teams","hooks_url":"https://api.github.com/repos/schveiguy/phobos/hooks","issue_events_url":"https://api.github.com/repos/schveiguy/phobos/issues/events{/number}","events_url":"https://api.github.com/repos/schveiguy/phobos/events","assignees_url":"https://api.github.com/repos/schveiguy/phobos/assignees{/user}","branches_url":"https://api.github.com/repos/schveiguy/phobos/branches{/branch}","tags_url":"https://api.github.com/repos/schveiguy/phobos/tags","blobs_url":"https://api.github.com/repos/schveiguy/phobos/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/schveiguy/phobos/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/schveiguy/phobos/git/refs{/sha}","trees_url":"https://api.github.com/repos/schveiguy/phobos/git/trees{/sha}","statuses_url":"https://api.github.com/repos/schveiguy/phobos/statuses/{sha}","languages_url":"https://api.github.com/repos/schveiguy/phobos/languages","stargazers_url":"https://api.github.com/repos/schveiguy/phobos/stargazers","contributors_url":"https://api.github.com/repos/schveiguy/phobos/contributors","subscribers_url":"https://api.github.com/repos/schveiguy/phobos/subscribers","subscription_url":"https://api.github.com/repos/schveiguy/phobos/subscription","commits_url":"https://api.github.com/repos/schveiguy/phobos/commits{/sha}","git_commits_url":"https://api.github.com/repos/schveiguy/phobos/git/commits{/sha}","comments_url":"https://api.github.com/repos/schveiguy/phobos/comments{/number}","issue_comment_url":"https://api.github.com/repos/schveiguy/phobos/issues/comments{/number}","contents_url":"https://api.github.com/repos/schveiguy/phobos/contents/{+path}","compare_url":"https://api.github.com/repos/schveiguy/phobos/compare/{base}...{head}","merges_url":"https://api.github.com/repos/schveiguy/phobos/merges","archive_url":"https://api.github.com/repos/schveiguy/phobos/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/schveiguy/phobos/downloads","issues_url":"https://api.github.com/repos/schveiguy/phobos/issues{/number}","pulls_url":"https://api.github.com/repos/schveiguy/phobos/pulls{/number}","milestones_url":"https://api.github.com/repos/schveiguy/phobos/milestones{/number}","notifications_url":"https://api.github.com/repos/schveiguy/phobos/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/schveiguy/phobos/labels{/name}","releases_url":"https://api.github.com/repos/schveiguy/phobos/releases{/id}","deployments_url":"https://api.github.com/repos/schveiguy/phobos/deployments","created_at":"2011-02-11T21:04:17Z","updated_at":"2016-03-30T07:28:55Z","pushed_at":"2016-06-28T19:07:41Z","git_url":"git://github.com/schveiguy/phobos.git","ssh_url":"git@github.com:schveiguy/phobos.git","clone_url":"https://github.com/schveiguy/phobos.git","svn_url":"https://github.com/schveiguy/phobos","homepage":"d-programming-language.org","size":51478,"stargazers_count":9,"watchers_count":9,"language":"D","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":9,"default_branch":"master"}},"base":{"label":"dlang:master","ref":"master","sha":"1a740efa79893be36ea5e93330385145134e7e96","user":{"login":"dlang","id":565913,"avatar_url":"https://avatars.githubusercontent.com/u/565913?v=3","gravatar_id":"","url":"https://api.github.com/users/dlang","html_url":"https://github.com/dlang","followers_url":"https://api.github.com/users/dlang/followers","following_url":"https://api.github.com/users/dlang/following{/other_user}","gists_url":"https://api.github.com/users/dlang/gists{/gist_id}","starred_url":"https://api.github.com/users/dlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dlang/subscriptions","organizations_url":"https://api.github.com/users/dlang/orgs","repos_url":"https://api.github.com/users/dlang/repos","events_url":"https://api.github.com/users/dlang/events{/privacy}","received_events_url":"https://api.github.com/users/dlang/received_events","type":"Organization","site_admin":false},"repo":{"id":1257084,"name":"phobos","full_name":"dlang/phobos","owner":{"login":"dlang","id":565913,"avatar_url":"https://avatars.githubusercontent.com/u/565913?v=3","gravatar_id":"","url":"https://api.github.com/users/dlang","html_url":"https://github.com/dlang","followers_url":"https://api.github.com/users/dlang/followers","following_url":"https://api.github.com/users/dlang/following{/other_user}","gists_url":"https://api.github.com/users/dlang/gists{/gist_id}","starred_url":"https://api.github.com/users/dlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dlang/subscriptions","organizations_url":"https://api.github.com/users/dlang/orgs","repos_url":"https://api.github.com/users/dlang/repos","events_url":"https://api.github.com/users/dlang/events{/privacy}","received_events_url":"https://api.github.com/users/dlang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dlang/phobos","description":"The standard library of the D programming language","fork":false,"url":"https://api.github.com/repos/dlang/phobos","forks_url":"https://api.github.com/repos/dlang/phobos/forks","keys_url":"https://api.github.com/repos/dlang/phobos/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dlang/phobos/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dlang/phobos/teams","hooks_url":"https://api.github.com/repos/dlang/phobos/hooks","issue_events_url":"https://api.github.com/repos/dlang/phobos/issues/events{/number}","events_url":"https://api.github.com/repos/dlang/phobos/events","assignees_url":"https://api.github.com/repos/dlang/phobos/assignees{/user}","branches_url":"https://api.github.com/repos/dlang/phobos/branches{/branch}","tags_url":"https://api.github.com/repos/dlang/phobos/tags","blobs_url":"https://api.github.com/repos/dlang/phobos/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dlang/phobos/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dlang/phobos/git/refs{/sha}","trees_url":"https://api.github.com/repos/dlang/phobos/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dlang/phobos/statuses/{sha}","languages_url":"https://api.github.com/repos/dlang/phobos/languages","stargazers_url":"https://api.github.com/repos/dlang/phobos/stargazers","contributors_url":"https://api.github.com/repos/dlang/phobos/contributors","subscribers_url":"https://api.github.com/repos/dlang/phobos/subscribers","subscription_url":"https://api.github.com/repos/dlang/phobos/subscription","commits_url":"https://api.github.com/repos/dlang/phobos/commits{/sha}","git_commits_url":"https://api.github.com/repos/dlang/phobos/git/commits{/sha}","comments_url":"https://api.github.com/repos/dlang/phobos/comments{/number}","issue_comment_url":"https://api.github.com/repos/dlang/phobos/issues/comments{/number}","contents_url":"https://api.github.com/repos/dlang/phobos/contents/{+path}","compare_url":"https://api.github.com/repos/dlang/phobos/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dlang/phobos/merges","archive_url":"https://api.github.com/repos/dlang/phobos/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dlang/phobos/downloads","issues_url":"https://api.github.com/repos/dlang/phobos/issues{/number}","pulls_url":"https://api.github.com/repos/dlang/phobos/pulls{/number}","milestones_url":"https://api.github.com/repos/dlang/phobos/milestones{/number}","notifications_url":"https://api.github.com/repos/dlang/phobos/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dlang/phobos/labels{/name}","releases_url":"https://api.github.com/repos/dlang/phobos/releases{/id}","deployments_url":"https://api.github.com/repos/dlang/phobos/deployments","created_at":"2011-01-15T07:00:06Z","updated_at":"2016-06-28T19:29:26Z","pushed_at":"2016-06-28T19:03:03Z","git_url":"git://github.com/dlang/phobos.git","ssh_url":"git@github.com:dlang/phobos.git","clone_url":"https://github.com/dlang/phobos.git","svn_url":"https://github.com/dlang/phobos","homepage":"dlang.org/phobos","size":80692,"stargazers_count":729,"watchers_count":729,"language":"D","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":495,"mirror_url":null,"open_issues_count":100,"forks":495,"open_issues":100,"watchers":729,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dlang/phobos/pulls/4493"},"html":{"href":"https://github.com/dlang/phobos/pull/4493"},"issue":{"href":"https://api.github.com/repos/dlang/phobos/issues/4493"},"comments":{"href":"https://api.github.com/repos/dlang/phobos/issues/4493/comments"},"review_comments":{"href":"https://api.github.com/repos/dlang/phobos/pulls/4493/comments"},"review_comment":{"href":"https://api.github.com/repos/dlang/phobos/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dlang/phobos/pulls/4493/commits"},"statuses":{"href":"https://api.github.com/repos/dlang/phobos/statuses/df168487fc290dbe56119dceab6a2022a77fb52f"}}}}
{"actor":{"display_login":"schveiguy"}}