Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimization for name value pair attribute sets #7676

Open
infinisil opened this issue Jan 24, 2023 · 3 comments
Open

Optimization for name value pair attribute sets #7676

infinisil opened this issue Jan 24, 2023 · 3 comments
Labels
feature Feature request or proposal

Comments

@infinisil
Copy link
Member

Is your feature request related to a problem? Please describe.
Name-value pairs like { name = "..."; value = "..."; } are frequently used, especially when converting between attribute sets and lists using builtins.listToAttrs and lib.mapAttrsToList lib.nameValuePair. It would be beneficial for these operations to be optimized.

Describe the solution you'd like
It should be possible to implement an optimization for such values by storing the name and value directly in the Value union, just like how lists of sizes <= 2 are.

Ping @roberth

Priorities

Add 👍 to issues you find important.

@infinisil infinisil added the feature Feature request or proposal label Jan 24, 2023
@roberth
Copy link
Member

roberth commented Jan 24, 2023

What's extra here is having multiple implementations of the attrset interface, which has its own cost. Some thoughts:

  • nameValuePair can be avoided if we rely more on functions such as concatMapAttrs or variations of it.
  • I wonder about the runtime cost of these pairs. I would think they're mostly ephemeral objects during computations on attrsets, but I may be very wrong about that. Also the unnecessary allocation and increased gc have a cost regardless of "permanent" heap size.
  • If I may share an overly ambitious opinion, lists are to be avoided in general, because abstractions with an explicit ordering tend to lead to problems in declarative applications. This also includes function-based abstractions, such as overlays, and it includes the application of arbitrary integers, such as in mkOverride. (unsurprising because integers are the index into lists)
  • We have another very useful application of the attrset interface in the form of cached evaluation. It makes the implementation of Cache the result of getFlake #4511 not a hack.
  • It may be possible to turn any attrset shape (set of names) into a more efficient representation by allocating a large range of internal type numbers to point to a list of frequent sets of names. This would probably only be a net benefit if Nix was given a compilation step that turns names into indexes like it does for the non-with scope. It is a much much harder problem though, but solutions exist, as shown by JavaScript interpreters. I wonder how fast Nix compiled to nodejs would run...
  • By opening up the implementation of attrsets, we might consider an implementation of the laziest possible attrset, which doesn't ever need to materialize the entire set of names unless the set of names is queried. This would be more like a memoized string->value function plus a thunk to produce the names if needed. Such an attrset would make pkgs more efficient and scalable, removing the need for readDir (until you do attrNames pkgs on the repl, or nix-env -qaP). It does put the onus of satisfying the attrset interface on the user, specifically that (tryEval a.k).success -> elem k (attrNames a), but this may be acceptable.

That's all I have for now, but I'll conclude that it's worth trying. If this shows that a "virtual" attrset does not need to be slower than what we have, that'd be great news for the other optimizations too.

@infinisil
Copy link
Member Author

Oh yeah, also #4090 would benefit from an abstracted attribute representation. I didn't have the time for it, but that's what I wanted to do next for that PR. Specifically I think that should be an explicit builtins.lazyAttrsUpdate, which stores the left/right attribute set separately internally, but also implements the attribute set interface

@adisbladis
Copy link
Member

I was curious what the impact of such an optimization would be and measured a nixpkgs eval.
The results were somewhat disappointing. I don't think such an optimization is worth it based on my numbers.
Only 0.45% of all attrsets created are lib.nameValuePair.

  • Nixpkgs evaluation statistics
{
  "cpuTime": 712.0946655273438,
  "envs": {
    "bytes": 17685813200,
    "elements": 923836208,
    "number": 643445221
  },
  "gc": {
    "heapSize": 49061007360,
    "totalBytes": 104299666128
  },
  "list": {
    "bytes": 2495572504,
    "concats": 54666602,
    "elements": 311946563
  },
  "nrAvoided": 784922249,
  "nrExprs": 3814091,
  "nrFunctionCalls": 599839037,
  "nrLookups": 315198579,
  "nrOpUpdateValuesCopied": 1507273801,
  "nrOpUpdates": 70052121,
  "nrPrimOpCalls": 296204095,
  "nrThunks": 849099332,
  "sets": {
    "bytes": 33392546032,
    "elements": 1966117714,
    "number": 120916413
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 16,
    "Value": 24
  },
  "symbols": {
    "bytes": 2095785,
    "number": 158751
  },
  "values": {
    "bytes": 26435170488,
    "number": 1101465437
  }
}

