32bit base

This PR does two things:

Swap the 16 bit base for a 32 bit base
Reorder many pattern matches to hit hot code paths with less comparisons

Regarding 1. this should improve performance since a path in the tree become log_32 rather than log_16. Similarly it should mean that the HAMT stays more shallow for longer.
Note that the benchmark suite will not show the difference since n = 2^12 = 4096 which means the HAMT doesn't get very nested.
I've benchmarked the PR with n = 4 * (2^16) elements. This number is significant because with a 16 bit base then tree should increase in level after 2^16 elements are inserted (I believe). So this number of elements stress tests the HAMT and thus a difference between implementations is more noticeable. Here is a table of the comparison:
   Name                                master    branch Difference PctDifference
   <chr>                                <dbl>     <dbl>      <dbl>         <dbl>
 1 HashMap/insert/String            2.0030e-1 2.6837e-1  6.8074e-2      33.987
 2 HashMap/alterFInsert/String      2.1753e-1 2.7419e-1  5.6655e-2      26.045
 3 HashMap/isSubmapOf/ByteString    1.1734e-2 1.4180e-2  2.4460e-3      20.845
 4 HashMap/lookup-miss/String       3.4322e-2 4.0775e-2  6.4534e-3      18.803
 5 HashMap/fromList/short/Int       4.9360e-2 5.6371e-2  7.0111e-3      14.204
 6 HashMap/alterDelete-miss/Str…    3.9093e-2 4.4139e-2  5.0463e-3      12.909
 7 HashMap/alterInsert/Int          1.6629e-1 1.8363e-1  1.7341e-2      10.428
 8 HashMap/fromListWith/short/I…    5.6768e-2 6.2198e-2  5.4307e-3       9.5665
 9 HashMap/insert/ByteString        1.9137e-1 2.0795e-1  1.6575e-2       8.6611
10 HashMap/alterFInsert/Int         1.6701e-1 1.7653e-1  9.5194e-3       5.6998
11 HashMap/alterInsert/ByteStri…    2.1202e-1 2.2374e-1  1.1721e-2       5.5284
12 HashMap/alterFInsert/ByteStr…    1.9252e-1 2.0284e-1  1.0322e-2       5.3617
13 HashMap/insert/Int               1.6066e-1 1.6753e-1  6.8664e-3       4.2739
14 HashMap/lookup/String            1.8751e-1 1.9298e-1  5.4667e-3       2.9154
15 HashMap/alterFDelete/Int         1.2597e-1 1.2557e-1 -3.9674e-4      -0.31494
16 HashMap/delete/ByteString        1.9134e-1 1.8940e-1 -1.9429e-3      -1.0154
17 HashMap/isSubmapOfNaive/Byte…    1.8026e-2 1.7503e-2 -5.2318e-4      -2.9024
18 HashMap/delete/Int               1.3296e-1 1.2747e-1 -5.4821e-3      -4.1233
19 HashMap/alterFInsert-dup/Int     1.3616e-1 1.3029e-1 -5.8736e-3      -4.3138
20 HashMap/alterFDelete/ByteStr…    1.9870e-1 1.8918e-1 -9.5198e-3      -4.7910
21 HashMap/alterFInsert-dup/Str…    1.0951e-1 1.0404e-1 -5.4631e-3      -4.9889
22 HashMap/alterDelete/ByteStri…    2.0143e-1 1.9126e-1 -1.0166e-2      -5.0472
23 HashMap/insert-dup/String        1.0905e-1 1.0261e-1 -6.4429e-3      -5.9079
24 HashMap/map                      1.7489e-2 1.6364e-2 -1.1255e-3      -6.4352
25 HashMap/alterDelete/Int          1.4028e-1 1.3015e-1 -1.0133e-2      -7.2233
26 HashMap/difference               2.9006e-2 2.6571e-2 -2.4352e-3      -8.3956
27 HashMap/fromList/long/String     1.2460e-1 1.1381e-1 -1.0790e-2      -8.6593
28 HashMap/alterInsert/String       2.3628e-1 2.1523e-1 -2.1044e-2      -8.9067
29 HashMap/lookup/ByteString        9.0018e-2 8.1684e-2 -8.3336e-3      -9.2577
30 HashMap/alterInsert-dup/Int      1.3935e-1 1.2553e-1 -1.3822e-2      -9.9193
31 HashMap/fromList/long/Int        7.9622e-2 7.1558e-2 -8.0643e-3     -10.128
32 HashMap/insert-dup/Int           1.3674e-1 1.2280e-1 -1.3940e-2     -10.194
33 HashMap/alterFDelete-miss/Int    7.3169e-2 6.4553e-2 -8.6158e-3     -11.775
34 HashMap/fromListWith/short/S…    2.6485e-2 2.3176e-2 -3.3088e-3     -12.493
35 HashMap/fromListWith/long/By…    9.8163e-2 8.5733e-2 -1.2430e-2     -12.663
36 HashMap/alterDelete-miss/Int     7.8475e-2 6.8417e-2 -1.0058e-2     -12.817
37 HashMap/intersection             2.9143e-2 2.5119e-2 -4.0241e-3     -13.808
38 HashMap/fromListWith/long/Int    8.8757e-2 7.6069e-2 -1.2688e-2     -14.295
39 HashMap/size/ByteString          3.6860e-3 3.0649e-3 -6.2114e-4     -16.851
40 HashMap/lookup/Int               5.8667e-2 4.8705e-2 -9.9625e-3     -16.981
41 HashMap/delete-miss/Int          7.1066e-2 5.8884e-2 -1.2182e-2     -17.141
42 HashMap/size/String              3.1747e-3 2.5993e-3 -5.7544e-4     -18.126
43 HashMap/fromList/short/ByteS…    2.3714e-2 1.9378e-2 -4.3362e-3     -18.285
44 HashMap/filterWithKey            6.7425e-3 5.4882e-3 -1.2543e-3     -18.603
45 HashMap/alterInsert-dup/Byte…    9.9778e-2 8.1030e-2 -1.8747e-2     -18.789
46 HashMap/fromListWith/short/B…    2.2141e-2 1.7960e-2 -4.1809e-3     -18.883
47 HashMap/foldl'                   3.8933e-3 3.1439e-3 -7.4942e-4     -19.249
48 HashMap/filter                   1.3389e-2 1.0733e-2 -2.6563e-3     -19.839
49 HashMap/fromList/long/ByteSt…    1.1492e-1 9.1809e-2 -2.3114e-2     -20.112
50 HashMap/fromListWith/long/St…    1.2993e-1 1.0327e-1 -2.6664e-2     -20.521
51 HashMap/insert-dup/ByteString    9.4205e-2 7.4592e-2 -1.9613e-2     -20.820
52 HashMap/alterFInsert-dup/Byt…    9.4634e-2 7.4397e-2 -2.0237e-2     -21.384
53 HashMap/lookup-miss/Int          3.3997e-2 2.6709e-2 -7.2885e-3     -21.438
54 HashMap/union                    1.1522e-2 9.0485e-3 -2.4736e-3     -21.468
55 HashMap/size/Int                 1.1961e-3 9.2380e-4 -2.7234e-4     -22.768
56 HashMap/delete-miss/String       3.4340e-2 2.6487e-2 -7.8529e-3     -22.868
57 HashMap/alterFDelete-miss/St…    3.4657e-2 2.6152e-2 -8.5043e-3     -24.539
58 HashMap/alterFDelete-miss/By…    2.6543e-2 1.9803e-2 -6.7402e-3     -25.393
59 HashMap/fromList/short/String    3.9645e-2 2.9554e-2 -1.0091e-2     -25.454
60 HashMap/alterDelete-miss/Byt…    2.8437e-2 2.1007e-2 -7.4294e-3     -26.126
61 HashMap/delete-miss/ByteStri…    2.7414e-2 1.9998e-2 -7.4164e-3     -27.053
62 HashMap/lookup-miss/ByteStri…    2.4133e-2 1.7398e-2 -6.7349e-3     -27.907
63 HashMap/alterFDelete/String      2.9774e-1 2.1209e-1 -8.5647e-2     -28.765
64 HashMap/delete/String            2.9461e-1 2.0885e-1 -8.5761e-2     -29.110
65 HashMap/alterDelete/String       3.0336e-1 2.1491e-1 -8.8451e-2     -29.157
66 HashMap/alterInsert-dup/Stri…    1.9579e-1 1.0271e-1 -9.3082e-2     -47.541
67 HashMap/foldr                    4.7994e-3 2.1380e-3 -2.6615e-3     -55.454
68 HashMap/isSubmapOfNaive/Stri…    5.4429e-2 2.0382e-2 -3.4047e-2     -62.552
69 HashMap/isSubmapOf/Int           3.3608e-7 1.2071e-7 -2.1537e-7     -64.084
70 HashMap/isSubmapOf/String        5.2910e-2 1.7840e-2 -3.5070e-2     -66.283
71 HashMap/isSubmapOfNaive/Int      1.6283e-7 3.8168e-8 -1.2467e-7     -76.560

Positive numbers are slowdowns and negative numbers are speed ups. I'm unsure why some of the larger slowdowns occur and am hoping you might have some insight here. In any case I think the speedups are worth investing time, for example HashMap/foldr is 55% faster and HashMap/lookup/Int is 16% faster by these benchmarks!

I think these numbers look pretty good. I'm surprised about the rearranging
of pattern matches though. So far I had believed that GHC ignores this and
simply uses the order of the constructors from the data definition.
I'll be mostly AFK until September 10th. I can review in Mode detail
afterwards.
doyougnu @.***> schrieb am Fr., 27. Aug. 2021, 22:09:

Just pushed some fixes that improve the performance of some of the
benchmarks notably insert-dup/String and insert/String. The fixes simply
preserve the bang patterns in leading pattern matches on most of the go
closures in the code. When I reordered the pattern matches I overlooked
this and it is (rightfully) impactful on performance.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/haskell-unordered-containers/unordered-containers/pull/317#issuecomment-907448662,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA36VC6ON5JQUOR2LFOR7LTT67WGBANCNFSM5C4C4HBQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

I think these numbers look pretty good. I'm surprised about the rearranging
of pattern matches though. So far I had believed that GHC ignores this and
simply uses the order of the constructors from the data definition.

I tried to check this with a simplistic example of two identical functions except for different orders of pattern matches. GHC seems to treat these functions as identical and CSE's them:

module M where

data D
  = A [Int]
  | B
  | C Int

f d = case d of
  A xs -> sum xs
  B -> 0
  C x -> x

g d = case d of
  C x -> x
  B -> 0
  A xs -> sum xs

So I either need some convincing that the reordering of pattern matches actually affects performance, or I'd like these changes to be reverted.
@doyougnu If you need anything from me, please shout! :)

@sjakobi You're absolutely right! I had to double check the core to be sure, reordering the definition of the data constructors does change the pattern match order in core and stg. I've had some success with this but I'll open a new PR if I feel that its worth it.
Regarding the performance from my first to second version. I think this probably has more to do with the bang patterns I added on BitmapIndexed cases. Should I revert these bang patterns as well?

I think it would be better to do a separate PR, so we don't confuse where each perf change comes from. Sometimes GHC doesn't W/W something because it decides to inline it always; haven't looked at whether that applies here.

I believe I've made the requested changes. Please let me know if there is anything else for this PR. I'll open another for the reordering/bang changes soon.
and as always thanks for the reviews!

I'd love to see some attempt to understand the regressions. Which benchmarks get better and which get worse seem just a tad arbitrary. The alterFDelete-miss and isSubmapOf regressions are particularly surprising to me. I'd have expected those to improve.

