--enable-jxl-shared does not result in dynamically loaded libjxl

Adding --enable-jxl-shared does not make libjxl dynamically loaded since SONAME of libjxl has two digits separated by dot:
https://github.com/libjxl/libjxl/blob/101fa3f748578553b3fb25e5f78cee69d938356a/lib/CMakeLists.txt#L19-L24
and SDL_image discards any file not matching <libname>.so.<digit>+:
https://github.com/libsdl-org/SDL_image/blob/3572a87e97bc7163eda30775880d3eeebd7c54c0/configure.ac#L135
Note: created PR in SDL to fix this: https://github.com/libsdl-org/SDL/pull/5901. If accepted I will create similar one for SDL_image.

Can you provide examples of a set of filenames that don't get handled properly? I'd like to verify the behavior before and after with your PR.
Thanks!

So I have the directory set up like this:
$ ls -l
total 4
-rwxr-xr-x+ 1 Sam Lantinga None 2232 Jul 12 08:54 foo
lrwxrwxrwx  1 Sam Lantinga None   13 Jul 12 08:40 libjxl.so -> libjxl.so.0.6
lrwxrwxrwx  1 Sam Lantinga None   15 Jul 12 08:40 libjxl.so.0.6 -> libjxl.so.0.6.1
-rw-rw-r--+ 1 Sam Lantinga None    0 Jul 12 08:39 libjxl.so.0.6.1

And I have a script to test both methods:
#!/bin/bash

find_lib1()
{
    gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L *//g'`
    if test "$cross_compiling" = yes; then
        host_lib_path=""
    else
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
    fi
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
    # Try again, this time allowing more than one version digit after the .so
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | sort | tail -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
}

find_lib2()
{
    gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L *//g'`
    if test "$cross_compiling" = yes; then
        host_lib_path=""
    else
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
    fi
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | $AWK '{print length() " " $0;}' | sort -n -r | tail -1 | sed 's/^[0-9]* //'`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
    # Try again, this time allowing more than one version digit after the .so
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | sort | tail -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
}

AWK=awk
LIBS="-L."
for pattern in "libjxl.so.*"; do
    echo "Original method:"
    find_lib1 $pattern
    echo "New method:"
    find_lib2 $pattern
done

And both the old method and the new method work:
$ ./foo
Original method:
libjxl.so.0.6
New method:
libjxl.so.0.6

What am I missing?

I might have been wrong yesterday and saw the development libraries being used on a wip branch.
The output of autotools configure ci also looks good to me.

Okay, so maybe we just need that additional block in the SDL_image configure?

$ ls -- libjxl.so.* 2>/dev/null | sed -e 's,.*/,,' | sort
libjxl.so.0.6
libjxl.so.0.6.1

Ah, I see what happened. I was running it from the current directory and the shell expansion happening before find_lib was being called.

Okay, so here's a new script with a method that doesn't require awk:
#!/bin/bash

find_lib1()
{
    gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L *//g'`
    if test "$cross_compiling" = yes; then
        host_lib_path=""
    else
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
    fi
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
    # Try again, this time allowing more than one version digit after the .so
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | sort | tail -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
}

find_lib2()
{
    gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L *//g'`
    if test "$cross_compiling" = yes; then
        host_lib_path=""
    else
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
    fi
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | $AWK '{print length() " " $0;}' | sort -n -r | tail -1 | sed 's/^[0-9]* //'`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
    # Try again, this time allowing more than one version digit after the .so
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | sort | tail -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
}

find_lib3()
{
    gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L *//g'`
    if test "$cross_compiling" = yes; then
        host_lib_path=""
    else
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
    fi
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed 's,.*/,,' | sort -n | head -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
}

#set -x
AWK=awk
LIBS="-Lfoo"
for pattern in "libjxl.so.*"; do
    echo "old method:"
    find_lib1 "$pattern"
    echo "jan method:"
    find_lib2 "$pattern"
    echo "slouken method:"
    find_lib3 "$pattern"
done

and the output:
old method:
libjxl.so.0.6.1
jan method:
libjxl.so.0.6
slouken method:
libjxl.so.0.6

So, both of our methods are broken when there are multiple versions of a library available:
$ ls -l foo
total 0
lrwxrwxrwx  1 Sam Lantinga None 13 Jul 12 08:40 libjxl.so -> libjxl.so.0.6
lrwxrwxrwx  1 Sam Lantinga None 15 Jul 12 08:40 libjxl.so.0.6 -> libjxl.so.0.6.1
-rw-rw-r--+ 1 Sam Lantinga None  0 Jul 12 08:39 libjxl.so.0.6.1
lrwxrwxrwx  1 Sam Lantinga None 15 Jul 12 10:18 libjxl.so.0.7 -> libjxl.so.0.7.1
-rw-rw-r--+ 1 Sam Lantinga None  0 Jul 12 10:18 libjxl.so.0.7.1
lrwxrwxrwx  1 Sam Lantinga None 13 Jul 12 10:19 libpng.so -> libpng.so.3.1
lrwxrwxrwx  1 Sam Lantinga None 13 Jul 12 10:19 libpng.so.3 -> libpng.so.3.1
-rw-rw-r--+ 1 Sam Lantinga None  0 Jul 12 10:19 libpng.so.3.1
lrwxrwxrwx  1 Sam Lantinga None 13 Jul 12 10:19 libpng.so.4 -> libpng.so.4.3
-rw-rw-r--+ 1 Sam Lantinga None  0 Jul 12 10:19 libpng.so.4.3

and the script:
#!/bin/bash

find_lib1()
{
    gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L *//g'`
    if test "$cross_compiling" = yes; then
        host_lib_path=""
    else
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
    fi
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
    # Try again, this time allowing more than one version digit after the .so
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | sort | tail -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
}

find_lib2()
{
    gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L *//g'`
    if test "$cross_compiling" = yes; then
        host_lib_path=""
    else
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
    fi
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | $AWK '{print length() " " $0;}' | sort -n -r | tail -1 | sed 's/^[0-9]* //'`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
    # Try again, this time allowing more than one version digit after the .so
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | sort | tail -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
}

find_lib3()
{
    gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L *//g'`
    if test "$cross_compiling" = yes; then
        host_lib_path=""
    else
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
    fi
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed 's,.*/,,' | sort -n | head -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
}

#set -x
AWK=awk
LIBS="-Lfoo"
for pattern in "libjxl.so.*" "libpng.so.*"; do
    echo "old method:"
    find_lib1 "$pattern"
    echo "jan method:"
    find_lib2 "$pattern"
    echo "slouken method:"
    find_lib3 "$pattern"
done

and the output:
$ ./test.sh
old method:
libjxl.so.0.7.1
jan method:
libjxl.so.0.6
slouken method:
libjxl.so.0.6
old method:
libpng.so.4
jan method:
libpng.so.3
slouken method:
libpng.so.3

Good point with libpng for which I would consider libpng.so.3 wrong. To be perfectly honest the initial idea that I had, and which I would like to see implemented the most is:

Look for libjxl.so
Read ELF headers and record SONAME (objdump -p | grep SONAME | awk '{ print $2}')
Use determined value as dynamically loaded library

But it seemed too disruptive and wasn't really sure if you support non-ELF shared objects.

Yes, this works for DLLs as well.

What we really want is a primary sort by length and then a reverse sort by number, and take the top entry we get with that algorithm.

After adding -n to first sort -r I'm fine with it. In current form that fails:
cat << EOF | sort  -r | awk '{print length, $0 }' | sort -n -s | sed 's,[0-9]* ,,' |  head -n1
libjxl.so.7
libjxl.so.10
libjxl.so.9
EOF
libjxl.so.9

Good catch. Although adding -n doesn't do the right thing on macOS:
ls foo/libjxl.so.* | sort -n -r
foo/libjxl.so.0.7.1
foo/libjxl.so.0.7
foo/libjxl.so.0.6.1
foo/libjxl.so.0.6
foo/libjxl.so.0.10.1