Number of key value pairs created by lib.nameValuePair

550616

Attrset size distribution

I think these numbers point to that there are some performance outliers to find in nixpkgs.

List very long and disruptive, click to expand.

Rendered as right-aligned because it better points out the outliers.

|  Size | Allocations |
|-------+-------------|
|     1 |    20847135 |
|     2 |    28516400 |
|     3 |    10190124 |
|     4 |    11130025 |
|     5 |     7865070 |
|     6 |     5408869 |
|     7 |     4793068 |
|     8 |     1706069 |
|     9 |     1416848 |
|    10 |     1196022 |
|    11 |      639401 |
|    12 |      500768 |
|    13 |      371032 |
|    14 |      729220 |
|    15 |      427836 |
|    16 |      392509 |
|    17 |      176319 |
|    18 |      104371 |
|    19 |      245284 |
|    20 |      249432 |
|    21 |      987707 |
|    22 |     1772867 |
|    23 |       78927 |
|    24 |       99475 |
|    25 |      109481 |
|    26 |       23400 |
|    27 |     2236404 |
|    28 |      985680 |
|    29 |      337636 |
|    30 |      553155 |
|    31 |      408125 |
|    32 |      531691 |
|    33 |      718065 |
|    34 |      280724 |
|    35 |      424155 |
|    36 |      453706 |
|    37 |       81289 |
|    38 |       83312 |
|    39 |      203158 |
|    40 |      470741 |
|    41 |      328927 |
|    42 |      157229 |
|    43 |      231462 |
|    44 |      312182 |
|    45 |      481686 |
|    46 |      595815 |
|    47 |      179204 |
|    48 |     1151668 |
|    49 |      269133 |
|    50 |      348422 |
|    51 |      569508 |
|    52 |      689067 |
|    53 |      999877 |
|    54 |      310631 |
|    55 |      301016 |
|    56 |      470074 |
|    57 |      801760 |
|    58 |      309373 |
|    59 |     1045989 |
|    60 |      520479 |
|    61 |      235695 |
|    62 |      385817 |
|    63 |      214931 |
|    64 |      785327 |
|    65 |      309905 |
|    66 |       91748 |
|    67 |      103498 |
|    68 |       22149 |
|    69 |       97216 |
|    70 |       78895 |
|    71 |       90630 |
|    72 |       65156 |
|    73 |       73752 |
|    74 |       55671 |
|    75 |       64563 |
|    76 |       42785 |
|    77 |       41846 |
|    78 |       33900 |
|    79 |       45327 |
|    80 |       43841 |
|    81 |       36937 |
|    82 |        4320 |
|    83 |        4944 |
|    84 |        1346 |
|    85 |        5561 |
|    86 |        3610 |
|    87 |        2149 |
|    88 |        2928 |
|    89 |        1599 |
|    90 |        3170 |
|    91 |        7011 |
|    92 |        8440 |
|    93 |        2314 |
|    94 |        4192 |
|    95 |       13036 |
|    96 |        3187 |
|    97 |         713 |
|    98 |        4708 |
|    99 |        1995 |
|   100 |         614 |
|   101 |        1009 |
|   102 |        1692 |
|   103 |         758 |
|   104 |         192 |
|   105 |         508 |
|   106 |         406 |
|   107 |         352 |
|   108 |         154 |
|   109 |         140 |
|   110 |         156 |
|   111 |         671 |
|   112 |         293 |
|   113 |         118 |
|   114 |         185 |
|   115 |         239 |
|   116 |         420 |
|   117 |         243 |
|   118 |         106 |
|   119 |         109 |
|   120 |         121 |
|   121 |         112 |
|   122 |         265 |
|   123 |         120 |
|   124 |         168 |
|   125 |          97 |
|   126 |         155 |
|   127 |         109 |
|   128 |         102 |
|   129 |         200 |
|   130 |         173 |
|   131 |          99 |
|   132 |         103 |
|   133 |         113 |
|   134 |         104 |
|   135 |         214 |
|   136 |         114 |
|   137 |          96 |
|   138 |         298 |
|   139 |         117 |
|   140 |         416 |
|   141 |         156 |
|   142 |         418 |
|   143 |         305 |
|   144 |         600 |
|   145 |         381 |
|   146 |         330 |
|   147 |         437 |
|   148 |         162 |
|   149 |         125 |
|   150 |         110 |
|   151 |         183 |
|   152 |         158 |
|   153 |         181 |
|   154 |         160 |
|   155 |         126 |
|   156 |         189 |
|   157 |         110 |
|   158 |         100 |
|   159 |          98 |
|   160 |          94 |
|   161 |         704 |
|   162 |         265 |
|   163 |         167 |
|   164 |          88 |
|   165 |         126 |
|   166 |         353 |
|   167 |         270 |
|   168 |         138 |
|   169 |          88 |
|   170 |          86 |
|   171 |          90 |
|   172 |          94 |
|   173 |         695 |
|   174 |          82 |
|   175 |          85 |
|   176 |          86 |
|   177 |          90 |
|   178 |          82 |
|   179 |         103 |
|   180 |          96 |
|   181 |          79 |
|   182 |          74 |
|   183 |          86 |
|   184 |          74 |
|   185 |          73 |
|   186 |          73 |
|   187 |          97 |
|   188 |          72 |
|   189 |          72 |
|   190 |          75 |
|   191 |         239 |
|   192 |          66 |
|   193 |          68 |
|   194 |         311 |
|   195 |          65 |
|   196 |          62 |
|   197 |          77 |
|   198 |          63 |
|   199 |          62 |
|   200 |          62 |
|   201 |          62 |
|   202 |         112 |
|   203 |          62 |
|   204 |          79 |
|   205 |          67 |
|   206 |          58 |
|   207 |         103 |
|   208 |          58 |
|   209 |          75 |
|   210 |         140 |
|   211 |          58 |
|   212 |          61 |
|   213 |          57 |
|   214 |          64 |
|   215 |         130 |
|   216 |          45 |
|   217 |          47 |
|   218 |          41 |
|   219 |          41 |
|   220 |          42 |
|   221 |         128 |
|   222 |         650 |
|   223 |          37 |
|   224 |          82 |
|   225 |         118 |
|   226 |          42 |
|   227 |         121 |
|   228 |          42 |
|   229 |         658 |
|   230 |        1363 |
|   231 |          38 |
|   232 |          47 |
|   233 |        2285 |
|   234 |          40 |
|   235 |          60 |
|   236 |          36 |
|   237 |          35 |
|   238 |          39 |
|   239 |          35 |
|   240 |          34 |
|   241 |          34 |
|   242 |          49 |
|   243 |          38 |
|   244 |          41 |
|   245 |          30 |
|   246 |         135 |
|   247 |          30 |
|   248 |          31 |
|   249 |          30 |
|   250 |          30 |
|   251 |          30 |
|   252 |          30 |
|   253 |          30 |
|   254 |          31 |
|   255 |          26 |
|   256 |          28 |
|   257 |          39 |
|   258 |          27 |
|   259 |          26 |
|   260 |          26 |
|   261 |          26 |
|   262 |          26 |
|   263 |          26 |
|   264 |         749 |
|   265 |         274 |
|   266 |          58 |
|   267 |          24 |
|   268 |          24 |
|   269 |          24 |
|   270 |          24 |
|   271 |          24 |
|   272 |          23 |
|   273 |          23 |
|   274 |          23 |
|   275 |          23 |
|   276 |          23 |
|   277 |          23 |
|   278 |          23 |
|   279 |          23 |
|   280 |          23 |
|   281 |          23 |
|   282 |          23 |
|   283 |          19 |
|   284 |          33 |
|   285 |          89 |
|   286 |         104 |
|   287 |          27 |
|   288 |          31 |
|   289 |          51 |
|   290 |          46 |
|   291 |          19 |
|   292 |          19 |
|   293 |          19 |
|   294 |          19 |
|   295 |          19 |
|   296 |         110 |
|   297 |         440 |
|   298 |          19 |
|   299 |          19 |
|   300 |          19 |
|   301 |          19 |
|   302 |          19 |
|   303 |          49 |
|   304 |          37 |
|   305 |          28 |
|   306 |          19 |
|   307 |          20 |
|   308 |          30 |
|   309 |          19 |
|   310 |          25 |
|   311 |          17 |
|   312 |          17 |
|   313 |          17 |
|   314 |          19 |
|   315 |          26 |
|   316 |          17 |
|   317 |          23 |
|   318 |          23 |
|   319 |          17 |
|   320 |          23 |
|   321 |          23 |
|   322 |          17 |
|   323 |          17 |
|   324 |          17 |
|   325 |          17 |
|   326 |          16 |
|   327 |          16 |
|   328 |          16 |
|   329 |          16 |
|   330 |          16 |
|   331 |          16 |
|   332 |          16 |
|   333 |          16 |
|   334 |          16 |
|   335 |          22 |
|   336 |          14 |
|   337 |          14 |
|   338 |          14 |
|   339 |          14 |
|   340 |          17 |
|   341 |          14 |
|   342 |          14 |
|   343 |          19 |
|   344 |          14 |
|   345 |          14 |
|   346 |          14 |
|   347 |          14 |
|   348 |          14 |
|   349 |          14 |
|   350 |          14 |
|   351 |          16 |
|   352 |          14 |
|   353 |        3544 |
|   354 |          14 |
|   355 |        7293 |
|   356 |         110 |
|   357 |        3576 |
|   358 |          14 |
|   359 |          14 |
|   360 |          14 |
|   361 |          54 |
|   362 |          49 |
|   363 |          14 |
|   364 |          14 |
|   365 |          14 |
|   366 |          14 |
|   367 |          19 |
|   368 |          14 |
|   369 |          14 |
|   370 |          26 |
|   371 |          14 |
|   372 |          14 |
|   373 |          18 |
|   374 |          26 |
|   375 |          14 |
|   376 |          14 |
|   377 |          14 |
|   378 |          14 |
|   379 |          14 |
|   380 |          14 |
|   381 |          36 |
|   382 |          49 |
|   383 |          19 |
|   384 |          14 |
|   385 |          14 |
|   386 |          14 |
|   387 |          14 |
|   388 |          14 |
|   389 |          14 |
|   390 |          14 |
|   391 |          14 |
|   392 |           6 |
|   393 |           6 |
|   394 |           6 |
|   395 |         619 |
|   396 |           6 |
|   397 |           6 |
|   398 |           6 |
|   399 |          12 |
|   400 |          12 |
|   401 |           6 |
|   402 |          16 |
|   403 |          12 |
|   404 |           6 |
|   405 |           6 |
|   406 |           6 |
|   407 |           6 |
|   408 |           6 |
|   409 |           6 |
|   410 |           6 |
|   411 |           6 |
|   412 |          16 |
|   413 |           6 |
|   414 |           6 |
|   415 |          11 |
|   416 |           6 |
|   417 |          13 |
|   418 |          10 |
|   419 |           5 |
|   420 |         119 |
|   421 |          30 |
|   422 |           9 |
|   423 |          19 |
|   424 |          25 |
|   425 |        4413 |
|   426 |           4 |
|   427 |           4 |
|   428 |           4 |
|   429 |          19 |
|   430 |           9 |
|   431 |           4 |
|   432 |           4 |
|   433 |           4 |
|   434 |           4 |
|   435 |           4 |
|   436 |           4 |
|   437 |           4 |
|   438 |          10 |
|   439 |           4 |
|   440 |         232 |
|   441 |           4 |
|   442 |          10 |
|   443 |           4 |
|   444 |          10 |
|   445 |           4 |
|   446 |           4 |
|   447 |           4 |
|   448 |           4 |
|   449 |           4 |
|   450 |           4 |
|   451 |           4 |
|   452 |           4 |
|   453 |           4 |
|   454 |         323 |
|   455 |           4 |
|   456 |           4 |
|   457 |           4 |
|   458 |           4 |
|   459 |          30 |
|   460 |         405 |
|   461 |           4 |
|   462 |           4 |
|   463 |           4 |
|   464 |           4 |
|   465 |           4 |
|   466 |           4 |
|   467 |           4 |
|   468 |           4 |
|   469 |           4 |
|   470 |           4 |
|   471 |           6 |
|   472 |           4 |
|   473 |           4 |
|   474 |           4 |
|   475 |           6 |
|   476 |           4 |
|   477 |           4 |
|   478 |           4 |
|   479 |           4 |
|   480 |           4 |
|   481 |           4 |
|   482 |           4 |
|   483 |           6 |
|   484 |           4 |
|   485 |           4 |
|   486 |           4 |
|   487 |           4 |
|   488 |           4 |
|   489 |           4 |
|   490 |           4 |
|   491 |           4 |
|   492 |           4 |
|   493 |           4 |
|   494 |           4 |
|   495 |           4 |
|   496 |           4 |
|   497 |           6 |
|   498 |           6 |
|   499 |           4 |
|   500 |           2 |
|   506 |           2 |
|   507 |           4 |
|   508 |           4 |
|   514 |           6 |
|   515 |          17 |
|   516 |           6 |
|   517 |          16 |
|   518 |           8 |
|   519 |           6 |
|   520 |           8 |
|   523 |           2 |
|   524 |          16 |
|   525 |          10 |
|   526 |          13 |
|   528 |           2 |
|   529 |           3 |
|   531 |           2 |
|   532 |           2 |
|   534 |           2 |
|   538 |          86 |
|   539 |           3 |
|   541 |           2 |
|   542 |           2 |
|   546 |           2 |
|   548 |           9 |
|   549 |           3 |
|   550 |           4 |
|   551 |           4 |
|   555 |           5 |
|   557 |          93 |
|   558 |           4 |
|   559 |           8 |
|   560 |           5 |
|   563 |           4 |
|   565 |         707 |
|   566 |         698 |
|   568 |          18 |
|   569 |          12 |
|   570 |           5 |
|   571 |           8 |
|   572 |           1 |
|   573 |           7 |
|   574 |           4 |
|   579 |           5 |
|   580 |           2 |
|   582 |           2 |
|   584 |          14 |
|   585 |           1 |
|   588 |           1 |
|   589 |           6 |
|   590 |           2 |
|   592 |           5 |
|   593 |           4 |
|   604 |           6 |
|   605 |           1 |
|   615 |         114 |
|   616 |           9 |
|   618 |           1 |
|   621 |           2 |
|   622 |           4 |
|   631 |         696 |
|   636 |           1 |
|   638 |           1 |
|   641 |          13 |
|   642 |           8 |
|   645 |           4 |
|   646 |           1 |
|   647 |           5 |
|   666 |         256 |
|   672 |         256 |
|   697 |          39 |
|   705 |           6 |
|   706 |           6 |
|   707 |           1 |
|   712 |           1 |
|   714 |           3 |
|   718 |           5 |
|   729 |           1 |
|   731 |           4 |
|   732 |           2 |
|   735 |          71 |
|   736 |           1 |
|   737 |           1 |
|   739 |           2 |
|   740 |           7 |
|   752 |           2 |
|   753 |           7 |
|   754 |           1 |
|   762 |           5 |
|   773 |           3 |
|   775 |           3 |
|   776 |           6 |
|   777 |           1 |
|   793 |           2 |
|   794 |           1 |
|   797 |           2 |
|   798 |          32 |
|   799 |           5 |
|   800 |           3 |
|   801 |          38 |
|   802 |           1 |
|   804 |           5 |
|   805 |           1 |
|   813 |          70 |
|   814 |           1 |
|   815 |           1 |
|   818 |          31 |
|   819 |           4 |
|   820 |           1 |
|   824 |           3 |
|   828 |           3 |
|   832 |           1 |
|   833 |           1 |
|   840 |         492 |
|   851 |           2 |
|   852 |           1 |
|   855 |          30 |
|   856 |           1 |
|   858 |           3 |
|   859 |           1 |
|   860 |           2 |
|   862 |           2 |
|   871 |           1 |
|   872 |           1 |
|   881 |           3 |
|   891 |           4 |
|   896 |           4 |
|   914 |           2 |
|   920 |           9 |
|   925 |           9 |
|   942 |           5 |
|   947 |           5 |
|   953 |           3 |
|   971 |         612 |
|   975 |           4 |
|   976 |          22 |
|   981 |          12 |
|   982 |           5 |
|   983 |           5 |
|   987 |          10 |
|   995 |           4 |
|   996 |           2 |
|   999 |          72 |
|  1000 |           7 |
|  1002 |           1 |
|  1003 |           2 |
|  1010 |           5 |
|  1011 |           2 |
|  1012 |           7 |
|  1013 |           1 |
|  1017 |           4 |
|  1018 |           2 |
|  1020 |           5 |
|  1021 |          71 |
|  1022 |           2 |
|  1025 |          15 |
|  1026 |           1 |
|  1029 |          31 |
|  1030 |           3 |
|  1032 |           1 |
|  1033 |           3 |
|  1034 |           7 |
|  1035 |           1 |
|  1041 |           1 |
|  1042 |           6 |
|  1044 |           2 |
|  1045 |           1 |
|  1048 |          38 |
|  1049 |           5 |
|  1050 |           7 |
|  1051 |           4 |
|  1052 |           1 |
|  1059 |          95 |
|  1060 |           1 |
|  1061 |           4 |
|  1062 |           1 |
|  1067 |           2 |
|  1068 |           1 |
|  1069 |           3 |
|  1071 |          30 |
|  1072 |           2 |
|  1073 |           3 |
|  1075 |           1 |
|  1076 |           6 |
|  1077 |           1 |
|  1078 |           2 |
|  1079 |           1 |
|  1080 |          31 |
|  1081 |           5 |
|  1082 |          37 |
|  1083 |           2 |
|  1084 |           7 |
|  1086 |           1 |
|  1092 |           4 |
|  1093 |           1 |
|  1094 |           1 |
|  1095 |           8 |
|  1096 |           1 |
|  1097 |           2 |
|  1101 |           3 |
|  1103 |           3 |
|  1117 |          10 |
|  1122 |           6 |
|  1123 |           9 |
|  1124 |           2 |
|  1125 |          30 |
|  1126 |           1 |
|  1128 |           3 |
|  1129 |           2 |
|  1130 |           1 |
|  1134 |           2 |
|  1137 |           1 |
|  1138 |           1 |
|  1146 |           3 |
|  1175 |           2 |
|  1192 |           1 |
|  1229 |           3 |
|  1281 |           4 |
|  1345 |           8 |
|  1350 |           5 |
|  1420 |           5 |
|  1421 |           5 |
|  1423 |           5 |
|  1424 |           8 |
|  1425 |           1 |
|  1604 |           5 |
|  1646 |           4 |
|  1704 |           4 |
|  1733 |           9 |
|  1755 |           5 |
|  1789 |          22 |
|  1909 |          82 |
|  1913 |          68 |
|  1915 |          70 |
|  1916 |          66 |
|  1917 |           2 |
|  1958 |          10 |
|  2002 |          14 |
|  2006 |          14 |
|  2008 |          14 |
|  2009 |          14 |
|  2309 |           5 |
|  2980 |          10 |
|  2982 |           5 |
|  3136 |           4 |
|  3828 |           2 |
|  3830 |           7 |
|  3832 |          15 |
|  4243 |           1 |
|  4297 |          36 |
|  4298 |          10 |
|  4304 |           9 |
|  4305 |           9 |
|  4598 |          20 |
|  4603 |          10 |
|  4605 |          10 |
|  4633 |          10 |
|  4634 |           8 |
|  4635 |           6 |
|  4643 |          10 |
|  4674 |          15 |
|  5641 |          10 |
|  5643 |           5 |
|  5706 |           5 |
|  5707 |           5 |
|  5708 |           5 |
|  5731 |           5 |
|  5935 |           5 |
|  6040 |           5 |
|  6048 |           5 |
|  6051 |           5 |
|  6052 |          12 |
|  6053 |           1 |
|  6148 |           5 |
|  6272 |          12 |
|  6463 |           5 |
|  6731 |           4 |
|  7649 |        3068 |
|  7650 |         259 |
|  7651 |         108 |
|  7652 |          30 |
|  7654 |          10 |
|  7656 |           5 |
|  7663 |          10 |
|  7676 |        2947 |
|  7677 |          45 |
|  7678 |          37 |
|  7679 |          14 |
|  7680 |           5 |
|  7684 |          19 |
|  7687 |           5 |
|  7688 |          19 |
|  7690 |           5 |
|  7702 |        3104 |
|  7703 |          45 |
|  7704 |           5 |
|  7705 |          20 |
|  7706 |        2836 |
|  7707 |          45 |
|  7708 |        5650 |
|  7709 |         139 |
|  7710 |          44 |
|  7711 |          28 |
|  7712 |          10 |
|  7713 |           5 |
|  7714 |          19 |
|  7716 |          43 |
|  7717 |          10 |
|  7719 |          10 |
|  7720 |          10 |
|  7722 |          10 |
|  7728 |          37 |
|  7732 |          37 |
|  7733 |        2632 |
|  7734 |         119 |
|  7735 |          38 |
|  7736 |          20 |
|  7737 |           5 |
|  7741 |          19 |
|  7744 |           5 |
|  7747 |           5 |
|  7759 |          37 |
|  8116 |         111 |
|  8142 |         111 |
|  8146 |         111 |
|  8148 |         222 |
|  8149 |          10 |
|  8150 |          10 |
|  8173 |         111 |
|  8688 |           5 |
| 15414 |          38 |
| 15416 |         139 |
| 17871 |         256 |
| 17892 |         256 |
| 17907 |         788 |
| 17911 |          52 |
| 17947 |           2 |
| 17948 |         227 |
| 17949 |         315 |
| 17950 |         388 |
| 17951 |         497 |
| 17952 |         122 |
| 17953 |           1 |
| 17954 |           5 |
| 17955 |          19 |
| 17956 |          19 |
| 17957 |          23 |
| 17958 |          27 |
| 17959 |           5 |
| 17970 |           8 |
| 17972 |           2 |
| 17973 |         320 |
| 17974 |          59 |
| 17975 |           2 |
| 17977 |          92 |
| 17978 |          40 |
| 17979 |           5 |
| 17980 |          13 |
| 17991 |          15 |
| 18008 |          34 |
| 18197 |         783 |
| 18198 |         127 |
| 18200 |           2 |
| 18201 |         320 |
| 18202 |          14 |
| 18207 |           5 |
| 18208 |          13 |
| 18232 |          34 |
| 18579 |         204 |
| 18826 |         698 |
| 18827 |         667 |
| 18828 |        1294 |
| 18829 |         213 |
| 18830 |          31 |
| 18831 |         126 |
| 18832 |         214 |
| 18833 |          74 |
| 18834 |           5 |
| 18835 |          36 |
| 18836 |           3 |
| 18837 |           1 |
| 18839 |          99 |
| 18840 |         275 |
| 18841 |          55 |
| 18842 |          25 |
| 18843 |          28 |
| 18844 |           3 |
| 18847 |          18 |
| 18848 |           1 |
| 18850 |          50 |
| 18851 |           6 |
| 18865 |          29 |
| 18867 |           9 |
| 18870 |          11 |
| 18871 |          22 |
| 18881 |           4 |
| 18882 |          13 |
| 18885 |          83 |
| 18886 |          18 |
| 18887 |          11 |
| 18888 |          12 |
| 18889 |           2 |
| 18897 |           2 |
| 18898 |           7 |
| 18899 |           1 |
| 18906 |           5 |
| 18911 |           2 |
| 18912 |           1 |
| 18915 |          31 |
| 18916 |           3 |
| 18918 |           1 |
| 18919 |           1 |
| 18927 |           1 |
| 18928 |           1 |
| 18930 |           2 |
| 18931 |           1 |
| 18934 |          38 |
| 18935 |           5 |
| 18936 |           3 |
| 18937 |           4 |
| 18938 |           1 |
| 18946 |           1 |
| 18947 |           4 |
| 18948 |           1 |
| 18955 |           3 |
| 18962 |           2 |
| 18963 |           1 |
| 18966 |          31 |
| 18967 |           5 |
| 18970 |           1 |
| 18978 |           1 |
| 18979 |           1 |
| 18983 |           2 |
| 18987 |           3 |
| 19015 |           2 |
| 19051 |          13 |
| 19052 |           6 |
| 19053 |           2 |
| 19055 |          28 |
| 19056 |         107 |
| 19057 |         261 |
| 19058 |          79 |
| 19059 |          17 |
| 19060 |          15 |
| 19061 |           6 |
| 19062 |          17 |
| 19063 |          26 |
| 19064 |           3 |
| 19065 |          67 |
| 19066 |           5 |
| 19068 |          11 |
| 19069 |          46 |
| 19070 |          19 |
| 19073 |          11 |
| 19074 |           5 |
| 19077 |          14 |
| 19078 |         117 |
| 19079 |           6 |
| 19080 |           9 |
| 19081 |          50 |
| 19082 |          44 |
| 19083 |          22 |
| 19084 |           6 |
| 19085 |          16 |
| 19086 |           5 |
| 19087 |           8 |
| 19088 |          20 |
| 19089 |          29 |
| 19090 |          11 |
| 19098 |          60 |
| 19099 |           5 |
| 19100 |          42 |
| 19103 |           6 |
| 19104 |          13 |
| 19109 |           5 |
| 19113 |           4 |
| 19117 |           5 |
| 19119 |           5 |
| 19124 |           3 |
| 19129 |           5 |
| 19134 |           5 |
| 19158 |          29 |
| 19168 |          10 |
| 19195 |         111 |
| 19200 |          81 |
| 19207 |          15 |
| 19208 |          28 |
| 19209 |          22 |
| 19278 |          19 |
| 19279 |          25 |
| 19280 |          35 |
| 19311 |          15 |
| 19312 |          40 |
| 19313 |         170 |
| 19314 |         557 |
| 19315 |          90 |
| 19402 |          11 |
| 19403 |          21 |
| 19404 |          69 |
| 19405 |         113 |
| 19406 |          34 |
| 19408 |           2 |
| 19409 |           2 |
| 19410 |           2 |
| 19411 |           4 |
| 19563 |           6 |
| 19564 |           6 |
| 19565 |           5 |
| 19566 |          11 |
| 19569 |           5 |
| 19571 |           5 |
| 19574 |           3 |
| 19600 |           5 |
| 19637 |           5 |
| 19797 |         306 |
| 19798 |         283 |
| 19799 |         481 |
| 19800 |         214 |
| 19801 |          13 |
| 19804 |          33 |
| 19806 |          35 |
| 19810 |          65 |
| 19811 |         250 |
| 19812 |           6 |
| 19813 |          33 |
| 19814 |          33 |
| 19818 |          11 |
| 19821 |          66 |
| 19841 |           2 |
| 19842 |           4 |
| 19853 |           2 |
| 19856 |           2 |
| 19857 |           2 |
| 19858 |           2 |
| 19859 |           2 |
| 19945 |           4 |
| 19974 |           9 |
| 19996 |           5 |
| 20019 |           6 |
| 20024 |          61 |
| 20025 |         202 |
| 20026 |          10 |
| 20027 |           2 |
| 20030 |          20 |
| 20031 |          22 |
| 20036 |           6 |
| 20046 |           6 |
| 20048 |           5 |
| 20049 |           8 |
| 20050 |           4 |
| 20051 |           4 |
| 20055 |           4 |
| 20056 |           8 |
| 20057 |           2 |
| 20058 |           2 |
| 20064 |           4 |
| 20071 |           6 |
| 20072 |          17 |
| 20085 |           2 |
| 20170 |           4 |
| 20176 |           3 |
| 20177 |           7 |
| 20178 |           4 |
| 20246 |           9 |
| 20247 |           2 |
| 20248 |           4 |
| 20280 |           2 |
| 20281 |           5 |
| 20282 |          24 |
| 20283 |          75 |
| 20284 |           8 |
| 20371 |           2 |
| 20372 |           5 |
| 20373 |          12 |
| 20374 |          28 |
| 20375 |           8 |
| 20534 |           6 |
| 20962 |          26 |
| 20963 |          16 |
| 20964 |          12 |
| 20965 |           1 |
| 22023 |           8 |
| 22024 |           4 |
| 22025 |           2 |
| 22696 |           5 |
| 23126 |           5 |
| 24136 |           5 |
| 25100 |           5 |
| 26440 |           5 |
| 26442 |          10 |
| 26443 |          10 |
| 26445 |           5 |
| 26446 |           5 |
| 26471 |           5 |
| 26483 |           5 |
| 26516 |           5 |
| 26573 |           5 |
| 26630 |           5 |
| 26631 |           5 |
| 26755 |        2491 |
| 26756 |          98 |
| 26757 |         107 |
| 26758 |          44 |
| 26759 |           5 |
| 26763 |          19 |
| 26766 |           5 |
| 26769 |           5 |
| 26781 |          37 |
| 28163 |          87 |
| 28164 |           8 |
| 28165 |          16 |
| 37024 |           2 |
| 37025 |         318 |
| 37026 |          16 |
| 37031 |           5 |
| 37032 |          13 |
| 37654 |         162 |
| 37655 |          81 |
| 37656 |           6 |
| 37657 |           3 |
| 37660 |          13 |
| 37661 |          91 |
| 37662 |          13 |
| 38024 |          34 |
| 39596 |          42 |
| 39597 |          21 |

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Feature request or proposal
Projects
None yet
Development

No branches or pull requests

3 participants