@treeowl I tried to dig into the regression for alterFDelete-miss, although I can't reproduce it so I suspect that the regression was due to the added bang patterns changing the core. To be sure I verified that the core between this branch and master was identify for both alterFDelete and alterF and it was (attached Internal-32bit.dump-simpl.txt Internal-master.dump-simpl.txt)
So I ran only that benchmark through perf stat -dr5 (run the benchmark 5 times), both master and 32bit-base branch built with -fproc-alignment=64, and frequency scaling is disabled. Furthermore I killed all other applications running on my system:
Here's master:
         Benchmark benchmarks: FINISH

     Performance counter stats for 'cabal bench --benchmark-options=-m exact HashMap/alterDelete-miss/ByteString' (5 runs):

             25,095.34 msec task-clock:u              #    0.998 CPUs utilized            ( +-  7.85% )
                     0      context-switches:u        #    0.000 K/sec
                     0      cpu-migrations:u          #    0.000 K/sec
               457,847      page-faults:u             #    0.018 M/sec                    ( +- 18.54% )
        96,971,467,839      cycles:u                  #    3.864 GHz                      ( +-  7.36% )  (75.02%)
         4,702,198,414      stalled-cycles-frontend:u #    4.85% frontend cycles idle     ( +-  8.26% )  (75.02%)
        44,504,481,735      stalled-cycles-backend:u  #   45.89% backend cycles idle      ( +-  3.95% )  (75.02%)
       121,184,360,339      instructions:u            #    1.25  insn per cycle
                                                      #    0.37  stalled cycles per insn  ( +-  6.84% )  (75.03%)
        23,780,537,078      branches:u                #  947.608 M/sec                    ( +-  6.70% )  (75.04%)
           441,198,832      branch-misses:u           #    1.86% of all branches          ( +- 15.55% )  (75.03%)
        60,914,366,137      L1-dcache-loads:u         # 2427.318 M/sec                    ( +-  6.62% )  (75.03%)
         1,882,327,510      L1-dcache-load-misses:u   #    3.09% of all L1-dcache accesses  ( +-  7.64% )  (75.02%)
       <not supported>      LLC-loads:u
       <not supported>      LLC-load-misses:u

                 25.15 +- 2.01 seconds time elapsed ( +- 8.01% )

and the branch
        Performance counter stats for 'cabal bench --benchmark-options=-m exact HashMap/alterDelete-miss/ByteString' (5 runs):

           24,234.97 msec task-clock:u              #    0.998 CPUs utilized            ( +-  7.76% )
                   0      context-switches:u        #    0.000 K/sec
                   0      cpu-migrations:u          #    0.000 K/sec
             454,182      page-faults:u             #    0.019 M/sec                    ( +- 18.55% )
      93,478,538,634      cycles:u                  #    3.857 GHz                      ( +-  7.31% )  (75.03%)
       3,641,546,852      stalled-cycles-frontend:u #    3.90% frontend cycles idle     ( +- 11.64% )  (75.01%)
      43,841,865,823      stalled-cycles-backend:u  #   46.90% backend cycles idle      ( +-  3.16% )  (75.02%)
     118,756,310,576      instructions:u            #    1.27  insn per cycle
                                                    #    0.37  stalled cycles per insn  ( +-  6.98% )  (75.03%)
      23,388,366,084      branches:u                #  965.067 M/sec                    ( +-  6.81% )  (75.03%)
         417,847,294      branch-misses:u           #    1.79% of all branches          ( +- 16.32% )  (75.03%)
      59,336,453,501      L1-dcache-loads:u         # 2448.382 M/sec                    ( +-  6.76% )  (75.04%)
       1,830,916,326      L1-dcache-load-misses:u   #    3.09% of all L1-dcache accesses  ( +-  7.85% )  (75.02%)
     <not supported>      LLC-loads:u
     <not supported>      LLC-load-misses:u

               24.28 +- 1.91 seconds time elapsed ( +- 7.85% )

Notice that master clocks in slower (25.15) than 32bit-base (24.28).
I think we would expect lower instruction count for 32bit base because less jmp instructions would be needed since the hashmap should stay shallow for longer. This data does show a 3B reduction in instructions but also a 3B reduction in cycles, so I'm not sure if it is a real signal. Another thing that stuck out to me was the number of stalled backend cycles for both master and 32bit-base, although this seems to be a separate issue, and is probably related to how gauge and cabal is implementing the benchmarks. After all the environment must be loaded into memory before the benchmark can run. Another thing I noticed is that the 32bit-base gets flagged for outliers more frequently than master for the alterFDelete-miss/ByteString benchmark. Here is the gauge output from the perf runs:
master:
benchmarking HashMap/alterDelete-miss/ByteString ... took 13.64 s, total 56 iterations
benchmarked HashMap/alterDelete-miss/ByteString
time                 40.14 ms   (39.76 ms .. 40.94 ms)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 39.99 ms   (39.77 ms .. 40.25 ms)
std dev              395.0 μs   (258.1 μs .. 620.5 μs)

Benchmark benchmarks: FINISH
Build profile: -w ghc-8.10.4 -O1
In order, the following will be built (use -v for more details):
 - unordered-containers-<IP_ADDRESS> (bench:benchmarks) (first run)