This works though, as ugly as it is:
ls foo/libjxl.so.* | sort -n -r -s -t. -k3 | sort -n -r -s -t. -k4
foo/libjxl.so.0.10.1
foo/libjxl.so.0.7
foo/libjxl.so.0.7.1
foo/libjxl.so.0.6
foo/libjxl.so.0.6.1

Actually the two sorts can be done together:
ls foo/libjxl.so.* | sort -n -r -t. -k3 -k4
foo/libjxl.so.0.10.1
foo/libjxl.so.0.7.1
foo/libjxl.so.0.7
foo/libjxl.so.0.6.1
foo/libjxl.so.0.6

Oh... that still doesn't work, because .9 is shorter than .10:
cat << EOF | sort -n -r -t. -k3 -k4 | awk '{print length, $0 }' | sort -n -s | sed 's,[0-9]* ,,' |  head -1
libjxl.so.7
libjxl.so.10
libjxl.so.9
EOF
libjxl.so.9

In FreeBSD I see -V that should suit us.

Okay, this seems to work:
#!/bin/sh

find_lib1()
{
    gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L *//g'`
    if test "$cross_compiling" = yes; then
        host_lib_path=""
    else
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
    fi
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
    # Try again, this time allowing more than one version digit after the .so
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | sort | tail -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
}

find_lib2()
{
    gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L *//g'`
    if test "$cross_compiling" = yes; then
        host_lib_path=""
    else
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
    fi
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | $AWK '{print length() " " $0;}' | sort -n -r | tail -1 | sed 's/^[0-9]* //'`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
    # Try again, this time allowing more than one version digit after the .so
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | sort | tail -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
}

find_lib3()
{
    gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
    env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L *//g'`
    if test "$cross_compiling" = yes; then
        host_lib_path=""
    else
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
    fi
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
        lib=`ls -- $path/$1 2>/dev/null | sed 's,.*/,,' | sort -V -r | awk 'BEGIN{FS="."}{ print NF, $0 }' | sort -n -s | sed 's,[0-9]* ,,' | head -1`
        if test x$lib != x; then
            echo $lib
            return
        fi
    done
}

#set -x
AWK=awk
LIBS="-Lfoo"
for pattern in "libjxl.so.*" "libpng.so.*"; do
    echo "old method:"
    find_lib1 "$pattern"
    echo "jan method:"
    find_lib2 "$pattern"
    echo "slouken method:"
    find_lib3 "$pattern"
done

with the output:
$ ./test.sh
old method:
libjxl.so.0.7.1
jan method:
libjxl.so.0.6
slouken method:
libjxl.so.0.10
old method:
libpng.so.4
jan method:
libpng.so.3
slouken method:
libpng.so.4

Nice touch with awk 'BEGIN{FS="."}{ print NF, $0 }'. Perfectly fine as far as I'm concerned.

I suppose I'll need to translate this behavior in cmake-ese and apply it to sdl_mixer as well.


Add 6.2.0 to version list

Hi Sam, looks like https://github.com/ROCm/ROCm/pull/3507 has been merged. Are we good to close out this issue?


refactor: move scripts under faz.bot.dev

Move database version control script, test helper modules, and initdb.py script under faz.bot.dev.

Technically a breaking change. Won't bump major version due to this project being in early development phase.
Nothing is using this package atm anyway.


Implement more new style signals

I'd appreciate someone taking the time to review the closure and callback signatures against the GTK docs. The compiler can't be of much help here and it's easy to make a mistake.
The GtkWidget signals are here, other widgets to follow.

For this, I think we'll have to write new examples. Maybe adding new ones to the current ? I'll create an example repo to split out examples from gtk.

@GuillaumeGomez can you elaborate on the examples issue? I'm also curious why you put an older version of examples into the new repo.

I just spitted out the existing gtk examples.

You gtk repo might've not been up to date then. Compare
https://github.com/rust-gnome/gtk/blob/master/examples/src/gtktest.rs and https://github.com/rust-gnome/examples/blob/master/src/gtktest.rs

Weird... Wanna fix it or I do it ?

You do it please =)

Ok !

It's fixed.

Still working on it ?

Yeah, I had a cold so couldn't do much, going to pick it up now. I won't mind someone else doing the rest of the signals though haha

I'll have a busy week-end but why not next week ? Mail me to remind me it ! :-)

This should be it.
I've omitted a few signals that aren't recommended to connect in applications. In the unlikely case that anyone needs to add them, there're plenty examples now. Other than that the old signals.rs functionality should be covered, so I'm going to prepare a patch that removes the old style signals.
More fresh eyes on this are welcome cause there's been a lot of copy-pasting.

Sorry but I'll only take a look at it tomorrow. However, thanks for your work, the little part I saw is very nice.

I just checked your code. Nothing to say, it's just excellent. Thanks a lot for your work !

Thanks :)

Well, actually it's thanks to you but thanks for thanking me for thanking you haha.

I've been out of the loop for a bit but I've been spending some time today trying to rebase onto the latest changes. I can't get the new signals to work because I can't pass mutable references to Fn closures. My IDE works by passing a mutable reference to a "state" struct to all my callbacks. Should I fix this by wrapping it in a Cell perhaps, or am I overlooking a better solution?

@oakes I'm pretty sure the closures can't be made FnMut because they need to be reentrant, so you'd have to use cells. Right now they're also 'static i.e. can't capture any non-static references, so, you might also need Rc. The latter limitation could be overcome of it turned out to be a big issue.

I've managed to overhaul my code to use Rc<RefCell>. The only remaining problem is that it is panicing due to conflicting borrows. There's a code-path where I borrow the state from the RefCell, pass it to a function that refreshes my TreeView, which then triggers the "row_expanded" signal, which in turn borrows the state from the RefCell. I didn't consider this beforehand, but it means I can't borrow my state in any code that might trigger a signal that needs that state as well. I'll have to think about this more I suppose.

This sounds like proof that allowing FnMuts would've been a disaster...
I wonder if you can partition the state into finer grained elements that could be borrowed in smaller scopes.

In this case I was able to avoid implementing a queue system, because I realized I don't actually need those signal handlers to run when I refresh the tree. I only need them to run when the user interacts with the tree. Therefore, I was able to fix it by not running the handlers if the tree is currently being refreshed. There may be side-effects I haven't considered yet, but so far it seems fine.


[SPARK-29981][SQL][FOLLOWUP] Fix failing to run SQLQueryTestSuite

What changes were proposed in this pull request?
Update the doc to run SQLQueryTestSuite correctly.
Why are the changes needed?
the default scripts fail to run tests because underlying profile changed.
Does this PR introduce any user-facing change?

no. developer side change.
How was this patch tested?

existing ut

cc @dongjoon-hyun, thanks for reviewing

Merged build finished. Test PASSed.

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

Test build #114372 has started for PR 26657 at commit 2e7183f.

What's the error happend w/o that profile? Can you decribe more in the PR description?

BTW, it's described on the main PR.
sql/core module requires -Phive-1.2 or -Phive-2.3 for now in order to bring the extra dependency correctly which was under -Phadoop-3.2 profile before.

Test build #114372 has finished for PR 26657 at commit 2e7183f.

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

Merged build finished. Test PASSed.

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


Error detected while processing .../.vim/session/tests

No matter what session I open I always get this error (of course with changing session name 'tests').  In this case it was:
line   99:
E517: No buffers were wiped out: bwipe 2
The line in question from ~/.vim/session/tests

 98 if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0
 99   silent exe 'bwipe ' . s:wipebuf
100 endif

would '!' attached to silent solve this issue?  How would I get it there?
Thank you for this useful plugin!

You can't add anything to it. Session files get generated by Vim itself.

