{"action":"created","comment":{"url":"https://api.github.com/repos/coq/coq/pulls/comments/222327409","pull_request_review_id":161185624,"id":222327409,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyMjMyNzQwOQ==","diff_hunk":"@@ -679,15 +721,20 @@ let error_recursively_dependent_library dir =\n (* Security weakness: file might have been changed on disk between\n    writing the content and computing the checksum... *)\n \n-let save_library_to ?todo dir f otab =\n+(** Note: create_vos could be replaced by a direct read of\n+    !Flags.compilation_mode, but this does not seem to be\n+    the way things are done for .vio files. *)\n+\n+let save_library_to ~create_vos ?todo dir f otab =","path":"library/library.ml","position":133,"original_position":133,"commit_id":"e6943c180f695e117e79a5a2811eaad92aec9d58","original_commit_id":"e6943c180f695e117e79a5a2811eaad92aec9d58","user":{"login":"gares","id":1013846,"node_id":"MDQ6VXNlcjEwMTM4NDY=","avatar_url":"https://avatars2.githubusercontent.com/u/1013846?v=4","gravatar_id":"","url":"https://api.github.com/users/gares","html_url":"https://github.com/gares","followers_url":"https://api.github.com/users/gares/followers","following_url":"https://api.github.com/users/gares/following{/other_user}","gists_url":"https://api.github.com/users/gares/gists{/gist_id}","starred_url":"https://api.github.com/users/gares/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gares/subscriptions","organizations_url":"https://api.github.com/users/gares/orgs","repos_url":"https://api.github.com/users/gares/repos","events_url":"https://api.github.com/users/gares/events{/privacy}","received_events_url":"https://api.github.com/users/gares/received_events","type":"User","site_admin":false},"body":"I think the API is misleading here. Passing `~todo:(Some ..)` and `~create_vos:true` seems meaningless.\r\nI suggest crafting a data type along these lines\r\n```\r\ntype todo_proofs = `NothingToDo (* for vo *) | `Taks of ... Future.t list (* for .vio *) | `EmptyTasks (* for .vos *)\r\n```\r\nIt may also make sense to put together the opaque tables and the todo list while you are at it\r\n```\r\ntype proofs = { proofs_done : Opaquetables.t ; proofs_todo = [ `Nothing | `Tasks ... | `EmptyTaks ... ] }\r\n```\r\ntoday the tasks are meant to fill in the missing items in the opaque table.","created_at":"2018-10-03T14:15:13Z","updated_at":"2018-10-03T14:15:13Z","html_url":"https://github.com/coq/coq/pull/8642#discussion_r222327409","pull_request_url":"https://api.github.com/repos/coq/coq/pulls/8642","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/coq/coq/pulls/comments/222327409"},"html":{"href":"https://github.com/coq/coq/pull/8642#discussion_r222327409"},"pull_request":{"href":"https://api.github.com/repos/coq/coq/pulls/8642"}}},"pull_request":{"url":"https://api.github.com/repos/coq/coq/pulls/8642","id":220013573,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIwMDEzNTcz","html_url":"https://github.com/coq/coq/pull/8642","diff_url":"https://github.com/coq/coq/pull/8642.diff","patch_url":"https://github.com/coq/coq/pull/8642.patch","issue_url":"https://api.github.com/repos/coq/coq/issues/8642","number":8642,"state":"open","locked":false,"title":"Compiled interfaces with -vos and -vok options","user":{"login":"charguer","id":1830652,"node_id":"MDQ6VXNlcjE4MzA2NTI=","avatar_url":"https://avatars3.githubusercontent.com/u/1830652?v=4","gravatar_id":"","url":"https://api.github.com/users/charguer","html_url":"https://github.com/charguer","followers_url":"https://api.github.com/users/charguer/followers","following_url":"https://api.github.com/users/charguer/following{/other_user}","gists_url":"https://api.github.com/users/charguer/gists{/gist_id}","starred_url":"https://api.github.com/users/charguer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/charguer/subscriptions","organizations_url":"https://api.github.com/users/charguer/orgs","repos_url":"https://api.github.com/users/charguer/repos","events_url":"https://api.github.com/users/charguer/events{/privacy}","received_events_url":"https://api.github.com/users/charguer/received_events","type":"User","site_admin":false},"body":"\r\n**Kind:** feature \r\n\r\nThe goal is to propose an alternative solution to using .vio for compiling statements without compiling proofs, to enable recovering a working state as fast as possible when modifying a file in the dependency chain. \r\n\r\nIn particular, this proposal fixes the two major issues associated with  .vio files: their huge size, and the fact that the choice of \"the most recent file among .vio and .vo\" interacts badly with \"make\".\r\n\r\n- Corresponding documentation was added in doc/sphinx, and in --help output.\r\n- Not yet done: updated list of warnings, entry in CHANGES.\r\n- This feature has been tested so far on the compilation of TLC and CFML2 (my own projects).\r\n\r\nDescription of the feature: please read  doc/sphinx/addendum/compiled-interfaces.rst  (in the diff below).\r\n\r\nOn the way, I converted tabs to spaces in the files that I did edit. And I also optimize \"coqdep\" so that it won't traverse all the files twice, once for computing .vo dependencies and once again for .vio dependencies.\r\n\r\nTwo open questions:\r\n- is \"Include\" handled properly? if not, what needs to be done?\r\n- which are the practical use cases for which .vio batch compilation and verification would remain useful?\r\n","created_at":"2018-10-03T12:11:19Z","updated_at":"2018-10-03T14:15:13Z","closed_at":null,"merged_at":null,"merge_commit_sha":"059eacd5c5fccf90de572c8750b9481347ad3d20","assignee":null,"assignees":[],"requested_reviewers":[{"login":"mattam82","id":98373,"node_id":"MDQ6VXNlcjk4Mzcz","avatar_url":"https://avatars1.githubusercontent.com/u/98373?v=4","gravatar_id":"","url":"https://api.github.com/users/mattam82","html_url":"https://github.com/mattam82","followers_url":"https://api.github.com/users/mattam82/followers","following_url":"https://api.github.com/users/mattam82/following{/other_user}","gists_url":"https://api.github.com/users/mattam82/gists{/gist_id}","starred_url":"https://api.github.com/users/mattam82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattam82/subscriptions","organizations_url":"https://api.github.com/users/mattam82/orgs","repos_url":"https://api.github.com/users/mattam82/repos","events_url":"https://api.github.com/users/mattam82/events{/privacy}","received_events_url":"https://api.github.com/users/mattam82/received_events","type":"User","site_admin":false},{"login":"ppedrot","id":1202327,"node_id":"MDQ6VXNlcjEyMDIzMjc=","avatar_url":"https://avatars1.githubusercontent.com/u/1202327?v=4","gravatar_id":"","url":"https://api.github.com/users/ppedrot","html_url":"https://github.com/ppedrot","followers_url":"https://api.github.com/users/ppedrot/followers","following_url":"https://api.github.com/users/ppedrot/following{/other_user}","gists_url":"https://api.github.com/users/ppedrot/gists{/gist_id}","starred_url":"https://api.github.com/users/ppedrot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ppedrot/subscriptions","organizations_url":"https://api.github.com/users/ppedrot/orgs","repos_url":"https://api.github.com/users/ppedrot/repos","events_url":"https://api.github.com/users/ppedrot/events{/privacy}","received_events_url":"https://api.github.com/users/ppedrot/received_events","type":"User","site_admin":false},{"login":"silene","id":1674458,"node_id":"MDQ6VXNlcjE2NzQ0NTg=","avatar_url":"https://avatars2.githubusercontent.com/u/1674458?v=4","gravatar_id":"","url":"https://api.github.com/users/silene","html_url":"https://github.com/silene","followers_url":"https://api.github.com/users/silene/followers","following_url":"https://api.github.com/users/silene/following{/other_user}","gists_url":"https://api.github.com/users/silene/gists{/gist_id}","starred_url":"https://api.github.com/users/silene/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/silene/subscriptions","organizations_url":"https://api.github.com/users/silene/orgs","repos_url":"https://api.github.com/users/silene/repos","events_url":"https://api.github.com/users/silene/events{/privacy}","received_events_url":"https://api.github.com/users/silene/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":485986179,"node_id":"MDU6TGFiZWw0ODU5ODYxNzk=","url":"https://api.github.com/repos/coq/coq/labels/kind:%20feature","name":"kind: feature","color":"0e8a16","default":false},{"id":614883102,"node_id":"MDU6TGFiZWw2MTQ4ODMxMDI=","url":"https://api.github.com/repos/coq/coq/labels/needs:%20rebase","name":"needs: rebase","color":"d4c5f9","default":false}],"milestone":{"url":"https://api.github.com/repos/coq/coq/milestones/16","html_url":"https://github.com/coq/coq/milestone/16","labels_url":"https://api.github.com/repos/coq/coq/milestones/16/labels","id":3512681,"node_id":"MDk6TWlsZXN0b25lMzUxMjY4MQ==","number":16,"title":"8.10+beta1","description":"","creator":{"login":"Zimmi48","id":1108325,"node_id":"MDQ6VXNlcjExMDgzMjU=","avatar_url":"https://avatars2.githubusercontent.com/u/1108325?v=4","gravatar_id":"","url":"https://api.github.com/users/Zimmi48","html_url":"https://github.com/Zimmi48","followers_url":"https://api.github.com/users/Zimmi48/followers","following_url":"https://api.github.com/users/Zimmi48/following{/other_user}","gists_url":"https://api.github.com/users/Zimmi48/gists{/gist_id}","starred_url":"https://api.github.com/users/Zimmi48/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zimmi48/subscriptions","organizations_url":"https://api.github.com/users/Zimmi48/orgs","repos_url":"https://api.github.com/users/Zimmi48/repos","events_url":"https://api.github.com/users/Zimmi48/events{/privacy}","received_events_url":"https://api.github.com/users/Zimmi48/received_events","type":"User","site_admin":false},"open_issues":55,"closed_issues":90,"state":"open","created_at":"2018-07-20T18:48:13Z","updated_at":"2018-10-03T13:48:34Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/coq/coq/pulls/8642/commits","review_comments_url":"https://api.github.com/repos/coq/coq/pulls/8642/comments","review_comment_url":"https://api.github.com/repos/coq/coq/pulls/comments{/number}","comments_url":"https://api.github.com/repos/coq/coq/issues/8642/comments","statuses_url":"https://api.github.com/repos/coq/coq/statuses/e6943c180f695e117e79a5a2811eaad92aec9d58","head":{"label":"charguer:vos-files","ref":"vos-files","sha":"e6943c180f695e117e79a5a2811eaad92aec9d58","user":{"login":"charguer","id":1830652,"node_id":"MDQ6VXNlcjE4MzA2NTI=","avatar_url":"https://avatars3.githubusercontent.com/u/1830652?v=4","gravatar_id":"","url":"https://api.github.com/users/charguer","html_url":"https://github.com/charguer","followers_url":"https://api.github.com/users/charguer/followers","following_url":"https://api.github.com/users/charguer/following{/other_user}","gists_url":"https://api.github.com/users/charguer/gists{/gist_id}","starred_url":"https://api.github.com/users/charguer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/charguer/subscriptions","organizations_url":"https://api.github.com/users/charguer/orgs","repos_url":"https://api.github.com/users/charguer/repos","events_url":"https://api.github.com/users/charguer/events{/privacy}","received_events_url":"https://api.github.com/users/charguer/received_events","type":"User","site_admin":false},"repo":{"id":114742598,"node_id":"MDEwOlJlcG9zaXRvcnkxMTQ3NDI1OTg=","name":"coq","full_name":"charguer/coq","private":false,"owner":{"login":"charguer","id":1830652,"node_id":"MDQ6VXNlcjE4MzA2NTI=","avatar_url":"https://avatars3.githubusercontent.com/u/1830652?v=4","gravatar_id":"","url":"https://api.github.com/users/charguer","html_url":"https://github.com/charguer","followers_url":"https://api.github.com/users/charguer/followers","following_url":"https://api.github.com/users/charguer/following{/other_user}","gists_url":"https://api.github.com/users/charguer/gists{/gist_id}","starred_url":"https://api.github.com/users/charguer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/charguer/subscriptions","organizations_url":"https://api.github.com/users/charguer/orgs","repos_url":"https://api.github.com/users/charguer/repos","events_url":"https://api.github.com/users/charguer/events{/privacy}","received_events_url":"https://api.github.com/users/charguer/received_events","type":"User","site_admin":false},"html_url":"https://github.com/charguer/coq","description":"Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs. ","fork":true,"url":"https://api.github.com/repos/charguer/coq","forks_url":"https://api.github.com/repos/charguer/coq/forks","keys_url":"https://api.github.com/repos/charguer/coq/keys{/key_id}","collaborators_url":"https://api.github.com/repos/charguer/coq/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/charguer/coq/teams","hooks_url":"https://api.github.com/repos/charguer/coq/hooks","issue_events_url":"https://api.github.com/repos/charguer/coq/issues/events{/number}","events_url":"https://api.github.com/repos/charguer/coq/events","assignees_url":"https://api.github.com/repos/charguer/coq/assignees{/user}","branches_url":"https://api.github.com/repos/charguer/coq/branches{/branch}","tags_url":"https://api.github.com/repos/charguer/coq/tags","blobs_url":"https://api.github.com/repos/charguer/coq/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/charguer/coq/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/charguer/coq/git/refs{/sha}","trees_url":"https://api.github.com/repos/charguer/coq/git/trees{/sha}","statuses_url":"https://api.github.com/repos/charguer/coq/statuses/{sha}","languages_url":"https://api.github.com/repos/charguer/coq/languages","stargazers_url":"https://api.github.com/repos/charguer/coq/stargazers","contributors_url":"https://api.github.com/repos/charguer/coq/contributors","subscribers_url":"https://api.github.com/repos/charguer/coq/subscribers","subscription_url":"https://api.github.com/repos/charguer/coq/subscription","commits_url":"https://api.github.com/repos/charguer/coq/commits{/sha}","git_commits_url":"https://api.github.com/repos/charguer/coq/git/commits{/sha}","comments_url":"https://api.github.com/repos/charguer/coq/comments{/number}","issue_comment_url":"https://api.github.com/repos/charguer/coq/issues/comments{/number}","contents_url":"https://api.github.com/repos/charguer/coq/contents/{+path}","compare_url":"https://api.github.com/repos/charguer/coq/compare/{base}...{head}","merges_url":"https://api.github.com/repos/charguer/coq/merges","archive_url":"https://api.github.com/repos/charguer/coq/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/charguer/coq/downloads","issues_url":"https://api.github.com/repos/charguer/coq/issues{/number}","pulls_url":"https://api.github.com/repos/charguer/coq/pulls{/number}","milestones_url":"https://api.github.com/repos/charguer/coq/milestones{/number}","notifications_url":"https://api.github.com/repos/charguer/coq/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/charguer/coq/labels{/name}","releases_url":"https://api.github.com/repos/charguer/coq/releases{/id}","deployments_url":"https://api.github.com/repos/charguer/coq/deployments","created_at":"2017-12-19T09:01:08Z","updated_at":"2018-10-03T09:30:52Z","pushed_at":"2018-10-03T11:58:46Z","git_url":"git://github.com/charguer/coq.git","ssh_url":"git@github.com:charguer/coq.git","clone_url":"https://github.com/charguer/coq.git","svn_url":"https://github.com/charguer/coq","homepage":"https://coq.inria.fr/","size":113220,"stargazers_count":0,"watchers_count":0,"language":"OCaml","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"lgpl-2.1","name":"GNU Lesser General Public License v2.1","spdx_id":"LGPL-2.1","url":"https://api.github.com/licenses/lgpl-2.1","node_id":"MDc6TGljZW5zZTEx"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"coq:master","ref":"master","sha":"016f4a302090bcbb4ad47197dda2c60d6f598f6a","user":{"login":"coq","id":621198,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYyMTE5OA==","avatar_url":"https://avatars1.githubusercontent.com/u/621198?v=4","gravatar_id":"","url":"https://api.github.com/users/coq","html_url":"https://github.com/coq","followers_url":"https://api.github.com/users/coq/followers","following_url":"https://api.github.com/users/coq/following{/other_user}","gists_url":"https://api.github.com/users/coq/gists{/gist_id}","starred_url":"https://api.github.com/users/coq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coq/subscriptions","organizations_url":"https://api.github.com/users/coq/orgs","repos_url":"https://api.github.com/users/coq/repos","events_url":"https://api.github.com/users/coq/events{/privacy}","received_events_url":"https://api.github.com/users/coq/received_events","type":"Organization","site_admin":false},"repo":{"id":1377159,"node_id":"MDEwOlJlcG9zaXRvcnkxMzc3MTU5","name":"coq","full_name":"coq/coq","private":false,"owner":{"login":"coq","id":621198,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYyMTE5OA==","avatar_url":"https://avatars1.githubusercontent.com/u/621198?v=4","gravatar_id":"","url":"https://api.github.com/users/coq","html_url":"https://github.com/coq","followers_url":"https://api.github.com/users/coq/followers","following_url":"https://api.github.com/users/coq/following{/other_user}","gists_url":"https://api.github.com/users/coq/gists{/gist_id}","starred_url":"https://api.github.com/users/coq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coq/subscriptions","organizations_url":"https://api.github.com/users/coq/orgs","repos_url":"https://api.github.com/users/coq/repos","events_url":"https://api.github.com/users/coq/events{/privacy}","received_events_url":"https://api.github.com/users/coq/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/coq/coq","description":"Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs. ","fork":false,"url":"https://api.github.com/repos/coq/coq","forks_url":"https://api.github.com/repos/coq/coq/forks","keys_url":"https://api.github.com/repos/coq/coq/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coq/coq/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coq/coq/teams","hooks_url":"https://api.github.com/repos/coq/coq/hooks","issue_events_url":"https://api.github.com/repos/coq/coq/issues/events{/number}","events_url":"https://api.github.com/repos/coq/coq/events","assignees_url":"https://api.github.com/repos/coq/coq/assignees{/user}","branches_url":"https://api.github.com/repos/coq/coq/branches{/branch}","tags_url":"https://api.github.com/repos/coq/coq/tags","blobs_url":"https://api.github.com/repos/coq/coq/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coq/coq/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coq/coq/git/refs{/sha}","trees_url":"https://api.github.com/repos/coq/coq/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coq/coq/statuses/{sha}","languages_url":"https://api.github.com/repos/coq/coq/languages","stargazers_url":"https://api.github.com/repos/coq/coq/stargazers","contributors_url":"https://api.github.com/repos/coq/coq/contributors","subscribers_url":"https://api.github.com/repos/coq/coq/subscribers","subscription_url":"https://api.github.com/repos/coq/coq/subscription","commits_url":"https://api.github.com/repos/coq/coq/commits{/sha}","git_commits_url":"https://api.github.com/repos/coq/coq/git/commits{/sha}","comments_url":"https://api.github.com/repos/coq/coq/comments{/number}","issue_comment_url":"https://api.github.com/repos/coq/coq/issues/comments{/number}","contents_url":"https://api.github.com/repos/coq/coq/contents/{+path}","compare_url":"https://api.github.com/repos/coq/coq/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coq/coq/merges","archive_url":"https://api.github.com/repos/coq/coq/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coq/coq/downloads","issues_url":"https://api.github.com/repos/coq/coq/issues{/number}","pulls_url":"https://api.github.com/repos/coq/coq/pulls{/number}","milestones_url":"https://api.github.com/repos/coq/coq/milestones{/number}","notifications_url":"https://api.github.com/repos/coq/coq/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coq/coq/labels{/name}","releases_url":"https://api.github.com/repos/coq/coq/releases{/id}","deployments_url":"https://api.github.com/repos/coq/coq/deployments","created_at":"2011-02-17T05:49:37Z","updated_at":"2018-10-03T13:00:30Z","pushed_at":"2018-10-03T13:12:36Z","git_url":"git://github.com/coq/coq.git","ssh_url":"git@github.com:coq/coq.git","clone_url":"https://github.com/coq/coq.git","svn_url":"https://github.com/coq/coq","homepage":"https://coq.inria.fr/","size":116763,"stargazers_count":1520,"watchers_count":1520,"language":"OCaml","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":279,"mirror_url":null,"archived":false,"open_issues_count":1822,"license":{"key":"lgpl-2.1","name":"GNU Lesser General Public License v2.1","spdx_id":"LGPL-2.1","url":"https://api.github.com/licenses/lgpl-2.1","node_id":"MDc6TGljZW5zZTEx"},"forks":279,"open_issues":1822,"watchers":1520,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/coq/coq/pulls/8642"},"html":{"href":"https://github.com/coq/coq/pull/8642"},"issue":{"href":"https://api.github.com/repos/coq/coq/issues/8642"},"comments":{"href":"https://api.github.com/repos/coq/coq/issues/8642/comments"},"review_comments":{"href":"https://api.github.com/repos/coq/coq/pulls/8642/comments"},"review_comment":{"href":"https://api.github.com/repos/coq/coq/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/coq/coq/pulls/8642/commits"},"statuses":{"href":"https://api.github.com/repos/coq/coq/statuses/e6943c180f695e117e79a5a2811eaad92aec9d58"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"gares"}}