{"action":"created","comment":{"url":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls/comments/30561278","id":30561278,"diff_hunk":"@@ -65,11 +111,302 @@ namespace hpx { namespace parallel { HPX_INLINE_NAMESPACE(v1)\n         {\n             return *this;\n         }\n+\n+        /// Create a new sequential_task_execution_policy from the given\n+        /// executor\n+        ///\n+        /// \\tparam Executor    The type of the executor to associate with this\n+        ///                     execution policy.\n+        ///\n+        /// \\param exec         [in] The executor to use for the\n+        ///                     execution of the parallel algorithm the\n+        ///                     returned execution policy is used with.\n+        ///\n+        /// \\note Requires: is_executor<Executor>::value is true\n+        ///\n+        /// \\returns The new parallel_task_execution_policy\n+        ///\n+        template <typename Executor>\n+        typename rebind_executor<\n+            sequential_task_execution_policy, Executor\n+        >::type\n+        on(Executor& exec) const\n+        {\n+            BOOST_STATIC_ASSERT(is_executor<Executor>::value);\n+\n+            typedef typename rebind_executor<\n+                sequential_task_execution_policy, Executor\n+            >::type rebound_type;\n+            return rebound_type(exec);\n+        }\n+\n+        /// Return the associated executor object.\n+        static executor_type& executor()\n+        {\n+            static parallel::sequential_executor exec;\n+            return exec;\n+        }\n     };\n \n     /// Default sequential task execution policy object.\n     static sequential_task_execution_policy const seq_task;\n \n+    /// Extension: The class sequential_task_execution_policy_shim is an\n+    /// execution policy type used as a unique type to disambiguate parallel\n+    /// algorithm overloading based on combining a underlying\n+    /// \\a sequential_task_execution_policy and an executor and indicate that\n+    /// a parallel algorithm's execution may not be parallelized  (has to run\n+    /// sequentially).\n+    ///\n+    /// The algorithm returns a future representing the result of the\n+    /// corresponding algorithm when invoked with the\n+    /// sequential_execution_policy.\n+    template <typename Executor>\n+    struct sequential_task_execution_policy_shim\n+      : sequential_task_execution_policy\n+    {\n+        /// The type of the executor associated with this execution policy\n+        typedef Executor executor_type;\n+\n+        /// The category of the execution agents created by this execution\n+        /// policy.\n+        typedef typename executor_traits<executor_type>::execution_category\n+            execution_category;\n+\n+        /// Rebind the type of executor used by this execution policy. The\n+        /// execution category of Executor shall not be weaker than that of\n+        /// this execution policy\n+        template <typename Executor_>\n+        struct rebind\n+        {\n+            /// The type of the rebound execution policy\n+            typedef sequential_task_execution_policy_shim<Executor_> type;\n+        };\n+\n+        /// \\cond NOINTERNAL\n+        static std::size_t get_chunk_size() { return 0; }\n+        /// \\endcond\n+\n+        /// Create a new sequential_task_execution_policy from itself\n+        ///\n+        /// \\param tag          [in] Specify that the corresponding asynchronous\n+        ///                     execution policy should be used\n+        ///\n+        /// \\returns The new sequential_task_execution_policy\n+        ///\n+        sequential_task_execution_policy_shim operator()(\n+            task_execution_policy_tag tag) const\n+        {\n+            return *this;\n+        }\n+\n+        /// Create a new sequential_task_execution_policy_shim from the given\n+        /// executor\n+        ///\n+        /// \\tparam Executor    The type of the executor to associate with this\n+        ///                     execution policy.\n+        ///\n+        /// \\param exec         [in] The executor to use for the\n+        ///                     execution of the parallel algorithm the\n+        ///                     returned execution policy is used with.\n+        ///\n+        /// \\note Requires: is_executor<Executor>::value is true\n+        ///\n+        /// \\returns The new parallel_task_execution_policy\n+        ///\n+        template <typename Executor_>\n+        typename rebind_executor<\n+            sequential_task_execution_policy, Executor_\n+        >::type\n+        on(Executor_& exec) const\n+        {\n+            BOOST_STATIC_ASSERT(is_executor<Executor_>::value);\n+\n+            typedef typename rebind_executor<\n+                sequential_task_execution_policy, Executor_\n+            >::type rebound_type;\n+            return rebound_type(exec);\n+        }\n+\n+        /// Return the associated executor object.\n+        Executor& executor() { return exec_; }\n+        /// Return the associated executor object.\n+        Executor const& executor() const { return exec_; }\n+\n+    private:\n+        /// \\cond NOINTERNAL\n+        friend struct sequential_task_execution_policy;\n+        template <typename> friend struct sequential_execution_policy_shim;","path":"hpx/parallel/execution_policy.hpp","position":221,"original_position":221,"commit_id":"694c85e433f726fbb8b9d10922e5874b3ba95b3d","original_commit_id":"2880c8b2e67965744e3dc71fcb238df48d9fd2a8","user":{"login":"dcbdan","id":10456396,"avatar_url":"https://avatars.githubusercontent.com/u/10456396?v=3","gravatar_id":"","url":"https://api.github.com/users/dcbdan","html_url":"https://github.com/dcbdan","followers_url":"https://api.github.com/users/dcbdan/followers","following_url":"https://api.github.com/users/dcbdan/following{/other_user}","gists_url":"https://api.github.com/users/dcbdan/gists{/gist_id}","starred_url":"https://api.github.com/users/dcbdan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcbdan/subscriptions","organizations_url":"https://api.github.com/users/dcbdan/orgs","repos_url":"https://api.github.com/users/dcbdan/repos","events_url":"https://api.github.com/users/dcbdan/events{/privacy}","received_events_url":"https://api.github.com/users/dcbdan/received_events","type":"User","site_admin":false},"body":"Should this be `template <typename> friend struct sequential_task_execution_policy_shim` since `sequential_execution_policy_shim::rebind::type` typedefs from a `sequential_execution_policy_shim`?","created_at":"2015-05-19T00:56:29Z","updated_at":"2015-05-19T00:56:29Z","html_url":"https://github.com/STEllAR-GROUP/hpx/pull/1510#discussion_r30561278","pull_request_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls/1510","_links":{"self":{"href":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls/comments/30561278"},"html":{"href":"https://github.com/STEllAR-GROUP/hpx/pull/1510#discussion_r30561278"},"pull_request":{"href":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls/1510"}}},"pull_request":{"url":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls/1510","id":35420916,"html_url":"https://github.com/STEllAR-GROUP/hpx/pull/1510","diff_url":"https://github.com/STEllAR-GROUP/hpx/pull/1510.diff","patch_url":"https://github.com/STEllAR-GROUP/hpx/pull/1510.patch","issue_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/issues/1510","number":1510,"state":"open","locked":false,"title":"Attempt at designing new executor infrastructure","user":{"login":"hkaiser","id":568063,"avatar_url":"https://avatars.githubusercontent.com/u/568063?v=3","gravatar_id":"","url":"https://api.github.com/users/hkaiser","html_url":"https://github.com/hkaiser","followers_url":"https://api.github.com/users/hkaiser/followers","following_url":"https://api.github.com/users/hkaiser/following{/other_user}","gists_url":"https://api.github.com/users/hkaiser/gists{/gist_id}","starred_url":"https://api.github.com/users/hkaiser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hkaiser/subscriptions","organizations_url":"https://api.github.com/users/hkaiser/orgs","repos_url":"https://api.github.com/users/hkaiser/repos","events_url":"https://api.github.com/users/hkaiser/events{/privacy}","received_events_url":"https://api.github.com/users/hkaiser/received_events","type":"User","site_admin":false},"body":"This pull request is mainly to gather comments with regard to a new executor infrastructure I'd like to propose to add to HPX. The interfaces are motivated by [N4406](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4406.pdf), a recent proposal presented at the Spring 2015 C++ standardization meeting in Lenexa.\r\n\r\nThe short idea is that an executor exposes one to four functions:\r\n\r\n    // single task asynchronous scheduling\r\n    template <typename F>\r\n        future<result_of_t<F()>> async_execute(F f);\r\n\r\n    // bulk task asynchronous scheduling\r\n    template <typename F, typename Shape>\r\n        future<void> async_execute(F f, Shape const& shape);\r\n\r\n    // single task synchronous execution\r\n    template <typename F>\r\n        result_of_t<F()> execute(F f);\r\n\r\n    // bulk task synchronous execution\r\n    template <typename F, typename Shape>\r\n        void execute(F f, Shape const& shape);\r\n\r\nIt is however sufficient to implement just one of those (or none, see below). The Shape is required to expose the concept of a Range (i.e. `std::begin(r)` and `std::end(r)` are valid - this btw diverges from N4406), where the function is invoked for each of the elements of that range. Using the Range concept will seamlessly integrate executors with the upcoming work on ranges in the standard library.\r\n\r\nPlease note, that N4406 for the first time in standardization proposals pervasively uses `future<>`s for representing asynchronous results, which is most likely influenced by our work.\r\n\r\nThis also introduces a new [`template <typename Executor> executor_trait`](https://github.com/STEllAR-GROUP/hpx/blob/n4406/hpx/parallel/executors/executor_traits.hpp#L396) which is used to access any of that functionality (it exposes a set of very similar functions itself). The trait also supplies the missing functionality by redirecting the calls if the executor misses some of the functions listed above. All of the executor functionality is invoked through the traits interface, it will be never be invoked directly.\r\n\r\nAs an example, this pull request ports the `task_block` facility showing how the trait can be used (for the related change see [here](https://github.com/STEllAR-GROUP/hpx/commit/4d08d617bd446940cd14564a3d5288d1c97b7eaa?diff=split#diff-f01ab9eeefaa6c066457eec1f0a45bd7L270).\r\n\r\nThe trait provides a convenient interface to abstract all of the information about where and how something is executed, which makes it a perfect lower level API for our needs. For now this PR provides simple [`sequential_executor`](https://github.com/STEllAR-GROUP/hpx/blob/n4406/hpx/parallel/executors/sequential_executor.hpp) and [`parallel_executor`](https://github.com/STEllAR-GROUP/hpx/blob/n4406/hpx/parallel/executors/parallel_executor.hpp) implementations only, but many others can be easily added (NUMA-aware, remote, you name it).\r\n\r\nThe `parallel_executor` is an example for an executor implementing none of the functions mentioned above as all of the necessary boilerplate is already provided by the default implementation of the `executor_traits` class.\r\n\r\nThe second major change (addition) is some integration of the existing execution_policies with the new executors. All of the execution policies (`seq`, `par`, etc.) now have an added `on()` member function enabling their association with an executor. For example:\r\n\r\n    my_executor exec;\r\n    define_task_block(par.on(exec), [](auto& tb) {...});\r\n\r\nNote that the executor is not type erased anymore, but the executor type is part of the type of the execution policy rturned from `on()`.\r\n\r\nGenerally to explain the difference between an execution policy and an executor: the execution policy (in this case `par`) states the user's guarantee that the scheduled tasks *can* be run in parallel (it's race free). The executor defines *how* a scheduled task is actually run. Every execution policy now has an associated default executor which is used when `on()` is not applied (for instance, `par` is associated with the new `parallel_executor`).\r\n\r\nFuture steps (after refining and possibly merging this PR) would be (open for discussions as well):\r\n\r\n- [x] ensure that any of the combinations of execution policies and executors does degrade to the most restricted requirement (i.e. `par.on(sequential_executor())` should run things sequentially, etc.)\r\n- [x] port all existing parallel algorithms to use executors\r\n- [ ] adapt the existing distribution policies (such as `colocating_policy`) to be usable as executors\r\n- [ ] port all of our `async` infrastructure to use executors\r\n- [ ] add fire & forget semantics to executors and the executor_trait (to be able to port the `apply` infrastructure as well)\r\n- [x] adapt the old `threads::executor` implementations (by supplying a specialization of executor_traits) to be usable as executors, also remove the still existing API facilities to work with those directly\r\n- [ ] Some of the tests are still disabled as they currently fail (for unrelated reasons, those can be enabled, once #1506 has been closed).\r\n\r\n","created_at":"2015-05-14T13:26:40Z","updated_at":"2015-05-19T00:56:29Z","closed_at":null,"merged_at":null,"merge_commit_sha":"27c15fbf61fee755eb3487bd861db43c1b27572e","assignee":null,"milestone":{"url":"https://api.github.com/repos/STEllAR-GROUP/hpx/milestones/24","html_url":"https://github.com/STEllAR-GROUP/hpx/milestones/0.9.11","labels_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/milestones/24/labels","id":997180,"number":24,"title":"0.9.11","description":"","creator":{"login":"hkaiser","id":568063,"avatar_url":"https://avatars.githubusercontent.com/u/568063?v=3","gravatar_id":"","url":"https://api.github.com/users/hkaiser","html_url":"https://github.com/hkaiser","followers_url":"https://api.github.com/users/hkaiser/followers","following_url":"https://api.github.com/users/hkaiser/following{/other_user}","gists_url":"https://api.github.com/users/hkaiser/gists{/gist_id}","starred_url":"https://api.github.com/users/hkaiser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hkaiser/subscriptions","organizations_url":"https://api.github.com/users/hkaiser/orgs","repos_url":"https://api.github.com/users/hkaiser/repos","events_url":"https://api.github.com/users/hkaiser/events{/privacy}","received_events_url":"https://api.github.com/users/hkaiser/received_events","type":"User","site_admin":false},"open_issues":46,"closed_issues":76,"state":"open","created_at":"2015-02-26T15:57:10Z","updated_at":"2015-05-19T00:51:01Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls/1510/commits","review_comments_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls/1510/comments","review_comment_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls/comments{/number}","comments_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/issues/1510/comments","statuses_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/statuses/694c85e433f726fbb8b9d10922e5874b3ba95b3d","head":{"label":"STEllAR-GROUP:n4406","ref":"n4406","sha":"694c85e433f726fbb8b9d10922e5874b3ba95b3d","user":{"login":"STEllAR-GROUP","id":1780988,"avatar_url":"https://avatars.githubusercontent.com/u/1780988?v=3","gravatar_id":"","url":"https://api.github.com/users/STEllAR-GROUP","html_url":"https://github.com/STEllAR-GROUP","followers_url":"https://api.github.com/users/STEllAR-GROUP/followers","following_url":"https://api.github.com/users/STEllAR-GROUP/following{/other_user}","gists_url":"https://api.github.com/users/STEllAR-GROUP/gists{/gist_id}","starred_url":"https://api.github.com/users/STEllAR-GROUP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/STEllAR-GROUP/subscriptions","organizations_url":"https://api.github.com/users/STEllAR-GROUP/orgs","repos_url":"https://api.github.com/users/STEllAR-GROUP/repos","events_url":"https://api.github.com/users/STEllAR-GROUP/events{/privacy}","received_events_url":"https://api.github.com/users/STEllAR-GROUP/received_events","type":"Organization","site_admin":false},"repo":{"id":4455628,"name":"hpx","full_name":"STEllAR-GROUP/hpx","owner":{"login":"STEllAR-GROUP","id":1780988,"avatar_url":"https://avatars.githubusercontent.com/u/1780988?v=3","gravatar_id":"","url":"https://api.github.com/users/STEllAR-GROUP","html_url":"https://github.com/STEllAR-GROUP","followers_url":"https://api.github.com/users/STEllAR-GROUP/followers","following_url":"https://api.github.com/users/STEllAR-GROUP/following{/other_user}","gists_url":"https://api.github.com/users/STEllAR-GROUP/gists{/gist_id}","starred_url":"https://api.github.com/users/STEllAR-GROUP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/STEllAR-GROUP/subscriptions","organizations_url":"https://api.github.com/users/STEllAR-GROUP/orgs","repos_url":"https://api.github.com/users/STEllAR-GROUP/repos","events_url":"https://api.github.com/users/STEllAR-GROUP/events{/privacy}","received_events_url":"https://api.github.com/users/STEllAR-GROUP/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/STEllAR-GROUP/hpx","description":"A general purpose C++ runtime system for parallel and distributed applications of any scale","fork":false,"url":"https://api.github.com/repos/STEllAR-GROUP/hpx","forks_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/forks","keys_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/teams","hooks_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/hooks","issue_events_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/issues/events{/number}","events_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/events","assignees_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/assignees{/user}","branches_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/branches{/branch}","tags_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/tags","blobs_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/git/refs{/sha}","trees_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/statuses/{sha}","languages_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/languages","stargazers_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/stargazers","contributors_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/contributors","subscribers_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/subscribers","subscription_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/subscription","commits_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/commits{/sha}","git_commits_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/git/commits{/sha}","comments_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/comments{/number}","issue_comment_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/issues/comments{/number}","contents_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/contents/{+path}","compare_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/merges","archive_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/downloads","issues_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/issues{/number}","pulls_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls{/number}","milestones_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/milestones{/number}","notifications_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/labels{/name}","releases_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/releases{/id}","created_at":"2012-05-26T15:02:39Z","updated_at":"2015-05-15T22:46:01Z","pushed_at":"2015-05-19T00:53:41Z","git_url":"git://github.com/STEllAR-GROUP/hpx.git","ssh_url":"git@github.com:STEllAR-GROUP/hpx.git","clone_url":"https://github.com/STEllAR-GROUP/hpx.git","svn_url":"https://github.com/STEllAR-GROUP/hpx","homepage":"http://stellar-group.org/libraries/hpx","size":398304,"stargazers_count":270,"watchers_count":270,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":88,"mirror_url":null,"open_issues_count":112,"forks":88,"open_issues":112,"watchers":270,"default_branch":"master"}},"base":{"label":"STEllAR-GROUP:master","ref":"master","sha":"b11d5d96e1d9b542cf3fce7896b68a7109012872","user":{"login":"STEllAR-GROUP","id":1780988,"avatar_url":"https://avatars.githubusercontent.com/u/1780988?v=3","gravatar_id":"","url":"https://api.github.com/users/STEllAR-GROUP","html_url":"https://github.com/STEllAR-GROUP","followers_url":"https://api.github.com/users/STEllAR-GROUP/followers","following_url":"https://api.github.com/users/STEllAR-GROUP/following{/other_user}","gists_url":"https://api.github.com/users/STEllAR-GROUP/gists{/gist_id}","starred_url":"https://api.github.com/users/STEllAR-GROUP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/STEllAR-GROUP/subscriptions","organizations_url":"https://api.github.com/users/STEllAR-GROUP/orgs","repos_url":"https://api.github.com/users/STEllAR-GROUP/repos","events_url":"https://api.github.com/users/STEllAR-GROUP/events{/privacy}","received_events_url":"https://api.github.com/users/STEllAR-GROUP/received_events","type":"Organization","site_admin":false},"repo":{"id":4455628,"name":"hpx","full_name":"STEllAR-GROUP/hpx","owner":{"login":"STEllAR-GROUP","id":1780988,"avatar_url":"https://avatars.githubusercontent.com/u/1780988?v=3","gravatar_id":"","url":"https://api.github.com/users/STEllAR-GROUP","html_url":"https://github.com/STEllAR-GROUP","followers_url":"https://api.github.com/users/STEllAR-GROUP/followers","following_url":"https://api.github.com/users/STEllAR-GROUP/following{/other_user}","gists_url":"https://api.github.com/users/STEllAR-GROUP/gists{/gist_id}","starred_url":"https://api.github.com/users/STEllAR-GROUP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/STEllAR-GROUP/subscriptions","organizations_url":"https://api.github.com/users/STEllAR-GROUP/orgs","repos_url":"https://api.github.com/users/STEllAR-GROUP/repos","events_url":"https://api.github.com/users/STEllAR-GROUP/events{/privacy}","received_events_url":"https://api.github.com/users/STEllAR-GROUP/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/STEllAR-GROUP/hpx","description":"A general purpose C++ runtime system for parallel and distributed applications of any scale","fork":false,"url":"https://api.github.com/repos/STEllAR-GROUP/hpx","forks_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/forks","keys_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/teams","hooks_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/hooks","issue_events_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/issues/events{/number}","events_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/events","assignees_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/assignees{/user}","branches_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/branches{/branch}","tags_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/tags","blobs_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/git/refs{/sha}","trees_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/statuses/{sha}","languages_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/languages","stargazers_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/stargazers","contributors_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/contributors","subscribers_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/subscribers","subscription_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/subscription","commits_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/commits{/sha}","git_commits_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/git/commits{/sha}","comments_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/comments{/number}","issue_comment_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/issues/comments{/number}","contents_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/contents/{+path}","compare_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/merges","archive_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/downloads","issues_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/issues{/number}","pulls_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls{/number}","milestones_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/milestones{/number}","notifications_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/labels{/name}","releases_url":"https://api.github.com/repos/STEllAR-GROUP/hpx/releases{/id}","created_at":"2012-05-26T15:02:39Z","updated_at":"2015-05-15T22:46:01Z","pushed_at":"2015-05-19T00:53:41Z","git_url":"git://github.com/STEllAR-GROUP/hpx.git","ssh_url":"git@github.com:STEllAR-GROUP/hpx.git","clone_url":"https://github.com/STEllAR-GROUP/hpx.git","svn_url":"https://github.com/STEllAR-GROUP/hpx","homepage":"http://stellar-group.org/libraries/hpx","size":398304,"stargazers_count":270,"watchers_count":270,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":88,"mirror_url":null,"open_issues_count":112,"forks":88,"open_issues":112,"watchers":270,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls/1510"},"html":{"href":"https://github.com/STEllAR-GROUP/hpx/pull/1510"},"issue":{"href":"https://api.github.com/repos/STEllAR-GROUP/hpx/issues/1510"},"comments":{"href":"https://api.github.com/repos/STEllAR-GROUP/hpx/issues/1510/comments"},"review_comments":{"href":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls/1510/comments"},"review_comment":{"href":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/STEllAR-GROUP/hpx/pulls/1510/commits"},"statuses":{"href":"https://api.github.com/repos/STEllAR-GROUP/hpx/statuses/694c85e433f726fbb8b9d10922e5874b3ba95b3d"}}}}