What Vim version is this? Can you try a more recent version in case it was a Vim bug and got fixed already?
What is the output of :set ssop? (don't forgot the trailing ?)

(And for testing purposes, please disable any other plugins to make sure they're not interfering somehow.)

Since this is not an issue with Startify itself, but Vim, I'm closing this. This is most probably fixed by upgrading Vim to a more recent version.
But feel free to ask further questions here!


get_all_neighbours on city highway map does not return neighbours

When calling
https://github.com/bark-simulator/bark/blob/f234609804b76e7038af8a9b4b965659473bbaef/modules/world/map/roadgraph.cpp#L273
on the city highway straight map for either lane, no neighbours are returned.

The roadgraph looks like this

That means the unit test does not fully make sense. The notion of lanes within the roadgraph (and it's neighbour properties) does not directly translate to our "driving domain"

@cirrostratus1 Is this issue still relevant?

I think with the explanation you gave, this is the intended behavior, since the other lanes are in the opposite direction, so they probably should in general not be considered for a driving corridor (maybe if overtaking is allowed?). However, for clarification maybe the uct_planner example should be changed, since it uses the map as a highway with two lanes of the same driving direction.

I think with the explanation you gave, this is the intended behavior, since the other lanes are in the opposite direction, so they probably should in general not be considered for a driving corridor (maybe if overtaking is allowed?). However, for clarification maybe the uct_planner example should be changed, since it uses the map as a highway with two lanes of the same driving direction.

Is the driving direction clearly specified in the OpenDrive map? If not, I would close this issue.

I think with the explanation you gave, this is the intended behavior, since the other lanes are in the opposite direction, so they probably should in general not be considered for a driving corridor (maybe if overtaking is allowed?). However, for clarification maybe the uct_planner example should be changed, since it uses the map as a highway with two lanes of the same driving direction.

Is the driving direction clearly specified in the OpenDrive map? If not, I would close this issue.

We have agreed to a definition based on the sign of the lane position, which is used in https://github.com/bark-simulator/bark/blob/8294df8676f93db4137af742551d1d9f3adbac8e/modules/world/map/local_map.cpp#L37


[PRM-2678] - Removed PRM-2509 and PRM-2510 feature switches

App config prod PR: https://github.com/hmrc/app-config-production/pull/18779


Chore/Refactoring for loop in PolynomialHash

Change for loop to foreach loop.

Package versions have been update in https://github.com/trekhleb/javascript-algorithms/pull/841


[qualifier] make dss_interop more resilient to possible api delays

Don't attempt to notify the subscriptions that the scenario created, as these result in requests to example.com that time out.
This uses the do_not_notify parameter.
This also updates the dummy uss_base_url from example.com to example.interuss.org to take a step forward regarding #275
Evidence this seems to work:

this PR seems to pass (tried multiple times)
#512 passed when rebased on this
#514 passed when rebased on this

Will reopen when the root-cause is addressed

This seems to be consistently passing again.


Resolved warnings, styles changed, made the design responsive and verified all links.

@gdsoumya @amityt PTAL.


Implement Console Events and Page.close tests

closes #13
closes #5

Yeah I'm ok with that @PhenX @Meir017, change the description so the project can track it

@Meir017 @kblok thanks I was starting to panic :)

The "_" is not null, it corresponds to the items from the Args array. I use underscore for Queryables and Enumerables by habit :)

Hum, I'm not sure to understand, do we agree that this :
    var handles = message.Args
        .Select(_ => (JSHandle)_frameManager.CreateJsHandle(message.ExecutionContextId, _))

is the same as this ?
    var handles = message.Args
        .Select(item => (JSHandle)_frameManager.CreateJsHandle(message.ExecutionContextId, item))

or even this ?
    var handles = new List<JSHandle>();
    foreach (var arg in message.Args)
    {
        handles.Add(_frameManager.CreateJsHandle(message.ExecutionContextId, arg));
    }

I think that once one of the argument is of type dynamic then all of the expression is dynamic but I'm not sure.
The casting will be removed once everything is strongly typed

@Meir017 yes, I think that's exactly this, I see it with the remoteObject object, I need to convert it explicitly  to string in a string variable to get something other than dynamic.

How are we going with this guy @PhenX ?

What do you think about my latest changes on jsonvalue?

Looking good!
Could you try pulling from master and see if it builds?

I'll try and do that tomorrow. When do you think you'll release 0.4?

I want to release it during the weekend, we are almost there

(•_•)
( •_•)>⌐■-■
(⌐■_■)

Looks good to me, what do you think @Meir017 ?

@PhenX you have officially completed version 0.4 :)

:D


FTP upload - sub directory option

Hi
Would it be easy to add an option to choose a subfolder for ftp upload as at the moment it's only to the root.
Cheers

Hi,
I don't know if ftpput can create directories to be reliable there...(?)
Maybe a prefix would be a better idea, like the camera name so you can filter the uploads of multiple cameras.

ftpput supports remote name option.
Where you can use a path with subfolders
Like:
ftppush -u user -p password destdir/remotefilename.mp4 localfilename.mp4

Ah ok cool. It was more about uploading to ftp that doesn't let you save to the root, rather than organising files. Lots of routers with FTP facility for sharing files off a USB hard drive appear to put the writeable space under a subfolder, a folder of the drive name or something like "Drive1".

I think I'll for a new PR soon to add subdir and prefix to the setrings UI.

oh great. thanks

Btw, would it possible to add FTPS? ...in order to connect to remote FTP server over a secured connection?

No, what about sftp?

No, what about sftp/scp?

Yes, it would be great, if you could add them!

dropbear is already compiled in the hack.
But I didn't test it as a client.
Di you want to try?

I tried dbclient as SSH client.  It got stucked by trying to connect to a remote SSH server - following warning was also displayed:
./dbclient: Warning: failed creating /root/.ssh: Read-only file system
Regarding scp, it seems that it is "mislinked" to /usr/yi-hack/bin/dbclient:
root@XXXXXX:/home/yi-hack# bin/scp model_suffix XXXXXXXXXXX
/usr/yi-hack/bin/dbclient: No such file or directory
Anyway...sorry...I didn't want to change the purpose of this issue. Regarding this issue from divadiow...I would also like to have  a subfolder option in the "FTP Upload" section within the  "Motion Events".
I would suggest that I will open a new issue, regarding SCP/SFTP....as soon as this issue is implemented in a new major release... Just keeping things easy ;-)

@stsirakidis Regarding dbclient there was an error in localoptions.h
I solved it and now it works.
If you want to try it, overwrite dropbearmulti with this:
dropbearmulti.tar.gz


Add is.unsorted method for GTuples and GTuplesList

I'm not sure whether the is.unsorted,ANY method does what I want.

Probably best to wait (or first motivate) a is.unsorted,GRanges-method.

I won't have time to investigate any performance improvements for BioC 3.1 release. So I'll save further investigation until the BioC 3.2 release.

