{"action":"created","comment":{"url":"https://api.github.com/repos/ocaml/ocaml/pulls/comments/69481387","id":69481387,"diff_hunk":"@@ -28,6 +28,19 @@ type 'a ast_kind =\n | Structure : Parsetree.structure ast_kind\n | Signature : Parsetree.signature ast_kind\n \n+val clear_ppx : unit -> unit","path":"driver/pparse.mli","position":4,"original_position":4,"commit_id":"ffd927ebd5793daf4d8bfe18e918c2938e81c04e","original_commit_id":"ffd927ebd5793daf4d8bfe18e918c2938e81c04e","user":{"login":"Kakadu","id":438226,"avatar_url":"https://avatars.githubusercontent.com/u/438226?v=3","gravatar_id":"","url":"https://api.github.com/users/Kakadu","html_url":"https://github.com/Kakadu","followers_url":"https://api.github.com/users/Kakadu/followers","following_url":"https://api.github.com/users/Kakadu/following{/other_user}","gists_url":"https://api.github.com/users/Kakadu/gists{/gist_id}","starred_url":"https://api.github.com/users/Kakadu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kakadu/subscriptions","organizations_url":"https://api.github.com/users/Kakadu/orgs","repos_url":"https://api.github.com/users/Kakadu/repos","events_url":"https://api.github.com/users/Kakadu/events{/privacy}","received_events_url":"https://api.github.com/users/Kakadu/received_events","type":"User","site_admin":false},"body":"Absence of this line slightly changes semantics. Before my changes `Cflag.all_ppx` was used to store all information about external ppxs and code like `all_ppx :=...` was supposed to remove old information and replace it by new one. Now information about ppx extensions is also stored in `Pparse module` and `Cflags.all_ppx` is kind of .... redundant? Can we get rid of it? What about backward compatibility?\r\n\r\nAlso if I remove `clear_ppx` call something bad can happen if `readenv` will be called twice. (I think)","created_at":"2016-07-04T17:25:40Z","updated_at":"2016-07-04T17:25:40Z","html_url":"https://github.com/ocaml/ocaml/pull/386#discussion_r69481387","pull_request_url":"https://api.github.com/repos/ocaml/ocaml/pulls/386","_links":{"self":{"href":"https://api.github.com/repos/ocaml/ocaml/pulls/comments/69481387"},"html":{"href":"https://github.com/ocaml/ocaml/pull/386#discussion_r69481387"},"pull_request":{"href":"https://api.github.com/repos/ocaml/ocaml/pulls/386"}}},"pull_request":{"url":"https://api.github.com/repos/ocaml/ocaml/pulls/386","id":54880433,"html_url":"https://github.com/ocaml/ocaml/pull/386","diff_url":"https://github.com/ocaml/ocaml/pull/386.diff","patch_url":"https://github.com/ocaml/ocaml/pull/386.patch","issue_url":"https://api.github.com/repos/ocaml/ocaml/issues/386","number":386,"state":"open","locked":false,"title":"Allow toplevel value to be used for preprocessing","user":{"login":"Kakadu","id":438226,"avatar_url":"https://avatars.githubusercontent.com/u/438226?v=3","gravatar_id":"","url":"https://api.github.com/users/Kakadu","html_url":"https://github.com/Kakadu","followers_url":"https://api.github.com/users/Kakadu/followers","following_url":"https://api.github.com/users/Kakadu/following{/other_user}","gists_url":"https://api.github.com/users/Kakadu/gists{/gist_id}","starred_url":"https://api.github.com/users/Kakadu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kakadu/subscriptions","organizations_url":"https://api.github.com/users/Kakadu/orgs","repos_url":"https://api.github.com/users/Kakadu/repos","events_url":"https://api.github.com/users/Kakadu/events{/privacy}","received_events_url":"https://api.github.com/users/Kakadu/received_events","type":"User","site_admin":false},"body":"I was building a custom js_of_ocaml toplevel recently and I needed to embed PPX syntax extension. By default it uses system call to invoke preprocessor which doesn't suite js_of_ocaml. The patch allows toplevel values of type `Ast_mapper.mapper` to be used while preprocessing the source.\r\n\r\nP.S. Happy New Year :)","created_at":"2015-12-31T21:05:17Z","updated_at":"2016-07-04T17:25:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6320d99a5d6fa3fff84e9359b388f4e24c1c1524","assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/ocaml/ocaml/milestones/2","html_url":"https://github.com/ocaml/ocaml/milestones/4.04","labels_url":"https://api.github.com/repos/ocaml/ocaml/milestones/2/labels","id":1464889,"number":2,"title":"4.04","description":"","creator":{"login":"damiendoligez","id":19104,"avatar_url":"https://avatars.githubusercontent.com/u/19104?v=3","gravatar_id":"","url":"https://api.github.com/users/damiendoligez","html_url":"https://github.com/damiendoligez","followers_url":"https://api.github.com/users/damiendoligez/followers","following_url":"https://api.github.com/users/damiendoligez/following{/other_user}","gists_url":"https://api.github.com/users/damiendoligez/gists{/gist_id}","starred_url":"https://api.github.com/users/damiendoligez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damiendoligez/subscriptions","organizations_url":"https://api.github.com/users/damiendoligez/orgs","repos_url":"https://api.github.com/users/damiendoligez/repos","events_url":"https://api.github.com/users/damiendoligez/events{/privacy}","received_events_url":"https://api.github.com/users/damiendoligez/received_events","type":"User","site_admin":false},"open_issues":78,"closed_issues":52,"state":"open","created_at":"2015-12-17T12:44:22Z","updated_at":"2016-07-04T14:11:19Z","due_on":"2016-07-17T22:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/ocaml/ocaml/pulls/386/commits","review_comments_url":"https://api.github.com/repos/ocaml/ocaml/pulls/386/comments","review_comment_url":"https://api.github.com/repos/ocaml/ocaml/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ocaml/ocaml/issues/386/comments","statuses_url":"https://api.github.com/repos/ocaml/ocaml/statuses/ffd927ebd5793daf4d8bfe18e918c2938e81c04e","head":{"label":"Kakadu:trunk","ref":"trunk","sha":"ffd927ebd5793daf4d8bfe18e918c2938e81c04e","user":{"login":"Kakadu","id":438226,"avatar_url":"https://avatars.githubusercontent.com/u/438226?v=3","gravatar_id":"","url":"https://api.github.com/users/Kakadu","html_url":"https://github.com/Kakadu","followers_url":"https://api.github.com/users/Kakadu/followers","following_url":"https://api.github.com/users/Kakadu/following{/other_user}","gists_url":"https://api.github.com/users/Kakadu/gists{/gist_id}","starred_url":"https://api.github.com/users/Kakadu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kakadu/subscriptions","organizations_url":"https://api.github.com/users/Kakadu/orgs","repos_url":"https://api.github.com/users/Kakadu/repos","events_url":"https://api.github.com/users/Kakadu/events{/privacy}","received_events_url":"https://api.github.com/users/Kakadu/received_events","type":"User","site_admin":false},"repo":{"id":47515227,"name":"ocaml","full_name":"Kakadu/ocaml","owner":{"login":"Kakadu","id":438226,"avatar_url":"https://avatars.githubusercontent.com/u/438226?v=3","gravatar_id":"","url":"https://api.github.com/users/Kakadu","html_url":"https://github.com/Kakadu","followers_url":"https://api.github.com/users/Kakadu/followers","following_url":"https://api.github.com/users/Kakadu/following{/other_user}","gists_url":"https://api.github.com/users/Kakadu/gists{/gist_id}","starred_url":"https://api.github.com/users/Kakadu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kakadu/subscriptions","organizations_url":"https://api.github.com/users/Kakadu/orgs","repos_url":"https://api.github.com/users/Kakadu/repos","events_url":"https://api.github.com/users/Kakadu/events{/privacy}","received_events_url":"https://api.github.com/users/Kakadu/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Kakadu/ocaml","description":"The core OCaml system: compilers, runtime system, base libraries","fork":true,"url":"https://api.github.com/repos/Kakadu/ocaml","forks_url":"https://api.github.com/repos/Kakadu/ocaml/forks","keys_url":"https://api.github.com/repos/Kakadu/ocaml/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Kakadu/ocaml/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Kakadu/ocaml/teams","hooks_url":"https://api.github.com/repos/Kakadu/ocaml/hooks","issue_events_url":"https://api.github.com/repos/Kakadu/ocaml/issues/events{/number}","events_url":"https://api.github.com/repos/Kakadu/ocaml/events","assignees_url":"https://api.github.com/repos/Kakadu/ocaml/assignees{/user}","branches_url":"https://api.github.com/repos/Kakadu/ocaml/branches{/branch}","tags_url":"https://api.github.com/repos/Kakadu/ocaml/tags","blobs_url":"https://api.github.com/repos/Kakadu/ocaml/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Kakadu/ocaml/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Kakadu/ocaml/git/refs{/sha}","trees_url":"https://api.github.com/repos/Kakadu/ocaml/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Kakadu/ocaml/statuses/{sha}","languages_url":"https://api.github.com/repos/Kakadu/ocaml/languages","stargazers_url":"https://api.github.com/repos/Kakadu/ocaml/stargazers","contributors_url":"https://api.github.com/repos/Kakadu/ocaml/contributors","subscribers_url":"https://api.github.com/repos/Kakadu/ocaml/subscribers","subscription_url":"https://api.github.com/repos/Kakadu/ocaml/subscription","commits_url":"https://api.github.com/repos/Kakadu/ocaml/commits{/sha}","git_commits_url":"https://api.github.com/repos/Kakadu/ocaml/git/commits{/sha}","comments_url":"https://api.github.com/repos/Kakadu/ocaml/comments{/number}","issue_comment_url":"https://api.github.com/repos/Kakadu/ocaml/issues/comments{/number}","contents_url":"https://api.github.com/repos/Kakadu/ocaml/contents/{+path}","compare_url":"https://api.github.com/repos/Kakadu/ocaml/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Kakadu/ocaml/merges","archive_url":"https://api.github.com/repos/Kakadu/ocaml/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Kakadu/ocaml/downloads","issues_url":"https://api.github.com/repos/Kakadu/ocaml/issues{/number}","pulls_url":"https://api.github.com/repos/Kakadu/ocaml/pulls{/number}","milestones_url":"https://api.github.com/repos/Kakadu/ocaml/milestones{/number}","notifications_url":"https://api.github.com/repos/Kakadu/ocaml/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Kakadu/ocaml/labels{/name}","releases_url":"https://api.github.com/repos/Kakadu/ocaml/releases{/id}","deployments_url":"https://api.github.com/repos/Kakadu/ocaml/deployments","created_at":"2015-12-06T21:49:36Z","updated_at":"2016-01-26T22:21:55Z","pushed_at":"2016-07-04T16:05:03Z","git_url":"git://github.com/Kakadu/ocaml.git","ssh_url":"git@github.com:Kakadu/ocaml.git","clone_url":"https://github.com/Kakadu/ocaml.git","svn_url":"https://github.com/Kakadu/ocaml","homepage":"","size":137588,"stargazers_count":0,"watchers_count":0,"language":"OCaml","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"trunk"}},"base":{"label":"ocaml:trunk","ref":"trunk","sha":"18a179217d73b5d8abefb651312d871dbb695b62","user":{"login":"ocaml","id":1841483,"avatar_url":"https://avatars.githubusercontent.com/u/1841483?v=3","gravatar_id":"","url":"https://api.github.com/users/ocaml","html_url":"https://github.com/ocaml","followers_url":"https://api.github.com/users/ocaml/followers","following_url":"https://api.github.com/users/ocaml/following{/other_user}","gists_url":"https://api.github.com/users/ocaml/gists{/gist_id}","starred_url":"https://api.github.com/users/ocaml/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocaml/subscriptions","organizations_url":"https://api.github.com/users/ocaml/orgs","repos_url":"https://api.github.com/users/ocaml/repos","events_url":"https://api.github.com/users/ocaml/events{/privacy}","received_events_url":"https://api.github.com/users/ocaml/received_events","type":"Organization","site_admin":false},"repo":{"id":6786166,"name":"ocaml","full_name":"ocaml/ocaml","owner":{"login":"ocaml","id":1841483,"avatar_url":"https://avatars.githubusercontent.com/u/1841483?v=3","gravatar_id":"","url":"https://api.github.com/users/ocaml","html_url":"https://github.com/ocaml","followers_url":"https://api.github.com/users/ocaml/followers","following_url":"https://api.github.com/users/ocaml/following{/other_user}","gists_url":"https://api.github.com/users/ocaml/gists{/gist_id}","starred_url":"https://api.github.com/users/ocaml/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocaml/subscriptions","organizations_url":"https://api.github.com/users/ocaml/orgs","repos_url":"https://api.github.com/users/ocaml/repos","events_url":"https://api.github.com/users/ocaml/events{/privacy}","received_events_url":"https://api.github.com/users/ocaml/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ocaml/ocaml","description":"The core OCaml system: compilers, runtime system, base libraries","fork":false,"url":"https://api.github.com/repos/ocaml/ocaml","forks_url":"https://api.github.com/repos/ocaml/ocaml/forks","keys_url":"https://api.github.com/repos/ocaml/ocaml/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ocaml/ocaml/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ocaml/ocaml/teams","hooks_url":"https://api.github.com/repos/ocaml/ocaml/hooks","issue_events_url":"https://api.github.com/repos/ocaml/ocaml/issues/events{/number}","events_url":"https://api.github.com/repos/ocaml/ocaml/events","assignees_url":"https://api.github.com/repos/ocaml/ocaml/assignees{/user}","branches_url":"https://api.github.com/repos/ocaml/ocaml/branches{/branch}","tags_url":"https://api.github.com/repos/ocaml/ocaml/tags","blobs_url":"https://api.github.com/repos/ocaml/ocaml/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ocaml/ocaml/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ocaml/ocaml/git/refs{/sha}","trees_url":"https://api.github.com/repos/ocaml/ocaml/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ocaml/ocaml/statuses/{sha}","languages_url":"https://api.github.com/repos/ocaml/ocaml/languages","stargazers_url":"https://api.github.com/repos/ocaml/ocaml/stargazers","contributors_url":"https://api.github.com/repos/ocaml/ocaml/contributors","subscribers_url":"https://api.github.com/repos/ocaml/ocaml/subscribers","subscription_url":"https://api.github.com/repos/ocaml/ocaml/subscription","commits_url":"https://api.github.com/repos/ocaml/ocaml/commits{/sha}","git_commits_url":"https://api.github.com/repos/ocaml/ocaml/git/commits{/sha}","comments_url":"https://api.github.com/repos/ocaml/ocaml/comments{/number}","issue_comment_url":"https://api.github.com/repos/ocaml/ocaml/issues/comments{/number}","contents_url":"https://api.github.com/repos/ocaml/ocaml/contents/{+path}","compare_url":"https://api.github.com/repos/ocaml/ocaml/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ocaml/ocaml/merges","archive_url":"https://api.github.com/repos/ocaml/ocaml/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ocaml/ocaml/downloads","issues_url":"https://api.github.com/repos/ocaml/ocaml/issues{/number}","pulls_url":"https://api.github.com/repos/ocaml/ocaml/pulls{/number}","milestones_url":"https://api.github.com/repos/ocaml/ocaml/milestones{/number}","notifications_url":"https://api.github.com/repos/ocaml/ocaml/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ocaml/ocaml/labels{/name}","releases_url":"https://api.github.com/repos/ocaml/ocaml/releases{/id}","deployments_url":"https://api.github.com/repos/ocaml/ocaml/deployments","created_at":"2012-11-20T22:18:22Z","updated_at":"2016-07-03T16:58:43Z","pushed_at":"2016-07-04T17:03:08Z","git_url":"git://github.com/ocaml/ocaml.git","ssh_url":"git@github.com:ocaml/ocaml.git","clone_url":"https://github.com/ocaml/ocaml.git","svn_url":"https://github.com/ocaml/ocaml","homepage":"","size":236546,"stargazers_count":834,"watchers_count":834,"language":"OCaml","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":258,"mirror_url":null,"open_issues_count":112,"forks":258,"open_issues":112,"watchers":834,"default_branch":"trunk"}},"_links":{"self":{"href":"https://api.github.com/repos/ocaml/ocaml/pulls/386"},"html":{"href":"https://github.com/ocaml/ocaml/pull/386"},"issue":{"href":"https://api.github.com/repos/ocaml/ocaml/issues/386"},"comments":{"href":"https://api.github.com/repos/ocaml/ocaml/issues/386/comments"},"review_comments":{"href":"https://api.github.com/repos/ocaml/ocaml/pulls/386/comments"},"review_comment":{"href":"https://api.github.com/repos/ocaml/ocaml/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ocaml/ocaml/pulls/386/commits"},"statuses":{"href":"https://api.github.com/repos/ocaml/ocaml/statuses/ffd927ebd5793daf4d8bfe18e918c2938e81c04e"}}}}
{"actor":{"display_login":"Kakadu"}}