{"action":"opened","number":232,"pull_request":{"url":"https://api.github.com/repos/gap-system/gap/pulls/232","id":45506340,"html_url":"https://github.com/gap-system/gap/pull/232","diff_url":"https://github.com/gap-system/gap/pull/232.diff","patch_url":"https://github.com/gap-system/gap/pull/232.patch","issue_url":"https://api.github.com/repos/gap-system/gap/issues/232","number":232,"state":"open","locked":false,"title":"Backport TLS changes from HPC-GAP","user":{"login":"fingolfin","id":241512,"avatar_url":"https://avatars.githubusercontent.com/u/241512?v=3","gravatar_id":"","url":"https://api.github.com/users/fingolfin","html_url":"https://github.com/fingolfin","followers_url":"https://api.github.com/users/fingolfin/followers","following_url":"https://api.github.com/users/fingolfin/following{/other_user}","gists_url":"https://api.github.com/users/fingolfin/gists{/gist_id}","starred_url":"https://api.github.com/users/fingolfin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fingolfin/subscriptions","organizations_url":"https://api.github.com/users/fingolfin/orgs","repos_url":"https://api.github.com/users/fingolfin/repos","events_url":"https://api.github.com/users/fingolfin/events{/privacy}","received_events_url":"https://api.github.com/users/fingolfin/received_events","type":"User","site_admin":false},"body":"This commit series adds a no-op C macro `#define TLS(x) x`  to the GAP C kernel, and wraps access to most global variables with it. This reduces the diff beween the `master` and `hpcgap-`default branches, and is a step towards a \"soft\" merge of the two branches.\r\n\r\nBackground: As discussed on two previous GAP Days meetings, and again during the current GAP Days in Trondheim, we cannot maintain two major GAP branches. We also cannot just switch to HPC-GAP, because even in single-threaded mode it still suffers from regressions compared to \"classic\" GAP (e.g. it is slower). We also do not want to abandon HPC-GAP. To resolve this, we instead want to incrementally reduce the diffs between the two branches, and eventually have them converge to a single branch, which can be compiled either as \"classic\" GAP (with all HPC stuff disabled), or as a full HPC-GAP (and possible some intermediate version, too). \r\n\r\nWe plan to give a more detailed description of our proposal, with a concrete step-by-step plan, late on. But the basic idea was discussed and agreed upon on several meetings, so we are now proceeding with it.\r\n\r\nSome diff stats on the `src` dir to give an impression (given as changes from `hpcgap: Before this begun:\r\n```\r\n 120 files changed, 27449 insertions(+), 6885 deletions(-)\r\n```\r\nAfter the `hpcgap-default` changes made today:\r\n```\r\n 119 files changed, 24521 insertions(+), 4746 deletions(-)\r\n```\r\nWith the work in this PR:\r\n```\r\n 116 files changed, 22255 insertions(+), 2498 deletions(-)\r\n```\r\nMore changes are coming soon.","created_at":"2015-09-20T23:10:19Z","updated_at":"2015-09-20T23:10:19Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/gap-system/gap/pulls/232/commits","review_comments_url":"https://api.github.com/repos/gap-system/gap/pulls/232/comments","review_comment_url":"https://api.github.com/repos/gap-system/gap/pulls/comments{/number}","comments_url":"https://api.github.com/repos/gap-system/gap/issues/232/comments","statuses_url":"https://api.github.com/repos/gap-system/gap/statuses/3072ad6ae056d1e665e4a0c72afb36c0f7bc7e47","head":{"label":"fingolfin:mh/backports/tls","ref":"mh/backports/tls","sha":"3072ad6ae056d1e665e4a0c72afb36c0f7bc7e47","user":{"login":"fingolfin","id":241512,"avatar_url":"https://avatars.githubusercontent.com/u/241512?v=3","gravatar_id":"","url":"https://api.github.com/users/fingolfin","html_url":"https://github.com/fingolfin","followers_url":"https://api.github.com/users/fingolfin/followers","following_url":"https://api.github.com/users/fingolfin/following{/other_user}","gists_url":"https://api.github.com/users/fingolfin/gists{/gist_id}","starred_url":"https://api.github.com/users/fingolfin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fingolfin/subscriptions","organizations_url":"https://api.github.com/users/fingolfin/orgs","repos_url":"https://api.github.com/users/fingolfin/repos","events_url":"https://api.github.com/users/fingolfin/events{/privacy}","received_events_url":"https://api.github.com/users/fingolfin/received_events","type":"User","site_admin":false},"repo":{"id":31670364,"name":"gap","full_name":"fingolfin/gap","owner":{"login":"fingolfin","id":241512,"avatar_url":"https://avatars.githubusercontent.com/u/241512?v=3","gravatar_id":"","url":"https://api.github.com/users/fingolfin","html_url":"https://github.com/fingolfin","followers_url":"https://api.github.com/users/fingolfin/followers","following_url":"https://api.github.com/users/fingolfin/following{/other_user}","gists_url":"https://api.github.com/users/fingolfin/gists{/gist_id}","starred_url":"https://api.github.com/users/fingolfin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fingolfin/subscriptions","organizations_url":"https://api.github.com/users/fingolfin/orgs","repos_url":"https://api.github.com/users/fingolfin/repos","events_url":"https://api.github.com/users/fingolfin/events{/privacy}","received_events_url":"https://api.github.com/users/fingolfin/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/fingolfin/gap","description":"GAP - Groups, Algorithms, Programming - a System for Computational Discrete Algebra","fork":true,"url":"https://api.github.com/repos/fingolfin/gap","forks_url":"https://api.github.com/repos/fingolfin/gap/forks","keys_url":"https://api.github.com/repos/fingolfin/gap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fingolfin/gap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fingolfin/gap/teams","hooks_url":"https://api.github.com/repos/fingolfin/gap/hooks","issue_events_url":"https://api.github.com/repos/fingolfin/gap/issues/events{/number}","events_url":"https://api.github.com/repos/fingolfin/gap/events","assignees_url":"https://api.github.com/repos/fingolfin/gap/assignees{/user}","branches_url":"https://api.github.com/repos/fingolfin/gap/branches{/branch}","tags_url":"https://api.github.com/repos/fingolfin/gap/tags","blobs_url":"https://api.github.com/repos/fingolfin/gap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fingolfin/gap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fingolfin/gap/git/refs{/sha}","trees_url":"https://api.github.com/repos/fingolfin/gap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fingolfin/gap/statuses/{sha}","languages_url":"https://api.github.com/repos/fingolfin/gap/languages","stargazers_url":"https://api.github.com/repos/fingolfin/gap/stargazers","contributors_url":"https://api.github.com/repos/fingolfin/gap/contributors","subscribers_url":"https://api.github.com/repos/fingolfin/gap/subscribers","subscription_url":"https://api.github.com/repos/fingolfin/gap/subscription","commits_url":"https://api.github.com/repos/fingolfin/gap/commits{/sha}","git_commits_url":"https://api.github.com/repos/fingolfin/gap/git/commits{/sha}","comments_url":"https://api.github.com/repos/fingolfin/gap/comments{/number}","issue_comment_url":"https://api.github.com/repos/fingolfin/gap/issues/comments{/number}","contents_url":"https://api.github.com/repos/fingolfin/gap/contents/{+path}","compare_url":"https://api.github.com/repos/fingolfin/gap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fingolfin/gap/merges","archive_url":"https://api.github.com/repos/fingolfin/gap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fingolfin/gap/downloads","issues_url":"https://api.github.com/repos/fingolfin/gap/issues{/number}","pulls_url":"https://api.github.com/repos/fingolfin/gap/pulls{/number}","milestones_url":"https://api.github.com/repos/fingolfin/gap/milestones{/number}","notifications_url":"https://api.github.com/repos/fingolfin/gap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fingolfin/gap/labels{/name}","releases_url":"https://api.github.com/repos/fingolfin/gap/releases{/id}","created_at":"2015-03-04T17:35:23Z","updated_at":"2015-04-01T16:50:44Z","pushed_at":"2015-09-20T22:37:11Z","git_url":"git://github.com/fingolfin/gap.git","ssh_url":"git@github.com:fingolfin/gap.git","clone_url":"https://github.com/fingolfin/gap.git","svn_url":"https://github.com/fingolfin/gap","homepage":"http://www.gap-system.org","size":418118,"stargazers_count":0,"watchers_count":0,"language":"GAP","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":0,"default_branch":"master"}},"base":{"label":"gap-system:master","ref":"master","sha":"930dde4897ebd021cd283ff12e75a6bb9eea3f64","user":{"login":"gap-system","id":5344223,"avatar_url":"https://avatars.githubusercontent.com/u/5344223?v=3","gravatar_id":"","url":"https://api.github.com/users/gap-system","html_url":"https://github.com/gap-system","followers_url":"https://api.github.com/users/gap-system/followers","following_url":"https://api.github.com/users/gap-system/following{/other_user}","gists_url":"https://api.github.com/users/gap-system/gists{/gist_id}","starred_url":"https://api.github.com/users/gap-system/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gap-system/subscriptions","organizations_url":"https://api.github.com/users/gap-system/orgs","repos_url":"https://api.github.com/users/gap-system/repos","events_url":"https://api.github.com/users/gap-system/events{/privacy}","received_events_url":"https://api.github.com/users/gap-system/received_events","type":"Organization","site_admin":false},"repo":{"id":31270208,"name":"gap","full_name":"gap-system/gap","owner":{"login":"gap-system","id":5344223,"avatar_url":"https://avatars.githubusercontent.com/u/5344223?v=3","gravatar_id":"","url":"https://api.github.com/users/gap-system","html_url":"https://github.com/gap-system","followers_url":"https://api.github.com/users/gap-system/followers","following_url":"https://api.github.com/users/gap-system/following{/other_user}","gists_url":"https://api.github.com/users/gap-system/gists{/gist_id}","starred_url":"https://api.github.com/users/gap-system/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gap-system/subscriptions","organizations_url":"https://api.github.com/users/gap-system/orgs","repos_url":"https://api.github.com/users/gap-system/repos","events_url":"https://api.github.com/users/gap-system/events{/privacy}","received_events_url":"https://api.github.com/users/gap-system/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/gap-system/gap","description":"Main development repository for GAP - Groups, Algorithms, Programming, a System for Computational Discrete Algebra","fork":false,"url":"https://api.github.com/repos/gap-system/gap","forks_url":"https://api.github.com/repos/gap-system/gap/forks","keys_url":"https://api.github.com/repos/gap-system/gap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gap-system/gap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gap-system/gap/teams","hooks_url":"https://api.github.com/repos/gap-system/gap/hooks","issue_events_url":"https://api.github.com/repos/gap-system/gap/issues/events{/number}","events_url":"https://api.github.com/repos/gap-system/gap/events","assignees_url":"https://api.github.com/repos/gap-system/gap/assignees{/user}","branches_url":"https://api.github.com/repos/gap-system/gap/branches{/branch}","tags_url":"https://api.github.com/repos/gap-system/gap/tags","blobs_url":"https://api.github.com/repos/gap-system/gap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gap-system/gap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gap-system/gap/git/refs{/sha}","trees_url":"https://api.github.com/repos/gap-system/gap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gap-system/gap/statuses/{sha}","languages_url":"https://api.github.com/repos/gap-system/gap/languages","stargazers_url":"https://api.github.com/repos/gap-system/gap/stargazers","contributors_url":"https://api.github.com/repos/gap-system/gap/contributors","subscribers_url":"https://api.github.com/repos/gap-system/gap/subscribers","subscription_url":"https://api.github.com/repos/gap-system/gap/subscription","commits_url":"https://api.github.com/repos/gap-system/gap/commits{/sha}","git_commits_url":"https://api.github.com/repos/gap-system/gap/git/commits{/sha}","comments_url":"https://api.github.com/repos/gap-system/gap/comments{/number}","issue_comment_url":"https://api.github.com/repos/gap-system/gap/issues/comments{/number}","contents_url":"https://api.github.com/repos/gap-system/gap/contents/{+path}","compare_url":"https://api.github.com/repos/gap-system/gap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gap-system/gap/merges","archive_url":"https://api.github.com/repos/gap-system/gap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gap-system/gap/downloads","issues_url":"https://api.github.com/repos/gap-system/gap/issues{/number}","pulls_url":"https://api.github.com/repos/gap-system/gap/pulls{/number}","milestones_url":"https://api.github.com/repos/gap-system/gap/milestones{/number}","notifications_url":"https://api.github.com/repos/gap-system/gap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gap-system/gap/labels{/name}","releases_url":"https://api.github.com/repos/gap-system/gap/releases{/id}","created_at":"2015-02-24T16:47:50Z","updated_at":"2015-09-12T16:28:03Z","pushed_at":"2015-09-20T23:10:19Z","git_url":"git://github.com/gap-system/gap.git","ssh_url":"git@github.com:gap-system/gap.git","clone_url":"https://github.com/gap-system/gap.git","svn_url":"https://github.com/gap-system/gap","homepage":"http://www.gap-system.org","size":422416,"stargazers_count":39,"watchers_count":39,"language":"GAP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":23,"mirror_url":null,"open_issues_count":57,"forks":23,"open_issues":57,"watchers":39,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/gap-system/gap/pulls/232"},"html":{"href":"https://github.com/gap-system/gap/pull/232"},"issue":{"href":"https://api.github.com/repos/gap-system/gap/issues/232"},"comments":{"href":"https://api.github.com/repos/gap-system/gap/issues/232/comments"},"review_comments":{"href":"https://api.github.com/repos/gap-system/gap/pulls/232/comments"},"review_comment":{"href":"https://api.github.com/repos/gap-system/gap/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/gap-system/gap/pulls/232/commits"},"statuses":{"href":"https://api.github.com/repos/gap-system/gap/statuses/3072ad6ae056d1e665e4a0c72afb36c0f7bc7e47"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":7,"additions":2394,"deletions":2376,"changed_files":38}}