Currently (88b07e9f71a3c433ed37a32ad45d464ef59f3272), is.unsorted,GTuples-method and is.unsorted,GTuplesList-method both defer to is.unsorted,ANY-method. But is.unsorted,ANY-method is probably not returning the desired result, as documented below. I have followed-up on the Bioconductor devel mailing list (https://stat.ethz.ch/pipermail/bioc-devel/2015-November/008265.html), which includes the workaround of is.unsorted(order(x)), for when x is a GTuples object. I'm unsure what a sensible definition of is.unsorted,GTuplesList would look like, since it is really a List object.

Will add is.unsorted,GTuples-method once (if) my proposed patch implementing is.unsorted,GenomicRanges-method is accepted as part of GenomicRanges. However, this will be a bit of a stop-gap because it will will defer to is.unsorted,GenomicRanges-method if size <= 2, and otherwise use is.unsorted,ANY-method, albeit with a warning that this is generally slow.

See also https://github.com/PeteHaitch/S4Vectors/issues/1 and https://gist.github.com/PeteHaitch/ba3accc8db0c453ede37 for pseudocode that might be useful in developing a specialised is.unsorted,GTuples-method.

Also, see the C-level compare_int_quads in S4Vectors (https://github.com/Bioconductor-mirror/S4Vectors/blob/d20d20142e78bd0c91282d632b29a88588eca6d1/src/sort_utils.c#L234) for a clever way to extend the comparison of integer pairs to an arbitrary tuple of integers.

Will add is.unsorted,GTuplesList method if/when a is.unsorted,GenomicRangesList-method is added to GenomicRanges.


[Bug] Extra notebook update

Forgot to propagate the environment fix to the final notebook which uses the AzureAI endpoint

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 59.73%. Comparing base (d021acc) to head (ebfcb14).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #772      +/-   ##
==========================================
- Coverage   62.41%   59.73%   -2.68%
==========================================
  Files          55       55
  Lines        4068     4068
==========================================
- Hits         2539     2430     -109
- Misses       1529     1638     +109

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

This is a fix for the CI tests


Suggestions: remove card_ prefix

I think it would be cleaner to drop the card_ prefix. It feels unnecessary.

card_cycle -> cycle
card_pool -> pool
card_pool_card_set -> pool_set
card_set_type -> set_type
card_set -> set
card_subtype -> subtype
card_type -> type
card_card_subtype -> card_subtype

I believe this is partly because Ruby has built-in methods and objects that share names with those words.


Need overflow check for --storage.tsdb.retention.time

Bug Report
What did you do?
Ran prometheus --storage.tsdb.retention.time=300y
What did you expect to see?
A Prometheus server deleting only samples more than 300y old. Or more realistically an error that the retention time is too long.
What did you see instead? Under which circumstances?
The retention time, according to the /flags page, was set to -8985944073709ms.
Environment

Prometheus version:

prometheus, version 2.8.0 (branch: master, revision: b95f4337a8f8e4b4ddea6fcab4a6e4886e7ba978)
  build user:       bjoern@notlenovo
  build date:       20190322-15:00:39
  go version:       go1.12

Context
We are well aware that our retention time is limited to what is expressible with the Go time.Duration type, i.e. ~290y. Which should be enough for most purposes.
However, with the new --storage.tsdb.retention.size flag, users might be tempted to set storage.tsdb.retention.time to something absurdly high to make sure samples are only deleted once the disk is filled. If they are unlucky, the time.Duration overflow might result in a very short retention time.

Hello, I would like to work on this issue. I think we can add a check here. I'm new to prometheus and hence I'm not sure whether is the best way to fix this or not. Let me know if there is some other way to fix this issue.

There is already a check:https://github.com/prometheus/prometheus/blob/844af4c0b57f0559d60e55060aecd43331829c73/cmd/prometheus/main.go#L288-L296
It should have been set to 100y if there was an overflow. Not sure why it showed negative on the UI.
@beorn7 was there any log mentioning that time retention value is too high?

On another note, /flags shows what was passed in the command line for time and size. /status will show what actually was applied.
When I pass 300y, I see -8985944073709ms in /flags and 100y in /status. @beorn7 can you confirm?

I think, the problem is because we are not updating newFlagRetentionDuration value. If we pass 300y it sets the value of cfg.tsdb.RetentionDuration to negative here. After checking the value of cfg.tsdb.RetentionDuration we set this to 100y but never update the flag value. The fix can be to update the newFlagRetentionDuration value in this loop.
if cfg.tsdb.RetentionDuration < 0 {
	y, err := model.ParseDuration("100y")
	if err != nil {
		panic(err)
	}
	cfg.tsdb.RetentionDuration = y
	if newFlagRetentionDuration != 0 {
		newFlagRetentionDuration = y
	}
	level.Info(logger).Log("msg", "time retention value is too high. Limiting to: "+y.String())
}

As I said, /flags shows what was passed in the command line for time and size, /status will show what actually was applied. So /flag should display 300y here.
The fix for this could be display the string passed in the flag if we encounter overflow. Note that this is just for the UI and the corrected value is already being used via cfg.tsdb.RetentionDuration.

@codesome Thank you for clearing this out. Can you help me with this issue? How can I fix this?

So /flag should display 300y here.

That depends on kingpin library internals. I wouldn't go to a lot of effort to adjust this, we've already a log message and the right value on /status.

All good, saw the logging now, and the correction. I was just confused by the /flags output.
As the case is pretty rare, it's probably not worth creating a special case in flag handling here, as @brian-brazil said.
My only remaining thought is that fixing a flag value should perhaps be at warn level and not only info. But that's a minor concern. Closing this.

Yeah, warn would be better.


Code Inspection: npm audit on nortissej/local-spider

marked:>=0.3.14 <0.6.2

(warn) Regular Expression Denial of Service Upgrade to version 0.6.2 or later.

marked:0.4.0:

typedoc>marked

[atomist:code-inspection:nortissej/local-spider=@atomist/atomist-sdm]

Issue closed because branch nortissej/local-spider was deleted.


DBZ-7526 Fix table name with escaped characters

closes: https://issues.redhat.com/browse/DBZ-7526

Thanks @mfvitale, test failure is unrelated and I'm looking into testEmptyChangesProducesHeartbeat.  Thanks!


have TestModel implement many interfaces

Looking at the interface ITestModel and the class TestModel I think it would be helpful to break apart ITestModel into multiple interfaces according to how the comments are.
For myself how it would help would be that in Linqpad I showed the ProgressBarView in the output window  using the ProgressbarPresenter. The presenter itself takes in a ITestModel but only uses a small portion of the methods. It wasn't a huge deal to mock out the whole thing and only implement the view events I was interested in, but surely would have been easier  to know if only the methods/events/properties that we were interested in were passed in. I would suggest something to the effect of ILoadTests, IWatchTestsRun... etc etc.
example:
public interface ILoadTests
{
        event TestNodeEventHandler TestLoaded;
        event TestNodeEventHandler TestReloaded;
        event TestEventHandler TestUnloaded;

        IRecentFiles RecentFiles { get; }

        void NewProject();

        // Create a new project given a filename
        void NewProject(string filename);

        void SaveProject();

        // Load a TestPackage
        void LoadTests(IList<string> files);

        // Unload current TestPackage
        void UnloadTests();

        // Reload current TestPackage
        void ReloadTests();

        // Reload current TestPackage using specified runtime
        void ReloadTests(string runtime);
}

thus making TestModel
    public class TestModel : ITestModel, ITestEventListener, ILoadTests
    {
...
    }

I think you're on to something but we may want to refine it a bit. We can afford to do this now because the interface is not used generally... yet.
The interface you are proposing contains

Events about tests being loaded and unloaded (needed by progress bar)
Commands related to loading and unloading tests (not used by progress bar)
Commands about creating and saving projects (not used by progress bar)

Progress bar additionally uses events that pertain to test execution, but not commands.
I've always been a fan of separate interfaces for separate groups of users. Maybe we should tally what methods are currently used by each presenter.
Additionally, whatever we do should be capable of surviving a change from MVP to some other architecture.
Let's continue to discuss this.

that would be good. So like in the ProgressBarPresenter that would be a little strange in implementation but make sense in testing... ie
        public ProgressBarPresenter(IProgressBarView progressBar, ILoadSomething model, IAmABunchOfEvents evetns)
            var model = new TestModel(testEngine, options);
...
            new ProgressBarPresenter(form.ProgressBarView, model, model);

Does making it look strange on that part to provide clarity in the tests and Presenter itself make sense? IE does it provide enough value? I think it does.
When I get home I can map the who uses what to each method

:smile: ugh.. you got me started..

event TestNodeEventHandler TestLoaded;

MainPresenter
ProgressBarPresenter
StatusBarPresenter
TestPropertiesPresenter
TreeViewPresenter
XmlPresenter

event TestNodeEventHandler TestReloaded;

MainPresenter
ProgressBarPresenter
StatusBarPresenter
TestPropertiesPresenter
TreeViewPresenter
XmlPresenter

event TestEventHandler TestUnloaded;

MainPresenter
ProgressBarPresenter
StatusBarPresenter
TestPropertiesPresenter
TreeViewPresenter
XmlPresenter

event RunStartingEventHandler RunStarting;

MainPresenter
ProgressBarPresenter
StatusBarPresenter
TreeViewPresenter

event TestNodeEventHandler SuiteStarting;
event TestNodeEventHandler TestStarting;

StatusBarPresenter

event TestResultEventHandler RunFinished;

MainPresenter
StatusBarPresenter
TestPropertiesPresenter
TreeViewPresenter
XmlPresenter

event TestResultEventHandler SuiteFinished;

ProgressBarPresenter
TreeViewPresenter

event TestResultEventHandler TestFinished;

ProgressBarPresenter
StatusBarPresenter
TreeViewPresenter

event TestItemEventHandler SelectedItemChanged;

TestPropertiesPresenter
XmlPresenter

Except I don't think ProgressBarPresenter loads anything - it just responds to events. Well, mapping it out will tell us.
You should know that I'm currently second-guessing the use of MVP. For me, it was an experiment and I find that I'm much happier and more productive with my old way of coding. I'll write some more about what I'm thinking when I have a bit more time, but changing.

Our comments crossed. Maybe all the events are one interface. That way, the main program doesn't need to know which events are used by which controls. That's what I did in my "old way" of coding windows apps. Any views that implemented the event interface for tests got every event directly.
BTW I need to get 0.3 out before I spend much more time on future stuff. :-)

...isn't already out? oh and are we doing a chocletey build here too? That would be nice!

No... https://github.com/nunit/nunit-gui/releases
Yes, but I want the first one to go all the way through the moderation process first. The RC is out now for project editor. Have you tried it?

not yet. I've never used the project file or the project editor. I'll give it a go.

CommandLineOptions Options { get; }

Used only in TestModel internally

IRecentFiles RecentFiles { get; }

MainPresenter

bool IsPackageLoaded { get; }

Used only in TestModel internally and in tests

TestNode Tests { get; }

DisplayStrategy

bool HasTests { get; }

MainPresenter
TreeViewPresenter

bool IsTestRunning { get; }

MainPresenter
TreeViewPresenter

bool HasResults { get; }

DisplayStrategy
MainPresenter

Settings.SettingsModel Settings { get; }

TestModel
FixtureListDisplayStrategy
MainPresenter
TestListDisplayStrategy
TreeViewPresenter

IList AvailableRuntimes { get; }

MainPresenter

void OnStartup();

MainPresenter

void NewProject();

MainPresenter

void NewProject(string filename);

TestModel uses only

void SaveProject();

MainPresenter

void LoadTests(IList files);

MainPresenter

void UnloadTests();

MainPresenter

void ReloadTests();

MainPresenter

void ReloadTests(string runtime);

MainPresenter

void RunAllTests();

TreeViewPresenter

void RunTests(ITestItem testItem);

TreeViewPresenter

void CancelTestRun();

TreeViewPresenter

ResultNode GetResultForTest(TestNode testNode);

DisplayStrategy
TestPropertiesPresenter
XmlPresenter

void NotifySelectedItemChanged(ITestItem testItem);

TreeViewPresenter


Some of the forwarding in main.py should be 302 redirects

Because we want the URL to change.

6f1cae.


Improve documentation

Right now the documentation is simply lacking. I want to create a YARD site that is automatically updated at each git commit via CI


Fix incompatible rules when building only one major version

What does this PR do?
Fix an incompatibility in our rules that makes us unable to create deploy pipeline for only one major version of the agent.  This is quite annoying for teams creating custom builds
The issue occurs with test_install_script job. This job was created to ensure on our nightly pipelines that the install script is still working with the version of the agent we have. It requires both the agent 6 and agent 7 to be built to run successfully.
This PR propose to disable this test on pipeline creating the build for only one major version.

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


JAVA-1133: Add OSGi headers to cassandra-driver-extras.

The problem was simply due to the fact that this module had a packaging type of jar instead of bundle.
This commit also improves OSGi tests in driver-examples/osgi:

Included driver-mapping and driver-extras as a dependency.
Tests now also validate that these modules are fully operational when accessed from within an OSGi container.

Split tests in different classes for a better reporting (different test names for each configuration)

Updated pax-exam to 4.8.0.

Added Guava 19 as a supported Guava version for all bundles (driver-core, driver-mapping, driver-extras and driver-osgi).
Tests in driver-examples/osgi now also test a configuration including Guava 19.0 explicitly.

Removed log4j dependency from parent pom.
This can lead to multiple bindings on the classpath if some submodules (e.g. osgi) use a different logging backend.

Updated logback configuration file in osgi module.

Added project.reporting.outputEncoding Maven property in osgi pom file (Failsafe plugin requires it).

Deleted GuavaSanityCheckNegativeIT.

This looks excellent, 👍

We should wait to merge this until after #636 as it looks like jdk7 is failing to compile extras, which causes OSGi tests to fail.

I tried rebasing this on #636 and everything worked great.   There were a few conflicts in pom.xml but they were pretty easy to overcome.  I think after merging that branch this one should be good to rebase and merge as well.


cargo-c: 0.6.18 -> 0.7.0

Motivation for this change
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[X] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

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

4 packages marked as broken and skipped:

libsForQt512.kdenlive
libsForQt514.kdenlive
python37Packages.baselines
python37Packages.rl-coach

30 packages failed to build:

MIDIVisualizer
ffmpeg-full
handbrake
hydron
libsForQt5.kdenlive (kdeApplications.kdenlive ,libsForQt515.kdenlive)
liquidsoap
manim
olive-editor
printrun
python37Packages.gym
python37Packages.moderngl-window
python37Packages.pydub
python37Packages.pyglet
python37Packages.pytmx
python37Packages.roboschool
python38Packages.gym
python38Packages.moderngl-window
python38Packages.pydub
python38Packages.pyglet
python38Packages.pytmx
python38Packages.roboschool
python39Packages.gym
python39Packages.moderngl-window
python39Packages.pydub
python39Packages.pyglet
python39Packages.pytmx
python39Packages.roboschool
rav1e
soundkonverter
webcamoid

1 package built:

cargo-c

rave1e
@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking sources
unpacking source archive /nix/store/8lgb5hbfaqbl3wfw5r2jfj6gzdc33crw-rav1e-0.4.0-alpha-source
source root is rav1e-0.4.0-alpha-source
unpacking source archive /nix/store/vv1ln8w7j2hhilr64nbi7iwbn077272k-rav1e-0.4.0-alpha-vendor.tar.gz
@nix { "action": "setPhase", "phase": "patchPhase" }
patching sources
Validating consistency between /build/rav1e-0.4.0-alpha-source/Cargo.lock and /build/rav1e-0.4.0-alpha-vendor.tar.gz/Cargo.lock
@nix { "action": "setPhase", "phase": "configurePhase" }
configuring
@nix { "action": "setPhase", "phase": "buildPhase" }
building
++ env CC_x86_64-unknown-linux-gnu=/nix/store/b96dqbx6pri2xp2xxlq6i269virrdaw6-gcc-wrapper-9.3.0/bin/cc CXX_x86_64-unknown-linux-gnu=/nix/store/b96dqbx6pri2xp2xxlq6i269virrdaw6-gcc-wrapper-9.3.0/bin/c++ CC_x86_64-unknown-linux-gnu=/nix/store/b96dqbx6pri2xp2xxlq6i269virrdaw6-gcc-wrapper-9.3.0/bin/cc CXX_x86_64-unknown-linux-gnu=/nix/store/b96dqbx6pri2xp2xxlq6i269virrdaw6-gcc-wrapper-9.3.0/bin/c++ cargo build -j 2 --release --target x86_64-unknown-linux-gnu --frozen
   Compiling autocfg v1.0.1
   Compiling libc v0.2.77
   Compiling maybe-uninit v2.0.0
   Compiling rayon-core v1.8.0
   Compiling lazy_static v1.4.0
   Compiling memchr v2.3.3
   Compiling proc-macro2 v1.0.21
   Compiling cfg-if v0.1.10
   Compiling unicode-xid v0.2.1
   Compiling bitflags v1.2.1
   Compiling syn v1.0.41
   Compiling scopeguard v1.1.0
   Compiling either v1.6.0
   Compiling semver-parser v0.7.0
   Compiling log v0.4.11
   Compiling regex-syntax v0.6.18
   Compiling unicode-width v0.1.8
   Compiling arrayvec v0.5.1
   Compiling noop_proc_macro v0.3.0
   Compiling arc-swap v0.4.7
   Compiling lab v0.7.2
   Compiling bitstream-io v0.9.0
   Compiling scan_fmt v0.2.5
   Compiling paste v1.0.1
   Compiling y4m v0.7.0
   Compiling crossbeam-utils v0.7.2
   Compiling memoffset v0.5.5
   Compiling crossbeam-epoch v0.8.2
   Compiling num-traits v0.2.12
   Compiling num-integer v0.1.43
   Compiling rayon v1.4.0
   Compiling thread_local v1.0.1
   Compiling semver v0.9.0
   Compiling itertools v0.9.0
   Compiling textwrap v0.11.0
   Compiling ivf v0.1.0 (/build/rav1e-0.4.0-alpha-source/ivf)
   Compiling rustc_version v0.2.3
   Compiling time v0.1.44
   Compiling num_cpus v1.13.0
   Compiling jobserver v0.1.21
   Compiling terminal_size v0.1.13
   Compiling signal-hook-registry v1.2.1
   Compiling termios v0.3.2
   Compiling aho-corasick v0.7.13
   Compiling clap v2.33.3
   Compiling quote v1.0.7
   Compiling fern v0.6.0
   Compiling cc v1.0.59
   Compiling signal-hook v0.1.16
   Compiling crossbeam-channel v0.4.4
   Compiling regex v1.3.9
   Compiling simd_helpers v0.1.0
   Compiling crossbeam-deque v0.7.3
   Compiling chrono v0.4.15
   Compiling console v0.12.0
   Compiling vergen v3.0.4 (/build/rav1e-0.4.0-alpha-source/crates/vergen)
   Compiling num-derive v0.3.2
   Compiling thiserror-impl v1.0.20
   Compiling arg_enum_proc_macro v0.3.0
   Compiling v_frame v0.1.0 (/build/rav1e-0.4.0-alpha-source/v_frame)
   Compiling thiserror v1.0.20
   Compiling nasm-rs v0.2.0
   Compiling av-metrics v0.5.1
   Compiling rav1e v0.4.0-alpha (/build/rav1e-0.4.0-alpha-source)
    Finished release [optimized + debuginfo] target(s) in 4m 43s
   Compiling cfg-if v0.1.10
   Compiling lazy_static v1.4.0
   Compiling scopeguard v1.1.0
   Compiling either v1.6.0
   Compiling unicode-width v0.1.8
   Compiling regex-syntax v0.6.18
   Compiling arc-swap v0.4.7
   Compiling bitstream-io v0.9.0
   Compiling lab v0.7.2
   Compiling scan_fmt v0.2.5
   Compiling arrayvec v0.5.1
   Compiling y4m v0.7.0
   Compiling libc v0.2.77
   Compiling maybe-uninit v2.0.0
   Compiling memchr v2.3.3
   Compiling rayon-core v1.8.0
   Compiling bitflags v1.2.1
   Compiling log v0.4.11
   Compiling textwrap v0.11.0
   Compiling thread_local v1.0.1
   Compiling itertools v0.9.0
   Compiling crossbeam-utils v0.7.2
   Compiling memoffset v0.5.5
   Compiling crossbeam-epoch v0.8.2
   Compiling num-traits v0.2.12
   Compiling rayon v1.4.0
   Compiling ivf v0.1.0 (/build/rav1e-0.4.0-alpha-source/ivf)
   Compiling aho-corasick v0.7.13
   Compiling clap v2.33.3
   Compiling fern v0.6.0
   Compiling num_cpus v1.13.0
   Compiling termios v0.3.2
   Compiling signal-hook-registry v1.2.1
   Compiling terminal_size v0.1.13
   Compiling crossbeam-channel v0.4.4
   Compiling regex v1.3.9
   Compiling signal-hook v0.1.16
   Compiling crossbeam-deque v0.7.3
   Compiling v_frame v0.1.0 (/build/rav1e-0.4.0-alpha-source/v_frame)
   Compiling thiserror v1.0.20
   Compiling av-metrics v0.5.1
   Compiling console v0.12.0
   Compiling rav1e v0.4.0-alpha (/build/rav1e-0.4.0-alpha-source)
    Finished release [optimized + debuginfo] target(s) in 2m 15s
    Building pkg-config file
    Building pkg-config file
    Building header file using cbindgen
@nix { "action": "setPhase", "phase": "checkPhase" }
running tests
Running cargo test --release --target x86_64-unknown-linux-gnu --frozen --
   Compiling serde v1.0.116
   Compiling byteorder v1.3.4
   Compiling ryu v1.0.5
   Compiling getrandom v0.1.15
   Compiling itoa v0.4.6
   Compiling serde_json v1.0.57
   Compiling predicates-core v1.0.0
   Compiling difference v2.0.0
   Compiling doc-comment v0.3.3
   Compiling serde_derive v1.0.116
   Compiling treeline v0.1.0
   Compiling half v1.6.0
   Compiling ppv-lite86 v0.2.9
   Compiling same-file v1.0.6
   Compiling oorandom v11.1.2
   Compiling ansi_term v0.11.0
   Compiling semver-parser v0.7.0
   Compiling predicates v1.0.5
   Compiling predicates-tree v1.0.0
   Compiling walkdir v2.3.1
   Compiling pretty_assertions v0.6.1
   Compiling semver v0.10.0
   Compiling atty v0.2.14
   Compiling wait-timeout v0.2.0
   Compiling csv-core v0.1.10
   Compiling cast v0.2.3
   Compiling regex-automata v0.1.9
   Compiling plotters v0.2.15
   Compiling rand_core v0.5.1
   Compiling assert_cmd v1.0.1
   Compiling serde_cbor v0.11.1
   Compiling bstr v0.2.13
   Compiling rand_chacha v0.2.2
   Compiling interpolate_name v0.2.3
   Compiling tinytemplate v1.1.0
   Compiling csv v1.1.3
   Compiling rand v0.7.3
   Compiling criterion-plot v0.4.3
   Compiling criterion v0.3.3
   Compiling rav1e v0.4.0-alpha (/build/rav1e-0.4.0-alpha-source)
    Finished release [optimized + debuginfo] target(s) in 3m 33s
     Running target/x86_64-unknown-linux-gnu/release/deps/rav1e-80fe1725405dddd1

running 392 tests
test api::test::flush_low_latency_scene_change_detection ... ok
test api::test::flush_low_latency_no_scene_change ... ok
test api::test::flush_reorder_no_scene_change ... ok
test api::test::flush_reorder_scene_change_detection ... ok
test api::test::flush_unlimited_low_latency_no_scene_change ... ok
test api::test::flush_unlimited_low_latency_scene_change_detection ... ok
test api::test::flush_unlimited_reorder_no_scene_change ... ok
test api::test::guess_frame_subtypes_assert ... ok
test api::test::large_width_assert ... ok
test api::test::flush_unlimited_reorder_scene_change_detection ... ok
test api::test::log_q_exp_overflow ... ok
test api::test::lookahead_size_properly_bounded_16 ... ok
test api::test::lookahead_size_properly_bounded_10 ... ok
test api::test::lookahead_size_properly_bounded_lowlatency_1 ... ok
test api::test::lookahead_size_properly_bounded_lowlatency_8 ... ok
test api::test::max_key_frame_interval_overflow ... ok
test api::test::minimum_frame_delay ... ok
test api::test::output_frameno_incremental_reorder_keyframe_at_0 ... ok
test api::test::lookahead_size_properly_bounded_8 ... ok
test api::test::output_frameno_incremental_reorder_keyframe_at_1 ... ok
test api::test::output_frameno_incremental_reorder_keyframe_at_2 ... ok
test api::test::output_frameno_incremental_reorder_keyframe_at_3 ... ok
test api::test::output_frameno_incremental_reorder_keyframe_at_4 ... ok
test api::test::output_frameno_incremental_reorder_minus_0 ... ok
test api::test::output_frameno_incremental_reorder_minus_1 ... ok
test api::test::output_frameno_incremental_reorder_minus_2 ... ok
test api::test::output_frameno_incremental_reorder_minus_3 ... ok
test api::test::output_frameno_incremental_reorder_minus_4 ... ok
test api::test::output_frameno_incremental_reorder_scene_change_at_0 ... ok
test api::test::output_frameno_incremental_reorder_scene_change_at_1 ... ok
test api::test::output_frameno_incremental_reorder_scene_change_at_2 ... ok
test api::test::output_frameno_incremental_reorder_scene_change_at_3 ... ok
test api::test::output_frameno_incremental_reorder_scene_change_at_4 ... ok
test api::test::output_frameno_low_latency_minus_0 ... ok
test api::test::output_frameno_low_latency_minus_1 ... ok
test api::test::output_frameno_no_scene_change_at_max_len_flash ... ok
test api::test::output_frameno_no_scene_change_at_short_flash_1 ... ok
test api::test::output_frameno_no_scene_change_at_multiple_flashes ... ok
test api::test::output_frameno_no_scene_change_at_short_flash_2 ... ok
test api::test::output_frameno_no_scene_change_at_short_flash_3 ... ok
test api::test::output_frameno_reorder_minus_1 ... ok
test api::test::output_frameno_reorder_minus_0 ... ok
test api::test::output_frameno_reorder_minus_2 ... ok
test api::test::output_frameno_reorder_minus_3 ... ok
test api::test::output_frameno_reorder_minus_4 ... ok
test api::test::output_frameno_reorder_scene_change_at_0 ... ok
test api::test::output_frameno_reorder_scene_change_at_1 ... ok
test api::test::output_frameno_reorder_scene_change_at_2 ... ok
test api::test::output_frameno_reorder_scene_change_at_3 ... ok
test api::test::output_frameno_reorder_scene_change_at_4 ... ok
test api::test::output_frameno_scene_change_past_max_len_flash ... ok
test api::test::pyramid_level_low_latency_minus_0 ... ok
test api::test::pyramid_level_low_latency_minus_1 ... ok
test api::test::pyramid_level_reorder_minus_0 ... ok
test api::test::pyramid_level_reorder_minus_1 ... ok
test api::test::pyramid_level_reorder_minus_2 ... ok
test api::test::pyramid_level_reorder_minus_3 ... ok
test api::test::pyramid_level_reorder_minus_4 ... ok
test api::test::pyramid_level_reorder_scene_change_at_0 ... ok
test api::test::pyramid_level_reorder_scene_change_at_1 ... ok
test api::test::pyramid_level_reorder_scene_change_at_2 ... ok
test api::test::pyramid_level_reorder_scene_change_at_3 ... ok
test api::test::rdo_lookahead_frames_overflow ... ok
test api::test::reservoir_max_overflow ... ok
test api::test::pyramid_level_reorder_scene_change_at_4 ... ok
test api::test::target_bitrate_overflow ... ok
test api::test::switch_frame_interval ... ok
test api::test::tile_cols_overflow ... ok
test api::test::time_base_den_divide_by_zero ... ok
test api::test::zero_frames ... ok
test api::test::zero_width ... ok
test asm::shared::predict::test::pred_matches_u8 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_0_0_avx2_dir_0 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_0_0_avx2_dir_1 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_0_0_avx2_dir_2 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_0_0_avx2_dir_3 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_0_0_avx2_dir_4 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_0_0_avx2_dir_5 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_0_0_avx2_dir_6 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_0_0_avx2_dir_7 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_0_avx2_dir_0 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_0_avx2_dir_1 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_0_avx2_dir_2 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_0_avx2_dir_3 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_0_avx2_dir_4 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_0_avx2_dir_5 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_0_avx2_dir_6 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_0_avx2_dir_7 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_1_avx2_dir_0 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_1_avx2_dir_1 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_1_avx2_dir_2 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_1_avx2_dir_3 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_1_avx2_dir_4 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_1_avx2_dir_5 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_1_avx2_dir_6 ... ok
test asm::x86::cdef::test::cdef_filter_block_dec_1_1_avx2_dir_7 ... ok
test asm::x86::dist::sse::test::weighted_sse_hbd_simd_large ... ok
test api::test::test_opaque_delivery ... ok
test asm::x86::dist::sse::test::weighted_sse_hbd_simd_random ... ok
test asm::x86::dist::sse::test::weighted_sse_hbd_simd_no_scaling ... ok
test asm::x86::dist::sse::test::weighted_sse_simd_large ... ok
test asm::x86::dist::sse::test::weighted_sse_simd_no_scaling ... ok
test asm::x86::dist::test::get_sad_128x128_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_128x128_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_128x128_bd_8_sse2 ... ok
test asm::x86::dist::test::get_sad_128x64_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_128x64_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_16x16_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_16x16_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_16x16_bd_8_sse2 ... ok
test asm::x86::dist::test::get_sad_16x32_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_16x32_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_16x4_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_16x4_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_16x64_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_16x64_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_16x8_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_16x8_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_32x16_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_32x16_bd_8_avx2 ... ok
test asm::x86::dist::sse::test::weighted_sse_simd_random ... ok
test asm::x86::dist::test::get_sad_32x32_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_32x32_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_32x32_bd_8_sse2 ... ok
test asm::x86::dist::test::get_sad_32x64_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_32x64_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_32x8_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_4x16_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_32x8_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_4x16_bd_8_sse2 ... ok
test asm::x86::dist::test::get_sad_4x4_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_4x4_bd_8_sse2 ... ok
test asm::x86::dist::test::get_sad_4x8_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_4x8_bd_8_sse2 ... ok
test asm::x86::dist::test::get_sad_64x128_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_64x128_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_64x16_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_64x16_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_64x32_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_64x32_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_64x64_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_64x64_bd_8_avx2 ... ok
test asm::x86::dist::test::get_sad_64x64_bd_8_sse2 ... ok
test asm::x86::dist::test::get_sad_8x16_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_8x16_bd_8_sse2 ... ok
test asm::x86::dist::test::get_sad_8x32_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_8x32_bd_8_sse2 ... ok
test asm::x86::dist::test::get_sad_8x4_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_8x4_bd_8_sse2 ... ok
test asm::x86::dist::test::get_sad_8x8_bd_10_ssse3 ... ok
test asm::x86::dist::test::get_sad_8x8_bd_8_sse2 ... ok
test asm::x86::dist::test::get_satd_128x128_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_128x128_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_128x64_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_128x64_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_16x16_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_16x16_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_16x32_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_16x32_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_16x4_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_16x4_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_16x64_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_16x64_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_16x8_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_16x8_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_32x16_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_32x16_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_32x32_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_32x32_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_32x64_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_32x64_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_32x8_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_32x8_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_4x16_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_4x16_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_4x4_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_4x4_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_4x4_bd_8_sse4 ... ok
test asm::x86::dist::test::get_satd_4x8_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_4x8_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_64x128_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_64x16_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_64x16_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_64x128_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_64x32_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_64x32_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_64x64_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_64x64_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_8x16_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_8x16_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_8x32_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_8x32_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_8x4_bd_8_avx2 ... ok
test asm::x86::dist::test::get_satd_8x4_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_8x8_bd_10_avx2 ... ok
test asm::x86::dist::test::get_satd_8x8_bd_8_ssse3 ... ok
test asm::x86::dist::test::get_satd_8x8_bd_8_avx2 ... ok
test asm::x86::ec::test::update_cdf_4_sse2 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_regular_bd_8_avx512icl ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_regular_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_regular_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_regular_sharp_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_regular_sharp_bd_8_avx512icl ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_regular_sharp_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_regular_smooth_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_regular_smooth_bd_8_avx512icl ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_regular_smooth_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_sharp_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_sharp_bd_8_avx512icl ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_sharp_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_sharp_regular_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_sharp_regular_bd_8_avx512icl ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_sharp_regular_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_sharp_smooth_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_sharp_smooth_bd_8_avx512icl ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_sharp_smooth_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_smooth_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_smooth_bd_8_avx512icl ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_smooth_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_smooth_regular_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_smooth_regular_bd_8_avx512icl ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_smooth_regular_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_smooth_sharp_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_smooth_sharp_bd_8_avx512icl ... ok
test asm::x86::mc::test::test_rav1e_prep_8tap_smooth_sharp_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_prep_bilin_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_prep_bilin_bd_8_avx512icl ... ok
test asm::x86::mc::test::test_rav1e_prep_bilin_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_regular_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_regular_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_regular_sharp_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_regular_sharp_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_regular_smooth_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_regular_smooth_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_sharp_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_sharp_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_sharp_regular_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_sharp_regular_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_sharp_smooth_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_sharp_smooth_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_smooth_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_smooth_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_smooth_regular_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_smooth_regular_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_smooth_sharp_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_put_8tap_smooth_sharp_bd_8_ssse3 ... ok
test asm::x86::mc::test::test_rav1e_put_bilin_bd_8_avx2 ... ok
test asm::x86::mc::test::test_rav1e_put_bilin_bd_8_ssse3 ... ok
test asm::x86::quantize::test::dequantize_test ... FAILED
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_adst_16x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_adst_16x16_ssse3 ... ok
test asm::x86::transform::forward::test::test_forward_transform_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_dct_16x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_dct_16x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_flipadst_16x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_flipadst_16x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_16x4_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_16x4_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_16x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_16x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_4x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_4x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_4x4_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_4x4_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_4x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_4x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_8x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_8x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_8x4_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_8x4_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_8x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_adst_identity_8x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_adst_16x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_adst_16x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_dct_16x64_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_dct_16x64_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_dct_32x64_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_dct_32x64_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_dct_64x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_dct_64x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_dct_64x32_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_dct_64x32_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_dct_64x64_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_dct_64x64_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_flipadst_16x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_flipadst_16x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_identity_16x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_dct_identity_16x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_adst_16x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_adst_16x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_dct_16x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_dct_16x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_flipadst_16x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_flipadst_16x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_16x4_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_16x4_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_16x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_16x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_4x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_4x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_4x4_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_4x4_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_4x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_4x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_8x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_8x4_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_8x4_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_8x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_8x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_flipadst_identity_8x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_16x4_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_16x4_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_16x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_16x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_4x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_4x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_4x4_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_4x4_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_4x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_4x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_8x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_8x4_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_8x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_8x4_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_8x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_adst_8x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_dct_16x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_dct_16x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_16x4_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_16x4_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_16x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_16x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_4x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_4x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_4x4_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_4x4_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_4x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_4x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_8x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_8x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_8x4_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_8x4_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_8x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_flipadst_8x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_identity_16x32_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_identity_16x32_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_identity_32x16_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_identity_32x16_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_identity_32x32_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_identity_32x32_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_identity_32x8_avx2 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_identity_32x8_ssse3 ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_identity_8x32_avx2 ... ok
test cdef::rust::test::check_max_element ... ok
test context::partition_unit::test::cdf_map ... ok
test context::partition_unit::test::cfl_joint_sign ... ok
test asm::x86::transform::inverse::test::inv_txfm2d_add_identity_identity_8x32_ssse3 ... ok
test dist::test::get_sad_same_u8 ... ok
test dist::test::get_sad_same_u16 ... ok
test dist::test::get_satd_same_u8 ... ok
test ec::test::booleans ... ok
test ec::test::cdf ... ok
test ec::test::mixed ... ok
test encoder::test::check_partition_types_order ... ok
test dist::test::get_satd_same_u16 ... ok
test predict::test::pred_matches_u8 ... ok
test predict::test::pred_max ... ok
test quantize::test::gen_divu_table ... ok
test quantize::test::test_tx_log_scale ... ok
test rate::test::bexp64_vectors ... ok
test quantize::test::test_divu_pair ... ok
test rate::test::blog64_vectors ... ok
test rdo::estimate_rate_test ... ok
test tiling::plane_region::area_test ... ok
test tiling::plane_region::frame_block_offset ... ok
test tiling::tiler::test::from_target_tiles_422 ... ok
test tiling::tiler::test::test_tile_area ... ok
test tiling::tiler::test::test_tile_blocks_area ... ok
test tiling::tiler::test::test_tile_blocks_write ... ok
test tiling::tiler::test::test_tile_iter_len ... ok
test tiling::tiler::test::test_tile_motion_vectors_write ... ok
test tiling::tiler::test::test_tile_restoration_edges ... ok
test tiling::tiler::test::test_tile_restoration_write ... ok
test tiling::tiler::test::test_tile_write ... ok
test tiling::tiler::test::test_tiling_info_from_tile_count ... ok
test rate::test::blog64_bexp64_round_trip ... ok
test tiling::tiler::test::tile_log2_overflow ... ok
test transform::test::log_tx_ratios ... ok
test transform::test::roundtrips_u16 ... ok
test util::align::test::sanity_heap ... ok
test util::align::test::sanity_stack ... ok
test transform::test::roundtrips_u8 ... ok

failures:

---- asm::x86::quantize::test::dequantize_test stdout ----
thread 'asm::x86::quantize::test::dequantize_test' panicked at 'assertion failed: `(left == right)`

Diff < left / right > :
 [
     -22816,
     20280,
     -26168,
     -23800,
     15816,
     -7512,
     -26448,
     23280,
     2728,
     -6648,
     -21544,
     14528,
     -14120,
     -21480,
     32536,
     7816,
     -25216,
     22456,
     5696,
     18568,
     12816,
     28864,
     -19688,
     30408,
     30936,
     -20744,
     26072,
     25416,
     26432,
     2560,
     23456,
     30568,
     -15272,
     -4072,
     1792,
     3120,
     -8704,
     -20640,
     -10400,
     -24064,
     -27480,
     -9544,
     -29328,
     13160,
     19520,
     5112,
     32240,
     -12184,
     -4064,
     11120,
     -17952,
     23808,
     -25544,
     32280,
<    -32767,
>    -32768,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
 ]

', src/asm/x86/quantize.rs:84:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

failures:
    asm::x86::quantize::test::dequantize_test

test result: FAILED. 391 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out

error: test failed, to rerun pass '--lib'

Setting as a draft ... many fixes are required to merge that

Very strange, I guess another package has been updated as I can build:

manim
hydron (will submit an update)

without trouble

Looking at the build output from @SuperSandro2000 (I took the liberty to hide the comment because the output was pretty long, hope no one minds) this seems to be another instance of nondeterminism in rav1e that causes some tests to fail (I've already seen a similar failure once before but the chances are luckily low - I'll try to have a look if upstream is already aware of this).
I'll try to build rav1e and ffmpeg-full with this, if it works it should be good to go.
@freezeboy any particular reason for this PR (I'm just a bit surprised)? Do you depend on cargo-c and would you be interested in maintaining it?

@primeos Not really needed it, just trying to get as much updated packages as possible.
I can also maintain it, if it helps

I just checked my release feed and didn't see a new entry. Turns out I already applied this update to staging: 4454fecc85b0959d38fa6bef06521e597b7f75a5

@primeos Not really needed it, just trying to get as much updated packages as possible.
I can also maintain it, if it helps

Ok, in that case it's probably better to focus on other packages (I'm subscribed to release updates and this package is only required for rav1e anyway). But thanks for the offer :)


