{"action":"created","comment":{"url":"https://api.github.com/repos/triSYCL/triSYCL/pulls/comments/123750441","pull_request_review_id":45984511,"id":123750441,"diff_hunk":"@@ -5,70 +5,196 @@\n     triSYCL wrapper for OpenCL types\n \n     Joan DOT Thibault AT ens-rennes DOT fr\n+    a.doumoulakis AT gmail DOT com\n \n     This file is distributed under the University of Illinois Open Source\n     License. See LICENSE.TXT for details.\n */\n \n-// Only provide OpenCL interoperability types when OpenCL is in use\n+#include <boost/preprocessor/cat.hpp>\n+#include <boost/preprocessor/comparison/equal.hpp>\n+#include <boost/preprocessor/control/if.hpp>\n+#include <boost/preprocessor/facilities/empty.hpp>\n+#include <boost/preprocessor/list/for_each.hpp>\n+#include <boost/preprocessor/logical/not.hpp>\n+#include <boost/preprocessor/logical/or.hpp>\n+#include <boost/preprocessor/seq/for_each.hpp>\n+#include <boost/preprocessor/tuple/to_list.hpp>\n+#include <boost/preprocessor/tuple/elem.hpp>\n+\n #ifdef TRISYCL_OPENCL\n+#include <boost/compute/types/fundamental.hpp>\n+#else\n+#include \"CL/sycl/vec.hpp\"\n+#endif\n \n-#include <boost/compute.hpp>\n \n namespace cl {\n namespace sycl {\n \n-/** Implement OpenCL interoperability types\n-\n-    \\todo Implement all of them\n+// List of the cl_types that will be iterated upon to generate the vector types\n+#define SCALAR_TYPES                                                           \\\n+  BOOST_PP_TUPLE_TO_LIST(                                                      \\\n+    10,                                                                        \\\n+    (                                                                          \\\n+      ( char   ,cl_char,   char),                                              \\\n+      ( uchar  ,cl_uchar,  unsigned char),                                     \\\n+      ( short  ,cl_short,  short int),                                         \\\n+      ( ushort ,cl_ushort, unsigned short int),                                \\\n+      ( int    ,cl_int,    int),                                               \\\n+      ( uint   ,cl_uint,   unsigned int),                                      \\\n+      ( long   ,cl_long,   long int),                                          \\\n+      ( ulong  ,cl_ulong,  unsigned long int),                                 \\\n+      ( float  ,cl_float,  float),                                             \\\n+      ( double ,cl_double, double)                                             \\\n+      )                                                                        \\\n+    )\n+\n+// Accessors to get the type name, the cl_type name and the actual type\n+#define TYPE_NAME(T)         BOOST_PP_TUPLE_ELEM(3, 0, T)\n+#define TYPE_CL_NAME(T)      BOOST_PP_TUPLE_ELEM(3, 1, T)\n+#define TYPE_ACTUAL_NAME(T)  BOOST_PP_TUPLE_ELEM(3, 2, T)\n+\n+// Return the name of the type concatenated with the size unless the size is 1\n+#define SIZED_NAME(T, size)                      \\\n+  BOOST_PP_IF(                                   \\\n+    BOOST_PP_EQUAL(size, 1), T,                  \\\n+    BOOST_PP_CAT(T, size))\n+\n+#ifndef TRISYCL_OPENCL\n+\n+/* If we are not using Boost Compute we just every cl_type with its \\c vec\n+   equivalent\n */\n+#define DEFINE_TYPES(scalar, i)                  \\\n+  using SIZED_NAME(TYPE_CL_NAME(scalar), i) =    \\\n+    BOOST_PP_CAT(TYPE_NAME(scalar), i);\n \n-/** Wrapper of Boost::compute's cl_float3\n- */\n-class cl_float3 {\n-\n-  ::cl_float3 self;\n-\n-public :\n-\n-  cl_float3 () = default;\n-\n-\n-  cl_float3 (::cl_float3 self_) : self { self_ }\n-  {}\n-\n-\n-  cl_float3 (float x, float y, float z) : self { x, y, z }\n-  {}\n+#else\n \n+/* When passing the arguments to Boost Compute, we need to know if we have to\n+   unwrap our type and give Boost Compute the actual OpenCL type. To do this\n+   we define this meta-function that returns true if \\c T is a wrapper type\n+   to an OpenCL type. For example \\c is_wrapper<cl::sycl::int3>::value == true\n+*/\n+template<class T>\n+struct is_wrapper : std::false_type {};\n \n-  /* Return the first element of the vector\n-   */\n-  auto& x() {\n-    return self.s[0];\n-  }\n-\n-\n-  /* Return the second element of the vector\n-   */\n-  auto& y() {\n-    return self.s[1];\n-  }\n-\n-\n-  /* Return the third element of the vector\n-   */\n-  auto& z() {\n-    return self.s[2];\n-  }\n-\n-};\n+#define IS_WRAPPER_TRAIT(type)                                                 \\\n+template <> struct is_wrapper<type> : std::true_type {};\n \n-}\n-}\n+/* We define 3 different wrapper classes around OpenCL types.\n+   These classes allow us to use t.x() and t.y() for vector types of size 2.\n+   And in addition we can also use t.z() and t.w() for vector types of size\n+   3 and 4 similarly to OpenCL vector types\n+*/\n+#define WRAPPER_CLASS_2(cl_type, boost_name, scalar_type)                      \\\n+  class cl_type {                                                              \\\n+    ::cl_type self;                                                            \\\n+                                                                               \\\n+  public:                                                                      \\\n+    cl_type () = default;                                                      \\\n+    cl_type (::cl_type self_) : self { self_ } {}                              \\\n+    cl_type (scalar_type x, scalar_type y) : self { x, y } {}                  \\\n+    auto& x() { return self.s[0]; }                                            \\\n+    auto& y() { return self.s[1]; }                                            \\\n+    auto& unwrap() const { return self; }};                                    \\\n+  IS_WRAPPER_TRAIT(cl_type)\n+\n+#define WRAPPER_CLASS_3(cl_type, boost_name, scalar_type)                      \\\n+  class cl_type {                                                              \\\n+    ::cl_type self;                                                            \\\n+                                                                               \\\n+  public:                                                                      \\\n+    cl_type () = default;                                                      \\\n+    cl_type (::cl_type self_) : self { self_ } {}                              \\\n+    cl_type (scalar_type x, scalar_type y, scalar_type z) :                    \\\n+      self { x, y, z } {}                                                      \\\n+    auto& x() { return self.s[0]; }                                            \\\n+    auto& y() { return self.s[1]; }                                            \\\n+    auto& z() { return self.s[2]; }                                            \\\n+    auto& unwrap() const { return self; }};                                    \\\n+  IS_WRAPPER_TRAIT(cl_type)\n+\n+#define WRAPPER_CLASS_4(cl_type, boost_name, scalar_type)                      \\\n+  class cl_type {                                                              \\\n+    ::cl_type self;                                                            \\\n+                                                                               \\\n+  public:                                                                      \\\n+    cl_type () = default;                                                      \\\n+    cl_type (::cl_type self_) : self { self_ } {}                              \\\n+    cl_type (scalar_type x, scalar_type y, scalar_type z, scalar_type w) :     \\\n+      self { x, y, z, w } {}                                                   \\\n+    auto& x() { return self.s[0]; }                                            \\\n+    auto& y() { return self.s[1]; }                                            \\\n+    auto& z() { return self.s[2]; }                                            \\\n+    auto& w() { return self.s[3]; }                                            \\\n+    auto& unwrap() const { return self; }};                                    \\\n+  IS_WRAPPER_TRAIT(cl_type)\n+\n+\n+// Return the Boost Compute type for OpenCL vector types\n+#define BOOST_COMPUTE_NAME(scalar, size)                                       \\","path":"include/CL/sycl/opencl_type.hpp","position":178,"original_position":178,"commit_id":"22a0f27dc23f48f521e72d9dcef50f5b1c42d6f9","original_commit_id":"22a0f27dc23f48f521e72d9dcef50f5b1c42d6f9","user":{"login":"keryell","id":1821746,"avatar_url":"https://avatars0.githubusercontent.com/u/1821746?v=3","gravatar_id":"","url":"https://api.github.com/users/keryell","html_url":"https://github.com/keryell","followers_url":"https://api.github.com/users/keryell/followers","following_url":"https://api.github.com/users/keryell/following{/other_user}","gists_url":"https://api.github.com/users/keryell/gists{/gist_id}","starred_url":"https://api.github.com/users/keryell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keryell/subscriptions","organizations_url":"https://api.github.com/users/keryell/orgs","repos_url":"https://api.github.com/users/keryell/repos","events_url":"https://api.github.com/users/keryell/events{/privacy}","received_events_url":"https://api.github.com/users/keryell/received_events","type":"User","site_admin":false},"body":"TRISYCL_","created_at":"2017-06-23T13:42:53Z","updated_at":"2017-06-23T13:53:36Z","html_url":"https://github.com/triSYCL/triSYCL/pull/49#discussion_r123750441","pull_request_url":"https://api.github.com/repos/triSYCL/triSYCL/pulls/49","_links":{"self":{"href":"https://api.github.com/repos/triSYCL/triSYCL/pulls/comments/123750441"},"html":{"href":"https://github.com/triSYCL/triSYCL/pull/49#discussion_r123750441"},"pull_request":{"href":"https://api.github.com/repos/triSYCL/triSYCL/pulls/49"}}},"pull_request":{"url":"https://api.github.com/repos/triSYCL/triSYCL/pulls/49","id":125573389,"html_url":"https://github.com/triSYCL/triSYCL/pull/49","diff_url":"https://github.com/triSYCL/triSYCL/pull/49.diff","patch_url":"https://github.com/triSYCL/triSYCL/pull/49.patch","issue_url":"https://api.github.com/repos/triSYCL/triSYCL/issues/49","number":49,"state":"open","locked":false,"title":"Implementation of the OpenCL types","user":{"login":"a-doumoulakis","id":9407177,"avatar_url":"https://avatars2.githubusercontent.com/u/9407177?v=3","gravatar_id":"","url":"https://api.github.com/users/a-doumoulakis","html_url":"https://github.com/a-doumoulakis","followers_url":"https://api.github.com/users/a-doumoulakis/followers","following_url":"https://api.github.com/users/a-doumoulakis/following{/other_user}","gists_url":"https://api.github.com/users/a-doumoulakis/gists{/gist_id}","starred_url":"https://api.github.com/users/a-doumoulakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/a-doumoulakis/subscriptions","organizations_url":"https://api.github.com/users/a-doumoulakis/orgs","repos_url":"https://api.github.com/users/a-doumoulakis/repos","events_url":"https://api.github.com/users/a-doumoulakis/events{/privacy}","received_events_url":"https://api.github.com/users/a-doumoulakis/received_events","type":"User","site_admin":false},"body":"This pull request fixes in full or in part issues #41 #40 #16 \r\n\r\nHere are the changes : \r\n\r\n- Implementation of the ```&&``` and ```||``` operations for ```small_array``` and all types inheriting from ```small_array``` \r\n- Implementation with Boost Preprocessor of most cl_types (```cl_char, cl_uchar, cl_short, cl_ushort, cl_int, cl_uint, cl_long, cl_ulong, cl_float, cl_double```) with size of 1,2,3,4,8 and 16. They can be used with or without OpenCL interoperability mode\r\n- New test file that with the help of Boost Preprocessor tests all operators defined in small array (```* / % + - << >> < <= >= > == != &  | ^ && || ```) with all cl_types of all sizes","created_at":"2017-06-14T11:33:50Z","updated_at":"2017-06-23T13:53:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6149545cb2c91985abdc15dd8971fad8d74f83b6","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/triSYCL/triSYCL/pulls/49/commits","review_comments_url":"https://api.github.com/repos/triSYCL/triSYCL/pulls/49/comments","review_comment_url":"https://api.github.com/repos/triSYCL/triSYCL/pulls/comments{/number}","comments_url":"https://api.github.com/repos/triSYCL/triSYCL/issues/49/comments","statuses_url":"https://api.github.com/repos/triSYCL/triSYCL/statuses/22a0f27dc23f48f521e72d9dcef50f5b1c42d6f9","head":{"label":"a-doumoulakis:opencl_types","ref":"opencl_types","sha":"22a0f27dc23f48f521e72d9dcef50f5b1c42d6f9","user":{"login":"a-doumoulakis","id":9407177,"avatar_url":"https://avatars2.githubusercontent.com/u/9407177?v=3","gravatar_id":"","url":"https://api.github.com/users/a-doumoulakis","html_url":"https://github.com/a-doumoulakis","followers_url":"https://api.github.com/users/a-doumoulakis/followers","following_url":"https://api.github.com/users/a-doumoulakis/following{/other_user}","gists_url":"https://api.github.com/users/a-doumoulakis/gists{/gist_id}","starred_url":"https://api.github.com/users/a-doumoulakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/a-doumoulakis/subscriptions","organizations_url":"https://api.github.com/users/a-doumoulakis/orgs","repos_url":"https://api.github.com/users/a-doumoulakis/repos","events_url":"https://api.github.com/users/a-doumoulakis/events{/privacy}","received_events_url":"https://api.github.com/users/a-doumoulakis/received_events","type":"User","site_admin":false},"repo":{"id":81379964,"name":"triSYCL","full_name":"a-doumoulakis/triSYCL","owner":{"login":"a-doumoulakis","id":9407177,"avatar_url":"https://avatars2.githubusercontent.com/u/9407177?v=3","gravatar_id":"","url":"https://api.github.com/users/a-doumoulakis","html_url":"https://github.com/a-doumoulakis","followers_url":"https://api.github.com/users/a-doumoulakis/followers","following_url":"https://api.github.com/users/a-doumoulakis/following{/other_user}","gists_url":"https://api.github.com/users/a-doumoulakis/gists{/gist_id}","starred_url":"https://api.github.com/users/a-doumoulakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/a-doumoulakis/subscriptions","organizations_url":"https://api.github.com/users/a-doumoulakis/orgs","repos_url":"https://api.github.com/users/a-doumoulakis/repos","events_url":"https://api.github.com/users/a-doumoulakis/events{/privacy}","received_events_url":"https://api.github.com/users/a-doumoulakis/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/a-doumoulakis/triSYCL","description":"Some experiments around OpenCL SYCL","fork":true,"url":"https://api.github.com/repos/a-doumoulakis/triSYCL","forks_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/forks","keys_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/keys{/key_id}","collaborators_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/teams","hooks_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/hooks","issue_events_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/issues/events{/number}","events_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/events","assignees_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/assignees{/user}","branches_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/branches{/branch}","tags_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/tags","blobs_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/git/refs{/sha}","trees_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/git/trees{/sha}","statuses_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/statuses/{sha}","languages_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/languages","stargazers_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/stargazers","contributors_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/contributors","subscribers_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/subscribers","subscription_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/subscription","commits_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/commits{/sha}","git_commits_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/git/commits{/sha}","comments_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/comments{/number}","issue_comment_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/issues/comments{/number}","contents_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/contents/{+path}","compare_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/compare/{base}...{head}","merges_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/merges","archive_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/downloads","issues_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/issues{/number}","pulls_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/pulls{/number}","milestones_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/milestones{/number}","notifications_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/labels{/name}","releases_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/releases{/id}","deployments_url":"https://api.github.com/repos/a-doumoulakis/triSYCL/deployments","created_at":"2017-02-08T21:54:17Z","updated_at":"2017-02-08T21:54:19Z","pushed_at":"2017-06-21T16:45:23Z","git_url":"git://github.com/a-doumoulakis/triSYCL.git","ssh_url":"git@github.com:a-doumoulakis/triSYCL.git","clone_url":"https://github.com/a-doumoulakis/triSYCL.git","svn_url":"https://github.com/a-doumoulakis/triSYCL","homepage":null,"size":37276,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"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":"triSYCL:master","ref":"master","sha":"fd59e482112754240b94199ed652fc351e68395c","user":{"login":"triSYCL","id":25647836,"avatar_url":"https://avatars1.githubusercontent.com/u/25647836?v=3","gravatar_id":"","url":"https://api.github.com/users/triSYCL","html_url":"https://github.com/triSYCL","followers_url":"https://api.github.com/users/triSYCL/followers","following_url":"https://api.github.com/users/triSYCL/following{/other_user}","gists_url":"https://api.github.com/users/triSYCL/gists{/gist_id}","starred_url":"https://api.github.com/users/triSYCL/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/triSYCL/subscriptions","organizations_url":"https://api.github.com/users/triSYCL/orgs","repos_url":"https://api.github.com/users/triSYCL/repos","events_url":"https://api.github.com/users/triSYCL/events{/privacy}","received_events_url":"https://api.github.com/users/triSYCL/received_events","type":"Organization","site_admin":false},"repo":{"id":18943874,"name":"triSYCL","full_name":"triSYCL/triSYCL","owner":{"login":"triSYCL","id":25647836,"avatar_url":"https://avatars1.githubusercontent.com/u/25647836?v=3","gravatar_id":"","url":"https://api.github.com/users/triSYCL","html_url":"https://github.com/triSYCL","followers_url":"https://api.github.com/users/triSYCL/followers","following_url":"https://api.github.com/users/triSYCL/following{/other_user}","gists_url":"https://api.github.com/users/triSYCL/gists{/gist_id}","starred_url":"https://api.github.com/users/triSYCL/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/triSYCL/subscriptions","organizations_url":"https://api.github.com/users/triSYCL/orgs","repos_url":"https://api.github.com/users/triSYCL/repos","events_url":"https://api.github.com/users/triSYCL/events{/privacy}","received_events_url":"https://api.github.com/users/triSYCL/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/triSYCL/triSYCL","description":"An open source implementation of OpenCL SYCL from Khronos Group","fork":false,"url":"https://api.github.com/repos/triSYCL/triSYCL","forks_url":"https://api.github.com/repos/triSYCL/triSYCL/forks","keys_url":"https://api.github.com/repos/triSYCL/triSYCL/keys{/key_id}","collaborators_url":"https://api.github.com/repos/triSYCL/triSYCL/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/triSYCL/triSYCL/teams","hooks_url":"https://api.github.com/repos/triSYCL/triSYCL/hooks","issue_events_url":"https://api.github.com/repos/triSYCL/triSYCL/issues/events{/number}","events_url":"https://api.github.com/repos/triSYCL/triSYCL/events","assignees_url":"https://api.github.com/repos/triSYCL/triSYCL/assignees{/user}","branches_url":"https://api.github.com/repos/triSYCL/triSYCL/branches{/branch}","tags_url":"https://api.github.com/repos/triSYCL/triSYCL/tags","blobs_url":"https://api.github.com/repos/triSYCL/triSYCL/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/triSYCL/triSYCL/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/triSYCL/triSYCL/git/refs{/sha}","trees_url":"https://api.github.com/repos/triSYCL/triSYCL/git/trees{/sha}","statuses_url":"https://api.github.com/repos/triSYCL/triSYCL/statuses/{sha}","languages_url":"https://api.github.com/repos/triSYCL/triSYCL/languages","stargazers_url":"https://api.github.com/repos/triSYCL/triSYCL/stargazers","contributors_url":"https://api.github.com/repos/triSYCL/triSYCL/contributors","subscribers_url":"https://api.github.com/repos/triSYCL/triSYCL/subscribers","subscription_url":"https://api.github.com/repos/triSYCL/triSYCL/subscription","commits_url":"https://api.github.com/repos/triSYCL/triSYCL/commits{/sha}","git_commits_url":"https://api.github.com/repos/triSYCL/triSYCL/git/commits{/sha}","comments_url":"https://api.github.com/repos/triSYCL/triSYCL/comments{/number}","issue_comment_url":"https://api.github.com/repos/triSYCL/triSYCL/issues/comments{/number}","contents_url":"https://api.github.com/repos/triSYCL/triSYCL/contents/{+path}","compare_url":"https://api.github.com/repos/triSYCL/triSYCL/compare/{base}...{head}","merges_url":"https://api.github.com/repos/triSYCL/triSYCL/merges","archive_url":"https://api.github.com/repos/triSYCL/triSYCL/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/triSYCL/triSYCL/downloads","issues_url":"https://api.github.com/repos/triSYCL/triSYCL/issues{/number}","pulls_url":"https://api.github.com/repos/triSYCL/triSYCL/pulls{/number}","milestones_url":"https://api.github.com/repos/triSYCL/triSYCL/milestones{/number}","notifications_url":"https://api.github.com/repos/triSYCL/triSYCL/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/triSYCL/triSYCL/labels{/name}","releases_url":"https://api.github.com/repos/triSYCL/triSYCL/releases{/id}","deployments_url":"https://api.github.com/repos/triSYCL/triSYCL/deployments","created_at":"2014-04-19T15:19:51Z","updated_at":"2017-06-23T10:50:12Z","pushed_at":"2017-06-21T16:18:56Z","git_url":"git://github.com/triSYCL/triSYCL.git","ssh_url":"git@github.com:triSYCL/triSYCL.git","clone_url":"https://github.com/triSYCL/triSYCL.git","svn_url":"https://github.com/triSYCL/triSYCL","homepage":"","size":37255,"stargazers_count":48,"watchers_count":48,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":34,"mirror_url":null,"open_issues_count":14,"forks":34,"open_issues":14,"watchers":48,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/triSYCL/triSYCL/pulls/49"},"html":{"href":"https://github.com/triSYCL/triSYCL/pull/49"},"issue":{"href":"https://api.github.com/repos/triSYCL/triSYCL/issues/49"},"comments":{"href":"https://api.github.com/repos/triSYCL/triSYCL/issues/49/comments"},"review_comments":{"href":"https://api.github.com/repos/triSYCL/triSYCL/pulls/49/comments"},"review_comment":{"href":"https://api.github.com/repos/triSYCL/triSYCL/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/triSYCL/triSYCL/pulls/49/commits"},"statuses":{"href":"https://api.github.com/repos/triSYCL/triSYCL/statuses/22a0f27dc23f48f521e72d9dcef50f5b1c42d6f9"}}}}
{"actor":{"display_login":"keryell"}}