text:
ERROR: /data/Installers/tensorflow/tensorflow/core/kernels/BUILD:2602:1: C++ compilation of rule '//tensorflow/core/kernels:cwise_op' failed (Exit 1): computecpp failed

ERROR: /data/Installers/tensorflow/tensorflow/core/kernels/BUILD:2602:1: C++ compilation of rule '//tensorflow/core/kernels:cwise_op' failed (Exit 1): computecpp failed: error executing command
  (cd /home/znmeb/.cache/bazel/_bazel_znmeb/47854f00488658b16693bf4601e6f0fd/execroot/org_tensorflow && \
  exec env - \
    COMPUTECPP_TOOLKIT_PATH=/usr/local/computecpp \
    HOST_CXX_COMPILER=/usr/bin/g++ \
    HOST_C_COMPILER=/usr/bin/gcc \
    LD_LIBRARY_PATH=/usr/local/computecpp/lib \
    PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/znmeb/miniconda3/bin \
    PWD=/proc/self/cwd \
    PYTHON_BIN_PATH=/usr/bin/python \
    PYTHON_LIB_PATH=/usr/lib/python3.6/site-packages \
    TF_NEED_COMPUTECPP=1 \
    TF_NEED_CUDA=0 \
    TF_NEED_OPENCL_SYCL=1 \

Full build log is at https://gist.github.com/znmeb/0d003c1eb496793dcca34a4f0ef4b293
Notes:

This succeeded a couple of days ago. System is Arch Linux.
Branch is dev/amd_gpu.
First page of git log:

commit e5137e1a58d8c61e0f6ec718d4e2a970c209d988 (HEAD -> dev/amd_gpu, origin/dev/amd_gpu)
Author: Romain Biessy <romain.biessy@codeplay.com>
Date:   Mon Dec 18 15:08:38 2017 +0000

    [SYCL] Add EIGEN_HAS_CXX11_MATH flag (#191)

commit 6631d9c054c9b0531e8f9fd89031bb7f0c4612e1
Author: Luke Iwanski <luke@codeplay.com>
Date:   Fri Dec 15 21:53:31 2017 +0000

    Fixes https://github.com/lukeiwanski/tensorflow/issues/189

commit e8852d3eae9dc357fb7e2f0f68b5f9766baf1371
Author: Luke Iwanski <luke@codeplay.com>
Date:   Wed Dec 13 11:33:40 2017 +0000

    Fixed typo

commit c8e23508a409b24d026d0b7efc2cf0d9d08a96fa
Author: Luke Iwanski <luke@codeplay.com>
Date:   Wed Dec 13 04:35:33 2017 +0000

    [SYCL][Docker] Introducing Dockerfile for AMD OpenCL on Ubuntu16.04

Hi @znmeb thanks for the report,
could you provide the log after the error? ( there should be some sort of compilation error either from computecpp or your host compiler )

@lukeiwanski The error's not in the gist? I thought I had the whole logfile. The bazel command is
bazel build --config=opt --config=sycl --verbose_failures \
  //tensorflow/tools/pip_package:build_pip_package 2>&1 | tee $HERE/tfbuild.log

and the gist is $HERE/tfbuild.log.
Try https://gist.githubusercontent.com/znmeb/0d003c1eb496793dcca34a4f0ef4b293/raw/9ebf59266f4ad8c330b472d0471bd1185fc89995/tfbuild.log
and do a save page.

I think this is the whole thing - they weren't kidding when they said "verbose":
[5,939 / 6,008] Compiling tensorflow/core/kernels/argmax_op.cc; 136s local ... (8 actions running)
ERROR: /data/Installers/tensorflow/tensorflow/core/kernels/BUILD:2602:1: C++ compilation of rule '//tensorflow/core/kernels:cwise_op' failed (Exit 1): computecpp failed: error executing command
  (cd /home/znmeb/.cache/bazel/_bazel_znmeb/47854f00488658b16693bf4601e6f0fd/execroot/org_tensorflow && \
  exec env - \
    COMPUTECPP_TOOLKIT_PATH=/usr/local/computecpp \
    HOST_CXX_COMPILER=/usr/bin/g++ \
    HOST_C_COMPILER=/usr/bin/gcc \
    LD_LIBRARY_PATH=/usr/local/computecpp/lib \
    PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/znmeb/miniconda3/bin \
    PWD=/proc/self/cwd \
    PYTHON_BIN_PATH=/usr/bin/python \
    PYTHON_LIB_PATH=/usr/lib/python3.6/site-packages \
    TF_NEED_COMPUTECPP=1 \
    TF_NEED_CUDA=0 \
    TF_NEED_OPENCL_SYCL=1 \
  external/local_config_sycl/crosstool/computecpp -fPIE -fno-omit-frame-pointer -Wall -g0 -O2 -DNDEBUG -ffunction-sections -fdata-sections -DGEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK '-march=native' '-std=c++11' -MD -MF bazel-out/k8-py3-opt/bin/tensorflow/core/kernels/_objs/cwise_op/tensorflow/core/kernels/cwise_op_erf.pic.d '-frandom-seed=bazel-out/k8-py3-opt/bin/tensorflow/core/kernels/_objs/cwise_op/tensorflow/core/kernels/cwise_op_erf.pic.o' -fPIC -DEIGEN_MPL2_ONLY -D__CLANG_SUPPORT_DYN_ANNOTATION__ -DTENSORFLOW_USE_JEMALLOC -DTENSORFLOW_USE_ABSL -DTF_USE_SNAPPY -DPLATFORM_LINUX -DENABLE_CURL_CLIENT -DENABLE_NO_ENCRYPTION -iquote . -iquote bazel-out/k8-py3-opt/genfiles -iquote external/nsync -iquote bazel-out/k8-py3-opt/genfiles/external/nsync -iquote external/bazel_tools -iquote bazel-out/k8-py3-opt/genfiles/external/bazel_tools -iquote external/eigen_archive -iquote bazel-out/k8-py3-opt/genfiles/external/eigen_archive -iquote external/local_config_sycl -iquote bazel-out/k8-py3-opt/genfiles/external/local_config_sycl -iquote external/com_google_absl -iquote bazel-out/k8-py3-opt/genfiles/external/com_google_absl -iquote external/jemalloc -iquote bazel-out/k8-py3-opt/genfiles/external/jemalloc -iquote external/gif_archive -iquote bazel-out/k8-py3-opt/genfiles/external/gif_archive -iquote external/jpeg -iquote bazel-out/k8-py3-opt/genfiles/external/jpeg -iquote external/protobuf_archive -iquote bazel-out/k8-py3-opt/genfiles/external/protobuf_archive -iquote external/com_googlesource_code_re2 -iquote bazel-out/k8-py3-opt/genfiles/external/com_googlesource_code_re2 -iquote external/farmhash_archive -iquote bazel-out/k8-py3-opt/genfiles/external/farmhash_archive -iquote external/fft2d -iquote bazel-out/k8-py3-opt/genfiles/external/fft2d -iquote external/highwayhash -iquote bazel-out/k8-py3-opt/genfiles/external/highwayhash -iquote external/png_archive -iquote bazel-out/k8-py3-opt/genfiles/external/png_archive -iquote external/zlib_archive -iquote bazel-out/k8-py3-opt/genfiles/external/zlib_archive -iquote external/curl -iquote bazel-out/k8-py3-opt/genfiles/external/curl -iquote external/boringssl -iquote bazel-out/k8-py3-opt/genfiles/external/boringssl -iquote external/jsoncpp_git -iquote bazel-out/k8-py3-opt/genfiles/external/jsoncpp_git -iquote external/aws -iquote bazel-out/k8-py3-opt/genfiles/external/aws -isystem external/nsync/public -isystem bazel-out/k8-py3-opt/genfiles/external/nsync/public -isystem external/bazel_tools/tools/cpp/gcc3 -isystem external/eigen_archive -isystem bazel-out/k8-py3-opt/genfiles/external/eigen_archive -isystem external/local_config_sycl/sycl -isystem bazel-out/k8-py3-opt/genfiles/external/local_config_sycl/sycl -isystem external/local_config_sycl/sycl/include -isystem bazel-out/k8-py3-opt/genfiles/external/local_config_sycl/sycl/include -isystem external/jemalloc/include -isystem bazel-out/k8-py3-opt/genfiles/external/jemalloc/include -isystem external/gif_archive/lib -isystem bazel-out/k8-py3-opt/genfiles/external/gif_archive/lib -isystem external/protobuf_archive/src -isystem bazel-out/k8-py3-opt/genfiles/external/protobuf_archive/src -isystem external/farmhash_archive/src -isystem bazel-out/k8-py3-opt/genfiles/external/farmhash_archive/src -isystem external/png_archive -isystem bazel-out/k8-py3-opt/genfiles/external/png_archive -isystem external/zlib_archive -isystem bazel-out/k8-py3-opt/genfiles/external/zlib_archive -isystem external/curl/include -isystem bazel-out/k8-py3-opt/genfiles/external/curl/include -isystem external/boringssl/src/include -isystem bazel-out/k8-py3-opt/genfiles/external/boringssl/src/include -isystem external/jsoncpp_git/include -isystem bazel-out/k8-py3-opt/genfiles/external/jsoncpp_git/include -isystem external/aws/aws-cpp-sdk-core/include -isystem bazel-out/k8-py3-opt/genfiles/external/aws/aws-cpp-sdk-core/include -isystem external/aws/aws-cpp-sdk-s3/include -isystem bazel-out/k8-py3-opt/genfiles/external/aws/aws-cpp-sdk-s3/include -DEIGEN_AVOID_STL_ARRAY -Iexternal/gemmlowp -Wno-sign-compare -fno-exceptions '-ftemplate-depth=900' -msse3 -pthread -Wno-builtin-macro-redefined '-D__DATE__="redacted"' '-D__TIMESTAMP__="redacted"' '-D__TIME__="redacted"' -c tensorflow/core/kernels/cwise_op_erf.cc -o bazel-out/k8-py3-opt/bin/tensorflow/core/kernels/_objs/cwise_op/tensorflow/core/kernels/cwise_op_erf.pic.o)
/usr/local/computecpp/bin/compute++: /usr/lib/libtinfo.so.5: no version information available (required by /usr/local/computecpp/bin/compute++)
/usr/local/computecpp/bin/compute++: /usr/lib/libtinfo.so.5: no version information available (required by /usr/local/computecpp/bin/compute++)
/usr/local/computecpp/bin/compute++: /usr/lib/libtinfo.so.5: no version information available (required by /usr/local/computecpp/bin/compute++)
/usr/local/computecpp/bin/compute++: /usr/lib/libtinfo.so.5: no version information available (required by /usr/local/computecpp/bin/compute++)
In file included from <built-in>:1:
In file included from ./tensorflow/core/kernels/cwise_op_erf.cc:16:
In file included from ./tensorflow/core/kernels/cwise_ops_common.h:24:
In file included from ./tensorflow/core/kernels/cwise_ops_sycl_common.h:23:
In file included from ./third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/Tensor:32:
In file included from external/eigen_archive/unsupported/Eigen/CXX11/../SpecialFunctions:46:
external/eigen_archive/unsupported/Eigen/CXX11/../src/SpecialFunctions/SpecialFunctionsImpl.h:342:5: error: static_assert failed "THIS_TYPE_IS_NOT_SUPPORTED"
    EIGEN_STATIC_ASSERT((internal::is_same<Scalar, Scalar>::value == false),
    ^                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
external/eigen_archive/unsupported/Eigen/CXX11/../../../Eigen/src/Core/util/StaticAssert.h:32:40: note: expanded from macro 'EIGEN_STATIC_ASSERT'
    #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
                                       ^             ~

Yes verbose is quite.. that :)
I fixed this issue: https://github.com/lukeiwanski/tensorflow/commit/24edbf67bc875db5d67882b82517803c0e3d20cc
can you give it a spin now?

The build completed successfully! I'm going to run it on CIFAR10 now.

Screenshot of radeontop during cifar10 training - this is the steady-state. I'm impressed.

Hello, I got a error with the same build command as yours. The command is
bazel build --config=opt --config=sycl --verbose_failures //tensorflow/tools/pip_package:build_pip_package 2>&1 | tee ~/build.log
with the option --config=opt I got the error about protobuf
ERROR: /home/huoyushi/.cache/bazel/_bazel_huoyushi/0e0c71aaae1b5fda4e6d41693b9a0952/external/protobuf_archive/BUILD:656:1: undeclared inclusion(s) in rule '@protobuf_archive//:python/google/protobuf/internal/_api_implementation.so':
this rule is missing dependency declarations for the following files included by 'external/protobuf_archive/python/google/protobuf/internal/api_implementation.cc':
bazel verison 0.8.0 . ubuntu 16.04    gcc 5.4.0  can you help  @znmeb

@huoyushi I can't help but I suspect @lukeiwanski can ;-) What's your default Python? I used 3.6.3 from Arch; Ubuntu's is probably older.

@huoyushi can you share exact fail message?

@lukeiwanski
I use anaconda create a virtual python environment version is 3.6.3
command:
bazel build --config=opt --config=sycl --verbose_failures //tensorflow/tools/pip_package:build_pip_package 2>&1 | tee ~/tfbuild.log
python 3.6.3 gcc 5.4.0 ubuntu 16.04  bazel 0.9.0
this is error details
ERROR: /home/huoyushi/.cache/bazel/_bazel_huoyushi/0e0c71aaae1b5fda4e6d41693b9a0952/external/protobuf_archive/BUILD:656:1: undeclared inclusion(s) in rule '@protobuf_archive//:python/google/protobuf/internal/_api_implementation.so':
this rule is missing dependency declarations for the following files included by 'external/protobuf_archive/python/google/protobuf/internal/api_implementation.cc':
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/Python.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/patchlevel.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pyconfig.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pymacconfig.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pyport.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pymacro.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pyatomic.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pymath.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pytime.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/object.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pymem.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/objimpl.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/typeslots.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pyhash.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pydebug.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/bytearrayobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/bytesobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/unicodeobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/longobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/longintrepr.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/boolobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/floatobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/complexobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/rangeobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/memoryobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/tupleobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/listobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/dictobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/odictobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/enumobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/setobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/methodobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/moduleobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/funcobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/classobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/fileobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pycapsule.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/traceback.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pystate.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/sliceobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/cellobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/iterobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/genobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/descrobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/warnings.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/weakrefobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/structseq.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/namespaceobject.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/codecs.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pyerrors.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pyarena.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/modsupport.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pythonrun.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pylifecycle.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/ceval.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/sysmodule.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/osmodule.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/intrcheck.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/import.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/abstract.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/bltinmodule.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/compile.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/code.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/eval.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pyctype.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pystrtod.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pystrcmp.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/dtoa.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/fileutils.h'
'/home/huoyushi/.conda/envs/tensorflowwithopencl/include/python3.6m/pyfpe.h'
Target //tensorflow/tools/pip_package:build_pip_package failed to build
INFO: Elapsed time: 2719.448s, Critical Path: 54.78s
FAILED: Build did NOT complete successfull

I had some problems building inside a conda environment, so I built using the system Python. You will need "numpy", "pip" and "wheel" installed in your Python stack for the build to work.

Thanks for help me. I will try with system python @znmeb

@lukeiwanski I  recurrent the error about protobuf compile with branch dev/amd_gpu. this is detail
command
bazel build -c opt --config=sycl //tensorflow/tools/pip_package:build_pip_package 2>&1 | tee ~/tfbuild.log
enviroment
ubuntu 16.04 gcc 5.4.0 python 3.6.3  bazel 0.9.0
[1,606 / 1,663] Compiling tensorflow/core/lib/core/threadpool.cc [for host]; 5s local ... (2 actions running)
ERROR: /home/huoyushi/.cache/bazel/_bazel_huoyushi/0e0c71aaae1b5fda4e6d41693b9a0952/external/protobuf_archive/BUILD:656:1: undeclared inclusion(s) in rule '@protobuf_archive//:python/google/protobuf/internal/_api_implementation.so':
this rule is missing dependency declarations for the following files included by 'external/protobuf_archive/python/google/protobuf/internal/api_implementation.cc':
'/home/huoyushi/anaconda3/include/python3.6m/Python.h'
'/home/huoyushi/anaconda3/include/python3.6m/patchlevel.h'
'/home/huoyushi/anaconda3/include/python3.6m/pyconfig.h'
'/home/huoyushi/anaconda3/include/python3.6m/pymacconfig.h'
'/home/huoyushi/anaconda3/include/python3.6m/pyport.h'
'/home/huoyushi/anaconda3/include/python3.6m/pymacro.h'
'/home/huoyushi/anaconda3/include/python3.6m/pyatomic.h'
'/home/huoyushi/anaconda3/include/python3.6m/pymath.h'
'/home/huoyushi/anaconda3/include/python3.6m/pytime.h'
'/home/huoyushi/anaconda3/include/python3.6m/object.h'
'/home/huoyushi/anaconda3/include/python3.6m/pymem.h'
'/home/huoyushi/anaconda3/include/python3.6m/objimpl.h'
'/home/huoyushi/anaconda3/include/python3.6m/typeslots.h'
'/home/huoyushi/anaconda3/include/python3.6m/pyhash.h'
'/home/huoyushi/anaconda3/include/python3.6m/pydebug.h'
'/home/huoyushi/anaconda3/include/python3.6m/bytearrayobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/bytesobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/unicodeobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/longobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/longintrepr.h'
'/home/huoyushi/anaconda3/include/python3.6m/boolobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/floatobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/complexobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/rangeobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/memoryobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/tupleobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/listobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/dictobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/odictobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/enumobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/setobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/methodobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/moduleobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/funcobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/classobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/fileobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/pycapsule.h'
'/home/huoyushi/anaconda3/include/python3.6m/traceback.h'
'/home/huoyushi/anaconda3/include/python3.6m/pystate.h'
'/home/huoyushi/anaconda3/include/python3.6m/sliceobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/cellobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/iterobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/genobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/descrobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/warnings.h'
'/home/huoyushi/anaconda3/include/python3.6m/weakrefobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/structseq.h'
'/home/huoyushi/anaconda3/include/python3.6m/namespaceobject.h'
'/home/huoyushi/anaconda3/include/python3.6m/codecs.h'
'/home/huoyushi/anaconda3/include/python3.6m/pyerrors.h'
'/home/huoyushi/anaconda3/include/python3.6m/pyarena.h'
'/home/huoyushi/anaconda3/include/python3.6m/modsupport.h'
'/home/huoyushi/anaconda3/include/python3.6m/pythonrun.h'
'/home/huoyushi/anaconda3/include/python3.6m/pylifecycle.h'
'/home/huoyushi/anaconda3/include/python3.6m/ceval.h'
'/home/huoyushi/anaconda3/include/python3.6m/sysmodule.h'
'/home/huoyushi/anaconda3/include/python3.6m/osmodule.h'
'/home/huoyushi/anaconda3/include/python3.6m/intrcheck.h'
'/home/huoyushi/anaconda3/include/python3.6m/import.h'
'/home/huoyushi/anaconda3/include/python3.6m/abstract.h'
'/home/huoyushi/anaconda3/include/python3.6m/bltinmodule.h'
'/home/huoyushi/anaconda3/include/python3.6m/compile.h'
'/home/huoyushi/anaconda3/include/python3.6m/code.h'
'/home/huoyushi/anaconda3/include/python3.6m/eval.h'
'/home/huoyushi/anaconda3/include/python3.6m/pyctype.h'
'/home/huoyushi/anaconda3/include/python3.6m/pystrtod.h'
'/home/huoyushi/anaconda3/include/python3.6m/pystrcmp.h'
'/home/huoyushi/anaconda3/include/python3.6m/dtoa.h'
'/home/huoyushi/anaconda3/include/python3.6m/fileutils.h'
'/home/huoyushi/anaconda3/include/python3.6m/pyfpe.h'
Target //tensorflow/tools/pip_package:build_pip_package failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 2208.207s, Critical Path: 44.15s
FAILED: Build did NOT complete successfully
But I try compiling with master branch from official git
command
bazel build -c opt  //tensorflow/tools/pip_package:build_pip_package 2>&1 | tee ~/tfbuild.log
this can build successfully.So can you help me handle the error with option sycl. Thanks anyway @lukeiwanski

authors: huoyushi lukeiwanski znmeb

repo: lukeiwanski/tensorflow


text:
atuin + zsh-autosuggestions

Something from here should work: https://pastebin.com/RXxU6rT4

Details

## .zshrc
source "$ZPLUGINS/zsh-autosuggestions/zsh-autosuggestions.zsh"

# Atuin (history replacement)
# Keeps the history in a sqlite db (Needs to be after zsh-autosuggestions)
source "$ZDOTDIR/plugins/atuin.zsh"

# bind UP and DOWN arrow keys to history search
bindkey "$terminfo[kcuu1]" atuin_fzf_inline_up
bindkey "$terminfo[kcud1]" atuin_fzf_inline_down
bindkey '^[[A' atuin_fzf_inline_up
bindkey '^[[B' atuin_fzf_inline_down

bindkey '^r' _atuin_search_widget  # Default
bindkey '^[r' _atuin_fzf  # Using fzf interactively

ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=#555'
ZSH_AUTOSUGGEST_STRATEGY=('atuin')
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE='20'
ZSH_AUTOSUGGEST_USE_ASYNC='true'
ZSH_AUTOSUGGEST_MANUAL_REBIND='true'

## plugins/atuin.zsh
# Enable atuin history plugin
# Import atuin history into zsh array
# Support multiline commands
# Support interactive atuin, interactive fzf,
#   inline history navigation with or without fzf filtering by query
# Support zsh-autosuggestions using atuin history
# Support highlighting of query terms

## Source the atuin zsh plugin
# Equivalent to `eval "$(atuin init zsh)"` but a little bit faster (~2ms)
# Yeah, probably not worth it but it's already written so ¯\_(ツ)_/¯
atuin_version="# $(atuin --version)"
current_atuin_version="$(head -1 $ZCACHE/_atuin_init_zsh.zsh)"
if [[ "$atuin_version" != "$current_atuin_version" ]]; then
    # Check for new atuin version and update the cache
    echo "$atuin_version" > "$ZCACHE/_atuin_init_zsh.zsh"
    atuin init zsh >> "$ZCACHE/_atuin_init_zsh.zsh"
fi
export ATUIN_NOBIND='true'
source "$ZCACHE/_atuin_init_zsh.zsh"

## Import atuin history into zsh array
declare -U _history_atuin # -U indicates unique array so duplicates are not inserted
# Get the last 1500 (More than the 'max_lenght' below, to account for duplicates) commands from the atuin history database
# Separate each command with ';;\n;;' instead of '\n', this allows support for multiline commands.
#  Split them using the same separator and insert them into the array: (@pws:;;\n;;:).
# Sort them by timestamp in descending order (Last executed command first), this helps with:
#   Limiting the number of sqlite rows (otherwise it woulds trim the latest rows)
#   As latest commands are inserted first they have preference to earlier ones when checking for duplicates.
#   Bonus points for simplifying 'Limit history array size' below.
_history_atuin=("${(@pws:;;\n;;:)"$(sqlite3 --newline $';;\n;;' ~/.local/share/atuin/history.db 'SELECT command FROM history ORDER BY timestamp DESC LIMIT 2000')"}")

# Redeclare as normal array, this allows us to store new duplicate commands for keeping a better session history.
# Ofc those duplicates get removed when opening a new terminal.
declare -a history_atuin

## Limit history array size to 1000
# _history_atuin:0:1000, Get slice from 0 to 1000, effectively trimming it's size
# (@Oa), Reverse the order so last executed commands are first
history_atuin=(${(@Oa)_history_atuin:0:1000})
unset _history_atuin

if [[ -z $history_atuin ]]; then
    echo 'Error: Atuin history array is empty'
    echo 'Atuin may not be installed, history not imported, wrong path for the database or something else.'
    exit
fi

## Keep history array updated with new executed commands
_atuin_update_history_preexec(){
    if [[ $history_atuin[-1] != "$1" ]]; then
        # Store the new command in history if it's different than the last one
        # This basically avoids adding duplicate commands one right after the other
        history_atuin+=("$1") # Store the command in our zsh array (cache)
    fi
}
add-zsh-hook preexec _atuin_update_history_preexec

## Set selected command as new buffer and move the cursor to the end
__atuin_set_buffer() {
    BUFFER="$1"
    CURSOR=${#BUFFER}
}

## Invoque fzf with atuin history
_atuin_fzf() {
    # Print history splitting commands with nulls `print -rNC1 -- $var`
    # Get the history inverted `${(@Oa)history_atuin}` for the print command.
    # Get and parse history using nulls as separators
    # Nulls are used as separators instead of newlines to keep support for multiline commands
    output=$(print -rNC1 -- "${(@Oa)history_atuin}" | fzf --read0)
    __atuin_set_buffer "$output"
}
zle -N _atuin_fzf

typeset -g _atuin_fzf_inline_query
typeset -g _atuin_fzf_inline_query_matches
typeset -g _atuin_fzf_inline_result
typeset -i _atuin_fzf_inline_result_index=0

## Emulate history-substring-search but with atuin results
__atuin_fzf_inline() {
    typeset -g suggestion=''
    local add_or_substract="$1"

    # Move the cursor instead of changing history command
    #  but only if he current command is multiline, and we are not in the first or last line
    #   (depending if we are moving up or downon the history)
    if (( $BUFFERLINES > 1 )); then
        local lines_before_end
        if [[ "$add_or_substract" == '+' ]]; then
            lines_before_end=(${(f)LBUFFER})
        else
            lines_before_end=(${(f)RBUFFER})
        fi
        if (( ${#lines_before_end} > 1 )); then
            if [[ "$add_or_substract" == '+' ]]; then
                zle up-line    # zsh builtin, move cursor one line up
            else
                zle down-line  # zsh builtin, move cursor one line down
            fi
            return
        fi
    fi

    # Add or substract one from the index, depending if we are going up or down on the history
    _atuin_fzf_inline_result_index=$(( _atuin_fzf_inline_result_index $add_or_substract 1 ))

    if (( _atuin_fzf_inline_result_index < 0 )); then
        # Drop the current query, clear the buffer.
        _atuin_fzf_inline_result_index=0
        unset _atuin_fzf_inline_query_matches
        __atuin_set_buffer ''
        return
    elif [[ "$BUFFER" == "$_atuin_fzf_inline_result" ]]; then
        if (( _atuin_fzf_inline_result_index == 0 )); then
            __atuin_set_buffer "$_atuin_fzf_inline_query"
            return
        fi
    else
        _atuin_fzf_inline_result_index=1
        unset _atuin_fzf_inline_query_matches
        _atuin_fzf_inline_query="$BUFFER"
    fi

    ## Get the history array we are gonna use
    local query="$_atuin_fzf_inline_query"
    local index="$_atuin_fzf_inline_result_index"
    if [[ -n "$query" ]]; then # Filter commands by query using fzf
        # Create array of matches, filtered by fzf if not already created
        #   Print history splitting commands with nulls `print -rNC1 -- $var`
        #   Filter results with fzf, using nulls as separators for both input and output
        #   Create array using nulls as separators `(@0)`
        # Nulls are used as separators instead of newlines to keep support for multiline commands
        if [[ -z "$_atuin_fzf_inline_query_matches" ]]; then
            _atuin_fzf_inline_query_matches=("${(@0)"$(print -rNC1 -- "$history_atuin[@]" | fzf --read0 --print0 --exact --no-sort --filter="$query")"}")
            shift -p _atuin_fzf_inline_query_matches # Pop the last item, it's an empty string
        fi
        matches='_atuin_fzf_inline_query_matches'
    else # No need to filter with fzf if there is no query, use the entire history array
        matches='history_atuin'
    fi

    max_index=${#${(P)matches}} # Get size of array named $matches
    if (( index > max_index )); then
        _atuin_fzf_inline_result_index="$max_index"
        # We already reached the end of the history, do nothing
        return
    fi

    ## Get next command from history
    # From array named $matches get element -$index, negative number to start from the last element
    _atuin_fzf_inline_result=${${(P)matches}[-$index]}

    ## Set command as current edit buffer
    __atuin_set_buffer "$_atuin_fzf_inline_result"

    # Find all matches of $query in $BUFFER and highlight them
    if [[ -n "$query" ]]; then
        _zsh_highlight # This needs to be before region_highlight+= or the added highlight will be ignored, does _zsh_highlight clear the region_highlight array?.
        local last_match_end=0
        while true; do
            # (i) Search $query inside $BUFFER and return the index of the first matching character
            # (e) Match using $query as a literal string (i.e. query=* will match the literal character `*`)
            # (b:last_match_end:) Start matching from index=$last_match_end
            local match_start="${BUFFER[(ieb:last_match_end:)${query}]}"
            if (( $match_start <= ${#BUFFER} )); then
                local match_end=$(( $match_start + ${#query} ))
                last_match_end=$match_end
                # Highlight from index $match_start to $match_end, they need an offset of 1
                region_highlight+=("$(($match_start - 1)) $(($match_end - 1)) underline") # bold
            else
                # The query didn't match anything
                break
            fi
        done
    fi
}

atuin_fzf_inline_up() {
    __atuin_fzf_inline '+'
}
atuin_fzf_inline_down() {
    __atuin_fzf_inline '-'
}

zle -N atuin_fzf_inline_up
zle -N atuin_fzf_inline_down

## Add compatibility with zsh-autosuggest

# Tell  autosuggest to clear suggestions when atuin changes the edit buffer
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=('atuin_fzf_inline_up')
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=('atuin_fzf_inline_down')

_zsh_autosuggest_strategy_atuin() {
    # Straight copy from: https://github.com/zsh-users/zsh-autosuggestions/blob/master/src/strategies/history.zsh
    # Only changes are the history source and inverting the matching order.
    #
    # Copyright (c) 2013 Thiago de Arruda
    # Copyright (c) 2016-2021 Eric Freese

    # Permission is hereby granted, free of charge, to any person
    # obtaining a copy of this software and associated documentation
    # files (the "Software"), to deal in the Software without
    # restriction, including without limitation the rights to use,
    # copy, modify, merge, publish, distribute, sublicense, and/or sell
    # copies of the Software, and to permit persons to whom the
    # Software is furnished to do so, subject to the following
    # conditions:

    # The above copyright notice and this permission notice shall be
    # included in all copies or substantial portions of the Software.

    # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
    # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
    # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
    # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
    # OTHER DEALINGS IN THE SOFTWARE.
    #

    # Reset options to defaults and enable LOCAL_OPTIONS
    emulate -L zsh

    # Enable globbing flags so that we can use (#m) and (x~y) glob operator
    setopt EXTENDED_GLOB

    # Escape backslashes and all of the glob operators so we can use
    # this string as a pattern to search the $history associative array.
    # - (#m) globbing flag enables setting references for match data
    # TODO: Use (b) flag when we can drop support for zsh older than v5.0.8
    local prefix="${1//(#m)[\\*?[\]<>()|^~#]/\\$MATCH}"

    # Get the history items that match the prefix, excluding those that match
    # the ignore pattern
    local pattern="$prefix*"
    if [[ -n $ZSH_AUTOSUGGEST_HISTORY_IGNORE ]]; then
        pattern="($pattern)~($ZSH_AUTOSUGGEST_HISTORY_IGNORE)"
    fi

    # Give the first history item matching the pattern as the suggestion
    # - (r) subscript flag makes the pattern match on values
    # - (R) same as r, but gives the last match
    typeset -g suggestion="${history_atuin[(R)$pattern]}"
}

source: gharchive/issue

repo: lukekarrys/dotfiles

license: mit

license_type: permissive

license_source: bigquery


text:
Update Asset Preparation + Token Type Guides

Creates "Working with Assets Section" within Learn Section (Moved 3 Files):

Updates Token Type Guide

Took over changes and fixed merge conflicts in #992

Took over changes and fixed merge conflicts in #992

source: gharchive/pull-request

repo: lukso-network/docs

license_source: github-api


text:
Improve node up msg

Atm, the CLI output will show "geth started" + "node is running"
But it is based on just having a successful call to geth binary. If geth exits 0.5sec later for some config error, user won't know and will think the node is up while it is not.
This is simply to change this message which can be wrong.
Current:

-> Misleading log messages.

Will close in favour of:
https://app.clickup.com/t/863grp796

repo: lukso-network/tools-lukso-cli


text:
How to controll route with bloc(stream)?

Hi,
I was using bloc as state management. AuthBloc is my driver for my route. I want listen authbloc with bloclistener then move a new route based on auth status. I implemented bloclistener but it's only triggered when the new route is ended to vrouter if I added it to the
VRouter(
  beforeEnter: BlocListener<AuthBloc, AuthState>(
    listener: (context, state) {
      print('bloc listener : ' + state.toString());
      state.when(
        tryLogOut: (s) => context.vRouter.to('/loading'),
        initial: () => context.vRouter.to('/loading'),
        loading: () => context.vRouter.to('/loading'),
        unAuhtenticated: (s) => context.vRouter.to('/landing'),
        auhtenticated: (s) => context.vRouter.to('/home'),
        error: (s) => context.vRouter.to('error', queryParameters: {'error': s}),
        tryLogin: (loginProvider, e, p) => context.vRouter.to(
          '/loading',
          // queryParameters: {'isItLoginRegister': 'true'}
        ),
        tryRegister: (loginProvider, email, pasword) => context.vRouter.to(
          '/loading',
          // queryParameters: {'isItLoginRegister': 'true'}
        ),
      );
    },
  ),
  routes: [...],
);

I cant add bloclistener above to the VRouter cause its cant use Router.to before init.I tried builder method of the VRouter and its throw null checker error :/

beforeEnter is indeed called only when the route changes.
VRouter.builder should work, however I seem to have an issue where the first state of the bloc is not taken into account.
What I would recommend, which works 100% as far as I know, is to use a GlobalKey.

Here is an example

import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:vrouter/vrouter.dart';

class AuthBloc extends Bloc<AuthEvent, AuthState> {
  AuthBloc() : super(AuthState(isAuthenticated: false));

  @override
  Stream<AuthState> mapEventToState(AuthEvent event) async* {
    if (event is LoginEvent) {
      yield AuthState(isAuthenticated: true);
    } else {
      yield AuthState(isAuthenticated: false);
    }
  }
}

class AuthState extends Equatable {
  final bool isAuthenticated;

  AuthState({required this.isAuthenticated});

  @override
  List<Object?> get props => [isAuthenticated];
}

abstract class AuthEvent extends Equatable {}

class LoginEvent extends AuthEvent {
  @override
  List<Object?> get props => [];
}

class LogoutEvent extends AuthEvent {
  @override
  List<Object?> get props => [];
}

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final _routerKey = GlobalKey<VRouterState>();

  @override
  Widget build(BuildContext context) {
    return BlocProvider(
      create: (_) => AuthBloc(),
      child: BlocListener<AuthBloc, AuthState>(
        listener: (context, state) {
          _routerKey.currentState!.to(state.isAuthenticated ? '/login' : '/logout');
        },
        child: VRouter(
          key: _routerKey,
          initialUrl: '/login',
          routes: [
            VWidget(
              path: '/logout',
              widget: SimpleWidget(
                title: 'You are logged OUT',
                buttonText: 'Press me to log in',
                onButtonPress: (context) =>
                    BlocProvider.of<AuthBloc>(context).add(LoginEvent()),
              ),
            ),
            VWidget(
              path: '/login',
              widget: SimpleWidget(
                title: 'You are logged IN',
                buttonText: 'Press me to log out',
                onButtonPress: (context) =>
                    BlocProvider.of<AuthBloc>(context).add(LogoutEvent()),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

class SimpleWidget extends StatelessWidget {
  final String title;
  final String buttonText;
  final void Function(BuildContext context) onButtonPress;

  const SimpleWidget({
    Key? key,
    required this.title,
    required this.buttonText,
    required this.onButtonPress,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        Positioned.fill(
          child: Center(
            child: Text(title, style: Theme.of(context).textTheme.headline4),
          ),
        ),
        Align(
          alignment: Alignment.bottomCenter,
          child: Padding(
            padding: const EdgeInsets.all(30.0),
            child: ElevatedButton(
              onPressed: () => onButtonPress(context),
              child: Text(buttonText),
            ),
          ),
        )
      ],
    );
  }
}

Hi  @lulupointu ,
Thank you for your quick response! The key is the solution to my problem. Have a nice day!
BlocListener<AuthBloc, AuthState>(
        listener: (context, state) {
          print('bloc listener : ' + state.toString());
          state.when(
              tryLogOut: (s) => _routerKey.currentState?.to('/loading'),
              initial: () => _routerKey.currentState?.to('/loading'),
              loading: () => _routerKey.currentState?.to('/loading'),
              unAuhtenticated: (s) => _routerKey.currentState?.to('/landing'),
              auhtenticated: (s) => _routerKey.currentState?.to('/home'),
              error: (s) => _routerKey.currentState
                  ?.to('error', queryParameters: {'error': s}),
              tryLogin: (loginProvider, e, p) => _routerKey.currentState?.to(
                    '/loading',
                    // queryParameters: {'isItLoginRegister': 'true'}
                  ),
              tryRegister: (loginProvider, email, pasword) =>
                  _routerKey.currentState?.to(
                    '/loading',
                    // queryParameters: {'isItLoginRegister': 'true'}
                  ));
        },
        child:
            VRouter(key: _routerKey, initialUrl: '/home', navigatorObservers: [
          BotToastNavigatorObserver(),
        ], routes: [
          VWidget(path: '/landing', widget: LandingPage()),
          VWidget(path: '/loading', widget: Loading()),
          // widget: Builder(
          //   builder: (context) => Loading(
          //     isItLoginRegister:
          //         context.vRouter.pathParameters['isItLoginRegister'] ==
          //             'true',
          //   ),
          // )),
          VWidget(
            path: 'error',
            widget: Loading(),
            // widget: Builder(
            //   builder: (context) => Scaffold(
            //     body: Center(
            //       child: Text(context.vRouter.pathParameters['error'] ??
            //           'error :/'),
            //     ),
            //   ),
            // ),
          ),
          VGuard(
              beforeEnter: (vRedirector) async {
                var state = context.read<AuthBloc>().state;
                print('STATE ' + state.toString());
              },
              stackedRoutes: [
                VWidget(path: '/home', widget: HomeScreen()),
                //Hatalı urlleri eve gönder
                VRouteRedirector(path: ':_(.+)', redirectTo: '/home')
              ])
        ]),
      )

authors: lulupointu pMertDogan

repo: lulupointu/vrouter

license: MIT


text:
Display on Client Startup GUI instead of using BdApi.alert()

If possible, display the quote on the discord startup screen instead of an alert after the client starts.
Or simply just find a better alternative to Bp.Alert()

https://docs.betterdiscord.app/plugins/basics/dom

Bp.alert() looks like this for example. What do you think?

Yes, this works, but isn't the most ideal for "Quote On Startup" because Discord already started. I was thinking of using Discord's actual start menu GUI.
It seems like an annoyance to look at some random quote after Discord launches rather than looking at a quote waiting for Discord to launch.

I mean there's already a "Did you know" section when it loads and I think people would even have barely time to look at the quote while loading. That's just what I think though.

Possibly make this a user-configurable option then? Default it to whatever, but I'd personally use the startup GUI when I obtain the plugin.

Possibly make this a user-configurable option then? Default it to whatever, but I'd personally use the startup GUI when I obtain the plugin.

That doesn't sound that bad of an idea. Maybe I can consider doing it like that.

repo: lumauser/QuoteonStartup


text:
Weird rendering/formatting from "$"

This weirdness is caused from this text:
$31960, which leaves $8k for my bills

If I escape the $ with \, the rendering issue is fixed.

It should only activate when there are two dollar signs and then another two like "$$hello how are you$$" would become math. This should hopefully be an easy fix.
import remarkMath, { Options } from "remark-math"

const remarkMathOptions: Options = {
    singleDollarTextMath: false,
}

// ...
            remarkPlugins={[
                [remarkMath, remarkMathOptions],
            ]}

I saw this in a forum, try this and lmk if this doesn't work.

authors: NetOpWibby noahgsolomon

repo: lumen-notes/lumen


text:
Explicitly capturing stacktrace in exception pattern in try catch does not compile

At https://github.com/lumen/lumen/pull/562/commits/c60025ad2b8fc0a133ac7646cd1eec6dc75b1e3e in https://github.com/lumen/lumen/pull/562, using the full Class:Exception:Stacktrace does not compile
init.erl
-module(init).
-export([start/0]).
-import(erlang, [display/1]).

start() ->
  Module = erlang,
  Function = <<"+">>,
  Args = [0, 1],
  try spawn_monitor(Module, Function, Args) of
    {ChildPid, ChildSpawnMonitor} ->
      display({child, ChildPid, spawned, with, monitor, ChildSpawnMonitor})
  catch
    Class:Exception:Stacktrace -> display({caught, Class, Exception, Stacktrace})
  end,
  display({parent, alive, true}).

Compilation Output
  Compiling tests/lib/erlang/spawn_monitor_3/with_atom_module/without_atom_function_errors_badarg/init.erl
!eir.trace_refAssertion failed: (succeeded(ConcreteT::verifyConstructionInvariants( generateUnknownStorageLocation(ctx), args...))), function get, file /Users/luke.imhoff/.local/share/llvm/lumen/include/mlir/IR/StorageUniquerSupport.h, line 92.

Fixed in 9572fc0

authors: KronicDeth bitwalker

repo: lumen/lumen


text:
feat: The user should be able to completely disconnect from GitHub and have their data deleted

For security reasons, users should know how to completely delete and remove their own accounts. User information should be deleted from the database due to data retention policy.
You can delete an account in the user settings page.

The security policy mentioned actually belongs to github, when the application is logged in, all data is collected at that moment and a conclusion is drawn accordingly, if you exit the application, no data remains with us
if you want to completely unlink your account from git.cow:
github > settings > applications > authorised oauth apps > ‘lumi-works’ > revoke
This process can be performed by following the steps.
If there is a data we collect in the future, you should have no doubt that measures will be taken as a security policy.


text:
Crash when rapidly selecting text or dragging selection (IDK)

Seems that it takes longer for some text to show up, and rapidly selecting text (Or maybe just selecting and dragging the selection, idk) crashes gmod.
https://www.youtube.com/watch?v=0dRyfM_Tesc

Come to think of it, it is entirely possible that click-dragging is fucked. I'll see what I can do about this soon!

Should be fixed in the next version.

authors: MrUnknownGamer birdbrainswagtrain


text:
Fix failing jsdom tests

This will fix the failing CI build

is it still actual?

@aizerin no it is not. I am going to close it.

authors: aizerin tommmyy wafflepie

repo: lundegaard/react-union


text:
Incremental Reading Add-On: Change of Highlight background color

Amazing add-on for the record. Still trying to figure out how to put it to optimal use.
To sum up beforehand, the issues are:

What does this # icon do that "h" short-cutting highlight would not achieve?
Could we set the background and text color respectively when highlighting?

The issue is about the highlight background color, it seems that the auto one is pitch black and I do not see any editing options. (I have looked, real closely).
FYI, when using the "h" to highlight the text, it's not permanent once you exit the current card. There is a small # icon and clicking it the text would be "double" highlighted with the black color. That seems to the issue.
Again, it's good add-on and thank you all for you work.

Thanks for the report. I'm not sure why the add-on is creating a black background. I assume you've chosen to highlight the text with that crimson(?) colour. In that case, it should not be changing the background colour at all. Currently the add-on only highlights the text or the background with a custom colour, not both (at least in theory).
Do you know whether this problem existed with version 2 (here)? I may have introduced the problem when I modified the highlighting code.
In any case, I've been meaning to add support for setting the text colour and background colour separately, so I might look into doing that now. Might get two birds with one stone that way.

Sorry, I missed your first question.
The # icon is supposed to allow you to remove the highlighting from a section of text. However, it doesn't seem to work in version 2, and I haven't been able to make it work in version 3, despite a lot of effort. Currently it's in the "too hard" basket, but it's still on my to-do list.

Okay, so I've made an attempt to fix this. In the development version, you can now select a text colour and a background colour for general highlighting and extraction, as well for quick add cards shortcuts.
Please download this zip file and place "ir_addon.py" and the "ir" folder into your addons folder (overwriting the existing files).
Let me know if it helps.

Thanks. I am gonna try it out later tonight and give feedback ASAP.
1.The black background-highlight happened when I hit the # icon. The text was red coz I choose highlight text in the menu. So I figure this might the # thing going wrong.
2. Besides, any previous highlighting seems to be erased when re-entering the card. It would be helpful if it could retain its "marking history".
3.The card is altered when en-entering it. The "Context" filed obviously quoted the same card.

Pressing 'h' or 'x' should result in permanent highlighting, based on the colours you've chosen. Clicking # should change the highlighting to something different (black text on white background, in the development version), but this should not be permanent, because the function is broken. (I might consider removing the # until this is fixed, to avoid confusion.)
Anyway, some of the behaviour you describe is a bit puzzling to me. For example, it looks like you have duplicated headings. This was a problem with how version 2 did highlighting (because it copied the entire page back into the Text field), and which I thought I had fixed. I guess you have added to the card template, but do you have the following line somewhere?:

{{Text}}

That div around the Text field is necessary to tell the add-on what part of the page to process. If it's missing from the template, things will not work properly. If you'd like to post the card template here, I'll have a look at it.
Also, is there any chance you still have a previous version of IR in your addons folder? Can you check to make sure the following files are not there:

Incremental_Reading_Extension.py
View_Size_Adjust.py

If they are, they need to be deleted, because they will interfere with the new add-on. (Removing these old files automatically is something I'll put on my to-do list.)

Duplicated Headings. I have tweaked the template display a bit but the core" ir-text" lines are intact. The back template is as follows:

牌组名称 : {{Deck}}

{{#Title}}

{{Title}}

{{/Title}}
{{#Text}}

{{Text}}

{{/Text}}

Might me sending you my template if it’s not too much trouble for you to look into.

Permanent highlight. I used the “h” shortcut and the highlight would disappear if I quit the card and re-enter. Maybe I could screen-record it, making it a gif. Normally I open the article/ anki card and do some reading, making highlight then I just click to return to the main deck. I have not used the answer buttons. Honestly speaking, I have no idea what their functions are. I know the basics of this supermemo incremental reading idea, but never used the Anki-addon upon which you’ve developed a new version.

I do not have the incremental-reading-extension nor view-size-adjust py files in my add-on folder. I would try a control-enviroment test running only this add-on later.

Again, million thanks to you taking your personal time developing this add-on. It’s real helpful with so much potentials.
Make it work. --Ultimate quote  from Time Gunn,

On 16 Jan 2017, at 15:51, luoliyan notifications@github.com wrote:
Pressing 'h' or 'x' should result in permanent highlighting, based on the colours you've chosen. Clicking # should change the highlighting to something different (black text on white background, in the development version), but this should not be permanent, because the function is broken. (I might consider removing the # until this is fixed, to avoid confusion.)
Anyway, some of the behaviour you describe is a bit puzzling to me. For example, it looks like you have duplicated headings. This was a problem with how version 2 did highlighting (because it copied the entire page back into the Text field), and which I thought I had fixed. I guess you have added to the card template, but do you have the following line somewhere?:
{{Text}}
That div around the Text field is necessary to tell the add-on what part of the page to process. If it's missing from the template, things will not work properly. If you'd like to post the card template here, I'll have a look at it.
Also, is there any chance you still have a previous version of IR in your addons folder? Can you check to make sure the following files are not there:
Incremental_Reading_Extension.py
View_Size_Adjust.py
If they are, they need to be deleted, because they will interfere with the new add-on. (Removing these old files automatically is something I'll put on my to-do list.)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/luoliyan/incremental-reading-for-anki/issues/2#issuecomment-272794126, or mute the thread https://github.com/notifications/unsubscribe-auth/AWYpSu_6qAEcATmQxMKIGNjZNRpZF18wks5rSyF-gaJpZM4Lj3lR.

Thanks for your help with this. I only work on this add-on because I use it myself, and know it can be valuable when it works properly. Hopefully we can get to the bottom of the problem.
I think I've solved the issue with highlighting not being saved. It requires a slight change to your template, as well as a change to the add-on.
Can you replace this line in your template:

{{Text}}

with this:

{{Text}}

And also remove id="ir-text" from this line:

{{Title}}

I've updated the add-on to allow for multiple classes (in your case, "items" and "ir-text"). You'll need to download the development version again (link) and update the files.

【Feedback】

√ Template Tweak. I've changed it according to your advice and it works.
2.× With the dev. version, the highlighting still is not permanent.
√ The # icon is gone in the dev. version.
√ Highlight color change. The dev version does support background and text highlight differentiation.

Quite strange, that. I'm able to reproduce the non-permanent highlighting problem by using your old template, but not with the tweaked template. As far as I can tell, the only reason highlighting wasn't being saved is because it needs to be class="ir-text", not id="ir-text" (the add-on searches for a class attribute).
On the PC, I've tried every way of exiting from a card, and highlighting is always preserved. I'm hoping this isn't a weird Mac-only thing.
Internally, the steps involved in highlighting are:

Mark the selected text
2 Highlight the text (which works for you)
Locate a div with class="ir-text"
Save the contents of that div to the Text field
Whenever the card is loaded, find all marked blocks of text and highlight them

Are you able to do the following for me:

Highlight a section of text
Click Edit
Click in the Text field
Choose Edit HTML from the menu (or press Ctrl+Shift+X)
Paste the HTML here for me to take a look at

If the HTML is correct, then it must be broken at step 5.

Ok, I’ve just done what you’ve asked. Went an extra step to reset my template to basic mode to exclude any conflict it my tweaked template might/could do to the display.
And it breaks in the second step. Here’s the step-by-step breakdown.

Done. Highlight a section of text.

Fail. Right after this, I clicked the Edit button and the highlight is gone.

On 17 Jan 2017, at 18:02, luoliyan notifications@github.com wrote:
Quite strange, that. I'm able to reproduce the non-permanent highlighting problem by using your old template, but not with the tweaked template. As far as I can tell, the only reason highlighting wasn't being saved is because it needs to be class="ir-text", not id="ir-text" (the add-on searches for a class attribute).
On the PC, I've tried every way of exiting from a card, and highlighting is always preserved. I'm hoping this isn't a weird Mac-only thing.
Internally, the steps involved in highlighting are:
Mark the selected text
2 Highlight the text (which works for you)
Locate a div with class="ir-text"
Save the contents of that div to the Text field
Whenever the card is loaded, find all marked blocks of text and highlight them
Are you able to do the following for me:
Highlight a section of text
Click Edit
Click in the Text field
Choose Edit HTML from the menu (or press Ctrl+Shift+X)
Paste the HTML here for me to take a look at
If the HTML is correct, then it must be broken at step 5.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/luoliyan/incremental-reading-for-anki/issues/2#issuecomment-273078326, or mute the thread https://github.com/notifications/unsubscribe-auth/AWYpShuUDiV_NmLapZ50WB7sZMQvH7ekks5rTJHAgaJpZM4Lj3lR.

Can you post the HTML of the Text field. There might be something hidden there.

Here's the complete code of that highlighted part.
La première ministre britannique doit dévoiler aujourd’hui sa stratégie pour quitter l’Union européenne.Annoncé avec tambours et trompettes, le discours que doit prononcer Theresa May en fin de matinée, mardi 17 janvier, est censé préciser son plan pour le Brexit, à environ dix semaines du déclenchement de la procédure de divorce avec l’UE, qu’elle a annoncé pour la fin mars. Jusqu’à présent, la Première ministre a surtout répété des formules creuses, comme « Le Brexit veut dire le Brexit » ou « Nous sortons de l’UE mais pas de l’Europe ».Son intervention est destinée à contrarier l’idée selon laquelle elle n’a en réalité aucun plan, comme l’a affirmé de façon explicite l’hebdomadaire The Economist, qui l’a surnommée « Theresa Maybe » (« Theresa Peut-être »). Downing Street veut aussi faire oublier l’épisode ravageur de la démission de l’ambassadeur britannique auprès de l’UE, critique à l’égard des orientations « brumeuses » de Mme May. Cette dernière veut enfin prendre l’initiative avant l’arrêt de la Cour suprême britannique qui, attendu pour la semaine prochaine, va probablement l’obliger à saisir le Parlement avant d’engager le Brexit, ce qu’elle ne souhaitait pas.ChantageEn octobre, la première ministre avait fixé deux lignes rouges : la maîtrise de la politique d’immigration des Européens au Royaume-Uni et la fin de la suprématie de la Cour de justice de l’Union européenne (CJUE) sur les juridictions britanniques. La conséquence logique en est la sortie du marché unique, précisément régulé par la CJUE. Mme May a aussi répété qu’elle ne se laisserait pas enfermer dans l’alternative entre contrôle de l’immigration et accès au marché unique (deux prérogatives jugées incompatibles par les Vingt-Sept). Elle s’est fait fort de « négocier le meilleur accord possible ». En menaçant dimanche l’UE de transformer le Royaume-Uni en paradis fiscal, si l’Europe refusait de lui ouvrir son marché, son ministre des finances, Philip Hammond, a nettement raidi le ton.Lire aussi :   Les Européens ont leur destin « en main », répond Angela Merkel à Donald TrumpTheresa May confirmera-t-elle ce chantage ? Précisera-t-elle ses objectifs ? Les observateurs espèrent qu’elle détaillera sa position sur le système de contrôle de l’immigration, sur la nature des relations économiques qu’elle souhaite nouer avec le continent, en particulier le positionnement de la City. Mais rien n’est moins sûr.En termes très généraux, les premiers éléments de son discours diffusés par Downing Street expriment l’ambition de construire une « Grande-Bretagne mondiale » à partir des « opportunités » qu’offre le Brexit, selon Mme May. « Je veux que le Royaume-Uni émerge de cette période de changement plus fort, plus uni, plus juste et plus tourné vers l’extérieur que jamais », doit-elle déclarer. S’adressant aux « continentaux », elle affirmera que l’« intérêt massif » de son pays est de voir l’UE « réussir ». Pour que ce message amical, éloigné de celui de M. Hammond, soit bien relayé, les ambassadeurs à Londres des vingt-sept Etats de l’Union ont été invités à écouter solennellement la première ministre à Lancaster House, haut lieu de la diplomatie britannique, à deux pas de Buckingham Palace.MeasureMeasure

Thanks. Let me play around with this.

Still haven't solved this yet, but I've made a modified main.py that might help pinpoint where things go wrong. Please download main.zip and replace ir/main.py with this modified one.
Try to highlight some text, exit out of the card, then go back into the card. On a fresh card with no highlighting, you should first get a pop-up window saying the highlighting can't be found. After pressing 'h', you should no longer get any pop-up windows for that card. If you do, let me know what they say.

authors: lizvoila luoliyan

repo: luoliyan/incremental-reading-for-anki

license: isc


text:
Update Mobiilivihko to Expo 51 + Redux Toolkit

[x] Update Mobiilivihko to Expo 51
[x] Update Redux to Redux toolkit, and refactor all reducers according to changes
[ ] Release the app for testing on:

[x]   Android and
[ ]   iOS

[ ] Get the app tested, then release to prod

Test version 1.5.10 has been released for Android, today I'll release also the iOS test version.

@rpulkka should this have status "Needs Approval" if points 3 & 4 have not happened yet?

@wkmor1 Fair enough. Maybe I shouldn't have included the deployment to the points, so it wouldn't need "approval" from the tester/PO before the status technically goes to "needs approval". But this can be fixed by setting the status to "in progress" and notifying Mikko that the app can be tested now (done on Slack).

Yeah up to you how to formulate the tasks. Just need to make sure it is clear to the owner what they are approving. Perhaps this task could be split into few tasks? Its hard at them moment to understand how it is different from its parent Epic?

Tested with Android. Trip form and single observation form work ok, also with images. Loading species lists for atlas & complete lists fail.

@mikkohei13 Should work now. Atlas-API address pointed to old Rahti. This issue has been breaking Atlas + Biomon forms on production for two days now. We should publish an update as soon as basic functionality of the app has been confirmed.

Tested bird atlas & dragonfly complete list forms. Both work ok.

repo: luomus/mobile-vihko-app


text:
Option to not scale objects like player arrow and pfQuest nodes

I find this addon rather useless without this feature, because I wanted to zoom the map in order to better see in areas where pfQuest nodes are so tight together that they obscure the map itself, and you can't differentiate between quest objectives and your player arrow.
Adding an option for these objects to remain at 100% zoom when zooming the map beyond that would be an incredible improvement.

Noted. I will try to do this when I have more time.

I lack the skills to implement this, maybe someone else will try.

repo: luskanek/Magnify


text:
"Unable to get DXVK 1.94L" error due to packaging change from .gz to .xz in v1.94L

After the release of DXVK 1.94L, an error promts when trying to launch a wine game because Lutris tries to download it from an adress that gives a 404 error.
When I launched Lutris on the console, I got this when trying to launch a game:
https://github.com/lutris/dxvk/releases/download/v1.9.4L/dxvk-1.9.4L.tar.gz returned a 404 error
Which is true because is not a .gz but a .xz

It works atleast now, I recommend to remove all content from these folders to get fresh versions of components:
"d3d_extras", "dxvk", "dxvk-nvapi" and "vkd3d"
/home/x/.local/share/lutris/runtime/

Just removing the folder and restarting Lutris didn't work for me. It still tried to download the .gz instead of .xz file.
However I got it working by just downloading the .xz file myself and placing it under /home/x/.local/share/lutris/runtime/dxvk/

authors: mtarregh raistlinmaestre runboy93

repo: lutris/dxvk

license: Zlib


text:
stuck when viewing bert

i am using WIN10 AMD ryzen 2500 CPU, when i try to view BERT (https://github.com/google-research/bert), the program stucks. I wonder this is a problem with netron or my device?

Can you share the model file or a link to the file?

Duplicate of #68

authors: lutzroeder tesla-cat

repo: lutzroeder/netron


text:
noexcept declarations incorrect or missing -- leads to crashes, code bloat, obscuring code behavior

The codebase and its dependencies have a range of exception declaration issues

declared noexcept yet calling APIs that can throw exceptions -- this is unsafe and can lead to crashes
not declared noexcept yet not calling any APIs that can throw exceptions -- this is inefficient, can lead to code bloat for compiler to include handling code not actually needed, cascades up the call chain requiring all callers in chain to handle exceptions that will never occur, etc.
Default constructor may not throw. Declare it 'noexcept' (f.6) -- this is probably handled silently by the compiler but not declaring it as such obscures actual code behavior and therefore coders, editors, etc. don't provide as good code assistance as possible. And has the same cascading caller chain errors of bullet 2.

The top offender is dependencies\include\nlohmann. But I can also see them in Luxonis code like depthai-shared\common\Rect.hpp.
Setup

Microsoft Windows [Version 10.0.19043.1288]
MSVS 2019 Community v16.11.5 (though since these are C++ language issues, is likely present in other compilers)
depthai-core windows prebuilt distribution depthai-core-v2.11.1-win64.zip. There are likely issues beyond those attached as I have only used the precompiled Windows distribution (can't yet full compile due to other open depthai issues).

Repro

Enable warnings and code analyzer e.g. in MSVC it is with /W4  /analyze:plugin EspXEngine.dll and env var `esp.extensions=cppcorecheck.dll' https://docs.microsoft.com/en-us/cpp/code-quality/using-the-cpp-core-guidelines-checkers?view=msvc-170
Compile an app that uses the depthai-core-v2.11.1-win64 and simple code that cascades to headers like common/Rect.hpp or pipeline/Node.hpp. Most any code, even just a dai device, will do this.

Result
88+ errors of exception handling issues. Here is a sampling
depthai-noexcept.txt
Expected
Zero warnings of C26447: The function is declared 'noexcept' but calls function 'xxxx()' which may throw exceptions (f.6).
These can lead to crashes.
It is preferred to not have the other types of warnings. They should not cause crashes, but they do lead to code bloat or incorrect/lack of clarity on code behavior for the developer.

@diablodale all of the mentioned issues which may throw exceptions are coming from nlohmann json library.
It seems like that is the case, and there are some issues with it, but checking out the first issue reveals the following:
class exception : public std::exception
{
  public:
    /// returns the explanatory string
    JSON_HEDLEY_RETURNS_NON_NULL
    const char* what() const noexcept override
    {
        return m.what();
    }

    /// the id of the exception
    const int id;

  protected:
    JSON_HEDLEY_NON_NULL(3)
    exception(int id_, const char* what_arg) : id(id_), m(what_arg) {}

    static std::string name(const std::string& ename, int id_)
    {
        return "[json.exception." + ename + "." + std::to_string(id_) + "] ";
    }

  private:
    /// an exception object as storage for error messages
    std::runtime_error m;
};

The function in question being what() - it calls its own member m, which is of type std::runtime_error.
https://en.cppreference.com/w/cpp/error/runtime_error
Docs show that std::runtime_error::what() is indeed noexcept since C++11.
Are you compiling with C++14 set? Otherwise this seems to be either a bug in the anaylizer (more likely) or in Microsoft STL (less likely)

Also we are currently still using nlohmann json 3.9.1, where 3.10.4 is already out. It might be that some issue were fixed by a later version. Would be nice giving this a try by just swapping out the mentioned header for this one: https://github.com/nlohmann/json/releases/download/v3.10.4/json.hpp

My app is compiled c++17 as I use features like std::optional
For the specific what() issue...MSVC itself has a bug about what() comformance and now are dealing with the legacy/vtable issues of it. https://developercommunity2.visualstudio.com/t/VC:-std::exception::what-has-wrong-sig/785027
Their suggestion for that specific what bug is

Suppressing the Core Guidelines warning C26447 is the most reasonable workaround, I think

I've checked the latest nlohmann version about the second and third issue that came up:
include\nlohmann\json.hpp(4801) : warning C26447: The function is declared 'noexcept' but calls function 'rdstate()' which may throw exceptions (f.6).
include\nlohmann\json.hpp(4801) : warning C26447: The function is declared 'noexcept' but calls function 'clear()' which may throw exceptions (f.6).

Which seems to be calling a function that may throw in a destructor. And some other cases.
These should be raised to nlohmann json, as noexcept that can throw is indeed unsafe.
For points 2. and 3. on our codebase, I wouldn't go about them unless some sort of gain is to be had there.
The performance gains available to be had in our library by introducing noexcept are essentially 0. While there is work to do it and maintain it properly (which can more easily than not cause the reverse issues of having a noexcept where it shouldn't be).
As the drawbacks drastically outweigh the benefits, I wouldn't pursue this changes.
I'd only see about updating the nlohmann json library if they address this on their end.

Point 1 (crashes)
I request your team escalate the unsafe/crashing scenarios to nlohmann. Your team is the right role to escalate issue or PR as you are the consumer/user. I'm happy to +1 or comment on any issue/PR you send.
Point 2 (efficiency)
Ok
Point 3 (restrictive, unclear)
I disagree here for code your team controls and is public to users (like Point3f).
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#c44-prefer-default-constructors-to-be-simple-and-non-throwing
...and in common use cases like making a class that has a member of std::vectordai::Point3f causes a chain of forced assert handling on default construct of that class (which cascades to default construct of vector then dai::Point3f when not necessary and sometimes difficult to wrap try/catches in places.
I request your team investigate the 4 so far found. And it is probable even better to write = default instead of {} so that the default constructor gains additional abilities/qualifications. And this relates also to https://github.com/luxonis/depthai-core/issues/251
[build] C:\repos-nobackup\depthai-core-v2.11.1-win64\include\depthai-shared\common\Point3f.hpp(17) : warning C26455: Default constructor may not throw. Declare it 'noexcept' (f.6).
[build] C:\repos-nobackup\depthai-core-v2.11.1-win64\include\depthai-shared\common\Point2f.hpp(17) : warning C26455: Default constructor may not throw. Declare it 'noexcept' (f.6).
[build] C:\repos-nobackup\depthai-core-v2.11.1-win64\include\depthai-shared\common\Size2f.hpp(17) : warning C26455: Default constructor may not throw. Declare it 'noexcept' (f.6).
[build] C:\repos-nobackup\depthai-core-v2.11.1-win64\include\depthai-shared\common\Rect.hpp(20) : warning C26455: Default constructor may not throw. Declare it 'noexcept' (f.6).

I agree on Point 3 regarding non default constructors.
We'll update this.
Will also post my findings to nlohmann.

Rechecking the nlohmann warnings, and doing a repro in godbolt - it seems that there are many functions with this warning. Even in various std libraries, etc...
https://godbolt.org/z/KoKWG4qP6
I'm actually not sure if this warning is actually relevant if library ensures that the function won't throw (eg. by knowing the state of underlying function, etc...)
So I'll skip on raising this as an issue.

Are you swapping issues? The godbolt you provides shows mostly can be declared 'noexcept'
Those are not our nlohmann discussion.
Our discussion for nlohmann is the opposite.   That something is declared noexcept but actually DOES risk exceptions which can lead to crashes.
80 out of 1750 godbolt warnings/errors are the potential crash locations
21 of those 80 are nlohmann
Some amount of the msvc warnings of potential crashes are due to template parameters given to them, and cascades of nlohmann usage. Only coed analysis by nlohmann can surface the actual case.
Microsoft has bugs in their STL which I link above. Dependent libraries can change. etc. Our roles in library providers (you depthai, microsoft stl, nlohmann json, etc.) is to continue the progress for more accurate, less crashing, better documented code.
FYI, I always compile W4 and analyzer and do not see widespread STL issues like in this godbolt. It is due to nlohmann's usage of the STL in an "unsafe" manner that is cascading all these warnings.

The latest example you've posted was fixed in latest (3.10.4) release. The function isnt' noexcept anymore.
What I meant is that for the time being I won't be diving into nlohmann lib about their noexcept usage, as its not a pressing matter.
I do believe however that there are cases where things can break. Fortunately this doesn't immediately affects us currently.
Regarding the noexcept DepthAI warnings, will address this.
Also any recommendations for similar flags that raise noexcept warnings for Clang & GCC?

ok. main still shows nlohmann 3.9.1. I'll ignore the json issues for now and when/if I notice depthai incorporates 3.10.4, then I'll open a separate issue on the newer version as needed.
I rarely build for linux so I'm not a wiz for switches. Here's some chatter on it https://stackoverflow.com/questions/59676462/enabling-warnings-when-a-noexcept-function-attempts-to-call-non-noexcept-functio
There are some switches for the MSVC analyzer that can be useful to remove noise while getting deep analysis.
https://docs.microsoft.com/en-us/cpp/code-quality/using-the-cpp-core-guidelines-checkers?view=msvc-170#non-msbuild-projects

compiler options /analyze:plugin EspXEngine.dll to enable it
env var (set it for the cmake build environ) esp.extensions=CppCoreCheck.dll
env var(cmake build) caexcludepath=C:\Program Files;C:\Program Files (x86) or wherever the MSVC, WinSDK, and STL are located

Addressed in https://github.com/luxonis/depthai-shared/pull/65

authors: diablodale themarpe

repo: luxonis/depthai-core


text:
OAK-FFC-6P RVC3 Simultaneous VideoEncoder & Preview Pipeline

Can't get simultaneous preview and video encoder pipelines working, simple example below for the 6P. Is this a known issue?
MRE
import depthai as dai

def _main():
    pipeline = dai.Pipeline()

    camRgb = pipeline.create(dai.node.ColorCamera)
    camRgb.setBoardSocket(dai.CameraBoardSocket.CAM_F)
    camRgb.setPreviewSize(300, 300)
    camRgb.setResolution(dai.ColorCameraProperties.SensorResolution.THE_1080_P)
    camRgb.setInterleaved(False)
    camRgb.setColorOrder(dai.ColorCameraProperties.ColorOrder.RGB)

    videoEnc = pipeline.create(dai.node.VideoEncoder)
    videoEnc.setDefaultProfilePreset(30, dai.VideoEncoderProperties.Profile.H264_MAIN)
    camRgb.video.link(videoEnc.input)

    xoutRgb = pipeline.create(dai.node.XLinkOut)
    xoutRgb.setStreamName("rgb")
    camRgb.preview.link(xoutRgb.input)
    xoutEnc = pipeline.create(dai.node.XLinkOut)
    xoutEnc.setStreamName("h264")
    videoEnc.bitstream.link(xoutEnc.input)

    with dai.Device(pipeline) as device:
        device.setLogLevel(dai.LogLevel.DEBUG)
        device.setLogOutputLevel(dai.LogLevel.DEBUG)
        qRgb = device.getOutputQueue(name="rgb", maxSize=4, blocking=False)
        qH264 = device.getOutputQueue(name="h264", maxSize=30, blocking=True)

        while True:
            inRgb = qRgb.get()
            inH264 = qH264.get()
            print("Working!")

if __name__ == "__main__":
    _main()

@Erol444 It turns out that setting certain preview sizes on previous runs (270x480) crashes the VPU and a hard device reset is required to get it working again.

The encoder works regardless of the crash, hence the confusing issue.


text:
support grpc？

GrpC already supports. NET core, looking forward to Nanophone  can increase support for grpC framework

As soon as grpc has service discovery abstractions, I'll be glad to take a look at it.

authors: geffzhang lvermeulen

repo: lvermeulen/Nanophone


text:
Why use weight as the font size variable name?

In the lv_lib_freetype.h
typedef struct {
    const char * name;  /* The name of the font file */
    lv_font_t * font;   /* point to lvgl font */
    uint16_t weight;    // HERE
    uint16_t style;     /* font style */
} lv_ft_info_t;

But in th lv_lib_freetype.c
// ...
dsc->height = info->weight;
// ...
scaler.width = info->weight;
scaler.height = info->weight;
// ...

Usually Font weight has another meaning. Is it more appropriate to use  "size" here?
Like this
typedef struct {
    const char * name;  /* The name of the font file */
    lv_font_t * font;   /* point to lvgl font */
    uint16_t size;    // HERE
    uint16_t style;     /* font style */
} lv_ft_info_t;

Thanks for pointing it out. Recently @guoweilkd worked a lot in FreeType integration. Hopefully he can tell more about it.
FYI, it's called weight in the version in lvgl too.

Sorry, this is a spelling mistake I made, and I would like to change its name, but considering the compatibility issue, I didn’t replace it with the correct word.

Sorry, this is a spelling mistake I made, and I would like to change its name, but considering the compatibility issue, I didn’t replace it with the correct word.

LOL. Thanks for your answer.

authors: chaosgoo guoweilkd kisvegabor


text:
Use of UIImage strips some metadata from photo

In my quest to add GPS metadata, I have found that converting to and from UIImage strips some metadata from an image: https://gist.github.com/jtremback/50cf75604c9e5c55db49.
It appears that the only reason that UIImage is being used is to satisfy the requirements of the UIImage+Resize class that is included in the module. It appears that UIImage+Resize is not actually doing anything, just resizing the image to the same size and orientation that it already was. So, eliminating UIImage+Resize and the conversion to UIImage results in images being saved with full metadata. Here's a very quick and dirty modification that saves images without the conversion: https://gist.github.com/jtremback/b4996f4e884f4ce0748e.
HOWEVER- While UIImage+Resize is not doing anything now, as far as I can tell, I think it should be. There are two schools of thought on image orientation:

One way is to have the capturing device set the orientation property in the metadata and let the displaying device rotate it properly. However, displaying devices often don't do this right. There are many examples across the internet of this issue.

The other way is to rotate the image in the capturing device and leave the orientation metadata untouched. This is what I want my app to do. It's probably also what UIImage+Resize is supposed to be doing in the code.

Fixing the call to UIImage+Resize to rotate properly will be easy, but preserving the metadata may not be. I can think of two ways to do this:

Rotate without converting to UIImage, possibly with CGImage. Perhaps this will be kinder to the metadata.
Read the metadata, rotate with UIImage, and reattach the metadata afterwards.

I don't know yet which is the best approach, but I will update this tomorrow.

Successfully stopped stripping the metadata here: https://gist.github.com/jtremback/e5dde527da9bcd69536e
Still need to do the orientation flip.
Unfortunately I wrote this on an older version, so I will need to sort out the merge tomorrow.

Hey @jtremback, thanks for your work regarding this. I think we should do it the way it's supposed to be working, which is to transpose the X/Y coords in the final image. This is just simpler for everyone and typically represents what people want the camera to do (otherwise they'd have to manage rotation themselves by reading metadata.)
I think copy/pasting the metadata is a decent solution, so long as it doesn't require doing a ton of remapping. Ideally it's a few lines of code that map every piece of metadata that exists now or in the future.

https://github.com/lwansbrough/react-native-camera/commit/8eb6e9e7dce7d70b9be60a70515a7b972f9a8a40

authors: jtremback lwansbrough

repo: lwansbrough/react-native-camera


text:
inital run fails with Error on line 671:16: TypeError:

Hi,
I get the following error here whilst running the inital setup:
Error on line 671:16: TypeError: undefined is not a function (near '...plugin of pluginsData...')
what I am doing wrong ? :-)
many thanks in advance,
Rob

Is this a duplicate of https://github.com/lwitzani/homebridgeStatusWidget/issues/3 ?
Please check all the closed issues

ooookay - thats it. thx!

authors: lwitzani runrennerrun

repo: lwitzani/homebridgeStatusWidget


text:
ZFS continous snapshots integration?

I use sanoid for ZFS continous snapshots
I wonder is it possible to integrate sanoid (or the other existing scripts/solutions)
with lxc snapshot
for example use some sort of callback after snapshot or detect new snapshots for container
and update LXD database?
Is there any info what is doing lxc snapshot beside ZFS clone/snapshot
and why LXD not update info about new snapshots created behind scenes via ZFS snapshot?

LXD snapshots include both the filesystem state and all the container configuration and devices that's in our database. So a filesystem snapshot alone isn't sufficient to reconstruct a LXD snapshot.

so I assume that there is no ready script/solution and I must take care by myself right?
I wonder are there any LXD cons with ZFS based container lxc snapshots created
for every 1
mins
hrs
days
?

I've been using scripts calling "lxc snapshot" on a lot of containers every hour for weeks without seeing any obvious problem. There is the annoyance that ZFS won't let you restore a snapshot without loosing all the ones after it, but you can copy to a new container and that works fine.
You can do snapshots outside of LXD and should your host die, you may be able to restore them through "lxd import" (see doc/backup.md) but it's really more about data recovery than something you'd want to do very often.
Also note that things like copying/moving the container between hosts may get confused if you have non-LXD snapshots of your container. Similarly "lxc restore" may think it can restore a snapshot as it's the latest one that LXD knows about, but if you have snapshots created outside of LXD after that, the restore will fail due to aforementioned ZFS behavior.

thank you
I think you are right
I'll use custom lxc snapshot script for containers
and sanoid to do frequent snapshots for data storage volumes
Are there any plans to implement some sort of snashots for volumes?

@niksfirefly not right now as we're still working on fixing a number of issues with storage volumes, but it's certainly something that'd make sense to add.
Feel free to file another issue for this and I'll tag it accordingly.
One thing to note is that we're unlikely to tie container snapshots to volume snapshots. That may seem counter-intuitive at first, but since a volume can be shared with several containers and filesystems like ZFS are a bit picky on restores, it'll be easier and I suspect cleaner, to track snapshots of volumes separately from containers.

authors: niksfirefly stgraber

repo: lxc/lxd


text:
Lxc Import

Could there be away to initiate an import of a backup.tar.gz through the LXD rest API ?
Why ?
not suggesting LXD team implements any of this
It would be useful in an instance where you dont want to use a LXD server as a backup,
For example a backup server could use the following process:
Backing up (can be done)

Create backup through LXD api
listen for backup successful operation emit
backup server downloads tar ball

Recovering (can't be done only through LXD API)

backup server receives a request to restore container
backup is either sent as a data stream or path to file

Everything that lxc does is done over the REST API and can be done remotely.
So your backup server can absolutely use our existing API to create a snapshot, then download it when ready and to restore, can either restore it from the server or anywhere that can reach the LXD target.

So your saying the steps to backup & recovery could be;
Backup

Snapshot container
Create image from snapshot
Download image

Recovery

LXD requests image from backup server (over http / simple streams)
Creates container
Remove the backup image

@stgraber Why you close this ticket this early

@stgraber Can you put you a shit a side and not close ticket automatically

Chill dude

I like them to do better, I've been since LXC before LXD Ubuntu pick it up

They finally introduced IPVLAN, that's great, they are not total assholes.

@turtle0x1 Same way I complain, there is not difference, I will treat you the same

@lhorace we close bugs that aren't bugs, that doesn't mean we don't still engage in comments, it just means there's no issue for us to fix.

@turtle0x1 no, we have an actual backup API.
That's what lxc export and lxc import drive behind the scenes.
https://github.com/lxc/lxd/blob/master/doc/rest-api.md#10containersnamebackups

Restoring the backup is done by doing a POST with the backup as data to /1.0/containers effectively creating the container from the backup.

great thanks alot :)

authors: lhorace stgraber turtle0x1


text:
doc: add sphinx-copybutton extension

This extension adds a button to each code block that makes it easy to copy the contents.

Documentation preview available at: https://linuxcontainers.org/lxd/docs/pr.11416/

authors: lxc-jenkins ru-fu


text:
cneira-rename-container

https://github.com/lxc/lxd/issues/2320
Add rename alias same as move

This pull request didn't trigger Jenkins as its author isn't in the whitelist.
An organization member must perform one of the following:

To have this branch tested by Jenkins, use the "ok to test" command.
To have a one time test done, use the "test this please" command.

Those commands are simple Github comments of the format: "jenkins: COMMAND"

Still having some difficulties sending a clean branch I see :)
The change itself looks fine (branch could do with a rebase). You will also need to run "make i18n" and include the result in your commit as you're adding a translation string.

Thanks, I'll need to recheck what I did wrong in the rebase. thanks for your patience.
Bests

Closing in favor of #2320

authors: cneira lxc-jenkins stgraber


text:
lxd/storage/zfs: Set volmode=none for VM datasets

Signed-off-by: Stéphane Graber stgraber@ubuntu.com

jenkins: test this please


text:
链接坏了

demo的链接坏了

http://www.lybenson.com/bilibili/bilibili-vue//dist/index.html

authors: lybenson weathon

repo: lybenson/bilibili-vue


text:
[DPTOOLS-2312] Add callback registration in Publisher

Summary of Changes
Introduce Callback into Databuilder.
From "README.MD":
Callback interface is built upon a Observer pattern where the participant want to take any action when target's state changes.
Publisher is the first one adopting Callback where registered Callback will be called either when publish succeeded or when publish failed. In order to register callback, Publisher provides register_call_back method.
One use case for Extractor needs to commit when job is finished. Having Extractor register a callback to Publisher to commit when publish is successful, extractor can safely commit by implementing commit logic into on_success method.
Tests
Added unit tests. Performed integration tests.
Documentation
Added documentation
https://github.com/lyft/amundsendatabuilder/tree/jinchang-callback-registration#callback
CheckList
Make sure you have checked all steps below to ensure a timely review.

[x] PR title addresses the issue accurately and concisely. Example: "Updates the version of Flask to v1.0.2"

In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

[x] PR includes a summary of changes.
[x] PR adds unit tests, updates existing unit tests, OR documents why no test additions or modifications are needed.
[x] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain docstrings that explain what it does

[x] PR passes make test
[x] I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message"

Codecov Report

Merging #57 into master will decrease coverage by 0.28%.
The diff coverage is 53.65%.

@@            Coverage Diff             @@
##           master      #57      +/-   ##
==========================================
- Coverage   83.12%   82.84%   -0.29%
==========================================
  Files          50       51       +1
  Lines        2311     2413     +102
  Branches      223      242      +19
==========================================
+ Hits         1921     1999      +78
- Misses        314      334      +20
- Partials       76       80       +4

Impacted Files
Coverage Δ

databuilder/publisher/neo4j_csv_publisher.py
87.81% <100%> (+1.68%)
:arrow_up:

databuilder/publisher/elasticsearch_publisher.py
93.87% <100%> (ø)
:arrow_up:

databuilder/callback/call_back.py
42.3% <42.3%> (ø)

databuilder/job/job.py
79.62% <57.14%> (-3.71%)
:arrow_down:

databuilder/publisher/base_publisher.py
83.33% <83.33%> (-0.88%)
:arrow_down:

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 95635d5...28952f3. Read the comment docs.

This is awesome. Nice implementation. 👍

authors: codecov-io jinhyukchang youngyjd

repo: lyft/amundsendatabuilder


text:
[FR] Global Sprint Goal

Currently, it’s only possible to add a sprint goal for a file. At least I can’t find a way to add it for a folder or globally.
I set myself a goal of 700 words per 25 minutes, but sometimes, the note I’m working on turns out to be shorter than that. In such a case, I begin to work on a new note for which the words written are not calculated toward the sprint goal.
I would like to be able to set a Global Sprint Goal, which will calculate the words written in no matter which note.
Thanks for the amazing plugin!

I concur. It would be great to have an option to set global goal for the vault. I encountered some issues when adding goals to certain folders (while other folders work). I am not sure if it is related to compatibility with other plugins I have (e.g. MAKE.md).

authors: Drakemoor xinyu-dev

repo: lynchjames/obsidian-writing-goals


text:
API authentication. Method not allowed 405. Use POST /sign_in to sign in. GET is not supported.

Hi,
I am using devise_token_auth to authenticate an API of my web app, everything works fine on staging environment, but when I try to sign in to my API in production I got this error:
405 method not allowed
"errors": [
    "Use POST /sign_in to sign in. GET is not supported."
  ]

I am not using any omniauth service, I read other people with a similar issue but they were trying to integrate to other service. Any clue of what is going wrong in the production environment?

@jvalenciag Why did you close this? Did you find a solution? I'm running into the same problem in my local environment.

authors: jackpope jvalenciag

license: WTFPL


text:
Using the Generator Without Capitalizing Model Name

When using the generator to generate a user model such as:
rails generate devise_token_auth:install user auth
The user model calss in app/models/user.rb is created such as:
class user < ActiveRecord::Base
Also when modifying this manually I get other weird behavior when trying to rails db:migrate
I think it's better to make devise_auth_token handle this automatically just like other generators in rails. This would result in a seamless experience. Thanks.

@moeabdol I agree. How would you feel about submitting a pull request to take care of this? Going to tag this close-in-7-days in case you've moved on but we'd be game!

Removing label, this seems a probable issue.

authors: MaicolBen moeabdol zachfeldman


text:
Support for persisted queries?

Is your feature request related to a problem? Please describe.
It would be great if this library support persisted queries, which means the server already knows the query the client is sending, and the client merely passes an "id" in the query string (GET) or "id" in the body (POST) rather than a query in the body

https://www.apollographql.com/docs/kotlin/advanced/persisted-queries/
https://chillicream.com/docs/hotchocolate/v13/performance/persisted-queries

Describe the solution you'd like
A way for graphClient.request to pass an id corresponding to a query, or an alternative graphClient.requestId() where the first arg is an ID rather than the query itself
Describe alternatives you've considered
Alternatively, the library could provide a way to customize how operations are serialized, instead of just a hard-coded JSON.stringify(...)

Thanks for the suggestions @onionhammer !
I think it could be done by providing a custom fetch function? I see that approach suggested for graphql-request library https://github.com/jasonkuhrt/graphql-request/issues/269#issuecomment-1703936594

Thanks for the suggestions @onionhammer !
I think it could be done by providing a custom fetch function? I see that approach suggested for graphql-request library https://github.com/jasonkuhrt/graphql-request/issues/269#issuecomment-1703936594

Unless I'm mistaken, it cannot be done with this library since you have hardcoded logic to execute the serialization. Hence the PR
Happy to be wrong

My suggestion is to run client.request() by passing the id string to it instead of query. Then deserialize the body in custom fetch function and serialize it again with id field. Something like this
async function customFetch(url, init) {
  const { query, ...rest } = JSON.parse(init.body)
  return fetch(url, { ...init, body:  JSON.stringify({  ...rest, id: query }) })
}

@lynxtaa This works if the body is JSON and not FormData, which is not guaranteed.

This works if the body is JSON and not FormData, which is not guaranteed

It's also possible to get an operations field if body is not a string but FormData.

What is your objection to making the serialization itself more flexible?

I'm really grateful for your desire to improve the dev experience of this library and happy that you're using it :) I will think on implementing something like hooks to make it more flexible. So that the list of supported options and complexity would not grow and it'll be easier to support and maintain.
I would suggest using a custom fetch function for now. I know this solution is far from great, sorry for that. I'll keep this issue opened

Thank you for the suggestion, if it is not too inefficient, I will take your recommendation. Otherwise, I may just end up forking this library.

Here is what this workaround/hack looks like to anyone curious:
  fetch: (url, init) => {
    // eslint-disable-next-line prefer-const
    let { body, ...rest } = init;

    if (body instanceof FormData) {
      const operationsString = body.get("operations");
      if (!operationsString)
        throw new Error("Missing operations");

      const operations = JSON.parse(operationsString as string);
      const id = operations.query;
      body.set("operations", JSON.stringify({ ...operations, query: undefined, id }));
    }
    else {
      const parsed = JSON.parse(body);

      if (parsed.query) {
        parsed.id = parsed.query;
        delete parsed.query;
      }

      body = JSON.stringify(parsed);
    }

    return fetch(url, { ...rest, body });
  },

authors: lynxtaa onionhammer

repo: lynxtaa/awesome-graphql-client


text:
Build error when using MakeRelease.ps1

I was trying to follow the steps outlined in Purveyor to build PSReadLine, but when I ran .\MakeRelease.ps1 it failed with lots of these errors:
BasicEditing.cs(9,25): error CS0234: The type or namespace name 'Automation' does not exist in the namespace 'System.Management' (are you mis sing an assembly reference?) [C:\Projects\psreadline\PSReadline\PSReadLine.csproj]
However, when I open the PSReadLine.csproj in Visual Studio and build from there, it all works fine because it copies the required dlls to the new folder c:\Projects\psreadline\PSReadLine\packages\Microsoft.PowerShell.3.ReferenceAssemblies.1.0.0\lib\net4\. After I get these files copied to the packages folder, the .\MakeRelease.ps1 continues just fine and is able to build a release.
I stumbled upon this by accident and was wondering why this is happening and whether there is a way to make MakeRelease.ps1 see the Automation dlls (I've tried adding folder with those dlls to path with $env:path += ";c:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0\" in MakeRelease.ps1, but that didn't help either)

I'm not sure what was happening, but the build is now using nuget for that package, so I think the problem is fixed.

authors: eugenesvk lzybkr

repo: lzybkr/PSReadLine