{"action":"closed","number":480,"pull_request":{"url":"https://api.github.com/repos/rayon-rs/rayon/pulls/480","id":154690586,"html_url":"https://github.com/rayon-rs/rayon/pull/480","diff_url":"https://github.com/rayon-rs/rayon/pull/480.diff","patch_url":"https://github.com/rayon-rs/rayon/pull/480.patch","issue_url":"https://api.github.com/repos/rayon-rs/rayon/issues/480","number":480,"state":"closed","locked":false,"title":"Replace coco with crossbeam-deque","user":{"login":"stjepang","id":1303843,"avatar_url":"https://avatars2.githubusercontent.com/u/1303843?v=4","gravatar_id":"","url":"https://api.github.com/users/stjepang","html_url":"https://github.com/stjepang","followers_url":"https://api.github.com/users/stjepang/followers","following_url":"https://api.github.com/users/stjepang/following{/other_user}","gists_url":"https://api.github.com/users/stjepang/gists{/gist_id}","starred_url":"https://api.github.com/users/stjepang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stjepang/subscriptions","organizations_url":"https://api.github.com/users/stjepang/orgs","repos_url":"https://api.github.com/users/stjepang/repos","events_url":"https://api.github.com/users/stjepang/events{/privacy}","received_events_url":"https://api.github.com/users/stjepang/received_events","type":"User","site_admin":false},"body":"Coco is now deprecated and I don't intend to maintain it anymore. You should use Crossbeam instead.\r\n\r\nThis PR switches the dependency from `coco` to [`crossbeam-deque`](https://github.com/crossbeam-rs/crossbeam-deque). We still haven't re-exported the deque into the main `crossbeam` crate, but you can start using `crossbeam-deque` right now.\r\n\r\nBenchmarks:\r\n\r\n```\r\nname                                                                before ns/iter         after ns/iter          diff ns/iter   diff %\r\nfactorial::factorial_iterator                                       24,802,712             24,427,893                 -374,819   -1.51%\r\nfactorial::factorial_join                                           10,636,501             10,459,655                 -176,846   -1.66%\r\nfactorial::factorial_par_iter                                       10,243,680             10,196,058                  -47,622   -0.46%\r\nfactorial::factorial_recursion                                      12,202,069             11,909,615                 -292,454   -2.40%\r\nfibonacci::fibonacci_iterative                                      21                     21                                0    0.00%\r\nfibonacci::fibonacci_join_1_2                                       60,217,053             58,844,783               -1,372,270   -2.28%\r\nfibonacci::fibonacci_join_2_1                                       58,738,255             58,375,573                 -362,682   -0.62%\r\nfibonacci::fibonacci_recursive                                      13,976,426             13,532,543                 -443,883   -3.18%\r\nfibonacci::fibonacci_split_iterative                                24,218                 24,097                         -121   -0.50%\r\nfibonacci::fibonacci_split_recursive                                5,582,896              6,771,896                 1,189,000   21.30%\r\nfind::size1::parallel_find_common                                   8,543                  8,466                           -77   -0.90%\r\nfind::size1::parallel_find_first                                    5,095                  4,828                          -267   -5.24%\r\nfind::size1::parallel_find_last                                     4,232,507              4,211,524                   -20,983   -0.50%\r\nfind::size1::parallel_find_middle                                   2,827,812              2,814,623                   -13,189   -0.47%\r\nfind::size1::parallel_find_missing                                  4,267,884              4,261,439                    -6,445   -0.15%\r\nfind::size1::serial_find_common                                     3,858                  3,811                           -47   -1.22%\r\nfind::size1::serial_find_first                                      1                      1                                 0    0.00%\r\nfind::size1::serial_find_last                                       4,258,009              4,251,158                    -6,851   -0.16%\r\nfind::size1::serial_find_middle                                     2,840,747              2,829,840                   -10,907   -0.38%\r\nfind::size1::serial_find_missing                                    4,259,732              4,256,293                    -3,439   -0.08%\r\njoin_microbench::increment_all                                      38,938                 39,263                          325    0.83%\r\njoin_microbench::increment_all_atomized                             2,690,370              2,791,023                   100,653    3.74%\r\njoin_microbench::increment_all_max                                  84,234                 86,980                        2,746    3.26%\r\njoin_microbench::increment_all_min                                  31,055                 31,073                           18    0.06%\r\njoin_microbench::increment_all_serialized                           40,463                 39,959                         -504   -1.25%\r\njoin_microbench::join_recursively                                   971,703                1,068,777                    97,074    9.99%\r\nlife::bench::generations                                            137,481,702            136,128,634              -1,353,068   -0.98%\r\nlife::bench::parallel_generations                                   56,883,058             56,711,525                 -171,533   -0.30%\r\nmap_collect::i_mod_10_to_i::with_collect                            7,930,087              7,940,144                    10,057    0.13%\r\nmap_collect::i_mod_10_to_i::with_fold                               3,827,093              3,720,073                  -107,020   -2.80%\r\nmap_collect::i_mod_10_to_i::with_fold_vec                           4,270,208              3,990,564                  -279,644   -6.55%\r\nmap_collect::i_mod_10_to_i::with_linked_list_collect                16,418,905             16,171,549                 -247,356   -1.51%\r\nmap_collect::i_mod_10_to_i::with_linked_list_collect_vec            6,861,379              6,871,669                    10,290    0.15%\r\nmap_collect::i_mod_10_to_i::with_linked_list_collect_vec_sized      8,433,234              8,369,911                   -63,323   -0.75%\r\nmap_collect::i_mod_10_to_i::with_linked_list_map_reduce_vec_sized   7,922,071              7,932,609                    10,538    0.13%\r\nmap_collect::i_mod_10_to_i::with_mutex                              66,231,890             63,167,656               -3,064,234   -4.63%\r\nmap_collect::i_mod_10_to_i::with_mutex_vec                          9,807,928              9,435,930                  -371,998   -3.79%\r\nmap_collect::i_mod_10_to_i::with_vec_vec_sized                      8,002,014              7,975,449                   -26,565   -0.33%\r\nmap_collect::i_to_i::with_collect                                   23,431,191             23,104,792                 -326,399   -1.39%\r\nmap_collect::i_to_i::with_fold                                      70,726,359             70,917,388                  191,029    0.27%\r\nmap_collect::i_to_i::with_fold_vec                                  70,012,099             71,522,437                1,510,338    2.16%\r\nmap_collect::i_to_i::with_linked_list_collect                       33,158,066             33,444,856                  286,790    0.86%\r\nmap_collect::i_to_i::with_linked_list_collect_vec                   34,426,809             34,209,519                 -217,290   -0.63%\r\nmap_collect::i_to_i::with_linked_list_collect_vec_sized             23,890,570             23,772,744                 -117,826   -0.49%\r\nmap_collect::i_to_i::with_linked_list_map_reduce_vec_sized          23,226,376             23,244,541                   18,165    0.08%\r\nmap_collect::i_to_i::with_mutex                                     106,359,671            105,669,074                -690,597   -0.65%\r\nmap_collect::i_to_i::with_mutex_vec                                 46,162,219             45,473,755                 -688,464   -1.49%\r\nmap_collect::i_to_i::with_vec_vec_sized                             23,376,598             23,320,305                  -56,293   -0.24%\r\nmatmul::bench::bench_matmul_strassen                                7,263,017              7,302,339                    39,322    0.54%\r\nmergesort::bench::merge_sort_par_bench                              9,946,218              9,980,256                    34,038    0.34%\r\nmergesort::bench::merge_sort_seq_bench                              29,151,116             28,918,180                 -232,936   -0.80%\r\nnbody::bench::nbody_par                                             13,329,584             13,264,579                  -65,005   -0.49%\r\nnbody::bench::nbody_parreduce                                       17,687,703             17,342,219                 -345,484   -1.95%\r\nnbody::bench::nbody_seq                                             27,689,546             27,238,169                 -451,377   -1.63%\r\npythagoras::euclid_faux_serial                                      37,292,303             36,833,565                 -458,738   -1.23%\r\npythagoras::euclid_parallel_full                                    68,520,504             74,284,420                5,763,916    8.41%\r\npythagoras::euclid_parallel_one                                     12,365,070             12,456,163                   91,093    0.74%\r\npythagoras::euclid_parallel_outer                                   14,338,422             12,212,634               -2,125,788  -14.83%\r\npythagoras::euclid_parallel_weightless                              14,391,746             12,486,010               -1,905,736  -13.24%\r\npythagoras::euclid_serial                                           32,313,978             30,744,513               -1,569,465   -4.86%\r\nquicksort::bench::quick_sort_par_bench                              19,451,813             19,450,258                   -1,555   -0.01%\r\nquicksort::bench::quick_sort_seq_bench                              44,328,073             43,814,982                 -513,091   -1.16%\r\nquicksort::bench::quick_sort_splitter                               20,151,025             20,040,111                 -110,914   -0.55%\r\nsieve::bench::sieve_chunks                                          10,696,847             10,642,678                  -54,169   -0.51%\r\nsieve::bench::sieve_parallel                                        6,584,548              6,535,757                   -48,791   -0.74%\r\nsieve::bench::sieve_serial                                          24,724,305             25,750,463                1,026,158    4.15%\r\nsort::demo_merge_sort_ascending                                     185,286 (2158 MB/s)    187,414 (2134 MB/s)           2,128    1.15%\r\nsort::demo_merge_sort_big                                           11,542,110 (554 MB/s)  11,688,242 (547 MB/s)       146,132    1.27%\r\nsort::demo_merge_sort_descending                                    181,821 (2199 MB/s)    181,970 (2198 MB/s)             149    0.08%\r\nsort::demo_merge_sort_mostly_ascending                              430,602 (928 MB/s)     429,643 (931 MB/s)             -959   -0.22%\r\nsort::demo_merge_sort_mostly_descending                             444,437 (900 MB/s)     453,418 (882 MB/s)            8,981    2.02%\r\nsort::demo_merge_sort_random                                        1,525,834 (262 MB/s)   1,492,009 (268 MB/s)        -33,825   -2.22%\r\nsort::demo_merge_sort_strings                                       5,594,023 (143 MB/s)   5,738,056 (139 MB/s)        144,033    2.57%\r\nsort::demo_quick_sort_big                                           8,686,314 (736 MB/s)   8,880,504 (720 MB/s)        194,190    2.24%\r\nsort::demo_quick_sort_mostly_ascending                              16,092,594 (24 MB/s)   16,272,324 (24 MB/s)        179,730    1.12%\r\nsort::demo_quick_sort_mostly_descending                             13,977,534 (28 MB/s)   14,164,738 (28 MB/s)        187,204    1.34%\r\nsort::demo_quick_sort_random                                        1,735,842 (230 MB/s)   1,737,633 (230 MB/s)          1,791    0.10%\r\nsort::demo_quick_sort_strings                                       7,883,157 (101 MB/s)   7,950,810 (100 MB/s)         67,653    0.86%\r\nsort::par_sort_ascending                                            58,045 (6891 MB/s)     59,315 (6743 MB/s)            1,270    2.19%\r\nsort::par_sort_big                                                  13,643,289 (469 MB/s)  13,735,840 (465 MB/s)        92,551    0.68%\r\nsort::par_sort_descending                                           100,980 (3961 MB/s)    102,940 (3885 MB/s)           1,960    1.94%\r\nsort::par_sort_expensive                                            65,216,966 (6 MB/s)    67,760,014 (5 MB/s)       2,543,048    3.90%\r\nsort::par_sort_mostly_ascending                                     533,641 (749 MB/s)     545,684 (733 MB/s)           12,043    2.26%\r\nsort::par_sort_mostly_descending                                    568,791 (703 MB/s)     576,828 (693 MB/s)            8,037    1.41%\r\nsort::par_sort_random                                               1,321,249 (302 MB/s)   1,327,670 (301 MB/s)          6,421    0.49%\r\nsort::par_sort_strings                                              5,178,110 (154 MB/s)   5,268,932 (151 MB/s)         90,822    1.75%\r\nsort::par_sort_unstable_ascending                                   50,597 (7905 MB/s)     49,305 (8112 MB/s)           -1,292   -2.55%\r\nsort::par_sort_unstable_big                                         7,252,490 (882 MB/s)   7,275,712 (879 MB/s)         23,222    0.32%\r\nsort::par_sort_unstable_descending                                  70,803 (5649 MB/s)     70,910 (5640 MB/s)              107    0.15%\r\nsort::par_sort_unstable_expensive                                   77,851,362 (5 MB/s)    74,893,160 (5 MB/s)      -2,958,202   -3.80%\r\nsort::par_sort_unstable_mostly_ascending                            324,132 (1234 MB/s)    328,995 (1215 MB/s)           4,863    1.50%\r\nsort::par_sort_unstable_mostly_descending                           337,748 (1184 MB/s)    343,293 (1165 MB/s)           5,545    1.64%\r\nsort::par_sort_unstable_random                                      742,906 (538 MB/s)     749,185 (533 MB/s)            6,279    0.85%\r\nsort::par_sort_unstable_strings                                     5,244,322 (152 MB/s)   5,340,895 (149 MB/s)         96,573    1.84%\r\nstr_split::parallel_space_char                                      925,504                958,081                      32,577    3.52%\r\nstr_split::parallel_space_fn                                        927,486                937,274                       9,788    1.06%\r\nstr_split::serial_space_char                                        2,197,436              2,246,500                    49,064    2.23%\r\nstr_split::serial_space_fn                                          2,213,163              2,293,431                    80,268    3.63%\r\nstr_split::serial_space_str                                         3,243,506              3,076,083                  -167,423   -5.16%\r\ntsp::bench::dj10                                                    14,272,603             14,465,095                  192,492    1.35%\r\nvec_collect::vec_i::with_collect                                    3,886,235              3,857,576                   -28,659   -0.74%\r\nvec_collect::vec_i::with_collect_into                               3,868,265              3,901,340                    33,075    0.86%\r\nvec_collect::vec_i::with_collect_into_reused                        2,971,978              2,763,152                  -208,826   -7.03%\r\nvec_collect::vec_i::with_fold                                       51,536,456             51,691,862                  155,406    0.30%\r\nvec_collect::vec_i::with_linked_list_collect_vec                    38,760,202             38,649,487                 -110,715   -0.29%\r\nvec_collect::vec_i::with_linked_list_collect_vec_sized              34,325,339             34,193,745                 -131,594   -0.38%\r\nvec_collect::vec_i::with_linked_list_map_reduce_vec_sized           24,855,839             25,013,004                  157,165    0.63%\r\nvec_collect::vec_i::with_vec_vec_sized                              24,839,590             25,091,431                  251,841    1.01%\r\nvec_collect::vec_i_filtered::with_collect                           24,828,206             25,088,751                  260,545    1.05%\r\nvec_collect::vec_i_filtered::with_fold                              52,184,645             50,886,762               -1,297,883   -2.49%\r\nvec_collect::vec_i_filtered::with_linked_list_collect_vec           38,090,559             38,158,751                   68,192    0.18%\r\nvec_collect::vec_i_filtered::with_linked_list_collect_vec_sized     33,969,414             33,543,078                 -426,336   -1.26%\r\nvec_collect::vec_i_filtered::with_linked_list_map_reduce_vec_sized  24,860,997             24,867,880                    6,883    0.03%\r\nvec_collect::vec_i_filtered::with_vec_vec_sized                     24,946,638             25,009,585                   62,947    0.25%\r\n```\r\n\r\nThere are some wins and some lossses, but overall the peformance is basically the same. The implementation of `crossbeam-deque` (and `crossbeam-epoch`) is largely based on `coco`, so this isn't surprising.\r\n\r\nNext year we'll most probably switch from epoch-based to hazard pointer-based memory reclamation, which should give us stricter guarantees on garbage collection and performance improvements (which will be visible in Rayon's benchmarks, I believe).\r\n\r\nr? @cuviper ","created_at":"2017-11-26T18:24:00Z","updated_at":"2018-02-15T17:20:28Z","closed_at":"2018-02-15T17:20:28Z","merged_at":null,"merge_commit_sha":"28f0856d0e5d8f80abc35ed74d197a91be6a5844","assignee":{"login":"cuviper","id":36186,"avatar_url":"https://avatars1.githubusercontent.com/u/36186?v=4","gravatar_id":"","url":"https://api.github.com/users/cuviper","html_url":"https://github.com/cuviper","followers_url":"https://api.github.com/users/cuviper/followers","following_url":"https://api.github.com/users/cuviper/following{/other_user}","gists_url":"https://api.github.com/users/cuviper/gists{/gist_id}","starred_url":"https://api.github.com/users/cuviper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cuviper/subscriptions","organizations_url":"https://api.github.com/users/cuviper/orgs","repos_url":"https://api.github.com/users/cuviper/repos","events_url":"https://api.github.com/users/cuviper/events{/privacy}","received_events_url":"https://api.github.com/users/cuviper/received_events","type":"User","site_admin":false},"assignees":[{"login":"cuviper","id":36186,"avatar_url":"https://avatars1.githubusercontent.com/u/36186?v=4","gravatar_id":"","url":"https://api.github.com/users/cuviper","html_url":"https://github.com/cuviper","followers_url":"https://api.github.com/users/cuviper/followers","following_url":"https://api.github.com/users/cuviper/following{/other_user}","gists_url":"https://api.github.com/users/cuviper/gists{/gist_id}","starred_url":"https://api.github.com/users/cuviper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cuviper/subscriptions","organizations_url":"https://api.github.com/users/cuviper/orgs","repos_url":"https://api.github.com/users/cuviper/repos","events_url":"https://api.github.com/users/cuviper/events{/privacy}","received_events_url":"https://api.github.com/users/cuviper/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/rayon-rs/rayon/pulls/480/commits","review_comments_url":"https://api.github.com/repos/rayon-rs/rayon/pulls/480/comments","review_comment_url":"https://api.github.com/repos/rayon-rs/rayon/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rayon-rs/rayon/issues/480/comments","statuses_url":"https://api.github.com/repos/rayon-rs/rayon/statuses/bd8bc3e2665df10cf012a29004a8b0faa6ab7416","head":{"label":"stjepang:crossbeam-deque-switch","ref":"crossbeam-deque-switch","sha":"bd8bc3e2665df10cf012a29004a8b0faa6ab7416","user":{"login":"stjepang","id":1303843,"avatar_url":"https://avatars2.githubusercontent.com/u/1303843?v=4","gravatar_id":"","url":"https://api.github.com/users/stjepang","html_url":"https://github.com/stjepang","followers_url":"https://api.github.com/users/stjepang/followers","following_url":"https://api.github.com/users/stjepang/following{/other_user}","gists_url":"https://api.github.com/users/stjepang/gists{/gist_id}","starred_url":"https://api.github.com/users/stjepang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stjepang/subscriptions","organizations_url":"https://api.github.com/users/stjepang/orgs","repos_url":"https://api.github.com/users/stjepang/repos","events_url":"https://api.github.com/users/stjepang/events{/privacy}","received_events_url":"https://api.github.com/users/stjepang/received_events","type":"User","site_admin":false},"repo":{"id":87717906,"name":"rayon","full_name":"stjepang/rayon","owner":{"login":"stjepang","id":1303843,"avatar_url":"https://avatars2.githubusercontent.com/u/1303843?v=4","gravatar_id":"","url":"https://api.github.com/users/stjepang","html_url":"https://github.com/stjepang","followers_url":"https://api.github.com/users/stjepang/followers","following_url":"https://api.github.com/users/stjepang/following{/other_user}","gists_url":"https://api.github.com/users/stjepang/gists{/gist_id}","starred_url":"https://api.github.com/users/stjepang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stjepang/subscriptions","organizations_url":"https://api.github.com/users/stjepang/orgs","repos_url":"https://api.github.com/users/stjepang/repos","events_url":"https://api.github.com/users/stjepang/events{/privacy}","received_events_url":"https://api.github.com/users/stjepang/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/stjepang/rayon","description":"Rayon: A data parallelism library for Rust","fork":true,"url":"https://api.github.com/repos/stjepang/rayon","forks_url":"https://api.github.com/repos/stjepang/rayon/forks","keys_url":"https://api.github.com/repos/stjepang/rayon/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stjepang/rayon/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stjepang/rayon/teams","hooks_url":"https://api.github.com/repos/stjepang/rayon/hooks","issue_events_url":"https://api.github.com/repos/stjepang/rayon/issues/events{/number}","events_url":"https://api.github.com/repos/stjepang/rayon/events","assignees_url":"https://api.github.com/repos/stjepang/rayon/assignees{/user}","branches_url":"https://api.github.com/repos/stjepang/rayon/branches{/branch}","tags_url":"https://api.github.com/repos/stjepang/rayon/tags","blobs_url":"https://api.github.com/repos/stjepang/rayon/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stjepang/rayon/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stjepang/rayon/git/refs{/sha}","trees_url":"https://api.github.com/repos/stjepang/rayon/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stjepang/rayon/statuses/{sha}","languages_url":"https://api.github.com/repos/stjepang/rayon/languages","stargazers_url":"https://api.github.com/repos/stjepang/rayon/stargazers","contributors_url":"https://api.github.com/repos/stjepang/rayon/contributors","subscribers_url":"https://api.github.com/repos/stjepang/rayon/subscribers","subscription_url":"https://api.github.com/repos/stjepang/rayon/subscription","commits_url":"https://api.github.com/repos/stjepang/rayon/commits{/sha}","git_commits_url":"https://api.github.com/repos/stjepang/rayon/git/commits{/sha}","comments_url":"https://api.github.com/repos/stjepang/rayon/comments{/number}","issue_comment_url":"https://api.github.com/repos/stjepang/rayon/issues/comments{/number}","contents_url":"https://api.github.com/repos/stjepang/rayon/contents/{+path}","compare_url":"https://api.github.com/repos/stjepang/rayon/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stjepang/rayon/merges","archive_url":"https://api.github.com/repos/stjepang/rayon/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stjepang/rayon/downloads","issues_url":"https://api.github.com/repos/stjepang/rayon/issues{/number}","pulls_url":"https://api.github.com/repos/stjepang/rayon/pulls{/number}","milestones_url":"https://api.github.com/repos/stjepang/rayon/milestones{/number}","notifications_url":"https://api.github.com/repos/stjepang/rayon/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stjepang/rayon/labels{/name}","releases_url":"https://api.github.com/repos/stjepang/rayon/releases{/id}","deployments_url":"https://api.github.com/repos/stjepang/rayon/deployments","created_at":"2017-04-09T15:18:41Z","updated_at":"2017-04-09T15:18:43Z","pushed_at":"2017-11-26T18:05:49Z","git_url":"git://github.com/stjepang/rayon.git","ssh_url":"git@github.com:stjepang/rayon.git","clone_url":"https://github.com/stjepang/rayon.git","svn_url":"https://github.com/stjepang/rayon","homepage":null,"size":2771,"stargazers_count":0,"watchers_count":0,"language":"Rust","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"rayon-rs:master","ref":"master","sha":"80817f68cf33b3f46ce4a7134c2834d00957c83f","user":{"login":"rayon-rs","id":32576850,"avatar_url":"https://avatars3.githubusercontent.com/u/32576850?v=4","gravatar_id":"","url":"https://api.github.com/users/rayon-rs","html_url":"https://github.com/rayon-rs","followers_url":"https://api.github.com/users/rayon-rs/followers","following_url":"https://api.github.com/users/rayon-rs/following{/other_user}","gists_url":"https://api.github.com/users/rayon-rs/gists{/gist_id}","starred_url":"https://api.github.com/users/rayon-rs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rayon-rs/subscriptions","organizations_url":"https://api.github.com/users/rayon-rs/orgs","repos_url":"https://api.github.com/users/rayon-rs/repos","events_url":"https://api.github.com/users/rayon-rs/events{/privacy}","received_events_url":"https://api.github.com/users/rayon-rs/received_events","type":"Organization","site_admin":false},"repo":{"id":24725038,"name":"rayon","full_name":"rayon-rs/rayon","owner":{"login":"rayon-rs","id":32576850,"avatar_url":"https://avatars3.githubusercontent.com/u/32576850?v=4","gravatar_id":"","url":"https://api.github.com/users/rayon-rs","html_url":"https://github.com/rayon-rs","followers_url":"https://api.github.com/users/rayon-rs/followers","following_url":"https://api.github.com/users/rayon-rs/following{/other_user}","gists_url":"https://api.github.com/users/rayon-rs/gists{/gist_id}","starred_url":"https://api.github.com/users/rayon-rs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rayon-rs/subscriptions","organizations_url":"https://api.github.com/users/rayon-rs/orgs","repos_url":"https://api.github.com/users/rayon-rs/repos","events_url":"https://api.github.com/users/rayon-rs/events{/privacy}","received_events_url":"https://api.github.com/users/rayon-rs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/rayon-rs/rayon","description":"Rayon: A data parallelism library for Rust","fork":false,"url":"https://api.github.com/repos/rayon-rs/rayon","forks_url":"https://api.github.com/repos/rayon-rs/rayon/forks","keys_url":"https://api.github.com/repos/rayon-rs/rayon/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rayon-rs/rayon/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rayon-rs/rayon/teams","hooks_url":"https://api.github.com/repos/rayon-rs/rayon/hooks","issue_events_url":"https://api.github.com/repos/rayon-rs/rayon/issues/events{/number}","events_url":"https://api.github.com/repos/rayon-rs/rayon/events","assignees_url":"https://api.github.com/repos/rayon-rs/rayon/assignees{/user}","branches_url":"https://api.github.com/repos/rayon-rs/rayon/branches{/branch}","tags_url":"https://api.github.com/repos/rayon-rs/rayon/tags","blobs_url":"https://api.github.com/repos/rayon-rs/rayon/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rayon-rs/rayon/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rayon-rs/rayon/git/refs{/sha}","trees_url":"https://api.github.com/repos/rayon-rs/rayon/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rayon-rs/rayon/statuses/{sha}","languages_url":"https://api.github.com/repos/rayon-rs/rayon/languages","stargazers_url":"https://api.github.com/repos/rayon-rs/rayon/stargazers","contributors_url":"https://api.github.com/repos/rayon-rs/rayon/contributors","subscribers_url":"https://api.github.com/repos/rayon-rs/rayon/subscribers","subscription_url":"https://api.github.com/repos/rayon-rs/rayon/subscription","commits_url":"https://api.github.com/repos/rayon-rs/rayon/commits{/sha}","git_commits_url":"https://api.github.com/repos/rayon-rs/rayon/git/commits{/sha}","comments_url":"https://api.github.com/repos/rayon-rs/rayon/comments{/number}","issue_comment_url":"https://api.github.com/repos/rayon-rs/rayon/issues/comments{/number}","contents_url":"https://api.github.com/repos/rayon-rs/rayon/contents/{+path}","compare_url":"https://api.github.com/repos/rayon-rs/rayon/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rayon-rs/rayon/merges","archive_url":"https://api.github.com/repos/rayon-rs/rayon/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rayon-rs/rayon/downloads","issues_url":"https://api.github.com/repos/rayon-rs/rayon/issues{/number}","pulls_url":"https://api.github.com/repos/rayon-rs/rayon/pulls{/number}","milestones_url":"https://api.github.com/repos/rayon-rs/rayon/milestones{/number}","notifications_url":"https://api.github.com/repos/rayon-rs/rayon/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rayon-rs/rayon/labels{/name}","releases_url":"https://api.github.com/repos/rayon-rs/rayon/releases{/id}","deployments_url":"https://api.github.com/repos/rayon-rs/rayon/deployments","created_at":"2014-10-02T15:38:05Z","updated_at":"2018-02-15T16:59:34Z","pushed_at":"2018-02-15T17:16:11Z","git_url":"git://github.com/rayon-rs/rayon.git","ssh_url":"git@github.com:rayon-rs/rayon.git","clone_url":"https://github.com/rayon-rs/rayon.git","svn_url":"https://github.com/rayon-rs/rayon","homepage":null,"size":1799,"stargazers_count":1618,"watchers_count":1618,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":133,"mirror_url":null,"archived":false,"open_issues_count":49,"license":null,"forks":133,"open_issues":49,"watchers":1618,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rayon-rs/rayon/pulls/480"},"html":{"href":"https://github.com/rayon-rs/rayon/pull/480"},"issue":{"href":"https://api.github.com/repos/rayon-rs/rayon/issues/480"},"comments":{"href":"https://api.github.com/repos/rayon-rs/rayon/issues/480/comments"},"review_comments":{"href":"https://api.github.com/repos/rayon-rs/rayon/pulls/480/comments"},"review_comment":{"href":"https://api.github.com/repos/rayon-rs/rayon/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rayon-rs/rayon/pulls/480/commits"},"statuses":{"href":"https://api.github.com/repos/rayon-rs/rayon/statuses/bd8bc3e2665df10cf012a29004a8b0faa6ab7416"}},"author_association":"CONTRIBUTOR","merged":false,"mergeable":false,"rebaseable":false,"mergeable_state":"dirty","merged_by":null,"comments":14,"review_comments":1,"maintainer_can_modify":false,"commits":1,"additions":39,"deletions":15,"changed_files":3}}
{"actor":{"display_login":"cuviper"}}