Preprocessing benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Building benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Running 1 benchmarks...
Benchmark benchmarks: RUNNING...
benchmarking HashMap/alterDelete-miss/ByteString ... took 13.44 s, total 56 iterations
benchmarked HashMap/alterDelete-miss/ByteString
time                 39.52 ms   (39.36 ms .. 39.65 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 39.88 ms   (39.75 ms .. 40.15 ms)
std dev              303.3 μs   (185.8 μs .. 437.5 μs)

Benchmark benchmarks: FINISH
Build profile: -w ghc-8.10.4 -O1
In order, the following will be built (use -v for more details):
 - unordered-containers-<IP_ADDRESS> (bench:benchmarks) (first run)
Preprocessing benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Building benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Running 1 benchmarks...
Benchmark benchmarks: RUNNING...
benchmarking HashMap/alterDelete-miss/ByteString ... took 13.33 s, total 56 iterations
benchmarked HashMap/alterDelete-miss/ByteString
time                 39.45 ms   (39.33 ms .. 39.55 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 39.58 ms   (39.52 ms .. 39.68 ms)
std dev              140.7 μs   (70.19 μs .. 218.5 μs)

Benchmark benchmarks: FINISH
Build profile: -w ghc-8.10.4 -O1
In order, the following will be built (use -v for more details):
 - unordered-containers-<IP_ADDRESS> (bench:benchmarks) (first run)
Preprocessing benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Building benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Running 1 benchmarks...
Benchmark benchmarks: RUNNING...
benchmarking HashMap/alterDelete-miss/ByteString ... took 13.36 s, total 56 iterations
benchmarked HashMap/alterDelete-miss/ByteString
time                 39.35 ms   (39.23 ms .. 39.52 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 39.60 ms   (39.48 ms .. 39.86 ms)
std dev              288.4 μs   (94.09 μs .. 476.1 μs)

Benchmark benchmarks: FINISH
Build profile: -w ghc-8.10.4 -O1
In order, the following will be built (use -v for more details):
 - unordered-containers-<IP_ADDRESS> (bench:benchmarks) (first run)
Preprocessing benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Building benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Running 1 benchmarks...
Benchmark benchmarks: RUNNING...
benchmarking HashMap/alterDelete-miss/ByteString ... took 13.40 s, total 56 iterations
benchmarked HashMap/alterDelete-miss/ByteString
time                 40.35 ms   (39.63 ms .. 41.22 ms)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 39.67 ms   (39.46 ms .. 39.99 ms)
std dev              428.4 μs   (259.0 μs .. 642.5 μs)

Notice that there are no heavy outliers reported and master is ~40ms. Now for 32bit-base:
benchmarking HashMap/alterDelete-miss/ByteString ... took 12.43 s, total 56 iterations
benchmarked HashMap/alterDelete-miss/ByteString
time                 19.29 ms   (17.82 ms .. 20.77 ms)
                     0.991 R²   (0.976 R² .. 1.000 R²)
mean                 23.13 ms   (20.92 ms .. 26.49 ms)
std dev              4.634 ms   (104.2 μs .. 5.815 ms)
variance introduced by outliers: 68% (severely inflated)

Benchmark benchmarks: FINISH
Build profile: -w ghc-8.10.4 -O1
In order, the following will be built (use -v for more details):
 - unordered-containers-<IP_ADDRESS> (bench:benchmarks) (first run)
Preprocessing benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Building benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Running 1 benchmarks...
Benchmark benchmarks: RUNNING...
benchmarking HashMap/alterDelete-miss/ByteString ... took 12.42 s, total 56 iterations
benchmarked HashMap/alterDelete-miss/ByteString
time                 19.44 ms   (18.09 ms .. 20.94 ms)
                     0.991 R²   (0.974 R² .. 1.000 R²)
mean                 23.16 ms   (20.98 ms .. 27.47 ms)
std dev              4.578 ms   (165.0 μs .. 5.737 ms)
variance introduced by outliers: 68% (severely inflated)

Benchmark benchmarks: FINISH
Build profile: -w ghc-8.10.4 -O1
In order, the following will be built (use -v for more details):
 - unordered-containers-<IP_ADDRESS> (bench:benchmarks) (first run)
Preprocessing benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Building benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Running 1 benchmarks...
Benchmark benchmarks: RUNNING...
benchmarking HashMap/alterDelete-miss/ByteString ... took 12.45 s, total 56 iterations
benchmarked HashMap/alterDelete-miss/ByteString
time                 19.90 ms   (18.09 ms .. 21.71 ms)
                     0.989 R²   (0.972 R² .. 0.998 R²)
mean                 23.44 ms   (21.32 ms .. 26.93 ms)
std dev              4.564 ms   (454.2 μs .. 5.767 ms)
variance introduced by outliers: 59% (severely inflated)

Benchmark benchmarks: FINISH
Build profile: -w ghc-8.10.4 -O1
In order, the following will be built (use -v for more details):
 - unordered-containers-<IP_ADDRESS> (bench:benchmarks) (first run)
Preprocessing benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Building benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Running 1 benchmarks...
Benchmark benchmarks: RUNNING...
benchmarking HashMap/alterDelete-miss/ByteString ... took 12.43 s, total 56 iterations
benchmarked HashMap/alterDelete-miss/ByteString
time                 19.48 ms   (17.91 ms .. 21.06 ms)
                     0.988 R²   (0.964 R² .. 1.000 R²)
mean                 23.36 ms   (21.24 ms .. 27.81 ms)
std dev              4.706 ms   (692.9 μs .. 5.990 ms)
variance introduced by outliers: 68% (severely inflated)

Benchmark benchmarks: FINISH
Build profile: -w ghc-8.10.4 -O1
In order, the following will be built (use -v for more details):
 - unordered-containers-<IP_ADDRESS> (bench:benchmarks) (first run)
Preprocessing benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Building benchmark 'benchmarks' for unordered-containers-<IP_ADDRESS>..
Running 1 benchmarks...
Benchmark benchmarks: RUNNING...
benchmarking HashMap/alterDelete-miss/ByteString ... took 12.40 s, total 56 iterations
benchmarked HashMap/alterDelete-miss/ByteString
time                 19.37 ms   (17.87 ms .. 20.95 ms)
                     0.991 R²   (0.972 R² .. 1.000 R²)
mean                 23.16 ms   (20.93 ms .. 27.51 ms)
std dev              4.683 ms   (166.7 μs .. 5.930 ms)
variance introduced by outliers: 68% (severely inflated)

Each benchmark reports severe outliers which seem to skew the measurement low because 32bit-base consistently shows ~20ms. This is so consistent that I almost wonder if its an artifact of the benchmarking setup. My only cahnge to the benchmarking environment was changin n from 4096 to     let n = 4 * 2^(16 :: Int) to construct a comparison between master and 32bit-base that would force 32bit-base to grow more than one level. So I'm not sure how much to trust the benchmarks or where the source of the noise would be coming from. It could be possible that the raw data for this benchmark is bimodel, i.e., very fast until the 32bit-base HAMT grows then it regresses to a mean and this is picked up as outliers by gauge.

Needs a rebase as well.
I'll try to reproduce the benchmark results.

I've rebased on top of master and rerun the benchmarks, here is the latest master is 16bit, branch is the 32bit. All benchmarks run with frequency scaling disabled and -O2 -fproc-alignment=64, and n=2^18.
If this looks good then I'll push a commit that either adds a comment to the benchmark suite as requested in https://github.com/haskell-unordered-containers/unordered-containers/pull/317#discussion_r740257124 or revert to n=4096 under the assumption that benchmarking with n=2^18 was only important for observing the effect of the base change as I argue above.
 :)
I also realized that this is a purely internal change, so if it should turn out that the old 16bit base was "better" overall, we can easily revert this change.

If this looks good then I'll push a commit that either adds a comment to the benchmark suite as requested in #317 (comment) or revert to n=4096 under the assumption that benchmarking with n=2^18 was only important for observing the effect of the base change as I argue above.

Reverting to the smaller number seems good to me.

Reverting to the smaller number seems good to me.

@sjakobi just pushed in https://github.com/haskell-unordered-containers/unordered-containers/pull/317/commits/f64e6418c5fe15d7c897f97ded68a1d687202adf
Please let me know if there is anything else before <IP_ADDRESS>. I'd like to have this make it into the next release!

I'll have a look. One question: should we add a Data.HashMap16 or similar with the old version so people can choose that if it's best for their application? Ideally, it would be exactly the same file except for one line of CPP.

@treeowl I think we can consider something like that if people are unhappy with with the base 32 version. I wouldn't want to offer it upfront, since it would double the size of the API and would probably come with a tradeoff in maintainability.

Ooh, yuck. I think the usual advice is to wait for at least an alpha release, since otherwise things can shift around.

Thank you, @doyougnu! :)


Add tiles support

[ ] Implement the configuration settings

Context structure
Expose CLI options for it

[ ] have the Frame provide a tile iterator example

[ ] Have a FrameTileIterator
[ ] Have a FrameTile
[ ] Make the FrameTile produce PlaneSlice

[ ] Use the tile elements in the codebase

Currently, Plane(Mut)Slice<'_> borrows the whole Plane, and just stores an offset (x, y). It exposes the whole underlying data (e.g. via as_mut_slice()), the user is responsible to use the stride information to access to different rows.
To support tiling, we must not be able to borrow memory outside the relevant region of the Plane (currently, if base == 0 for example, the method returns a mutable reference to the whole data).
To avoid this problem, I suggest to create a PlaneRegion<'_>, which is basically a "rectangle view" of a Plane. Several non-overlapping PlaneRegion<'_> could be created via an iterator (like in the example).
We could then make Plane(Mut)Slice<'_> (which is basically a cursor/view) use a PlaneRegion<'_> instead of a Plane (contrary to PlaneRegion<'_>, the cursor could be moved, expanded, etc. inside the region).
As a consequence, it will not be possible to provide a slice covering the whole surface (multiple rows) and let the user use the stride information anymore, since this would borrow data possibly belonging to other regions (tiles). Therefore, all code using Plane(Mut)Slice<'_> must be adapted to access the data (and also to take additional region offset into account). Currently, I don't know the amount of work to adapt the existing code.
To be able to use a cursor (Plane(Mut)Slice<'_>) either on the whole plane or a plane region, we can simply expose Plane::as_region() which would provide a region over the whole plane (including padding).
After that, we can expose Tile<'_> (provided by an interator on a Frame) containing 3 PlaneRegion<'a> (one for each plane).

src/cdef.rs:                let mut cdef_row = &mut cdef_slice.as_mut_slice()[..2];
src/cdef.rs:                let mut cdef_row = &mut cdef_slice.as_mut_slice()[..padded_px[p][0]-rec_w-2];
src/cdef.rs:                let mut cdef_row = &mut cdef_slice.as_mut_slice()[..rec_w];
src/deblock.rs:        let slice = plane_slice.as_mut_slice();
src/deblock.rs:        let slice = plane_slice.as_mut_slice();
src/encoder.rs:        inverse_transform_add(rcoeffs, &mut rec.mut_slice(po).as_mut_slice(), stride, tx_size, tx_type, bit_depth);
src/encoder.rs:        .as_mut_slice()
src/partition.rs:    let slice = dst.as_mut_slice();
src/partition.rs:    let slice = dst.as_mut_slice();
src/plane.rs:        let s = ps.as_mut_slice_w_width(xorigin + 1);
src/plane.rs:        let s = ps.as_mut_slice_w_width(stride - xorigin - width + 1);
src/plane.rs:      let (s1, s2) = ps.as_mut_slice().split_at_mut(yorigin * stride);
src/plane.rs:      let (s2, s1) = ps.as_mut_slice().split_at_mut(stride);
src/plane.rs:      let mut dst = dst_slice.as_mut_slice();
src/plane.rs:  pub fn as_mut_slice(&'a mut self) -> &'a mut [u16] {
src/plane.rs:  pub fn as_mut_slice_w_width(&'a mut self, width: usize) -> &'a mut [u16] {
src/rdo.rs:            let mut rec_row = rec_slice.as_mut_slice();

Here all the users according to git grep.

as_slice() and as_slice_clamped()

src/deblock.rs:      let rec = rec_tmp.as_slice();
src/deblock.rs:      let src = src_tmp.as_slice();
src/deblock.rs:      let rec = rec_tmp.as_slice();
src/deblock.rs:      let src = src_tmp.as_slice();
src/encoder.rs:                        .zip(src1.as_slice().chunks(src1_stride))
src/encoder.rs:                        .zip(src2.as_slice().chunks(src2_stride)) {
src/encoder.rs:                fs.rec.planes[p].data.copy_from_slice(rec.frame.planes[p].data.as_slice());
src/encoder.rs:        fs.rec.planes[p].slice(&po).as_slice()[..32],
src/encoder.rs:        fs_.rec.planes[p].slice(&po).as_slice()[..32]
src/me.rs:        let org_ptr = org_slice.as_slice().as_ptr();
src/me.rs:        let ref_ptr = ref_slice.as_slice().as_ptr();
src/partition.rs:        above[..B::W].copy_from_slice(&dst.go_up(1).as_slice()[..B::W]);
src/partition.rs:              let s = ps.as_slice_clamped();
src/partition.rs:              let s = ps.as_slice_clamped();
src/partition.rs:              let s = ps.as_slice_clamped();
src/partition.rs:              let s = ps.as_slice_clamped();
src/plane.rs:  pub fn as_slice(&'a self) -> &'a [u16] {
src/plane.rs:  pub fn as_slice_clamped(&'a self) -> &'a [u16] {
src/plane.rs:  pub fn as_slice_w_width(&'a self, width: usize) -> &'a [u16] {
src/rdo.rs:    let s1 = src1j.as_slice_w_width(w);
src/rdo.rs:    let s2 = src2j.as_slice_w_width(w);
src/rdo.rs:                let mut in_row = in_slice.as_slice();

Oh, the sample program (https://play.rust-lang.org/?version=stable&mode=debug&edition=2015)
seems crashing if I try larger (but more realistic) tile size and frame size lke:
fn main() {
let mut plane = Plane::new(PlaneInfo {
stride: 1920 + 256,
w: 1920,
h: 1080,
});
let tile_info = TileInfo { w: 256, h: 256 };

@ycho It still works for me.
Maybe you should just remove the last println!():
println!("{:#}", plane);

With your settings, it generates 2075762 additional output lines, which might flood your console or the playground.

@rom1v, indeed it works with println! commented out.
I tried below and worked!
https://play.rust-lang.org/?version=stable&mode=debug&edition=2015&gist=f98d6ceb1457fc5b3ecb9db0e3a2652a
let mut plane = Plane::new(PlaneInfo {
    stride: 2048,
    w: 2048,
    h: 2048,
});

let tile_info = TileInfo { w: 512, h: 512 };

https://github.com/xiph/rav1e/blob/be5eab1fed0cba804232abdc7f0a182b5778bf67/src/rdo.rs#L1440-L1447
Once we have parallel tile encoding, the first restoration unit to have the coded flag set will not be deterministic. Or should we always only "code" the restoration unit for the "first" tile (in the plane order)?

This is only looking at ru.coded for a single 64x64 block. I don't think it does anything across blocks, and should be fine across tiles too.

@tdaede The same restoration unit may be shared between several tiles (see https://github.com/xiph/rav1e/issues/631#issuecomment-454751414).
This first which executes this will "code" the restoration unit:
https://github.com/xiph/rav1e/blob/master/src/context.rs#L3054-L3056

Ohhhh. I see there's a long discussion of this with @xiphmont, I'll defer to him.

Implemented by #1126.


Check output if user requests elemental results for layered elements

In addtion there is also a problem with the elemental mean operator:
If you make use of elemental_mean operator, the result provided is the average of bottom, top & middle, instead of the result at the centroid, which would be average of middle. Below and example:
DPF is giving us 19.03, which is the average of the results at top/bottom/middle


Improvements

Adds preload prop
Adds poster to video with sources
Adds onLoadedData prop
Adds className prop (makes it possible to handle multiple player refs on one page)
Fixes key warning (https://github.com/xDae/react-plyr/issues/11)

Wow, thanks @mhluska ! I will take a look and merge it as soon I can 👌🏻👌🏻✌🏻

it seems that tests are broken, could you fix to merge? @mhluska

@xDae it's strange, the tests are failing for an area of code that I didn't change:

thanks @mhluska, you can check the travisCI test (it looks just the className doesn't match), I will take a look to the Codeclimate problem

Ah the jest test. Ok I updated it.


Feature: Enable lightweight solution

The extension could offer the option to enable lightweight solution if supported (it's a VS2017 feature). This could be as an option on the dialog and/or as a prompt if the user selects a lot of projects. A brief description of lightweight solution load would probably be useful too.
Sent from my Motorola Nexus 6 using FastHub

Interesting; I didn't even know this was a thing. Wonder if it actually works - I find the background project load introduced in earlier versions to be worse than just loading the whole solution right away, so much so that I usually press F6 while the "background" load is ongoing to force the whole thing to actually foreground load so I get on with things. Of course Resharper is the biggest destroy of performance in the known universe and so doesn't help with open times. I'm not sure that the AddProjects extension could work with this setting, but it is definitely worth investigating.

Lightweight solutions were deprecated in 15.5. https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes-v15.5

Closing this as they have been deprecated for a while and it's not likely I was going to get time to add it anyway.


Fixed research-paper Makefile

The Makefile for the research-paper example had the extensions in the target parameter (-t) and needed to be in the from parameter (-f) so they were moved accordingly.
The pdflatex compilation of the main.tex file was performed twice so I removed the extra compilation steps.
Also redirecting both stderr & stdout to /dev/null was triggering a bug where it hanged after compilation during a long period of time, so I changed it to clean only the stdout & the bug was removed.
That's all, thank you for the examples. Really appreciate your hard work!

thanks for the PR. I agree with you, the -f and -to could be moved. I am not sure that it causes any issue though.

Could you compile it even with this mistake?

I run on OSX and I had to compile twice the TeX file to get the biblio in place. If not, it shows question marks ??.
2. Are you running on OSX as well?
3. Did you check that the biblio can be read correctly?
BTW, thanks for the update of the .gitignore

Finally, I think your PR includes a bunch of files that should not be there, such as the TeX file and .aux files.

I would like to accept the PR. Could you please reply to questions 1 -- 4 before we can establish what we keep and what to clean up?
I would love to keep:

Makefile (order of arguments),
.gitignore
pdflatex single compilation, but as I said, I think the biblio is not generated correctly with a single pdflatex compilation.

Thanks for the time!

Thank you for reading and taking the time to evaluate my PR! Let me answer questions 1 -- 4.

Could you compile it even with this mistake?
No, I wasn't able to. Pandoc would refuse to produce the target LaTeX file. The exact error was

The extension tex_math_dollars is not supported for LaTeX
make: *** [Makefile:9: paper] Error 23

This happened because of the extensions specified on the original Makefile for the target language:

raw_tex
tex_math_dollars
citations.

All of those extensions are actually built-in features of LaTeX so it makes sense for Pandoc not to support them for LaTeX. Those extensions make much more sense when applied to Markdown, since most Markdown specifications don't support those features by default.  As you said, I don't think the order of the arguments causes any issue and I think we should keep the order as it is, however the extensions applied to the languages are the ones we should move.

Are you running on OSX as well?
No, I'm currently on Ubuntu and the bug I mentioned where it hanged after compilation, I actually figured out exactly what happened.
The bug actually made a lot of sense, the issue was with the &> operator. This operator is intended to redirect both, the standard output and standard error to the specified location. In the original Makefile the location being /dev/null. However, this operator is only implemented in Bash and zsh. While those are arguably the most used interactive shells out there, and with zsh being the default shell for OSX it makes a  lot of sense to use this operator for such task. However, other shells like sh, khs, csh, and others don't implement this operator. In order to make Makefiles compatible with most Unix-like systems Make actually doesn't run the commands in its Makefile using the user's shell, instead it runs all the commands using sh. sh like stated above doesn't implement the &> so instead, it treats this operator as separate symbols & and > The resultant action being detaching the current command and running it in the background while executing   > /dev/null alone. Since it uses > as a separate command it is ran without an argument and as a result nothing gets printed to /dev/null, so in the end it does 'compile LaTeX file in the background and print nothing to nowhere'. It actually wouldn't be much of an issue, however since we are executing several commands in order (compile LaTeX, compile biblio and re-compile LaTeX) detaching them causes all three of them to run in parallel! The output of executing this 3 commands in parallel causes unwanted or unexpected behavior.
I'm not an expert on Mac internals, but I'm guessing that if it works on your end is probably because you configured Make to run its commands using your user's shell instead of the default sh; another workaround could be that Mac symlinked sh to zsh but that's unlikely. So, the point is using this operator might work for some users but will generally not work for most users that run a normal Make since those are executed with the more universal sh. This is why I removed the &> operator (Bash and zsh specific) and changed it for the sh compliant > /dev/null 2>&1. This way it will run on whatever shell you are using, be it Bash, zsh or sh and the behavior will be as expected.

Did you check that the biblio can be read correctly?
No, the biblio can't be read correctly if you keep the Makefile I suggested. As you said we actually need to compile the TeX file twice in order to get the biblio in place. The first time is to tell bibtex about which citations are used in the paper so it can know which citations to include, then we compile the biblio and then we need to compile it a second time in order to apply the new biblio. So yeah, I actually forgot about this process when I submitted the original PR and removed the second compilation step.
My bad, however I have pushed a third commit fixing this issue.

Finally, I think your PR includes a bunch of files that should not be there, such as the TeX file and .aux files.
Indeed, newbie mistake there. I actually just blindly added . before the commit when I should've just added the Makefile since it was the only change I was interested in submitting and not the actual output of the compilation or the auxiliary files. I'll take more care on what gets added and tracked from now on before making any commit. So please ignore all of those extra files out of my PR.

Alright, with all of those questions out of the way I'd suggest:

Merging the .gitignore (glad you liked it)
Updating the Makefile
Discard the rest

That's all, thank you again your time and sorry for my late reply (I actually didn't get notified, but I'll keep an eye manually now).
Also, please make sure to check the Makefile on my latest commit since the one I originally suggested wouldn't have worked properly (because of the missing compilation step after compiling the biblio).


[SPARK-10349] [ML] OneVsRest use 'when ... otherwise' not UDF to generate new label at binary reduction

Currently OneVsRest use UDF to generate new binary label during training.
Considering that SPARK-7321 has been merged, we can use when ... otherwise.

Merged build triggered.

Merged build started.

Test build #41783 has started for   PR 8519 at commit 3ffdd36.

Test build #41783 has finished for   PR 8519 at commit 3ffdd36.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/41783/
Test PASSed.

Merged build finished. Test PASSed.

LGTM

Merged into master. Thanks!


blank todos and duplicate todos validation done

I tried to implement it in a way I felt right. Please review the changes and let me know.

This PR is referring to #2


⚠ Bofrost.be has degraded performance

In 0fea3a5, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 837 ms

Resolved: Bofrost.be performance has improved in 530dc22 after 6 minutes.


SQL Completion problem

Hello,
I think there is a small bug with auto completion, it always searches insides names even though the option (search inside name) is unchecked.

Dbeaver CE 5.2.2 x64.
Oracle 11g.

Hello,
I'm having the same problem and this is very frustrating indeed :)
We'll appreciate a fix here.
Thanks!

Yep. Now we use fuzzy search always ignoring this option.
Thanks for the bug report.

Done.
However "Search inside name" will be on by default since 5.2.4


It doesnt seem to be working now after the LeetCode UI update.

It doesn't seem to be working now after the LeetCode UI update.

Yes same problem

yes

can u try to revert it back to the older UI?

i tried with the older UI and then it works for me

For me also , it doesn't seem to be working. I submitted program. It only uploaded README file not cpp file.


Clean old build artifacts

Currently, Trunk will continue to accumulate artifacts in the dist dir as changes continue to take place. This can be a bit overwhelming, and is something we should clean-up.
One approach may be to build a manifest of paths generated per build. At the very end of the build, we will go through the dist dir and remove anything which was not generated as part of the current build.
proposed design

introduce a new sub dir of dist, let's call it .current, which represents the artifacts being accumulated in the current build.
dist/.current will be deleted before any new build is started.
as the very final step of a successful build, we will delete the contents of the dist dir (except for the .current dir), and then immediately move all of the contents of dist/.current up into dist.

This will ensure that we do not continuously accumulate artifacts as builds take place, and will also ensure that artifacts are not prematurely deleted in case of application compilation errors on the user's behalf.

For some context on where it can lead to:

That ended up happening in a short amount of time

Closes by #108


python311Packages.pyspcwebgw: 0.6.0 -> 0.7.0

Diff: https://github.com/mbrrg/pyspcwebgw/compare/refs/tags/v0.6.0...v0.7.0
Changelog: https://github.com/pyspcwebgw/pyspcwebgw/releases/tag/v0.7.0
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 247000 run on x86_64-linux 1

5 packages built:

home-assistant-component-tests.spc
python310Packages.pyspcwebgw
python310Packages.pyspcwebgw.dist
python311Packages.pyspcwebgw
python311Packages.pyspcwebgw.dist


[Accessibility] Name on card autocomplete

Describe the bug
The Adyen drop-in component "name on card" field does not have an autocomplete attribute identifying the input purpose. WCAG 2.1 - 1.3.5 Identify Input Purpose describes the guidance. This input field is serving a purpose of cc-name from the list of input purposes.
To Reproduce
Steps to reproduce the behavior:

View HTML for field - input name="holderName"
See no autocomplete attribute

Expected behavior
The field to have the autocomplete with cc-name as the value
Screenshots

Desktop (please complete the following information):

OS: macOS Monterey 12.5
Browser: Safari 15.6

Additional context
SC 1.3.5 Input purpose https://www.w3.org/WAI/WCAG21/Understanding/identify-input-purpose.html
WCAG list of input purposes: https://www.w3.org/TR/WCAG21/#input-purposes

Hi @gazjoy - thanks for pointing this out

Hi @gazjoy , we released the version 5.23.0 which contains the fix for this problem. Thanks for reaching out to us!


Email Templates

Design some simple email templates which can be used by business professionals, students, developers etc.
This issue will not have any time period to close. Any number of participants can contribute to this issue.

@vigneshshettyin could specify what categories the mails come under like welcome mails, newsletter, offers etc.

All categories are accepted. See to it that you upload your template here (https://github.com/vigneshshettyin/Bulk-Mailer/tree/master/landing page) and update the Template.md file with your template name, category, and your name.

@Athira2199 any updates?


View text from different perspective

Use "overview" property to configure for text's position and angle.

Hello, how can I adjust the code if I want the front of the model diagram to face me instead of down


Pass in a KMS key ID

Great to see people approving PRs! Thanks for the help.
v0.4.0 has been released.


Non rolling cluster upgrade notifications

User Story
- As a cluster admin, I want to be notified when non rolling cluster upgrades are triggered in order to quickly be aware of the minimal impact of such upgrades.
Details, Background
upgrade-schedule-operator is used now to notify our users that a cluster upgrade is in progress. This functionally works as expected for upgrades which roll nodes. As an optimization, we also have upgrades which only update applications running on the cluster. No events are published in this case.
cluster-operator needs to be updated to publish upgrade events for cluster upgrades which don't roll nodes. The Slack notification configured for these events should mention that the upgrade will not roll the nodes.
Blocked by / depends on
None

@alex-dabija @T-Kukawka this an old issue still labeled with firecracker? To phoenix or close?

The issue is outdated because it applies to vintage.


Fix production crash in [GithubStars] with trailing spaces

Closes #4982

Fails

:no_entry_sign:

an only() was left in tests: services/github/github-stars.tester.js

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @paulmelnikow!

  Generated by :no_entry_sign: dangerJS against 782c4d764713453709b4353dc227ace9ba22c490


view rendered pull requests?

For @hlapp,
I'm wondering if there is the possibility of displaying the renderings of the various pull requests. A process like this would immensely aid peer review as the reviewers would not have to fork and render the document themselves. I know this may not be possible due to the way things are deployed.

So, the tests render the vignettes already anyway. The issue is to put them in a place where they can be viewed in a browser. Some thoughts:

Viewable in browser from local files. Would require putting the rendered site on a special branch or tag, from where it can be downloaded, unpacked, etc. Still quite a few steps on the user's end, and will lead to a proliferation of branches or tags in the absence of a mechanism that cleans them up, too. Even with that on hand, to be sustainable (= not lead to repo bloat) this would have to assume that Github garbage-collects commits, so that deleting tags/branches will also eventually get rid of the commits only reachable from them, too.
Viewable in browser from a server. Would require either putting each successful test result on a separate directory on the gh-pages branch, or a server in addition to Github Pages. The former would quickly lead to repo bloat (lots of binary files added and deleted repeatedly) and doesn't sound sustainable to me. The latter needs a server that someone runs that we can upload to from CircleCI.


video/webm from API

video/webm from API
How would i go about streaming a live 'video/webm' stream that is returend via an api?
I'm getting the stream from  example 'http://thevideodomain/api/video' and want the player to show the content.
Does it support this option?
Thanks!

Webm is supported on Android through exoplayer now.


The mod Constructron-Continued (2.0.14) caused a non-recoverable error.

Game just crashed, unsure if I should report this to other Mod Author of "Constructron-Continued".
I could just start the Server again and everything worked fine
74751.740 Script @__resourceMarker__/control.lua:250: 9 & { icon = { name = "maraxsis-limestone", type = "item" }, position = { x = -910.78417030385742, y = -121.08310942311715 }, text = "maraxsis-coral 1M" }
74868.938 Error MainLoop.cpp:1432: Exception at tick 75140550: The mod Constructron-Continued (2.0.14) caused a non-recoverable error.
Please report this error to the mod author.
Error while running event Constructron-Continued::on_nth_tick(90)
Given count value (-20) is too small, allowed values are from 0 to<PHONE_NUMBER>
stack traceback:
[C]: in function 'can_satisfy_request'
__Constructron-Continued__/script/job.lua:650: in function 'check_roaming_candidate'
__Constructron-Continued__/script/job.lua:631: in function 'roam_stations'
__Constructron-Continued__/script/job.lua:904: in function '?'
__Constructron-Continued__/script/job.lua:853: in function 'execute'
__Constructron-Continued__/script/job_processor.lua:25: in function 'process_job_queue'
__Constructron-Continued__/control.lua:21: in function <__Constructron-Continued__/control.lua:20>
74868.938 Error ServerMultiplayerManager.cpp:84: MultiplayerManager failed: "The mod Constructron-Continued (2.0.14) caused a non-recoverable error.
Please report this error to the mod author.
Error while running event Constructron-Continued::on_nth_tick(90)
Given count value (-20) is too small, allowed values are from 0 to<PHONE_NUMBER>
stack traceback:
[C]: in function 'can_satisfy_request'
__Constructron-Continued__/script/job.lua:650: in function 'check_roaming_candidate'
__Constructron-Continued__/script/job.lua:631: in function 'roam_stations'
__Constructron-Continued__/script/job.lua:904: in function '?'
__Constructron-Continued__/script/job.lua:853: in function 'execute'
__Constructron-Continued__/script/job_processor.lua:25: in function 'process_job_queue'
__Constructron-Continued__/control.lua:21: in function <__Constructron-Continued__/control.lua:20>"
74868.939 Info ServerMultiplayerManager.cpp:806: updateTick(75140550) changing state from(InGame) to(Failed)
74868.941 Quitting: multiplayer error.
74868.942 Info GlobalContext.cpp:760: Deleting active scenario.
74869.911 Info ServerMultiplayerManager.cpp:146: Quitting multiplayer connection.
74869.911 Info ServerMultiplayerManager.cpp:806: updateTick(18446744073709551615) changing state from(Failed) to(Closed)
74869.911 Info ServerMultiplayerManager.cpp:166: Deleting active scenario (global = true).
74869.913 Info UDPSocket.cpp:233: Closing socket
74869.913 Info UDPSocket.cpp:263: Socket closed

Hi, it's not an issue with maraxsis. Please report to Constructron Continued


Webpack 5 incorrectly marking a reexport as unused

Bug report
What is the current behavior?
When upgrading our app (a large Microsoft Office web application) from webpack 4 to webpack 5 we are getting an error like this:
boot.js:3914 Uncaught TypeError: (0 , lib.createTheme) is not a function
at Object.844 (boot.js:3914)
at webpack_require (boot.js:3966)
at boot.js:4207
at boot.js:4208
This issue only happens in production mode. More specifically, it happens when concatenateModules and unusedExports are set to true.
To debug, I turned off minification and export mangling (the issue still repros) and I found that the 'createTheme' module is incorrectly being marked as 'unused'. One interesting thing to note about createTheme is that it is being imported from the office-ui-fabric-react npm package, which internally reexports that module from the `@uifabric/
Here is the chain of the re-exports from office-ui-fabric-react (which is in the middle of a rename to fluent-ui)
https://github.com/microsoft/fluentui/blob/master/packages/react/src/Theme.ts
https://github.com/microsoft/fluentui/blob/master/packages/react-internal/src/Theme.ts
https://github.com/microsoft/fluentui/blob/master/packages/theme/src/index.ts#L8
Here is the interesting code from the bundle, with comments saying it is an unused re-export
  "createTheme": () => /* reexport */ /* unused export */ undefined,

If the current behavior is a bug, please provide the steps to reproduce.
I was able to strip down our app into a minimal repro of the issue, it is in this github repo: https://github.com/christiango/webpack5-unused-export-bug
The readme there contains some notes from the investigation. One of the most interesting bits is that if we change any of these things, the issue no longer reproduces:

Making it only a single entry point (remove the logout entrypoint)
Switch the webpack mode to development
Set optimization.concatenateModules to false in the webpack config
Set optimization.usedExports to false in the webpack config
Switch the dynamic import in ErrorDialog.js to a static import

What is the expected behavior?
The "createTheme" function in the repro should not crash

Other relevant information:
webpack version:  5.4.0
Node.js version:  12.14.0
Operating System: Windows 10
Additional tools:

Another interesting tidbit: The issue repros in webpack: 5.0.0-beta.31 and after, but not 5.0.0-beta.30 and before.

Doing npm installs of the commits that were new to beta.31, will report back soon with the commit that breaks this scenario

Does not repro with commit 23e91dbbac9d8fc98b9a87e8822b711be5634fc6
Does repro with commit 9af1d7526b180cab69ea175175eb56a2cde9df75
Looks like it was introduced in this commit: https://github.com/webpack/webpack/commit/9af1d7526b180cab69ea175175eb56a2cde9df75

On it...

Ok, I found the problem and have a bugfix. Still need to construct a smaller test case to add it to our test suite...

Thank you for taking the time to fix this so quickly. I've made a donation to webpack as a small thank you for the bug fix and all the other awesome work the team has done on the project.

I am seeing something very similar. We have a library keyboard-key, which exports a constant like so:
export const GraveAccentKey = keyboardKey['`'];

We have a test-bundle package which tries to bundle (production build) keyboard-key starting at the index.
In webpack 4, I see output like this in the minified bundle:
  function (n, e, r) {
    "use strict";
    r.r(e),
      r.d(e, "getCode", function () {
        return o;
      }),
      r.d(e, "GraveAccentKey", function () {
        return m;
      }),
      r.d(e, "ExclamationPointKey", function () {
        return h;
      }),

In webpack 5, I see no mention of GraveAccentKey anywhere. It was stripped.
The unminified bundle shows this:
var GraveAccentKey = keyboardKey['`'];

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "getCode": () => /* binding */ getCode,
/* harmony export */   "GraveAccentKey": () => /* binding */ GraveAccentKey,
/* harmony export */   "ExclamationPointKey": () => /* binding */ ExclamationPointKey,
...
};

And in the minified build, this whole block is nuked. Did not expect top level exports in a bundle to be removed.

I am seeing something very similar. We have a library keyboard-key, which exports a constant like so:
export const GraveAccentKey = keyboardKey['`'];

We have a test-bundle package which tries to bundle (production build) keyboard-key starting at the index.
In webpack 4, I see output like this in the minified bundle:
  function (n, e, r) {
    "use strict";
    r.r(e),
      r.d(e, "getCode", function () {
        return o;
      }),
      r.d(e, "GraveAccentKey", function () {
        return m;
      }),
      r.d(e, "ExclamationPointKey", function () {
        return h;
      }),

In webpack 5, I see no mention of GraveAccentKey anywhere. It was stripped.
The unminified bundle shows this:
var GraveAccentKey = keyboardKey['`'];

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "getCode": () => /* binding */ getCode,
/* harmony export */   "GraveAccentKey": () => /* binding */ GraveAccentKey,
/* harmony export */   "ExclamationPointKey": () => /* binding */ ExclamationPointKey,
...
};

And in the minified build, this whole block is nuked. Did not expect top level exports in a bundle to be removed.

@sokra or @TheLarkInn Should I open a separate issue for this? If you want me to isolate a repro I can; or if there's a newer build with this addressed I can try it out.

@sokra or @TheLarkInn Should I open a separate issue for this? If you want me to isolate a repro I can; or if there's a newer build with this addressed I can try it out.

(note: deleted my comments, I think perhaps output.libraryTarget default might have changed, but explicitly setting to UMD preserved the exports.)

(note: deleted my comments, I think perhaps output.libraryTarget default might have changed, but explicitly setting to UMD preserved the exports.)


[CI] update docker build trigger

Motivation
Update the path matching logic in the docker build trigger to account
for different patterns in file name.
Test Plan
Tested locally by rebasing 5c474c8b on top.
[youngyl@youngyl-mbp:libra davidiw/docker]$ git log -2
commit 5c474c8b5546c8d941c11e3102751127fcec6ec3 (HEAD -> davidiw/docker)
Author: David Wolinsky<EMAIL_ADDRESS>Date:   Sat Apr 4 21:38:51 2020 -0700

    [docker] Make local running work

    * Remove the old pre-config-builder faucet key from mint
    * Have it connect to the first node in the validator set, since it will
    always exist so long as there is one validator
    * Move Mint port since it overlapped with JSON-RPC
    * Merged build-dynamic.sh into build.sh from validator-dynamic since every other build was build.sh
    * Expose validator-dyanmic JSON-RPC from docker
    * Update readme to note all historical changes

commit 667e95caca7afd19fde4db3a63ddfa4bb5d070cc (ci_docker_trigger)
Author: Young Yang Liauw<EMAIL_ADDRESS>Date:   Mon Apr 6 09:56:47 2020 -0700

    [CI] update docker build trigger

    Update the path matching logic in the docker build trigger to account
    for different patterns in file name.
[youngyl@youngyl-mbp:libra davidiw/docker]$ .circleci/should_build_docker.sh
Will build docker containers.
[youngyl@youngyl-mbp:libra davidiw/docker]$

@bors-libra r+

:pushpin: Commit 667e95c has been approved by rexhoffman

:hourglass: Testing commit 667e95caca7afd19fde4db3a63ddfa4bb5d070cc with merge 00da2a35be19452ca44bd8927515f7c2068ae862...

:broken_heart: Test failed - checks-circle_commit_workflow

Missed a place in circle config where the update is also needed.

@bors-libra r=rexhoffman

:pushpin: Commit 5ecafa1 has been approved by rexhoffman

:hourglass: Testing commit 5ecafa1c9b5b5a99437ba947bfa3e239ca47f773 with merge 72c696bf4f42c246f4288763417b13abd2f4c125...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: rexhoffman
Pushing 72c696bf4f42c246f4288763417b13abd2f4c125 to master...


Patato

FFS How gullible are you.................

@Fantasy-Agario you mind closing this? why was this even open in the first place? lol

@Barbosik

what the heck is this commit.

@Fantasy-Agario Can you close this? This is so annoying!


Improve code coverage

Codecov Report

Merging #193 (8def6c4) into master (59aa6e5) will increase coverage by 2.87%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #193      +/-   ##
==========================================
+ Coverage   73.00%   75.87%   +2.87%
==========================================
  Files          38       38
  Lines        3456     3457       +1
==========================================
+ Hits         2523     2623     +100
+ Misses        933      834      -99

Impacted Files
Coverage Δ

src/matrixtools.jl
85.50% <0.00%> (+4.62%)
:arrow_up:

src/KKT/dense.jl
100.00% <0.00%> (+15.78%)
:arrow_up:

src/KKT/rhs.jl
87.17% <0.00%> (+17.94%)
:arrow_up:

src/LinearSolvers/lapack.jl
97.61% <0.00%> (+49.20%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 59aa6e5...8def6c4. Read the comment docs.


Bump minor version to 0.10.0!

Reviewers: @rohansingh
Now with shiny new revision controlled release pipeline.
Generated with for f in $(find . -name pom.xml); do sed -i bak 's/>0.9.0-/>0.10.0-/g' $f;done because I can never remember how to use find -exec.

Current coverage is 50.61% (diff: 100%)

Merging #997 into master will increase coverage by 0.05%

@@             master       #997   diff @@
==========================================
  Files           279        279
  Lines         13096      13096
  Methods           0          0
  Messages          0          0
  Branches       1687       1687
==========================================
+ Hits           6622       6629     +7
+ Misses         5974       5968     -6
+ Partials        500        499     -1

Powered by Codecov. Last update 8d60e84...c3ee28d

I guess not needed anymore. Close?


Report System errors into HA

your dump.py script (from https://github.com/thomasgermain/pymultiMATIC) reports the following results on a vaillant system error:
hvac.json
{
    "body": {
        "errorMessages": [
            {
                "deviceName": "flexoTHERM",
                "type": "ERROR",
                "title": "Hochdruckschalter",
                "statusCode": "F.731",
                "description": "K\u00e4ltemitteldruck zu hoch. Integrierter Hochdruckschalter hat bei 41,5 bar (g) ausgel\u00f6st. Nicht ausreichende Energieabgabe \u00fcber den jeweiligen Verdampfer.",
                "hint": "Geb\u00e4udekreis entl\u00fcften. Pr\u00fcfen: ausreichend hoher Volumenstrom (vergr\u00f6\u00dfern durch \u00d6ffnen von Einzelraumreglern bei Fu\u00dfbodenheizung), Schmutzsiebe, K\u00e4ltemitteldurchsatz (elektronisches Expansionsventil, Vier-Wege-Ventil, Filter). VWL (K\u00fchlbetrieb): L\u00fcftereinheit (Verschmutzung), Luftkan\u00e4le (Verschmutzung).",
                "timestamp":<PHONE_NUMBER>405
            }
        ]
    },
    "meta": {
        "onlineStatus": {
            "status": "ONLINE"
        },
        "firmwareUpdateStatus": {
            "status": "UPDATE_NOT_PENDING"
        },
        "syncState": [
            {
                "state": "SYNCED",
                "timestamp":<PHONE_NUMBER>508,
                "link": {
                    "rel": "self",
                    "resourceLink": "/facilities/SERIAL_NUMBER/hvacstate/v1/overview"
                }
            }
        ]
    }
}

it would be great if this information gets somehow transported into home-assistant - maybe as an binary_sensor with the message as attribute.

It should, via VaillantSystemErrorHandler. There should be an entity with id binary_sensor.vaillant.f_731` (or something similar)

indeed:
but it only showed up after I had restarted HA. I do have that automation in place which should update the hvac once in an hour - and I clicked it before I checked for this sensor.

hmm this is strange, there should be a check every 2 minutes (it just checks the local data in memory, there is no api call).
This is actually quite hard to unit test, but I will have a look.

thanks. i'll reset it now, remove that sensor and monitor it again - unfortunatelly that error comes up quite often ...

Release 1.3.2 should fix the issue :)
I added some tests, so It seems to be ok, but I don't have much errors coming live.
As you know, entity id wildcard is binary_sensor.vaillant.error_{status code}. Maybe you can create an automation to test if such entities exist (with the given wildcard), or I think there are some card the filter entities, but I think this is only on state.
Please, let me know if it works !
Thomas

great fine :)
btwn do you have something to display those errors ? (a card to display entities if they exist, an automation, or something else). This is in my todo list, but I didn't find a good to do so

mmh. no not yet. As I only have that one re-occuring error I am just checking the flexoTHERM entity (attribute error and status).
I am about to write a feature request here to control the circulation pump - my bold guess is, that you could find some hidden parameter in the API that would make it possible to start it using HA
how far off is that assumption?  😁

If you are able to do it through the mobile app, then it should be possible to do it through pymultimatic and so through HA 😛
Are you talking about the domestic hot water circulation or is it totally different ?

I could only change the time program of the circulation through the app. I think it would be enough to have an easy way to the clear the current time program and change it in a way to start right now.


[host] Write Rust library wrapper for SPHINCS+ implementation.

Builds on the bindgen library from https://github.com/lowRISC/opentitan/pull/23049 to create more Rust-friendly wrappers for the C functions and a few quick tests.
Next steps: integrate this wrapper with the host-side SPHINCS+ code under opentitanlib, remove the pqcrypto dependency, and finally unblock https://github.com/lowRISC/opentitan/pull/22953

I think it might need to go through bazel run //quality:rustfmt_fix and may also need adding to RUST_TARGETS in quality/BUILD

Both of these should now be addressed.

Also we don't really require this in OpenTitan, but if you feel like you could add a // SAFETY: ... comment to these unsafe blocks explaining why they're safe (e.g. the pointer arguments are valid and point to buffers of the right size) that would be helpful!

Done!


puppeteer newPage hangs/freeze, headless mode issue

The library that I use: pyppeteer
Two issues:

The Chromium that bundled with pyppeteer has newPage freeze issue, see google search of newPage freeze, it seems is the bug of glibc.
If I use the latest Chrome, the freeze issue is gone, but the stealth plugin wont' work, because the latest Chrome/Chromium have fixed an issue related to the navigator.webdriver. So, we can not delete the navigator.webdriver property in latest Chrome.


Calendar operation doesn't support getters

Hi, I'm trying to use calendar operation with a getter defined in my model.
protected $appends = [
        'caption'
    ];

public function getCaptionAttribute(): string
    {
       return $this['title'].' - '.$this['comments'];
    }

In my controller  i mapped the title field:
protected function getCalendarFieldsMap(): array
    {
        return ['title' => 'caption'];
    }

In the list view I can use the getter, no problem there, but if I toggle to calendar view the cells doesn't show the entries

backpack/backupmanager: v5.0.0
backpack/basset: 1.2.2
backpack/calendar-operation: 1.0.0
backpack/crud: 6.6.3
backpack/devtools: 3.0.4
backpack/editable-columns: 3.0.5
backpack/generators: v4.0.3
backpack/logmanager: v5.0.1
backpack/permissionmanager: 7.1.1
backpack/pro: 2.1.3
backpack/settings: 3.1.0
backpack/theme-coreuiv2: 1.2.3
backpack/theme-coreuiv4: 1.1.1
backpack/theme-tabler: 1.2.0

Thanks @miquelangeld . It makes sense to use it that way.
I've already created the PR for it. @promatik should review it shortly 🙏
Thanks

Hey @miquelangeld it's done in version 1.0.3 of Calendar Operation that I just released.
You may allow some time for our private repo to pick it up and a composer update should get you the fix 🙏
Let us know if you find any other issue 🙏

Thanks @pxpm @promatik !!

Hi I just tested and doesn't seems to work, now I get a number instead.

This is the same getter in list view

Hum .. something wrong then, I've just tested and it seems to be working as expected:

protected $appends = [
        'caption'
    ];

    public function getCaptionAttribute(): string
    {
       return $this->title.' - test accessor';
    }

Can you reproduce it in a clean project ?

Ok, I cleared the view cache and now it works.

Still shows the number first, which now I see it's the hour but for some reason not shows the full hour (hour and minutes) and just show the hour. But this is another issue, so I will dig in to it. Thanks Pedro and sorry for the inconvenience.

Not inconvenient at all. If it had an issue I would have liked to know. 👍
Glad it's working! Thanks @miquelangeld 🙏


ValueError: Cannot load file containing pickled data when allow_pickle=False

problem occurred when running: bash run_multiple_gpus.sh run_configs/ptp.yaml:
ValueError: Cannot load file containing pickled data when allow_pickle=False

Hi,
Sorry for the problem! Can you paste the complete error traceback here?


How to run data

In the verify section, in the data downloaded from the RefSeq dataset, there are multiple > identified sequences in the FASTA file of each virus. Are these sequences contings? In the process of naive Bayesian classifier training and sequence prediction, do we use all sequences in FASTA file as the processing unit, or the part identified by > as the basic processing unit
The code in the second part 'viralverify' and 'training_script' Can the input of script code only be one sequence? How to deal with all data sets? You need to use script batch processing under Linux?

Not sure that I follow you completely. The tool takes FASTA format as an input, where each contig is represented by description line started with ">" followed by contig name, and then sequence itself on the following lines.
You can provide FASTA file with one or multiple sequences as an input - each sequence will be analysed independently, and you'll get single output file for all input sequences.

Thank you very much for your reply. I still have questions to ask;

In training_ script ,when I use my own database to train the probability table, whether the input data is a single virus / bacteria / plasmid or a virus library / bacteria library / plasmid library.
In the benchmark stage, get the prediction results of all contings in the FASTA file. How to get the prediction results of the FASTA file and how to use it for benchmark

It supposed to be a library. Technically, you can train it on a single virus/bacteria/plasmid, but it is meaningless -  you will get statistics only for the few proteins, and results will be totally unreliable.
You can split your dataset in two parts - train and test. Then you can use train dataset to get your own probability table, and use test dataset for verification.

How to use virus library / bacteria library / plasmid library for training? What are the parameters after - V, - NV, - P? Can it be a folder address containing all FASTA files, or put all viruses into one FASTA file, all plasmids into one FASTA file, and all bacteria into one FASTA file?
I wonder if it is convenient to provide the training and test data set mentioned in your paper. Where can I get the plasmid data set?

Thank you very much!
------------------ 原始邮件 ------------------
发件人:                                                                                "ablab/viralVerify"                                                                                @.>;
发送时间: 2022年3月29日(星期二) 晚上9:39
@.>;
<EMAIL_ADDRESS>主题: Re: [ablab/viralVerify] How to run data (Issue #14)
It supposed to be a library. Technically, you can train it on a single virus/bacteria/plasmid, but it is meaningless -  you will get statistics only for the few proteins, and results will be totally unreliable.
You can split your dataset in two parts - train and test. Then you can use train dataset to get your own probability table, and use test dataset for verification.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

You can run training script without any parameters or with the "-h" key to see usage help. You should provide separate files with viruses, bacterial contigs and plasmids (using keys -v, -nv and -p, respectively).
I probably can dig it up and upload somewhere, but it will take some time. Anyway, they result in provided probability table. If you want to do some benchmarking, I suggest to use your own dataset - number of known plasmids and viruses has been expanded significantly since the paper publication.


Consider implementing JSON API

Consider implementing JSON API. See: http://jsonapi.org/

This could be considered related to issue #129 (see that for more info).


Fix binfmt for BUILD_KERNEL & ADDRENV

Summary

This PR contains 2 commits
commit1: binfmt: Call umm_initialize() for BUILD_KERNEL & ADDRENV

I noticed that the user heap is not initialized correctly
if BUILD_KERNEL=y and ADDRENV=y
This commit fixes this issue

commit2: binfmt, include: Change the g_mmheap location

I noticed that the user heap is not correctly recognized
from kernel if BUILD_KERNEL=y and ADDRENV=y
This commit fixes this issue by explicitly locating g_mmheap
to at the start of .data section

Impact

None

Testing

Tested with sabre-6quad:netknsh (not merged yet)

Hmm, Build / macOS (sim-01) failed.
curl: (28) Failed to connect to git.busybox.net port 443 after 75212 ms: Operation timed out
make[1]: *** [/Users/runner/work/incubator-nuttx/incubator-nuttx/sources/nuttx/include/uClibc++] Error 28
make[1]: Target `context' not remade because of errors.
make: *** [libs/libxx/.context] Error 2

@masayuki2009 san,
g_mmheap problem caused by mm/umm_heap/umm_heap.h define.
In the ADDRENV and BUILD_KERNEL case, USR_HEAP uses ARCH_DATA_RESERVE->ar_usrheap.
current condition is
#if defined(CONFIG_ARCH_ADDRENV) && defined(__KERNEL__)
NuttX-9.0.0's umm_heap.h condition is
#if defined(CONFIG_ARCH_ADDRENV) && defined(CONFIG_BUILD_KERNEL)
Maybe this is correct.

@masayuki2009 san, g_mmheap problem caused by mm/umm_heap/umm_heap.h define. In the ADDRENV and BUILD_KERNEL case, USR_HEAP uses ARCH_DATA_RESERVE->ar_usrheap. current condition is #if defined(CONFIG_ARCH_ADDRENV) && defined(__KERNEL__) NuttX-9.0.0's umm_heap.h condition is #if defined(CONFIG_ARCH_ADDRENV) && defined(CONFIG_BUILD_KERNEL) Maybe this is correct.

@minabeoki
Thanks for the comments.
Actually, __KERNEL__ is defined in tools/Config.mk
...
# This define is passed as EXTRAFLAGS for kernel-mode builds.  It is also passed
# during PASS1 (but not PASS2) context and depend targets.

KDEFINE ?= ${shell $(DEFINE) "$(CC)" __KERNEL__}
...

And you will see the build logs
make[1]: Entering directory '/mnt/m2ssd/opensource/github_masayuki2009/apache-nuttx-imx6-knsh/nuttx/libs/libc'
for dir in  sched drivers boards arch/arm/src fs binfmt net ; do \
        make -C $dir EXTRAFLAGS="-D__KERNEL__ -Wno-cpp -Werror" depend || exit; \
done

So, I think the current mm/umm_heap/umm_heap.h is correct.

@masayuki2009
__KERNEL__ is defined only for the kernel binary.
In case of user land, __KERNEL__ is not defined.
mm is compiled for kernel and usr land. (libmm.a and libkmm.a)

kernel: CONFIG_BUILD_KERNEL and __KERNEL__ are defined.
user land: CONFIG_BUILD_KERNEL is defined and __KERNEL__ is not defined.

@minabeoki
So, we don't need the second commit but need the following change instead.
diff --git a/mm/umm_heap/umm_heap.h b/mm/umm_heap/umm_heap.h
index 7d8e8a49da..7d74ea94e1 100644
--- a/mm/umm_heap/umm_heap.h
+++ b/mm/umm_heap/umm_heap.h
@@ -35,7 +35,7 @@
  * Pre-processor Definitions
  ****************************************************************************/

-#if defined(CONFIG_ARCH_ADDRENV) && defined(__KERNEL__)
+#if defined(CONFIG_ARCH_ADDRENV) && defined(CONFIG_BUILD_KERNEL)
 /* In the kernel build, there are multiple user heaps; one for each task
  * group.  In this build configuration, the user heap structure lies
  * in a reserved region at the beginning of the .bss/.data address

@minabeoki
So, we don't need the second commit but need the following change instead.

The nsh works.
[    4.190000] load_absmodule: Successfully loaded module /mnt/nfs/bin/init
[    4.190000] binfmt_dumpmodule: Module:
[    4.190000] binfmt_dumpmodule:   entrypt:   0x80001a34
[    4.190000] binfmt_dumpmodule:   mapped:    0 size=0
[    4.190000] binfmt_dumpmodule:   alloc:     0 0 0
[    4.190000] binfmt_dumpmodule:   addrenv:   0x18000000
[    4.190000] binfmt_dumpmodule:   stacksize: 2048
[    4.190000] binfmt_dumpmodule:   unload:    0
[    4.190000] exec_module: Executing /mnt/nfs/bin/init
[    4.190000] up_addrenv_select: addrenv=0x10863e64 oldenv=0x10868ac8
[    4.190000] up_addrenv_select: text: set l1 entry (paddr=18000000 vaddr=80000000)
[    4.190000] up_addrenv_select: data: set l1 entry (paddr=18028000 vaddr=80100000)
[    4.200000] up_addrenv_select: heap: set l1 entry (paddr=1802a000 vaddr=80200000)
[    4.200000] exec_module: Initialize the user heap (heapsize=1048576)
[    4.200000] up_addrenv_kstackalloc: tcb=0x10866820 stacksize=3072
[    4.200000] up_addrenv_clone: src=0x10863e64 dest=0x10863ed8
[    4.200000] up_addrenv_restore: oldenv=0x10868ac8
[    4.210000] up_addrenv_select: addrenv=0x10863ed8 oldenv=0
[    4.210000] up_addrenv_select: text: set l1 entry (paddr=18000000 vaddr=80000000)
[    4.210000] up_addrenv_select: data: set l1 entry (paddr=18028000 vaddr=80100000)
[    4.210000] up_addrenv_select: heap: set l1 entry (paddr=1802a000 vaddr=80200000)
NuttShell (NSH) NuttX-10.2.0
nsh> free
[   29.080000] load_absmodule: Loading free
[   29.080000] elf_loadbinary: Loading file: free
[   29.080000] elf_init: filename: free loadinfo: 0x10867400
[   29.080000] elf_filelen: Failed to stat file: -2
[   29.080000] elf_init: elf_filelen failed: -2
[   29.080000] elf_dumploadinfo: LOAD_INFO:
[   29.080000] elf_dumploadinfo:   textalloc:    00000000
[   29.080000] elf_dumploadinfo:   dataalloc:    00000000
[   29.080000] elf_dumploadinfo:   textsize:     0
[   29.080000] elf_dumploadinfo:   datasize:     0
[   29.080000] elf_dumploadinfo:   textalign:    0
[   29.080000] elf_dumploadinfo:   dataalign:    0
[   29.080000] elf_dumploadinfo:   filelen:      0
[   29.080000] elf_dumploadinfo:   symtabidx:    0
[   29.080000] elf_dumploadinfo:   strtabidx:    0
[   29.090000] elf_dumploadinfo: ELF Header:
[   29.090000] elf_dumploadinfo:   e_ident:      00 00 00 00
[   29.090000] elf_dumploadinfo:   e_type:       0000
[   29.090000] elf_dumploadinfo:   e_machine:    0000
[   29.090000] elf_dumploadinfo:   e_version:    00000000
[   29.090000] elf_dumploadinfo:   e_entry:      00000000
[   29.090000] elf_dumploadinfo:   e_phoff:      0
[   29.090000] elf_dumploadinfo:   e_shoff:      0
[   29.090000] elf_dumploadinfo:   e_flags:      00000000
[   29.090000] elf_dumploadinfo:   e_ehsize:     0
[   29.090000] elf_dumploadinfo:   e_phentsize:  0
[   29.090000] elf_dumploadinfo:   e_phnum:      0
[   29.090000] elf_dumploadinfo:   e_shentsize:  0
[   29.090000] elf_dumploadinfo:   e_shnum:      0
[   29.090000] elf_dumploadinfo:   e_shstrndx:   0
[   29.090000] elf_loadbinary: Failed to initialize for load of ELF program: -2
[   29.090000] exec_spawn: ERROR: Failed to load program 'free': -2
total       used       free    largest  nused  nfree
Umem:    1048224       3728    1044496    1038304      6      2
Kmem:  259647584      30160  259617424  259608800     53      4
Page:  134217728    1224704  132993024  132993024
nsh> ps
[   69.830000] load_absmodule: Loading ps
[   69.840000] elf_loadbinary: Loading file: ps
[   69.840000] elf_init: filename: ps loadinfo: 0x10867400
[   69.840000] elf_filelen: Failed to stat file: -2
[   69.840000] elf_init: elf_filelen failed: -2
[   69.840000] elf_dumploadinfo: LOAD_INFO:
[   69.840000] elf_dumploadinfo:   textalloc:    00000000
[   69.840000] elf_dumploadinfo:   dataalloc:    00000000
[   69.840000] elf_dumploadinfo:   textsize:     0
[   69.840000] elf_dumploadinfo:   datasize:     0
[   69.840000] elf_dumploadinfo:   textalign:    0
[   69.840000] elf_dumploadinfo:   dataalign:    0
[   69.840000] elf_dumploadinfo:   filelen:      0
[   69.840000] elf_dumploadinfo:   symtabidx:    0
[   69.840000] elf_dumploadinfo:   strtabidx:    0
[   69.840000] elf_dumploadinfo: ELF Header:
[   69.840000] elf_dumploadinfo:   e_ident:      00 00 00 00
[   69.840000] elf_dumploadinfo:   e_type:       0000
[   69.840000] elf_dumploadinfo:   e_machine:    0000
[   69.840000] elf_dumploadinfo:   e_version:    00000000
[   69.840000] elf_dumploadinfo:   e_entry:      00000000
[   69.840000] elf_dumploadinfo:   e_phoff:      0
[   69.840000] elf_dumploadinfo:   e_shoff:      0
[   69.840000] elf_dumploadinfo:   e_flags:      00000000
[   69.840000] elf_dumploadinfo:   e_ehsize:     0
[   69.840000] elf_dumploadinfo:   e_phentsize:  0
[   69.840000] elf_dumploadinfo:   e_phnum:      0
[   69.840000] elf_dumploadinfo:   e_shentsize:  0
[   69.840000] elf_dumploadinfo:   e_shnum:      0
[   69.840000] elf_dumploadinfo:   e_shstrndx:   0
[   69.840000] elf_loadbinary: Failed to initialize for load of ELF program: -2
[   69.840000] exec_spawn: ERROR: Failed to load program 'ps': -2
PID GROUP PRI POLICY   TYPE    NPX STATE    EVENT     SIGMASK   STACK   USED  FILLED COMMAND
0     0   0 FIFO     Kthread N-- Ready              00000000<PHONE_NUMBER>16  30.4%  Idle Task
1     1 224 RR       Kthread --- Waiting  Semaphore 00000000<PHONE_NUMBER>88  19.2%  hpwork 0x1085bcfc
2     2 100 RR       Kthread --- Waiting  Semaphore 00000000<PHONE_NUMBER>28  36.1%  lpwork 0x1085bd08
3     3 100 RR       Kthread --- Waiting  Semaphore 00000000<PHONE_NUMBER>48  63.7%  nfsroot
4     4 100 RR       Task    --- Running            00000000<PHONE_NUMBER>96  64.2%  /mnt/nfs/bin/init
nsh>


Use boost::once instead of pthread_once

Motivation
Use boost::once instead of pthread_once because it's portable across platforms.

What platforms are we going to support with this change?

@maskit the idea is to make it possible to compile on Windows. Right now pthread is the only posix specific library we're using directly.

run integration tests

Can we use std::call_once instead?

@maskit Updated


az webapp browser opens the wrong browser

Description
az webapp browse --name
Appears to open Firefox and ignore the default system browser on OSX. It should use the default browser.
Environment summary
OSX 10.12

To be clear, we didn't pick Firefox, but python's webbrowser component does that!

This is a python 2.x bug on osx. I can reproduce using python -m webbrowser -t msn.com.


fix: Add mac specific host for docker

Stops ip issues when communicating to the WeBrick server from inside the maze docker container, when running locally.

In what way is this not working currently?

When running locally the IP obtained by the original function hasn't been accessible from within the container.  Even if this is only a quirk of a docker version, or my current machine, this allows us to ensure a mac-specific hostname is set, and will allow us to expand it to work on windows.


generate account key file using address as file name

Codecov Report

Merging #86 into release-rc4 will decrease coverage by 0.10%.
The diff coverage is 0.00%.

@@                Coverage Diff                @@
##             release-rc4      #86      +/-   ##
=================================================
- Coverage          37.72%   37.61%   -0.11%
  Complexity           369      369
=================================================
  Files                 49       49
  Lines               3820     3831      +11
  Branches             334      336       +2
=================================================
  Hits                1441     1441
- Misses              2279     2290      +11
  Partials             100      100

Impacted Files
Coverage Δ
Complexity Δ

...om/webank/wecross/stub/bcos/BCOSGMStubFactory.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

.../com/webank/wecross/stub/bcos/BCOSStubFactory.java
21.73% <0.00%> (-0.99%)
4.00 <0.00> (ø)

.../java/com/webank/wecross/stub/bcos/BCOSDriver.java
22.74% <0.00%> (-0.09%)
34.00% <0.00%> (ø%)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fd058e7...f75475c. Read the comment docs.


CI cleanup - only unpause if platform supports it

Signed-off-by: John Howard (VM<EMAIL_ADDRESS>This PR is for Windows CI reliability. There have been occasional instances of CI failures due to below, also seen in internal Microsoft runs. I still don't fully understand the underlying cause, but is as much for correctness as anything else. During cleanup, with this PR, we only unpause containers if the platform supports it. (Between this and https://github.com/docker/docker/pull/31752, specifically the OK check, I think this should fix it). 🤞
01:03:22.339 ----------------------------------------------------------------------
01:03:22.339 FAIL: check_test.go:101: DockerSuite.TearDownTest
01:03:22.339
01:03:22.339 check_test.go:102:
01:03:22.339     testEnv.Clean(c, dockerBinary)
01:03:22.339 c:/gopath/src/github.com/docker/docker/pkg/testutil/cmd/command.go:64:
01:03:22.340     t.Fatalf("at %s:%d\n%s", filepath.Base(file), line, err.Error())
01:03:22.340 ... Error: at clean.go:41
01:03:22.340
01:03:22.340 Command: d:\CI\CI-6f733c006\binary\docker.exe unpause runtime: failed to create new OS thread (have 6 already; errno=5) fatal error: runtime.newosproc
01:03:22.340 ExitCode: 1, Error: exit status 1
01:03:22.340 Stdout:
01:03:22.340 Stderr: Error response from daemon: No such container: runtime:

https://jenkins.dockerproject.org/job/Docker-PRs-WoW-RS1/11230/console (but the logs will roll over soon).

LGTM ping @vdemeester


Fix searching for global busted install

~Need to verify paths since global install fails on my system.~ Fixed. Also enforce lua 5.1 for neovim.

@YaroSpace This works on my machine with a system-wide install of busted. You’re welcome to test it out since you might be on a linux box or a mac with a different setup than mine.

Sure.  Will do.

@YaroSpace Did you get a chance to test this? 🙂

Yes, everything seems to be fine.  Sorry, forgot to let you know earlier.

Np. Thanks for testing it out.


Make wakie only choose people that have been active in the past week?

We have ~1250 members now but consistently see only ~300 weekly active members (See below). This often leads to wakie pinging people that aren't active and won't reply.
Should we limit wakie to only members who have been active in the past week to increase the amount of responses we get?

The original purpose of wakie was to increase the activity of members. Seeing as there are 2 pings everyday, we could have one active, one inactive?

Do they even get a ping though?


Unable to import require('mock-socket')

require('mock-socket')

require('mock-socket')

{}

require('mock-socket').MockServer

undefined

var MockServer = require('mock-socket')

undefined

MockServer

{}

var server = new MockServer()

TypeError: MockServer is not a function
at repl:1:14
at REPLServer.defaultEval (repl.js:248:27)
at bound (domain.js:280:14)
at REPLServer.runBound [as eval] (domain.js:293:12)
at REPLServer. (repl.js:412:12)
at emitOne (events.js:82:20)
at REPLServer.emit (events.js:169:7)
at REPLServer.Interface._onLine (readline.js:210:10)
at REPLServer.Interface._line (readline.js:549:8)
at REPLServer.Interface._ttyWrite (readline.js:826:14)

This is now supported. check the readme


How is resumic different from JSONResume?

Even though this isn't a literal fork of JSONResume, it is building upon the work done by the JSONResume people, so I think the least you could do, is mention JSONResume in the README.

Wasn't intentionally forgotten in the README. It's already on the website, that it's based on the JSONResume work. Will add an issue to track.


docs(firebase_storage): Fix mismatched progress calculator

Related Issues
Fixes #4167
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] All existing and new tests are passing.
[x] I read and followed the [Flutter Style Guide].
[x] I signed the [CLA].
[x] I am willing to follow-up on review comments in a timely manner.

Good spot, thanks for sending a PR!


When starting a new game, clicking the some range overview icon crashes the game.

Tried on latest master branch.
Thus the game starts and no turn has been taken, no landers have been placed and I clicked the Police range icon.
The crash happens for all buttons that clear the overlays (e.g.: police, communication and truck routes).
It seems to be one of the clearoverlay calls is causing a segmentation fault.

Thank you for reporting. This was caused by mPoliceOverlays not being initialized when the game was being loaded.


prevent stackoverflow in color_discrete_manual, fixes #844

Throws a MethodError if the correct color_discrete_manual function isn't found instead of crashing.

Coverage remained the same at 65.603% when pulling c40e791302541c3e9e6cda00eaab69c214298852 on tlnagy:fix-color-manual-stackoverflow into f6183acb6015c8e133e335d32227f551056c59f8 on dcjones:master.


Annotate hints with whether they are JS only

I'm currently working on a VM only project. It will not be compiled to Javascript.
I'm still given a large number of info items which read:
"When compiled to JS, this test might return true when LHS is an int ........."
As I'm not compiling to JS, this is just noise. Could we add a marker to the metadata associated with the info saying that this info only applies when compiled to JS so I can ask the tooling not to display them?
cc @devoncarew - this is primarily affecting me within Atom primarily due to the increased visual intensity of info messages.

The client can do even better. Analysis server has a request to set analysis options, and one of the options is generateDart2jsHints. The client can set this to false. Unfortunately, these options are only supported at a global level, not on a per analysis root basis.

What SDK version are you using? These hints should have been changed from opt-out to opt-in. This was done for the analyzer CLI. I can't say whether the same change was made for the analysis server.

Dart VM version: 1.12.0-dev.1.0 (Tue Jun 30 03:40:06 2015) on "macos_x64"

As far as I can see from the code, the default value for this flag should be 'false' everywhere. These hints should only be getting returned if the client is explicitly enabling them.

That version of 1.12 dev doesn't have that behaviour.


Standardise code

Pull Request Test Coverage Report for Build 398278709

0 of 6 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.3%) to 73.626%

Totals

Change from base Build 393889945:
0.3%

Covered Lines:
55

Relevant Lines:
72

💛  - Coveralls

Pull Request Test Coverage Report for Build 398278709

6 of 6 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.3%) to 73.626%

Totals

Change from base Build 393889945:
0.3%

Covered Lines:
55

Relevant Lines:
72

💛  - Coveralls


Button to hide pokemon that are already captured

Introducing functionality to hide Pokemon that have already been marked as captured.

closing, dupe of https://github.com/pokedextracker/pokedextracker.com/pull/369


Laravel 5.8 support

This package forbids me to upgrade Laravel to version 5.8, because this package requires 5.5.*|5.6.*|5.7.*. Wouldn't it be easier to just require ^5.5.0 so we don't have this issue next time?! 😉

Requiring ^5.5 wouldn't be correct as there is no guarantee that the package would work (without adjustments) with for example 5.9 as Laravel doesn't follow semantic versioning (breaking changes are allowed in minor versions).

Hi! I saw that Laravel 5.8 was released as I left work yesterday, so wasn't able to do a release. However, I have got a laravel-5.8 branch all ready to go, I just need to release it.
Laravel doesn't follow Semver so it's not possible to use ^5.5 - I have to test and release a new version every time Laravel does.

Cannot merge the laravel-5.8 branch until this issue is fixed:
https://github.com/orchestral/testbench-core/issues/22

Released as 1.0.0.


Update package index with latest published versions

Update package index with latest published versions

Hey @IEvangelist, aren't these supposed to merge themselves now?


Bugfix/apm 363386 gke deployment respect service account param

Script used to have --service-acount param which was not really respected. SA with given name was created but helm deployment used hardcoded default value everywhere.
Now param is extracted to values.yaml and is respected both in SA creation during deployment and SA assingment in helm templates.

Yes, I will also change the docs


[backport] ENH: Implement dlpack v1

Backport of #8683 by @seberg

/test mini

Skipping the test requring numpy.from_dlpack for NumPy v1.22, as it's new in NumPy v1.23.

/test mini

Thanks Kenichi and Sebastian! 🙏
Looks like this is passing 😄

Thanks Kenichi! 🙏


feature: sshocker network create to connect remote hosts to an ad-hoc VPN

It might be useful if multiple remote hosts can be connected to an ad-hoc VPN like this:
(terminal1)$ sshocker network create foo
(terminal1)$ sshocker run --network foo --ip <IP_ADDRESS>/24 host1
(terminal2)$ sshocker run --network foo --ip <IP_ADDRESS>/24 host2

This could be easily implemented using vdeplug4, though it requires the root privileges (in NS at least) for creating TAP devices, and is not apt-gettable.
For unprivileged cases (#7)  I'm currently thinking forwarding connections to a loopback address like <IP_ADDRESS> on remote to a user-space multiplexer via socat-over-stdio.
sshocker needs to be aware of the app's port numbers to implement this.

This is now experimented in https://github.com/norouter/norouter


Bosco

Book
Google APIs
Refactor all code

Here are adjustment you need to make in your code/repo:
Step 1:

delete branch Bosco
sync your branch BoscoNov13 with the latest main branch

Step 2:

add one use case for Book entity called 'view'

the input data are bookId
the output data are all properties of the Book entity
add InputBoundary, OutputBoundary, DataAccessInterface and Interactor for this use case
InputBoundary is the interface for Interactor: write a method called execute
OutputBoundary is the interface for Presenter: write one method called prepareSuccessView with (OutputData) paremeter and another called prepareFailView with (errorMessage) as parameter

Step 3:

add another use case for Book entity called search

requirements of step 2 apply to this use case as well
except that you need consider different data as InputData and OutputData

Step 4:

add InteractorTest for each of your use case above

Not sure what to write in this use case? check week 6 clean architecture slides and use case and their test of users in main branch

Please submit a pull request of the above adjustment before Nov 23 11:59

As for the api, please rewrite your APIBookDataAccessObject (in your repo called BookService).
Here is what you need to do. Don't not write your APIBookDataAccessObject before completing all the use case because the any DataAccessObject needs to implement all use case DataAccessInterface.


multiusable keyholes

use a switch trigger for the keyhole to make it multi useable. Lara will get the key back into her inventory after using it. (only with switch triggers)

multiusable keyholes #1082.zip
PR exe. Generated 23rd April 2023, 16:16 GTM

Tested:

Multi-use puzzle hole ✅
Multi-use keyhole ✅
Multi-use keyhole after save/reload ✅
Multi-use puzzle hole after save/reload ✅
Multi-use keyhole with missing bits (ie: 1 hole for bit 1-3 and another for 4+5) ✅
Multi-use puzzle with missing bits (ie: 1 hole for bit 1-3 and another for 4+5) ✅
Multi-use keyhole with missing bits. 1 key for 25 puzzle holes. Only triggered when all were used. Use the key again in any keyhole turned off the event being triggered ✅
Tried OCB 337 (use keycard). Lara still used normal key anim ❌

Tried OCB 437 (use keycard). Lara now performs the animation as instructed ✅


Checkboxes of multiline to do's don't align

I noticed that checkboxes of multiline to do's don't align with the single line ones.
I know it's a minor thing so see if it's viable to fix.

Sorry this seems to be an issue with my theme California Coast, Minimal Theme shows the checkboxes alright.

yeah i can fix that one. will tag it on the next release

I installed that california coast theme and am not able to reproduce the misaligned check boxes. Is it possible you have some custom CSS that is interfering?

Hi @delashum,
Thanks for looking at this issue. It has to do with a fault in the CC theme and had been fixed in the meantime by the author of that theme.
Best, Jan


SPIKE: Gap analysis of difference in account creation mechanisms between GC & BC Gov LZ

Describe the issue
Account creation in BC Gov's Landing Zone (LZ) seems to be heavily event-driven whereas we suspect the GC account creation process is fairly rigid. We wish to understand the gaps so we can plan any work to have event-driven account creation in GC Cloud.
Which Sprint Priority is this issue related to?
Additional context

Language differences between BC (cloud formation and stacks) & GC LZ (CDK, which is either Typescript or Python that generates cloud formation)

Definition of done

Word Document/PowerPoint in Teams outlining the differences between account creation
Set of estimated tickets describing the work needed to fill the gaps

Shea is covering this now