Merge prTesting_201901021559 branch to master branch

OPS Build status updates of commit 096b4cd:
:clock10: Preparing: average preparing time is 52 sec(s)

OPS Build status updates of commit 096b4cd:
:clock10: Incremental building: average incremental building time is 16 sec(s)

OPS Build status updates of commit 096b4cd:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

split/updateTestRef.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add a getOptions method to Wrapper

As discussed on #34, the idea of having a getOptions method came up, in the same line than #27 for getAttributes and getProps. This would be an abstraction to access the wrapper.vm.$options internal variable. One of the use cases is to test property validation specs, but there might be others.
What notation to use?

Concise: .options(), attributes(), props()...
Verbose .getOptions(), getAttributes(), getProps()...

Let's discuss it

My feelings on this is that we shouldn't add too many aliases. I don't think this a common use case, like props or attributes, and it's not much more code to access the $options object on the vm:
wrapper.vm.$options
wrapper.options()


Add lezhnev74/openapi-psr7-validator

https://github.com/lezhnev74/openapi-psr7-validator
This package validates PSR-7 messages (HTTP request/response) against OpenAPI specifications.
It has some nice tracking and mentions, like this:
https://twitter.com/philsturgeon/status/1125287278631378944
It is tested and actively developed.

Based on https://github.com/lezhnev74/openapi-psr7-validator/releases not maintained anymore?


break outside of a given block should raise an exception, not generate a syntax error

break outside of a given block should raise an exception, not generate a syntax error.  For example:
1 or break;

Fixed in v1.013