{"action":"created","comment":{"url":"https://api.github.com/repos/gap-system/gap/pulls/comments/232492395","pull_request_review_id":173702648,"id":232492395,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMjQ5MjM5NQ==","diff_hunk":"@@ -42,46 +68,135 @@ Obj GAP_ValueGlobalVariable(const char * name)\n     }\n }\n \n-//\n-// Evaluate a string of GAP commands\n-//\n-// To see an example of how to use this function\n-// see tst/testlibgap/basic.c\n-//\n-Obj GAP_EvalString(const char * cmd)\n+\n+////\n+//// arithmetic\n+////\n+\n+int GAP_EQ(Obj a, Obj b)\n {\n-    Obj instream;\n-    Obj res;\n-    Obj viewObjFunc, streamFunc;\n+    return EQ(a, b);\n+}\n \n-    streamFunc = GAP_ValueGlobalVariable(\"InputTextString\");\n-    viewObjFunc = GAP_ValueGlobalVariable(\"ViewObj\");\n+int GAP_LT(Obj a, Obj b)\n+{\n+    return LT(a, b);\n+}\n \n-    instream = DoOperation1Args(streamFunc, MakeString(cmd));\n-    res = READ_ALL_COMMANDS(instream, False, True, viewObjFunc);\n-    return res;\n+int GAP_IN(Obj a, Obj b)\n+{\n+    return IN(a, b);\n+}\n+\n+Obj GAP_SUM(Obj a, Obj b)\n+{\n+    return SUM(a, b);\n+}\n+\n+Obj GAP_DIFF(Obj a, Obj b)\n+{\n+    return DIFF(a, b);\n+}\n+\n+Obj GAP_PROD(Obj a, Obj b)\n+{\n+    return PROD(a, b);\n+}\n+\n+Obj GAP_QUO(Obj a, Obj b)\n+{\n+    return QUO(a, b);\n+}\n+\n+Obj GAP_LQUO(Obj a, Obj b)\n+{\n+    return LQUO(a, b);\n+}\n+\n+Obj GAP_POW(Obj a, Obj b)\n+{\n+    return POW(a, b);\n+}\n+\n+Obj GAP_COMM(Obj a, Obj b)\n+{\n+    return COMM(a, b);\n+}\n+\n+Obj GAP_MOD(Obj a, Obj b)\n+{\n+    return MOD(a, b);\n+}\n+\n+\n+////\n+//// booleans\n+////\n+\n+Obj GAP_True;\n+Obj GAP_False;\n+Obj GAP_Fail;\n+\n+\n+////\n+//// lists\n+////\n+\n+int GAP_IsList(Obj obj)\n+{\n+    return obj && IS_LIST(obj);\n+}\n+\n+Int GAP_LenList(Obj obj)\n+{\n+    return LEN_LIST(obj);\n+}\n+\n+void GAP_AssList(Obj list, UInt pos, Obj val)\n+{\n+    if (val)\n+        ASS_LIST(list, pos, val);\n+    else\n+        UNB_LIST(list, pos);","path":"src/libgap-api.c","position":174,"original_position":174,"commit_id":"17ba36aa70f0671c82abb4d145a47c1c7065d4a1","original_commit_id":"17ba36aa70f0671c82abb4d145a47c1c7065d4a1","user":{"login":"fingolfin","id":241512,"node_id":"MDQ6VXNlcjI0MTUxMg==","avatar_url":"https://avatars2.githubusercontent.com/u/241512?v=4","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":"Here, I though that unbinding (a rare operation, I believe) could be transparently achieved by the same function as is used for assignment. Good/bad idea?","created_at":"2018-11-11T15:30:37Z","updated_at":"2018-11-11T15:30:37Z","html_url":"https://github.com/gap-system/gap/pull/2988#discussion_r232492395","pull_request_url":"https://api.github.com/repos/gap-system/gap/pulls/2988","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/gap-system/gap/pulls/comments/232492395"},"html":{"href":"https://github.com/gap-system/gap/pull/2988#discussion_r232492395"},"pull_request":{"href":"https://api.github.com/repos/gap-system/gap/pulls/2988"}}},"pull_request":{"url":"https://api.github.com/repos/gap-system/gap/pulls/2988","id":229958871,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI5OTU4ODcx","html_url":"https://github.com/gap-system/gap/pull/2988","diff_url":"https://github.com/gap-system/gap/pull/2988.diff","patch_url":"https://github.com/gap-system/gap/pull/2988.patch","issue_url":"https://api.github.com/repos/gap-system/gap/issues/2988","number":2988,"state":"open","locked":false,"title":"Add some functions to libgap API","user":{"login":"fingolfin","id":241512,"node_id":"MDQ6VXNlcjI0MTUxMg==","avatar_url":"https://avatars2.githubusercontent.com/u/241512?v=4","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":"Also make `GAP_CSTR_STRING` easier to use (by not crashing for non-string inputs), and tweak testlibgap\r\n\r\nThis wraps some functions for which I have seen used \"in the wild\" in various places (mostly SageMath, and GAPJulia). Of course this is not yet enough, and some things should be tweaked, but I think it gets us closer.","created_at":"2018-11-11T15:28:54Z","updated_at":"2018-11-11T15:30:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e42fcad3a071f729347ee780a06207fe06523b2d","assignee":null,"assignees":[],"requested_reviewers":[{"login":"sebasguts","id":1068084,"node_id":"MDQ6VXNlcjEwNjgwODQ=","avatar_url":"https://avatars1.githubusercontent.com/u/1068084?v=4","gravatar_id":"","url":"https://api.github.com/users/sebasguts","html_url":"https://github.com/sebasguts","followers_url":"https://api.github.com/users/sebasguts/followers","following_url":"https://api.github.com/users/sebasguts/following{/other_user}","gists_url":"https://api.github.com/users/sebasguts/gists{/gist_id}","starred_url":"https://api.github.com/users/sebasguts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sebasguts/subscriptions","organizations_url":"https://api.github.com/users/sebasguts/orgs","repos_url":"https://api.github.com/users/sebasguts/repos","events_url":"https://api.github.com/users/sebasguts/events{/privacy}","received_events_url":"https://api.github.com/users/sebasguts/received_events","type":"User","site_admin":false},{"login":"dimpase","id":1276956,"node_id":"MDQ6VXNlcjEyNzY5NTY=","avatar_url":"https://avatars0.githubusercontent.com/u/1276956?v=4","gravatar_id":"","url":"https://api.github.com/users/dimpase","html_url":"https://github.com/dimpase","followers_url":"https://api.github.com/users/dimpase/followers","following_url":"https://api.github.com/users/dimpase/following{/other_user}","gists_url":"https://api.github.com/users/dimpase/gists{/gist_id}","starred_url":"https://api.github.com/users/dimpase/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dimpase/subscriptions","organizations_url":"https://api.github.com/users/dimpase/orgs","repos_url":"https://api.github.com/users/dimpase/repos","events_url":"https://api.github.com/users/dimpase/events{/privacy}","received_events_url":"https://api.github.com/users/dimpase/received_events","type":"User","site_admin":false},{"login":"markuspf","id":3589190,"node_id":"MDQ6VXNlcjM1ODkxOTA=","avatar_url":"https://avatars1.githubusercontent.com/u/3589190?v=4","gravatar_id":"","url":"https://api.github.com/users/markuspf","html_url":"https://github.com/markuspf","followers_url":"https://api.github.com/users/markuspf/followers","following_url":"https://api.github.com/users/markuspf/following{/other_user}","gists_url":"https://api.github.com/users/markuspf/gists{/gist_id}","starred_url":"https://api.github.com/users/markuspf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markuspf/subscriptions","organizations_url":"https://api.github.com/users/markuspf/orgs","repos_url":"https://api.github.com/users/markuspf/repos","events_url":"https://api.github.com/users/markuspf/events{/privacy}","received_events_url":"https://api.github.com/users/markuspf/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":577472995,"node_id":"MDU6TGFiZWw1Nzc0NzI5OTU=","url":"https://api.github.com/repos/gap-system/gap/labels/topic:%20kernel","name":"topic: kernel","color":"c0d9f7","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/gap-system/gap/pulls/2988/commits","review_comments_url":"https://api.github.com/repos/gap-system/gap/pulls/2988/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/2988/comments","statuses_url":"https://api.github.com/repos/gap-system/gap/statuses/17ba36aa70f0671c82abb4d145a47c1c7065d4a1","head":{"label":"fingolfin:mh/libgap","ref":"mh/libgap","sha":"17ba36aa70f0671c82abb4d145a47c1c7065d4a1","user":{"login":"fingolfin","id":241512,"node_id":"MDQ6VXNlcjI0MTUxMg==","avatar_url":"https://avatars2.githubusercontent.com/u/241512?v=4","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,"node_id":"MDEwOlJlcG9zaXRvcnkzMTY3MDM2NA==","name":"gap","full_name":"fingolfin/gap","private":false,"owner":{"login":"fingolfin","id":241512,"node_id":"MDQ6VXNlcjI0MTUxMg==","avatar_url":"https://avatars2.githubusercontent.com/u/241512?v=4","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},"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}","deployments_url":"https://api.github.com/repos/fingolfin/gap/deployments","created_at":"2015-03-04T17:35:23Z","updated_at":"2018-08-28T13:32:41Z","pushed_at":"2018-11-11T15:26:18Z","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":392700,"stargazers_count":0,"watchers_count":0,"language":"GAP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":10,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0","node_id":"MDc6TGljZW5zZTg="},"forks":0,"open_issues":10,"watchers":0,"default_branch":"master"}},"base":{"label":"gap-system:master","ref":"master","sha":"8f27269f3b13e11af290eba372f929ecb00bb790","user":{"login":"gap-system","id":5344223,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUzNDQyMjM=","avatar_url":"https://avatars2.githubusercontent.com/u/5344223?v=4","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,"node_id":"MDEwOlJlcG9zaXRvcnkzMTI3MDIwOA==","name":"gap","full_name":"gap-system/gap","private":false,"owner":{"login":"gap-system","id":5344223,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUzNDQyMjM=","avatar_url":"https://avatars2.githubusercontent.com/u/5344223?v=4","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},"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}","deployments_url":"https://api.github.com/repos/gap-system/gap/deployments","created_at":"2015-02-24T16:47:50Z","updated_at":"2018-11-09T21:56:16Z","pushed_at":"2018-11-11T15:28:55Z","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":"https://www.gap-system.org","size":404309,"stargazers_count":241,"watchers_count":241,"language":"GAP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":84,"mirror_url":null,"archived":false,"open_issues_count":360,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0","node_id":"MDc6TGljZW5zZTg="},"forks":84,"open_issues":360,"watchers":241,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/gap-system/gap/pulls/2988"},"html":{"href":"https://github.com/gap-system/gap/pull/2988"},"issue":{"href":"https://api.github.com/repos/gap-system/gap/issues/2988"},"comments":{"href":"https://api.github.com/repos/gap-system/gap/issues/2988/comments"},"review_comments":{"href":"https://api.github.com/repos/gap-system/gap/pulls/2988/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/2988/commits"},"statuses":{"href":"https://api.github.com/repos/gap-system/gap/statuses/17ba36aa70f0671c82abb4d145a47c1c7065d4a1"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"fingolfin"}}