{"action":"created","comment":{"url":"https://api.github.com/repos/chapel-lang/chapel/pulls/comments/37481262","id":37481262,"diff_hunk":"@@ -0,0 +1,312 @@\n+<!DOCTYPE HTML>\n+<html>\n+<head>\n+</head>\n+<body bgcolor=\"ffffff\">\n+<div>\n+<img src=\"chapel-a.png\" style=\"float:left\">\n+<img src=\"cray-a.png\" style=\"float:right\">\n+<div style=\"text-align:center\">\n+<pre>\n+\n+\n+\n+</pre>\n+<h1>chplvis</h1>\n+<h3>A task and communication debug tool for Chapel</h3>\n+</div>\n+</div>\n+<br/>\n+<div style=\"margin:40px\">\n+<p>\n+<em>chplvis</em> is a tool to help the Chapel program visualize their\n+Chapel program's tasks and communication between locales.  Using the\n+standard module <em>VisualDebug</em>, the programmer controls what part\n+of their program generates information for chplvis.  During the run of\n+a program using the <em>VisualDebug</em> module, data files are\n+created that are used as input for <em>chplvis</em>.  This document\n+will help you understand the <em>VisualDebug</em> module and the\n+<em>chplvis</em> tool.\n+</p>\n+\n+<h3>Setup</h3>\n+<p>\n+<em>chplvis</em> is built by giving the command <em>\"make chplvis\"</em>\n+at the top level of the chapel tree.  This also builds\n+the GUI tool, <em>FLTK</em>, required to build and\n+run <em>chplvis</em>.  (Note: Some versions of Linux may require the\n+standard package <em>libx11-dev</em> to be installed before <em>FLTK</em> will\n+compile properly.)  To get the most out of this primer, you should\n+compile and run the example programs and examine\n+the <em>VisualDebug</em> results with <em>chplvis</em>.  The graphics\n+in this primer were produced on a system using the <em>fifo</em> package\n+instead of <em>qthreads</em> for the tasking layer.   If you use\n+<em>qthreads</em>, your task count may differ from the examples.\n+</p>\n+\n+<h3>Chapel Source Code</h3>\n+<p>\n+To use <em>chplvis</em>, the programmer adds code to their program.  In many\n+cases, the programmer may want to investigate only part of the program.  This\n+is accomplished by having functions <em>startVdebug(name)</em> and\n+<em>stopVdebug()</em> to control where to start and stop the instrumentation\n+of their program.  Compilation and execution of these programs remain the\n+same.  When the <em>startVdebug(name)</em> is executed, a collection\n+of files, one per locale, are created in a directory with the <em>name</em> given\n+in <em>startVdebug(name)</em>.\n+</p>\n+\n+<h4>Example 1</h4>\n+<p>\n+Consider the chapel program: (prog1.chpl)\n+<pre style=\"margin:20px\">\n+//  Example 1 using visual debug\n+\n+use VisualDebug;\n+\n+startVdebug(\"E1\");\n+\n+coforall loc in Locales do\n+   on loc do writeln(\"Hello from locale \" + here.id + \".\");\n+\n+stopVdebug();\n+</pre>\n+</p>\n+\n+<p>\n+Compiling the program and running it with the options \"-nl 6\" will then\n+produce a directory called <em>E1</em> containing 6 data files, one\n+for each of the locales and named <em>E1-n</em> where <em>n</em> is\n+replaced with the locale number, a number from 0 to 5.  Once this\n+directory is created, one can run chplvis as <em>chplvis E1</em> or\n+simply <em>chplvis</em> and then opening the file <em>E1/E1-0</em>\n+from the <em>file/open</em> menu.  The resulting display is:\n+</p>\n+<img src=\"E1.png\" style=\"margin:10px; border: 2px solid black;\">\n+<p>\n+(Note: This image is from an X11 display.  On OS-X, the menu bar\n+will be on the normal menu bar at the top of the screen and will\n+not show in the main window.)\n+</p>\n+<h4>chplvis Elements</h4>\n+<ul>\n+<li><em>Locale</em> is represented by a box.  The initial display\n+draws the color of the locale to represent the number of tasks run\n+at that locale.   For example 1, we can see that locale 0 has the\n+most tasks and we expect that to be 13 since that is the maximum\n+number of tasks as shown by the color reference at the top of the\n+window.</li>\n+<li><em>Communication links</em> are shown by lines between two\n+locale boxes.  The color of the line adjacent to a locale box \n+represents the data being sent to that locale from the locale on\n+the other end.   For example 1, the line between locale 0 and\n+locale 1 is colored red next to locale 0.  This means that there\n+is a lot of communications <em>into locale 0</em> from locale 1.\n+The blue line next to locale 1 means that there is little \n+communication <em>into locale 1</em> from locale 0.   <em>Note:</em>\n+If two locales do not communicate, no line is drawn between them.\n+If communication is only one way, the communication color for\n+<em>no communication</em> is gray.</li>\n+<li><em>Data menu</em> controls what data is used for display\n+colors.   This initial data is for number of tasks for locales\n+and number of communications for the communication links.\n+For locales, one can select number of tasks, CPU time at the locale\n+or clock time at the locale.  Clock time is normally very close to\n+equal across all locales.  For the communication links, one can\n+select number of communications or size of data sent.</li>\n+</ul>\n+<h4>Display Interaction</h4>\n+<p>\n+Clicking on elements of the display will bring up more information.\n+Clicking on a locale will open a window for that locale showing\n+information for that locale.  For example, in example 1, clicking on\n+locale 0 will produce a window that looks like:\n+</p>\n+<img src=\"E1-L0.png\" style=\"margin:10px; border: 2px solid black;\">\n+<p>\n+(Note: There is overhead generated in tasks, CPU time and clock\n+time for the Visual Debug function calls.  <em>chplvis</em> removes\n+from the task count the overhead tasks but it can not remove the\n+CPU and clock time overhead.)\n+</p>\n+<p>\n+Clicking on the red part of the line between locale 0 and locale 1\n+will produce a window that looks like:\n+</p>\n+<img src=\"E1-C1.0.png\" style=\"margin:10px; border: 2px solid black;\">\n+<p>\n+It is important to notice the direction of the \"arrow\" in the header\n+for the windows.   This is for communication from locale 1 to locale 0.\n+The total communication was 12.  It is further broken out into three\n+components:\n+<ul>\n+  <li> <em>Gets:</em> This is a communication initiated by locale 0 to\n+get a data located on locale 1.</li>\n+  <li> <em>Puts:</em> This is a communication initiated by <em>locale 1</em>\n+to put data from locale 1 onto locale 0.</li>\n+  <li> <em>Forks:</em> This where <em>locale 1</em> starts a task running\n+on locale 0.  As part of the task start, a block of data is sent to locale 0\n+as an argument to the task.  This data is considered a communication\n+by <em>chplvis</em></li>\n+</ul>\n+\n+<h4>Example 2</h4>\n+In many programs, one will want to look at a number of small parts of\n+their program in addition to seeing the total statistics.  prog2.chpl\n+gives an example of using the <em>VisualDebug</em> functions\n+<em>tagVdebug(name)</em> and <em>pauseVdebug()</em>.\n+<pre style=\"margin:20px\">\n+// Example 2 of use of VisualDebug module and chplvis tool.\n+\n+use BlockDist;\n+use VisualDebug;\n+\n+config var ncells = 10;\n+\n+proc main() {\n+\n+   // Create a couple of domains and a block mapped data array.\n+   const Domain = { 1 .. ncells };\n+   const mapDomain = Domain dmapped Block(Domain);\n+\n+   var  data : [mapDomain] int = 1;\n+\n+   // Start VisualDebug here\n+   startVdebug (\"E2\");\n+\n+   // First computation step ... a simple forall\n+   forall i in Domain do data[i] += here.id + 1;\n+\n+   // Write the result, we want to see the results of the above\n+   // so we tag before we continue.\n+   tagVdebug(\"writeln 1\");\n+   writeln(\"data= \", data);\n+\n+   // Second computation step ... using the distributed domain\n+   tagVdebug(\"step 2\");\n+   forall i in mapDomain do data[i] += here.id+1;\n+\n+   // Don't capture for the writeln\n+   pauseVdebug();\n+   writeln(\"data2= \", data);\n+\n+   // Reduction step\n+   tagVdebug(\"reduce\");\n+   var i = + reduce data;\n+\n+   // done with visual debug\n+   stopVdebug();\n+\n+   writeln (\"sum is \" + i + \".\");\n+}\n+</pre>\n+<p>\n+Note that the <em>startVdebug(\"E2\");</em> is places after the declarations","path":"test/release/examples/primers/chplvis/chplvis.html","position":204,"original_position":204,"commit_id":"837226248346161b30380aa5d73378bc23029b63","original_commit_id":"837226248346161b30380aa5d73378bc23029b63","user":{"login":"lydia-duncan","id":2454710,"avatar_url":"https://avatars.githubusercontent.com/u/2454710?v=3","gravatar_id":"","url":"https://api.github.com/users/lydia-duncan","html_url":"https://github.com/lydia-duncan","followers_url":"https://api.github.com/users/lydia-duncan/followers","following_url":"https://api.github.com/users/lydia-duncan/following{/other_user}","gists_url":"https://api.github.com/users/lydia-duncan/gists{/gist_id}","starred_url":"https://api.github.com/users/lydia-duncan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lydia-duncan/subscriptions","organizations_url":"https://api.github.com/users/lydia-duncan/orgs","repos_url":"https://api.github.com/users/lydia-duncan/repos","events_url":"https://api.github.com/users/lydia-duncan/events{/privacy}","received_events_url":"https://api.github.com/users/lydia-duncan/received_events","type":"User","site_admin":false},"body":"Typo on \"places\"?  I think it should be placed.  I would also expand \"the startVdebug();\" to \"the startVdebug() call\".","created_at":"2015-08-19T23:29:17Z","updated_at":"2015-08-19T23:29:17Z","html_url":"https://github.com/chapel-lang/chapel/pull/2345#discussion_r37481262","pull_request_url":"https://api.github.com/repos/chapel-lang/chapel/pulls/2345","_links":{"self":{"href":"https://api.github.com/repos/chapel-lang/chapel/pulls/comments/37481262"},"html":{"href":"https://github.com/chapel-lang/chapel/pull/2345#discussion_r37481262"},"pull_request":{"href":"https://api.github.com/repos/chapel-lang/chapel/pulls/2345"}}},"pull_request":{"url":"https://api.github.com/repos/chapel-lang/chapel/pulls/2345","id":42867716,"html_url":"https://github.com/chapel-lang/chapel/pull/2345","diff_url":"https://github.com/chapel-lang/chapel/pull/2345.diff","patch_url":"https://github.com/chapel-lang/chapel/pull/2345.patch","issue_url":"https://api.github.com/repos/chapel-lang/chapel/issues/2345","number":2345,"state":"open","locked":false,"title":"A chplvis primer","user":{"login":"tomyhoi","id":4999587,"avatar_url":"https://avatars.githubusercontent.com/u/4999587?v=3","gravatar_id":"","url":"https://api.github.com/users/tomyhoi","html_url":"https://github.com/tomyhoi","followers_url":"https://api.github.com/users/tomyhoi/followers","following_url":"https://api.github.com/users/tomyhoi/following{/other_user}","gists_url":"https://api.github.com/users/tomyhoi/gists{/gist_id}","starred_url":"https://api.github.com/users/tomyhoi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomyhoi/subscriptions","organizations_url":"https://api.github.com/users/tomyhoi/orgs","repos_url":"https://api.github.com/users/tomyhoi/repos","events_url":"https://api.github.com/users/tomyhoi/events{/privacy}","received_events_url":"https://api.github.com/users/tomyhoi/received_events","type":"User","site_admin":false},"body":"- A new directory under /test/release/examples/primer called chplvis\r\n- adds two simple test programs\r\n- adds a chplvis.html file and associated graphic elements to provide an introduction to chplvis","created_at":"2015-08-19T21:42:23Z","updated_at":"2015-08-19T23:29:17Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1e0f70e38a1ec7420478d0e57280ec4a126c3531","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/chapel-lang/chapel/pulls/2345/commits","review_comments_url":"https://api.github.com/repos/chapel-lang/chapel/pulls/2345/comments","review_comment_url":"https://api.github.com/repos/chapel-lang/chapel/pulls/comments{/number}","comments_url":"https://api.github.com/repos/chapel-lang/chapel/issues/2345/comments","statuses_url":"https://api.github.com/repos/chapel-lang/chapel/statuses/837226248346161b30380aa5d73378bc23029b63","head":{"label":"tomyhoi:primers-chplvis","ref":"primers-chplvis","sha":"837226248346161b30380aa5d73378bc23029b63","user":{"login":"tomyhoi","id":4999587,"avatar_url":"https://avatars.githubusercontent.com/u/4999587?v=3","gravatar_id":"","url":"https://api.github.com/users/tomyhoi","html_url":"https://github.com/tomyhoi","followers_url":"https://api.github.com/users/tomyhoi/followers","following_url":"https://api.github.com/users/tomyhoi/following{/other_user}","gists_url":"https://api.github.com/users/tomyhoi/gists{/gist_id}","starred_url":"https://api.github.com/users/tomyhoi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomyhoi/subscriptions","organizations_url":"https://api.github.com/users/tomyhoi/orgs","repos_url":"https://api.github.com/users/tomyhoi/repos","events_url":"https://api.github.com/users/tomyhoi/events{/privacy}","received_events_url":"https://api.github.com/users/tomyhoi/received_events","type":"User","site_admin":false},"repo":{"id":29214208,"name":"chapel","full_name":"tomyhoi/chapel","owner":{"login":"tomyhoi","id":4999587,"avatar_url":"https://avatars.githubusercontent.com/u/4999587?v=3","gravatar_id":"","url":"https://api.github.com/users/tomyhoi","html_url":"https://github.com/tomyhoi","followers_url":"https://api.github.com/users/tomyhoi/followers","following_url":"https://api.github.com/users/tomyhoi/following{/other_user}","gists_url":"https://api.github.com/users/tomyhoi/gists{/gist_id}","starred_url":"https://api.github.com/users/tomyhoi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomyhoi/subscriptions","organizations_url":"https://api.github.com/users/tomyhoi/orgs","repos_url":"https://api.github.com/users/tomyhoi/repos","events_url":"https://api.github.com/users/tomyhoi/events{/privacy}","received_events_url":"https://api.github.com/users/tomyhoi/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tomyhoi/chapel","description":"a Productive Parallel Programming Language","fork":true,"url":"https://api.github.com/repos/tomyhoi/chapel","forks_url":"https://api.github.com/repos/tomyhoi/chapel/forks","keys_url":"https://api.github.com/repos/tomyhoi/chapel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tomyhoi/chapel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tomyhoi/chapel/teams","hooks_url":"https://api.github.com/repos/tomyhoi/chapel/hooks","issue_events_url":"https://api.github.com/repos/tomyhoi/chapel/issues/events{/number}","events_url":"https://api.github.com/repos/tomyhoi/chapel/events","assignees_url":"https://api.github.com/repos/tomyhoi/chapel/assignees{/user}","branches_url":"https://api.github.com/repos/tomyhoi/chapel/branches{/branch}","tags_url":"https://api.github.com/repos/tomyhoi/chapel/tags","blobs_url":"https://api.github.com/repos/tomyhoi/chapel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tomyhoi/chapel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tomyhoi/chapel/git/refs{/sha}","trees_url":"https://api.github.com/repos/tomyhoi/chapel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tomyhoi/chapel/statuses/{sha}","languages_url":"https://api.github.com/repos/tomyhoi/chapel/languages","stargazers_url":"https://api.github.com/repos/tomyhoi/chapel/stargazers","contributors_url":"https://api.github.com/repos/tomyhoi/chapel/contributors","subscribers_url":"https://api.github.com/repos/tomyhoi/chapel/subscribers","subscription_url":"https://api.github.com/repos/tomyhoi/chapel/subscription","commits_url":"https://api.github.com/repos/tomyhoi/chapel/commits{/sha}","git_commits_url":"https://api.github.com/repos/tomyhoi/chapel/git/commits{/sha}","comments_url":"https://api.github.com/repos/tomyhoi/chapel/comments{/number}","issue_comment_url":"https://api.github.com/repos/tomyhoi/chapel/issues/comments{/number}","contents_url":"https://api.github.com/repos/tomyhoi/chapel/contents/{+path}","compare_url":"https://api.github.com/repos/tomyhoi/chapel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tomyhoi/chapel/merges","archive_url":"https://api.github.com/repos/tomyhoi/chapel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tomyhoi/chapel/downloads","issues_url":"https://api.github.com/repos/tomyhoi/chapel/issues{/number}","pulls_url":"https://api.github.com/repos/tomyhoi/chapel/pulls{/number}","milestones_url":"https://api.github.com/repos/tomyhoi/chapel/milestones{/number}","notifications_url":"https://api.github.com/repos/tomyhoi/chapel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tomyhoi/chapel/labels{/name}","releases_url":"https://api.github.com/repos/tomyhoi/chapel/releases{/id}","created_at":"2015-01-13T22:18:06Z","updated_at":"2015-04-02T20:48:54Z","pushed_at":"2015-08-19T21:51:43Z","git_url":"git://github.com/tomyhoi/chapel.git","ssh_url":"git@github.com:tomyhoi/chapel.git","clone_url":"https://github.com/tomyhoi/chapel.git","svn_url":"https://github.com/tomyhoi/chapel","homepage":"http://chapel.cray.com/","size":302648,"stargazers_count":0,"watchers_count":0,"language":"Chapel","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":"master"}},"base":{"label":"chapel-lang:master","ref":"master","sha":"98894519d3f20ce0cd49c0c9254b658a69cfccc4","user":{"login":"chapel-lang","id":7597261,"avatar_url":"https://avatars.githubusercontent.com/u/7597261?v=3","gravatar_id":"","url":"https://api.github.com/users/chapel-lang","html_url":"https://github.com/chapel-lang","followers_url":"https://api.github.com/users/chapel-lang/followers","following_url":"https://api.github.com/users/chapel-lang/following{/other_user}","gists_url":"https://api.github.com/users/chapel-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/chapel-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chapel-lang/subscriptions","organizations_url":"https://api.github.com/users/chapel-lang/orgs","repos_url":"https://api.github.com/users/chapel-lang/repos","events_url":"https://api.github.com/users/chapel-lang/events{/privacy}","received_events_url":"https://api.github.com/users/chapel-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":21663285,"name":"chapel","full_name":"chapel-lang/chapel","owner":{"login":"chapel-lang","id":7597261,"avatar_url":"https://avatars.githubusercontent.com/u/7597261?v=3","gravatar_id":"","url":"https://api.github.com/users/chapel-lang","html_url":"https://github.com/chapel-lang","followers_url":"https://api.github.com/users/chapel-lang/followers","following_url":"https://api.github.com/users/chapel-lang/following{/other_user}","gists_url":"https://api.github.com/users/chapel-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/chapel-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chapel-lang/subscriptions","organizations_url":"https://api.github.com/users/chapel-lang/orgs","repos_url":"https://api.github.com/users/chapel-lang/repos","events_url":"https://api.github.com/users/chapel-lang/events{/privacy}","received_events_url":"https://api.github.com/users/chapel-lang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/chapel-lang/chapel","description":"a Productive Parallel Programming Language","fork":false,"url":"https://api.github.com/repos/chapel-lang/chapel","forks_url":"https://api.github.com/repos/chapel-lang/chapel/forks","keys_url":"https://api.github.com/repos/chapel-lang/chapel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chapel-lang/chapel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chapel-lang/chapel/teams","hooks_url":"https://api.github.com/repos/chapel-lang/chapel/hooks","issue_events_url":"https://api.github.com/repos/chapel-lang/chapel/issues/events{/number}","events_url":"https://api.github.com/repos/chapel-lang/chapel/events","assignees_url":"https://api.github.com/repos/chapel-lang/chapel/assignees{/user}","branches_url":"https://api.github.com/repos/chapel-lang/chapel/branches{/branch}","tags_url":"https://api.github.com/repos/chapel-lang/chapel/tags","blobs_url":"https://api.github.com/repos/chapel-lang/chapel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chapel-lang/chapel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chapel-lang/chapel/git/refs{/sha}","trees_url":"https://api.github.com/repos/chapel-lang/chapel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chapel-lang/chapel/statuses/{sha}","languages_url":"https://api.github.com/repos/chapel-lang/chapel/languages","stargazers_url":"https://api.github.com/repos/chapel-lang/chapel/stargazers","contributors_url":"https://api.github.com/repos/chapel-lang/chapel/contributors","subscribers_url":"https://api.github.com/repos/chapel-lang/chapel/subscribers","subscription_url":"https://api.github.com/repos/chapel-lang/chapel/subscription","commits_url":"https://api.github.com/repos/chapel-lang/chapel/commits{/sha}","git_commits_url":"https://api.github.com/repos/chapel-lang/chapel/git/commits{/sha}","comments_url":"https://api.github.com/repos/chapel-lang/chapel/comments{/number}","issue_comment_url":"https://api.github.com/repos/chapel-lang/chapel/issues/comments{/number}","contents_url":"https://api.github.com/repos/chapel-lang/chapel/contents/{+path}","compare_url":"https://api.github.com/repos/chapel-lang/chapel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chapel-lang/chapel/merges","archive_url":"https://api.github.com/repos/chapel-lang/chapel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chapel-lang/chapel/downloads","issues_url":"https://api.github.com/repos/chapel-lang/chapel/issues{/number}","pulls_url":"https://api.github.com/repos/chapel-lang/chapel/pulls{/number}","milestones_url":"https://api.github.com/repos/chapel-lang/chapel/milestones{/number}","notifications_url":"https://api.github.com/repos/chapel-lang/chapel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chapel-lang/chapel/labels{/name}","releases_url":"https://api.github.com/repos/chapel-lang/chapel/releases{/id}","created_at":"2014-07-09T18:15:54Z","updated_at":"2015-08-14T23:17:13Z","pushed_at":"2015-08-19T22:51:07Z","git_url":"git://github.com/chapel-lang/chapel.git","ssh_url":"git@github.com:chapel-lang/chapel.git","clone_url":"https://github.com/chapel-lang/chapel.git","svn_url":"https://github.com/chapel-lang/chapel","homepage":"http://chapel.cray.com/","size":482518,"stargazers_count":137,"watchers_count":137,"language":"Chapel","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":50,"mirror_url":null,"open_issues_count":6,"forks":50,"open_issues":6,"watchers":137,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/chapel-lang/chapel/pulls/2345"},"html":{"href":"https://github.com/chapel-lang/chapel/pull/2345"},"issue":{"href":"https://api.github.com/repos/chapel-lang/chapel/issues/2345"},"comments":{"href":"https://api.github.com/repos/chapel-lang/chapel/issues/2345/comments"},"review_comments":{"href":"https://api.github.com/repos/chapel-lang/chapel/pulls/2345/comments"},"review_comment":{"href":"https://api.github.com/repos/chapel-lang/chapel/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/chapel-lang/chapel/pulls/2345/commits"},"statuses":{"href":"https://api.github.com/repos/chapel-lang/chapel/statuses/837226248346161b30380aa5d73378bc23029b63"}}}}